Baby jumbo frames for pppoe connections (MTU 1508)

  • This was last discussed in the 2.1 Snapshoot feedback thread (, but since it would be so useful for any UK (and proabbly other) users, I thought I would mention this again.

    In the UK, people on Fibre To The Cabinet (FTTC) connections have to use PPPoE to connect to the internet via a VDSL2 modem. By default PPPoE connections have a maximum usable MTU of 1492 (1500 - 8 bytes for the PPPoE overhead). However the FTTC connections (and some ADSL connections) support "Baby Jumbo Frames" which should allow us to use an MTU of 1508 on our router interface, leaving us with a 1500 MTU usable once the PPPoE overhead is accounted for.

    This concept is described in RFC4638 and is already implemented in OpenWRT, but I'm trying to move towards pfSense.

    Now that pfSense 2.2 is based on FreeBSD 10, Will it possible to implement RFC4638

  • I'm also patiently waiting for >1492 MTU RFC4638 compliant support as my ISP in Australia supports it.

  • Try this and let me know if it works.

    • Put mtu on the WAN configuration screen to 1500

    • go to console and do ifconfig $realiface mtu 1508

    • on console then run ps -ax | grep mpd5
      copy the command shown there and rerun it again see if that works.

  • @ermal:

    Try this and let me know if it works.

    • Put mtu on the WAN configuration screen to 1500

    • go to console and do ifconfig $realiface mtu 1508

    • on console then run ps -ax | grep mpd5
      copy the command shown there and rerun it again see if that works.

    I'm still waiting on my Intel i350-T4 NIC. My current Broadcom doesn't play nice with any MTU above 1500. Will do as soon as it arrives.

  • I set the Ethernet MTU to 1508 and the PPPoE MTU to 1500 with the Intel NIC and the internet worked but I couldn't sent a 1472 byte ping past the gateway so I suspect that the PPPoE session was running 1492 MTU.

  • You need to set your MRU to 1500 on mpd.conf manually for that to trigger.
    You can do this on the interfaces->assign->ppp tab by editing your pppoe session.

  • I have tried all that has been mentioned here…

    • Interface > WAN > MTU = 1500

    • Interface > (assign) > PPPs > pppoe0 > Advanced > MRU = 1500

    • console: ifconfig hn0 mtu 1508

    • console: ps -ax | grep mpd5

    The second console command returns:
    /usr/local/sbin/mpd5 -b -k -d /var/etc -f mpd_wan.conf -p /var/run/ -s ppp pppoeclient

    So I then run this command from the console. The internet connection drops and if then re-established.

    Running ifconfig shows the mtu has remained 1508 on hn0 but is 1492 on pppoe0 - so I guess that means this isn't working correctly.

    Any other tips?

    NOTE: My pppoe connection is on hn0 - A virtual interface within Hyper-V

  • You have to set both mru and mtu on this file mpd_wan.conf

  • I have just upgraded to the very latest release and new ifconfig is showing an MTU of 1500, but this MTU is not achievable.

    I couldn't get the MTU 1508 on hn0 to stick through a reboot, so I added hn0 as a new interface (OPT6) through the "Assign Interfaces" page and set the MTU as 1508 on this newly created interface.

    After setting…

    • WAN interface MTU=1500

    • pppoe0 MTU=1500

    • pppoe0 MRU=1500

    my mpd_wan.conf looks like this:

            # configure the console
            set console close
            # configure the web server
            set web close

            create bundle static wan
            set bundle enable ipv6cp
            set iface name pppoe0
            set iface route default
            set iface disable on-demand
            set iface idle 0
            set iface enable tcpmssfix
            set iface up-script /usr/local/sbin/ppp-linkup
            set iface down-script /usr/local/sbin/ppp-linkdown
            set ipcp ranges
            #log -bund -ccp -chat -iface -ipcp -lcp -link

    create link static wan_link0 pppoe
            set link action bundle wan
            set link disable multilink
            set link keep-alive 10 60
            set link max-redial 0
            set link disable chap pap
            set link accept chap pap eap
            set link disable incoming
            set link mtu 1500
            set link mru 1500
            set auth authname ""
            set auth password pass
            set pppoe service ""
            set pppoe iface hn0

    I noticed that as the pppoe connection gets established ifconfig briefly shows an MTU of 1492, but then displays 1500 after a few seconds.

    ping -D -s 1472 tries to send the packet, but it does not succeed (no "message too long" or "frag needed and DF set"
    ping -D -s 1464 succeeds

    Which suggests an MTU of only 1492 is still possible.

    If I run route get

    route to:
    destination: default
          mask: default
        gateway: [ISP GW]
            fib: 0
      interface: pppoe0
          flags: <up,gateway,done,static>recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
          0        0        0        0      1492        1        0</up,gateway,done,static>

    Which shows that despite the higher MTU being showing in ifconfig this is not being used when it comes to 'route'.

    I think this may be an issue with pfSense in Hyper-V because I cannot set MTU 1508 on the LAN interface and use it (route continues to show 1500) - however when I do exactly the same when running from the Live CD the route mtu does get changed - For this reason, I've raised a new post to get to the bottom of handling jumbo frames within Hyper-V before I do any more testing with PPPOE. You can see this thread here:

  • I checked this.
    Seems mpd5 did not yet get support for claiming this MRU during PADI sending on establishment.
    I will give a quick look on supporting this and come back.

  • Hello!

    I just ran into quite the same troubles. I cannot set an mtu bigger than 1492 an my pppoe-wan.
    Are there any news on the efforts in this matter?

    Thank you

Log in to reply