Subject: [netmod] routing-cfg-18 schema

From: Ladislav Lhotka <[email-masked]>
Date: Wed, 15 Apr 2015 10:11:13 +0200

Hi,

the editors of draft-ietf-netmod-routing-cfg implemented all changes to the data model that were agreed upon in Dallas. The resulting schema of the trees affected by the changes (interface, interface-state, routing and routing-state) is shown below. Unless somebody has objections, we will submit it in this form as revision -18 on Friday.

Thanks,

Acee and Lada

============================

module: ietf-interfaces
  +--rw interfaces
  |  +--rw interface* [name]
  |     +--rw name           string
  |     +--rw description?   string
  |     +--rw type           identityref
  |     +--rw enabled?       boolean
  |     +--rw ip:ipv4!
  |     |  +--rw ip:enabled?      boolean
  |     |  +--rw ip:forwarding?   boolean
  |     |  +--rw ip:mtu?          uint16
  |     |  +--rw ip:address* [ip]
  |     |  |  +--rw ip:ip               inet:ipv4-address-no-zone
  |     |  |  +--rw (subnet)
  |     |  |     +--:(prefix-length)
  |     |  |        +--rw ip:prefix-length?   uint8
  |     |  +--rw ip:neighbor* [ip]
  |     |     +--rw ip:ip                    inet:ipv4-address-no-zone
  |     |     +--rw ip:link-layer-address    yang:phys-address
  |     +--rw ip:ipv6!
  |        +--rw ip:enabled?                        boolean
  |        +--rw ip:forwarding?                     boolean
  |        +--rw ip:mtu?                            uint32
  |        +--rw ip:address* [ip]
  |        |  +--rw ip:ip               inet:ipv6-address-no-zone
  |        |  +--rw ip:prefix-length    uint8
  |        +--rw ip:neighbor* [ip]
  |        |  +--rw ip:ip                    inet:ipv6-address-no-zone
  |        |  +--rw ip:link-layer-address    yang:phys-address
  |        +--rw ip:dup-addr-detect-transmits?      uint32
  |        +--rw ip:autoconf
  |        |  +--rw ip:create-global-addresses?   boolean
  |        +--rw v6ur:ipv6-router-advertisements
  |           +--rw v6ur:send-advertisements?    boolean
  |           +--rw v6ur:max-rtr-adv-interval?   uint16
  |           +--rw v6ur:min-rtr-adv-interval?   uint16
  |           +--rw v6ur:managed-flag?           boolean
  |           +--rw v6ur:other-config-flag?      boolean
  |           +--rw v6ur:link-mtu?               uint32
  |           +--rw v6ur:reachable-time?         uint32
  |           +--rw v6ur:retrans-timer?          uint32
  |           +--rw v6ur:cur-hop-limit?          uint8
  |           +--rw v6ur:default-lifetime?       uint16
  |           +--rw v6ur:prefix-list
  |              +--rw v6ur:prefix* [prefix-spec]
  |                 +--rw v6ur:prefix-spec           inet:ipv6-prefix
  |                 +--rw (control-adv-prefixes)?
  |                    +--:(no-advertise)
  |                    |  +--rw v6ur:no-advertise?         empty
  |                    +--:(advertise)
  |                       +--rw v6ur:valid-lifetime?       uint32
  |                       +--rw v6ur:on-link-flag?         boolean
  |                       +--rw v6ur:preferred-lifetime?   uint32
  |                       +--rw v6ur:autonomous-flag?      boolean
  +--ro interfaces-state
     +--ro interface* [name]
        +--ro name                   string
        +--ro type                   identityref
        +--ro oper-status            enumeration
        +--ro last-change?           yang:date-and-time
        +--ro phys-address?          yang:phys-address
        +--ro higher-layer-if*       interface-state-ref
        +--ro lower-layer-if*        interface-state-ref
        +--ro speed?                 yang:gauge64
        +--ro statistics
        |  +--ro discontinuity-time    yang:date-and-time
        |  +--ro in-octets?            yang:counter64
        |  +--ro in-unicast-pkts?      yang:counter64
        |  +--ro in-broadcast-pkts?    yang:counter64
        |  +--ro in-multicast-pkts?    yang:counter64
        |  +--ro in-discards?          yang:counter32
        |  +--ro in-errors?            yang:counter32
        |  +--ro in-unknown-protos?    yang:counter32
        |  +--ro out-octets?           yang:counter64
        |  +--ro out-unicast-pkts?     yang:counter64
        |  +--ro out-broadcast-pkts?   yang:counter64
        |  +--ro out-multicast-pkts?   yang:counter64
        |  +--ro out-discards?         yang:counter32
        |  +--ro out-errors?           yang:counter32
        +--ro ip:ipv4!
        |  +--ro ip:forwarding?   boolean
        |  +--ro ip:mtu?          uint16
        |  +--ro ip:address* [ip]
        |  |  +--ro ip:ip               inet:ipv4-address-no-zone
        |  |  +--ro (subnet)?
        |  |  |  +--:(prefix-length)
        |  |  |     +--ro ip:prefix-length?   uint8
        |  |  +--ro ip:origin?          ip-address-origin
        |  +--ro ip:neighbor* [ip]
        |     +--ro ip:ip                    inet:ipv4-address-no-zone
        |     +--ro ip:link-layer-address?   yang:phys-address
        |     +--ro ip:origin?               neighbor-origin
        +--ro ip:ipv6!
        |  +--ro ip:forwarding?                     boolean
        |  +--ro ip:mtu?                            uint32
        |  +--ro ip:address* [ip]
        |  |  +--ro ip:ip               inet:ipv6-address-no-zone
        |  |  +--ro ip:prefix-length    uint8
        |  |  +--ro ip:origin?          ip-address-origin
        |  |  +--ro ip:status?          enumeration
        |  +--ro ip:neighbor* [ip]
        |  |  +--ro ip:ip                    inet:ipv6-address-no-zone
        |  |  +--ro ip:link-layer-address?   yang:phys-address
        |  |  +--ro ip:origin?               neighbor-origin
        |  |  +--ro ip:is-router?            empty
        |  |  +--ro ip:state?                enumeration
        |  +--ro v6ur:ipv6-router-advertisements
        |     +--ro v6ur:send-advertisements?    boolean
        |     +--ro v6ur:max-rtr-adv-interval?   uint16
        |     +--ro v6ur:min-rtr-adv-interval?   uint16
        |     +--ro v6ur:managed-flag?           boolean
        |     +--ro v6ur:other-config-flag?      boolean
        |     +--ro v6ur:link-mtu?               uint32
        |     +--ro v6ur:reachable-time?         uint32
        |     +--ro v6ur:retrans-timer?          uint32
        |     +--ro v6ur:cur-hop-limit?          uint8
        |     +--ro v6ur:default-lifetime?       uint16
        |     +--ro v6ur:prefix-list
        |        +--ro v6ur:prefix* [prefix-spec]
        |           +--ro v6ur:prefix-spec           inet:ipv6-prefix
        |           +--ro v6ur:valid-lifetime?       uint32
        |           +--ro v6ur:on-link-flag?         boolean
        |           +--ro v6ur:preferred-lifetime?   uint32
        |           +--ro v6ur:autonomous-flag?      boolean
        +--ro rt:routing-instance?   routing-instance-state-ref
module: ietf-routing
  +--ro routing-state
  |  +--ro routing-instance* [name]
  |     +--ro name                 string
  |     +--ro type?                identityref
  |     +--ro interfaces
  |     |  +--ro interface*   if:interface-state-ref
  |     +--ro routing-protocols
  |     |  +--ro routing-protocol* [type name]
  |     |     +--ro type                identityref
  |     |     +--ro name                string
  |     |     +--ro route-preference    route-preference
  |     +--ro ribs
  |        +--ro rib* [name]
  |           +--ro name              string
  |           +--ro address-family    identityref
  |           +--ro default-rib?      boolean {multiple-ribs}?
  |           +--ro routes
  |              +--ro route*
  |                 +--ro route-preference?          route-preference
  |                 +--ro next-hop
  |                 |  +--ro (next-hop-options)
  |                 |     +--:(simple-next-hop)
  |                 |     |  +--ro outgoing-interface?      -> /routing-state/routing-instance/interfaces/interface
  |                 |     |  +--ro v6ur:next-hop-address?   inet:ipv6-address
  |                 |     |  +--ro v4ur:next-hop-address?   inet:ipv4-address
  |                 |     +--:(special-next-hop)
  |                 |        +--ro special-next-hop?        enumeration
  |                 +--ro source-protocol            identityref
  |                 +--ro active?                    empty
  |                 +--ro last-updated?              yang:date-and-time
  |                 +--ro v6ur:destination-prefix?   inet:ipv6-prefix
  |                 +--ro v4ur:destination-prefix?   inet:ipv4-prefix
  +--rw routing
     +--rw routing-instance* [name]
        +--rw name                 string
        +--rw type?                identityref
        +--rw enabled?             boolean
        +--rw router-id?           yang:dotted-quad
        +--rw description?         string
        +--rw interfaces
        |  +--rw interface*   if:interface-ref
        +--rw routing-protocols
        |  +--rw routing-protocol* [type name]
        |     +--rw type                identityref
        |     +--rw name                string
        |     +--rw description?        string
        |     +--rw enabled?            boolean
        |     +--rw route-preference?   route-preference
        |     +--rw static-routes
        |        +--rw v6ur:ipv6
        |        |  +--rw v6ur:route* [destination-prefix]
        |        |     +--rw v6ur:destination-prefix    inet:ipv6-prefix
        |        |     +--rw v6ur:description?          string
        |        |     +--rw v6ur:next-hop
        |        |        +--rw (next-hop-options)
        |        |           +--:(simple-next-hop)
        |        |           |  +--rw v6ur:outgoing-interface?   -> /rt:routing/routing-instance/interfaces/interface
        |        |           +--:(special-next-hop)
        |        |           |  +--rw v6ur:special-next-hop?     enumeration
        |        |           +--:(next-hop-address)
        |        |              +--rw v6ur:next-hop-address?     inet:ipv6-address
        |        +--rw v4ur:ipv4
        |           +--rw v4ur:route* [destination-prefix]
        |              +--rw v4ur:destination-prefix    inet:ipv4-prefix
        |              +--rw v4ur:description?          string
        |              +--rw v4ur:next-hop
        |                 +--rw (next-hop-options)
        |                    +--:(simple-next-hop)
        |                    |  +--rw v4ur:outgoing-interface?   -> /rt:routing/routing-instance/interfaces/interface
        |                    +--:(special-next-hop)
        |                    |  +--rw v4ur:special-next-hop?     enumeration
        |                    +--:(next-hop-address)
        |                       +--rw v4ur:next-hop-address?     inet:ipv4-address
        +--rw ribs
           +--rw rib* [name]
              +--rw name              string
              +--rw address-family    identityref
              +--rw description?      string
              +--rw default-rib?      boolean {multiple-ribs}?
rpcs:
  +---x fib-route    
     +---w input     
     |  +---w routing-instance-name    routing-instance-state-ref
     |  +---w destination-address
     |     +---w address-family    identityref
     |     +---w v6ur:address?     inet:ipv6-address
     |     +---w v4ur:address?     inet:ipv4-address
     +--ro output    
        +--ro route
           +--ro address-family             identityref
           +--ro next-hop
           |  +--ro (next-hop-options)
           |     +--:(simple-next-hop)
           |     |  +--ro outgoing-interface?      -> /routing-state/routing-instance/interfaces/interface
           |     |  +--ro v6ur:next-hop-address?   inet:ipv6-address
           |     |  +--ro v4ur:next-hop-address?   inet:ipv4-address
           |     +--:(special-next-hop)
           |        +--ro special-next-hop?        enumeration
           +--ro source-protocol            identityref
           +--ro active?                    empty
           +--ro last-updated?              yang:date-and-time
           +--ro v6ur:destination-prefix?   inet:ipv6-prefix
           +--ro v4ur:destination-prefix?   inet:ipv4-prefix

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C