ietf-corpus

rfc-5332

MPLS Multicast Encapsulations

T. Eckert, E. Rosen (Editor), R. Aggarwal, Y. Rekhter
date2008-08 streamIETF areartg wgmpls statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc5332 doi10.17487/RFC5332
RFC 3032 established two data link layer codepoints for MPLS, used to distinguish whether the data link layer frame is carrying an MPLS unicast or an MPLS multicast packet. However, this usage was never deployed. This specification updates RFC 3032 by redefining the meaning of these two codepoints. Both codepoints can now be used to carry multicast packets. The second codepoint (formerly the "multicast codepoint") is now to be used only on multiaccess media, and it is to mean "the top label of the following label stack is an upstream-assigned label". RFC 3032 does not specify the destination address to be placed in the "MAC DA" (Medium Access Layer Destination Address) field of an ethernet frame that carries an MPLS multicast packet. This document provides that specification. This document updates RFC 3032 and RFC 4023. [STANDARDS-TRACK]

updates

Extracted elements (19)

design-rationale §1

RFC 3032 established two data link layer codepoints (0x8847 unicast, 0x8848 multicast) to distinguish MPLS unicast from multicast packets, but this usage was never deployed. Further development showed the codepoint need not indicate whether the top label is a multicast label, since the NHLFE already specifies that. The codepoints are therefore redefined: 0x8848 now means the top label is upstream-assigned, not that the packet is multicast.

mpls, multicast

design-rationale §8

Setting the MAC DA vwxyz field to the second label (rather than the top context label) exposes more LSP-specific information in the MAC DA, enabling ethernet-layer filtering of multicast packets with 'unexpected' non-zero vwxyz values. The topmost label is expected to be a constant context label per RFC 5331, while the second label differs per LSP.

mpls, multicast

interoperability-note §1

An implementation performing MPLS multicast per RFC 3032 or RFC 4023 (using the old codepoint semantics) will be unable to interoperate with implementations following this document. However, the absence of a matching control plane on legacy platforms makes practical interoperability conflicts unlikely.

mpls, multicast

normative-requirement §3 MUST

For a point-to-point data link or tunnel, either every MPLS packet MUST carry an upstream-assigned label, or every MPLS packet MUST carry a downstream-assigned label. In the absence of any other information, the use of downstream-assigned labels MUST be presumed by default.

mpls

normative-requirement §6 MUST

For MPLS-in-GRE with a unicast IP destination address, ethertype 0x8847 MUST be used in all cases. For GRE with a multicast IP destination, 0x8847 MUST be used when the top label is downstream-assigned, and 0x8848 MUST be used when it is upstream-assigned.

mpls, multicast

normative-requirement §8 MUST

If an LSR sets vwxyz to a label value and the label stack has two or more labels, vwxyz MUST by default be set to the value of the second label (the label immediately following the topmost entry). The LSR MAY be configured to use a different label.

mpls, multicast

normative-requirement §6 MUST

If it is known that the top label of a GRE packet with a multicast destination IP address is upstream-assigned, the occurrence of ethertype 0x8847 in such a packet MUST be considered an error and the packet MUST be discarded.

mpls, multicast

normative-requirement §8 MUST

LSRs using vwxyz=0 and vwxyz=label-value procedures MUST interoperate: an LSR MUST NOT filter packets for which vwxyz has been set to zero, and MUST NOT indiscriminately filter all packets for which vwxyz is non-zero.

mpls, multicast

normative-requirement §3 MUST

On a multipoint-to-multipoint link where both upstream-assigned and downstream-assigned top labels may appear (scenario 3), the data link or tunnel encapsulation MUST provide a codepoint distinguishing the two types. If no such codepoint exists, scenario 3 MUST NOT be used.

mpls, multicast

normative-requirement §3 MUST

On a point-to-multipoint data link or tunnel, the top labels of all MPLS packets MUST be of the same type — either all upstream-assigned or all downstream-assigned. All receivers must know a priori which type is in use.

mpls, multicast

normative-requirement §7 REQUIRED

RFC 4023 is updated: the IPv4 Protocol Number field or IPv6 Next Header field for MPLS-in-IP encapsulation is always set to 137, regardless of whether the encapsulated MPLS packet is multicast.

mpls, multicast, ip

normative-requirement §3 MUST NOT

Upstream-assigned labels MUST NOT be used unless it is known that the downstream LSR supports them. The ability to use upstream-assigned labels is an OPTIONAL feature.

mpls

normative-requirement §8 MUST

When transmitting a multicast MPLS packet in a multicast ethernet frame, an LSR MUST set the MAC Destination Address to 01-00-5e-8v-wx-yz, where vwxyz is a 20-bit value set to either 0 or the value of one of the MPLS labels on the packet's label stack.

mpls, multicast

protocol-element §1

A 'multicast label' is an MPLS label whose NHLFE specifies a set of next hops with semantics that the packet is to be replicated and sent to each next hop. The intent to replicate distinguishes it from a unicast label, even when the set has only one member.

mpls, multicast

protocol-element §4

Ethertype 0x8847 is used for MPLS unicast ethernet frames and also for multicast ethernet frames carrying MPLS packets whose top label is downstream-assigned. Ethertype 0x8848 is used exclusively when a multicast ethernet frame carries an MPLS packet whose top label is upstream-assigned.

mpls, multicast

protocol-element §3

Upstream-assigned labels are those where the binding between label L and FEC F was made by the transmitting LSR (or a third party) and advertised to the receiving LSR, as opposed to downstream-assigned labels where the receiver makes and advertises the binding. Upstream-assigned labels are not required to come from the same label space as downstream-assigned labels.

mpls

registry §9

IANA has reserved ethernet multicast addresses 01-00-5e-80-00-00 through 01-00-5e-8f-ff-ff for use when an ethernet multicast frame carries an MPLS multicast packet. These addresses are valid with ethertype 0x8847 or 0x8848. Ethertypes 0x8847 and 0x8848 are redescribed as 'MPLS' and 'MPLS with upstream-assigned label' respectively.

mpls, multicast, registry

security-consideration §10

Malicious changing of the ethernet codepoint (0x8847 vs. 0x8848) may result in loss or misrouting of packets, but altering the codepoint without also altering the label does not produce a predictable effect. Malicious alteration of the MAC DA on ethernet can cause packets to be received by a third party rather than the intended recipient.

mpls, security, multicast

wire-format §5

For PPP (a point-to-point data link), the PPP Protocol field is always set to 0x0281 when carrying an MPLS packet, regardless of whether the label is upstream- or downstream-assigned.

mpls