RFC 2363

PPP Over FUNI

πŸ“… published July 1998, from ietf

PPP Over FUNI πŸ¦‹

Okay bestie, here's the header rundown ✨

  • Network Working Group: the group that wrote this πŸ’…
  • RFC number: 2363
  • Category: Standards Track πŸŽ€
  • Date: July 1998 πŸ“…
  • Authors: G. Gross (Lucent Technologies), M. Kaycee (Paradyne), A. Li (Shasta Networks), A. Malis (Ascend Communications), J. Stephens (Cayman Systems) πŸ‘‘
  • Obsoletes / Updates: the header doesn't list anything this one obsoletes or updates 🌸

Status of this Memo πŸ“œ

This doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions to make it better 🫢 For the official standardization state and status, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited πŸ’œ

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

Abstract ✨

PPP ([1]) is the go-to standard for sending multi-protocol datagrams over point-to-point links, and it's iconic for that πŸ‘‘

This document explains how to use the ATM Frame User Network Interface (FUNI) to frame PPP encapsulated packets πŸ¦‹

Applicability πŸŽ€

This spec is for implementations that want PPP's extras, like the Link Control Protocol, the Network-layer Control Protocols, authentication, and compression πŸ’… Those features need a point-to-point relationship between the peers, though. They weren't built for the multi-point setups you get in ATM and other multi-access environments πŸ™ˆ


1. Introduction 🌸

Okay so the ATM FUNI protocol gives you virtual connections between end stations on the same network 🧚 It offers a packet delivery service that does error detection but not error correction, which is a very specific vibe πŸ’€

Most existing PPP implementations use ISO 3309 HDLC as the basis for their framing ([3]) πŸ’œ

When an ATM network is set up with point-to-point connections, PPP can use FUNI as its framing mechanism ✨

2. Conventions πŸŽ€

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

3. FUNI Layer Service Interface πŸ¦‹

The PPP layer treats the underlying ATM FUNI layer service as a bit-synchronous point-to-point link πŸ”₯ In this setup, the PPP link is basically an ATM FUNI virtual connection πŸ’– The virtual connection MUST be full-duplex and point to point 🌈 It MAY be dedicated (permanent, set up by provisioning) or switched (set up on demand) 🧚 On top of that, the PPP/FUNI service interface boundary MUST meet these requirements:

  • Interface Format: the PPP/FUNI layer boundary shows an octet service interface to the FUNI layer 🌸 Sub-octets aren't provided or accepted at all, so no sub-octet stuff πŸ™ˆ
  • Transmission Rate: the PPP layer doesn't put any limits on transmission rate or on the underlying ATM layer traffic descriptor parameters πŸ‘‘
  • Control Signals: the FUNI layer MUST give the PPP layer control signals that say when the virtual connection link is connected or disconnected πŸ”₯ Those signals become the "Up" and "Down" events for the LCP state machine ([1]) inside the PPP layer πŸ’…

4. Multi-Protocol Encapsulation πŸ’œ

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

Important bit: this doc is NOT re-explaining what's already standardized in [4] πŸ™ˆ Its whole job is to spell out how the mechanisms in [4] get used to map PPP onto a FUNI-based ATM network πŸ¦‹ Section 1 within [4] defines two ways to identify the protocol type of the PDU payload field: virtual circuit based multiplexing, and Logical Link Control (LLC) encapsulation 🧚 With the first, the end points agree on the payload's protocol type for each virtual circuit ahead of time, using provisioning or control plane procedures ✨ With LLC encapsulation, the protocol type is spelled out on every single PDU by an in-band LLC header, followed by the payload data 🫢

When an implementation carries a PPP payload over FUNI, it:

  1. MUST support virtual circuit multiplexed PPP payloads as described in section 5 below, set up by mutual configuration or negotiation between both end points. This technique is called "VC-multiplexed PPP" πŸ’–
  2. MUST support LLC encapsulated PPP payloads on PVCs as described in section 6 below, set up by mutual configuration or negotiation between both end points. This technique is called "LLC encapsulated PPP" 🌈
  3. For SVC set up, 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 in section 7 🧚

Heads up, this one's a special case 🚨 If an implementation connects 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 exempt from the requirement to support VC-multiplexed PPP 🌸 That exemption lets the FR/ATM IWU stay compliant with FRF.8 when the PPP over FUNI end point is interoperating with an RFC 1973 end point πŸ‘‘

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

The FUNI protocol data unit (PDU) format ([2]) looks like this πŸ’–

                   +-------------------------------+
                   |              Flag             |
                   +-------------------------------+---------
                   |           FUNI Header         |    ^
                   +-------------------------------+    |
                   |                               |    |
                   |                               |    |
                   |            User SDU           | FUNI PDU
                   |                               |    |
                   |                               |    |
                   +-------------------------------+    |
                   |   FUNI FCS (2 or 4 octets)    |    v
                   +-------------------------------+---------
                   |              Flag             |
                   +-------------------------------+
                                Figure 1

The FUNI Header includes a 10-bit or 24-bit Frame Address (a.k.a. VPI/VCI bits), a Congestion Notification bit, a Congestion Loss Priority bit, and four Reserved bits 🧚

The User SDU field holds user information of up to 4096 octets (or up to 64K, optionally) 🌈

The FCS field protects the entire FUNI PDU except for the FCS field itself πŸ”₯

A VC-multiplexed PPP frame SHALL make up the User Service Data Unit (SDU) field, defined as shown in figure 2 ✨

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

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

6. LLC Encapsulated PPP Over FUNI 🌸

LLC encapsulated PPP over FUNI is the alternative to VC-multiplexed PPP over FUNI πŸ’œ

The FUNI SDU payload field is encoded as shown in figure 3 πŸŽ€ The important fields in that diagram are:

  1. LLC header: 2 bytes that specify a source SAP and destination SAP of a routed OSI PDU (values 0xFE 0xFE), followed by an Un-numbered Information (UI) frame type (value 0x03) πŸ¦‹
  2. NLPID representing PPP (value 0xCF) 🧚
  3. The PPP protocol identifier field, which can be either 1 or 2 octets long. See reference [1] 🫢
  4. Then 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
                  +-------------------------+ --------
                  | FUNI FCS (2 or 4 octets)| FUNI trailer
                  +-------------------------+---------


                                   Figure 3

The end points MAY be bilaterally provisioned to send other LLC-encapsulated protocols besides PPP over the same virtual connection 🌈 However, they MUST NOT send packets belonging to any protocol that has an active NCP within the PPP session 🚨 Implementations SHOULD do packet scheduling that keeps the performance impact on the quality of service commitments for both the LLC-encapsulated PPP and non-PPP protocol flows as small as possible πŸ’…πŸ”₯

7. Out-Of-Band Control Plane Signaling 🧚

okay so when you're the caller setting up a switched virtual circuit FUNI connection, you MUST ask for VC-multiplexed PPP, LLC-encapsulated PPP, or both in the SETUP message πŸ’…. If you're offering both techniques, the two B-LLI IEs get packed into a Broadband Repeat Indicator IE, listed in order of preference ✨.

The called side is a bit of a gatekeeper, babe. It MUST be able to accept an incoming call that offers LLC-encapsulated PPP in the caller's request 🫢. It MUST reject any call setup request that only offers an encapsulation it doesn't support πŸ™…β€β™€οΈ. And anyone originating a call that offers both techniques MUST be able to negotiate the use of LLC-encapsulated PPP πŸ”₯.

When you're originating a virtual circuit multiplexed call that's going to carry a PPP payload, the ITU Q.2931 [9] B-LLI element user information layer 3 protocol field gets set to pick ISO/IEC TR 9577 [5] in octet 7 πŸŽ€. The extension octets say the IPI value is PPP (0xCF). By definition, the first bytes of the FUNI frame's payload field will always hold a PPP header followed by a packet πŸ’–.

For an LLC encapsulated call carrying a PPP payload, the ITU Q.2931 B-LLI element user information layer 2 protocol field gets set to select LAN Logical Link Control (ISO/IEC8802-2) in octet 6. Check RFC 1755 [8] appendix A if you want an example 🌸. By definition, the first bytes of the FUNI frame's payload field will contain an LLC header, followed by a NLPID and the PPP payload 🧠.

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

ngl this one is so real. When the virtual connection loses state, the PPP encapsulation technique can uni-laterally and unexpectedly switch on its own 😭. The spec defines detection and recovery procedures for these state transitions:

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

Here's how you can spot it. When LLC-encapsulated PPP is in use, the initial 6 octets of the LCP packets contain the sequence fe-fe-03-cf-c0-21, and that sequence makes up the first 6 octets of the FUNI frame πŸ‘€. With VC-multiplexed PPP, initial LCP packets contain the sequence c0-21 instead πŸ¦‹.

For FUNI, that sequence comes right after the FUNI Header πŸ’…. Once a LCP Configure-Request packet is received and recognized, the PPP link enters the Link Establishment phase 🌈.

Now the big drama. Once PPP has reached the Network-layer Protocol phase and 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:

  • 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 rules exist to prevent "black-holes" that happen when the peer loses state. Total chaos avoided πŸ™ˆ.

An implementation that requires PPP link configuration, plus other negotiated PPP features (like authentication), MAY enter the Termination state when configuration fails πŸ“.

9. LCP Configuration Options πŸŽ€

so the Magic Number LCP configuration option is RECOMMENDED ✨, but the Protocol Field Compression (PFC) option is NOT RECOMMENDED πŸ™…β€β™€οΈ. An implementation MUST NOT request any of the following options, and it 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 FUNI section, the LCP framing options MUST be actively negotiated by the bridging convertors, independently of the LCP framing options used by other physical layer sections 🫢.

Implementation Note: When an ATM FUNI 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 πŸ”

this section is serious, bestie, so pay attention 🚨. 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 already widely used for Internet dial up access get leveraged here. As a result, PPP over FUNI security is at parity with the 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 πŸ”’.

Important: 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. Don't get caught slipping 😭.

11. Acknowledgments 🫢

This design is based on work done 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