| < 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/ | ||||