Unable to set pppoe-wan MTU to 1500 with eth0 and eth0.6 to 1508

I have the feeling that is correct behavior.
eth0.6 MTU is 1508.
pppd config gets created by ppps.sh script with mtu/mru of 1508.
pppd tries to create/spawn pppoe-wan interface with 1508 but fails and lowers MTU to 1500.
(But somehow this is not printed to the system log?)
This why you see pppoe-wan with MTU of 1500 but pppd config with mtu/mru 1508.

the drytek device must also support a MTU of 1508 on the lan/ethernet interfaces.
What happens when a device uses a larger MTU value than expected?
Normally those packets are dropped?
Do you have the vlan tagging feature enabled on the drytek?

@mpa
Forget my post about the sub/alias interfaces.
I tested this on my device. It is not possible to have a different mtu on sub/alias interfaces.

I'm not sure.. Under normal circumstances, pppoe-wan is set to MTU 1492 automatically, and the pppd command line also shows mtu 1492 mru 1492.

I did not enable VLAN tagging on the DrayTek modem. My router does this as well. So the DrayTek is already passing larger packets (MTU 1492 + 8 bytes PPPoE overhead + 4 bytes 801.2Q overhead = MTU 1504).

I actually tried something that at least claimed to set everything correctly:

config interface 'switch'
	option ifname 'eth0'
	option mtu '1508'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option mtu '1500'
	...

config interface 'wan_dev'
	option ifname 'eth0.6'
	option mtu '1508'

config interface 'wan'
	option ifname '@wan_dev'
	option mtu '1500'
	option proto 'pppoe'
	...

This set all interfaces correctly:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508
br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508
eth0.6@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508
pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500
wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500

And it set the pppd command line correctly:

/usr/sbin/pppd nodetach ipparam wan ifname pppoe-wan lcp-echo-interval 1 lcp-echo-failure 5 lcp-echo-adaptive +ipv6 set AUTOIPV6=1 nodefaultroute usepeerdns maxfail 1 user xs4all password xs4all ip-up-script /lib/netifd/ppp-up ipv6-up-script /lib/netifd/ppp6-up ip-down-script /lib/netifd/ppp-down ipv6-down-script /lib/netifd/ppp-down ipv6-down-script /lib/netifd/ppp-down mtu 1500 mru 1500 plugin rp-pppoe.so nic-eth0.6

But it didn't work. I still got the black hole situation of connections breaking after the handshake.

According to the internet, DrayTek Vigor devices like the 130 and 165 should support baby jumbo frames, but no official documentation exists. So I guess I'll have to wait for DrayTek's reply to my e-mail asking them about it.

I asked about the VLAN Tagging because in the DrayTek Manual the recommend to disable tagging in bridge mode. (and your main router does the vlan tagging)
But I guess the vlan tags are not the problem here.

No. The MTU is still 1500 (payload size).
The ethernet frame got increased by 4 bytes.
1500 byte Payload + 18 byte Ethernet Header + 4 byte for the VLAN Tag.

When the vlan tag gets disabled the maximum MTU (payload) is still 1500 byte.
So maybe the DrayTek is not able to handle MTU's > 1500 byte.

eth0.1 should be 1500 or?

I guess eth0.1 could also be set to 1500, but the actual LAN interface is br-lan, which is the bridge interface that combines the eth0.1 interface and the wlan0 and wlan1 interfaces.

There seem to be quite some posts on the internet claiming that the Vigor 130 and 165 are capable of MTU's higher than 1500, but I can't find if anything has to be configured for it. I guess all I can do now is wait for a reply from their tech support and hope they have someone semi-competent answer my question.

I am also considering moving, and I'm certainly going to a place with FttH then, so I won't need a modem at all...

Just for reference for VDSL2+VLAN+PPPoE:
100 * ((1500-8-20-20)/(1500+26)) = 95.1507 % Goodput without BabyJumboFrames
100 * ((1500+8-8-20-20)/(1500+8+26)) = 95.1760 % Goodput with MTU1508 BabyJumboFrames

Switching to baby jumbo frames will only increase your "efficiency" by a measly 0.026 percentage points. I am not saying that it is not satisfying to configure this to achieve "optimality", I am just trying to give a reference for the gain so that effort to reach that gain can be evaluated rationally :wink:
Now, if you use additional levels of encapsulation/tunnels these 8 octets more might make a difference as this might allow to say actually permit IPv6 MTU1280 for the payload, but that will be relatively unlikely to be the case...

1 Like

You can also try to disable the Max MTU Limit check on the DrayTek Setup Page with firefox/chrome webpage dev tools and set MTU to 1508. Maybe you have luck.

Then use your original config:

config interface 'switch'
	option ifname 'eth0'
	option mtu '1508'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option mtu '1500'
	...

config interface 'wan'
	option ifname 'eth0.6'
	option mtu '1508'
	option proto 'pppoe'
	...

And hope that pppd automatically decreases the MTU.

You indeed have a very good point here. Perhaps it's not really worth al the trouble, but like you said, it would be satisfying to get it to work.

I have this working, also with a WDR4300 run 18.06.4, but in the UK.

All I had to do is to mtu 1508 for eth0, mtu 1500 for 'lan' and 1508 for 'wan'; that was it and no other ppp options or anything. pppoe-wan gets set to mtu 1500 automatically. pppd does indeed get started with "mtu 1508 mru 1508".

2 Likes

Does anyone know to to set up baby jumbo frames @pppoe with the WRT3200ACM? My modem does support baby jumbo frames and I think that I've proper configured it with my modem (bridge mode@vlan7).

ptm0.7@ptm0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1508 qdisc noqueue master br-lan state UP mode DEFAULT group default

I've tried several configs on my WRT3200ACM@PPPoE but the MTU on pppoe-wan is always set to 1492.
Here is my current network config:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix ''

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0.1'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'

config interface 'wan'
	option ifname 'eth1.2'
	option proto 'pppoe'
	option username 'xxx'
	option password 'xxx'
	option ipv6 'auto'
	option keepalive '5 5'
	option peerdns '0'
	option pppd_options 'debug'
	option mtu '1500'

config interface 'wan6'
	option ifname 'eth1.2'
	option proto 'dhcpv6'
	option reqaddress 'try'
	option reqprefix 'auto'
	option peerdns '0'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option vid '1'
	option ports '0 1 2 3t 5t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '4 6t'
	option vid '2'
	option mtu '1508'

config switch_vlan
	option device 'switch0'
	option vlan '3'
	option vid '3'
	option ports '3t 5t'

I'm not 100% sure that my ISP supports baby jumbo frames but the MTU test from letmecheck.it does report:

From the tests we did, we can assume that 1472 bytes is the largest unfragmented packet size. The MTU size would be 1500, made up from 1472 payload and 28 ICMP/IP Headers and payload information.

The maximum MTU size for xx.xx.xx.xx is: 1500

What I know for sure is that the ISP which provides the line and the VDSL port for my ISP does support baby jumbo frames.

Any Ideas?

Maybe:

config interface 'wan'
.....
	option mtu '1508'
....

or

config device 'wan_dev'
.....
	option name 'eth1.2'
	option mtu '1508'
....

and remove 'option mtu' from 'interface wan' ?

Thanks for your input. I already gave up on this but I'll give it another try later on but if i remember right I've already tried both suggestions.
The thing is that I'm not even 100% sure that my ISP does support mini baby jumbo frames @pppoe.

This work for me on lantiq hw . Funny thing is that ppp should detect that it run on 1508 interface and set 1500mtu ... maybe script is wrong . Never bothered to check

Only entries wan related in my config are here:

config interface 'wan'
        option ifname 'dsl0.35'
        option proto 'pppoe'
        option username '*'
        option password '*'
        option ipv6 '0'
        option pppd_options 'mtu 1500 mru 1500'

config device 'wan_dsl0_dev'
        option name 'dsl0'
        option macaddr '*'
        option mtu 1508
3 Likes

It looks like the problem was the modem after all. I found out that DrayTek has a not very well documented feature to enable Jumbo Frames.

After SSH'ing to my modem and running

port jumbo on
port jumbo 9022

it started working.

I only had to add

config device
	option name 'eth0'
	option mtu '1508'

and set the MTU for lan to 1500 and for wan to 1508.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.