netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: VRF: All router multicast entry(FF02:2) not added to VRF Dev but added on VLAN Dev
       [not found] <CADiZnkQiZSEpk5CWtNWk35+Cg=zHfpSpTe3kAhuvKvVrGjFCpw@mail.gmail.com>
@ 2020-03-21 21:16 ` David Ahern
       [not found]   ` <CADiZnkQusFraECtHx_PYf_NDM9fn29dZkFV1-US5TL+3J5-wSg@mail.gmail.com>
  0 siblings, 1 reply; 2+ messages in thread
From: David Ahern @ 2020-03-21 21:16 UTC (permalink / raw)
  To: Sukumar Gopalakrishnan, netdev

On 3/20/20 2:33 AM, Sukumar Gopalakrishnan wrote:
> Hi David,
> 
> 
> Kernel Version : 4.14.170
> 
> 
> Initiating ping to All Router address(FF02::2) with DIP as FF02:2. (
> decoded packet attached).
> 
>  
> 
> when the packet reaches
> 
> vrf_ip6_rcv
> 
>   ipv6_ndisc_frame() returns FALSE since the ICMPV6 TYPE is 128 ( echo
> request)

But need_strict is true since it is a mcast address, so the device
change should not happen. As I recall this is one of those fundamental
use cases (ping to ff02::*) that has worked since day 1 for VRF.

> 
>   Changing ingress VLAN dev to VRF DEV on skb->dev.
> 
>      
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: VRF: All router multicast entry(FF02:2) not added to VRF Dev but added on VLAN Dev
       [not found]   ` <CADiZnkQusFraECtHx_PYf_NDM9fn29dZkFV1-US5TL+3J5-wSg@mail.gmail.com>
@ 2020-03-23 16:23     ` David Ahern
  0 siblings, 0 replies; 2+ messages in thread
From: David Ahern @ 2020-03-23 16:23 UTC (permalink / raw)
  To: Sukumar Gopalakrishnan, Sasha Levin; +Cc: netdev

On 3/23/20 12:00 AM, Sukumar Gopalakrishnan wrote:
> As per the kernel version 4.14.170, skb->dev is changing to vrf_dev even
> if need_strict is TRUE except few types of ndisc packets..
> 
> static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev,
>                                    struct sk_buff *skb)
> {
>         int orig_iif = skb->skb_iif;
>         bool need_strict = rt6_need_strict(&ipv6_hdr(skb)->daddr);
>         bool is_ndisc = ipv6_ndisc_frame(skb);
> 
>         /* loopback, multicast & non-ND link-local traffic; do not push
> through
>          * packet taps again. Reset pkt_type for upper layers to process skb
>          */
>         if (skb->pkt_type == PACKET_LOOPBACK || (need_strict &&
> !is_ndisc)) {
>                 skb->dev = vrf_dev;
>                 skb->skb_iif = vrf_dev->ifindex;
>                 IP6CB(skb)->flags |= IP6SKB_L3SLAVE;
>                 if (skb->pkt_type == PACKET_LOOPBACK)
>                         skb->pkt_type = PACKET_HOST;
>                 goto out;
>         }
> 

This 4.14 patch needs to be reverted:

commit 2271c9500434af2a26b2c9eadeb3c0b075409fb5
Author: Mike Manning <mmanning@vyatta.att-mail.com>
Date:   Wed Nov 7 15:36:07 2018 +0000

    vrf: mark skb for multicast or link-local as enslaved to VRF

    [ Upstream commit 6f12fa775530195a501fb090d092c637f32d0cc5 ]


The upstream commit should not have been backported.

Sasha: can you revert?

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-03-23 16:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CADiZnkQiZSEpk5CWtNWk35+Cg=zHfpSpTe3kAhuvKvVrGjFCpw@mail.gmail.com>
2020-03-21 21:16 ` VRF: All router multicast entry(FF02:2) not added to VRF Dev but added on VLAN Dev David Ahern
     [not found]   ` <CADiZnkQusFraECtHx_PYf_NDM9fn29dZkFV1-US5TL+3J5-wSg@mail.gmail.com>
2020-03-23 16:23     ` David Ahern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).