< draft-ietf-pim-igmp-mld-snooping-yang-19.txt   draft-ietf-pim-igmp-mld-snooping-yang-20.txt >
PIM Working Group H. Zhao PIM Working Group H. Zhao
Internet Draft Ericsson Internet Draft Ericsson
Intended status: Standards Track X. Liu Intended status: Standards Track X. Liu
Expires: February 23, 2022 Volta Networks Expires: April 07, 2022 Volta Networks
Y. Liu Y. Liu
China Mobile China Mobile
M. Sivakumar M. Sivakumar
Juniper Juniper
A. Peter A. Peter
Individual Individual
August 24, 2021 October 08, 2021
A Yang Data Model for IGMP and MLD Snooping A Yang Data Model for IGMP and MLD Snooping
draft-ietf-pim-igmp-mld-snooping-yang-19.txt draft-ietf-pim-igmp-mld-snooping-yang-20.txt
Abstract Abstract
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage Internet Group Management Protocol (IGMP) and Multicast and manage Internet Group Management Protocol (IGMP) and Multicast
Listener Discovery (MLD) Snooping devices. The YANG module in this Listener Discovery (MLD) Snooping devices. The YANG module in this
document conforms to Network Management Datastore Architecture (NMDA). document conforms to Network Management Datastore Architecture (NMDA).
Status of this Memo Status of this Memo
skipping to change at page 1, line 46 skipping to change at page 1, line 46
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on February 23, 2022. This Internet-Draft will expire on April 07, 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 42 skipping to change at page 2, line 42
3.2. MLD Snooping Instances....................................8 3.2. MLD Snooping Instances....................................8
3.3. Using IGMP and MLD Snooping Instances....................10 3.3. Using IGMP and MLD Snooping Instances....................10
3.4. IGMP and MLD Snooping Actions............................11 3.4. IGMP and MLD Snooping Actions............................11
4. IGMP and MLD Snooping YANG Module.............................11 4. IGMP and MLD Snooping YANG Module.............................11
5. Security Considerations.......................................31 5. Security Considerations.......................................31
6. IANA Considerations...........................................33 6. IANA Considerations...........................................33
6.1. XML Registry.............................................33 6.1. XML Registry.............................................33
6.2. YANG Module Names Registry...............................33 6.2. YANG Module Names Registry...............................33
7. References....................................................34 7. References....................................................34
7.1. Normative References.....................................34 7.1. Normative References.....................................34
7.2. Informative References...................................36 7.2. Informative References...................................35
Appendix A. Data Tree Example...................................37 Appendix A. Data Tree Example...................................36
Authors' Addresses...............................................40 Authors' Addresses...............................................39
1. Introduction 1. Introduction
This document defines a YANG [RFC7950] data model for the management of This document defines a YANG [RFC7950] data model for the management of
Internet Group Management Protocol (IGMP) and Multicast Listener Internet Group Management Protocol (IGMP) and Multicast Listener
Discovery (MLD) Snooping [RFC4541] devices. Discovery (MLD) Snooping [RFC4541] devices.
The YANG module in this document conforms to the Network Management The YANG module in this document conforms to the Network Management
Datastore Architecture defined in [RFC8342]. The "Network Management Datastore Architecture defined in [RFC8342]. The "Network Management
Datastore Architecture" (NMDA) adds the ability to inspect the current Datastore Architecture" (NMDA) adds the ability to inspect the current
skipping to change at page 7, line 34 skipping to change at page 7, line 34
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw igmp-snooping-instance {igmp-snooping}? +--rw igmp-snooping-instance {igmp-snooping}?
+--rw l2-service-type? l2-service-type +--rw l2-service-type? l2-service-type
+--rw enable? boolean +--rw enable? boolean
+--rw forwarding-table-type? enumeration +--rw forwarding-table-type? enumeration
+--rw explicit-tracking? boolean +--rw explicit-tracking? boolean
| {explicit-tracking}? | {explicit-tracking}?
+--rw lite-exclude-filter? empty +--rw lite-exclude-filter? empty
| {lite-exclude-filter}? | {lite-exclude-filter}?
+--rw send-query? boolean +--rw send-query? boolean
+--rw immediate-leave? empty +--rw fast-leave? empty {fast-leave}?
| {immediate-leave}?
+--rw last-member-query-interval? uint16 +--rw last-member-query-interval? uint16
+--rw query-interval? uint16 +--rw query-interval? uint16
+--rw query-max-response-time? uint16 +--rw query-max-response-time? uint16
+--rw require-router-alert? boolean +--rw require-router-alert? boolean
| {require-router-alert}? | {require-router-alert}?
+--rw robustness-variable? uint8 +--rw robustness-variable? uint8
+--rw static-bridge-mrouter-interface* if:interface-ref +--rw static-bridge-mrouter-interface* if:interface-ref
| {static-mrouter-interface}? | {static-mrouter-interface}?
+--rw igmp-version? uint8 +--rw igmp-version? uint8
+--rw querier-source? inet:ipv4-address +--rw querier-source? inet:ipv4-address
skipping to change at page 8, line 20 skipping to change at page 8, line 19
| +--ro source* [address] | +--ro source* [address]
| +--ro address | +--ro address
| | rt-types:ipv4-multicast-source-address | | rt-types:ipv4-multicast-source-address
| +--ro bridge-outgoing-interface* if:interface-ref | +--ro bridge-outgoing-interface* if:interface-ref
| +--ro up-time uint32 | +--ro up-time uint32
| +--ro expire? | +--ro expire?
| | rt-types:timer-value-seconds16 | | rt-types:timer-value-seconds16
| +--ro host-count? yang:gauge32 | +--ro host-count? yang:gauge32
| | {explicit-tracking}? | | {explicit-tracking}?
| +--ro last-reporter? inet:ipv4-address | +--ro last-reporter? inet:ipv4-address
| +--ro host* [host-address] {explicit-tracking}? | +--ro host* [address] {explicit-tracking}?
| +--ro host-address inet:ipv4-address | +--ro address inet:ipv4-address
| +--ro host-filter-mode filter-mode-type | +--ro filter-mode filter-mode-type
+--ro interfaces +--ro interfaces
| +--ro interface* [name] +--ro interface* [name]
| +--ro name if:interface-ref +--ro name if:interface-ref
| +--ro statistics +--ro statistics
| +--ro discontinuity-time? yang:date-and-time +--ro discontinuity-time? yang:date-and-time
| +--ro received +--ro received
| | +--ro query-count? yang:counter64 | +--ro query-count? yang:counter64
| | +--ro membership-report-v1-count? yang:counter64 | +--ro membership-report-v1-count? yang:counter64
| | +--ro membership-report-v2-count? yang:counter64 | +--ro membership-report-v2-count? yang:counter64
| | +--ro membership-report-v3-count? yang:counter64 | +--ro membership-report-v3-count? yang:counter64
| | +--ro leave-count? yang:counter64 | +--ro leave-count? yang:counter64
| | +--ro pim-hello-count? yang:counter64 | +--ro pim-hello-count? yang:counter64
| +--ro sent +--ro sent
| +--ro query-count? yang:counter64 +--ro query-count? yang:counter64
| +--ro membership-report-v1-count? yang:counter64 +--ro membership-report-v1-count? yang:counter64
| +--ro membership-report-v2-count? yang:counter64 +--ro membership-report-v2-count? yang:counter64
| +--ro membership-report-v3-count? yang:counter64 +--ro membership-report-v3-count? yang:counter64
| +--ro leave-count? yang:counter64 +--ro leave-count? yang:counter64
| +--ro pim-hello-count? yang:counter64 +--ro pim-hello-count? yang:counter64
+---x clear-igmp-snooping-groups {action-clear-groups}?
+---w input
+---w group union
+---w source rt-types:ipv4-multicast-source-address
3.2. MLD Snooping Instances 3.2. MLD Snooping Instances
The YANG module ietf-igmp-mld-snooping augments /rt:routing/rt:control- The YANG module ietf-igmp-mld-snooping augments /rt:routing/rt:control-
plane-protocols/rt:control-plane-protocol to add the mld-snooping- plane-protocols/rt:control-plane-protocol to add the mld-snooping-
instance container. The mld-snooping-instance could be used in the instance container. The mld-snooping-instance could be used in the
BRIDGE [dot1Qcp] service to enable MLD Snooping. BRIDGE [dot1Qcp] service to enable MLD Snooping.
All the MLD Snooping related attributes have been defined in the mld- All the MLD Snooping related attributes have been defined in the mld-
snooping-instance. The read-write attributes represent configurable snooping-instance. The read-write attributes represent configurable
skipping to change at page 9, line 39 skipping to change at page 9, line 35
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw mld-snooping-instance {mld-snooping}? +--rw mld-snooping-instance {mld-snooping}?
+--rw l2-service-type? l2-service-type +--rw l2-service-type? l2-service-type
+--rw enable? boolean +--rw enable? boolean
+--rw forwarding-table-type? enumeration +--rw forwarding-table-type? enumeration
+--rw explicit-tracking? boolean +--rw explicit-tracking? boolean
| {explicit-tracking}? | {explicit-tracking}?
+--rw lite-exclude-filter? empty +--rw lite-exclude-filter? empty
| {lite-exclude-filter}? | {lite-exclude-filter}?
+--rw send-query? boolean +--rw send-query? boolean
+--rw immediate-leave? empty +--rw fast-leave? empty {fast-leave}?
| {immediate-leave}?
+--rw last-member-query-interval? uint16 +--rw last-member-query-interval? uint16
+--rw query-interval? uint16 +--rw query-interval? uint16
+--rw query-max-response-time? uint16 +--rw query-max-response-time? uint16
+--rw require-router-alert? boolean +--rw require-router-alert? boolean
| {require-router-alert}? | {require-router-alert}?
+--rw robustness-variable? uint8 +--rw robustness-variable? uint8
+--rw static-bridge-mrouter-interface* if:interface-ref +--rw static-bridge-mrouter-interface* if:interface-ref
| {static-mrouter-interface}? | {static-mrouter-interface}?
+--rw mld-version? uint8 +--rw mld-version? uint8
+--rw querier-source? inet:ipv6-address +--rw querier-source? inet:ipv6-address
skipping to change at page 10, line 25 skipping to change at page 10, line 20
| +--ro source* [address] | +--ro source* [address]
| +--ro address | +--ro address
| | rt-types:ipv6-multicast-source-address | | rt-types:ipv6-multicast-source-address
| +--ro bridge-outgoing-interface* if:interface-ref | +--ro bridge-outgoing-interface* if:interface-ref
| +--ro up-time uint32 | +--ro up-time uint32
| +--ro expire? | +--ro expire?
| | rt-types:timer-value-seconds16 | | rt-types:timer-value-seconds16
| +--ro host-count? yang:gauge32 | +--ro host-count? yang:gauge32
| | {explicit-tracking}? | | {explicit-tracking}?
| +--ro last-reporter? inet:ipv6-address | +--ro last-reporter? inet:ipv6-address
| +--ro host* [host-address] {explicit-tracking}? | +--ro host* [address] {explicit-tracking}?
| +--ro host-address inet:ipv6-address | +--ro address inet:ipv6-address
| +--ro host-filter-mode filter-mode-type | +--ro filter-mode filter-mode-type
+--ro interfaces +--ro interfaces
| +--ro interface* [name] +--ro interface* [name]
| +--ro name if:interface-ref +--ro name if:interface-ref
| +--ro statistics +--ro statistics
| +--ro discontinuity-time? yang:date-and-time +--ro discontinuity-time? yang:date-and-time
| +--ro received +--ro received
| | +--ro query-count? yang:counter64 | +--ro query-count? yang:counter64
| | +--ro report-v1-count? yang:counter64 | +--ro report-v1-count? yang:counter64
| | +--ro report-v2-count? yang:counter64 | +--ro report-v2-count? yang:counter64
| | +--ro done-count? yang:counter64 | +--ro done-count? yang:counter64
| | +--ro pim-hello-count? yang:counter64 | +--ro pim-hello-count? yang:counter64
| +--ro sent +--ro sent
| +--ro query-count? yang:counter64 +--ro query-count? yang:counter64
| +--ro report-v1-count? yang:counter64 +--ro report-v1-count? yang:counter64
| +--ro report-v2-count? yang:counter64 +--ro report-v2-count? yang:counter64
| +--ro done-count? yang:counter64 +--ro done-count? yang:counter64
| +--ro pim-hello-count? yang:counter64 +--ro pim-hello-count? yang:counter64
+---x clear-mld-snooping-groups {action-clear-groups}?
+---w input
+---w group union
+---w source rt-types:ipv6-multicast-source-address
3.3. Using IGMP and MLD Snooping Instances 3.3. Using IGMP and MLD Snooping Instances
The igmp-snooping-instance could be used in the service of BRIDGE The igmp-snooping-instance could be used in the service of BRIDGE
[dot1Qcp] to configure the IGMP Snooping. [dot1Qcp] to configure the IGMP Snooping.
For the BRIDGE service this model augments /dot1q:bridges/dot1q:bridge For the BRIDGE service this model augments /dot1q:bridges/dot1q:bridge
to use igmp-snooping-instance. It means IGMP Snooping is enabled in the to use igmp-snooping-instance. It means IGMP Snooping is enabled in the
whole bridge. whole bridge.
skipping to change at page 11, line 53 skipping to change at page 11, line 45
+---w input +---w input
+---w group union +---w group union
+---w source rt-types:ipv6-multicast-source-address +---w source rt-types:ipv6-multicast-source-address
4. IGMP and MLD Snooping YANG Module 4. IGMP and MLD Snooping YANG Module
This module references [RFC1112],[RFC2236],[RFC2710],[RFC3376], This module references [RFC1112],[RFC2236],[RFC2710],[RFC3376],
[RFC3810],[RFC4541],[RFC5790],[RFC6636],[RFC6991],[RFC7761], [RFC3810],[RFC4541],[RFC5790],[RFC6636],[RFC6991],[RFC7761],
[RFC8343],[dot1Qcp]. [RFC8343],[dot1Qcp].
<CODE BEGINS> file ietf-igmp-mld-snooping@2021-08-23.yang <CODE BEGINS> file ietf-igmp-mld-snooping@2021-10-08.yang
module ietf-igmp-mld-snooping { module ietf-igmp-mld-snooping {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-igmp-mld-snooping"; namespace "urn:ietf:params:xml:ns:yang:ietf-igmp-mld-snooping";
prefix ims; prefix ims;
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
reference reference
"RFC 6991: Common YANG Data Types"; "RFC 6991: Common YANG Data Types";
skipping to change at page 13, line 40 skipping to change at page 13, line 31
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject to
the license terms contained in, the Simplified BSD License set the license terms contained in, the Simplified BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see the This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2021-08-23 { revision 2021-10-08 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for IGMP and MLD Snooping"; "RFC XXXX: A YANG Data Model for IGMP and MLD Snooping";
} }
/* /*
* Features * Features
*/ */
skipping to change at page 14, line 12 skipping to change at page 14, line 4
"Support IGMP snooping."; "Support IGMP snooping.";
reference reference
"RFC 4541"; "RFC 4541";
} }
feature mld-snooping { feature mld-snooping {
description description
"Support MLD snooping."; "Support MLD snooping.";
reference reference
"RFC 4541"; "RFC 4541";
} }
feature immediate-leave { feature fast-leave {
description description
"Support configuration of fast leave. The fast leave feature "Support configuration of fast leave. The fast leave feature
does not send last member query messages to hosts."; does not send last member query messages to hosts.";
reference reference
"RFC 3376"; "RFC 3376";
} }
feature static-l2-multicast-group { feature static-l2-multicast-group {
description description
"Support configuration of L2 multicast static-group."; "Support configuration of static L2 multicast group.";
} }
feature static-mrouter-interface { feature static-mrouter-interface {
description description
"Support multicast router interface explicitly configured "Support multicast router interface explicitly configured
by management"; by management";
reference reference
"RFC 4541"; "RFC 4541";
} }
skipping to change at page 17, line 38 skipping to change at page 17, line 30
in the Lightweight MLDv2 protocol, which simplifies the in the Lightweight MLDv2 protocol, which simplifies the
standard versions of MLDv2."; standard versions of MLDv2.";
reference reference
"RFC 5790"; "RFC 5790";
} }
leaf send-query { leaf send-query {
type boolean; type boolean;
default false; default false;
description description
"Enable quick response for topology changes. "When it is true, this switch will send out periodic
To support IGMP snooping in a VLAN where PIM and IGMP are IGMP General Query Message or MLD General Query Message.";
not configured. It cooperates with parameter querier-source.";
} }
leaf immediate-leave { leaf fast-leave {
if-feature immediate-leave; if-feature fast-leave;
type empty; type empty;
description description
"When immediate leave is enabled, the IGMP software assumes "When immediate leave is enabled, the IGMP software assumes
that no more than one host is present on each VLAN port."; that no more than one host is present on each VLAN port.";
} }
leaf last-member-query-interval { leaf last-member-query-interval {
type uint16 { type uint16 {
range "10..10230"; range "10..10230";
} }
skipping to change at page 18, line 40 skipping to change at page 18, line 31
It is represented in units of 1/10 second."; It is represented in units of 1/10 second.";
reference "RFC 3376. Sec. 4.1.1, 8.3, 8.14.3."; reference "RFC 3376. Sec. 4.1.1, 8.3, 8.14.3.";
} }
leaf require-router-alert { leaf require-router-alert {
if-feature require-router-alert; if-feature require-router-alert;
type boolean; type boolean;
default false; default false;
description description
"When the value is true, router alert should exist "When the value is true, router alert should exist
in the IP header of IGMP or MLD packet."; in the IP header of IGMP or MLD packet. If it doesn't exist,
the IGMP or MLD packet will be ignored.";
reference "RFC 3376. Sec. 9.1, 9.2, 9.3.";
} }
leaf robustness-variable { leaf robustness-variable {
type uint8 { type uint8 {
range "1..7"; range "1..7";
} }
default 2; default 2;
description description
"Querier's Robustness Variable allows tuning for the "Querier's Robustness Variable allows tuning for the
expected packet loss on a network."; expected packet loss on a network.";
skipping to change at page 19, line 53 skipping to change at page 19, line 46
config false; config false;
description description
"The number of L2 multicast entries in IGMP & MLD snooping"; "The number of L2 multicast entries in IGMP & MLD snooping";
} }
leaf-list bridge-mrouter-interface { leaf-list bridge-mrouter-interface {
when 'derived-from-or-self(../l2-service-type,"ims:bridge")'; when 'derived-from-or-self(../l2-service-type,"ims:bridge")';
type if:interface-ref; type if:interface-ref;
config false; config false;
description description
"Indicates a list of mrouter interfaces dynamicly learned in a "Indicates a list of mrouter interfaces dynamically learned in a
bridge. When this switch receives IGMP/MLD queries from a bridge. When this switch receives IGMP/MLD queries from a
multicast router on an interface, the interface will become multicast router on an interface, the interface will become
mrouter interface for IGMP/MLD snooping."; mrouter interface for IGMP/MLD snooping.";
} }
} // instance-config-attributes-igmp-mld-snooping } // instance-config-attributes-igmp-mld-snooping
grouping instance-state-source-attributes-igmp-mld-snooping { grouping instance-state-source-attributes-igmp-mld-snooping {
description description
"State attributes for IGMP & MLD snooping instance."; "State attributes for IGMP & MLD snooping instance.";
skipping to change at page 22, line 50 skipping to change at page 22, line 43
container igmp-snooping-instance { container igmp-snooping-instance {
if-feature igmp-snooping; if-feature igmp-snooping;
description description
"IGMP snooping instance to configure igmp-snooping."; "IGMP snooping instance to configure igmp-snooping.";
leaf l2-service-type { leaf l2-service-type {
type l2-service-type; type l2-service-type;
default bridge; default bridge;
description description
"The l2-service-type indicates BRIDGE or other services."; "It indicates BRIDGE or other services.";
} }
uses instance-config-attributes-igmp-mld-snooping; uses instance-config-attributes-igmp-mld-snooping;
leaf igmp-version { leaf igmp-version {
type uint8 { type uint8 {
range "1..3"; range "1..3";
} }
default 2; default 2;
description "IGMP version."; description "IGMP version.";
} }
leaf querier-source { leaf querier-source {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Use the IGMP snooping querier to support IGMP "The source address of IGMP General Query message,
snooping in a VLAN where PIM and IGMP are not configured. which is sent out by this switch.";
The IPv4 address is used as source address in messages.";
} }
list static-l2-multicast-group { list static-l2-multicast-group {
if-feature static-l2-multicast-group; if-feature static-l2-multicast-group;
key "group source-addr"; key "group source-addr";
description description
"A static multicast route, (*,G) or (S,G)."; "A static multicast route, (*,G) or (S,G).";
leaf group { leaf group {
type rt-types:ipv4-multicast-group-address; type rt-types:ipv4-multicast-group-address;
skipping to change at page 24, line 39 skipping to change at page 24, line 31
leaf last-reporter { leaf last-reporter {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Address of the last host which has sent report "Address of the last host which has sent report
to join the multicast group."; to join the multicast group.";
} }
list host { list host {
if-feature explicit-tracking; if-feature explicit-tracking;
key "host-address"; key "address";
description description
"List of multicast membership hosts "List of multicast membership hosts
of the specific multicast source-group."; of the specific multicast source-group.";
leaf host-address { leaf address {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Multicast membership host address."; "Multicast membership host address.";
} }
leaf host-filter-mode { leaf filter-mode {
type filter-mode-type; type filter-mode-type;
mandatory true; mandatory true;
description description
"Filter mode for a multicast membership "Filter mode for a multicast membership
host may be either include or exclude."; host may be either include or exclude.";
} }
}// list host }// list host
} // list source } // list source
} // list group } // list group
skipping to change at page 27, line 14 skipping to change at page 27, line 5
container mld-snooping-instance { container mld-snooping-instance {
if-feature mld-snooping; if-feature mld-snooping;
description description
"MLD snooping instance to configure mld-snooping."; "MLD snooping instance to configure mld-snooping.";
leaf l2-service-type { leaf l2-service-type {
type l2-service-type; type l2-service-type;
default bridge; default bridge;
description description
"The l2-service-type indicates BRIDGE or other services."; "It indicates BRIDGE or other services.";
} }
uses instance-config-attributes-igmp-mld-snooping; uses instance-config-attributes-igmp-mld-snooping;
leaf mld-version { leaf mld-version {
type uint8 { type uint8 {
range "1..2"; range "1..2";
} }
default 2; default 2;
description "MLD version."; description "MLD version.";
} }
leaf querier-source { leaf querier-source {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Use the MLD snooping querier to support MLD snooping where "The source address of MLD General Query message,
PIM and MLD are not configured. The IPv6 address is used as which is sent out by this switch.";
the source address in messages.";
} }
list static-l2-multicast-group { list static-l2-multicast-group {
if-feature static-l2-multicast-group; if-feature static-l2-multicast-group;
key "group source-addr"; key "group source-addr";
description description
"A static multicast route, (*,G) or (S,G)."; "A static multicast route, (*,G) or (S,G).";
leaf group { leaf group {
type rt-types:ipv6-multicast-group-address; type rt-types:ipv6-multicast-group-address;
skipping to change at page 28, line 51 skipping to change at page 28, line 42
leaf last-reporter { leaf last-reporter {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Address of the last host which has sent report "Address of the last host which has sent report
to join the multicast group."; to join the multicast group.";
} }
list host { list host {
if-feature explicit-tracking; if-feature explicit-tracking;
key "host-address"; key "address";
description description
"List of multicast membership hosts "List of multicast membership hosts
of the specific multicast source-group."; of the specific multicast source-group.";
leaf host-address { leaf address {
type inet:ipv6-address; type inet:ipv6-address;
description description
"Multicast membership host address."; "Multicast membership host address.";
} }
leaf host-filter-mode { leaf filter-mode {
type filter-mode-type; type filter-mode-type;
mandatory true; mandatory true;
description description
"Filter mode for a multicast membership "Filter mode for a multicast membership
host may be either include or exclude."; host may be either include or exclude.";
} }
}// list host }// list host
} // list source } // list source
} // list group } // list group
 End of changes. 32 change blocks. 
85 lines changed or deleted 75 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/