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-07-12;
11 import ietf-inet-types {
18 revision "2013-07-12" {
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 {
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";
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";
151 } // grouping igp-termination-point-attributes
154 augment "/nt:network-topology/nt:topology/nt:topology-types" {
155 uses l3-unicast-igp-topology-type;
159 augment "/nt:network-topology/nt:topology" {
160 when "topology-types/l3-unicast-igp-topology";
161 uses igp-topology-attributes;
164 augment "/nt:network-topology/nt:topology/nt:node" {
165 when "../../topology-types/l3-unicast-igp-topology";
166 uses igp-node-attributes;
170 augment "/nt:network-topology/nt:topology/nt:link" {
171 when "../../topology-types/l3-unicast-igp-topology";
172 uses igp-link-attributes;
174 augment "/nt:network-topology/nt:topology/nt:node/nt:termination-point" {
175 when "../../topology-types/l3-unicast-igp-topology";
176 uses igp-termination-point-attributes;
179 notification igp-node-event {
180 leaf igp-event-type {
184 type nt:topology-ref;
186 uses l3-unicast-igp-topology-type;
187 uses nt:node-attributes;
188 uses igp-node-attributes;
191 notification igp-link-event {
192 leaf igp-event-type {
196 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;