PIM Null-Register Packing
Extracted elements (23)
As the number of multicast sources increases, the number of PIM Null-Register messages sent from the DR to the RP also increases, resulting in more PIM packet processing. Packing multiple source-group records into a single message reduces this overhead.
The DR decides whether to use the packed format based on the P-bit received from the RP in a Register-Stop message, rather than pre-configuration or static negotiation. This ensures the feature is only used when both endpoints are confirmed to support it.
The number of records per packed message is not encoded explicitly; it is inferred from the IP-layer length. This avoids adding a count field to the message header but requires parsers to iterate until the IP-indicated end of the packet.
A DR that does not support the packed format can continue generating PIM Null-Register messages as defined in RFC 7761 Section 4.4. The P-bit signaling mechanism in Register-Stop messages ensures backward compatibility.
The PIM Packed Null-Register packet format should be enabled only if it is supported by all routers in the Anycast-RP set (RFC 4610). This applies equally to PIM Anycast RP deployments using MSDP (RFC 3446).
After receiving a PIM Packed Null-Register message, the RP SHOULD start sending PIM Packed Register-Stop messages to the DR instead of individual Register-Stop messages.
An RP supporting this specification MUST set the P-bit (flag bit 0) in all Register-Stop messages when this feature is enabled or configured.
Before sending PIM Packed Null-Register or Packed Register-Stop messages, the DR and RP respectively MAY perform Path MTU Discovery and SHOULD limit the number of records per message to fit within the Path MTU to avoid fragmentation.
It is RECOMMENDED that the DR and RP stick to the PIM Packed Null-Register and PIM Packed Register-Stop formats as long as both have the feature enabled, rather than mixing packed and unpacked messages.
The Packing Capability information MUST be indicated by the RP via the PIM Register-Stop message sent to the DR, ensuring a DR switches to the new packet format only when it learns the RP is capable.
When a DR receives a Register-Stop message with the P-bit set, it SHOULD send PIM Packed Null-Register messages to the RP instead of multiple individual Register messages with the N-bit set.
When a DR switches to Data Registers from Null-Registers (due to RP downgrade), it MUST start a Packed_Register_Probe_Time timer to detect whether the RP still supports packed messages.
When the network manager disables the Packing Capability at the RP, the router MUST NOT advertise the Packing Capability. However, an implementation MAY still choose to parse received packed registers during transitional periods.
The Packed_Register_Probe_Time timer is started by the DR when it switches from Null-Registers back to Data Registers. If no PIM Packed Register-Stop or Register-Stop with P-bit set is received within this interval, the DR concludes the RP no longer supports packing. The default value is 60 seconds.
The Packing Capability bit (P-bit, flag bit 0) is defined in the PIM Register-Stop message common header. When set by the RP, it signals the RP's ability to receive PIM Packed Null-Register messages and send PIM Packed Register-Stop messages.
The PIM Packed Null-Register message (Type 13.0) carries N records, each consisting of a Group Address (Encoded-Group format) and Source Address (Encoded-Unicast format) pair, packed sequentially after the common header.
The PIM Packed Register-Stop message (Type 13.1) carries N records of Group Address and Source Address pairs. Receiving this message has the equivalent effect of receiving an individual Register-Stop for each record.
IANA assigned Packing Capability bit 0 in the PIM Register-Stop common header in the 'PIM Message Types' registry; assigned PIM message type 13.0 for PIM Packed Null-Register (flag bits 0-3 Unassigned); and assigned PIM message type 13.1 for PIM Packed Register-Stop (flag bits 0-3 Unassigned).
By forging a PIM Register-Stop message with the P-bit set, an attacker can induce a DR to switch to PIM Packed Null-Register messages, creating unnecessary processing churn in the network without delivering legitimate state.
The effect of forging a PIM Packed Null-Register or Register-Stop message is amplified relative to a single-record message, since the forgery affects all packed records simultaneously instead of just one source-group pair.
The PIM Packed Null-Register message uses Type 13 with Subtype 0 in the common header. Individual Group Address and Source Address records follow back-to-back; the total number of records N is inferred from the IP-layer length, not an explicit count field.
The PIM Packed Register-Stop message uses Type 13 with Subtype 1 in the common header. Records consist of Group Address (Encoded-Group) and Source Address (Encoded-Unicast) pairs parsed sequentially until the IP-layer-indicated end of the message.
The PIM Register-Stop message with Packing Capability uses the standard 32-bit common header where flag bit 0 (P-bit) signals packing support, followed by a Group Address in Encoded-Group format and Source Address in Encoded-Unicast format.