RFC 1598 PROPOSED STANDARD PPP · X.25 · FRAMING

PPP in X.25

How to use X.25 virtual circuits as the framing layer for PPP, and how a call announces it.

On rfc-editor.org ↗
PUBLISHED
March 1994
AUTHORS
W. Simpson
STREAM
IETF
PPP NLPID
CF hex
IP NLPID
CC
FLAG
0x7e
INITIAL MRU
1600 octets
NETWORK LAYER MTU
No more than 1500 unless peer MRU is 2048 or greater
DOI
10.17487/RFC1598

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         W. Simpson
Request for Comments: 1598                                    Daydreamer
Category: Standards Track                                     March 1994


                              PPP in X.25



Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   The Point-to-Point Protocol (PPP) [1] provides a standard method for
   transporting multi-protocol datagrams over point-to-point links.
   This document describes the use of X.25 for framing PPP encapsulated
   packets.

   This document is the product of the Point-to-Point Protocol Working
   Group of the Internet Engineering Task Force (IETF).  Comments should
   be submitted to the ietf-ppp@merit.edu mailing list.

Applicability

   This specification is intended for those implementations which desire
   to use facilities which are defined for PPP, such as the Link Control
   Protocol, Network-layer Control Protocols, authentication, and
   compression.  These capabilities require a point-to-point
   relationship between peers, and are not designed for multi-point or
   multi-access environments.

                           Table of Contents


     1.     Introduction ..........................................    1

     2.     Physical Layer Requirements ...........................    2

     3.     The Data Link Layer ...................................    2
        3.1       Frame Format ....................................    3
        3.2       Modification of the Basic Frame .................    3

     4.     Call Setup ............................................    4

     5.     Configuration Details .................................    5

     SECURITY CONSIDERATIONS ......................................    6

     REFERENCES ...................................................    6

     ACKNOWLEDGEMENTS .............................................    6

     CHAIR'S ADDRESS ..............................................    7

     AUTHOR'S ADDRESS .............................................    7




1.  Introduction

   CCITT recommendation X.25 [2] describes a network layer protocol
   providing error-free, sequenced, flow controlled, virtual circuits.
   X.25 includes a data link layer, X.25 LAPB, which uses ISO 3309, 4335
   and 6256.

   PPP also uses ISO 3309 HDLC as a basis for its framing [3].

   When X.25 is configured as a point-to-point circuit, PPP can use X.25
   as a framing mechanism, ignoring its other features.  This is
   equivalent to the technique used to carry SNAP headers over X.25 [4].

   At one time, it had been hoped that PPP HDLC frames and X.25 frames
   would co-exist on the same links.  Equipment could gradually be
   converted to PPP.  Subsequently, it has been learned that some
   switches actually remove the X.25 header, transport packets to
   another switch using a different protocol such as Frame Relay, and
   reconstruct the X.25 header at the final hop.  Co-existance and
   gradual migration are precluded.

2.  Physical Layer Requirements

   PPP treats X.25 framing as a bit synchronous link.  The link MUST be
   full-duplex, but MAY be either dedicated (permanent) or switched.

   Interface Format

      PPP presents an octet interface to the physical layer.  There is
      no provision for sub-octets to be supplied or accepted.

   Transmission Rate

      PPP does not impose any restrictions regarding transmission rate,
      other than that of the particular X.25 interface.

   Control Signals

      Implementation of X.25 requires the provision of control signals,
      which indicate when the link has become connected or disconnected.
      These in turn provide the Up and Down events to the LCP state
      machine.

      Because PPP does not normally require the use of control signals,
      the failure of such signals MUST NOT affect correct operation of
      PPP.  Implications are discussed in [2].

   Encoding

      The definition of various encodings is the responsibility of the
      DTE/DCE equipment in use, and is outside the scope of this
      specification.

      While PPP will operate without regard to the underlying
      representation of the bit stream, X.25 requires NRZ encoding.



3.  The Data Link Layer

   This specification uses the principles, terminology, and frame
   structure described in "Multiprotocol Interconnect on X.25 and ISDN
   in the Packet Mode" [4].

   The purpose of this specification is not to document what is already
   standardized in [4].  Instead, this document attempts to give a
   concise summary and point out specific options and features used by
   PPP.

3.1.  Frame Format

   Since both "PPP in HDLC Framing" [3] and X.25 use ISO 3309 as a basis
   for framing, the X.25 header is easily substituted for the smaller
   HDLC header.  The fields are transmitted from left to right.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+
   |  Flag (0x7e)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Address    |    Control    |D|Q| SVC# (hi) |   SVC# (lo)   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |p(r) |M|p(s) |0|         PPP Protocol          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The PPP Protocol field and the following Information and Padding
   fields are described in the Point-to-Point Protocol Encapsulation
   [1].



3.2.  Modification of the Basic Frame

   The Link Control Protocol can negotiate modifications to the basic
   frame structure.  However, modified frames will always be clearly
   distinguishable from standard frames.

   Address-and-Control-Field-Compression

      Because the Address and Control field values are not constant, and
      are modified as the frame is transported by the network switching
      fabric, Address-and-Control-Field-Compression MUST NOT be
      negotiated.

   Protocol-Field-Compression

      Note that unlike the HDLC framing, the X.25 framing does not align
      the Information field on a 32-bit boundary.  Alignment to a 16-bit
      boundary occurs when the Protocol field is compressed to a single
      octet.  When this improves throughput, Protocol-Field-Compression
      SHOULD be negotiated.

4.  Call Setup

   When the link is configured as a Permanent Virtual Circuit (PVC),
   support for Switched Virtual Circuit (SVC) call setup and clearing is
   not required.  Calls are Established and Terminated using PPP LCP
   packets.

   When the link is configured as a Switched Virtual Circuit (SVC), the
   first octet in the Call User Data (CUD) Field (the first data octet
   in the Call Request packet) is used for protocol demultiplexing, in
   accordance with the Subsequent Protocol Identifier (SPI) in ISO/IEC
   TR 9577 [5].  This field contains a one octet Network Layer Protocol
   Identifier (NLPID), which identifies the encapsulation in use over
   the X.25 virtual circuit.  The CUD field MAY contain more than one
   octet of information.

   The PPP encapsulation MUST be indicated by the PPP NLPID value (CF
   hex).  Any subsequent octet in this CUD is extraneous and MUST be
   ignored.

   Multipoint networks (or multicast groups) MUST refuse calls which
   indicate the PPP NLPID in the CUD.

   The accidental connection of a link to feed a multipoint network (or
   multicast group) SHOULD result in a misconfiguration indication.
   This can be detected by multiple responses to the LCP Configure-
   Request with the same Identifier, coming from different framing
   addresses.  Some implementations might be physically unable to either
   log or report such information.

   Conformance with this specification requires that the PPP NLPID (CF)
   be supported.  In addition, conformance with [4] requires that the IP
   NLPID (CC) be supported, and does not require that other NLPID values
   be supported, such as Zero (00), SNAP (80), CLNP (81) or ES-IS (82).

   When IP address negotiation and/or VJ header compression are desired,
   the PPP call setup SHOULD be attempted first.  If the PPP call setup
   fails, the normal IP call setup MUST be used.

   The PPP NLPID value SHOULD NOT be used to demultiplex circuits which
   use the Zero NLPID in call setup, as described in [4].  When such a
   circuit exists concurrently with PPP encapsulated circuits, only
   network layer traffic which has not been negotiated by the associated
   NCP is sent over the Zero NLPID circuit.

   Rationale:

      Using call setup to determine if PPP is supported should be
      inexpensive, when users aren't charged for failed calls.

      Using the Zero NLPID call together with PPP could be expensive,
      when users are charged per packet or for connect time, due to the
      probing of PPP configuration packets at each call.

      PPP configuration provides a direct indication of the availability
      of service, and on that basis is preferred over the Zero NLPID
      technique, which can result in "black-holes".



5.  Configuration Details

   The following Configuration Options are recommended:

      Magic Number
      Protocol Field Compression

   The standard LCP configuration defaults apply to X.25 links, except
   MRU.

   To ensure interoperability with existing X.25 implementations, the
   initial Maximum-Receive-Unit (MRU) is 1600 octets [4].  This only
   affects the minimum required buffer space available for receiving
   packets, not the size of packets sent.

   The typical network feeding the link is likely to have a MRU of
   either 1500, or 2048 or greater.  To avoid fragmentation, the
   Maximum-Transmission-Unit (MTU) at the network layer SHOULD NOT
   exceed 1500, unless a peer MRU of 2048 or greater is specifically
   negotiated.

   The X.25 packet size is not directly related to the MRU.  Instead,
   Protocol Data Units (PDUs) are sent as X.25 "complete packet
   sequences".  That is, PDUs begin on X.25 data packet boundaries and
   the M bit ("more data") is used to fragment PDUs that are larger than
   one X.25 data packet in length.

Security Considerations

   Implementations MUST NOT consider PPP authentication on call setup
   for one circuit between two systems to apply to concurrent call setup
   for other circuits between those same two systems.  This results in
   possible security lapses due to over-reliance on the integrity and
   security of switching systems and administrations.  An insertion
   attack might be undetected.  An attacker which is able to spoof the
   same calling identity might be able to avoid link authentication.



References

   [1]   Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", RFC
         1548, December 1993.

   [2]   CCITT Recommendation X.25, "Interface Between Data Terminal
         Equipment (DTE) and Data Circuit Terminating Equipment (DCE)
         for Terminals Operating in the Packet Mode on Public Data
         Networks", Vol. VIII, Fascicle VIII.2, Rec. X.25.

   [3]   Simpson, W., Editor, "PPP in HDLC Framing", RFC 1549, December
         1993.

   [4]   Malis, A., Robinson, D., and R. Ullmann, "Multiprotocol
         Interconnect on X.25 and ISDN in the Packet Mode", RFC 1356,
         August 1992.

   [5]   ISO/IEC TR 9577, "Information technology - Telecommunications
         and Information exchange between systems - Protocol
         Identification in the network layer", 1990 (E) 1990-10-15.



Acknowledgments

   This design was inspired by the paper "Parameter Negotiation for the
   Multiprotocol Interconnect", Keith Sklower and Clifford Frost,
   University of California, Berkeley, 1992, unpublished.

Chair's Address

   The working group can be contacted via the current chair:

      Fred Baker
      Advanced Computer Communications
      315 Bollay Drive
      Santa Barbara, California  93117

      EMail: fbaker@acc.com



Author's Address

   Questions about this memo can also be directed to:

      William Allen Simpson
      Daydreamer
      Computer Systems Consulting Services
      1384 Fontaine
      Madison Heights, Michigan  48071

      EMail: Bill.Simpson@um.cc.umich.edu
             bsimpson@MorningStar.com

AI ELI5

On this page
PROBLEMPPP needs a framing layer, and some point-to-point links are provided over X.25 equipment rather than plain HDLC lines.
MECHANISMPPP uses the X.25 frame header in place of the HDLC header and ignores other X.25 features. On switched circuits, the first octet of Call User Data carries the PPP NLPID, CF hex, to signal PPP.
WHY IT MATTERSA Proposed Standard that lets PPP, with its LCP, NCPs, authentication and compression, run over X.25 point-to-point circuits.

§1Why Run PPP in X.25

CCITT recommendation X.25 describes a network layer protocol that offers error-free, sequenced, flow controlled virtual circuits. Its data link layer, X.25 LAPB, builds on ISO 3309, 4335 and 6256. PPP's own HDLC framing is also based on ISO 3309.

When X.25 is set up as a point-to-point circuit, PPP can use it purely as a framing mechanism and ignore its other features. The RFC compares this to the technique used to carry SNAP headers over X.25.

The memo applies only to point-to-point links. Its Applicability note says PPP facilities such as LCP, network-layer control protocols, authentication and compression need a point-to-point relationship and are not designed for multi-point or multi-access environments.

The authors once hoped PPP HDLC frames and X.25 frames could share a link while equipment was converted gradually. Some switches strip the X.25 header, carry the packets over something like Frame Relay, and rebuild the header at the last hop, so co-existence and gradual migration are ruled out.

X.25 is an old network that already knows how to move envelopes safely. PPP just borrows its envelope and ignores the rest of what X.25 can do.

§2Physical Layer Requirements

PPP treats X.25 framing as a bit synchronous link. The link MUST be full-duplex, and may be dedicated (permanent) or switched. PPP presents an octet interface to the physical layer and imposes no transmission rate limit beyond that of the particular X.25 interface.

X.25 needs control signals that show when the link is connected or disconnected, and these supply the Up and Down events to the LCP state machine. PPP does not normally need control signals, so their failure MUST NOT affect correct operation of PPP. Encodings are the job of the DTE/DCE equipment and outside this specification, though X.25 requires NRZ encoding.

The wire has to carry talk in both directions at once. If the little lights that say the line is connected fail, PPP must keep working anyway.

§3The Frame Format

Because both PPP in HDLC framing and X.25 are based on ISO 3309, the X.25 header is simply substituted for the smaller HDLC header. The frame follows the principles and terminology of RFC 1356, which this memo summarizes rather than repeats. It starts with a flag of 0x7e, then Address and Control octets, the D and Q bits with a 12-bit SVC number split into high and low parts, the p(r), M and p(s) fields and a zero bit, and then the PPP Protocol field. The PPP Protocol, Information and Padding fields are as described in the PPP encapsulation specification.

LCP can negotiate changes to the basic frame, but modified frames are always clearly distinguishable from standard ones. Two rules apply. Address-and-Control-Field-Compression MUST NOT be negotiated, since the Address and Control values are not constant and are changed as the frame crosses the network. Protocol-Field-Compression SHOULD be negotiated when it improves throughput: X.25 framing does not align the Information field on a 32-bit boundary, but it reaches 16-bit alignment when the Protocol field is compressed to one octet.

Each PPP message gets an X.25 address label on the front. Because the network keeps rewriting parts of that label, the two ends must not try to shorten those parts.

PPP IN X.25 FRAME (RFC 1598)
PPP in X.25 frame
FieldNameSizeValueDescription
FLAGFlag1 byte0x7eFrame delimiter.
ADDRESSAddress1 byteX.25 address octet.
CONTROLControl1 byteX.25 control octet.
DQD, Q2 bitsThe D and Q bits.
SVC-HISVC# (hi)6 bitsHigh part of the SVC number.
SVC-LOSVC# (lo)1 byteLow part of the SVC number.
PRp(r)3 bitsReceive sequence number.
MM1 bitsMore data bit.
PSp(s)3 bitsSend sequence number.
ZERO01 bits0Zero bit.
PROTOCOLPPP Protocol2 bytesPPP protocol field.

§4Call Setup and the PPP NLPID

On a Permanent Virtual Circuit (PVC), SVC call setup and clearing is not required, and calls are established and terminated with PPP LCP packets.

On a Switched Virtual Circuit (SVC), the first octet of the Call User Data (CUD) field in the Call Request packet selects the protocol, following the Subsequent Protocol Identifier in ISO/IEC TR 9577. That octet is a Network Layer Protocol Identifier (NLPID). PPP is indicated by the NLPID value CF hex, and any later octets in the CUD are extraneous and MUST be ignored.

  • Multipoint networks (or multicast groups) MUST refuse calls that carry the PPP NLPID.
  • Accidentally connecting a link to a multipoint network SHOULD cause a misconfiguration indication, which can be detected as multiple responses to one LCP Configure-Request Identifier from different framing addresses.
  • Conformance requires support for the PPP NLPID (CF). Conformance with RFC 1356 also requires the IP NLPID (CC), and does not require others such as Zero (00), SNAP (80), CLNP (81) or ES-IS (82).
  • When IP address negotiation or VJ header compression is wanted, PPP call setup SHOULD be tried first. If it fails, the normal IP call setup MUST be used.

The PPP NLPID SHOULD NOT be used to sort circuits that use the Zero NLPID. If such a circuit coexists with PPP circuits, only network layer traffic not negotiated by the associated NCP goes over the Zero NLPID circuit.

Rationale in the RFC: failed calls are usually free, so probing for PPP with a call is cheap. Probing with PPP configuration packets on every Zero NLPID call could cost money when users pay per packet or connect time. PPP configuration also gives a direct indication of service, avoiding the "black-holes" of the Zero NLPID technique.

When you phone a switched circuit, you say in the first byte what language you will speak. PPP has its own secret number, CF. If the other side does not speak PPP, you just hang up and use the ordinary way.

§5Configuration Details

The recommended Configuration Options are Magic Number and Protocol Field Compression. The standard LCP defaults apply to X.25 links, except for the MRU.

To interoperate with existing X.25 implementations, the initial Maximum-Receive-Unit (MRU) is 1600 octets. This only sets the minimum buffer space for receiving and does not limit the size of packets sent. A typical feeding network has an MRU of either 1500, or 2048 or greater, so the network layer MTU SHOULD NOT exceed 1500 unless a peer MRU of 2048 or greater is specifically negotiated, to avoid fragmentation.

X.25 packet size is not directly tied to the MRU. PDUs are sent as X.25 complete packet sequences: each PDU begins on an X.25 data packet boundary, and the M bit (more data) fragments PDUs that are longer than one data packet.

The envelope starts out able to hold 1600 bytes of letter, but you should send letters of at most 1500 so nothing has to be cut up on the way.

§6Security Considerations

Implementations MUST NOT assume that PPP authentication done at call setup for one circuit between two systems also covers concurrent circuits between the same two systems. Over-relying on the integrity and security of switching systems and administrations leaves possible gaps, and an insertion attack might go undetected. An attacker able to spoof the same calling identity might avoid link authentication.

Showing your ID once on one phone call does not prove who is on a different call. Each call has to prove itself.

§7References