From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Ahern Subject: Re: VRF: Ingress IPv6 Linklocal/Multicast destined pkt from slave VRF device does not map to Master device socket Date: Tue, 24 Apr 2018 10:51:23 -0600 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit To: Sukumar Gopalakrishnan , netdev@vger.kernel.org Return-path: Received: from mail-pf0-f182.google.com ([209.85.192.182]:38748 "EHLO mail-pf0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752510AbeDXQv0 (ORCPT ); Tue, 24 Apr 2018 12:51:26 -0400 Received: by mail-pf0-f182.google.com with SMTP id o76so8039626pfi.5 for ; Tue, 24 Apr 2018 09:51:26 -0700 (PDT) In-Reply-To: Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 4/23/18 11:57 PM, Sukumar Gopalakrishnan wrote: > Get master device address from (skb->dev) and pass master to socket > lookup up function for Ipv6 Linklocal/Multicast address. > > ipv6_raw_deliver() > { > int mdif; > .. > .. > mdif = (((nexthdr == IPPROTO_PIM || nexthdr == 89 /* IPPROTO_OSPF */ || > nexthdr == IPPROTO_ICMPV6 || nexthdr == 112 /*IPPROTO_VRRP*/) && > (ipv6_addr_type(daddr) & > (IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL))) ? > l3mdev_master_ifindex_rcu(skb->dev) : inet6_iif(skb)); > > > sk = __raw_v6_lookup(net, sk, nexthdr, daddr, saddr, mdif, > inet6_sdif(skb)); > Packets destined to a linklocal and mcast address stay bound to the actual ingress device as that is their scope.