Hierarchical Join/Prune Attributes
updates
- rfc-5384 — The Protocol Independent Multicast (PIM) Join Attribute Format
Extracted elements (12)
When the same Join/Prune attribute values need to be specified for multiple sources in a PIM Join/Prune message, RFC 5384 requires them to be repeated for each individual source. This document introduces a hierarchical encoding so that message-wide or group-wide attributes need only be specified once, reducing message size.
Even a router that is not the upstream neighbor must be able to parse Join/Prune messages with hierarchical attributes in order to perform Join suppression and Prune override. This requires all PIM neighbors on an interface to support the hierarchical encoding before it can be used.
A PIM router MUST NOT send a Join/Prune message with Join/Prune attributes encoded in the Upstream Neighbor Address or any group addresses out of any interface on which there is a PIM neighbor that has not included the Hierarchical Join/Prune Attribute Hello Option in its Hellos.
As specified in RFC 5384, a type 1 Encoded Address MUST contain at least one Join/Prune attribute.
When a PIM router includes the Hierarchical Join/Prune Attribute Hello Option in its PIM Hello message, it MUST also include the Join Attribute Hello Option as specified in RFC 5384.
When the same attribute is specified at multiple levels, the most specific level overrides other instances. The complete attribute set is formed before processing, so even an invalid value at the most specific level overrides valid values at higher levels.
A three-level hierarchy of Join/Prune attributes is defined: message-wide attributes encoded in the Upstream Neighbor Address field (least specific), group-set attributes encoded in the Multicast Group Address field, and source-specific attributes encoded in the source address as per RFC 5384 (most specific).
This document extends the encoding type defined in RFC 5384 to apply not only to Encoded-Source addresses but also to Encoded-Unicast and Encoded-Group address formats in PIM messages. Encoding type 0 is native encoding (RFC 7761) and type 1 is Join/Prune attributes encoding (RFC 5384).
IANA renamed the 'PIM Encoded-Source Address Encoding Type Field' registry to 'PIM Address Encoding Types'. The content of the registry remains the same; only the name changes to reflect the extended applicability to all PIM address encoding types.
The Hierarchical Join/Prune Attribute Hello Option with OptionType value 36 has been added to the 'PIM-Hello Options' registry.
The hierarchical encoding has no additional security impact compared to RFC 5384's encoding. A forged message attack with certain attribute values is equally difficult regardless of encoding. However, a wrong message-wide attribute could affect all sources in the message—but this is equivalent to including that bad attribute for every source individually.
The Hierarchical Join/Prune Attribute Hello Option is a 4-byte structure with OptionType=36 (2 bytes) and OptionLength=0 (2 bytes), with no option value field.