blob: ac1f779eb4740b2ffa3e4fc9f6184fa7f37366bd [file] [log] [blame]
Thomas Vachuska8ca75a22017-08-24 16:12:59 -07001submodule openconfig-isis-routing {
2
3 belongs-to openconfig-isis {
4 prefix "oc-isis";
5 }
6
7 // import some basic types
8 import openconfig-isis-types { prefix oc-isis-types; }
9 import openconfig-extensions { prefix oc-ext; }
10 import openconfig-mpls-types { prefix oc-mplst; }
11 import openconfig-segment-routing { prefix oc-sr; }
12
13 // meta
14 organization "OpenConfig working group";
15
16 contact
17 "OpenConfig working group
18 www.openconfig.net";
19
20 description
21 "This module describes YANG model for ISIS Routing";
22
23 oc-ext:openconfig-version "0.3.2";
24
25 revision "2017-07-26" {
26 description
27 "Update LSDB and fix bugs.";
28 reference "0.3.2";
29 }
30
31 revision "2017-05-15" {
32 description
33 "Refactor LSDB.";
34 reference "0.3.0";
35 }
36
37 revision "2017-01-13" {
38 description
39 "Remove top-level /isis container";
40 reference "0.2.1";
41 }
42
43 revision "2016-12-15" {
44 description
45 "Add segment routing to IS-IS module";
46 reference "0.2.0";
47 }
48
49 revision "2016-10-18" {
50 description
51 "Initial revision of IS-IS models.";
52 reference "0.1.0";
53 }
54
55 // extension statements
56
57 // feature statements
58
59 // identity statements
60
61 // typedef statements
62
63 // grouping statements
64
65 grouping rt-admin-config {
66 description
67 "Re-usable grouping to enable or disable a particular IS-IS feature.";
68
69 leaf enabled {
70 type boolean;
71 description
72 "When set to true, the functionality within which this leaf is
73 defined is enabled, when set to false it is explicitly disabled.";
74 }
75 }
76
77 grouping isis-afi-safi-config {
78 description
79 "This grouping defines Address-Family configuration parameters";
80
81 leaf afi-name {
82 type identityref {
83 base oc-isis-types:AFI_TYPE;
84 }
85 description
86 "Address-family type.";
87 }
88
89 leaf safi-name {
90 type identityref {
91 base oc-isis-types:SAFI_TYPE;
92 }
93 description
94 "Subsequent address-family type.";
95 }
96 }
97
98 grouping isis-shortcuts-afi-config {
99 description
100 "This grouping defines ISIS Shortcuts configuration parameters";
101
102 leaf afi-name {
103 type identityref {
104 base oc-isis-types:AFI_TYPE;
105 }
106 description "Address-family type.";
107 }
108
109 leaf-list nh-type {
110 type identityref {
111 base oc-mplst:PATH_SETUP_PROTOCOL;
112 }
113 description "Tunnel NH Type(RSVP,SR). When present it implies
114 that nh-type shortcut is enabled for a specified AFI.";
115 }
116 }
117
118 grouping isis-shortcuts-config {
119 description
120 "This grouping defines ISIS Shortcuts consfiguration parameters";
121
122 container config {
123 description "This container defines ISIS shortcuts configuration.";
124 uses rt-admin-config;
125 }
126
127 container state {
128 config false;
129 description "This container defines state for ISIS shortcuts.";
130 uses rt-admin-config;
131 }
132 }
133
134 grouping isis-mt-config {
135 description
136 "This grouping defines ISIS multi-topology configuration parameters";
137
138 leaf afi-name {
139 type identityref {
140 base oc-isis-types:AFI_TYPE;
141 }
142 description
143 "Address-family type.";
144 }
145 leaf safi-name {
146 type identityref {
147 base oc-isis-types:SAFI_TYPE;
148 }
149 description
150 "Subsequent address-family type.";
151 }
152 //prefer single topology
153 }
154
155
156
157 // *********** STRUCTURE GROUPINGS **********************
158
159 grouping isis-metric-config {
160 description
161 "This grouping defines ISIS metric configuration";
162
163 leaf metric {
164 type uint32;
165 default 10;
166 description "ISIS metric value(default=10).";
167 }
168 }
169
170 grouping isis-afi-safi-list {
171 description
172 "This grouping defines address-family configuration and state
173 information";
174
175 list af {
176 key "afi-name safi-name";
177
178 description
179 "Address-family/Subsequent Address-family list.";
180
181 leaf afi-name {
182 type leafref {
183 path "../config/afi-name";
184 }
185 description
186 "Reference to address-family type";
187 }
188
189 leaf safi-name {
190 type leafref {
191 path "../config/safi-name";
192 }
193 description
194 "Reference to subsequent address-family type";
195 }
196
197 container config {
198 description
199 "This container defines AFI-SAFI configuration parameters";
200
201 uses isis-afi-safi-config;
202 uses isis-metric-config;
203 uses rt-admin-config;
204 }
205
206 container state {
207 config false;
208 description
209 "This container defines AFI-SAFI State information";
210
211 uses isis-afi-safi-config;
212 uses isis-metric-config;
213 uses rt-admin-config;
214 }
215
216 uses isis-mt-list;
217 }
218 }
219
220 grouping isis-if-afi-safi-list {
221 description
222 "This grouping defines address-family configuration and state
223 information";
224
225 list af {
226 key "afi-name safi-name";
227
228 description
229 "Address-family/Subsequent Address-family list.";
230
231 leaf afi-name {
232 type leafref {
233 path "../config/afi-name";
234 }
235 description
236 "Reference to address-family type";
237 }
238
239 leaf safi-name {
240 type leafref {
241 path "../config/safi-name";
242 }
243 description
244 "Reference to subsequent address-family type";
245 }
246
247 container config {
248 description
249 "This container defines AFI-SAFI configuration parameters. Single
250 topology is the default setting.";
251 uses isis-afi-safi-config;
252 uses isis-metric-config;
253 uses rt-admin-config;
254 }
255
256 container state {
257 config false;
258 description
259 "This container defines AFI-SAFI State information";
260 uses isis-afi-safi-config;
261 uses isis-metric-config;
262 uses rt-admin-config;
263 }
264
265 uses oc-sr:sr-igp-interface-top;
266 }
267 }
268
269 grouping isis-if-global-afi-safi-list {
270 description
271 "This grouping defines address-family configuration and state
272 information";
273
274 list af {
275 key "afi-name safi-name";
276
277 description
278 "Address-family/Subsequent Address-family list.";
279
280 leaf afi-name {
281 type leafref {
282 path "../config/afi-name";
283 }
284 description
285 "Reference to address-family type";
286 }
287
288 leaf safi-name {
289 type leafref {
290 path "../config/safi-name";
291 }
292 description
293 "Reference to subsequent address-family type";
294 }
295
296 container config {
297 description
298 "This container defines AFI-SAFI configuration parameters. Single
299 topology is the default setting.";
300 uses isis-afi-safi-config;
301 uses rt-admin-config;
302 }
303
304 container state {
305 config false;
306 description
307 "This container defines AFI-SAFI State information";
308 uses isis-afi-safi-config;
309 uses rt-admin-config;
310 }
311 }
312 }
313
314 grouping isis-shortcuts-afi-list {
315 description
316 "This grouping defines ISIS Shorcuts configuration and
317 state information";
318
319 list afi {
320 key "afi-name";
321
322 description
323 "Address-family list.";
324
325 leaf afi-name {
326 type leafref {
327 path "../config/afi-name";
328 }
329 description
330 "Reference to address-family type.";
331 }
332
333 container config {
334 description
335 "This container defines ISIS Shortcuts configuration parameters";
336 uses isis-shortcuts-afi-config;
337 }
338
339 container state {
340 config false;
341 description
342 "This container defines ISIS Shortcuts state information";
343 uses isis-shortcuts-afi-config;
344 }
345 }
346 }
347
348 grouping isis-mt-list {
349 description
350 "This grouping defines multi-topology address-family configuration and
351 state information. MT0 - IPv4 Unicast, MT2 - IPv6 Unicast, MT3 -
352 IPv4 Multicast, MT4 - IPv6 Multicast";
353
354 container multi-topology {
355 description
356 "This container defines multi-topology address-family configuration
357 and state information. ISIS TLV 235, 237.";
358
359 container config {
360 description
361 "This container defines AFI-SAFI multi-topology configuration
362 parameters";
363 uses isis-mt-config;
364 }
365
366 container state {
367 config false;
368 description
369 "This container defines AFI-SAFI multi-topology state information";
370 uses isis-mt-config;
371 uses rt-admin-config;
372 }
373 }
374 }
375}