New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FS#210 - ltq-RFC4638 PPPoE MTU support #5285
Comments
mkresin: Your analysis seam correct to me. The lantiq ptm kernel module is using [[https://git.lede-project.org/?p=source.git;a=blob;f=package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c;h=41464e6c27765745aa0c6cd9ffbe07455ff19d6d;hb=HEAD#l117|eth_change_mtu]] which allows only [[http://lxr.free-electrons.com/source/net/ethernet/eth.c?v=4.4#L320|MTUs up to ETH_DATA_LEN]]. And [[http://lxr.free-electrons.com/source/include/uapi/linux/if_ether.h?v=4.4#L34|ETH_DATA_LEN is 1500]]. Means a ptm_change_mtu() is required which accepts values up to ETH_DATA_LEN+8 (mini jumbo frames). That doesn't necessarily means that it works in the end. There might be other (hardware related) limitations. Would you please try to add the function and report back! If it works for you, please submit a patch either via the lede-dev mailing list or via github pull request. |
dwmw2: The really naïve test seems to work...
--- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
+++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c
@@ -107,6 +107,14 @@ static int g_queue_gamma_map[4];
I can then ping it from the outside: I'm slightly confused though, because I have a VLAN too; ptm0.101.
config switch_vlan 'ptm0_101'
option device 'ptm0'
option vlan '101'
option vid '101'
If I run tcpdump on the ptm0.101 interface, that looks fine:
But... on the ptm0 interface, obviously I have extra VLAN overhead:
11:22:48.287214 PPPoE [ses 0x24de] IP (tos 0x0, ttl 64, id 43141, offset 0, flags [none], proto ICMP (1), length 1500)
adsl-2.infradead.org > casper.infradead.org: ICMP echo reply, id 30370, seq 2, length 1480
0x0000: 0030 881e 9065 0020 da86 2375 8100 0065 .0...e....#u...e
0x0010: 8864 1100 24de 05de 0021 4500 05dc a885 .d..$....!E.....
...
0x05e0: aaab acad aeaf b0b1 b2b3 b4b5 b6b7 b8b9 ................
0x05f0: babb bcbd bebf ......
It's working, but why? That packet is larger than the 1508 bytes I configured as the MTU for the ptm0 interface. Why don't I need to configure 1512 for ptm0 and 1508 for ptm0.101? Is that a bug somewhere? |
dwmw2:
I have a TP-Link TDW8970, used with VDSL.
It seems to limit me to a PPP MTU of 1492. I need to increase the MTU on the ptm0 device to 1508 AIUI but it won't let me. Could it be as simple as providing our own ptm_change_mtu() will will tolerate a larger MTU, instead of using eth_change_mtu()?
The text was updated successfully, but these errors were encountered: