net: use core MTU range checking in core net infra

geneve:
- Merge __geneve_change_mtu back into geneve_change_mtu, set max_mtu
- This one isn't quite as straight-forward as others, could use some
  closer inspection and testing

macvlan:
- set min/max_mtu

tun:
- set min/max_mtu, remove tun_net_change_mtu

vxlan:
- Merge __vxlan_change_mtu back into vxlan_change_mtu
- Set max_mtu to IP_MAX_MTU and retain dynamic MTU range checks in
  change_mtu function
- This one is also not as straight-forward and could use closer inspection
  and testing from vxlan folks

bridge:
- set max_mtu of IP_MAX_MTU and retain dynamic MTU range checks in
  change_mtu function

openvswitch:
- set min/max_mtu, remove internal_dev_change_mtu
- note: max_mtu wasn't checked previously, it's been set to 65535, which
  is the largest possible size supported

sch_teql:
- set min/max_mtu (note: max_mtu previously unchecked, used max of 65535)

macsec:
- min_mtu = 0, max_mtu = 65535

macvlan:
- min_mtu = 0, max_mtu = 65535

ntb_netdev:
- min_mtu = 0, max_mtu = 65535

veth:
- min_mtu = 68, max_mtu = 65535

8021q:
- min_mtu = 0, max_mtu = 65535

CC: [email protected]
CC: Nicolas Dichtel <[email protected]>
CC: Hannes Frederic Sowa <[email protected]>
CC: Tom Herbert <[email protected]>
CC: Daniel Borkmann <[email protected]>
CC: Alexander Duyck <[email protected]>
CC: Paolo Abeni <[email protected]>
CC: Jiri Benc <[email protected]>
CC: WANG Cong <[email protected]>
CC: Roopa Prabhu <[email protected]>
CC: Pravin B Shelar <[email protected]>
CC: Sabrina Dubroca <[email protected]>
CC: Patrick McHardy <[email protected]>
CC: Stephen Hemminger <[email protected]>
CC: Pravin Shelar <[email protected]>
CC: Maxim Krasnyansky <[email protected]>
Signed-off-by: Jarod Wilson <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
Jarod Wilson 2016-10-20 13:55:20 -04:00 • committed by David S. Miller
commit 91572088e3
11 changed files with 81 additions and 102 deletions

View file

@ -185,7 +185,7 @@ static struct rtnl_link_stats64 *br_get_stats64(struct net_device *dev,
static int br_change_mtu(struct net_device *dev, int new_mtu)
{
struct net_bridge *br = netdev_priv(dev);
if (new_mtu < 68 || new_mtu > br_min_mtu(br))
if (new_mtu > br_min_mtu(br))
return -EINVAL;
dev->mtu = new_mtu;
@ -410,6 +410,7 @@ void br_dev_setup(struct net_device *dev)
br->bridge_hello_time = br->hello_time = 2 * HZ;
br->bridge_forward_delay = br->forward_delay = 15 * HZ;
br->ageing_time = BR_DEFAULT_AGEING_TIME;
dev->max_mtu = ETH_MAX_MTU;
br_netfilter_rtable_init(br);
br_stp_timer_init(br);