On Wed, Nov 21, 2018 at 12:17:50PM +0100, Alin Nastac wrote: > When ip6_route_me_harder is invoked, it resets outgoing interface of: > - link-local scoped packets sent by neighbor discovery > - multicast packets sent by MLD host > - multicast packets send by MLD proxy daemon that sets outgoing > interface through IPV6_PKTINFO ipi6_ifindex > > Link-local and multicast packets must keep their original oif after > ip6_route_me_harder is called. Please, resubmit including your Signed-off-by tag. Thanks! > --- > 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 5ae8e1c..8b075f0 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 = sk ? sk->sk_bound_dev_if : 0, > + .flowi6_oif = sk && sk->sk_bound_dev_if ? 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, sk), > .daddr = iph->daddr, > -- > 2.7.4 >