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