Subject: [Yang-multicast] The latest yang model for igmp-mld-snooping . Welcome any comments. Thanks !

From: Hongji Zhao <[email-masked]>
Date: Tue, 24 Oct 2017 06:45:37 +0000

module: ietf-igmp-mld-snooping
    +--rw igmp-snooping-instances
    |  +--rw igmp-snooping-instance* [name]
    |     +--rw name                               string
    |     +--rw id?                                uint32
    |     +--rw type?                              enumeration
    |     +--rw enable?                            boolean {admin-enable}?
    |     +--rw forwarding-mode?                   enumeration
    |     +--rw explicit-tracking?                 boolean {explicit-tracking}?
    |     +--rw exclude-lite?                      boolean {exclude-lite}?
    |     +--rw send-query?                        boolean
    |     +--rw fast-leave?                        empty {fast-leave}?
    |     +--rw last-member-query-interval?        uint16
    |     +--rw query-interval?                    uint16
    |     +--rw query-max-response-time?           uint16
    |     +--rw require-router-alert?              boolean {require-router-alert}?
    |     +--rw robustness-variable?               uint8
    |     +--rw version?                           uint8
    |     +--rw static-bridge-mrouter-interface*   if:interface-ref {static-l2-multicast-group}?
    |     +--rw static-vpls-mrouter-interface*     l2vpn-instance-pw-ref {static-l2-multicast-group}?
    |     +--rw querier-source?                    inet:ipv4-address
    |     +--rw static-l2-multicast-group* [group source-addr] {static-l2-multicast-group}?
    |     |  +--rw group                        inet:ipv4-address
    |     |  +--rw source-addr                  source-ipv4-addr-type
    |     |  +--rw bridge-outgoing-interface*   if:interface-ref
    |     |  +--rw vpls-outgoing-ac*            l2vpn-instance-ac-ref
    |     |  +--rw vpls-outgoing-pw*            l2vpn-instance-pw-ref
    |     +--ro entries-count?                     uint32
    |     +--ro bridge-mrouter-interface*          if:interface-ref
    |     +--ro vpls-mrouter-interface*            l2vpn-instance-pw-ref
    |     +--ro group* [address]
    |     |  +--ro address                      inet:ipv4-address
    |     |  +--ro mac-address?                 yang:phys-address
    |     |  +--ro expire?                      uint32
    |     |  +--ro up-time?                     uint32
    |     |  +--ro bridge-outgoing-interface*   if:interface-ref
    |     |  +--ro vpls-outgoing-ac*            l2vpn-instance-ac-ref
    |     |  +--ro vpls-outgoing-pw*            l2vpn-instance-pw-ref
    |     |  +--ro last-reporter?               inet:ipv4-address
    |     |  +--ro source* [address]
    |     |     +--ro address          inet:ipv4-address
    |     |     +--ro up-time?         uint32
    |     |     +--ro expire?          uint32
    |     |     +--ro host-count?      uint32 {explicit-tracking}?
    |     |     +--ro last-reporter?   inet:ipv4-address
    |     |     +--ro host* [host-address] {explicit-tracking}?
    |     |        +--ro host-address        inet:ipv4-address
    |     |        +--ro host-filter-mode?   enumeration
    |     +--ro statistics
    |        +--ro received
    |        |  +--ro query?                  yang:counter64
    |        |  +--ro membership-report-v1?   yang:counter64
    |        |  +--ro membership-report-v2?   yang:counter64
    |        |  +--ro membership-report-v3?   yang:counter64
    |        |  +--ro leave?                  yang:counter64
    |        |  +--ro pim?                    yang:counter64
    |        +--ro sent
    |           +--ro query?                  yang:counter64
    |           +--ro membership-report-v1?   yang:counter64
    |           +--ro membership-report-v2?   yang:counter64
    |           +--ro membership-report-v3?   yang:counter64
    |           +--ro leave?                  yang:counter64
    |           +--ro pim?                    yang:counter64
    +--rw mld-snooping-instances
    |  +--rw mld-snooping-instance* [name]
    |     +--rw name                               string
    |     +--rw id?                                uint32
    |     +--rw type?                              enumeration
    |     +--rw enable?                            boolean {admin-enable}?
    |     +--rw forwarding-mode?                   enumeration
    |     +--rw explicit-tracking?                 boolean {explicit-tracking}?
    |     +--rw exclude-lite?                      boolean {exclude-lite}?
    |     +--rw send-query?                        boolean
    |     +--rw fast-leave?                        empty {fast-leave}?
    |     +--rw last-member-query-interval?        uint16
    |     +--rw query-interval?                    uint16
    |     +--rw query-max-response-time?           uint16
    |     +--rw require-router-alert?              boolean {require-router-alert}?
    |     +--rw robustness-variable?               uint8
    |     +--rw version?                           uint8
    |     +--rw static-bridge-mrouter-interface*   if:interface-ref {static-l2-multicast-group}?
    |     +--rw static-vpls-mrouter-interface*     l2vpn-instance-pw-ref {static-l2-multicast-group}?
    |     +--rw querier-source?                    inet:ipv6-address
    |     +--rw static-l2-multicast-group* [group source-addr] {static-l2-multicast-group}?
    |     |  +--rw group                        inet:ipv6-address
    |     |  +--rw source-addr                  source-ipv6-addr-type
    |     |  +--rw bridge-outgoing-interface*   if:interface-ref
    |     |  +--rw vpls-outgoing-ac*            l2vpn-instance-ac-ref
    |     |  +--rw vpls-outgoing-pw*            l2vpn-instance-pw-ref
    |     +--ro entries-count?                     uint32
    |     +--ro bridge-mrouter-interface*          if:interface-ref
    |     +--ro vpls-mrouter-interface*            l2vpn-instance-pw-ref
    |     +--ro group* [address]
    |     |  +--ro address                      inet:ipv6-address
    |     |  +--ro mac-address?                 yang:phys-address
    |     |  +--ro expire?                      uint32
    |     |  +--ro up-time?                     uint32
    |     |  +--ro bridge-outgoing-interface*   if:interface-ref
    |     |  +--ro vpls-outgoing-ac*            l2vpn-instance-ac-ref
    |     |  +--ro vpls-outgoing-pw*            l2vpn-instance-pw-ref
    |     |  +--ro last-reporter?               inet:ipv6-address
    |     |  +--ro source* [address]
    |     |     +--ro address          inet:ipv6-address
    |     |     +--ro up-time?         uint32
    |     |     +--ro expire?          uint32
    |     |     +--ro host-count?      uint32 {explicit-tracking}?
    |     |     +--ro last-reporter?   inet:ipv6-address
    |     |     +--ro host* [host-address] {explicit-tracking}?
    |     |        +--ro host-address        inet:ipv6-address
    |     |        +--ro host-filter-mode?   enumeration
    |     +--ro statistics
    |        +--ro received
    |        |  +--ro query?                  yang:counter64
    |        |  +--ro membership-report-v1?   yang:counter64
    |        |  +--ro membership-report-v2?   yang:counter64
    |        |  +--ro membership-report-v3?   yang:counter64
    |        |  +--ro leave?                  yang:counter64
    |        |  +--ro pim?                    yang:counter64
    |        +--ro sent
    |           +--ro query?                  yang:counter64
    |           +--ro membership-report-v1?   yang:counter64
    |           +--ro membership-report-v2?   yang:counter64
    |           +--ro membership-report-v3?   yang:counter64
    |           +--ro leave?                  yang:counter64
    |           +--ro pim?                    yang:counter64
    +--rw bridges
    |  +--rw bridge* [name]
    |     +--rw name                      dot1qtypes:name-type
    |     +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
    |     +--rw mld-snooping-instance?    mld-snooping-instance-ref
    |     +--rw component* [name]
    |        +--rw name           string
    |        +--rw bridge-vlan
    |           +--rw vlan* [vid]
    |              +--rw vid                       dot1qtypes:vlan-index-type
    |              +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
    |              +--rw mld-snooping-instance?    mld-snooping-instance-ref
    |              +--rw interfaces
    |                 +--rw interface* [name]
    |                    +--rw name                      string
    |                    +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
    |                    +--rw mld-snooping-instance?    mld-snooping-instance-ref
    +--rw l2vpn-instances
       +--rw l2vpn-instance* [name]
          +--rw name                      string
          +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
          +--rw mld-snooping-instance?    mld-snooping-instance-ref
          +--rw endpoint* [name]
             +--rw name                      string
             +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
             +--rw mld-snooping-instance?    mld-snooping-instance-ref
             +--rw (ac-or-pw-or-redundancy-grp)?
                +--:(ac)
                |  +--rw ac* [name]
                |     +--rw name                      string
                |     +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
                |     +--rw mld-snooping-instance?    mld-snooping-instance-ref
                +--:(pw)
                |  +--rw pw* [name]
                |     +--rw name                      string
                |     +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
                |     +--rw mld-snooping-instance?    mld-snooping-instance-ref
                +--:(redundancy-grp)
                   +--rw (primary)
                   |  +--:(primary-ac)
                   |  |  +--rw primary-ac
                   |  |     +--rw name?                     string
                   |  |     +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
                   |  |     +--rw mld-snooping-instance?    mld-snooping-instance-ref
                   |  +--:(primary-pw)
                   |     +--rw primary-pw* [name]
                   |        +--rw name                      string
                   |        +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
                   |        +--rw mld-snooping-instance?    mld-snooping-instance-ref
                   +--rw (backup)?
                      +--:(backup-ac)
                      |  +--rw backup-ac
                      |     +--rw name?                     string
                      |     +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
                      |     +--rw mld-snooping-instance?    mld-snooping-instance-ref
                      +--:(backup-pw)
                         +--rw backup-pw* [name]
                            +--rw name                      string
                            +--rw igmp-snooping-instance?   igmp-snooping-instance-ref
                            +--rw mld-snooping-instance?    mld-snooping-instance-ref

  rpcs:
    +---x clear-igmp-snooping-groups {rpc-clear-groups}?
    |  +---w input
    |     +---w id?       uint32
    |     +---w group?    inet:ipv4-address
    |     +---w source?   inet:ipv4-address
    +---x clear-mld-snooping-groups {rpc-clear-groups}?
       +---w input
          +---w id?       uint32
          +---w group?    inet:ipv6-address
          +---w source?   inet:ipv6-address

BR/Hongji
赵宏吉