Skip to content

Commit

Permalink
vrx518_tc: allow larger MTU to support RFC4638
Browse files Browse the repository at this point in the history
vrx518_tc currently sets the interface maximum MTU to the ethernet default
of 1500 bytes by default via ether_setup() called from ptm_setup().

To support 1508 byte baby jumbo frames (RFC4638) for PPPoE connections
over VDSL links as already supported by the VR9 ltq_ptm driver ([1], [2])
set the interface maximum MTU to MAX_MTU.

MAX_MTU is defined in dcdp/inc/tc_common.h to 2002 bytes and this value is
used in ptm_change_mtu() and elsewhere as the maximum MTU, however this is
short circuited by checks against the interface maximum MTU.

[1]: https://forum.openwrt.org/t/fritzbox-7530-and-rfc4638-baby-jumbo-frames/181327
[2]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8a2a20e71e2909f84dab47e51dfda9e292a6c1ae

Signed-off-by: Andrew MacIntyre <[email protected]>
Link: openwrt#16856
Signed-off-by: Robert Marko <[email protected]>
  • Loading branch information
aimacintyre authored and robimarko committed Nov 8, 2024
1 parent 5b406bc commit ca53f2d
Showing 1 changed file with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
From 3983dc1674fec43beb8ce9d9bfdd6302fef86eae Mon Sep 17 00:00:00 2001
From: Andrew MacIntyre <[email protected]>
Date: Mon, 4 Nov 2024 22:41:25 +1100
Subject: [PATCH] vrx518_tc: allow larger MTU to support RFC4638

vrx518_tc currently sets the interface maximum MTU to the ethernet default
of 1500 bytes by default via ether_setup() called from ptm_setup().

To support 1508 byte baby jumbo frames (RFC4638) for PPPoE connections
over VDSL links as already supported by the VR9 ltq_ptm driver ([1], [2])
set the interface maximum MTU to MAX_MTU.

MAX_MTU is defined in dcdp/inc/tc_common.h to 2002 bytes and this value is
used in ptm_change_mtu() and elsewhere as the maximum MTU, however this is
short circuited by checks against the interface maximum MTU.

[1]: https://forum.openwrt.org/t/fritzbox-7530-and-rfc4638-baby-jumbo-frames/181327
[2]: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=8a2a20e71e2909f84dab47e51dfda9e292a6c1ae

Signed-off-by: Andrew MacIntyre <[email protected]>
---
dcdp/ptm_tc.c | 1 +
1 file changed, 1 insertion(+)

--- a/dcdp/ptm_tc.c 2023-12-17 16:11:22.503500398 +1100
+++ b/dcdp/ptm_tc.c 2024-01-26 16:48:49.881623474 +1100
@@ -657,6 +657,7 @@ static void ptm_setup(struct net_device
ether_setup(dev);
dev->watchdog_timeo = 10 * HZ;
dev->netdev_ops = &g_ptm_netdev_ops;
+ dev->max_mtu = MAX_MTU;
}

static int ptm_dev_init(struct tc_priv *tc_priv, u32 id,

0 comments on commit ca53f2d

Please sign in to comment.