Configuring IGMP
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 IGMP 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 value: ipv4 |
<safi> |
Subsequent address family identifier (SAFI), that is, multicast. |
Example: Multicast Address Family Configuration
{ "rtbrick-config:address-family": [ { "afi": "ipv4", "safi": "multicast" } ] }
IGMP Protocol Configuration
To configure an IGMP on an instance, the same instance should be enabled globally with AFI IPv4 and SAFI as both unicast and multicast.
Syntax:
set instance <instance> protocol igmp <attribute> <values>
If no instance is specified, IGMP will be enabled on the default instance. |
Options | Description |
---|---|
<instance> |
Name of the IGMP instance. |
interfaces <…> |
IGMP interface configuration. Refer to section 2.2.1.1 for the IGMP interface configuration. |
robustness-variable <variable-value> |
The robustness value is used by IGMP to determine the number of times to send messages. Default value: 3. Range: 0-255. |
source-address <source-address> |
Source address of the IGMP query at the instance-level. |
static-group <…> |
Static multicast route configuration. Refer to section 2.2.2.2 for the IGMP static join configuration. |
Example: IGMP Configuration
{ "rtbrick-config:igmp": { "robustness-variable": 5, "source-address": "198.51.100.177" } }
IGMP Interface Configuration
When you start IGMP on an interface, it operates with the default settings. |
Syntax:
set instance <instance> protocol igmp interfaces interface <interface-name> <attribute> <value>
Attribute | Description |
---|---|
<instance> |
Name of the instance |
<interface-name> |
Name of the IP multicast interface |
max-groups <count> |
Specifies the maximum count of multicast group memberships |
version <version> |
Specifies the IGMP version, that is, IGMPv2 or IGMPv3 |
interface-profile <profile> |
Name of the interface configuration profile |
Example: IGMP Interface Configuration
{ "rtbrick-config:interface": [ { "interface-name": "ifl-0/0/0/1", "version": "IGMPv3", "max-groups": 30, "interface-profile": "profile1" } ] }
IGMP Static Join Configuration
Syntax:
set instance <instance> protocol igmp static-group <attribute> <value>
Command Parameters
<instance> |
Specifies the instance name |
<group-address> |
Specifies the multicast address |
<outgoing-interface> |
Name of the outbound interface. The |
Example: IGMP Static Join Configuration
{ "rtbrick-config:static-group": [ { "group-address": "198.51.100.200", "source-address": "198.51.100.1", "outgoing-interface": "null0" } ] }
IGMP Interface Profile Configuration
Syntax:
set multicast-options igmp interface-profile <attribute> <value>
Attribute | Description |
---|---|
filter-policy <filter-policy> |
Specifies the filter policy. The policy should be defined under policy statement. |
immediate-leave <enable | disable> |
Enable or disable the immediate leave option. The |
query-interval <query-interval> |
IGMP query interval in seconds. The query interval ranges from 1 to 1024 seconds. The default value is 125 seconds. |
query-max-response-time <query-max-response-time> |
Maximum query response interval in seconds. The maximum query response interval ranges from 1 to 1024 seconds. The default value is 100 seconds. |
ssm-map-policy <ssm-map-policy> |
IGMP SSM policy name. The policy for (,G) mapping to (S,G) |
start-query-count <start-query-count> |
Specifies the number of queries sent out on startup, separated by the Start Query Interval. The start query count ranges from 1 to 1024. The default value is 3. |
start-query-interval <start-query-interval> |
Specifies the start query interval. The start-query-interval ranges from 1 to 1024 seconds. The default value is 31 seconds (query-interval/4). |
Example: IGMP Interface Profile Configuration
{ "rtbrick-config:interface-profile": [ { "profile-name": "profile1", "immediate-leave": "enable", "query-interval": 30, "query-max-response-time": 10, "start-query-count": 10, "start-query-interval": 10, "filter-policy": "filter_policy", "ssm-map-policy": "ssm_policy" } ] }
Service Profile IGMP Configuration
Syntax:
set access service-profile <profile-name> igmp <attribute> <value>
Attribute | Description |
---|---|
<profile-name> |
Name of the service profile |
enable <true|false> |
Enable IGMP service |
max-members <max-members> |
Maximum IGMP membership per subscriber |
profile <profile> |
IGMP profile |
version [IGMPv1/IGMPv2/IGMPv3] |
IGMP version. The default IGMP version is IGMPv3. |
Example: Service Profile IGMP Configuration
{ "rtbrick-config:service-profile": [ { "profile-name": "service-profile1", "igmp": { "enable": "true", "profile": "INTERFACE_PROFILE_1", "version": "IGMPv3", "max-members": 10 } } ] }
IGMP Configuration Example
{ "ietf-restconf:data": { "rtbrick-config:instance": [ { "name": "default", "protocol": { "igmp": { "robustness-variable": 5, "source-address": "198.51.100.91" } } } ], "rtbrick-config:multicast-options": { "igmp": { "interface-profile": [ { "profile-name": "INTERFACE_PROFILE_1", "query-interval": 10, "filter-policy": "FILTER_POLICY_1" }, { "profile-name": "INTERFACE_PROFILE_2", "query-interval": 20, "ssm-map-policy": "SSM_POLICY_1" } ] } }, "rtbrick-config:policy": { "statement": [ { "name": "FILTER_POLICY_1", "ordinal": [ { "ordinal": 1, "match": { "rule": [ { "rule": 1, "type": "ipv4-mcast-group", "value-type": "discrete", "match-type": "or-longer", "value": "198.51.100.20/24" } ] }, "action": { "rule": [ { "rule": 1, "operation": "return-deny" } ] } }, { "ordinal": 2, "action": { "rule": [ { "rule": 1, "operation": "return-permit" } ] } } ] }, { "name": "SSM_POLICY_1", "ordinal": [ { "ordinal": 1, "match": { "rule": [ { "rule": 1, "type": "ipv4-mcast-group", "value-type": "discrete", "match-type": "or-longer", "value": "198.51.100.10/24" } ] }, "action": { "rule": [ { "rule": 1, "type": "ipv4-mcast-source", "operation": "overwrite", "value": "198.51.100.11/24" } ] } } ] } ] }, "rtbrick-config:access": { "interface": { "double-tagged": [ { "interface-name": "ifp-0/0/1", "outer-vlan-min": 1, "outer-vlan-max": 4049, "inner-vlan-min": 1, "inner-vlan-max": 4049, "access-type": "PPPoE", "access-profile-name": "access-profile1", "service-profile-name": "service-profile1", "aaa-profile-name": "aaa-profile1" } ] }, "service-profile": [ { "profile-name": "service-profile1", "igmp": { "enable": "true", "profile": "INTERFACE_PROFILE_1", "version": "IGMPv3", "max-members": 10 } } ] } } }