Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    if_pppoe: Is PPPoE MRU/MTU auto-negotiation not supported?

    Scheduled Pinned Locked Moved General pfSense Questions
    7 Posts 2 Posters 301 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      azalea
      last edited by

      pfSense does not set MTU correctly when "if_pppoe" is enabled.(2.8.0-RELEASE)

      My ISP's PPPoE specification is MRU/MTU=1454.
      The MTU setting for pfSense is blank.

      if_pppoe enabled:
      The interface status shows MTU as 1492.
      The ppp status log shows nothing.

      if_pppoe disabled(mpd5):
      The interface status shows the MTU as 1454.
      The ppp status log shows that during MRU/MTU auto-negotiation, pfSense received "Configure Request MRU=1454" from the ISP and that pfSense sent "ConfigAck MRU=1454" to the ISP. It also shows that pfSense sent "ConfigReq MRU=1492" to the ISP and that pfSense received "Configure Ack MRU=1492" from the ISP.

      1 Reply Last reply Reply Quote 0
      • stephenw10S Offline
        stephenw10 Netgate Administrator
        last edited by

        Hmm, interesting question! I don't think I've ever seen an ISP that supported/required that.

        I assume it works as expected if you set the MTU manually?

        1 Reply Last reply Reply Quote 0
        • A Offline
          azalea
          last edited by azalea

          I assume it works as expected if you set the MTU manually?

          When I manually set the MTU, the interface status shows MTU=1454.
          I think this is a useful workaround.

          I don't think I've ever seen an ISP that supported/required that.

          I think that many ISPs set MRU to the default (1492), so they don't include MRU in the LCP negotiation options.
          (If MRU is not included in the options, the MRU will be assumed to be the default (1492).)
          My ISP sets the MRU to 1454, so they include MRU in the LCP negotiation options.

          There is no record in the ppp status log, so the following is a guess.

          The PPPoE connection was finally completed, which means that pfSense accepted the ISP's "MRU=1454" in the LCP negotiation.
          (My ISP will not set the MRU option to anything other than 1454. If pfSense does not accept "MRU=1454", the PPPoE connection will not complete.)
          Even though pfSense accepted the ISP's "MRU=1454", pfSense set the MTU to 1492 instead of 1454.

          If this is correct, I think it is inappropriate processing that does not follow the results of negotiations with the ISP.

          1 Reply Last reply Reply Quote 0
          • stephenw10S Offline
            stephenw10 Netgate Administrator
            last edited by

            Indeed, if that is the case we should resolve it. The next version of the module will have far better granular logging.

            Let me see if I can find anything...

            1 Reply Last reply Reply Quote 0
            • stephenw10S Offline
              stephenw10 Netgate Administrator
              last edited by

              Ok one thing you can do to get more info here is run at the CLI:

              ifconfig pppoe0 down
              ifconfig pppoe0 debug
              ifconfig pppoe0 up
              

              Then check the system or ppp logs. You will want to disable debbugging again with ifconfig pppoe0 -debug once it's reconnected though because it creates a lot of logs.

              I don't see MTU/MRU negotiated on my test connection here but it uses 1492 so it may simply not send that.

              1 Reply Last reply Reply Quote 1
              • A Offline
                azalea
                last edited by

                I tried to get ppp status log in debug mode.

                The conf-req received from the ISP contains a few options.
                (Because len=19)
                But it's unclear what the options and values are.
                (Because "opts:" and "opt values:" are empty)

                I hope that "next version of the module" will show the opts and opt values.

                Below is a part of the LCP negotiation log:
                if_pppoe: pppoe0: lcp up(starting)
                if_pppoe: pppoe0: lcp starting->req-sent
                if_pppoe: pppoe0: lcp output <conf-req id=0x11 len=14
                if_pppoe: pppoe0 (8864) state=3, session=0x4aba output -> 00:12:e2:70:89:43, len=22
                if_pppoe: pppoe0: lcp input(req-sent): <conf-req id=0x1 len=19
                if_pppoe: pppoe0: lcp parse opts:
                if_pppoe: pppoe0: lcp parse opt values:
                if_pppoe: pppoe0: lcp output <conf-ack id=0x1 len=19
                if_pppoe: pppoe0 (8864) state=3, session=0x4aba output -> 00:12:e2:70:89:43, len=27
                if_pppoe: pppoe0: lcp req-sent->ack-sent
                if_pppoe: pppoe0: lcp input(ack-sent): <conf-ack id=0x11 len=14
                if_pppoe: pppoe0: lcp ack-sent->opened
                if_pppoe: pppoe0: lcp tlu

                1 Reply Last reply Reply Quote 0
                • stephenw10S Offline
                  stephenw10 Netgate Administrator
                  last edited by

                  Yup more and better logging is coming. However it also looks like there is an issue with the negotiated MRU/MTU value so a fix for that is in the works.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.