]> git.baikalelectronics.ru Git - kernel.git/commit
vrf: fix maximum MTU
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Tue, 8 Jun 2021 14:59:51 +0000 (16:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Jun 2021 18:46:23 +0000 (11:46 -0700)
commit28c02c2b78658f06c9ab24d6f3e75ddb72faeddf
tree2c80de848327c06d5751986218015bbca32387c7
parent51311689eb2556ec2e8ae3311e8d0a7a43394c14
vrf: fix maximum MTU

My initial goal was to fix the default MTU, which is set to 65536, ie above
the maximum defined in the driver: 65535 (ETH_MAX_MTU).

In fact, it's seems more consistent, wrt min_mtu, to set the max_mtu to
IP6_MAX_MTU (65535 + sizeof(struct ipv6hdr)) and use it by default.

Let's also, for consistency, set the mtu in vrf_setup(). This function
calls ether_setup(), which set the mtu to 1500. Thus, the whole mtu config
is done in the same function.

Before the patch:
$ ip link add blue type vrf table 1234
$ ip link list blue
9: blue: <NOARP,MASTER> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether fa:f5:27:70:24:2a brd ff:ff:ff:ff:ff:ff
$ ip link set dev blue mtu 65535
$ ip link set dev blue mtu 65536
Error: mtu greater than device maximum.

Fixes: 0c0028634930 ("net: vrf: Fix ping failed when vrf mtu is set to 0")
CC: Miaohe Lin <linmiaohe@huawei.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c