From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alin Nastac Subject: [PATCH] ipv6: Preserve link scope traffic original oif Date: Wed, 1 Mar 2017 14:00:59 +0100 Message-ID: <1488373259-31296-1-git-send-email-alin.nastac@gmail.com> To: netfilter-devel@vger.kernel.org Return-path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:34185 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751733AbdCANJe (ORCPT ); Wed, 1 Mar 2017 08:09:34 -0500 Received: by mail-wm0-f65.google.com with SMTP id m70so7257701wma.1 for ; Wed, 01 Mar 2017 05:09:28 -0800 (PST) Received: from cplx250.edegem.eu.thmulti.com (14.125.146.82.ipv4.evonet.be. [82.146.125.14]) by smtp.gmail.com with ESMTPSA id o2sm6852716wmb.28.2017.03.01.05.01.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Mar 2017 05:01:06 -0800 (PST) Sender: netfilter-devel-owner@vger.kernel.org List-ID: Link-local and multicast packets must keep their original oif after ip6_route_me_harder is called. Signed-off-by: Alin Nastac --- net/ipv6/netfilter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c index 39970e2..02811c5 100644 --- a/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c @@ -24,7 +24,8 @@ int ip6_route_me_harder(struct net *net, struct sk_buff *skb) unsigned int hh_len; struct dst_entry *dst; struct flowi6 fl6 = { - .flowi6_oif = skb->sk ? skb->sk->sk_bound_dev_if : 0, + .flowi6_oif = skb->sk ? skb->sk->sk_bound_dev_if : + rt6_need_strict(&iph->daddr) ? skb_dst(skb)->dev->ifindex : 0, .flowi6_mark = skb->mark, .flowi6_uid = sock_net_uid(net, skb->sk), .daddr = iph->daddr, -- 1.7.12.4