]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
ipv6: reassembly: use seperate reassembly queues for conntrack and local delivery
authorPatrick McHardy <kaber@trash.net>
Tue, 15 Dec 2009 15:59:18 +0000 (16:59 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 6 Jan 2010 23:17:14 +0000 (15:17 -0800)
commit4e9e4fcb0d12ae07cd6e9a9430927eb1dbfb0166
tree91d884fa301ca518c16363e5a654955697457b56
parent18ba31ab3db7b92c9ecb01229d983fd37173ab8f
ipv6: reassembly: use seperate reassembly queues for conntrack and local delivery

commit 0b5ccb2ee250136dd7385b1c7da28417d0d4d32d upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
include/net/ipv6.h
include/net/netfilter/ipv6/nf_conntrack_ipv6.h
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
net/ipv6/netfilter/nf_conntrack_reasm.c
net/ipv6/reassembly.c