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>
Showing
- include/net/ipv6.h 7 additions, 0 deletionsinclude/net/ipv6.h
- include/net/netfilter/ipv6/nf_conntrack_ipv6.h 1 addition, 1 deletioninclude/net/netfilter/ipv6/nf_conntrack_ipv6.h
- net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 11 additions, 2 deletionsnet/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
- net/ipv6/netfilter/nf_conntrack_reasm.c 4 additions, 3 deletionsnet/ipv6/netfilter/nf_conntrack_reasm.c
- net/ipv6/reassembly.c 4 additions, 1 deletionnet/ipv6/reassembly.c
Please register or sign in to comment