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)
commit0b5ccb2ee250136dd7385b1c7da28417d0d4d32d
treeb0630141672471d5c800867cd8dbee425308bc73
parent9abfe315de96aa5c9878b2f627542bc54901c6e9
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