Subject: [Rtg-yang-coord] routing-cfg-18 schema

From: Ladislav Lhotka <[email-masked]>
Date: Wed, 15 Apr 2015 10:08:55 +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

---

From: "Yingzhen Qu (yiqu)" <[email-masked]>
Date: Wed, 15 Apr 2015 17:38:24 +0000

Hi Lada,

It seems to me that there are two mtu configurations defined under ipv6 interface, what's the difference?

+--rw ip:mtu?                            uint32
+--rw v6ur:link-mtu?               uint32

Thanks,
Yingzhen

-----Original Message-----
From: Rtg-yang-coord [mailto:[email-masked]] On Behalf Of Ladislav Lhotka
Sent: Wednesday, April 15, 2015 1:09 AM
To: [email-masked]
Subject: [Rtg-yang-coord] routing-cfg-18 schema

Hi,

Thanks,

Acee and Lada

module: ietf-interfaces
   +--rw interfaces

_______________________________________________
Rtg-yang-coord mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/rtg-yang-coord

---

From: "Acee Lindem (acee)" <[email-masked]>
Date: Wed, 15 Apr 2015 19:38:18 +0000

Hi Yingzhen, 

>interface, what's the difference?

This is the IPv6 MTU and is currently defined in RFC 7277.

>+--rw v6ur:link-mtu?               uint32

This is the link-mtu advertised in the IPv6 router-advertisements. This is
part of the augmentation for IPv6 Router Advertisements defined in
routing-cfg-18. 

Thanks,
Acee 

>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
>
>   |                 |     |  +--ro outgoing-interface?      ->
>/routing-state/routing-instance/interfaces/interface
>         |        |           |  +--rw v6ur:outgoing-interface?   ->
>/rt:routing/routing-instance/interfaces/interface
>         |                    |  +--rw v4ur:outgoing-interface?   ->
>/rt:routing/routing-instance/interfaces/interface
>         |                    +--:(special-next-hop)
>            |     |  +--ro outgoing-interface?      ->
>/routing-state/routing-instance/interfaces/interface