RFC 4618 PROPOSED STANDARD MPLS · PSEUDOWIRE · PPP

PPP/HDLC over MPLS: Encapsulation Methods for Transport of PPP/High-Level Data Link Control (HDLC) over MPLS Networks

Carrying PPP and HDLC links across an MPLS network as pseudowires, without ending the link protocol.

On rfc-editor.org ↗
PUBLISHED
September 2006
AUTHORS
L. Martini, E. Rosen, G. Heron, A. Malis
STREAM
IETF
CONTROL WORD SIZE
32 bits
LENGTH FIELD
6 bits, the packet length when below 64 bytes
SEQUENCE NUMBER
16 bits, 0 means unsequenced
HDLC PSEUDOWIRE TYPE
0x0006
PPP PSEUDOWIRE TYPE
0x0007
FRAME RELAY PORT MODE TYPE
0x000F
DOI
10.17487/RFC4618

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         L. Martini
Request for Comments: 4618                                      E. Rosen
Category: Standards Track                            Cisco Systems, Inc.
                                                                G. Heron
                                                                A. Malis
                                                                 Tellabs
                                                          September 2006


                Encapsulation Methods for Transport of
       PPP/High-Level Data Link Control (HDLC) over MPLS Networks

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.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   A pseudowire (PW) can be used to carry Point to Point Protocol (PPP)
   or High-Level Data Link Control (HDLC) Protocol Data Units over a
   Multiprotocol Label Switching (MPLS) network without terminating the
   PPP/HDLC protocol.  This enables service providers to offer
   "emulated" HDLC, or PPP link services over existing MPLS networks.
   This document specifies the encapsulation of PPP/HDLC Packet Data
   Units (PDUs) within a pseudowire.

Table of Contents

   1. Introduction ....................................................2
   2. Specification of Requirements ...................................2
   3. Applicability Statement .........................................5
   4. General Encapsulation Method ....................................6
      4.1. The Control Word ...........................................6
      4.2. MTU Requirements ...........................................8
   5. Protocol-Specific Details .......................................9
      5.1. HDLC .......................................................9
      5.2. Frame Relay Port Mode ......................................9
      5.3. PPP .......................................................10
   6. Using an MPLS Label as the Demultiplexer Field .................11
      6.1. MPLS Shim EXP Bit Values ..................................11
      6.2. MPLS Shim S Bit Value .....................................11
   7. Congestion Control .............................................12
   8. IANA Considerations ............................................12
   9. Security Considerations ........................................12
   10. Normative References ..........................................13
   11. Informative References ........................................13

1.  Introduction

   A PPP/HDLC pseudowire (PW) allows PPP/HDLC Protocol Data Units (PDUs)
   to be carried over an MPLS network.  In addressing the issues
   associated with carrying a PPP/HDLC PDU over an MPLS network, this
   document assumes that a PW has been set up by some means outside the
   scope of this document.  This may be via manual configuration, or
   using a signaling protocol such as that defined in [RFC4447].

   The following figure describes the reference models that are derived
   from [RFC3985] to support the HDLC/PPP PW emulated services.  The
   reader is also assumed to be familiar with the content of the
   [RFC3985] document.

2.  Specification of Requirements

   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 [RFC2119].

          |<-------------- Emulated Service ---------------->|
          |                                                  |
          |          |<------- Pseudowire ------->|          |
          |          |                            |          |
          |          |    |<-- PSN Tunnel -->|    |          |
          |          V    V                  V    V          |
          V   AC     +----+                  +----+    AC    V
    +-----+    |     | PE1|==================| PE2|     |    +-----+
    |     |----------|............PW1.............|----------|     |
    | CE1 |    |     |    |                  |    |     |    | CE2 |
    |     |----------|............PW2.............|----------|     |
    +-----+  ^ |     |    |==================|    |     | ^  +-----+
          ^  |       +----+                  +----+     | |  ^
          |  |   Provider Edge 1         Provider Edge 2  |  |
          |  |                                            |  |
    Customer |                                            | Customer
    Edge 1   |                                            | Edge 2
             |                                            |
             |                                            |
       native HDLC/PPP service                   native HDLC/PPP service

       Figure 1.  PWE3 HDLC/PPP interface reference configuration

   This document specifies the emulated PW encapsulation for PPP and
   HDLC; however, quality of service related issues are not discussed in
   this document.  For the purpose of the discussion in this document,
   PE1 will be defined as the ingress router and PE2 as the egress
   router.  A layer 2 PDU will be received at PE1, encapsulated at PE1,
   transported across the network, decapsulated at PE2, and transmitted
   out on an attachment circuit at PE2.

   The following reference model describes the termination point of each
   end of the PW within the PE:

                +-----------------------------------+
                |                PE                 |
        +---+   +-+  +-----+  +------+  +------+  +-+
        |   |   |P|  |     |  |PW ter|  | PSN  |  |P|
        |   |<==|h|<=| NSP |<=|minati|<=|Tunnel|<=|h|<== From PSN
        |   |   |y|  |     |  |on    |  |      |  |y|
        | C |   +-+  +-----+  +------+  +------+  +-+
        | E |   |                                   |
        |   |   +-+  +-----+  +------+  +------+  +-+
        |   |   |P|  |     |  |PW ter|  | PSN  |  |P|
        |   |==>|h|=>| NSP |=>|minati|=>|Tunnel|=>|h|==> To PSN
        |   |   |y|  |     |  |on    |  |      |  |y|
        +---+   +-+  +-----+  +------+  +------+  +-+
                |                                   |
                +-----------------------------------+
                        ^        ^          ^
                        |        |          |
                        A        B          C

                       Figure 2.  PW reference diagram

   The PW terminates at a logical port within the PE, defined at point B
   in the above diagram.  This port provides an HDLC Native Service
   Processing function that will deliver each PPP/HDLC packet that is
   received at point A, unaltered, to the point A in the corresponding
   PE at the other end of the PW.

   The Native Service Processing (NSP) function includes packet
   processing that is required for the PPP/HDLC packets that are
   forwarded to the PW termination point.  Such functions may include
   bit stuffing, PW-PW bridging, L2 encapsulation, shaping, and
   policing.  These functions are specific to the native packet
   technology and may not be required for the PW emulation service.

   The points to the left of B, including the physical layer between the
   CE and PE, and any adaptation (NSP) functions between it and the PW
   terminations, are outside of the scope of PWE3 and are not defined
   here.

   "PW Termination", between A and B, represents the operations for
   setting up and maintaining the PW, and for encapsulating and
   decapsulating the PPP/HDLC packets as necessary to transmit them
   across the MPLS network.

3.  Applicability Statement

   PPP/HDLC transport over PW service is not intended to emulate the
   traditional PPP or HDLC service perfectly, but it can be used for
   some applications that require PPP or HDLC transport service.

   The applicability statements in [RFC4619] also apply to the Frame
   Relay port mode PW described in this document.

   The following are notable differences between traditional PPP/HDLC
   service, and the protocol described in this document:

   - Packet ordering can be preserved using the OPTIONAL sequence field
     in the control word; however, implementations are not required to
     support this feature.

   - The Quality of Service model for traditional PPP/HDLC links can be
     emulated, however this is outside the scope of this document.

   - A Frame Relay Port mode PW, or HDLC PW, does not process any frame
     relay status messages or alarms as described in [Q922] [Q933].

   - The HDLC Flags are processed locally in the PE connected to the
     attachment circuit.

   The HDLC mode is suitable for port-to-port transport of Frame Relay
   User Network Interface (UNI) or Network Node Interface (NNI) traffic.
   Since all packets are passed in a largely transparent manner over the
   HDLC PW, any protocol that has HDLC-like framing may use the HDLC PW
   mode, including PPP, Frame-Relay, and X.25.  Exceptions include cases
   where direct access to the HDLC interface is required, or modes that
   operate on the flags, Frame Check Sequence (FCS), or bit/byte
   unstuffing that is performed before sending the HDLC PDU over the PW.
   An example of this is PPP Asynchronous-Control-Character-Map (ACCM)
   negotiation.

   For PPP, since media-specific framing is not carried, the following
   options will not operate correctly if the PPP peers attempt to
   negotiate them:

   - Frame Check Sequence (FCS) Alternatives

   - Address-and-Control-Field-Compression (ACFC)

   - Asynchronous-Control-Character-Map (ACCM)

   Note, also, that PW LSP Interface MTU negotiation, as specified in
   [RFC4447], is not affected by PPP Maximum Receive Unit (MRU)
   advertisement.  Thus, if a PPP peer sends a PDU with a length in
   excess of that negotiated for the PW tunnel, that PDU will be
   discarded by the ingress router.

4.  General Encapsulation Method

   This section describes the general encapsulation format for PPP and
   HDLC packets over MPLS pseudowires.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               PSN Transport Header (As Required)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Pseudowire Header                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Control Word                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     PPP/HDLC Service Payload                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 3.  General format for PPP/HDLC encapsulation over PSNs

   The PSN Transport Header depends on the particular tunneling
   technology in use.  This header is used to transport the encapsulated
   PPP/HDLC information through the packet-switched core.

   The Pseudowire Header identifies a particular PPP/HDLC service on a
   tunnel.  In case the of MPLS, the Pseudowire Header is the MPLS label
   at the bottom of the MPLS label stack.

   The Control Word is inserted before the PPP/HDLC service payload.  It
   may contain a length and sequence number.

4.1.  The Control Word

   There are four requirements that may need to be satisfied when
   transporting layer 2 protocols over an MPLS PSN:

   i.    Sequentiality may need to be preserved.

   ii.   Small packets may need to be padded in order to be transmitted
         on a medium where the minimum transport unit is larger than the
         actual packet size.

   iii.  Control bits carried in the header of the layer 2 packet may
         need to be transported.

   iv.   Creating an in-band associated channel for operation and
         maintenance communications.

   The Control Word defined in this section is based on the Generic PW
   MPLS Control Word, as defined in [RFC4385].  It provides the ability
   to sequence individual packets on the PW and avoidance of equal-cost
   multiple-path load-balancing (ECMP) [RFC2992] and enables Operations
   and Management (OAM) mechanisms, including [VCCV].

   [RFC4385] states, "If a PW is sensitive to packet mis-ordering and is
   being carried over an MPLS PSN that uses the contents of the MPLS
   payload to select the ECMP path, it MUST employ a mechanism which
   prevents packet mis-ordering."  This is necessary because ECMP
   implementations may examine the first nibble after the MPLS label
   stack to determine whether the content of the labeled packet is IP.
   Thus, if the PPP protocol number of a PPP packet carried over the PW
   without a control word present begins with 0x4 or 0x6, it could be
   mistaken for an IPv4 or IPv6 packet.  This could, depending on the
   configuration and topology of the MPLS network, lead to a situation
   where all packets for a given PW do not follow the same path.  This
   may increase out-of-order packets on a given PW or cause OAM packets
   to follow a different path from that of actual traffic.

   The features that the control word provides may not be needed for a
   given PPP/HDLC PW.  For example, ECMP may not be present or active on
   a given MPLS network, and strict packet sequencing may not be
   required.  If this is the case, the control word provides little
   value and is therefore optional.  Early PPP/HDLC PW implementations
   have been deployed that do not include a control word or the ability
   to process one if present.  To aid in backwards compatibility, future
   implementations MUST be able to send and receive packets without the
   control word.

   In all cases, the egress PE MUST be aware of whether the ingress PE
   will send a control word over a specific PW.  This may be achieved by
   configuration of the PEs, or by signaling, as defined in [RFC4447].

   The control word is defined as follows:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0 0 0 0|0 0 0 0|FRG|   Length  |     Sequence Number           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Figure 4.  MPLS PWE3 control word

   In the above diagram, the first 4 bits are set to 0 in indicate a CW
   [RFC4385].

   The next 4 bits provide space for carrying protocol-specific flags.
   These are not used for HDLC/PPP, and they MUST be set to 0 for
   transmitting and MUST be ignored upon receipt.

   The next 2 bits are defined in [RFC4623].

   The next 6 bits provide a length field, which is used as follows: If
   the packet's length (defined as the length of the layer 2 payload
   plus the length of the control word) is less than 64 bytes, the
   length field MUST be set to the packet's length.  Otherwise, the
   length field MUST be set to zero.  The value of the length field, if
   not zero, is used to remove any padding that may have been added by
   the MPLS network.  If the control word is used and padding was added
   to the packet in transit on the MPLS network, then when the packet
   reaches the egress PE the padding MUST be removed before forwarding
   the packet.

   The next 16 bits provide a sequence number that can be used to
   guarantee ordered packet delivery.  The processing of the sequence
   number field is OPTIONAL.[RFC4385]

   The sequence number space is a 16-bit, unsigned circular space.  The
   sequence number value 0 is used to indicate an unsequenced
   packet.[RFC4385]

   The procedures described in Section 4 of [RFC4385] MUST be followed
   to process the sequence number field.

4.2.  MTU Requirements

   The network MUST be configured with an MTU that is sufficient to
   transport the largest encapsulation packets.  When MPLS is used as
   the tunneling protocol, for example, this is likely to be 12 or more
   bytes greater than the largest packet size.  The methodology
   described in [RFC4623] MAY be used to fragment encapsulated packets
   that exceed the PSN MTU.  However, if [RFC4623] is not used, then if
   the ingress router determines that an encapsulated layer 2 PDU
   exceeds the MTU of the PSN tunnel through which it must be sent, the
   PDU MUST be dropped.

   If a packet is received on the attachment circuit that exceeds the
   interface MTU subTLV value [RFC4447], it MUST be dropped.  It is also
   RECOMMENDED that PPP devices be configured to not negotiate PPP MRUs
   larger than that of the AC MTU.

5.  Protocol-Specific Details

5.1.  HDLC

   HDLC mode provides port-to-port transport of HDLC-encapsulated
   traffic.  The HDLC PDU is transported in its entirety, including the
   HDLC address and control fields, but excluding HDLC flags and the
   FCS.  Bit/Byte stuffing is undone.  If the OPTIONAL control word is
   used, then the flag bits in the control word are not used and MUST be
   set to 0 for transmitting and MUST be ignored upon receipt.

   When the PE detects a status change in the attachment circuit status,
   such as an attachment circuit physical link failure, or if the AC is
   administratively disabled, the PE MUST send the appropriate PW status
   notification message that corresponds to the HDLC AC status.  In a
   similar manner, the local PW status MUST also be reflected in a
   respective PW status notification message, as described in [RFC4447].

   The PW of type 0x0006 "HDLC" will be used to transport HDLC packets.
   The IANA allocation registry of "Pseudowire Type" is defined in the
   IANA allocation document for PWs [RFC4446] along with initial
   allocated values.

5.2.  Frame Relay Port Mode

   Figure 5 illustrates the concept of frame relay port mode or many-
   to-one mapping, which is an OPTIONAL capability.

   Figure 5a shows two frame relay devices physically connected with a
   frame relay UNI or NNI.  Between their two ports, P1 and P2, n frame
   relay Virtual Circuits (VCs) are configured.

   Figure 5b shows the replacement of the physical frame relay interface
   with a pair of PEs and a PW between them.  The interface between a
   Frame Relay (FR) device and a PE is either an FR UNI or an NNI.  All
   FR VCs carried over the interface are mapped into one HDLC PW.  The
   standard frame relay Link Management Interface (LMI) procedures
   happen directly between the CEs.  Thus with port mode, we have many-
   to-one mapping between FR VCs and a PW.

              +------+                          +-------+
              | FR   |                          |   FR  |
              |device|         FR UNI/NNI       | device|
              |    [P1]------------------------[P2]     |
              |      |      carrying n FR VCs   |       |
              +------+                          +-------+

                 [Pn]: A port

                  Figure 5a.  FR interface between two FR devices


                    |<---------------------------->|
                    |                              |
                     +----+                  +----+
   +------+          |    |     One PW       |    |         +------+
   |      |          |    |==================|    |         |      |
   |  FR  |    FR    | PE1| carrying n FR VCs| PE2|    FR   |  FR  |
   |device|----------|    |                  |    |---------|device|
   | CE1  | UNI/NNI  |    |                  |    | UNI/NNI | CE2  |
   +------+          +----+                  +----+         +------+
          |                                                 |
          |<----------------------------------------------->|
                                  n FR VCs

           Figure 5b.  Pseudowires replacing the FR interface

   FR VCs are not visible individually to a PE; there is no
   configuration of individual FR VC in a PE.  A PE processes the set of
   FR VCs assigned to a port as an aggregate.

   FR port mode provides transport between two PEs of a complete FR
   frame using the same encapsulation as described above for HDLC mode.

   Although frame relay port mode shares the same encapsulation as HDLC
   mode, a different PW type is allocated in [RFC4446]: 0x000F Frame-
   Relay Port mode.

   All other aspects of this PW type are identical to the HDLC PW
   encapsulation described above.

5.3.  PPP

   PPP mode provides point-to-point transport of PPP-encapsulated
   traffic, as specified in [RFC1661].  The PPP PDU is transported in
   its entirety, including the protocol field (whether compressed using
   Protocol Field Compression or not), but excluding any media-specific
   framing information, such as HDLC address and control fields or FCS.

   If the OPTIONAL control word is used, then the flag bits in the
   control word are not used and MUST be set to 0 for transmitting and
   MUST be ignored upon receipt.

   When the PE detects a status change in the attachment circuit (AC)
   status, such as an attachment circuit physical link failure, or if
   the AC is administratively disabled, the PE MUST send the appropriate
   PW status notification message that corresponds to the PPP AC status.
   Note that PPP negotiation status is transparent to the PW and MUST
   NOT be communicated to the remote MPLS PE.  In a similar manner, the
   local PW status MUST also be reflected in a respective PW status
   notification message, as described in [RFC4447].

   A PW of type 0x0007 "PPP" will be used to transport PPP packets.

   The IANA allocation registry of "Pseudowire Type" is defined in the
   IANA allocation document for PWs [RFC4446] along with initial
   allocated values.

6.  Using an MPLS Label as the Demultiplexer Field

   To use an MPLS label as the demultiplexer field, a 32-bit label stack
   entry [RFC3032] is simply prepended to the emulated PW encapsulation
   and thus appears as the bottom label of an MPLS label stack.  This
   label may be called the "PW label".  The particular emulated PW
   identified by a particular label value must be agreed by the ingress
   and egress LSRs, either by signaling (e.g., via the methods of
   [RFC4447]) or by configuration.  Other fields of the label stack
   entry are set as described below.

6.1.  MPLS Shim EXP Bit Values

   If it is desired to carry Quality of Service information, the Quality
   of Service information SHOULD be represented in the EXP field of the
   PW label.  If more than one MPLS label is imposed by the ingress LSR,
   the EXP field of any labels higher in the stack MUST also carry the
   same value.

6.2.  MPLS Shim S Bit Value

   The ingress LSR, PE1, MUST set the S bit of the PW label to a value
   of 1 to denote that the PW label is at the bottom of the stack.

7.  Congestion Control

   As explained in [RFC3985], the PSN carrying the PW may be subject to
   congestion, the characteristics of which are dependent upon PSN type,
   network architecture, configuration, and loading.  During congestion,
   the PSN may exhibit packet loss that will impact the service carried
   by the PPP/HLDC PW.  In addition, since PPP/HDLC PWs carry an
   unspecified type of services across the PSN, they cannot behave in a
   TCP-friendly manner prescribed by [RFC2914].  In the presence of
   services that reduce transmission rate, PPP/HDLC PWs will thus
   consume more than their fair share and SHOULD be halted.

   Whenever possible, PPP/HDLC PWs should be run over traffic-engineered
   PSNs providing bandwidth allocation and admission control mechanisms.
   IntServ-enabled domains providing the Guaranteed Service (GS) or
   DiffServ-enabled domains using EF (expedited forwarding) are examples
   of traffic-engineered PSNs.  Such PSNs will minimize loss and delay
   while providing some degree of isolation of the PPP/HDLC PW's effects
   from neighboring streams.

   The PEs SHOULD monitor for congestion (by using explicit congestion
   notification, [VCCV], or by measuring packet loss) in order to ensure
   that the service using the PPP/HDLC PW may be maintained.  When
   significant congestion is detected, the PPP/HDLC PW SHOULD be
   administratively disabled.  If the PW has been set up using the
   protocol defined in [RFC4447], then procedures specified in [RFC4447]
   for status notification can be used to disable packet transmission on
   the ingress PE from the egress PE.  The PW may be restarted by manual
   intervention, or by automatic means after an appropriate waiting
   time.

8.  IANA Considerations

   This document has no new IANA Actions.  All necessary IANA actions
   have already been included in [RFC4446].

9.  Security Considerations

   The PPP and HDLC pseudowire type is subject to all the general
   security considerations discussed in [RFC3985][RFC4447].  This
   document specifies only encapsulations, and not the protocols that
   may be used to carry the encapsulated packets across the MPLS
   network.  Each such protocol may have its own set of security issues,
   but those issues are not affected by the encapsulations specified
   herein.

10.  Normative References

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

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

   [RFC3032]    Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
                Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
                Encoding", RFC 3032, January 2001.

   [RFC4385]    Bryant, S., Swallow, G., Martini, L., and D. McPherson,
                "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word
                for Use over an MPLS PSN", RFC 4385, February 2006.

   [RFC4446]    Martini, L., "IANA Allocations for Pseudowire Edge to
                Edge Emulation (PWE3)", BCP 116, RFC 4446, April 2006.

   [RFC4447]    Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G.
                Heron, "Pseudowire Setup and Maintenance Using the Label
                Distribution Protocol (LDP)", RFC 4447, April 2006.

   [RFC4619]    Martini, L., Ed., Kawa, C., Ed., and A. Malis, Ed.,
                "Encapsulation Methods for Transport of Frame Relay over
                Multiprotocol Label Switching (MPLS) Networks", RFC
                4619, September 2006.

   [RFC4623]    Malis, A. and M. Townsley, "Pseudowire Emulation Edge-
                to-Edge (PWE3) Fragmentation and Reassembly", RFC 4623,
                August 2006.

11.  Informative References

   [Q922]       ITU-T Recommendation Q.922 Specification for Frame Mode
                Basic call control, ITU Geneva 1995.

   [Q933]       ITU-T Recommendation Q.933 Specification for Frame Mode
                Basic call control, ITU Geneva 2003.

   [RFC2914]    Floyd, S., "Congestion Control Principles", BCP 41, RFC
                2914, September 2000.

   [RFC2992]    Hopps, C., "Analysis of an Equal-Cost Multi-Path
                Algorithm", RFC 2992, November 2000.

   [RFC3985]    Bryant, S., Ed. and P. Pate, Ed., "Pseudo Wire Emulation
                Edge-to-Edge (PWE3) Architecture", RFC 3985, March 2005.

   [VCCV]       Nadeau, T., et al., "Pseudo Wire Virtual Circuit
                Connection Verification (VCCV)", Work in Progress,
                October 2005.

Contributing Author Information

   Yeongil Seo
   463-1 KT Technology Lab
   Jeonmin-dong Yusung-gu
   Daegeon, Korea

   EMail: syi1@kt.co.kr


   Toby Smith
   Laurel Networks, Inc.
   Omega Corporate Center
   1300 Omega Drive
   Pittsburgh, PA 15205

   EMail: tob@laurelnetworks.com

Authors' Addresses

   Luca Martini
   Cisco Systems, Inc.
   9155 East Nichols Avenue, Suite 400
   Englewood, CO, 80112

   EMail: lmartini@cisco.com


   Giles Heron
   Tellabs
   Abbey Place
   24-28 Easton Street
   High Wycombe
   Bucks
   HP11 1NT
   UK

   EMail: giles.heron@tellabs.com


   Eric C. Rosen
   Cisco Systems, Inc.
   1414 Massachusetts Avenue
   Boxborough, MA 01719

   EMail: erosen@cisco.com


   Andrew G. Malis
   Tellabs
   1415 West Diehl Road
   Naperville, IL  60563

   EMail: Andy.Malis@tellabs.com

Full Copyright Statement

   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).

ISO Plain Language

On this page
PROBLEMService providers want to offer emulated HDLC or PPP link services over their existing MPLS networks without terminating the PPP or HDLC protocol.
MECHANISMA pseudowire carries each PPP or HDLC packet inside MPLS, behind a pseudowire label and an optional four-byte control word. HDLC drops the flags and the frame check sequence, and PPP also drops the HDLC framing.
THE CATCHThe service is not a perfect emulation of a real PPP or HDLC link. Packet ordering needs the control word's sequence number, Frame Relay status messages are not processed, and some PPP options do not work if they are negotiated.

§1Carrying PPP and HDLC Across an MPLS Network

A PPP/HDLC pseudowire allows PPP and HDLC protocol data units, the individual frames of those link protocols, to be carried over an MPLS network without terminating the PPP or HDLC protocol. The document assumes the pseudowire has been set up by some means outside its scope, either by manual configuration or with a signalling protocol such as the one in RFC 4447.

The reference model has a customer edge device at each end, connected to a provider edge router, with a packet-switched network between the two provider edge routers. PE1 is the ingress router and PE2 is the egress router. A layer 2 packet is received at PE1, encapsulated there, transported across the network, decapsulated at PE2, and transmitted out on an attachment circuit at PE2.

The pseudowire terminates at a logical port within the provider edge router. That port provides a native service processing function which delivers each PPP or HDLC packet it receives, unaltered, to the corresponding point in the provider edge router at the other end of the pseudowire. The native service processing function may include bit stuffing, bridging between pseudowires, layer 2 encapsulation, shaping and policing. These functions are specific to the native packet technology and may not be needed for the emulated service.

Each end of the link has a customer device and a provider router. The provider router wraps the link's frames in MPLS labels, sends them across the packet-switched core, and takes the labels off again at the far end. The frame itself passes through unchanged, and neither end router runs the PPP or HDLC protocol.

THE PSEUDOWIRE PATH; ILLUSTRATIVE, NOT FROM THE RFC
Customer edge 1Provider edge 1Packet-switched coreProvider edge 2Customer edge 2
  1. LAYER 2 PACKETReceived on the attachment circuit.
  2. MPLS LABEL, CONTROL WORD, PAYLOADThe frame is encapsulated and sent across the core.
  3. MPLS LABEL, CONTROL WORD, PAYLOAD
  4. LAYER 2 PACKETDecapsulated and sent out on the attachment circuit.

§3What the Emulation Does and Does Not Do

PPP/HDLC transport over a pseudowire is not intended to emulate the traditional PPP or HDLC service perfectly, but it can be used for some applications that require PPP or HDLC transport service.

The differences from a real link are these. Packet ordering can be preserved using the optional sequence field in the control word, however implementations are not required to support this feature. The quality of service model for traditional PPP/HDLC links can be emulated, but that is outside the scope of this document. A Frame Relay port mode pseudowire, or an HDLC pseudowire, does not process any Frame Relay status messages or alarms. The HDLC flags are processed locally in the provider edge router connected to the attachment circuit.

The HDLC mode is suitable for port-to-port transport of Frame Relay user network interface or network node interface traffic. Since all packets are passed in a largely transparent manner over the HDLC pseudowire, any protocol that has HDLC-like framing may use it, including PPP, Frame Relay and X.25. Exceptions are cases where direct access to the HDLC interface is required, or modes that operate on the flags, the frame check sequence, or the bit and byte unstuffing that is performed before the HDLC packet is sent over the pseudowire. PPP asynchronous-control-character-map negotiation is an example of such a mode.

For PPP, because media-specific framing is not carried, three options will not operate correctly if the PPP peers attempt to negotiate them: frame check sequence alternatives, address-and-control-field compression, and asynchronous-control-character-map. PW LSP interface MTU negotiation is not affected by PPP maximum receive unit advertisement, so if a PPP peer sends a packet longer than the size negotiated for the pseudowire tunnel, that packet is discarded by the ingress router.

This is an emulation, not the real thing. Frame ordering only holds if the control word is used and carries a sequence number, and no implementation has to support that. Frame Relay alarms are ignored, and HDLC flags are handled by the router at each end rather than travelling. For PPP, three options cannot work: the frame check sequence alternatives, address-and-control-field compression, and the asynchronous control character map.

A REAL PPP OR HDLC LINK AGAINST THE PSEUDOWIRE EMULATION
AspectTraditional PPP or HDLC linkPPP/HDLC pseudowire
Packet orderingPreserved by the linkPreserved only if the control word sequence field is used, and it is optional
Quality of serviceDefined for the linkCan be emulated, but is outside the scope of this document
Frame Relay status messages THIS RFCProcessedNot processed
HDLC flags THIS RFCPresent on the linkProcessed locally in the provider edge router
PPP FCS alternatives, ACFC and ACCM THIS RFCNegotiableDo not operate correctly if negotiated

§4The General Encapsulation Format

The general encapsulation format has four parts stacked on top of each other. The PSN transport header depends on the tunnelling technology in use and carries the encapsulated information through the packet-switched core. The pseudowire header identifies a particular PPP or HDLC service on a tunnel; in the case of MPLS it is the MPLS label at the bottom of the MPLS label stack. The control word is inserted before the PPP or HDLC service payload and may contain a length and a sequence number. Below that sits the PPP or HDLC service payload itself.

To use an MPLS label as the demultiplexer field, a 32-bit label stack entry is simply prepended to the emulated pseudowire encapsulation, so that it appears as the bottom label of an MPLS label stack. This label may be called the PW label. The particular emulated pseudowire identified by a particular label value must be agreed by the ingress and egress label switching routers, either by signalling or by configuration.

If quality of service information is to be carried, it should be represented in the EXP field of the PW label, and if the ingress router imposes more than one MPLS label, the EXP field of any labels higher in the stack must carry the same value. The ingress router must set the S bit of the PW label to 1, to denote that the PW label is at the bottom of the stack.

The encapsulated packet has up to four layers: whatever the tunnelling technology needs, the MPLS label that says which pseudowire this is, an optional control word, and the original link frame. The label goes at the bottom of the label stack and its bottom-of-stack bit is set to one.

§4.1The Control Word

Four requirements may need to be satisfied when transporting layer 2 protocols over an MPLS network: sequentiality may need to be preserved, small packets may need to be padded so they can travel on a medium whose minimum transport unit is larger than the packet, control bits carried in the header of the layer 2 packet may need to be transported, and an in-band associated channel may be needed for operation and maintenance communications.

The control word is based on the generic pseudowire MPLS control word defined in RFC 4385. It provides the ability to sequence individual packets on the pseudowire and to avoid equal-cost multiple-path load-balancing, and it enables operation and management mechanisms. That last point matters because equal-cost multiple-path implementations may examine the first nibble after the MPLS label stack to decide whether the content is IP. If the PPP protocol number of a packet carried without a control word begins with 0x4 or 0x6, it could be mistaken for an IPv4 or IPv6 packet, which may lead to the packets of one pseudowire not following the same path.

The control word is 32 bits long. The first four bits are set to zero to indicate a control word. The next four bits carry protocol-specific flags, which are not used for HDLC or PPP and must be set to zero when transmitting and ignored on receipt. The next two bits are defined in RFC 4623. The next six bits are a length field: if the packet length, defined as the layer 2 payload plus the control word, is less than 64 bytes, the field must be set to the packet length, and otherwise it must be set to zero. A non-zero value is used to remove any padding added by the MPLS network, and that padding must be removed at the egress router before the packet is forwarded.

The last 16 bits are a sequence number that can be used to guarantee ordered packet delivery, although processing it is optional. The sequence number space is a 16-bit unsigned circular space, and the value 0 indicates an unsequenced packet.

The control word is four bytes in front of the payload. Its first bytes are fixed flags, then a six-bit length field that tells the far end how much padding the network added, and a two-byte sequence number that can be used to put the packets back in order. The control word itself is optional, but both ends must know whether the other one sends it.

MPLS PWE3 CONTROL WORD (RFC 4618)
Pseudowire control word
FieldNameSizeValueDescription
CW-INDICATORCW bits4 bits0Set to zero to indicate a control word.
FLAGSProtocol flags4 bits0Not used for HDLC or PPP; set to zero when transmitting and ignored on receipt.
FRGFRG2 bitsTwo bits defined in RFC 4623.
LENGTHLength6 bitsPacket length when below 64 bytes, otherwise zero; used to strip padding added in transit.
SEQUENCE-NUMBERSequence Number2 bytesOptional sequence number in a 16-bit unsigned circular space; 0 means unsequenced.

§4.2MTU Requirements

The network must be configured with an MTU that is sufficient to transport the largest encapsulation packets. When MPLS is used as the tunnelling protocol, for example, this is likely to be 12 or more bytes greater than the largest packet size. The methodology described in RFC 4623 may be used to fragment encapsulated packets that exceed the PSN MTU. However, if that document is not used, then if the ingress router determines that an encapsulated layer 2 packet exceeds the MTU of the tunnel through which it must be sent, the packet must be dropped.

If a packet is received on the attachment circuit that exceeds the interface MTU value signalled for the pseudowire, it must be dropped. It is also recommended that PPP devices be configured not to negotiate PPP maximum receive units larger than the MTU of the attachment circuit.

The network has to be able to carry the largest encapsulated packet, which is a little larger than the original frame. If a frame is still too big, it can be split using the method in RFC 4623, or it is dropped. A frame that is too big for the attachment circuit is always dropped.

§5Protocol-Specific Details

HDLC. The HDLC mode provides port-to-port transport of HDLC-encapsulated traffic. The HDLC packet is transported in its entirety, including the HDLC address and control fields, but excluding the HDLC flags and the frame check sequence, and the bit and byte stuffing is undone. If the optional control word is used, the flag bits in the control word are not used and must be set to zero when transmitting and ignored on receipt. When the provider edge router detects a status change on the attachment circuit, such as a physical link failure or an administratively disabled circuit, it must send the appropriate pseudowire status notification message. The pseudowire of type 0x0006 carries HDLC packets.

Frame Relay port mode. This is an optional capability, also known as many-to-one mapping. Between two ports of Frame Relay devices, a number of Frame Relay virtual circuits are configured. Replacing that physical interface with a pair of provider edge routers and a pseudowire between them maps all of the virtual circuits carried over the interface into one HDLC pseudowire, while the standard Frame Relay link management interface procedures still happen directly between the customer edge devices. The virtual circuits are not visible individually to a provider edge router, which processes the set assigned to a port as an aggregate. This mode shares the HDLC encapsulation but uses a different pseudowire type, 0x000F for Frame Relay port mode; all other aspects are identical to the HDLC pseudowire.

PPP. The PPP mode provides point-to-point transport of PPP-encapsulated traffic. The PPP packet is transported in its entirety, including the protocol field whether or not it is compressed using protocol field compression, but excluding any media-specific framing information such as the HDLC address and control fields or the frame check sequence. PPP negotiation status is transparent to the pseudowire and must not be communicated to the remote provider edge router. The pseudowire of type 0x0007 carries PPP packets.

HDLC mode carries the whole frame apart from the flags and the frame check sequence, and it undoes the bit stuffing before sending. PPP mode also drops the HDLC address and control fields. Frame Relay port mode bundles all the virtual circuits of one port into a single pseudowire, and the routers treat them as one lump rather than looking at each circuit.

PSEUDOWIRE TYPES USED BY THIS DOCUMENT
  • 0x0006HDLC — Carries HDLC packets, with the flags and the frame check sequence removed.
  • 0x0007PPP — Carries PPP packets, with media-specific framing removed.
  • 0x000FFrame Relay Port mode — Same encapsulation as HDLC mode, for many-to-one mapping of Frame Relay virtual circuits.

§7Congestion Control

The packet-switched network carrying the pseudowire may be subject to congestion, and during congestion it may exhibit packet loss that impacts the service carried by the pseudowire. Because PPP/HDLC pseudowires carry an unspecified type of service across the network, they cannot behave in the TCP-friendly manner prescribed by RFC 2914. In the presence of services that reduce their transmission rate, PPP/HDLC pseudowires will thus consume more than their fair share and should be halted.

Whenever possible, PPP/HDLC pseudowires should be run over traffic-engineered networks that provide bandwidth allocation and admission control. IntServ-enabled domains providing the Guaranteed Service, or DiffServ-enabled domains using expedited forwarding, are examples of such networks. The provider edge routers should monitor for congestion, using explicit congestion notification or by measuring packet loss, so that the service using the pseudowire may be maintained. When significant congestion is detected, the pseudowire should be administratively disabled. If the pseudowire was set up using the protocol in RFC 4447, the status notification procedures in that document can be used to stop packet transmission on the ingress router from the egress router. The pseudowire may then be restarted by manual intervention, or by automatic means after an appropriate waiting time.

When the core network is busy it drops packets, and this kind of traffic has no way to slow itself down politely, so it should be turned off. The provider edge routers are told to watch for congestion and disable the pseudowire when it is bad enough, and to run the pseudowire over a network that has reserved bandwidth where possible.

§9Security Considerations

The PPP and HDLC pseudowire type is subject to all the general security considerations discussed in RFC 3985 and RFC 4447. This document specifies only encapsulations, and not the protocols that may be used to carry the encapsulated packets across the MPLS network. Each such protocol may have its own set of security issues, but those issues are not affected by the encapsulations specified here.

This document only defines how the frames are wrapped. Whether the traffic is protected depends on the protocol used to carry it across the network, and each protocol has its own security rules.

§9References