Subject: [Yang-multicast] update according to regular meeting on Jan 8 // The igmp-mld-snooping related attributes need to be classified in order to design igmp-mld-snooping yang module. Welcome comments.

From: Hongji Zhao <[email-masked]>
Date: Tue, 9 Jan 2018 03:50:28 +0000

Hi ,

The igmp-mld-snooping related attributes need to be classified. Some attributes only fit for instance view, and some attributes only fit for interface view. Some ones fit for both
Followings are the latest updates according to regular meeting yesterday. Welcome any comments.  Thank you !

Attributes only for instance:
name,
id,
type,
forwarding-mode,
explicit-tracking,
exclude-lite,
send-query,
immediate-leave,
last-member-query-interval,
query-interval,
query-max-response-time,
require-router-alert,
robustness-variable,
static-bridge-mrouter-interface,
static-vpls-mrouter-interface,
querier-source,
static-l2-multicast-group (including address, source-addr,… vpls-outgoing-pw)
entries-count,
bridge-mrouter-interface,
vpls-mrouter-interface,
group (including address, mac-address,… host, host-address, host-filter-mode)
Attributes only for interface:
Statistics

Attributes for both instance and interface:
enable,
version

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 immediate-leave?                   empty {immediate-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 last-reporter?   inet:ipv4-address
    |        +--ro source* [address]
    |           +--ro address                      inet:ipv4-address
    |           +--ro bridge-outgoing-interface*   if:interface-ref
    |           +--ro vpls-outgoing-ac*            l2vpn-instance-ac-ref
    |           +--ro vpls-outgoing-pw*            l2vpn-instance-pw-ref
    |           +--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
    +--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 immediate-leave?                   empty {immediate-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 last-reporter?   inet:ipv6-address
    |        +--ro source* [address]
    |           +--ro address                      inet:ipv6-address
    |           +--ro bridge-outgoing-interface*   if:interface-ref
    |           +--ro vpls-outgoing-ac*            l2vpn-instance-ac-ref
    |           +--ro vpls-outgoing-pw*            l2vpn-instance-pw-ref
    |           +--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
    +--rw bridges
    |  +--rw bridge* [name]
    |     +--rw name                      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                       vlan-index-type
    |              +--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
  augment /if:interfaces/if:interface:
    +--rw igmp-mld-snooping
       +--rw enable?       boolean {admin-enable}?
       +--rw version?      uint8
       +--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 non-member-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 non-member-leave?       yang:counter64
             +--ro pim?                    yang:counter64

  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
赵宏吉