Last Call Review of draft-ietf-i2rs-yang-network-topo-09
I am the assigned Gen-ART reviewer for this draft. The General Area
Review Team (Gen-ART) reviews all IETF documents being processed
by the IESG for the IETF Chair. Please treat these comments just
like any other last call comments.
For more information, please see the FAQ at
Reviewer: Stewart Bryant
Review Date: 12 Dec 2016
IETF LC End Date: 19 Dec 2016
IESG Telechat date: 5 Jan 2017
Summary: Ready with issues
This is a well written document and is basically ready for publication
and the issues
There are a number of minor issues that the responsible AD needs to
and a systematic English problem (missing pronouns) that the authors
to avoid the RFC Editor having to ask.
There are six authors which I assume is acceptable.
I am not a YANG expert and have therefore not checked the YANG syntax or
This document introduces an abstract (base) YANG [RFC7950] [RFC6991]
data model to represent networks and topologies. The data model is
divided into two parts.
The first part of the model defines a
network model that allows to define network hierarchies (i.e. network
SB> minor English problem : "allows to define" perhaps "allows the
SB> definition of" or "allows an operator to define".
stacks) and to maintain an inventory of nodes contained in a network.
SB> same problem as above.
SB> Also I am a little worried that the term "network stack" is going to
SB> to confuse a lot of people. Many will confuse network stack with
SB> protocol stack. There probably needs to be some text explaining
SB> the difference.
While it would be possible to combine both parts into a single model,
the separation facilitates integration of network topology and
network inventory models, by allowing to augment network inventory
information separately and without concern for topology into the
SB> same English problem - "by allowing to augment"
The model can be augmented to describe specifics of particular types
SB> describe THE specifics
of networks and topologies. For example, an augmenting model can
SB> Not sure is that should be augmenting or augmented (same further
SB> down the para).
The basic data models introduced in this document are generic in
nature and can be applied to many network and service topologies and
inventories. The models allow applications to operate on an
inventory or topology of any network at a generic level, where
specifics of particular inventory/topology types are not required.
At the same time, where data specific to a network type does comes
into play and the model is augmented, the instantiated data still
adheres to the same structure and is represented in consistent
SB> nit: in a consistent
fashion. This also facilitates the representation of network
hierarchies and dependencies between different network components and
The abstract (base) network YANG module introduced in this document,
entitled "network.yang", contains a list of abstract network nodes
and defines the concept of network hierarchy (network stack). The
abstract network node can be augmented in inventory and topology
SB> nit possibly "augmented in both the inventory"
SB> either way I think at least a "the" is missing
models with inventory and topology specific attributes. Network
A network can contain
multiple topologies, for example topologies at different layers and
overlay topologies. The model therefore allows to capture
SB> English: "allows to capture" - who does it allow to make a capture?
relationships between topologies, as well as dependencies between
nodes and termination points across topologies. An example of a
topology stack is shown in the following figure.
3. Definitions and Acronyms
HTTP: Hyper-Text Transfer Protocol
SB> HTTP is stared in the "well known" list and so does not need expanding
SB> also it is only used once in the text
When a network is of a certain type, it will contain a corresponding
data node. Network types SHOULD always be represented using presence
containers, not leafs of empty type. This allows to represent
SB> missing word "This allows who or what to represent"
This (physical) network,
respectively the (entities) nodes in that network, can then be
referred to as underlay network and nodes from the other (logical)
networks and nodes, respectively. Note that the model allows to
SB> allows who to define?
define more than one underlay network (and node), allowing for
simultaneous representation of layered network- and service
SB> Spurious "-"
topologies and physical instantiation.
Similar to a network, a node can be supported by other nodes, and map
onto one or more other nodes in an underlay network. This is
captured in the list "supporting-node". The resulting hierarchy of
nodes allows also to represent device stacks, where a node at one
SB> Allows who to also?
level is supported by a set of nodes at an underlying level. For
example, a "router" node might be supported by a node representing a
route processor and separate nodes for various line cards and service
modules, a virtual router might be supported or hosted on a physical
device represented by a separate node, and so on.
Finally, there is an object "server-provided". This object is state
that indicates how the network came into being. Network data can
come into being in one of two ways. In one way, network data is
configured by client applications, for example in case of overlay
networks that are configured by an SDN Controller application. In
annother way, it is populated by the server, in case of networks that
can be discovered.
SB> I don't understand the end of the previous para. I think you are
SB> covering the case of SDN and classic self-learning networks where
SB> information is discovered from neighbours. If that is the case
SB> it is not clear from the text above.
If server-provided is set to false, the network was configured by a
client application, for example in the case of an overlay network
that is configured by a controller application. If server-provided
is set to true, the network was populated by the server itself,
respectively an application on the server that is able to discover
the network. Client applications SHOULD NOT modify configurations of
networks for which "server-provided" is true. When they do, they
need to be aware that any modifications they make are subject to be
reverted by the server. For servers that support NACM (Netconf
Access Control Model), data node rules should ideally prevent write
access by other clients to network instances for which server-
provided is set to true.
A node has a list of termination points that are used to terminate
links. An example of a termination point might be a physical or
logical port or, more generally, an interface.
SB> When I read this I immediately wondered about multi-point links
SB> You clear up later that your model does not support them. It
SB> would be kind to the reader to pre-empt the question here.
4.4.4. Use of groupings
The model makes use of groupings, instead of simply defining data
nodes "in-line". This allows to more easily include the
SB> this allows who?
4.4.7. Mapping redundancy
In a hierarchy of networks, there are nodes mapping to nodes, links
mapping to links, and termination points mapping to termination
points. Some of this information is redundant. Specifically, if the
link-to-links mapping known, and the termination points of each link
SB> link-to-links mapping IS known
In the case of a physical network, nodes represent physical devices
and termination points physical ports. It should be noted that it is
also conceivable to augment the model for a physical network-type,
SB> do you mean conceivable or possible?
it is conceivable that certain types of topology need to also be
SB> again I think you mean "it is possible"
configurable by an application. The model needs to support both
Another alternative would make use of a YANG extension to tag
specific network instances as "server-provided" instead of defining a
leaf object, or rely on the concept of YANG metadata [RFC7952] for
SB> perhaps "or relying on"
the same effect. The tag would be automatically applied to any
topology data that comes into being (respectively is configured) by
an embedded application on the network, as opposed to e.g. a
4.4.11. Identifiers of string or URI type
The current model defines identifiers of nodes, networks, links, and
termination points as URIs. An alternative would define them as
SB> given "them" (plural) I think that should be "strings"
The case for strings is that they will be easier to implement. The
reason for choosing URIs is that the topology/node/tp exists in a
larger context, hence it is useful to be able to correlate
identifiers across systems. While strings, being the universal data
type, are easier for human beings (a string is a string is a string),
SB> Well maybe, it could be an ASCII string or an EBCDIC string etc