Multi-Protocol Label Switching (MPLS) Support of Differentiated Services
updated by
- rfc-5462 — Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field
updates
- rfc-3032 — MPLS Label Stack Encoding
Extracted elements (27)
Multicast LSP support is explicitly excluded from scope; only unicast LSPs are specified. This allows the document to focus on well-understood unicast Diff-Serv semantics without resolving the additional complexity of replication points and per-replica PHB determination in multicast trees.
The DIFFSERV Object is placed in RSVP Path messages (not Resv messages) because Diff-Serv parameters such as PHB mapping and PSC need to be known by each LSR along the path before it can allocate a label and install the appropriate forwarding treatment. The Resv message returns only the LABEL object without a DIFFSERV object.
The Pipe Model is particularly suited to MPLS VPN environments where VPN sites share a common Diff-Serv policy that differs from the service provider's interior policy. It allows end-to-end Diff-Serv policy to operate consistently across LSP ingress and egress while remaining transparent to the intermediate SP domain.
The specification defines two complementary LSP types—E-LSPs (EXP-Inferred-PSC) and L-LSPs (Label-Only-Inferred-PSC)—to give network administrators flexibility in mapping Diff-Serv Behavior Aggregates onto Label Switched Paths while optimizing for Traffic Engineering and MPLS protection objectives. Label space is conserved by only resorting to multiple LSPs per FEC when required.
For backward compatibility with non-Diff-Serv QoS options (Integrated Services Controlled Load or Guaranteed Service) defined in RFC 3209, an LSR MAY support a configurable override option that interprets a Path message lacking a DIFFSERV object as a request for an LSP with non-Diff-Serv QoS rather than as a preconfigured E-LSP request.
The preconfigured EXP↔PHB mapping used by E-LSPs must be consistent at every hop throughout the MPLS Diff-Serv domain spanned by the LSP, or appropriate EXP field remarking must be performed whenever differing preconfigured mappings appear on ingress and egress interfaces. If no mapping is configured, the LSR should map all EXP values to the Default PHB.
A Diff-Serv capable LSR supporting E-LSPs with signaled EXP↔PHB mappings MUST support the RSVP DIFFSERV Object. A Diff-Serv capable LSR supporting L-LSPs MUST support the DIFFSERV Object. LSRs supporting only preconfigured-mapping E-LSPs MAY support the DIFFSERV Object.
All packets of a given microflow that may span multiple Behavior Aggregates of an Ordered Aggregate MUST be transported over the same LSP to respect ordering constraints. Conversely, each LSP MUST be capable of supporting all active BAs of a given OA.
An LSR that receives a Path message with the DIFFSERV object for an E-LSP but determines the signaled EXP↔PHB mapping is invalid (MAPnb out of range 0–8, a given EXP value appearing in more than one MAP entry, or invalid PHBID encoding) MUST send a PathErr with Diff-Serv Error code 27 and error value 3 ('Invalid EXP↔PHB mapping').
E-LSPs using a signaled EXP↔PHB mapping MUST enforce the merge condition through explicit checking at label setup that the merged LSPs support the exact same set of PHBs. E-LSPs using the preconfigured mapping may be freely merged within a single MPLS Diff-Serv domain since all such E-LSPs are required to support the same BA set.
If a Path message contains multiple DIFFSERV objects, only the first is meaningful; subsequent objects MUST be ignored and not forwarded. An LSR that does not recognize the DIFFSERV object Class-Num MUST send a PathErr with error code 'Unknown object class'; an LSR that recognizes the class but not the C-Type must send 'Unknown object C-Type'.
L-LSPs can only be merged into one L-LSP if they support the same PHB Scheduling Class (PSC). This merge condition MUST be enforced by LSRs through explicit checking at label setup. Sufficient downstream bandwidth for the merged PSC traffic (especially EF) must also be ensured.
The forwarding treatment (scheduling and drop policy) corresponding to the outgoing PHB MUST be applied by the LSR at the granularity of the Behavior Aggregate and MUST be compliant with the relevant PHB specification, regardless of whether bandwidth reservation is used.
The Pipe Model for Diff-Serv tunneling over MPLS MUST be supported. In this model the LSP hides intermediate nodes from the Diff-Serv perspective, conveying both LSP Diff-Serv information (meaningful to intermediate and egress nodes) and Tunneled Diff-Serv information (meaningful beyond the egress) simultaneously and operates without PHP.
The Short Pipe Model (an optional Pipe Model variant where the LSP Egress applies forwarding treatment based on the tunneled inner header rather than the LSP outer header) MAY be supported. Unlike the Pipe Model it can operate with PHP because the LSP Diff-Serv information need not reach the egress.
The Uniform Model for Diff-Serv over MPLS MAY be supported. In this model each packet carries exactly one meaningful piece of Diff-Serv information, always encoded in the outermost label entry, making MPLS entirely transparent to Diff-Serv operations and allowing LSPs to cross domain boundaries without additional treatment.
When an incoming label maps to multiple NHLFEs (e.g., for load balancing), the Diff-Serv LSR MUST choose one NHLFE whose Diff-Serv Context indicates support for the outgoing PHB of the forwarded packet. When multiple matching NHLFEs exist, all packets of a given microflow MUST be transported over the same LSP.
A Diff-Serv Context is stored in both the Incoming Label Map (ILM) and the NHLFE for each label. The context comprises LSP type (E-LSP or L-LSP), supported PHBs, an Encaps→PHB mapping for incoming labels, and a set of PHB→Encaps mappings for outgoing labels. This context is populated at label establishment time.
A Label-Only-Inferred-PSC LSP (L-LSP) carries exactly one <FEC, OA> pair; the PSC is signaled at label establishment so the LSR infers scheduling class from the label value alone. Drop precedence is conveyed in the EXP field of the Shim Header (or link-layer CLP/DE bits when no Shim Header is used).
An EXP-Inferred-PSC LSP (E-LSP) carries one or more Ordered Aggregates on a single LSP; the LSR determines both the PHB Scheduling Class and drop precedence for each packet by mapping the 3-bit EXP field of the MPLS Shim Header to a PHB. A single E-LSP can support up to eight Behavior Aggregates of a given FEC.
The Label Forwarding Model for Diff-Serv LSRs comprises four functional stages: (A) Incoming PHB Determination, (B) Outgoing PHB Determination with Optional Traffic Conditioning, (C) Label Forwarding, and (D) Encoding of Diff-Serv information into the encapsulation layer (EXP, CLP, DE, or 802.1 User_Priority).
The Mandatory EXP/PSC→PHB mapping for L-LSPs defines: EXP=000 maps to DF, CSn, or EF (per PSC); EXP=001 maps to AFn1; EXP=010 maps to AFn2; EXP=011 maps to AFn3. This mapping is mandatory and must be used by LSRs for incoming L-LSPs carried over Shim Header encapsulations.
The Mandatory PHB→EXP mapping for outgoing L-LSPs encodes: DF→000, CSn→000, AFn1→001, AFn2→010, AFn3→011, EF→000. This mapping must be used for all outgoing L-LSPs using the MPLS Shim Layer.
This document defines RSVP error code 27 ('Diff-Serv Error') with five error values: 1=Unexpected DIFFSERV object, 2=Unsupported PHB, 3=Invalid EXP↔PHB mapping, 4=Unsupported PSC, 5=Per-LSP context allocation failure. RSVP DIFFSERV Object is assigned class number 65 with C_Types 1 (E-LSP) and 2 (L-LSP).
Section 11 notes that this specification introduces no security considerations beyond those already present in the MPLS architecture and the RSVP and LDP signaling protocols it extends. Implementors are directed to the security considerations of those base specifications for relevant threats and mitigations.
The RSVP DIFFSERV object for an E-LSP (class=65, C_Type=1) consists of a 32-bit header with 28 reserved bits and a 4-bit MAPnb field (0–8 entries), followed by up to 8 MAP entries each 32 bits wide encoding: 13 reserved bits, a 3-bit EXP field, and a 16-bit PHBID field (encoded per RFC 3140).
The RSVP DIFFSERV object for an L-LSP (class=65, C_Type=2) is a single 32-bit word with 16 reserved bits and a 16-bit PSC (PHB Scheduling Class) field encoded as per RFC 3140. It signals the single PSC to be supported by the L-LSP.