rfc-9128

YANG Data Model for Protocol Independent Multicast (PIM)

X. Liu, P. McAllister, A. Peter, M. Sivakumar, Y. Liu, F. Hu
date2022-10 streamIETF areartg wgpim statusPROPOSED STANDARD pages92 canonicalhttps://www.rfc-editor.org/rfc/rfc9128 doi10.17487/RFC9128
This document defines a YANG data model that can be used to configure and manage devices supporting Protocol Independent Multicast (PIM). The model covers the PIM protocol configuration, operational state, and event notifications data.

Extracted elements (22)

design-rationale §2.5

Address-family appears as a node under both the interface list and the PIM instance to allow implementations that do not support per-AF interface configuration to express that restriction either via a vendor augmentation above the AF level or a YANG deviation constraint.

yang, multicast

design-rationale §2.2

Optional capabilities are modeled as YANG features rather than mandatory nodes to allow any major existing PIM implementation to claim compliance with the base model and to simplify capability negotiation. Operational state parameters are not widely designated as features because defaulting an unsupported state value is generally harmless.

yang, multicast

design-rationale §2.4

The model separates PIM functionality into five modules (base, rp, sm, dm, bidir) rather than a single monolithic module so that a device's specific capability set can be expressed naturally, and so that mode-specific modules can augment the shared base without coupling unrelated features.

yang, multicast

design-rationale §3.1

The PIM base module augments /rt:routing/rt:control-plane-protocols (not /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol) to prevent multiple PIM protocol instances, because PIM is designed to be enabled or disabled as a single protocol instance on a network instance.

yang, multicast

interoperability-note §5

Section 5 provides explicit mappings between the YANG data nodes in this model and the PIM-STD-MIB (RFC 5060) tables: pimInterfaceTable, pimNeighborTable, pimStarGTable, pimSGTable, pimSGRptTable, pimBidirDFElectionTable, pimStaticRPTable, pimAnycastRPSetTable, and pimGroupMappingTable.

yang, multicast, snmp

interoperability-note §5.3

The topology-tree-info list serves triple duty: (*,G) routes when source-address is 'ietf-routing-types:*' and is-rpt is false (maps to pimStarGTable), (S,G) routes when source-address is specific and is-rpt is false (pimSGTable), and (S,G,rpt) entries when is-rpt is true (pimSGRptTable).

yang, multicast

normative-requirement §2.3 MUST

The model conforms to the Network Management Datastore Architecture (NMDA) as defined in RFC 8342; operational state data is combined with the associated configuration data in the same hierarchy as specified in RFC 8407.

yang, netconf, multicast

protocol-element §3.2.2

BSR configuration supports a bsr-candidate (interface or explicit IPv4/IPv6 address, hash-mask-length, priority) and rp-candidate (interface or explicit addresses with optional policy and mode). Operational state exposes current BSR address, election state (candidate-bsr-state or non-candidate-bsr-state), and next bootstrap/advertisement timers.

yang, multicast

protocol-element §4.1

Per-address-family statistics expose read-only yang:counter64 counters for sent, received, and errored PIM messages by type: assert, bsr, candidate-rp-advertisement, df-election, graft, graft-ack, hello, join-prune, register, register-stop, state-refresh, plus checksum and format errors.

yang, multicast

protocol-element §3.1.3

Per-address-family topology-tree-info provides read-only multicast route state keyed by (group, source-address, is-rpt) for both IPv4 and IPv6, including incoming-interface, RPF neighbor, RP address, SPT bit, up-time, expiration, and a list of outgoing interfaces with J/P state (no-info, join, prune-pending).

yang, multicast

protocol-element §3.1.4

PIM interface configuration is modeled per-interface and per-address-family, covering BFD (feature-gated), DR priority, hello interval/holdtime/multiplier, Join/Prune interval/holdtime/multiplier, override interval, and propagation delay; operational state includes oper-status, gen-id, hello-expiration, interface addresses, and DR address.

yang, multicast

protocol-element §3.1.5

PIM neighbor state is modeled per-interface per-address-family as read-only lists (ipv4-neighbor and ipv6-neighbor) keyed by neighbor address, carrying BFD state, expiration, DR priority, generation ID, LAN Prune Delay option fields (override-interval, propagation-delay, T-bit), and up-time.

yang, multicast

protocol-element §3.1.6

The base module defines two YANG notifications: pim-neighbor-event (neighbor up/down with interface and neighbor leafrefs) and pim-interface-event (up/down/new-dr/new-df with interface leafref and current IPv4/IPv6 DR address).

yang, multicast

protocol-element §3.1.2

The graceful-restart grouping provides a container with 'enabled' (boolean, default false) and 'duration' (uint16 seconds, default 60) leaves, applied both globally and per-address-family in the PIM base module.

yang, multicast

protocol-element §3.1.1

The ietf-pim-base module defines the top-level presence container 'pim' whose existence enables PIM protocols. It contains global configuration (graceful restart), per-address-family data (statistics, topology-tree-info), and an interface list.

yang, multicast

protocol-element §3.5

The ietf-pim-bidir module adds per-interface DF election configuration (offer-interval, backoff-interval, offer-multiplier) under a feature guard, extends neighbors with a bidir-capable boolean, and provides read-only per-RP per-interface DF election state (df-address, interface-state, winner-metric, winner-metric-preference, up-time).

yang, multicast

protocol-element §3.4

The ietf-pim-dm module augments the per-AF branch and the per-interface branch each with a 'dm' presence container to enable Dense Mode. PIM-DM has no dependency on the PIM RP module.

yang, multicast

protocol-element §3.2

The ietf-pim-rp module augments the per-AF branch with an 'rp' container holding static-rp (ipv4-rp/ipv6-rp lists keyed by rp-address), BSR configuration (bsr-candidate, rp-candidate), read-only rp-list (all active RPs with source type and expiration), and rp-mappings (group-range-to-RP mappings). It is shared by PIM-SM and BIDIR-PIM but not PIM-DM.

yang, multicast

protocol-element §3.3

The ietf-pim-sm module augments per-AF data with an 'sm' container containing ASM sub-tree (anycast-rp sets keyed by anycast-address+rp-address, and spt-switch/infinity with optional policy) and SSM sub-tree (range-policy). Interfaces can be set passive via an 'sm' presence container.

yang, multicast

protocol-element §3.2.5

The PIM RP module defines a pim-rp-event notification carrying event-type, instance-af-ref, group address, RP address, is-rpt flag, PIM mode, and message origin.

yang, multicast

registry §8

This document registers five YANG modules in the IETF XML Registry and the YANG Module Names registry: ietf-pim-base, ietf-pim-rp, ietf-pim-sm, ietf-pim-dm, and ietf-pim-bidir, each with namespace URIs under urn:ietf:params:xml:ns:yang:.

registry, yang, multicast

security-consideration §7

The YANG modules define data nodes that are writable/creatable/deletable; unauthorized access could disrupt PIM operation. Implementations must enforce access control via NETCONF or RESTCONF as specified in RFC 8341 to restrict write operations to authorized administrators.

security, yang, multicast, netconf