PIM Configuration

Configuration Hierarchy

The diagram illustrates the PIM configuration hierarchy.

PIM Configuration Hierarchy
Figure 1. PIM Configuration Hierarchy

Configuration Syntax and Commands

The following sections describe the interface configuration syntax and commands.

Multicast Address Family Configuration

You can enable the multicast IPv4 address family under the PIM instance using the following command:

Syntax:

set instance <instance> address-family <attribute> <value>

Attribute Description

<instance>

Specifies the name of the network instance

<afi>

Address family identifier (AFI). Supported values: ipv4

<safi>

Subsequent address family identifier (SAFI), that is, multicast.

Example: Multicast Address Family Configuration

{
    "rtbrick-config:address-family": [
      {
        "afi": "ipv4",
        "safi": "multicast"
      }
    ]
  }

PIM Protocol Configuration

Syntax:

set instance <instance> protocol pim <attribute> <value>

If no instance is specified, PIM will be enabled on the default instance. RBFS supports only IPV4 address family.
Attribute Description

<instance>

Specifies the name of the instance

afi <afi>

Address family identifier (AFI). Supported: ipv4

join-prune-interval <join-prune-interval>

PIM join & prune interval. The interval ranges from 10 to 600 seconds. By default, join & prune interval is 60 seconds and hold-down timer is 210 seconds.

sparse-mode interface <…​>

Reference to an entry in the global interface list. Refer to the PIM Interface Configuration section for details on the PIM interface configuration.

sparse-mode static-join <…​>

A static pim join, (\*\,G) or (S,G). Refer to the PIM Static Join Configuration section for details on the PIM static join configuration.

sparse-mode redistribute <…​>

Redistribution-related configuration. Refer to the PIM Redistribution Configuration section for details on the PIM redistribution configuration.

api  To access the RESTCONF API that corresponds to this CLI, click here.

PIM Interface Configuration

Syntax:

set instance <instance> protocol pim sparse-mode interface <attribute> <value>

Attribute Description

<instance>

Specifies the name of the instance

<interface-name>

Reference to an entry in the global interface list

afi <afi>

Address family identifier (AFI). Supported: ipv4

dr-priority <dr-priority>

Specifies the Specifies the designated router (DR) priority value.

hello-interval <hello-interval>

Specifies the hello timer in seconds. The hello timer ranges from 1 to 3600 seconds. Default: 30 seconds.

override-interval <override-interval>

Specifies the override interval in milliseconds. Default: 2000 milliseconds.

propagation-delay <propagation-delay>

Specifies the propagation delay in milliseconds. Default: 500 milliseconds.

Example: PIM Interface Configuration

{
    "rtbrick-config:interface": [
      {
        "interface-name": "ifl-0/0/0/1",
        "hello-interval": 100,
        "dr-priority": 101
      },
      {
        "interface-name": "ifl-0/0/1/2"
      },
      {
        "interface-name": "ifl-0/0/3/3",
        "propagation-delay": 103,
        "override-interval": 1000
      }
    ]
  }

api  To access the RESTCONF API that corresponds to this CLI, click here.

PIM Static Join Configuration

Syntax:

set instance <instance> protocol pim sparse-mode static-join <attribute> <value>

Attribute Description

<instance>

Specifies the name of the instance

<interface-name>

Reference to an entry in the global interface list

<outgoing-interface>

Multicast outbound interface name

<group-address>

Multicast group IP address

<source-address>

Multicast source IP address

Example: PIM Static Join Configuration

{
    "rtbrick-config:static-join": [
      {
        "outgoing-interface": "ifl-0/0/0/1",
        "group-address": "198.51.100.12",
        "source-address": "198.51.100.120"
      }
    ]
  }

api  To access the RESTCONF API that corresponds to this CLI, click here.

PIM Redistribution Configuration

Syntax:

set instance <instance> protocol pim sparse-mode redistribute <attribute> <value>

Command Parameters

<instance>

Specifies the name of the instance.

<afi>

Specifies the address family identifier. Supported value: ipv4.

<safi>

Specifies the subsequent address family identifier. Supported value: multicast.

<source>

Source protocol from which routes are being redistributed such as BGP or static.

Example: PIM Redistribution Configuration

{
    "rtbrick-config:redistribute": [
      {
        "afi": "ipv4",
        "safi": "multicast",
        "source": "bgp"
      }
    ]
  }

api  To access the RESTCONF API that corresponds to this CLI, click here.

Configuring Maximum Join/Prune Payload

RBFS supports optimizing PIM join/prune handling by packing multiple joins/prunes into a single packet. Packets are distributed across the join/prune interval or refresh interval timers, thereby minimizing the control plane traffic/load.

The maximum join/prune payload for a single join prune message can be configured.

This configuration command is hidden and should be used with caution, only when necessary.

Syntax:

set instance <instance> protocol pim max-join-prune-payload <value>

Attribute Description

<instance>

Name of the routing instance.

<value>

Specifies the maximum join/prune payload for a single join prune message in bytes. Default: 1400 bytes.

The following example configures the maximum payload size for PIM join/prune messages to 6000 bytes on the default instance.

set instance default protocol pim max-join-prune-payload 6000
supervisor@rtbrick.net: cfg> show config instance ip2vrf protocol pim
{
  "rtbrick-config:pim": {
    "max-join-prune-payload": 6000,
    "sparse-mode": {
      "interface": [
        {
          "interface-name": "ifl-0/0/2/0"
        }
      ]
    }
  }
}

PIM Configuration Example

{
    "rtbrick-config:pim": {
      "sparse-mode": {
        "interface": [
          {
            "interface-name": "ifp-0/0/1"
          }
        ],
        "redistribute": [
          {
            "afi": "ipv4",
            "safi": "multicast",
            "source": "bgp"
          }
        ],
        "static-join": [
          {
            "outgoing-interface": "null0",
            "group-address": "198.51.100.110",
            "source-address": "198.18.73.250"
          },
          {
            "outgoing-interface": "null0",
            "group-address": "198.51.100.111",
            "source-address": "198.18.73.250"
          },
          {
            "outgoing-interface": "null0",
            "group-address": "198.51.100.112",
            "source-address": "198.18.73.250"
          },
          {
            "outgoing-interface": "null0",
            "group-address": "198.51.100.113",
            "source-address": "198.18.73.250"
          }
        ]
      }
    }
  }