Adjusting State Refresh Control Parameters
Pre-configuration Tasks
PIM-DM provides a state refresh mechanism to prevent pruned interfaces from resuming multicast forwarding due to prune state timeout. The first-hop device directly connected to a multicast source sends State-Refresh messages at intervals to reset the prune timers on pruned interfaces and maintain the SPT.
Disabling Forwarding of State-Refresh Messages
Context
Pruned interfaces can resume multicast forwarding when the prune timer expires, even though no downstream devices need to receive multicast data. To prevent this problem, the PIM device directly connected to a multicast source sends State-Refresh messages at intervals to update state of (S, G) entries. A State-Refresh message is propagated to downstream devices hop by hop to reset prune timers on all the PIM devices. In this way, interfaces that do not need to forward multicast data retain in prune state.
By default, all PIM devices can forward State-Refresh messages. If you want multicast data to be flooded on the entire network in every flood-prune process and do not want to prevent pruned interface from resume multicast forwarding, disable forwarding of State-Refresh messages on device interfaces.
Disabling forwarding of State-Refresh messages is not recommended because State-Refresh messages can conserve network resources.
Procedure
- Run system-view
The system view is displayed.
- Run interface interface-type interface-number
The interface view is displayed.
- Run undo pim state-refresh-capable
Forwarding of State-Refresh messages is disabled on the interface.
By default, forwarding of State-Refresh messages is enabled on the interface.
To enable the interface to forward State-Refresh messages again, run the pim state-refresh-capable command on the interface.
Adjusting Time Parameters for State-Refresh Messages
Context
The PIM device directly connected to a multicast source sends State-Refresh messages at intervals to downstream devices. State-Refresh messages are flooded on the entire network, so a device may receive duplicate State-Refresh messages within a short time. To prevent this problem, a device starts a timer when receiving a State-Refresh message for an (S, G) entry. The timer value is the suppression time of the State-Refresh message. If the device receives the same State-Refresh messages before the timer expires, it drops the received State-Refresh messages.
Setting the TTL Value of State-Refresh Messages
Context
When a device receives a State-Refresh message, it reduces the time-to-live (TTL) value of the message by 1 and forwards the message to downstream devices. The State-Refresh message is transmitted on the network until its TTL value reduces to 0. On a small-scale network, State-Refresh messages with a large TTL value are transmitted circularly. To control the transmission range of State-Refresh messages, set a proper TTL value for State-Refresh messages according to the network scale.
Because State-Refresh messages are originated from the first-hop device connected to a multicast source, the TTL value of State-Refresh messages must be configured on the first-hop device.
Verifying the Configuration of State Refresh Control Parameters
Prerequisites
After adjusting state refresh control parameters, you can check information about the PIM interface, statistics about PIM control messages, and PIM routing table.
Procedure
- Run the display pim [ vpn-instance vpn-instance-name | all-instance ] interface [ interface-type interface-number | up | down ] [ verbose ] command to check PIM information on an interface.
- Run the display pim [ vpn-instance vpn-instance-name | all-instance ] control-message counters [ message-type { assert | graft | graft-ack | hello | join-prune | state-refresh | bsr } | interface interface-type interface-number ] * command to check the number of PIM control messages sent and received from an interface.
- Run the following commands to check the PIM routing table:
Run the display pim [ vpn-instance vpn-instance-name | all-instance ] routing-table [ group-address [ mask { group-mask-length | group-mask } ] | source-address [ mask { source-mask-length | source-mask } ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { include | exclude | match } { interface-type interface-number | register | none } | mode { dm | sm | ssm } | flags flag-value | fsm ] * [ outgoing-interface-number [ number ] ] command to check detailed information about the PIM routing table.
Run the display pim [ vpn-instance vpn-instance-name | all-instance ] routing-table brief [ group-address [ mask { group-mask-length | group-mask } ] | source-address [ mask { source-mask-length | source-mask } ] | incoming-interface { interface-type interface-number | register } ] * command to check brief information about the PIM routing table.