1 module l3-unicast-igp-topology {
3 namespace "urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology";
4 // replace with IANA namespace when assigned
6 import network-topology {
8 revision-date 2013-10-21;
11 import ietf-inet-types {
13 revision-date 2010-09-24;
19 revision "2013-10-21" {
20 description "Initial revision";
24 typedef igp-event-type {
25 description "IGP Event type for notifications";
29 description "An IGP node or link or prefix or termination-point has been added";
33 description "An IGP node or link or prefix or termination-point has been removed";
37 description "An IGP node or link or prefix or termination-point has been updated";
42 identity flag-identity {
43 description "Base type for flags";
45 identity undefined-flag {
56 grouping igp-prefix-attributes {
68 grouping l3-unicast-igp-topology-type {
69 container l3-unicast-igp-topology {
70 presence "indicates L3 Unicast IGP Topology";
74 grouping igp-topology-attributes {
75 container igp-topology-attributes {
77 description "Name of the topology";
81 description "Topology flags";
87 grouping igp-node-attributes {
88 container igp-node-attributes {
90 description "Node name";
91 type inet:domain-name;
94 description "Node operational flags";
98 description "Router-id for the node";
100 type inet:ip-address;
104 uses igp-prefix-attributes;
109 grouping igp-link-attributes {
110 container igp-link-attributes {
112 description "Link Name";
116 description "Link flags";
120 description "Link Metric";
122 range "0..16777215" {
125 // OSPF/ISIS supports max 3 byte metric.
126 // Ideally we would like this restriction to be
127 // defined in the derived models, however,
128 // we are not allowed to augment a "must" statement.
133 } // grouping igp-link-attributes
135 grouping igp-termination-point-attributes {
136 container igp-termination-point-attributes {
137 choice termination-point-type {
139 leaf-list ip-address {
140 description "IPv4 or IPv6 address";
141 type inet:ip-address;
146 description "Unnumbered interface identifier";
153 } // grouping igp-termination-point-attributes
156 augment "/nt:network-topology/nt:topology/nt:topology-types" {
157 uses l3-unicast-igp-topology-type;
160 augment "/nt:network-topology/nt:topology" {
161 when "nt:topology-types/l3-unicast-igp-topology";
162 uses igp-topology-attributes;
165 augment "/nt:network-topology/nt:topology/nt:node" {
166 when "../nt:topology-types/l3-unicast-igp-topology";
167 uses igp-node-attributes;
169 augment "/nt:network-topology/nt:topology/nt:link" {
170 when "../nt:topology-types/l3-unicast-igp-topology";
171 uses igp-link-attributes;
173 augment "/nt:network-topology/nt:topology/nt:node/nt:termination-point" {
174 when "../../nt:topology-types/l3-unicast-igp-topology";
175 uses igp-termination-point-attributes;
178 notification igp-node-event {
179 leaf igp-event-type {
183 type nt:topology-ref;
185 uses l3-unicast-igp-topology-type;
186 uses nt:node-attributes;
187 uses igp-node-attributes;
190 notification igp-link-event {
191 leaf igp-event-type {
195 type nt:topology-ref;
198 uses l3-unicast-igp-topology-type;
199 uses nt:link-attributes;
200 uses igp-link-attributes;
203 notification igp-prefix-event {
204 leaf igp-event-type {
208 type nt:topology-ref;
213 uses l3-unicast-igp-topology-type;
215 uses igp-prefix-attributes;
219 notification termination-point-event {
220 leaf igp-event-type {
224 type nt:topology-ref;
229 uses l3-unicast-igp-topology-type;
230 uses nt:tp-attributes;
231 uses igp-termination-point-attributes;