rfc-4623

Pseudowire Emulation Edge-to-Edge (PWE3) Fragmentation and Reassembly

A. Malis, M. Townsley
date2006-08 streamIETF areartg wgpwe3 statusPROPOSED STANDARD pages17 canonicalhttps://www.rfc-editor.org/rfc/rfc4623 doi10.17487/RFC4623 errataview
This document defines a generalized method of performing fragmentation for use by Pseudowire Emulation Edge-to-Edge (PWE3) protocols and services. [STANDARDS-TRACK]

Extracted elements (33)

design-rationale §5.1

PW-specific fragmentation is preferred over IP PSN fragmentation at scale because it allows per-PW buffer assignment, leverages PW sequencing, and can be selectively enabled per-PW rather than applying to all IP traffic at a node.

ip

design-rationale §A

PWE3 fragmentation reuses existing PW sequence number fields rather than defining a separate fragmentation header (as RFC 1990 did). This avoids adding overhead to a new dedicated header when the PW control word already carries a sequence number.

design-rationale §1

PWE3 fragmentation should be used only as a last resort after MTU-management methods (path MTU discovery, CE-PE MTU configuration) fail, because fragmentation and reassembly in core network devices require significantly greater resources than forwarding a single packet.

design-rationale §A

PWE3 inverts the B and E bit values from RFC 1990: in PWE3, 00 means complete/unfragmented (first=0, last=0), whereas RFC 1990 uses 11. This allows implementations that only support complete frames to leave B and E bits at their default zero value without any special handling.

interoperability-note §3

IPv6 packets MUST NOT be fragmented at the IP level before entering a PW. IPv4 packets with the DF bit clear may be fragmented by the PE before PW encapsulation, which is transparent to the PW itself; IPv6 does not permit this.

ip, v6ops

interoperability-note §5.2

Reassembly support for L2TP PWs MAY be unidirectional; each side independently advertises its reassembly capability via the MRRU AVP. The most recent AVP value received always takes precedence and MUST be updated dynamically if received via the SLI message.

interoperability-note §5.5

The B and E bit locations for PW-Types that use a variant L2-specific sublayer (other than the Default L2-Specific Sublayer) are outside the scope of this document and must be defined by those PW-Type specifications.

normative-requirement §A MUST

B and E bits MUST be defined or identified for all PWE3 tunneling protocols to support fragmentation.

normative-requirement §5.1 MUST

Deployments SHOULD avoid combining IP PSN and PW fragmentation and reassembly on the same node. When PW fragmentation is enabled, the DF bit MUST be set on all L2TP over IP packets for that PW.

mpls, ip

normative-requirement §4 MUST

If MPLS-Control signaling is not in use, whether or not to use fragmentation MUST be configured in the sender.

mpls

normative-requirement §1 MUST

If the value 0 is not part of the sequence number space, the sequence number used for fragmentation MUST skip zero and wrap from 65535 to 1.

mpls

normative-requirement §A MUST

Implementations fragmenting a PW frame MUST at the very least ensure that all fragments are sent in order from their own egress point.

normative-requirement §6 MUST

Implementations MUST ensure that no more than one whole fragment overwrites another in a reconstructed frame, preventing fragment overlap attacks.

security

normative-requirement §5.1 SHOULD

L2TPv3 nodes SHOULD participate in Path MTU for automatic adjustment of the PSN MTU. When the payload is IP, Path MTU should be used at the payload level as well.

ip

normative-requirement §5.4 MUST NOT

Packet fragments MUST NOT be sent by a peer that has not received the MRRU AVP in a control message. If the MRRU is present, the MRU AVP MUST also be present.

normative-requirement §4 MUST NOT

The sender MUST NOT use fragmentation if the Fragmentation Indicator parameter (0x09) is not present in the VC FEC element when using MPLS-Control signaling.

mpls

normative-requirement §4.2 SHOULD

The signaled Interface MTU parameter in MPLS-Control SHOULD be used to set the maximum size of the reassembly buffer for received packets to make optimal use of reassembly buffer resources.

mpls

normative-requirement §1 REQUIRED

Using the Sequence Number field on fragmented packets is REQUIRED. Fragmentation is performed first, then resulting fragments are assigned sequential sequence numbers.

mpls

normative-requirement §A MUST

When a receiver detects a skipped (out-of-order) fragment and chooses to wait, a reassembly timer MUST be used to avoid locking up buffer resources for too long.

normative-requirement §5.5 MUST

When fragmentation is used in L2TPv3, an L2-Specific Sublayer with B and E bits defined MUST be present in all data packets for a given session.

protocol-element §4

The MPLS Pseudowire Interface Parameter Sub-TLV type 0x09 (length 4), the Fragmentation Indicator, signals that the receiver is able to reassemble fragments when the control word is in use. Its presence does not obligate the sender to use fragmentation.

mpls, registry

protocol-element §5.4

The MRRU (Maximum Reassembled Receive Unit) AVP, attribute number 95, advertises the maximum size of a reassembled frame excluding L2TP encapsulation and L2-specific sublayer. Its presence in a control message signifies the ability to receive and reassemble PW fragments.

protocol-element §5.3

The MRU (Maximum Receive Unit) AVP, attribute number 94, advertises the maximum size in octets of a fragmented or complete PW frame including L2TP encapsulation but excluding the PSN header. It does not by itself imply reassembly support.

registry §7.1

IANA assigned two new L2TP Control Message AVP attributes: 94 for Maximum Receive Unit (MRU) and 95 for Maximum Reassembled Receive Unit (MRRU), as defined in Sections 5.3 and 5.4.

registry

registry §7.2

IANA assigned two reserved bits in the Default L2-Specific Sublayer registry (per L2TPv3): Bit 2 as the B (Fragmentation) bit and Bit 3 as the E (Fragmentation) bit.

registry

registry §7.3

IANA assigned two reserved bits in the L2TPv2 Message Header: Bit 8 as the B (Fragmentation) bit and Bit 9 as the E (Fragmentation) bit.

registry

security-consideration §6

Implementers must guard against resource exhaustion from pathological fragment combinations. Even the most adversarial combination of received fragments must not allow an attacker to consume an unbounded amount of reassembly buffer resources.

security

security-consideration §6

Unlike IP fragmentation (RFC 1858, RFC 3128), PW-specific fragmentation has no offset field, preventing fragment-overlap attacks. However, all filtering and access controls MUST be applied to the reconstructed frame, not individual PW fragments, to prevent tiny-fragment bypass attacks on tunneled payload.

security

state-machine §4.1

The B/E bit encoding defines four fragment states: 00 = complete unfragmented packet; 01 = first fragment; 10 = last fragment; 11 = intermediate fragment. This encoding is inverted from RFC 1990.

mpls

wire-format §5.6

B and E fragmentation bits for L2TPv2 are located at bits 8 and 9 of the leading bits of the L2TPv2 message header, alongside existing T, L, S, O, P, and Ver fields.

wire-format §5.5

B and E fragmentation bits for L2TPv3 are located at bits 2 and 3 in the Default L2-Specific Sublayer, alongside the S (Sequence) bit at bit 1 and a 24-bit Sequence Number field.

wire-format §4.1

The MPLS PWE3 control word is 32 bits: bits 0-3 are zero, bits 4-7 are Flags, bit 8 is B (Beginning fragment), bit 9 is E (Ending fragment), bits 10-15 are Length, and bits 16-31 are the Sequence Number.

mpls

wire-format §5.3

The MRU AVP (attr 94) and MRRU AVP (attr 95) each have a 6-octet fixed portion: M/H/reserved bits, Length field, Vendor ID 0, and a 2-octet MRU or MRRU value. Total length before hiding is 8 octets.