module ietf-igmp-mld-snooping {
namespace "urn:ietf:params:xml:ns:yang:ietf-igmp-mld-snooping";
// replace with IANA namespace when assigned
prefix ims;
import ietf-inet-types {
prefix "inet";
}
import ietf-yang-types {
prefix "yang";
}
import ietf-interfaces {
prefix "if";
}
import ietf-l2vpn {
prefix "l2vpn";
}
import ietf-network-instance {
prefix "ni";
}
organization
"IETF PIM Working Group";
contact
"WG Web:
WG List:
WG Chair: Stig Venaas
WG Chair: Mike McBride
Editors: Hongji Zhao
Xufeng Liu
Yisong Liu
Anish Peter
Mahesh Sivakumar
";
description
"The module defines a collection of YANG definitions common for
IGMP and MLD Snooping.";
revision 2018-02-26 {
description
"augment /if:interfaces/if:interface";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Snooping";
}
revision 2017-10-24 {
description
"Change model definition to fit NMDA standard.";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Snooping";
}
revision 2017-08-14 {
description
"using profile to cooperate with ieee-dot1Q-bridge module";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Snooping";
}
revision 2017-06-28 {
description
"augment /rt:routing/rt:control-plane-protocols
augment /rt:routing-state/rt:control-plane-protocols";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Snooping";
}
revision 2017-02-05 {
description
"Initial revision.";
reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Snooping";
}
/*
* Features
*/
feature admin-enable {
description
"Support configuration to enable or disable IGMP and MLD
Snooping.";
}
feature immediate-leave {
description
"Support configuration of immediate-leave.";
}
feature join-group {
description
"Support configuration of join-group.";
}
feature require-router-alert {
description
"Support configuration of require-router-alert.";
}
feature static-l2-multicast-group {
description
"Support configuration of L2 multicast static-group.";
}
feature static-mrouter-interface {
description
"Support configuration of mrouter interface.";
}
feature per-instance-config {
description
"Support configuration of each VLAN or l2vpn instance or EVPN
instance.";
}
feature rpc-clear-groups {
description
"Support to clear statistics by RPC for IGMP and MLD
Snooping.";
}
feature explicit-tracking {
description
"Support configuration of per instance explicit-tracking
hosts.";
}
feature exclude-lite {
description
"Support configuration of per instance exclude-lite.";
}
/*
* Typedefs
*/
typedef name-type {
type string {
length "0..32";
}
description
"A text string of up to 32 characters, of locally determined
significance.";
}
typedef vlan-index-type {
type uint32 {
range "1..4094 | 4096..4294967295";
}
description
"A value used to index per-VLAN tables. Values of 0 and 4095
are not permitted. The range of valid VLAN indices. If the
value is greater than 4095, then it represents a VLAN with
scope local to the particular agent, i.e., one without a
global VLAN-ID assigned to it. Such VLANs are outside the
scope of IEEE 802.1Q, but it is convenient to be able to
manage them in the same way using this YANG module.";
reference
"IEEE Std 802.1Q-2014: Virtual Bridged Local Area Networks.";
}
typedef igmp-snooping-instance-ref {
type leafref {
path "/igmp-snooping-instances/igmp-snooping-instance/name";
}
description
"This type is used by data models that need to reference igmp
snooping instance.";
}
typedef mld-snooping-instance-ref {
type leafref {
path "/mld-snooping-instances/mld-snooping-instance/name";
}
description
"This type is used by data models that need to reference mld
snooping instance.";
}
typedef l2vpn-instance-ac-ref {
type leafref {
path "/ni:network-instances/ni:network-instance/l2vpn:endpoint/l2vpn:name";
}
description "l2vpn-instance-ac-ref";
}
typedef l2vpn-instance-pw-ref {
type leafref {
path "/ni:network-instances/ni:network-instance/l2vpn:endpoint/l2vpn:name";
}
description "l2vpn-instance-pw-ref";
}
typedef source-ipv4-addr-type {
type union {
type enumeration {
enum '*' {
description
"Any source address.";
}
}
type inet:ipv4-address;
}
description
"Multicast source IP address type.";
} // source-ipv4-addr-type
typedef source-ipv6-addr-type {
type union {
type enumeration {
enum '*' {
description
"Any source address.";
}
}
type inet:ipv6-address;
}
description
"Multicast source IP address type.";
} // source-ipv6-addr-type
/*
* Identities
*/
/*
* Groupings
*/
grouping general-state-attributes {
description "General State attributes";
container received {
config false;
description "Statistics of received IGMP and MLD Snooping
related packets.";
uses general-statistics-sent-received;
}
container sent {
config false;
description "Statistics of sent IGMP and MLD Snooping related
packets.";
uses general-statistics-sent-received;
}
} // general-state-attributes
grouping instance-config-attributes-igmp-snooping {
description "IGMP snooping configuration for each VLAN or l2vpn
instance or EVPN instance.";
uses instance-config-attributes-igmp-mld-snooping;
leaf querier-source {
type inet:ipv4-address;
description "Use the IGMP snooping querier to support IGMP
snooping in a VLAN where PIM and IGMP are not configured.
The IP address is used as the source address in
messages.";
}
list static-l2-multicast-group {
if-feature static-l2-multicast-group;
key "group source-addr";
description
"A static multicast route, (*,G) or (S,G).";
leaf group {
type inet:ipv4-address;
description
"Multicast group IP address";
}
leaf source-addr {
type source-ipv4-addr-type;
description
"Multicast source IP address.";
}
leaf-list bridge-outgoing-interface {
when "../../type = 'bridge'";
type if:interface-ref;
description "Outgoing interface in bridge fowarding";
}
leaf-list l2vpn-outgoing-ac {
when "../../type = 'l2vpn'";
type l2vpn-instance-ac-ref;
description "Outgoing ac in l2vpn fowarding";
}
leaf-list l2vpn-outgoing-pw {
when "../../type = 'l2vpn'";
type l2vpn-instance-pw-ref;
description "Outgoing pw in l2vpn fowarding";
}
} // static-l2-multicast-group
} // instance-config-attributes-igmp-snooping
grouping instance-config-attributes-igmp-mld-snooping {
description
"IGMP and MLD Snooping configuration of each VLAN.";
leaf enable {
if-feature admin-enable;
type boolean;
description
"Set the value to true to enable IGMP and MLD Snooping in
the VLAN instance.";
}
leaf forwarding-mode {
type enumeration {
enum "mac" {
description
"";
}
enum "ip" {
description
"";
}
}
description "The default forwarding mode for IGMP and MLD
Snooping is ip.
cisco command is as below
Router(config-vlan-config)# multicast snooping lookup
{ ip | mac } ";
}
leaf explicit-tracking {
if-feature explicit-tracking;
type boolean;
description "Tracks IGMP & MLD Snooping v3 membership reports
from individual hosts for each port of each VLAN or VSI.";
}
leaf exclude-lite {
if-feature exclude-lite;
type boolean;
description
"lightweight IGMPv3 and MLDv2 protocols, which simplify the
standard versions of IGMPv3 and MLDv2.";
reference "RFC5790";
}
leaf send-query {
type boolean;
default true;
description "Enable quick response for topo changes.
To support IGMP snooping in a VLAN where PIM and IGMP are
not configured.
It cooperates with param querier-source. ";
}
/**
leaf mrouter-aging-time {
type uint16 ;
default 180;
description "Aging time for mrouter interface";
}
**/
leaf immediate-leave {
if-feature immediate-leave;
type empty;
description
"When fast leave is enabled, the IGMP software assumes that
no more than one host is present on each VLAN port.";
}
leaf last-member-query-interval {
type uint16 {
range "1..65535";
}
units seconds;
default 1;
description
"Last Member Query Interval, which may be tuned to modify
the
leave latency of the network.";
reference "RFC3376. Sec. 8.8.";
}
leaf query-interval {
type uint16;
units seconds;
default 125;
description
"The Query Interval is the interval between General
Queries
sent by the Querier.";
reference "RFC3376. Sec. 4.1.7, 8.2, 8.14.2.";
}
leaf query-max-response-time {
type uint16;
units seconds;
default 10;
description
"Query maximum response time specifies the maximum time
allowed before sending a responding report.";
reference "RFC3376. Sec. 4.1.1, 8.3, 8.14.3.";
}
leaf require-router-alert {
if-feature require-router-alert;
type boolean;
default false;
description
"When the value is true, router alert exists in the IP head
of IGMP or MLD packet.";
}
leaf robustness-variable {
type uint8 {
range "2..7";
}
default 2;
description
"Querier's Robustness Variable allows tuning for the
expected
packet loss on a network.";
reference "RFC3376. Sec. 4.1.6, 8.1, 8.14.1.";
}
leaf version {
type uint8 {
range "1..3";
}
description "IGMP and MLD Snooping version.";
}
leaf-list static-bridge-mrouter-interface {
when "../type = 'bridge'";
if-feature static-mrouter-interface;
type if:interface-ref;
description "static mrouter interface in bridge fowarding";
}
leaf-list static-l2vpn-mrouter-interface-ac {
when "../type = 'l2vpn'";
if-feature static-mrouter-interface;
type if:interface-ref;
description "static mrouter interface whose type is interface
in l2vpn forwarding";
}
leaf-list static-l2vpn-mrouter-interface-pw {
when "../type = 'l2vpn'";
if-feature static-mrouter-interface;
type l2vpn-instance-pw-ref;
description "static mrouter interface whose type is pw in l2vpn
forwarding";
}
} // instance-config-attributes-igmp-mld-snooping
grouping instance-config-attributes-mld-snooping {
description "MLD snooping configuration of each VLAN.";
uses instance-config-attributes-igmp-mld-snooping;
leaf querier-source {
type inet:ipv6-address;
description
"Use the MLD snooping querier to support MLD snooping where PIM
and MLD are not configured.
The IP address is used as the source address in messages.";
}
list static-l2-multicast-group {
if-feature static-l2-multicast-group;
key "group source-addr";
description
"A static multicast route, (*,G) or (S,G).";
leaf group {
type inet:ipv6-address;
description
"Multicast group IP address";
}
leaf source-addr {
type source-ipv6-addr-type;
description
"Multicast source IP address.";
}
leaf-list bridge-outgoing-interface {
when "../../type = 'bridge'";
type if:interface-ref;
description "Outgoing interface in bridge fowarding";
}
leaf-list l2vpn-outgoing-ac {
when "../../type = 'l2vpn'";
type l2vpn-instance-ac-ref;
description "Outgoing ac in l2vpn fowarding";
}
leaf-list l2vpn-outgoing-pw {
when "../../type = 'l2vpn'";
type l2vpn-instance-pw-ref;
description "Outgoing pw in l2vpn fowarding";
}
} // static-l2-multicast-group
} // instance-config-attributes-mld-snooping
grouping instance-state-group-attributes-igmp-mld-snooping {
description
"Attributes for both IGMP and MLD snooping groups.";
leaf mac-address {
type yang:phys-address;
description "Destination mac address for L2 multicast
forwarding.";
}
leaf expire {
type uint32;
units seconds;
description
"The time left before multicast group timeout.";
}
leaf up-time {
type uint32;
units seconds;
description
"The time after the device created L2 multicast record.";
}
} // instance-state-group-attributes-igmp-mld-snooping
grouping instance-state-attributes-igmp-snooping {
description
"State attributes for IGMP snooping for each VLAN or l2vpn
instance or EVPN instance.";
uses instance-state-attributes-igmp-mld-snooping;
list group {
key "address";
config false;
description "IGMP snooping information";
leaf address {
type inet:ipv4-address;
description
"Multicast group IP address";
}
uses instance-state-group-attributes-igmp-mld-snooping;
leaf last-reporter {
type inet:ipv4-address;
description
"The last host address which has sent the
report to join the multicast group.";
}
list source {
key "address";
description "Source IP address for multicast stream";
leaf address {
type inet:ipv4-address;
description "Source IP address for multicast stream";
}
uses instance-state-source-attributes-igmp-mld-snooping;
leaf last-reporter {
type inet:ipv4-address;
description
"The last host address which has sent the
report to join the multicast source and group.";
}
list host {
if-feature explicit-tracking;
key "host-address";
description
"List of multicast membership hosts
of the specific multicast source-group.";
leaf host-address {
type inet:ipv4-address;
description
"Multicast membership host address.";
}
leaf host-filter-mode {
type enumeration {
enum "include" {
description
"In include mode";
}
enum "exclude" {
description
"In exclude mode.";
}
}
description
"Filter mode for a multicast membership
host may be either include or exclude.";
}
}// list host
} // list source
} // list group
} // instance-state-attributes-igmp-snooping
grouping instance-state-attributes-igmp-mld-snooping {
description
"State attributes for both IGMP and MLD Snooping of each
VLAN or l2vpn instance or EVPN instance.";
leaf entries-count {
type uint32;
config false;
description
"The number of L2 multicast entries in IGMP and MLD
Snooping.";
}
leaf-list bridge-mrouter-interface {
when "../type = 'bridge'";
type if:interface-ref;
config false;
description " mrouter interface in bridge fowarding";
}
leaf-list l2vpn-mrouter-interface-ac {
when "../type = 'l2vpn'";
type if:interface-ref;
config false;
description " mrouter interface whose type is interface in
l2vpn fowarding";
}
leaf-list l2vpn-mrouter-interface-pw {
when "../type = 'l2vpn'";
type l2vpn-instance-pw-ref;
config false;
description " mrouter interface whose type is pw in l2vpn
fowarding";
}
} // instance-config-attributes-igmp-mld-snooping
grouping instance-state-attributes-mld-snooping {
description
"State attributes for MLD snooping of each VLAN.";
uses instance-state-attributes-igmp-mld-snooping;
list group {
key "address";
config false;
description "MLD snooping statistics information";
leaf address {
type inet:ipv6-address;
description
"Multicast group IP address";
}
uses instance-state-group-attributes-igmp-mld-snooping;
leaf last-reporter {
type inet:ipv6-address;
description
"The last host address which has sent the
report to join the multicast group.";
}
list source {
key "address";
description "Source IP address for multicast stream";
leaf address {
type inet:ipv6-address;
description "Source IP address for multicast stream";
}
uses instance-state-source-attributes-igmp-mld-snooping;
leaf last-reporter {
type inet:ipv6-address;
description
"The last host address which has sent the report to join
the multicast source and group.";
}
list host {
if-feature explicit-tracking;
key "host-address";
description
"List of multicast membership hosts
of the specific multicast source-group.";
leaf host-address {
type inet:ipv6-address;
description
"Multicast membership host address.";
}
leaf host-filter-mode {
type enumeration {
enum "include" {
description
"In include mode";
}
enum "exclude" {
description
"In exclude mode.";
}
}
description
"Filter mode for a multicast membership
host may be either include or exclude.";
}
}// list host
} // list source
} // list group
} // instance-state-attributes-mld-snooping
grouping instance-state-source-attributes-igmp-mld-snooping {
description
"State attributes for both IGMP and MLD Snooping of each VLAN
or l2vpn instance or EVPN instance.";
leaf-list bridge-outgoing-interface {
when "../../../type = 'bridge'";
type if:interface-ref;
description "Outgoing interface in bridge fowarding";
}
leaf-list l2vpn-outgoing-ac {
when "../../../type = 'l2vpn'";
type l2vpn-instance-ac-ref;
description "Outgoing ac in l2vpn fowarding";
}
leaf-list l2vpn-outgoing-pw {
when "../../../type = 'l2vpn'";
type l2vpn-instance-pw-ref;
description "Outgoing pw in l2vpn fowarding";
}
leaf up-time {
type uint32;
units seconds;
description "The time after the device created L2 multicast
record";
}
leaf expire {
type uint32;
units seconds;
description
"The time left before multicast group timeout.";
}
leaf host-count {
if-feature explicit-tracking;
type uint32;
description
"The number of host addresses.";
}
} // instance-state-source-attributes-igmp-mld-snooping
grouping general-statistics-error {
description
"A grouping defining statistics attributes for errors.";
leaf checksum {
type yang:counter64;
description
"The number of checksum errors.";
}
leaf too-short {
type yang:counter64;
description
"The number of messages that are too short.";
}
} // general-statistics-error
grouping general-statistics-sent-received {
description
"A grouping defining statistics attributes.";
leaf query {
type yang:counter64;
description
"The number of query messages.";
}
leaf membership-report-v1 {
type yang:counter64;
description
"The number of membership report v1 messages.";
}
leaf membership-report-v2 {
type yang:counter64;
description
"The number of membership report v2 messages.";
}
leaf membership-report-v3 {
type yang:counter64;
description
"The number of membership report v3 messages.";
}
leaf leave {
type yang:counter64;
description
"The number of leave messages.";
}
leaf non-member-leave {
type yang:counter64;
description
"The number of non member leave messages.";
}
leaf pim {
type yang:counter64;
description
"The number of pim hello messages.";
}
} // general-statistics-sent-received
grouping interface-endpoint-attributes-igmp-snooping {
description "interface attributes for igmp snooping";
list host {
if-feature explicit-tracking;
key "host-address";
config false;
description
"List of multicast membership hosts
of the specific multicast source-group.";
leaf host-address {
type inet:ipv4-address;
description
"Multicast membership host address.";
}
leaf host-filter-mode {
type enumeration {
enum "include" {
description
"In include mode";
}
enum "exclude" {
description
"In exclude mode.";
}
}
description
"Filter mode for a multicast membership
host may be either include or exclude.";
}
}// list host
} // interface-endpoint-attributes-igmp-snooping
grouping interface-endpoint-attributes-mld-snooping {
description "interface endpoint attributes mld snooping";
list host {
if-feature explicit-tracking;
key "host-address";
config false;
description
"List of multicast membership hosts
of the specific multicast source-group.";
leaf host-address {
type inet:ipv6-address;
description
"Multicast membership host address.";
}
leaf host-filter-mode {
type enumeration {
enum "include" {
description
"In include mode";
}
enum "exclude" {
description
"In exclude mode.";
}
}
description
"Filter mode for a multicast membership
host may be either include or exclude.";
}
}// list host
} // interface-endpoint-attributes-mld-snooping
/*
* igmp-snooping-instance
*/
container igmp-snooping-instances {
description
"igmp-snooping-instance list";
list igmp-snooping-instance {
key "name";
description
"IGMP Snooping instance to configure the igmp-
snooping.";
leaf name {
type string;
description
"Name of the igmp-snooping-instance to configure the igmp
snooping.";
}
leaf type {
type enumeration {
enum "bridge" {
description "bridge";
}
enum "l2vpn" {
description "l2vpn";
}
}
description "The type indicates bridge or l2vpn.";
}
uses instance-config-attributes-igmp-snooping {
if-feature per-instance-config;
}
uses instance-state-attributes-igmp-snooping;
} //igmp-snooping-instance
} //igmp-snooping-instances
/*
* mld-snooping-instance
*/
container mld-snooping-instances {
description
"mld-snooping-instance list";
list mld-snooping-instance {
key "name";
description
"MLD Snooping instance to configure the mld-snooping.";
leaf name {
type string;
description
"Name of the mld-snooping-instance to configure the mld
snooping.";
}
leaf type {
type enumeration {
enum "bridge" {
description "bridge";
}
enum "l2vpn" {
description "l2vpn";
}
}
description "The type indicates bridge or l2vpn.";
}
uses instance-config-attributes-mld-snooping {
if-feature per-instance-config;
}
uses instance-state-attributes-mld-snooping;
} //mld-snooping-instance
} //mld-snooping-instances
container bridges {
description
"Apply igmp-mld-snooping instance in the bridge scenario";
list bridge {
key name;
description
"bridge list";
leaf name {
type name-type;
description
"bridge name";
}
leaf igmp-snooping-instance {
type igmp-snooping-instance-ref;
description "Configure igmp-snooping instance under the
bridge view";
}
leaf mld-snooping-instance {
type mld-snooping-instance-ref;
description "Configure mld-snooping instance under the
bridge view";
}
list component {
key "name";
description
" ";
leaf name {
type string;
description
"The name of the Component.";
}
container bridge-vlan {
description "bridge vlan";
list vlan {
key "vid";
description
"";
leaf vid {
type vlan-index-type;
description
"The VLAN identifier to which this entry
applies.";
}
leaf igmp-snooping-instance {
type igmp-snooping-instance-ref;
description "Configure igmp-snooping instance
under the vlan view";
}
leaf mld-snooping-instance {
type mld-snooping-instance-ref;
description "Configure mld-snooping instance
under the vlan view";
}
}//vlan
}//bridge-vlan
}//component
}//bridge
} //bridges
container l2vpn-instances {
description "Apply igmp-mld-snooping instance in the l2vpn
scenario";
list l2vpn-instance {
key "name";
description "An l2vpn service instance";
leaf name {
type string;
description "Name of l2vpn service instance";
}
leaf igmp-snooping-instance {
type igmp-snooping-instance-ref;
description "Configure igmp-snooping instance under the
l2vpn-instance view";
}
leaf mld-snooping-instance {
type mld-snooping-instance-ref;
description "Configure mld-snooping instance under the
l2vpn-instance view";
}
}
}
/* augments */
augment "/if:interfaces/if:interface" {
description "Augment interface for referencing attributes which
only fit for interface view.";
container igmp-mld-snooping {
description
"igmp-mld-snooping related attributes under interface view";
leaf enable {
if-feature admin-enable;
type boolean;
description
"Set the value to true to enable IGMP and MLD Snooping in
the VLAN instance.";
}
leaf version {
type uint8 {
range "1..3";
}
description "IGMP and MLD Snooping version.";
}
leaf type {
type enumeration {
enum "bridge" {
description "bridge";
}
enum "l2vpn" {
description "l2vpn";
}
}
description "The type indicates bridge or l2vpn.";
}
container static-mrouter-interface {
description
"Container for choice static-mrouter-interface";
choice static-mrouter-interface {
description
"Configure static multicast router interface under the
interface view";
case bridge {
when "type = 'bridge'" {
description
"Applies to bridge scenario.";
}
description
"Applies to bridge scenario.";
leaf bridge-name {
type string;
description
"bridge name.";
}
leaf-list vlan-id {
type uint32;
description
"vlan id.";
}
}
case l2vpn {
when "type = 'l2vpn'" {
description
"Applies to l2vpn scenario.";
}
description
"Applies to l2vpn scenario.";
leaf l2vpn-instance-name {
type string;
description
"The l2vpn instance name applied in the
interface";
}
}
} // choice static-mrouter-interface
} // container static-mrouter-interface
container static-l2-multicast-group {
description
"Container for static-l2-multicast-group";
choice static-l2-multicast-group {
description
"Configure static l2 multicast group under the
interface view";
case bridge {
when "type = 'bridge'" {
description
"Applies to bridge scenario.";
}
description
"Applies to bridge scenario.";
leaf bridgename {
type string;
description
"bridge name.";
}
list bridge-group-v4 {
key "address";
description "";
leaf address {
type inet:ipv4-address;
description
"Multicast group IPV4 address";
}
leaf-list source {
type inet:ipv4-address;
description "Source IPV4 address for multicast
stream";
}
leaf-list vlan-id {
type uint32;
description
"vlan id.";
}
}
list bridge-group-v6 {
key "address";
description "";
leaf address {
type inet:ipv6-address;
description
"Multicast group IPv6 address";
}
leaf-list source {
type inet:ipv6-address;
description "Source IPv6 address for multicast
stream";
}
leaf-list vlan-id {
type uint32;
description
"vlan id.";
}
}
}
case l2vpn {
when "type = 'l2vpn'" {
description
"Applies to l2vpn scenario.";
}
description
"Applies to l2vpn scenario.";
list l2vpn-group-v4 {
key "address";
description "";
leaf address {
type inet:ipv4-address;
description
"Multicast group IP address";
}
leaf-list source {
type inet:ipv4-address;
description "Source IP address for multicast
stream";
}
leaf l2vpn-instance-name {
type string;
description
"The l2vpn instance name applied in the
interface";
}
}
list l2vpn-group-v6 {
key "address";
description "";
leaf address {
type inet:ipv6-address;
description
"Multicast group IP address";
}
leaf-list source {
type inet:ipv6-address;
description "Source IP address for multicast
stream";
}
leaf l2vpn-instance-name {
type string;
description
"The l2vpn instance name applied in the
interface";
}
}
}
} //choice static-l2-multicast-group
} // container static-l2-multicast-group
container statistics {
config false;
description
"A collection of interface-related statistics objects.";
uses general-state-attributes;
}
}
}
/* RPCs */
rpc clear-igmp-snooping-groups {
if-feature rpc-clear-groups;
description
"Clears the specified IGMP Snooping cache tables.";
input {
leaf name {
type string;
description
"Name of the igmp-snooping-instance";
}
leaf group {
type inet:ipv4-address;
description
"Multicast group IPv4 address.
If it is not specified, all IGMP snooping group tables
are
cleared.";
}
leaf source {
type inet:ipv4-address;
description
"Multicast source IPv4 address.
If it is not specified, all IGMP snooping source-group
tables are
cleared.";
}
}
} // rpc clear-igmp-snooping-groups
rpc clear-mld-snooping-groups {
if-feature rpc-clear-groups;
description
"Clears the specified MLD Snooping cache tables.";
input {
leaf name {
type string;
description
"Name of the mld-snooping-instance";
}
leaf group {
type inet:ipv6-address;
description
"Multicast group IPv6 address.
If it is not specified, all MLD snooping group tables are
cleared.";
}
leaf source {
type inet:ipv6-address;
description
"Multicast source IPv6 address.
If it is not specified, all MLD snooping source-group
tables are
cleared.";
}
}
} // rpc clear-mld-snooping-groups
}