RFC 4638

Accommodating a Maximum Transit Unit/Maximum Receive Unit (MTU/MRU) Greater Than 1492 in the Point-to-Point Protocol over Ethernet (PPPoE)

๐Ÿ“… published September 2006, from ietf

Accommodating MTU/MRU Greater Than 1492 in PPPoE ๐ŸŽ€

Bestie, this RFC is literally about letting PPPoE frames get bigger than the old 1492 limit so we stop fragmenting everything ๐Ÿ˜ญ๐Ÿซถ. Here's the vibe: it's RFC 4638, titled "Accommodating a Maximum Transit Unit/Maximum Receive Unit (MTU/MRU) Greater Than 1492 in the Point-to-Point Protocol over Ethernet (PPPoE)". Five people wrote it: P. Arberg, D. Kourkouzelis, M. Duckett, T. Anschutz, and J. Moisand, from Redback Networks, BellSouth, and Juniper Networks. It's Informational (so it's giving advice, not a standard ๐Ÿ’…), and it's from September 2006. The title block doesn't list anything it obsoletes or updates, so it doesn't replace or change any other RFCs ๐ŸŒธ.


Status of This Memo โœจ

So the official vibe check: this memo gives information to the Internet community. It is not an Internet standard of any kind ๐Ÿฆ‹. Distribution is unlimited, so share the love ๐Ÿ’–.

Copyright (C) The Internet Society (2006). Mine, yours, the Internet Society's ๐Ÿ™ˆ.

IESG Note ๐Ÿ’€

Okay, real talk from the IESG ๐Ÿ”ฅ. As of writing, there's no current IEEE standard that supports "jumbo frames" (MTU greater than 1500). The doc has recommended mechanisms to detect path problems, but interoperability and reliability of non-standard extensions can't be assured ๐Ÿ˜ฌ. So both implementors and users should be careful with this, no cap.

Abstract ๐ŸŽ€

PPPoE, as described in RFC 2516, forces a negotiated Maximum Receive Unit (MRU) of 1492. This document fixes that by letting the negotiated MRU go above 1492, so next-generation broadband networks can fragment less ๐Ÿงš.

Table of Contents ๐Ÿ“

1. Introduction ....................................................2
2. Terminology .....................................................4
3. Proposed Solution ...............................................4
4. PPPoE Discovery Stage ...........................................5
5. LCP Considerations ..............................................5
   5.1. MRU Negotiations ...........................................5
   5.2. MRU Test and Troubleshooting ...............................6
6. Security Considerations .........................................7
7. IANA Considerations .............................................7
8. Acknowledgements ................................................7
9. Normative References ............................................7
10. Informative References .........................................8

1. Introduction โœจ

Okay so broadband designs are glowing up ๐Ÿ’…. We're moving from the old setup where a PC starts the PPPoE session over a combined Ethernet/ATM network (Figure 1) to smarter PPPoE-capable Residential Gateways (RG) and Gigabit Ethernet/ATM designs (Figures 2 and 3). Because of that, we need to bump up the maximum transmit and receive unit in PPPoE so there's less fragmentation going on in the network ๐Ÿฆ‹.

         <------------------ PPPoE session ------------------>

                                         +-----+           +-----+
       +--+              +---+           |     |           |     |
       |PC|--------------|CPE|-----------|DSLAM|-----------| BRAS|
       +--+  <Ethernet>  +---+   <ATM>   |     |   <ATM>   |     |
                                         +-----+           +-----+

        Figure 1.  Initial broadband network designs with PPPoE

In Figure 1, fragmentation usually isn't a problem, because the subscriber session is PPPoE end to end from the PC to the BRAS ๐Ÿ’–. So a PPP-negotiated MRU of 1492 octets is totally fine, since it keeps the biggest PPPoE frame at the standard Ethernet MTU of 1500 octets. Main character energy ๐Ÿ‘‘.

         <----- IPoE -----> <--------- PPPoE session --------->

                                         +-----+            +-----+
       +--+              +---+           |     |            |     |
       |PC|--------------| RG|-----------|DSLAM|------------| BRAS|
       +--+  <Ethernet>  +---+   <ATM>   |     |   <GigE>   |     |
                                         +-----+            +-----+

     Figure 2.  Next-generation broadband network designs with PPPoE

Figure 2 is where things get messy ๐Ÿ˜ญ. The subscriber session is now a mix of IPoE and PPPoE, so fragmentation becomes a major problem. IPoE typically uses a Maximum Transit Unit (MTU) of 1500 octets. But when the Residential Gateway and the Broadband Remote Access Server (BRAS) are the PPPoE session endpoints and they negotiate an MTU/MRU of 1492 octets, the network ends up with a ton of fragmented packets ๐Ÿ’€.

      <----- IPoE -----> <---- PPPoA ----> <- PPPoE session ->

                                        +-----+            +-----+
     +--+              +---+            |     |            |     |
     |PC|--------------| RG|------------|DSLAM|------------| BRAS|
     +--+  <Ethernet>  +---+    <ATM>   |     |   <GigE>   |     |
                                        +-----+            +-----+


       <-------------- PPPoA -------------> <- PPPoE session ->

                                        +-----+            +-----+
     +--+              +---+            |     |            |     |
     |PC|--------------|CPE|------------|DSLAM|------------| BRAS|
     +--+    <ATM>     +---+    <ATM>   |     |   <GigE>   |     |
                                        +-----+            +-----+

   Figure 3.  Broadband network designs with PPPoA-to-PPPoE conversion

Figure 3 is the one the DSL-Forum studied while migrating to Ethernet for broadband aggregation networks ๐ŸŒธ. Here fragmentation isn't the only issue when MRU values differ between Point-to-Point Protocol over AAL5 (PPPoA) and PPPoE sessions ๐Ÿ™ˆ.

In this setup the subscriber session is a PPP session running over a mix of PPPoA and PPPoE. The PPP/PPPoA host usually negotiates a 1500-octet MRU. Lots of PPP/PPPoA hosts in Customer Premises Equipment (CPE) are already out there and don't support a 1492-octet MRU ๐Ÿ˜ฌ. That becomes a problem for the BRAS (the PPPoE server) if it has to strictly follow RFC 2516 [1]. And for PPP/PPPoA hosts that can negotiate 1492, we're right back to the fragmentation problem ๐Ÿ”.

2. Terminology ๐Ÿงš

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [3]. Bestie, these words are doing a LOT of work, so read them carefully ๐Ÿซถ.

Here's the abbreviation cheat sheet ๐Ÿ“:

   ATM   - Asynchronous Transfer Mode
   PPP   - Point-to-Point Protocol
   PPPoA - PPP over AAL5
   PPPoE - PPP over Ethernet
   MTU   - Maximum Transmit Unit
   MRU   - Maximum Receive Unit
   PC    - Personal Computer
   CPE   - Customer Premises Equipment
   RG    - Residential Gateway
   BRAS  - Broadband Remote Access Server
   DSLAM - Digital Subscriber Line Access Multiplexer
   PPPoE - client PC, RG, or CPE that initiates a PPPoE session
   PPPoE - server BRAS terminating PPPoE sessions initiated by client
   PADI  - PPPoE Active Discovery Initiation
   PADO  - PPPoE Active Discovery Offer
   PADR  - PPPoE Active Discovery Request
   PADS  - PPPoE Active Discovery Session-confirmation

3. Proposed Solution ๐Ÿ’…

This procedure doesn't strictly follow the IEEE standards for Ethernet packet size ๐Ÿ™ƒ. Instead it relies on a widely deployed behavior: supporting frames that use the Ethernet packet format but go past the maximum packet lengths defined by [4]. It's giving "it works in the real world" energy โœจ.

Next-generation broadband networks are built on Ethernet systems that support baby-giants and jumbo frames, with payloads bigger than the normal Ethernet MTU of 1500 octets ๐Ÿ”ฅ. So a BRAS acting as a PPPoE server MUST support PPPoE MRU negotiations larger than 1492 octets, to cut down on fragmented packets in networks like the ones in Section 1 ๐ŸŒˆ.

By default, the Maximum-Receive-Unit (MRU) option MUST follow the rules set forward in RFC 1661 [2]. But it MUST NOT be negotiated to a size larger than 1492, so it stays compatible with Ethernet network segments limited to 1500-octet frames ๐ŸŽ€. Here's the math: the PPPoE header is 6 octets and the PPP Protocol ID is 2 octets. So the PPP MRU MUST NOT be greater than 1492 ๐Ÿงฎ.

Heads up bestie: the default is 1492. Going higher only happens when the client sends the optional PPPoE tag described next, so don't skip it ๐Ÿ™ˆ.

There's an optional PPPoE tag called "PPP-Max-Payload" ๐Ÿงš. It lets a PPPoE client override the default by saying the maximum PPP payload size it can handle in both the sending and receiving directions. When the PPPoE server gets this tag, it MAY allow an MRU larger than 1492 and an MTU larger than 1492. That's subject to its own local configuration and the RFC 1661 [2] rules, and it has to stay within the limit the PPPoE client gave ๐Ÿ’–.

4. PPPoE Discovery Stage ๐Ÿ’œ

Okay so if a PPPoE client wants an MTU/MRU higher than 1492 octets, it MUST include an optional PPP-Max-Payload Tag in its PADI and PADR packets ๐Ÿ“ฆ. If the PPPoE server can support an MTU/MRU higher than 1492 octets, it MUST respond by echoing the client's tag in the PADO and PADS packets, as long as it got the PPP-Max-Payload tag from the client ๐Ÿซถ.

Here's what the tag looks like ๐Ÿ“:

   Tag-name:   PPP-Max-Payload
   Tag-value:  0x0120
   Tag-length: 2 octets
   Tag-value:  binary encoded value (max PPP payload in octets)

   Tag-description:
   This TAG indicates that the client and server are capable of
   supporting a given maximum PPP payload greater than 1492 octets for
   both the sending and receiving directions.  Note that this value
   represents the PPP payload; therefore it is directly comparable with
   the value used in the PPP MRU negotiation.

The tag basically says "both of us can handle a PPP payload bigger than 1492 octets, in both directions" ๐Ÿฆ‹. The number is the PPP payload itself, so you can compare it straight to the PPP MRU value you negotiate. Literally so clean ๐Ÿงผโœจ.

5. LCP Considerations ๐ŸŒธ

5.1. MRU Negotiations

okay so Ethernet (without jumbo frames) has a max payload of 1500 octets ๐Ÿ“ฆ, the PPPoE header eats 6 octets, and the PPP Protocol ID takes 2 more. that leaves 1492 ๐Ÿซถ which is why the Maximum-Receive-Unit (MRU) option MUST NOT be negotiated to something bigger than 1492, unless both the PPPoE client and server said in the PPPoE Discovery Stage that they can handle a larger MRU โœจ

the initial MRU negotiation for the PPP/PPPoE server MUST follow a flow as shown below:

   If PPPoE {
   PPP_MRU_Max = 1492
   If (PPP-Max-Payload-Tag) AND (PPP-Max-Payload-Tag > 1492)
   Then PPP_MRU_Max = min (PPP-Max-Payload-Tag, Interface MTU-8)
   }
   "Normal" PPP_MRU_Negotiation (PPP_MRU_Max)

if the PPP-Max-Payload tag is present and bigger than 1492, it MUST be considered along with the server's interface MTU settings when the max value gets picked for the normal RFC 1661 [2] MRU negotiation, which is the bit that decides the actual MRU ๐ŸŽ€

if the PPP-Max-Payload tag isn't there, or it's there but sits at 1492 or below, then the existing MRU constraint of 1492 octets MUST stay applicable. this keeps backward compatibility, which is so important bestie ๐Ÿฅน๐Ÿซถ

the TL;DR of all that ๐Ÿ’…:

  1. When a "PPP-Max-Payload" tag is received,
    • a. the value in this tag will indicate the maximum MRU allowed to be accepted or suggested in an MRU negotiation; and
    • b. if MRU is not negotiated, then RFC 1661 [2] will set the default MRU at 1500. this means the "PPP-Max-Payload" tag can have a value greater than 1500, but in this case RFC 1661 [2] sets the default MRU to 1500, and only if MRU is negotiated higher (up to maximum payload) will the "PPP-Max-Payload" tag value be used ๐ŸŒธ
  2. When a "PPP-Max-Payload" tag is not received by either end, then RFC 2516 [1] sets the rule. ๐Ÿงš

5.2. MRU Test and Troubleshooting

okay this part is giving "check before you commit" ๐Ÿ” if the MRU gets negotiated to something larger than 1492 octets, the sending side SHOULD have the option of sending one or more MRU-sized Echo-Request packets once the session is opened. this lets it test that the receiving side and any intermediate Ethernet segments and equipment can actually handle that packet size ๐Ÿฆ‹

if no Echo-Replies come back, the sending side MAY choose to repeat the test with 1492 octets Echo-Request packets. and if those packets get replies, the sending side MUST not send packets bigger than 1492 octets for this session. ๐Ÿ’€ the vibe is "we tried big, it didn't work, we go smaller" ๐Ÿ™ˆ

this capability SHOULD be enabled by default. it SHOULD be configurable, and it MAY be disabled on networks where there is some prior knowledge showing that the test isn't necessary ๐ŸŒˆ


6. Security Considerations โœจ

okay bestie, this section is short but it's important ๐Ÿ”ฅ this document does not introduce new security issues. the security considerations pertaining to the original PPPoE protocol [1] remain relevant, so go read those too ๐Ÿ’œ

7. IANA Considerations

this document defines a new value in a space that currently has no IANA registry ๐Ÿง there is work in progress to define a registry [5], and that document already contains the value assigned here. no IANA action is required for this document โœ…

8. Acknowledgements

the authors want to thank Prakash Jayaraman, Amit Cohen, Jim Ellis, David Thorne, John Reid, Oliver Thorp, Wojciech Dec, Jim Wilks, Mark Townsley, Bart Salaets, Tom Mistretta, Paul Howard, Dave Bernard, and Darren Nobel for their contributions and comments to this document ๐Ÿซถ๐Ÿ’–

9. Normative References

[1] Mamakos, L., Lidl, K., Evarts, J., Carrel, D., Simone, D., and R. Wheeler, "A Method for Transmitting PPP Over Ethernet (PPPoE)", RFC 2516, February 1999.

[2] Simpson, W., "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, July 1994.

[3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[4] Institute of Electrical and Electronic Engineers, IEEE Std 802.3-2005, "IEEE Standard for Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications - Draft amendment to - Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications - Media Access Control Parameters, Physical Layers and Management Parameters", December 2005. ๐Ÿ“š

10. Informative References

[5] Arberg, P. and V. Mammoliti, "IANA Considerations for PPP over Ethernet (PPPoE), Work in Progress, June 2006. ๐ŸŒŸ

Authors' Addresses

Peter Arberg Redback Networks, Inc. 300 Holger Way San Jose, CA 95134

EMail: parberg@redback.com

Diamantis Kourkouzelis Redback Networks, Inc. 300 Holger Way San Jose, CA 95134

EMail: diamondk@redback.com

Mike Duckett BellSouth Telecommunications, Inc. 575 Morosgo Drive Atlanta, GA 30324

EMail: mike.duckett@bellsouth.com

Tom Anschutz BellSouth Science and Technology 725 W. Peachtree St. Atlanta, GA 30308

EMail: tom.anschutz@bellsouth.com

Jerome Moisand Juniper Networks, Inc. 10 Technology Park Drive Westford, MA 01886

EMail: jmoisand@juniper.net

Copyright (C) The Internet Society (2006). ๐Ÿฉท

this document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

this document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

the IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. nor does it represent that it has made any independent effort to identify any such rights. information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

copies of IPR disclosures made to the IETF Secretariat, and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification, can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

the IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. please address the information to the IETF at ietf-ipr@ietf.org. ๐Ÿ“ฌ

Acknowledgement

funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from