summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorMichal Kubeček <mkubecek@suse.cz>2015-11-24 17:07:11 +0300
committerSasha Levin <sasha.levin@oracle.com>2015-12-14 20:19:26 +0300
commite33c9be772f35cab83e100160b2b42e03f1eb2cc (patch)
tree1a5fd2000fac438ac7bfc927035ce856721250fe /include/net
parentfbf44baf4444511fb1f42cd3dcfd511aba995c0a (diff)
downloadlinux-e33c9be772f35cab83e100160b2b42e03f1eb2cc.tar.xz
ipv6: distinguish frag queues by device for multicast and link-local packets
[ Upstream commit 264640fc2c5f4f913db5c73fa3eb1ead2c45e9d7 ] 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> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/ipv6.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 4292929392b0..bc56e8a6fbd9 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -490,6 +490,7 @@ struct ip6_create_arg {
u32 user;
const struct in6_addr *src;
const struct in6_addr *dst;
+ int iif;
u8 ecn;
};