rfc-9466

PIM Assert Message Packing

Y. Liu (Editor), T. Eckert (Editor), M. McBride, Z. Zhang
date2023-10 streamIETF areartg wgpim statusPROPOSED STANDARD pages20 canonicalhttps://www.rfc-editor.org/rfc/rfc9466 doi10.17487/RFC9466
When PIM Sparse Mode (PIM-SM), including PIM Source-Specific Multicast (PIM-SSM), is used in shared LAN networks, there is often more than one upstream router. This can lead to duplicate IP multicast packets being forwarded by these PIM routers. PIM Assert messages are used to elect a single forwarder for each IP multicast traffic flow between these routers. This document defines a mechanism to send and receive information for multiple IP multicast flows in a single PackedAssert message. This optimization reduces the total number of PIM packets on the LAN and can therefore speed up the election of the single forwarder, reducing the number of duplicate IP multicast packets incurred.

Extracted elements (29)

design-rationale §3.3

PackedAssert messages do not change the PIM Assert state machine; they are purely a packetization optimization that transmits the same assert record information in fewer, larger packets with reduced total byte overhead, enabling faster processing without protocol semantic changes.

multicast, routing

design-rationale §3.3.1.4

Routers MAY send PackedAssert messages twice in short order (e.g., 50 msec apart) to overcome packet loss, but only when the total size of both copies is less than equivalent Assert messages AND the assert records are in a winner state that would not trigger reply storms.

multicast, routing

design-rationale §4.4.2

The RP Aggregated Assert Record is named for RP aggregation but deliberately does not encode the RP address, because RP address is not present in RFC 7761 assert records; grouping is based on shared Metric Preference and Metric, which typically corresponds to a shared RP.

multicast, routing

design-rationale §3.3.1.2

Timer expiry-triggered asserts can be packed by rounding the Assert Timer to a coarse granularity (e.g., 100 msec), causing multiple (S,G) and (*,G) timers to expire simultaneously and enabling easy packing without changes to the Assert state machinery.

multicast, routing

interoperability-note §4.3

The Zero field in Simple and Aggregated PackedAssert messages is set to zero on transmission specifically to cause non-capable PIM routers to fail in parsing rather than mis-parse the message as a standard Assert message.

multicast, routing

interoperability-note §3.3.2

Upon reception of a PackedAssert message, the PIM router logically converts its payload into a sequence of assert records processed as if an equivalent sequence of Assert messages were received per RFC 7761, with no change to the Assert state machine.

multicast, routing

normative-requirement §3.3.1 SHOULD

A configuration option SHOULD be available to disable PackedAssert operations; PIM-SM implementations that introduce assert packing from day one MAY omit this option.

multicast, routing

normative-requirement §3.3.1.1 SHOULD

For reception-triggered assert records, the router SHOULD send out an Assert or PackedAssert message containing this assert record as soon as possible to minimize duplicate IP multicast packets.

multicast, routing

normative-requirement §3.2 MUST

If P=0 in the Assert message header, the A flag MUST be set to 0 and MUST be ignored on receipt, indicating a standard non-packed PIM Assert message.

multicast, routing

normative-requirement §3.3.1 SHOULD

Implementations SHOULD be able to indicate to the operator how many Assert and PackedAssert messages were sent/received and how many assert records were sent/received.

multicast, routing

normative-requirement §4.4.1 MUST NOT

In a Source Aggregated Assert Record, the R flag MUST be 0 and the Source Address MUST NOT be zero.

multicast, routing

normative-requirement §4.4.2 MUST

In an RP Aggregated Assert Record, the R flag MUST be 1.

multicast, routing

normative-requirement §3.1 MUST NOT

PackedAssert messages MUST NOT be used unless all PIM routers in the same subnet announce the PIM Packed Assert Capability Hello Option.

multicast, routing

normative-requirement §3.3.1.4 SHOULD

Routers SHOULD support mechanisms that allow PackedAsserts and Asserts to be sent with an appropriate DSCP such as Expedited Forwarding (EF) to minimize their loss.

multicast, routing, diffserv

normative-requirement §3.3.1 MUST

When a PIM router has remembered assert records and sending of PackedAsserts is possible, PIM MUST create PackedAssert messages from the remembered assert records and schedule them for sending.

multicast, routing

normative-requirement §3.3.1 MUST NOT

When any PIM routers on the LAN have not signaled support for assert packing, implementations MUST only send Asserts and MUST NOT send PackedAsserts under any condition.

multicast, routing

protocol-element §4.4.1

A Source Aggregated Assert Record encodes one common Source Address, Metric Preference, and Metric with a list of N Group Addresses, representing (S,G1)...(S,Gn) assert records for a shared source. R MUST be 0.

multicast, routing

protocol-element §4.4.2

An RP Aggregated Assert Record encodes one common Metric Preference and Metric with K Group Records, each containing a Group Address and a list of P Source Addresses, aggregating (*,G) assert records sharing the same Metric. R MUST be 1.

multicast, routing

protocol-element §4.1

The PIM Packed Assert Capability Hello Option (OptionType=40, OptionLength=0) announces support for assert packing mechanisms. It has no OptionValue.

multicast, routing

protocol-element §3.2

Two new flag bits are introduced in the PIM Assert message header via RFC 9436: the Packed (P) flag (bit 0) and the Aggregated (A) flag (bit 1). P=1 indicates a PackedAssert message; A=1 within a PackedAssert indicates aggregated encoding.

multicast, routing

registry §5

IANA updated the 'PIM-Hello Options' registry to add OptionType 40 (Packed Assert Capability, length 0) referencing RFC 9466.

registry, multicast

registry §5

IANA updated the 'PIM Message Types' registry for Assert (Type 5) to assign flag bit 0 as 'Packed' and flag bit 1 as 'Aggregated', both referencing RFC 9466; bits 2-7 remain Unassigned.

registry, multicast

security-consideration §6

A forged Assert message could cause the legitimate designated forwarder to stop forwarding traffic to the LAN; this effect may be amplified when using a PackedAssert message since a single forged PackedAssert impacts all flows packed into it.

security, multicast

security-consideration §6

A single misconfigured or malicious router emitting forged PIM Hello messages can inhibit assert packing operations for the entire subnet, since the mechanism requires all routers to announce support. Authentication per RFC 7761 Sections 6.2/6.3 can protect against forged message attacks.

security, multicast

wire-format §4.4

The Aggregated PackedAssert message (P=1, A=1) header contains a 1-byte Zero field followed by 3 Reserved bytes, then M Aggregated Assert Records (either Source Aggregated or RP Aggregated). M is determined from the packet size.

multicast, routing

wire-format §4.1

The PIM Packed Assert Capability Hello Option wire format is two 16-bit fields: OptionType=40 and OptionLength=0, with no OptionValue field.

multicast, routing

wire-format §4.4.2

The RP Aggregated Assert Record begins with R(1 bit)|Metric Preference(31 bits), Metric (32 bits), Number of Group Records K (16 bits), Reserved (16 bits), followed by K Group Records each containing a Group Address, Number of Sources P (16 bits), Reserved (16 bits), and P Source Addresses.

multicast, routing

wire-format §4.3

The Simple PackedAssert message (P=1, A=0) header contains a 1-byte Zero field followed by 3 Reserved bytes, then a sequence of M Assert Records identical in format to RFC 7761 Assert message bodies. M is derived from the packet length.

multicast, routing

wire-format §4.4.1

The Source Aggregated Assert Record begins with R(1 bit)|Metric Preference(31 bits), followed by Metric (32 bits), Source Address (Encoded-Unicast), Number of Groups N (16 bits), Reserved (16 bits), and N Group Addresses (Encoded-Group format).

multicast, routing