linux/drivers/net
Miaohe Lin 5055376a3b net: vrf: Fix ping failed when vrf mtu is set to 0
When the mtu of a vrf device is set to 0, it would cause ping
failed. So I think we should limit vrf mtu in a reasonable range
to solve this problem. I set dev->min_mtu to IPV6_MIN_MTU, so it
will works for both ipv4 and ipv6. And if dev->max_mtu still be 0
can be confusing, so I set dev->max_mtu to ETH_MAX_MTU.

Here is the reproduce step:

1.Config vrf interface and set mtu to 0:
3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel
master vrf1 state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:9e:dd:c1 brd ff:ff:ff:ff:ff:ff

2.Ping peer:
3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel
master vrf1 state UP group default qlen 1000
    link/ether 52:54:00:9e:dd:c1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/16 scope global enp4s0
       valid_lft forever preferred_lft forever
connect: Network is unreachable

3.Set mtu to default value, ping works:
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=1.88 ms

Fixes: ad49bc6361 ("net: vrf: remove MTU limits for vrf device")
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-07 22:44:02 -07:00
..
appletalk net: appletalk: cops: mark expected switch fall-through 2019-02-08 11:53:42 -08:00
arcnet
bonding bonding: show full hw address in sysfs for slave entries 2019-03-29 13:32:39 -07:00
caif net: caif: pass struct device to DMA API functions 2019-02-12 12:09:23 -05:00
can peak_usb: fix clang build warning 2019-03-07 09:39:46 -08:00
dsa net: dsa: mv88e6xxx: fix few issues in mv88e6390x_port_set_cmode 2019-03-27 21:53:50 -07:00
ethernet ibmvnic: Fix completion structure initialization 2019-04-04 18:36:07 -07:00
fddi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-08 15:00:17 -08:00
fjes
hamradio net: hamradio: remove unused hweight*() defines 2019-02-18 12:10:02 -08:00
hippi
hyperv hv_netvsc: Fix unwanted wakeup after tx_disable 2019-03-29 13:34:01 -07:00
ieee802154 ieee802154: hwsim: propagate genlmsg_reply return code 2019-03-13 10:13:26 +01:00
ipvlan Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-24 12:06:19 -08:00
netdevsim bpf: offload: add priv field for drivers 2019-02-12 17:07:09 +01:00
phy net: phy: bcm54xx: Encode link speed and activity into LEDs 2019-03-26 11:24:47 -07:00
plip
ppp pptp: dst_release sk_dst_cache in pptp_sock_destruct 2019-03-13 14:22:49 -07:00
slip
team team: Free BPF filter when unregistering netdev 2019-03-04 10:57:29 -08:00
usb qmi_wwan: add Olicard 600 2019-03-28 16:58:06 -07:00
vmxnet3
wan net: wan: z85230: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles 2019-02-25 14:36:15 -08:00
wimax wimax/i2400m: use struct_size() helper 2019-02-08 22:57:28 -08:00
wireless mt76x02: do not enable RTS/CTS by default 2019-03-19 17:37:25 +02:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-03-02 12:54:35 -08:00
dummy.c
eql.c
geneve.c geneve: correctly handle ipv6.disable module parameter 2019-03-01 22:07:56 -08:00
gtp.c
ifb.c
Kconfig gtp: change NET_UDP_TUNNEL dependency to select 2019-03-18 16:54:42 -07:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: add ndo_change_proto_down support 2019-02-24 13:01:04 -08:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c net: Don't set transport offset to invalid value 2019-02-22 12:55:31 -08:00
thunderbolt.c
tun.c tun: add a missing rcu_read_unlock() in error path 2019-03-16 13:16:37 -07:00
veth.c veth: Fix -Wformat-truncation 2019-02-23 13:44:58 -08:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-08 15:00:17 -08:00
vrf.c net: vrf: Fix ping failed when vrf mtu is set to 0 2019-04-07 22:44:02 -07:00
vsockmon.c
vxlan.c vxlan: Don't call gro_cells_destroy() before device is unregistered 2019-03-18 17:07:27 -07:00
xen-netfront.c