Skip to contentSkip to conversation

: nf_queue: handle GSO packets

NETFILTER Patrick McHardy 1 participant 1 message Aug 5, 2006

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

[NETFILTER]: nf_queue: handle GSO packets

Handle GSO packets in nf_queue by segmenting them before queueing to avoid breaking GSO in case they get mangled.

---
commit 25b15e13491e9904b4fdf60b67a3c5d933e35fca
tree 68eab97a1634bebdd0d8431b5487df0b8f88bcf3
parent d4bf859dbf0158d8ac0dc7d9d88d68c6882233df
author Patrick McHardy <[email protected]> Sat, 05 Aug 2006 09:16:37 +0200 committer Patrick McHardy <[email protected]> Sat, 05 Aug 2006 09:16:37 +0200

 net/netfilter/core.c         |    2 +
 net/netfilter/nf_internals.h |    2 +
 net/netfilter/nf_queue.c     |   80 ++++++++++++++++++++++++++++++++----------
 3 files changed, 62 insertions(+), 22 deletions(-)
net/netfilter/core.c +1 -1
index 27f639f..d80b935 100644
@@ -182,7 +182,7 @@ next_hook:
 		ret = -EPERM;
 	} else if ((verdict & NF_VERDICT_MASK)  == NF_QUEUE) {
 		NFDEBUG("nf_hook: Verdict = QUEUE.\n");
-		if (!nf_queue(pskb, elem, pf, hook, indev, outdev, okfn,
+		if (!nf_queue(*pskb, elem, pf, hook, indev, outdev, okfn,
 			      verdict >> NF_VERDICT_BITS))
 			goto next_hook;
 	}
net/netfilter/nf_internals.h +1 -1
index 86e392b..a981971 100644
@@ -23,7 +23,7 @@ extern unsigned int nf_iterate(struct li
 				int hook_thresh);
 
 /* nf_queue.c */
-extern int nf_queue(struct sk_buff **skb, 
+extern int nf_queue(struct sk_buff *skb,
 		    struct list_head *elem, 
 		    int pf, unsigned int hook,
 		    struct net_device *indev,
net/netfilter/nf_queue.c +60 -20

133 lines not on this page · raw message