Messages in this thread | | | Subject | Re: [PATCH net v2] net: vrf: Fix ping failed when vrf mtu is set to 0 | From | David Ahern <> | Date | Sun, 7 Apr 2019 07:30:29 -0700 |
| |
On 4/6/19 11:46 PM, linmiaohe wrote: > diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c > index 7c1430ed0244..4d35d37f225a 100644 > --- a/drivers/net/vrf.c > +++ b/drivers/net/vrf.c > @@ -43,6 +43,12 @@ > > #define FIB_RULE_PREF 1000 /* default preference for FIB rules */ > > +/* The MTU is really irrelevant for VRF except for odd cases, so limit it > + * to a reasonable range which both works for IPV4 and IPV6. > + */ > +#define VRF_MIN_MTU 1280 /* same as IPV6_MIN_MTU */ > +#define VRF_MAX_MTU 0xFFFFU /* same as IP_MAX_MTU */
Since VRF does not care about MTU, there is no reason for VRF specific macros.
> + > static unsigned int vrf_net_id; > > struct net_vrf { > @@ -1274,8 +1280,8 @@ static void vrf_setup(struct net_device *dev) > /* default to no qdisc; user can add if desired */ > dev->priv_flags |= IFF_NO_QUEUE; > > - dev->min_mtu = 0; > - dev->max_mtu = 0; > + dev->min_mtu = VRF_MIN_MTU; > + dev->max_mtu = VRF_MAX_MTU;
Set these to IPV6_MIN_MTU and ETH_MAX_MTU and add a comment that VRF devices do not care about MTU, but if the MTU is set too low then the ipv4 and ipv6 protocols are disabled which breaks networking.
| |