1 module ietf-network-topology {
\r
3 namespace "urn:ietf:params:xml:ns:yang:ietf-network-topology";
\r
6 import ietf-inet-types {
\r
9 import ietf-network {
\r
15 "WILL-BE-DEFINED-LATER";
\r
17 "This module defines a common base model for network topology,
\r
18 augmenting the base network model with links to connect nodes,
\r
19 as well as termination points to terminate links on nodes.";
\r
21 revision 2015-06-08 {
\r
23 "Initial revision.";
\r
24 reference "draft-ietf-i2rs-yang-network-topo-01";
\r
30 "An identifier for a link in a topology.
\r
31 The identifier may be opaque.
\r
32 The identifier SHOULD be chosen such that the same link in a
\r
33 real network topology will always be identified through the
\r
34 same identifier, even if the model is instantiated in
\r
35 separate datastores. An implementation MAY choose to capture
\r
36 semantics in the identifier, for example to indicate the type
\r
37 of link and/or the type of topology that the link is a part
\r
44 "An identifier for termination points on a node.
\r
45 The identifier may be opaque.
\r
46 The identifier SHOULD be chosen such that the same TP in a
\r
47 real network topology will always be identified through the
\r
48 same identifier, even if the model is instantiated in
\r
49 separate datastores. An implementation MAY choose to capture
\r
50 semantics in the identifier, for example to indicate the type
\r
51 of TP and/or the type of node and topology that the TP is a
\r
57 "References a link in a specific network.";
\r
60 path "/nd:network[nd:network-id=current()/../"+
\r
61 "nd:network-ref]/link/link-id";
\r
64 "A type for an absolute reference a link instance.
\r
65 (This type should not be used for relative references.
\r
66 In such a case, a relative path should be used instead.)";
\r
68 uses nd:network-ref;
\r
73 "References a termination point in a specific node.";
\r
76 path "/nd:network[nd:network-id=current()/../"+
\r
77 "nd:network-ref]/nd:node[nd:node-id=current()/../"+
\r
78 "nd:node-ref]/termination-point/tp-id";
\r
81 "A type for an absolute reference to a termination point.
\r
82 (This type should not be used for relative references.
\r
83 In such a case, a relative path should be used instead.)";
\r
88 augment "/nd:network" {
\r
90 "Add links to the network model.";
\r
94 "A Network Link connects a by Local (Source) node and
\r
95 a Remote (Destination) Network Nodes via a set of the
\r
96 nodes' termination points.
\r
97 As it is possible to have several links between the same
\r
98 source and destination nodes, and as a link could
\r
99 potentially be re-homed between termination points, to
\r
100 ensure that we would always know to distinguish between
\r
101 links, every link is identified by a dedicated link
\r
103 Note that a link models a point-to-point link, not a
\r
105 Layering dependencies on links in underlay topologies are
\r
106 not represented as the layering information of nodes and of
\r
107 termination points is sufficient.";
\r
110 "This container holds the logical source of a particular
\r
114 path "../../../nd:node/nd:node-id";
\r
118 "Source node identifier, must be in same topology.";
\r
122 path "../../../nd:node[nd:node-id=current()/../"+
\r
123 "source-node]/termination-point/tp-id";
\r
126 "Termination point within source node that terminates
\r
130 container destination {
\r
132 "This container holds the logical destination of a
\r
136 path "../../../nd:node/nd:node-id";
\r
140 "Destination node identifier, must be in the same
\r
145 path "../../../nd:node[nd:node-id=current()/../"+
\r
146 "dest-node]/termination-point/tp-id";
\r
149 "Termination point within destination node that
\r
150 terminates the link.";
\r
156 "The identifier of a link in the topology.
\r
157 A link is specific to a topology to which it belongs.";
\r
159 list supporting-link {
\r
160 key "network-ref link-ref";
\r
162 "Identifies the link, or links, that this link
\r
166 path "../../../nd:supporting-network/nd:network-ref";
\r
169 "This leaf identifies in which underlay topology
\r
170 supporting link is present.";
\r
174 path "/nd:network[nd:network-id=current()/.."+
\r
175 "/network-ref]/link/link-id";
\r
178 "This leaf identifies a link which is a part
\r
179 of this link's underlay. Reference loops, in which
\r
180 a link identifies itself as its underlay, either
\r
181 directly or transitively, are not allowed.";
\r
186 augment "/nd:network/nd:node" {
\r
188 "Augment termination points which terminate links.
\r
189 Termination points can ultimately be mapped to interfaces.";
\r
190 list termination-point {
\r
193 "A termination point can terminate a link.
\r
194 Depending on the type of topology, a termination point
\r
195 could, for example, refer to a port or an interface.";
\r
199 "Termination point identifier.";
\r
201 list supporting-termination-point {
\r
202 key "network-ref node-ref tp-ref";
\r
204 "The leaf list identifies any termination points that
\r
205 the termination point is dependent on, or maps onto.
\r
206 Those termination points will themselves be contained
\r
207 in a supporting node.
\r
208 This dependency information can be inferred from
\r
209 the dependencies between links. For this reason,
\r
210 this item is not separately configurable. Hence no
\r
211 corresponding constraint needs to be articulated.
\r
212 The corresponding information is simply provided by the
\r
213 implementing system.";
\r
216 path "../../../nd:supporting-node/nd:network-ref";
\r
219 "This leaf identifies in which topology the
\r
220 supporting termination point is present.";
\r
224 path "../../../nd:supporting-node/nd:node-ref";
\r
227 "This leaf identifies in which node the supporting
\r
228 termination point is present.";
\r
232 path "/nd:network[nd:network-id=current()/../"+
\r
233 "network-ref]/nd:node[nd:node-id=current()/../"+
\r
234 "node-ref]/termination-point/tp-id";
\r
237 "Reference to the underlay node, must be in a
\r
238 different topology";
\r