]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: distinguish frag queues by device for multicast and link-local packets
authorMichal Kubeček <mkubecek@suse.cz>
Tue, 24 Nov 2015 14:07:11 +0000 (15:07 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Nov 2015 21:45:47 +0000 (16:45 -0500)
commit468bc80000290051d82f2d4a64150fecbd1a628a
treefe75db704cf20615dd1848aef79301193e1b6c14
parente496fcc32035e016f711f8c05d8b32bf791e202a
ipv6: distinguish frag queues by device for multicast and link-local packets

If a fragmented multicast packet is received on an ethernet device which
has an active macvlan on top of it, each fragment is duplicated and
received both on the underlying device and the macvlan. If some
fragments for macvlan are processed before the whole packet for the
underlying device is reassembled, the "overlapping fragments" test in
ip6_frag_queue() discards the whole fragment queue.

To resolve this, add device ifindex to the search key and require it to
match reassembling multicast packets and packets to link-local
addresses.

Note: similar patch has been already submitted by Yoshifuji Hideaki in

  http://patchwork.ozlabs.org/patch/220979/

but got lost and forgotten for some reason.

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ipv6.h
net/ipv6/netfilter/nf_conntrack_reasm.c
net/ipv6/reassembly.c