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 {
18 revision "2013-10-21" {
19 description "Initial revision";
23 typedef igp-event-type {
24 description "IGP Event type for notifications";
28 description "An IGP node or link or prefix or termination-point has been added";
32 description "An IGP node or link or prefix or termination-point has been removed";
36 description "An IGP node or link or prefix or termination-point has been updated";
41 identity flag-identity {
42 description "Base type for flags";
44 identity undefined-flag {
55 grouping igp-prefix-attributes {
67 grouping l3-unicast-igp-topology-type {
68 container l3-unicast-igp-topology {
69 presence "indicates L3 Unicast IGP Topology";
73 grouping igp-topology-attributes {
74 container igp-topology-attributes {
76 description "Name of the topology";
80 description "Topology flags";
86 grouping igp-node-attributes {
87 container igp-node-attributes {
89 description "Node name";
90 type inet:domain-name;
93 description "Node operational flags";
97 description "Router-id for the node";
103 uses igp-prefix-attributes;
108 grouping igp-link-attributes {
109 container igp-link-attributes {
111 description "Link Name";
115 description "Link flags";
119 description "Link Metric";
121 range "0..16777215" {
124 // OSPF/ISIS supports max 3 byte metric.
125 // Ideally we would like this restriction to be
126 // defined in the derived models, however,
127 // we are not allowed to augment a "must" statement.
132 } // grouping igp-link-attributes
134 grouping igp-termination-point-attributes {
135 container igp-termination-point-attributes {
136 choice termination-point-type {
138 leaf-list ip-address {
139 description "IPv4 or IPv6 address";
140 type inet:ip-address;
145 description "Unnumbered interface identifier";
152 } // grouping igp-termination-point-attributes
155 augment "/nt:network-topology/nt:topology/nt:topology-types" {
156 uses l3-unicast-igp-topology-type;
159 augment "/nt:network-topology/nt:topology" {
160 when "nt:topology-types/l3-unicast-igp-topology";
161 uses igp-topology-attributes;
164 augment "/nt:network-topology/nt:topology/nt:node" {
165 when "../nt:topology-types/l3-unicast-igp-topology";
166 uses igp-node-attributes;
168 augment "/nt:network-topology/nt:topology/nt:link" {
169 when "../nt:topology-types/l3-unicast-igp-topology";
170 uses igp-link-attributes;
172 augment "/nt:network-topology/nt:topology/nt:node/nt:termination-point" {
173 when "../../nt:topology-types/l3-unicast-igp-topology";
174 uses igp-termination-point-attributes;
177 notification igp-node-event {
178 leaf igp-event-type {
182 type nt:topology-ref;
184 uses l3-unicast-igp-topology-type;
185 uses nt:node-attributes;
186 uses igp-node-attributes;
189 notification igp-link-event {
190 leaf igp-event-type {
194 type nt:topology-ref;
197 uses l3-unicast-igp-topology-type;
198 uses nt:link-attributes;
199 uses igp-link-attributes;
202 notification igp-prefix-event {
203 leaf igp-event-type {
207 type nt:topology-ref;
212 uses l3-unicast-igp-topology-type;
214 uses igp-prefix-attributes;
218 notification termination-point-event {
219 leaf igp-event-type {
223 type nt:topology-ref;
228 uses l3-unicast-igp-topology-type;
229 uses nt:tp-attributes;
230 uses igp-termination-point-attributes;