Message ID | 20210608145951.24985-1-nicolas.dichtel@6wind.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9bb392f62447d73cc7dd7562413a2cd9104c82f8 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] vrf: fix maximum MTU | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | fail | 1 blamed authors not CCed: dsahern@kernel.org; 1 maintainers not CCed: dsahern@kernel.org |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 2 this patch: 2 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 18 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 2 this patch: 2 |
netdev/header_inline | success | Link |
On 6/8/21 8:59 AM, Nicolas Dichtel wrote: > 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: 5055376a3b44 ("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> > --- > drivers/net/vrf.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > Reviewed-by: David Ahern <dsahern@gmail.com>
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Tue, 8 Jun 2021 16:59:51 +0200 you wrote: > 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. > > [...] Here is the summary with links: - [net] vrf: fix maximum MTU https://git.kernel.org/netdev/net/c/9bb392f62447 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index 503e2fd7ce51..28a6c4cfe9b8 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -1183,9 +1183,6 @@ static int vrf_dev_init(struct net_device *dev) dev->flags = IFF_MASTER | IFF_NOARP; - /* MTU is irrelevant for VRF device; set to 64k similar to lo */ - dev->mtu = 64 * 1024; - /* similarly, oper state is irrelevant; set to up to avoid confusion */ dev->operstate = IF_OPER_UP; netdev_lockdep_set_classes(dev); @@ -1685,7 +1682,8 @@ static void vrf_setup(struct net_device *dev) * which breaks networking. */ dev->min_mtu = IPV6_MIN_MTU; - dev->max_mtu = ETH_MAX_MTU; + dev->max_mtu = IP6_MAX_MTU; + dev->mtu = dev->max_mtu; } static int vrf_validate(struct nlattr *tb[], struct nlattr *data[],
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: 5055376a3b44 ("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> --- drivers/net/vrf.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)