diff options
author | Jarod Wilson <jarod@redhat.com> | 2016-10-20 13:55:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-10-20 14:51:09 -0400 |
commit | 91572088e3fdbf4fe31cf397926d8b890fdb3237 (patch) | |
tree | 956c0634c97ac6bac987182d4c09b80c08c56b7c /drivers/net/macvlan.c | |
parent | 8b6b4135e4fb2b537f33b811c13f77bee25ca8d3 (diff) |
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: netdev@vger.kernel.org
CC: Nicolas Dichtel <nicolas.dichtel@6wind.com>
CC: Hannes Frederic Sowa <hannes@stressinduktion.org>
CC: Tom Herbert <tom@herbertland.com>
CC: Daniel Borkmann <daniel@iogearbox.net>
CC: Alexander Duyck <alexander.h.duyck@intel.com>
CC: Paolo Abeni <pabeni@redhat.com>
CC: Jiri Benc <jbenc@redhat.com>
CC: WANG Cong <xiyou.wangcong@gmail.com>
CC: Roopa Prabhu <roopa@cumulusnetworks.com>
CC: Pravin B Shelar <pshelar@ovn.org>
CC: Sabrina Dubroca <sd@queasysnail.net>
CC: Patrick McHardy <kaber@trash.net>
CC: Stephen Hemminger <stephen@networkplumber.org>
CC: Pravin Shelar <pshelar@nicira.com>
CC: Maxim Krasnyansky <maxk@qti.qualcomm.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r-- | drivers/net/macvlan.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 3234fcdea317..a0644158647a 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
@@ -777,7 +777,7 @@ static int macvlan_change_mtu(struct net_device *dev, int new_mtu) | |||
777 | { | 777 | { |
778 | struct macvlan_dev *vlan = netdev_priv(dev); | 778 | struct macvlan_dev *vlan = netdev_priv(dev); |
779 | 779 | ||
780 | if (new_mtu < 68 || vlan->lowerdev->mtu < new_mtu) | 780 | if (vlan->lowerdev->mtu < new_mtu) |
781 | return -EINVAL; | 781 | return -EINVAL; |
782 | dev->mtu = new_mtu; | 782 | dev->mtu = new_mtu; |
783 | return 0; | 783 | return 0; |
@@ -1085,6 +1085,8 @@ void macvlan_common_setup(struct net_device *dev) | |||
1085 | { | 1085 | { |
1086 | ether_setup(dev); | 1086 | ether_setup(dev); |
1087 | 1087 | ||
1088 | dev->min_mtu = 0; | ||
1089 | dev->max_mtu = ETH_MAX_MTU; | ||
1088 | dev->priv_flags &= ~IFF_TX_SKB_SHARING; | 1090 | dev->priv_flags &= ~IFF_TX_SKB_SHARING; |
1089 | netif_keep_dst(dev); | 1091 | netif_keep_dst(dev); |
1090 | dev->priv_flags |= IFF_UNICAST_FLT; | 1092 | dev->priv_flags |= IFF_UNICAST_FLT; |
@@ -1297,6 +1299,10 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev, | |||
1297 | else if (dev->mtu > lowerdev->mtu) | 1299 | else if (dev->mtu > lowerdev->mtu) |
1298 | return -EINVAL; | 1300 | return -EINVAL; |
1299 | 1301 | ||
1302 | /* MTU range: 68 - lowerdev->max_mtu */ | ||
1303 | dev->min_mtu = ETH_MIN_MTU; | ||
1304 | dev->max_mtu = lowerdev->max_mtu; | ||
1305 | |||
1300 | if (!tb[IFLA_ADDRESS]) | 1306 | if (!tb[IFLA_ADDRESS]) |
1301 | eth_hw_addr_random(dev); | 1307 | eth_hw_addr_random(dev); |
1302 | 1308 | ||