diff options
author | Patrick McHardy <kaber@trash.net> | 2009-12-15 18:59:18 +0300 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2009-12-15 18:59:18 +0300 |
commit | 0b5ccb2ee250136dd7385b1c7da28417d0d4d32d (patch) | |
tree | b0630141672471d5c800867cd8dbee425308bc73 /include/net/netfilter | |
parent | 9abfe315de96aa5c9878b2f627542bc54901c6e9 (diff) | |
download | linux-0b5ccb2ee250136dd7385b1c7da28417d0d4d32d.tar.xz |
ipv6: reassembly: use seperate reassembly queues for conntrack and local delivery
Currently the same reassembly queue might be used for packets reassembled
by conntrack in different positions in the stack (PREROUTING/LOCAL_OUT),
as well as local delivery. This can cause "packet jumps" when the fragment
completing a reassembled packet is queued from a different position in the
stack than the previous ones.
Add a "user" identifier to the reassembly queue key to seperate the queues
of each caller, similar to what we do for IPv4.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'include/net/netfilter')
-rw-r--r-- | include/net/netfilter/ipv6/nf_conntrack_ipv6.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/netfilter/ipv6/nf_conntrack_ipv6.h b/include/net/netfilter/ipv6/nf_conntrack_ipv6.h index abc55ad75c2b..1ee717eb5b09 100644 --- a/include/net/netfilter/ipv6/nf_conntrack_ipv6.h +++ b/include/net/netfilter/ipv6/nf_conntrack_ipv6.h @@ -9,7 +9,7 @@ extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmpv6; extern int nf_ct_frag6_init(void); extern void nf_ct_frag6_cleanup(void); -extern struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb); +extern struct sk_buff *nf_ct_frag6_gather(struct sk_buff *skb, u32 user); extern void nf_ct_frag6_output(unsigned int hooknum, struct sk_buff *skb, struct net_device *in, struct net_device *out, |