]> git.baikalelectronics.ru Git - kernel.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)
committerPatrick McHardy <kaber@trash.net>
Tue, 15 Dec 2009 15:59:18 +0000 (16:59 +0100)
commit024bf5241b4a2729644937a2d7b1764b6c7dcec2
treeb0630141672471d5c800867cd8dbee425308bc73
parenta619a52bbd1f67fb2530dc7352f5d36993e3115a
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>
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