rfc-4901

Protocol Extensions for Header Compression over MPLS

J. Ash (Editor), J. Hand (Editor), A. Malis (Editor)
date2007-06 streamIETF arearai wgavt statusPROPOSED STANDARD pages34 canonicalhttps://www.rfc-editor.org/rfc/rfc4901 doi10.17487/RFC4901
This specification defines how to use Multi-Protocol Label Switching (MPLS) to route Header-Compressed (HC) packets over an MPLS label switched path. HC can significantly reduce packet-header overhead and, in combination with MPLS, can also increases bandwidth efficiency and processing scalability in terms of the maximum number of simultaneous compressed flows that use HC at each router). Here we define how MPLS pseudowires are used to transport the HC context and control messages between the ingress and egress MPLS label switching routers. This is defined for a specific set of existing HC mechanisms that might be used, for example, to support voice over IP. This specification also describes extension mechanisms to allow support for future, as yet to be defined, HC protocols. In this specification, each HC protocol operates independently over a single pseudowire instance, very much as it would over a single point-to-point link. [STANDARDS-TRACK]

Extracted elements (25)

design-rationale §4

A single PW label MUST be used for many HC flows (hundreds or thousands) rather than assigning a different PW label per flow. This avoids the complex mechanism for PW label assignment and freeing after flow termination; CID assignment within HC protocols already handles per-flow demultiplexing.

mpls

design-rationale §3

HC configuration option formats from RFC 3241 (ROHC over PPP) and RFC 3544 (CRTP/ECRTP/IPHC over PPP) are reused as TLVs in LDP PW signaling rather than defining new formats, but the detailed PPP negotiation process is not reused. A single HC PW supports only one HC scheme, so the full PPP multi-protocol negotiation is unnecessary.

mpls

design-rationale §3

HC over MPLS uses MPLS pseudowires to provide emulation of a single point-to-point link between compressor and decompressor, allowing existing HC algorithms (designed for single link-layer hops) to operate without compression/decompression cycles at intermediate LSRs. This avoids per-router decompression overhead and increases both bandwidth efficiency and scalability.

mpls, qos

design-rationale §4.3

The first nibble of the HC control parameter is set to 0000 to avoid being mistaken for an IP packet, consistent with the PW MPLS control word encoding in RFC 4385. Although ROHC provides its own packet type field, the HC control parameter MUST still be used to avoid ECMP misclassification problems.

mpls, security

interoperability-note §4.4

CRTP was designed for reliable point-to-point links with short delays and does not perform well over links with high packet loss, reordering, and long delays. For such environments, ECRTP should be considered instead. IPHC should use TCP_NODELTA, ECRTP should send absolute values, and ROHC should be adapted as discussed in RFC 4224 for reordering scenarios.

mpls, rtp

normative-requirement §4.1 MUST

An LDP session MUST be set up between PW endpoints using the extended discovery mechanism. PW label bindings are distributed using LDP downstream unsolicited mode. Any acceptable method of MPLS label distribution MAY be used for distributing the MPLS tunnel label (LDP, RSVP-TE, or configuration).

mpls

normative-requirement §4.2 MUST

HC scheme parameters MAY be manually configured, but manual configuration MUST be done in both directions. If HC scheme parameters are signaled, the Interface Parameters Sub-TLV MUST be used on any unidirectional legs carrying HC traffic; for legs carrying only compression feedback, these Sub-TLV components MUST NOT be used.

mpls

normative-requirement §4 SHOULD

Multiple PWs SHOULD be established in case different QoS requirements are needed for different compressed streams. The QoS received by the flow is determined by the EXP bit marking in the PW label.

mpls, qos, diffserv

normative-requirement §4.1 MUST

PWs MUST be set up in advance for transport of media streams using RFC 4447 control messages exchanged by HC-HD endpoints. A PW type MUST be used to indicate the HC scheme being used on the PW.

mpls

normative-requirement §4.2.4 MUST

Suboption 3 (TCP/non-TCP selection, Type 3, Length 3) MUST be included for IPHC PWs (0x001C) and MUST NOT be included for other PW types. Parameter value 1 sets TCP_SPACE contexts to 0; value 2 sets NON_TCP_SPACE contexts to 0. If included multiple times with both values, compression is disabled for all packets.

mpls

normative-requirement §4.2.5 MUST

The Configuration Option Format from RFC 3241 (ROHC) MUST be included for ROHC PW types and MUST NOT be included for ECRTP, CRTP, and IPHC PW types. A decompressor MUST reject this option for non-ROHC PW types and send an explicit error message to the compressor. The PROFILES suboption MUST be supplied.

mpls

normative-requirement §4.2.1 MUST

The Configuration Option Format from RFC 3544 MUST be included for ECRTP, CRTP, and IPHC PW types and MUST NOT be included for ROHC PW types. A decompressor MUST reject this option for ROHC PW types and send an explicit error message to the compressor.

mpls

normative-requirement §4.3 MUST

The HC control parameter length field is ONLY used for short packets because Ethernet padding may be appended. If the packet length is >= 64 octets, the length field MUST be set to zero. If the MPLS payload is less than 64 bytes, the length field MUST be set to the length of the PW payload plus the length of the HC control parameter.

mpls

normative-requirement §4 MUST

The HC control parameter MUST be used to identify packet types for the HC scheme in use. The PW label MUST be used as the demultiplexer field by the HD, appearing at the bottom of the MPLS label stack. The LSR performing decompression MUST ensure that the label it distributes for a channel is unique.

mpls

normative-requirement §4.2 MUST

The HC PW MUST be used for compressed packets only. If a flow is not compressed, it MUST NOT be placed on the HC PW. HC PWs MUST be bi-directional, with a unidirectional leg set up in each direction using the same PW type for signaling in both directions.

mpls

normative-requirement §4.2.2 MUST

The RTP-Compression Suboption (Type 1, Length 2) MUST be included for CRTP PWs (0x001C) and MUST NOT be included for other PW types. The Enhanced RTP-Compression Suboption (Type 2, Length 2) MUST be included for ECRTP PWs (0x001B) and MUST NOT be included for other PW types. These two suboptions MUST NOT occur together; if they do, the decompressor MUST reject the option.

mpls, rtp

protocol-element §3

The HC channel uses a tuple of <PW label, CID> to uniquely identify decompression contexts at the HD. This allows multiple compressors that independently assign the same CID to different flows to coexist at a single decompressor, since the PW label scopes the CID namespace.

mpls

protocol-element §4.3

The HC control parameter Packet Type field (4 bits) encodes: 0=ROHC Small-CIDs, 1=ROHC Large-CIDs, 2=FULL_HEADER, 3=COMPRESSED_TCP, 4=COMPRESSED_TCP_NODELTA, 5=COMPRESSED_NON_TCP, 6=COMPRESSED_RTP_8, 7=COMPRESSED_RTP_16, 8=COMPRESSED_UDP_8, 9=COMPRESSED_UDP_16, 10=CONTEXT_STATE, 11-15=unassigned.

mpls, rtp

registry §4.1

IANA assigned four PW type values in the RFC 4446 registry to identify HC pseudowires: 0x001A (ROHC), 0x001B (ECRTP), 0x001C (IPHC), and 0x001D (CRTP) Transport Header-compressed Packets.

registry, mpls

registry §4.2

IANA assigned two Pseudowire Interface Parameter Sub-TLV type values: 0x0D (up to 256 bytes) for ROHC over MPLS configuration per RFC 3241, and 0x0F (up to 256 bytes) for CRTP/ECRTP/IPHC HC over MPLS configuration per RFC 3544.

registry, mpls

registry §8

IANA created a new registry 'Header Compression Over MPLS HC Control Parameter Packet Type' for the 4-bit packet type field. Packet Types 0-10 are defined by this document; Types 11-15 are assigned by IANA using the Expert Review policy defined in RFC 2434.

registry, mpls

security-consideration §6

MPLS PW security considerations from RFC 3985 and RFC 4447 apply to this document. This document specifies an encapsulation only; security issues of the encapsulated protocols (IPHC, CRTP, ECRTP, ROHC per their respective RFCs) and the PSN transport protocols each apply independently and are not affected by the encapsulations specified herein.

security, mpls

wire-format §4.2.5

The Configuration Option Format (RFC 3241) for ROHC contains: Type (1 octet, value 2), Length (>=10), IP-Compression-Protocol (0x0003), MAX_CID (2 octets, suggested 15, max 16383), MRRU (2 octets, suggested 0), MAX_HEADER (2 octets, suggested 168 octets), followed by suboptions. The PROFILES suboption (Type 1) carries n octet-pairs in ascending order specifying supported ROHC profiles.

mpls

wire-format §4.2.1

The Configuration Option Format (RFC 3544) for IPHC/CRTP/ECRTP contains: Type (1 octet, value 2), Length (>=14), IP-Compression-Protocol (0x0061), TCP_SPACE (2 octets, max CID for TCP, suggested 15), NON_TCP_SPACE (2 octets, max CID for non-TCP, suggested 15), F_MAX_PERIOD (2 octets, suggested 256), F_MAX_TIME (2 octets, suggested 5 seconds), MAX_HEADER (2 octets, suggested 168 octets), followed by suboptions.

mpls

wire-format §4.3

The HC control parameter is a 2-octet field with the format: 4 bits reserved (0000), 4-bit Packet Type field, 6-bit Length field, and 2 reserved bits. The first nibble is set to 0000 to avoid being mistaken for an IP packet. Packet Types 0-10 are defined; types 11-15 are reserved for IANA Expert Review assignment.

mpls