Reviewer: Martin Björklund Review result: Ready with Nits Here is my YANG doctors review of draft-ietf-rtgwg-yang-rib-extend-06. This is a well-written draft, and my comments are minor. o 1. Introduction This document defines a YANG [RFC6020][RFC7950] data model which extends the generic data model for RIB by augmenting the ietf-routing model as defined in [RFC8349]. Nit: s/ietf-routing model/ietf-routing YANG module/ o 2. Terminology You import a couple of terms that are not used, I suggest you remove them. In 2.1 you introduce RIB, but since this term is defined in RFC 8349, I suggest you import it instead. o 3. Design of the Model The YANG definitions in this document augment the ietf-routing model defined in [RFC8349], which provides a basis for routing system data model development. Together with modules defined in [RFC8349], a generic RIB Yang model is defined to implement and monitor a RIB. Perhaps: The YANG definitions in this document augment the routing data model defined in [RFC8349], which provides a basis for routing system data model development. Together with the YANG modules defined in [RFC8349], a generic RIB YANG model is defined to implement and monitor a RIB. o 3 & 4 To make the text in 3 easier to understand, and 4 easier to read, I would move some snippets from 4 to 3. For example: 3.1. RIB Tags and Preference Individual routes tags are supported at both the route and next-hop level. A preference per next-hop is also supported for selection of the most preferred reachable static route. augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/rt:static-routes/v4ur:ipv4 /v4ur:route/v4ur:next-hop/v4ur:next-hop-options /v4ur:simple-next-hop: +--rw preference? uint32 +--rw tag? uint32 augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/rt:static-routes/v6ur:ipv6 /v6ur:route/v6ur:next-hop/v6ur:next-hop-options /v6ur:simple-next-hop: +--rw preference? uint32 +--rw tag? uint32 Etc. If each augment is explained in section 3, section 4 can be removed. o module description This YANG module extends the generic data model for RIB by augmenting the ietf-routing model. It is intended that the module will be extended by vendors to define vendor-specific RIB parameters. I don't think I understand this description. Here's my understanding, but I don't think it is correct: 1. This module extends the existing RIB data model by using augmentations. 2. The existing RIB data model is defined in the YANG module ietf-routing. 3. The purpose of this new module is to allow vendors to extend the the existing RIB data model with vendor-specific parameters. It seems 3 is at least incomplete, since this module defines some additional config param for static routes, and addtional state and statistics for ribs. It is not clear how vendors are expected to extend this model; the word "vendor" doesn't show up anywhere else. o revision We usually write "Initial revision.". o rib-summary-statistics leaf total-routes { type uint32; description "Total routes in the RIB from all protocols"; } leaf total-active-routes { type uint32; description "Total active routes in the RIB"; } leaf total-route-memory { type uint64; description "Total memory for all routes in the RIB from all protocol clients"; These three leafs have slightly different descriptions, so I wonder if there is a difference between "from all protocols", "from all protocol clients" and no mentioning of protocols? o naming of statistics The draft defines: augment /rt:routing/rt:ribs/rt:rib: +--ro rib-summary-statistics +--ro total-routes? uint32 +--ro total-active-routes? uint32 +--ro total-route-memory? uint64 +--ro protocol-rib-statistics* [] +--ro rib-protocol? identityref +--ro protocol-total-routes? uint32 +--ro protocol-active-routes? uint32 +--ro protocol-route-memory? uint64 The names seem to repeat some words where is it not necessary, e.g., there's no reason to call it 'rib-summary-statistics' under the 'rib' list. It is more that summary; so I suggest simply 'statistics'. Also, what is a "rib protocol"? Perhaps: augment /rt:routing/rt:ribs/rt:rib: +--ro statistics +--ro total-routes? uint32 +--ro total-active-routes? uint32 +--ro total-route-memory? uint64 +--ro protocol-statistics* [] +--ro protocol? identityref +--ro routes? uint32 +--ro active-routes? uint32 +--ro route-memory? uint64 o protocol-rib-statistics list protocol-rib-statistics { description "List protocol statistics"; Perhaps: description "RIB statistics per protocol."; leaf rib-protocol { type identityref { base rt:routing-protocol; } description "Routing protocol for statistics"; Perhaps just: description "Routing protocol."; o formatting I suggest you run the module through: pyang -f yang --yang-canonical ietf-rib-extension@xxxxxxxxxxxxxxx to fix some formatting and statement ordering issues. -- last-call mailing list last-call@xxxxxxxx https://www.ietf.org/mailman/listinfo/last-call