On Mon, May 06, 2019 at 01:54:16PM -0600, David Ahern wrote:
> On 5/6/19 1:00 PM, Stephen Suryaputra wrote:
> > VRF netdev mtu isn't typically set and have an mtu of 65536. When the
> > link of a tunnel is set, the tunnel mtu is changed from 1480 to the link
> > mtu minus tunnel header. In the case of VRF netdev is the link, then the
> > tunnel mtu becomes 65516. So, fix it by not setting the tunnel mtu in
> > this case.
> > 
> > Signed-off-by: Stephen Suryaputra <ssuryae...@gmail.com>
> > ---
> >  net/ipv6/sit.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
> > index b2109b74857d..971d60bf9640 100644
> > --- a/net/ipv6/sit.c
> > +++ b/net/ipv6/sit.c
> > @@ -1084,7 +1084,7 @@ static void ipip6_tunnel_bind_dev(struct net_device 
> > *dev)
> >     if (!tdev && tunnel->parms.link)
> >             tdev = __dev_get_by_index(tunnel->net, tunnel->parms.link);
> >  
> > -   if (tdev) {
> > +   if (tdev && !netif_is_l3_master(tdev)) {
> >             int t_hlen = tunnel->hlen + sizeof(struct iphdr);
> >  
> >             dev->hard_header_len = tdev->hard_header_len + sizeof(struct 
> > iphdr);
> > 
> 
> can you explain how tdev is a VRF device? What's the config setup for
> this case?

Hi David,

tdev is set to VRF device per your suggestion to my colleague back in
2017:
        https://www.spinics.net/lists/netdev/msg462706.html.
Specifically this on this follow up:
        https://www.spinics.net/lists/netdev/msg463287.html

His basic config before your suggestion is available in:
        https://www.spinics.net/lists/netdev/msg462770.html

He and I had a refresher discussion this am trying to figure out if tdev
should be a slave device. This is true if the local addr is specified.
In this case the addr has to bound to a slave device. Then the underlay
VRF can be derived from it. But if only remote is specified, then there
isn't a straightforward way to associate the remote with a VRF unless
tdev is set to a VRF device.

Reply via email to