• Nicolas Dichtel's avatar
    vrf: fix maximum MTU · 9bb392f6
    Nicolas Dichtel authored
    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: 5055376a ("net: vrf: Fix ping failed when vrf mtu is set to 0")
    CC: Miaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9bb392f6
vrf.c 46.4 KB