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 {
10 import ietf-inet-types {
17 revision "2013-10-21" {
18 description "Initial revision";
22 typedef igp-event-type {
23 description "IGP Event type for notifications";
27 description "An IGP node or link or prefix or termination-point has been added";
31 description "An IGP node or link or prefix or termination-point has been removed";
35 description "An IGP node or link or prefix or termination-point has been updated";
40 identity flag-identity {
41 description "Base type for flags";
43 identity undefined-flag {
54 grouping igp-prefix-attributes {
66 grouping l3-unicast-igp-topology-type {
67 container l3-unicast-igp-topology {
68 presence "indicates L3 Unicast IGP Topology";
72 grouping igp-topology-attributes {
73 container igp-topology-attributes {
75 description "Name of the topology";
79 description "Topology flags";
85 grouping igp-node-attributes {
86 container igp-node-attributes {
88 description "Node name";
89 type inet:domain-name;
92 description "Node operational flags";
96 description "Router-id for the node";
102 uses igp-prefix-attributes;
107 grouping igp-link-attributes {
108 container igp-link-attributes {
110 description "Link Name";
114 description "Link flags";
118 description "Link Metric";
120 range "0..16777215" {
123 // OSPF/ISIS supports max 3 byte metric.
124 // Ideally we would like this restriction to be
125 // defined in the derived models, however,
126 // we are not allowed to augment a "must" statement.
131 } // grouping igp-link-attributes
133 grouping igp-termination-point-attributes {
134 container igp-termination-point-attributes {
135 choice termination-point-type {
137 leaf-list ip-address {
138 description "IPv4 or IPv6 address";
139 type inet:ip-address;
144 description "Unnumbered interface identifier";
151 } // grouping igp-termination-point-attributes
154 augment "/nt:network-topology/nt:topology/nt:topology-types" {
155 uses l3-unicast-igp-topology-type;
158 augment "/nt:network-topology/nt:topology" {
159 when "nt:topology-types/l3-unicast-igp-topology";
160 uses igp-topology-attributes;
163 augment "/nt:network-topology/nt:topology/nt:node" {
164 when "../nt:topology-types/l3-unicast-igp-topology";
165 uses igp-node-attributes;
167 augment "/nt:network-topology/nt:topology/nt:link" {
168 when "../nt:topology-types/l3-unicast-igp-topology";
169 uses igp-link-attributes;
171 augment "/nt:network-topology/nt:topology/nt:node/nt:termination-point" {
172 when "../../nt:topology-types/l3-unicast-igp-topology";
173 uses igp-termination-point-attributes;
176 notification igp-node-event {
177 leaf igp-event-type {
181 type nt:topology-ref;
183 uses l3-unicast-igp-topology-type;
184 uses nt:node-attributes;
185 uses igp-node-attributes;
188 notification igp-link-event {
189 leaf igp-event-type {
193 type nt:topology-ref;
196 uses l3-unicast-igp-topology-type;
197 uses nt:link-attributes;
198 uses igp-link-attributes;
201 notification igp-prefix-event {
202 leaf igp-event-type {
206 type nt:topology-ref;
211 uses l3-unicast-igp-topology-type;
213 uses igp-prefix-attributes;
217 notification termination-point-event {
218 leaf igp-event-type {
222 type nt:topology-ref;
227 uses l3-unicast-igp-topology-type;
228 uses nt:tp-attributes;
229 uses igp-termination-point-attributes;