Skip to content

PIM

PIM (Protocol Independent Multicast) manages multicast traffic distribution across NX-OS networks, supporting VRF-aware deployments with configurable rendezvous points, anycast RP for redundancy, and SSM (Source-Specific Multicast) range definitions. It provides per-VRF control over RP address assignments, group ranges, bidirectional mode, and SSM group lists with prefix list and route map filtering for granular multicast policy enforcement. Dynamic RP discovery is supported through BSR (candidate BSR, candidate RP and filter policies) and Auto-RP (mapping agent, candidate RP and filter policies), and ASM settings cover pre-built SPTs, shared-tree-only group ranges, (S,G) expiry timers, register policies and the register source interface. Global settings include router isolation and the PIM syslog logging level. PIM interface-level configuration enables sparse mode, BFD integration, DR priority, passive mode, border designation, neighbor filtering, hello interval and hello authentication across loopback, VLAN, Ethernet, and port-channel interfaces, and Ethernet and port-channel subinterfaces.

PIM (Protocol Independent Multicast) manages multicast traffic distribution across NX-OS networks, supporting VRF-aware deployments with configurable rendezvous points, anycast RP for redundancy, and SSM (Source-Specific Multicast) range definitions. It provides per-VRF control over RP address assignments, group ranges, bidirectional mode, and SSM group lists with prefix list and route map filtering for granular multicast policy enforcement. PIM interface-level configuration enables sparse mode, BFD integration, DR priority, passive mode, border designation, and neighbor filtering across loopback, VLAN, Ethernet, and port-channel interfaces.

NameTypeConstraintMandatoryDefault Value
devicesListdevicesNo
device_groupsListdevice_groupsNo
globalClassglobalNo
templatesListtemplatesNo
interface_groupsListinterface_groupsNo

NameTypeConstraintMandatoryDefault Value
devicesListdevicesNo
device_groupsListdevice_groupsNo
globalClassglobalNo
templatesListtemplatesNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
routingClassroutingNo
interfacesClassinterfacesNo

NameTypeConstraintMandatoryDefault Value
subinterfacesListsubinterfacesNo
pimClasspimNo

NameTypeConstraintMandatoryDefault Value
loopbacksListloopbacksNo
vlansListvlansNo
ethernetsListethernetsNo
port_channelsListport_channelsNo

ethernets (nxos.devices.configuration.interfaces)

Section titled “ethernets (nxos.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
subinterfacesListsubinterfacesNo
pimClasspimNo

ethernets (nxos.devices.configuration.interfaces)

Section titled “ethernets (nxos.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
pimClasspimNo

port_channels (nxos.devices.configuration.interfaces)

Section titled “port_channels (nxos.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
subinterfacesListsubinterfacesNo
pimClasspimNo

port_channels (nxos.devices.configuration.interfaces)

Section titled “port_channels (nxos.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
pimClasspimNo

NameTypeConstraintMandatoryDefault Value
pimClasspimNo

loopbacks (nxos.devices.configuration.interfaces)

Section titled “loopbacks (nxos.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
pimClasspimNo

vlans (nxos.devices.configuration.interfaces)

Section titled “vlans (nxos.devices.configuration.interfaces)”
NameTypeConstraintMandatoryDefault Value
pimClasspimNo

subinterfaces (nxos.devices.configuration.interfaces.ethernets)

Section titled “subinterfaces (nxos.devices.configuration.interfaces.ethernets)”
NameTypeConstraintMandatoryDefault Value
pimClasspimNo

NameTypeConstraintMandatoryDefault Value
evpn_border_leafBooleantrue, falseNo
extranetBooleantrue, falseNo
isolateBooleantrue, falseNo
logging_levelIntegermin: 0, max: 7No
bfdBooleantrue, falseNo
auto_enableBooleantrue, falseNo
flush_routesBooleantrue, falseNo
log_neighbor_changesBooleantrue, falseNo
mtuIntegermin: 1500, max: 65536No
register_rate_limitIntegermin: 0, max: 65535No
strict_rfc_compliantBooleantrue, falseNo
spt_switch_gracefulBooleantrue, falseNo
pre_build_sptBooleantrue, falseNo
pre_build_spt_forceBooleantrue, falseNo
pre_build_spt_route_mapStringNo
pre_build_spt_prefix_listStringNo
spt_threshold_infinity_group_listStringNo
spt_threshold_infinity_group_list_prefix_listStringNo
use_shared_tree_only_group_listStringNo
use_shared_tree_only_group_list_prefix_listStringNo
sg_expiry_timerIntegermin: 180, max: 604801No
sg_expiry_timer_sg_listStringNo
sg_expiry_timer_prefix_listStringNo
register_policyStringNo
register_policy_prefix_listStringNo
register_source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
register_source_interface_idStringNo
ssmClassssmNo
rp_addressesListrp_addressesNo
anycast_rpsListanycast_rpsNo
bsrClassbsrNo
auto_rpClassauto_rpNo
vrfsListvrfsNo

NameTypeConstraintMandatoryDefault Value
evpn_border_leafBooleantrue, falseNo
extranetBooleantrue, falseNo
bfdBooleantrue, falseNo
auto_enableBooleantrue, falseNo
flush_routesBooleantrue, falseNo
log_neighbor_changesBooleantrue, falseNo
mtuIntegermin: 1500, max: 65536No
register_rate_limitIntegermin: 0, max: 65535No
strict_rfc_compliantBooleantrue, falseNo
spt_switch_gracefulBooleantrue, falseNo
ssmClassssmNo
rpsListrpsNo
anycast_rpsListanycast_rpsNo
vrfsListvrfsNo

pim (nxos.devices.configuration.interfaces.loopbacks)

Section titled “pim (nxos.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
bfd_instanceBooleantrue, falseNo
dr_priorityIntegermin: 1, max: 4294967295No
passiveBooleantrue, falseNo
sparse_modeBooleantrue, falseNo
borderBooleantrue, falseNo
dr_delayIntegermin: 1, max: 65535No
jp_policyStringNo
neighbor_policyStringNo
neighbor_policy_prefix_listStringNo
strict_rfc_compliantBooleantrue, falseNo
hello_intervalIntegermin: 1, max: 18724286No
hello_authentication_ah_md5StringNo
hello_authentication_keychainStringNo

pim (nxos.devices.configuration.interfaces.loopbacks)

Section titled “pim (nxos.devices.configuration.interfaces.loopbacks)”
NameTypeConstraintMandatoryDefault Value
bfd_instanceBooleantrue, falseNo
dr_priorityIntegermin: 1, max: 4294967295No
passiveBooleantrue, falseNo
sparse_modeBooleantrue, falseNo
borderBooleantrue, falseNo
dr_delayIntegermin: 1, max: 65535No
jp_policyStringNo
neighbor_policyStringNo
neighbor_policy_prefix_listStringNo
strict_rfc_compliantBooleantrue, falseNo

ssm (nxos.devices.configuration.routing.pim)

Section titled “ssm (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
range_1IPNo
range_2IPNo
range_3IPNo
range_4IPNo
prefix_listStringNo
noneBooleantrue, falseNo
route_mapStringNo

ssm (nxos.devices.configuration.routing.pim)

Section titled “ssm (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
range_1StringNo
range_2StringNo
range_3StringNo
range_4StringNo
prefix_listStringNo
noneBooleantrue, falseNo
route_mapStringNo

rp_addresses (nxos.devices.configuration.routing.pim)

Section titled “rp_addresses (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
group_listIPNo
bidirBooleantrue, falseNo
overrideBooleantrue, falseNo
route_mapStringNo
prefix_listStringNo

anycast_rps (nxos.devices.configuration.routing.pim)

Section titled “anycast_rps (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
set_addressIPYes

bsr (nxos.devices.configuration.routing.pim)

Section titled “bsr (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
listenBooleantrue, falseNo
forwardBooleantrue, falseNo
bsr_candidate_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
bsr_candidate_interface_idStringNo
bsr_candidate_hash_lenIntegermin: 0, max: 65535No
bsr_candidate_priorityIntegermin: 1, max: 255No
bsr_candidate_intervalIntegermin: 1, max: 65535No
rp_candidate_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
rp_candidate_interface_idStringNo
rp_candidate_group_listIPNo
rp_candidate_route_mapStringNo
rp_candidate_prefix_listStringNo
rp_candidate_priorityIntegermin: 0, max: 255No
rp_candidate_intervalIntegermin: 1, max: 65535No
rp_candidate_bidirBooleantrue, falseNo
bsr_policyStringNo
rp_candidate_policyStringNo

auto_rp (nxos.devices.configuration.routing.pim)

Section titled “auto_rp (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
listenBooleantrue, falseNo
forwardBooleantrue, falseNo
mapping_agent_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
mapping_agent_interface_idStringNo
mapping_agent_scopeIntegermin: 1, max: 255No
rp_candidate_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
rp_candidate_interface_idStringNo
rp_candidate_group_listIPNo
rp_candidate_route_mapStringNo
rp_candidate_prefix_listStringNo
rp_candidate_scopeIntegermin: 1, max: 255No
rp_candidate_intervalIntegermin: 1, max: 65535No
rp_candidate_bidirBooleantrue, falseNo
mapping_agent_policyStringNo
rp_candidate_policyStringNo

vrfs (nxos.devices.configuration.routing.pim)

Section titled “vrfs (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
vrfStringYes
bfdBooleantrue, falseNo
auto_enableBooleantrue, falseNo
flush_routesBooleantrue, falseNo
log_neighbor_changesBooleantrue, falseNo
mtuIntegermin: 1500, max: 65536No
register_rate_limitIntegermin: 0, max: 65535No
strict_rfc_compliantBooleantrue, falseNo
spt_switch_gracefulBooleantrue, falseNo
pre_build_sptBooleantrue, falseNo
pre_build_spt_forceBooleantrue, falseNo
pre_build_spt_route_mapStringNo
pre_build_spt_prefix_listStringNo
spt_threshold_infinity_group_listStringNo
spt_threshold_infinity_group_list_prefix_listStringNo
use_shared_tree_only_group_listStringNo
use_shared_tree_only_group_list_prefix_listStringNo
sg_expiry_timerIntegermin: 180, max: 604801No
sg_expiry_timer_sg_listStringNo
sg_expiry_timer_prefix_listStringNo
register_policyStringNo
register_policy_prefix_listStringNo
register_source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
register_source_interface_idStringNo
ssmClassssmNo
rp_addressesListrp_addressesNo
anycast_rpsListanycast_rpsNo
bsrClassbsrNo
auto_rpClassauto_rpNo

vrfs (nxos.devices.configuration.routing.pim)

Section titled “vrfs (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
vrfStringYes
bfdBooleantrue, falseNo
auto_enableBooleantrue, falseNo
flush_routesBooleantrue, falseNo
log_neighbor_changesBooleantrue, falseNo
mtuIntegermin: 1500, max: 65536No
register_rate_limitIntegermin: 0, max: 65535No
strict_rfc_compliantBooleantrue, falseNo
spt_switch_gracefulBooleantrue, falseNo
ssmClassssmNo
rpsListrpsNo
anycast_rpsListanycast_rpsNo

rps (nxos.devices.configuration.routing.pim)

Section titled “rps (nxos.devices.configuration.routing.pim)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
group_listIPNo
bidirBooleantrue, falseNo
overrideBooleantrue, falseNo

Example 1: Basic PIM sparse-mode with static RP for VXLAN fabric

nxos:
devices:
- name: LEAF1
configuration:
routing:
pim:
rp_addresses:
- address: 10.1.101.1
interfaces:
loopbacks:
- id: 0
pim:
sparse_mode: true
- id: 1
pim:
sparse_mode: true
ethernets:
- id: 1/1
pim:
sparse_mode: true
- id: 1/2
pim:
sparse_mode: true

Example 2: Spine with anycast RP set for redundant multicast rendezvous

nxos:
devices:
- name: SPINE1
configuration:
routing:
pim:
rp_addresses:
- address: 10.1.101.1
anycast_rps:
- address: 10.1.101.1
set_address: 10.1.100.1
- address: 10.1.101.1
set_address: 10.1.100.2
interfaces:
loopbacks:
- id: 0
pim:
sparse_mode: true
- id: 100
pim:
sparse_mode: true
ethernets:
- id: 1/1
pim:
sparse_mode: true
- id: 1/2
pim:
sparse_mode: true

Example 3: PIM with SSM, BFD, and multicast border configuration

nxos:
devices:
- name: BORDER-LEAF1
configuration:
routing:
pim:
bfd: true
log_neighbor_changes: true
rp_addresses:
- address: 10.1.101.1
ssm:
range_1: 232.0.0.0/8
vrfs:
- vrf: BLUE
rp_addresses:
- address: 192.168.1.1
group_list: 239.0.0.0/8
interfaces:
ethernets:
- id: 1/1
pim:
sparse_mode: true
- id: 1/10
pim:
sparse_mode: true
border: true
dr_priority: 200

Example 4: PIM router isolation for maintenance with reduced syslog verbosity

nxos:
devices:
- name: SPINE2
configuration:
routing:
pim:
isolate: true
logging_level: 3
rp_addresses:
- address: 10.1.101.1

Example 5: BSR candidate RP with register source and hello authentication

nxos:
devices:
- name: SPINE1
configuration:
routing:
pim:
register_source_interface_type: loopback
register_source_interface_id: "0"
register_policy: PIM-REGISTER
bsr:
listen: true
forward: true
bsr_candidate_interface_type: loopback
bsr_candidate_interface_id: "0"
bsr_candidate_priority: 100
rp_candidate_interface_type: loopback
rp_candidate_interface_id: "0"
rp_candidate_group_list: 239.0.0.0/8
rp_candidate_priority: 10
bsr_policy: PIM-BSR-FILTER
interfaces:
loopbacks:
- id: 0
pim:
sparse_mode: true
ethernets:
- id: 1/1
pim:
sparse_mode: true
hello_interval: 10000
hello_authentication_keychain: PIM-HELLO
- id: 1/2
pim:
sparse_mode: true
hello_authentication_ah_md5: a667d47acc18ea6b

Example 6: Auto-RP in a tenant VRF with ASM tuning

nxos:
devices:
- name: BORDER-LEAF1
configuration:
routing:
pim:
vrfs:
- vrf: BLUE
pre_build_spt: true
spt_threshold_infinity_group_list: PIM-SHARED-TREE
sg_expiry_timer: 300
sg_expiry_timer_sg_list: PIM-SG-EXPIRY
rp_addresses:
- address: 192.168.1.1
route_map: PIM-RP-GROUPS
auto_rp:
listen: true
forward: true
mapping_agent_interface_type: loopback
mapping_agent_interface_id: "10"
mapping_agent_scope: 16
rp_candidate_interface_type: loopback
rp_candidate_interface_id: "10"
rp_candidate_group_list: 238.0.0.0/8
rp_candidate_scope: 16

Example 1: Basic PIM sparse-mode with static RP for VXLAN fabric

nxos:
devices:
- name: LEAF1
configuration:
routing:
pim:
rps:
- address: 10.1.101.1
interfaces:
loopbacks:
- id: 0
pim:
sparse_mode: true
- id: 1
pim:
sparse_mode: true
ethernets:
- id: 1/1
pim:
sparse_mode: true
- id: 1/2
pim:
sparse_mode: true

Example 2: Spine with anycast RP set for redundant multicast rendezvous

nxos:
devices:
- name: SPINE1
configuration:
routing:
pim:
rps:
- address: 10.1.101.1
anycast_rps:
- address: 10.1.101.1
set_address: 10.1.100.1
- address: 10.1.101.1
set_address: 10.1.100.2
interfaces:
loopbacks:
- id: 0
pim:
sparse_mode: true
- id: 100
pim:
sparse_mode: true
ethernets:
- id: 1/1
pim:
sparse_mode: true
- id: 1/2
pim:
sparse_mode: true

Example 3: PIM with SSM, BFD, and multicast border configuration

nxos:
devices:
- name: BORDER-LEAF1
configuration:
routing:
pim:
bfd: true
log_neighbor_changes: true
rps:
- address: 10.1.101.1
ssm:
range_1: 232.0.0.0/8
vrfs:
- vrf: BLUE
rps:
- address: 192.168.1.1
group_list: 239.0.0.0/8
interfaces:
ethernets:
- id: 1/1
pim:
sparse_mode: true
- id: 1/10
pim:
sparse_mode: true
border: true
dr_priority: 200