Well I finally got around to playing with MTU settings with the VMG1312 and I feel like I must be missing something but it seems to be working.
After setting a 1508 mtu on the wan interface of a router running openwrt (x86 box with seperate lan cards for wan & lan) it negotiated a ppp session with 1500 byte payload:
daemon.notice pppd[1630]: pppd 2.4.7 started by root, uid 0
daemon.debug pppd[1630]: Send PPPOE Discovery V1T1 PADI session 0x0 length 10
daemon.debug pppd[1630]: dst ff:ff:ff:ff:ff:ff src 00:00:00:00:00:00
daemon.debug pppd[1630]: [service-name] [PPP-max-payload 05 dc]
daemon.debug pppd[1630]: Recv PPPOE Discovery V1T1 PADO session 0x0 length 48
daemon.debug pppd[1630]: dst 00:00:00:00:00:00 src 00:00:00:00:00:00
daemon.debug pppd[1630]: [AC-name some.thing-here] [PPP-max-payload 05 dc] [service-name] [AC-cookie 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
daemon.debug pppd[1630]: Send PPPOE Discovery V1T1 PADR session 0x0 length 30
daemon.debug pppd[1630]: dst 00:00:00:00:00:00 src 00:00:00:00:00:00
daemon.debug pppd[1630]: [service-name] [PPP-max-payload 05 dc] [AC-cookie 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
daemon.debug pppd[1630]: Recv PPPOE Discovery V1T1 PADS session 0x3e9 length 48
daemon.debug pppd[1630]: dst 00:00:00:00:00:00 src 00:00:00:00:00:00
daemon.debug pppd[1630]: [service-name] [PPP-max-payload 05 dc] [AC-name some.thing-here] [AC-cookie 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
daemon.debug pppd[1630]: PADS: Service-Name: ''
daemon.info pppd[1630]: PPP session is 1001
daemon.warn pppd[1630]: Connected to 00:00:00:00:00:00 via interface eth2
0x05dc = 1500 for the "PPP-max-payload"
ifconfig on the router then shows a 1500 mtu for the pppoe-WAN interface where it showed 1492 before
Pings get fragmented if over 1464 still, but if you telnet into the VMG1312 and change first the ptm0 and them ptm0.1 interface to 1508 using:
ifconfig ptm0 mtu 1508
ifconfig ptm0.1 mtu 1508
Then pings with payload of 1472 magically start working:
ping -M do -s 1472 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 1472(1500) bytes of data.
1480 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=18.6 ms
1480 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=19.0 ms
1480 bytes from 8.8.8.8: icmp_seq=3 ttl=59 time=19.5 ms
1480 bytes from 8.8.8.8: icmp_seq=4 ttl=59 time=18.2 ms
1480 bytes from 8.8.8.8: icmp_seq=5 ttl=59 time=18.8 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 18.222/18.863/19.567/0.470 ms
Seeing as nothing breaks after setting the WAN port of the openwrt router to 1508, having to run 2 cmds on the modem after a reboot to get it working doesnt seem an issue.
Why I'm sceptical as to whether this result is accurate is that using the tester at
http://www.letmecheck.it/ I still get a discovered MTU of 1492. Any idea why I can send unfragmented ICMP packets at 1500 but this test fails? I'l add that when I tried the tester there before with a definite 1492 pppoe connection from the router to modem it comes back with 1500 discovered... *scratches head*
Also tried the exact same steps on a billion 8800nl, same result.
Am I missing something? Is the test for fragmentation I'm using wrong? Have also tried:
ping -f -l 1472 8.8.8.8
From a windows 7 VM and got no DF set fragmentation message.