RFC 2364

PPP Over AAL5

πŸ“… published July 1998, from ietf

RFC 2364: PPP Over AAL5 πŸ¦‹

okay bestie, so this is RFC 2364 and it's giving serious networking energy πŸ’… It's titled PPP Over AAL5 and it's a Standards Track doc from the Network Working Group, dated July 1998. The authors are G. Gross (Lucent Technologies), M. Kaycee (Paradyne), A. Lin (Shasta Networks), A. Malis (Ascend Communications), and J. Stephens (Cayman Systems) πŸ‘‘ The header doesn't list anything it obsoletes or updates, so it's standing on its own ✨

Status of this Memo ✨

This doc specifies an Internet standards track protocol for the Internet community, and it's literally asking for discussion and suggestions for improvements 🫢 If you want the current standardization state and status of this protocol, check the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited 🌸

Copyright (C) The Internet Society (1998). All Rights Reserved.

Abstract 🧚

The Point-to-Point Protocol (PPP) [1] is the standard way to carry multi-protocol datagrams over point-to-point links, and it's iconic for that πŸ’œ

This document explains how to use ATM Adaptation Layer 5 (AAL5) to frame PPP encapsulated packets πŸ¦‹

Applicability 🌈

This spec is for implementations that want the PPP goodies, like the Link Control Protocol, the Network-layer Control Protocols, authentication, and compression πŸ”₯ Those features need a point-to-point relationship between the peers. They aren't built for the multi-point setups you get in ATM and other multi-access environments, so don't try to force it πŸ™ˆ

1. Introduction πŸ“

ATM AAL5 is designed to give you virtual connections between end stations on the same network. These connections offer a packet delivery service with error detection, but no error correction. Not a dealbreaker, just know what you're getting πŸ’…

Most existing PPP implementations use ISO 3309 HDLC as the basis for their framing [3] ✨

So when an ATM network is set up with point-to-point connections, PPP can use AAL5 as its framing mechanism. Main character energy πŸ‘‘

2. Conventions πŸ’–

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they show up in this document, are to be read as described in [10] 🫢

3. AAL5 Layer Service Interface πŸŽ€

The PPP layer treats the underlying ATM AAL5 layer service as a bit-synchronous point-to-point link πŸ¦‹ In this setup, the PPP link corresponds to an ATM AAL5 virtual connection. The virtual connection MUST be full-duplex and point to point. It MAY be either dedicated (i.e. permanent, set up by provisioning) or switched (set up on demand) πŸ’… On top of that, the PPP/AAL5 service interface boundary MUST meet these requirements:

  • Interface Format - The PPP/AAL5 layer boundary presents an octet service interface to the AAL5 layer. There is no provision for sub-octets to be supplied or accepted πŸ“
  • Transmission Rate - The PPP layer does not impose any restrictions regarding transmission rate or the underlying ATM layer traffic descriptor parameters ✨
  • Control Signals - The AAL5 layer MUST provide control signals to the PPP layer which indicate when the virtual connection link has become connected or disconnected. These give the PPP layer its "Up" and "Down" events for the LCP state machine [1] πŸ”₯

4. Multi-Protocol Encapsulation 🧚

This spec uses the principles, terminology, and frame structure from "Multiprotocol Encapsulation over ATM Adaptation Layer 5" [4] πŸ’œ

Quick heads up: this doc doesn't re-explain what's already standardized in [4]. It's all about how the mechanisms in [4] get used to map PPP onto an AAL5-based ATM network 🌸 Section 1 within [4] defines two ways to identify the protocol type of the Protocol Data Unit (PDU) payload field. One is virtual circuit based multiplexing, and the other is Logical Link Control (LLC) encapsulation. With virtual circuit multiplexing, the end points agree on the payload's protocol type for each virtual circuit, either through provisioning or control plane procedures. With LLC encapsulation, the protocol type is spelled out for every PDU by an in-band LLC header, followed by the payload data 🫢

When carrying a PPP payload over AAL5, an implementation:

  1. MUST support virtual circuit multiplexed PPP payloads as described in section 5 below, by mutual configuration or negotiation of both end points. This technique is referred to as "VC-multiplexed PPP".
  2. MUST support LLC encapsulated PPP payloads on PVCs as described in section 6 below, by mutual configuration or negotiation of both end points. This technique is referred to as "LLC encapsulated PPP".
  3. For SVC set up, an implementation MUST negotiate using the Q.2931 [9] Annex C procedure, encoding the Broadband Lower Layer Interface (B-LLI) information element to signal either VC-multiplexed PPP or LLC encapsulated PPP. The details of this control plane procedure are described in section 7 πŸ’…
If an implementation is connecting through a Frame Relay/ATM FRF.8 [7] service inter-working unit to an RFC 1973 [6] end point, then it MUST use LLC encapsulated PPP payloads. Frame Relay/ATM FRF.8 inter-working units are exempted from the requirement to support VC-multiplexed PPP. This exemption lets the FR/ATM IWU stay compliant with FRF.8 when the PPP over AAL5 end point is inter-operating with an RFC 1973 end point πŸ™ˆ

5. Virtual Circuit Multiplexed PPP Over AAL5 πŸ¦‹

Here's the AAL5 PDU format, shown in figure 1 πŸ‘‘

                    AAL5 CPCS-PDU Format
              +-------------------------------+
              |             .                 |
              |             .                 |
              |        CPCS-PDU Payload       |
              |     up to 2^16 - 1 octets)    |
              |             .                 |
              +-------------------------------+
              |      PAD ( 0 - 47 octets)     |
              +-------------------------------+ -------
              |       CPCS-UU (1 octet )      |    ^
              +-------------------------------+    |
              |         CPI (1 octet )        |    |
              +-------------------------------+CPCS-PDU Trailer
              |        Length (2 octets)      |    |
              +-------------------------------|    |
              |         CRC (4 octets)        |    V
              +-------------------------------+ -------
                               Figure 1

The Common Part Convergence Sub-layer (CPCS)-PDU Payload field holds user information, up to 2^16 - 1 octets πŸ’–

The PAD field pads the CPCS-PDU so it fits exactly into the ATM cells. That way the last 48 octet cell payload made by the SAR sublayer has the CPCS-PDU Trailer right justified in the cell ✨

The CPCS-UU (User-to-User indication) field is used to transparently transfer CPCS user to user information. It has no function under the multi-protocol ATM encapsulation described in this memo, and it can be set to any value 🌈

The CPI (Common Part Indicator) field aligns the CPCS-PDU trailer to 64 bits. Possible additional functions are for further study in ITU-T. When only the 64 bit alignment function is used, this field shall be coded as 0x00 πŸ“

The Length field indicates the length, in octets, of the Payload field. The maximum value for the Length field is 65535 octets. A Length field coded as 0x00 is used for the abort function 🧚

The CRC field protects the entire CPCS-PDU except the CRC field itself πŸ”₯

A VC-multiplexed PPP frame SHALL constitute the CPCS-PDU payload, and it's defined as:

            +-------------+-------------+---------+
            | Protocol ID | Information | Padding |
            |  8/16 bits  |             |         |
            +-------------+-------------+---------+
                             Figure 2

Each of these fields is specifically defined in [1] πŸ’œ

6. LLC Encapsulated PPP Over AAL5 🌸

LLC encapsulated PPP over AAL5 is the alternative to VC-multiplexed PPP over AAL5. It's the other option, and honestly both are iconic 🫢

The AAL5 CPCS-PDU payload field is encoded as shown in figure 3. The pertinent fields in that diagram are:

  1. LLC header: 2 bytes encoded to specify a source SAP and destination SAP of routed OSI PDU (values 0xFE 0xFE), followed by an Un-numbered Information (UI) frame type (value 0x03) πŸ’…
  2. Network Layer Protocol IDentifier (NLPID) representing PPP (value 0xCF) ✨
  3. The PPP protocol identifier field, which can be either 1 or 2 octets long. See reference [1] πŸŽ€
  4. Followed by the PPP information field as per Figure 2 πŸ¦‹
          +-------------------------+ --------
          |  Destination SAP (0xFE) |     ^
          +-------------------------+     |
          |  Source SAP (0xFE)      | LLC header
          +-------------------------+     |
          |  Frame Type = UI (0x03) |     V
          +-------------------------+ --------
          |  NLPID = PPP (0xCF)     |
          +-------------------------+ --------
          |   Protocol Identifier   |     ^
          |     (8 or 16 bits)      |     |
          +-------------------------+ PPP payload
          |          .              |     |
          |          .              |     |
          |  PPP information field  |     |
          |          .              |     |
          |          .              |     |
          +-------------------------+     |
          |        padding          |     V
          +-------------------------+ --------
          |  PAD ( 0 - 47 octets)   |
          +-------------------------+ --------
          |  CPCS-UU (1 octet )     |     ^
          +-------------------------+     |
          |    CPI (1 octet )       |     |
          +-------------------------+CPCS-PDU Trailer
          |   Length (2 octets)     |     |
          +-------------------------|     |
          |    CRC (4 octets)       |     V
          +-------------------------+ --------


                     Figure 3

The end points MAY be bi-laterally provisioned to send other LLC-encapsulated protocols besides PPP across the same virtual connection 🌈 Here's the catch though: they MUST NOT send packets belonging to any protocol that has an active NCP within the PPP session πŸ™ˆ Implementations SHOULD do packet scheduling that minimizes the performance impact on the quality of service commitments associated with both the LLC-encapsulated PPP and non-PPP protocol flows. Being fair to everyone's traffic is very much the vibe 🫢πŸ”₯

7. Out-Of-Band Control Plane Signaling πŸ¦‹

okay so when you start a switched virtual circuit AAL5 connection, your SETUP message MUST ask for VC-multiplexed PPP, LLC-encapsulated PPP, or both πŸ’…. If you're offering both, the two B-LLI IEs go inside a Broadband Repeat Indicator IE, listed in order of preference. The called side MUST be able to accept a call that offers LLC-encapsulated PPP πŸŽ€. It MUST reject any setup request that only offers an encapsulation it doesn't support πŸ™…β€β™€οΈ. And if you're the caller offering both techniques, you MUST be able to negotiate LLC-encapsulated PPP 🫢.

for a virtual circuit multiplexed call carrying PPP, the ITU Q.2931 [9] B-LLI element's user information layer 3 protocol field gets set to ISO/IEC TR 9577 [5] in octet 7. The extension octets then specify an IPI value of PPP (0xCF). by definition, the first bytes of the AAL5 frame's payload are always a PPP header followed by a packet ✨.

for an LLC encapsulated call carrying PPP, the ITU Q.2931 B-LLI element's user information layer 2 protocol field gets set to LAN Logical Link Control (ISO/IEC8802-2) in octet 6. see appendix A of RFC 1755 [8] for an example πŸ“–. by definition, the first bytes of the AAL5 frame's payload are an LLC header, then a NLPID, then the PPP payload 🌸.


8. Detection And Recovery From Unsolicited PPP Encapsulation Transitions πŸ•΅οΈβ€β™€οΈ

so sometimes the virtual connection loses its state, and the PPP encapsulation technique can switch on its own without warning 😭. the spec defines detection and recovery for these two transitions:

  • VC-multiplexed PPP changing to LLC encapsulated PPP
  • LLC encapsulated PPP changing to VC-multiplexed PPP

when LLC-encapsulated PPP is in use, the inital 6 octets of the LCP packets are fe-fe-03-cf-c0-21. that sequence is the first 6 octets of the AAL5 frame 🧚. for VC-multiplexed PPP, initial LCP packets start with c0-21, which is the first 2 octets of an AAL5 frame πŸ“. once a LCP Configure-Request packet is received and recognized, the PPP link enters the Link Establishment phase 🌈.

once PPP reaches the Network-layer Protocol phase and has successfully negotiated a particular NCP for a PPP Protocol, if a frame shows up using an alternate but equivalent data encapsulation (as defined in [4]), then the PPP Link MUST do one of these:

  • For a SVC, immediately clear the call with the cause value 111, "protocol error, unspecified".
  • For a PVC: tear down the active NCPs, SHOULD generate an error message, enter the Termination state, and silently drop all received packets πŸ’€.

these policies stop the "black-holes" that happen when the peer loses state πŸ™ˆ. an implementation that needs PPP link configuration (and other negotiated PPP features, like authentication) MAY enter Termination state when configuration fails 🫠.


9. LCP Configuration Options πŸŽ€

the Magic Number LCP configuration option is RECOMMENDED, and the Protocol Field Compression (PFC) option is NOT RECOMMENDED πŸ“. an implementation MUST NOT request any of these options, and MUST reject a request for any of them:

  • Field Check Sequence (FCS) Alternatives,
  • Address-and-Control-Field-Compression (ACFC),
  • Asynchronous-Control-Character-Map (ACCM)

the Maximum-Receive-Unit (MRU) option MUST NOT be negotiated to a larger size than the maximum CPCS-SDU size specified in the associated direction for the virtual connection's traffic contract πŸ“.

viewed peer to peer, a PPP link can be bridged over multiple physical layer sections πŸŒ‰. for each AAL5 section, the bridging convertors MUST actively negotiate their LCP framing options, independently of the LCP framing options used by other physical layer sections ✨.

Implementation Note: when an ATM AAL5 PVC is in the "Stopped" state, it is RECOMMENDED that the implementation wait for Configure-Requests. see the implementation option in reference [1] section 4.2, the "Stopped State" sub-section πŸ“š.

10. Security Considerations πŸ”

okay this part is serious bestie, so read it properly πŸ₯Ή. generally, ATM networks are virtual circuit based, and security is implicit in the public data networking service provider's administration of Permanent Virtual Circuits (PVCs) between network boundaries. the probability of a security breach caused by mis-routed ATM cells is considered to be negligible πŸ›‘οΈ.

when a public ATM network supports Switched Virtual Circuits, the protocol model becomes analogous to traditional voice band modem dial up over the Public Telephone Switched Network (PTSN) πŸ“ž. the same PAP/CHAP authentication protocols that are already everywhere for Internet dial up access are used here too. so PPP over AAL5 security is at parity with those practices already established by the existing Internet infrastructure πŸ’….

applications that need stronger security are encouraged to use authentication headers, encrypted payloads, and/or ATM-layer security services πŸ”‘.

when using LLC-encapsulated PPP over a virtual connection, an end point can not assume that the PPP session authentication and related security mechanisms also secure the other LLC encapsulated flows on that same virtual connection. ngl this one is a big deal 😭🚨.

11. Acknowledgments 🫢

this design is based on work performed in the ADSL Forum's Packet Mode Working Group 🌸. it's inspired by "PPP in Frame Relay", RFC 1973, by William Simpson ✨. special thanks to Phil Rakity of Flowpoint, Tim Kwok of Microsoft, and David Allan of Nortel for their constructive review and commentary πŸ’–.


12. References πŸ“š

  • [1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, July 1994.
  • [2] The ATM Forum, "Frame based User-to-Network Interface (FUNI) Specification v2", af-saa-0088.000, May 1997.
  • [3] Simpson, W., Editor, "PPP in HDLC-like Framing", STD 51, RFC 1662, July 1994.
  • [4] Heinanen, J., "Multiprotocol Interconnect over AAL5", RFC 1483, July 1993.
  • [5] ISO/IEC DTR 9577.2, "Information technology - Telecommunications and Information exchange between systems - Protocol Identification in the network layer", 1995-08-16.
  • [6] Simpson, W., "PPP in Frame Relay", RFC 1973, June 1996.
  • [7] The Frame Relay Forum, "Frame Relay/ATM PVC Service Inter-working Implementation Agreement", FRF.8, April 1995.
  • [8] Perez, M., Liaw, F., Mankin, A., Hoffman, E., Grossman, D., and A. Malis, "ATM Signaling Support for IP over ATM", RFC 1755, February 1995.
  • [9] International Telecommunication Union, "Broadband Integrated Service Digital Network (B-ISDN) Digital Subscriber Signaling System No.2 (DSS2) User Network Interface Layer 3 Specification for Basic Call/Connection Control", ITU-T Recommendation Q.2931, (International Telecommunication Union: Geneva, 2/95)
  • [10] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

Chair's Address πŸ§‘β€πŸ’Ό

the working group can be contacted via the current chair:

Karl Fox
Ascend Communications
3518 Riverside Drive, Suite 101
Columbus, Ohio 43221

EMail: karl@ascend.com

Authors' Addresses πŸ’Œ

questions about this memo can also be directed to:

George Gross
Lucent Technologies, Inc
184 Liberty Corner Road
Warren, NJ 07059

Phone:   +1.908.580.4589
EMail: gmgross@lucent.com


Manu Kaycee
Paradyne Corporation
21 Bear Meadow Road
Londonderry, NH 03053-2168

Phone: +1.603.434.6088
EMail: mjk@nj.paradyne.com

Arthur Lin
Shasta Networks Inc.
249 Humboldt Court
Sunnyvale, CA 94089-1300

Phone: +1.408.747.5051
EMail: alin@shastanets.com


Andrew Malis
Ascend Communications, Inc.
1 Robbins Road
Westford, MA 01886

Phone: +1.978.952.7414
EMail: malis@ascend.com


John Stephens
Cayman Systems, Inc.
100 Maple Street
Stoneham, MA 02180

Phone: +1.617.279.1101
EMail: john@cayman.com

Copyright (C) The Internet Society (1998). All Rights Reserved.

this document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. however, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

the limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

this document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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. πŸ’œ

πŸ“¦ where this page comes from