diff mbox series

[net] vrf: fix maximum MTU

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

Checks

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

Commit Message

Nicolas Dichtel June 8, 2021, 2:59 p.m. UTC
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(-)

Comments

David Ahern June 8, 2021, 3:22 p.m. UTC | #1
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>
patchwork-bot+netdevbpf@kernel.org June 8, 2021, 6:50 p.m. UTC | #2
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 mbox series

Patch

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[],