idnits 2.17.00 (12 Aug 2021)
/tmp/idnits46470/draft-ietf-isis-yang-isis-cfg-27.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== The page length should not exceed 58 lines per page, but there was 7
longer pages, the longest (page 6) being 63 lines
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the IETF Trust and authors Copyright Line does not
match the current year
== Line 234 has weird spacing: '...-method str...'
== Line 629 has weird spacing: '...-family ian...'
== Line 4765 has weird spacing: '... system recei...'
-- The document date (December 11, 2018) is 1257 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Unused Reference: 'RFC5130' is defined on line 5231, but no explicit
reference was found in the text
== Unused Reference: 'RFC5305' is defined on line 5241, but no explicit
reference was found in the text
== Unused Reference: 'RFC5306' is defined on line 5245, but no explicit
reference was found in the text
== Unused Reference: 'RFC5880' is defined on line 5253, but no explicit
reference was found in the text
== Unused Reference: 'RFC5881' is defined on line 5257, but no explicit
reference was found in the text
== Unused Reference: 'RFC6119' is defined on line 5267, but no explicit
reference was found in the text
== Unused Reference: 'RFC6232' is defined on line 5271, but no explicit
reference was found in the text
== Unused Reference: 'RFC7794' is defined on line 5294, but no explicit
reference was found in the text
== Unused Reference: 'RFC7810' is defined on line 5299, but no explicit
reference was found in the text
== Unused Reference: 'RFC7917' is defined on line 5304, but no explicit
reference was found in the text
== Unused Reference: 'RFC8405' is defined on line 5350, but no explicit
reference was found in the text
== Outdated reference: draft-ietf-bfd-yang has been published as RFC 9127
** Obsolete normative reference: RFC 5306 (Obsoleted by RFC 8706)
** Downref: Normative reference to an Informational RFC: RFC 5443
** Obsolete normative reference: RFC 7810 (Obsoleted by RFC 8570)
Summary: 3 errors (**), 0 flaws (~~), 17 warnings (==), 1 comment (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 IS-IS Working Group S. Litkowski
3 Internet-Draft Orange
4 Intended status: Standards Track D. Yeung
5 Expires: June 14, 2019 Arrcus, Inc
6 A. Lindem
7 Cisco Systems
8 J. Zhang
9 Juniper Networks
10 L. Lhotka
11 CZ.NIC
12 December 11, 2018
14 YANG Data Model for IS-IS protocol
15 draft-ietf-isis-yang-isis-cfg-27
17 Abstract
19 This document defines a YANG data model that can be used to configure
20 and manage IS-IS protocol on network elements.
22 Requirements Language
24 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
25 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
26 "OPTIONAL" in this document are to be interpreted as described in BCP
27 14 [RFC2119] [RFC8174] when, and only when, they appear in all
28 capitals, as shown here.
30 Status of This Memo
32 This Internet-Draft is submitted in full conformance with the
33 provisions of BCP 78 and BCP 79.
35 Internet-Drafts are working documents of the Internet Engineering
36 Task Force (IETF). Note that other groups may also distribute
37 working documents as Internet-Drafts. The list of current Internet-
38 Drafts is at https://datatracker.ietf.org/drafts/current/.
40 Internet-Drafts are draft documents valid for a maximum of six months
41 and may be updated, replaced, or obsoleted by other documents at any
42 time. It is inappropriate to use Internet-Drafts as reference
43 material or to cite them other than as "work in progress."
45 This Internet-Draft will expire on June 14, 2019.
47 Copyright Notice
49 Copyright (c) 2018 IETF Trust and the persons identified as the
50 document authors. All rights reserved.
52 This document is subject to BCP 78 and the IETF Trust's Legal
53 Provisions Relating to IETF Documents
54 (https://trustee.ietf.org/license-info) in effect on the date of
55 publication of this document. Please review these documents
56 carefully, as they describe your rights and restrictions with respect
57 to this document. Code Components extracted from this document must
58 include Simplified BSD License text as described in Section 4.e of
59 the Trust Legal Provisions and are provided without warranty as
60 described in the Simplified BSD License.
62 Table of Contents
64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
65 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
66 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9
67 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 9
68 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10
69 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 11
70 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 18
71 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 18
72 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 18
73 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 18
74 2.9. Operational States . . . . . . . . . . . . . . . . . . . 19
75 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 19
76 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 20
77 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 21
78 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22
79 7. Security Considerations . . . . . . . . . . . . . . . . . . . 101
80 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 102
81 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 102
82 10. Change log for ietf-isis YANG module . . . . . . . . . . . . 102
83 10.1. From version -26 to version -27 . . . . . . . . . . . . 102
84 10.2. From version -25 to version -26 . . . . . . . . . . . . 102
85 10.3. From version -24 to version -25 . . . . . . . . . . . . 103
86 10.4. From version -22 to version -24 . . . . . . . . . . . . 104
87 10.5. From version -21 to version -22 . . . . . . . . . . . . 104
88 10.6. From version -20 to version -21 . . . . . . . . . . . . 104
89 10.7. From version -19 to version -20 . . . . . . . . . . . . 104
90 10.8. From version -18 to version -19 . . . . . . . . . . . . 104
91 10.9. From version -17 to version -18 . . . . . . . . . . . . 104
92 10.10. From version -16 to version -17 . . . . . . . . . . . . 104
93 10.11. From version -15 to version -16 . . . . . . . . . . . . 105
94 10.12. From version -14 to version -15 . . . . . . . . . . . . 105
95 10.13. From version -13 to version -14 . . . . . . . . . . . . 105
96 10.14. From version -12 to version -13 . . . . . . . . . . . . 105
97 10.15. From version -09 to version -12 . . . . . . . . . . . . 106
98 10.16. From version -08 to version -09 . . . . . . . . . . . . 106
99 10.17. From version -07 to version -08 . . . . . . . . . . . . 106
100 10.18. From version -05 to version -07 . . . . . . . . . . . . 106
101 10.19. From version -03 to version -05 . . . . . . . . . . . . 106
102 10.20. From version -02 to version -03 . . . . . . . . . . . . 107
103 10.21. From version -01 to version -02 . . . . . . . . . . . . 107
104 10.22. From version -00 to version -01 . . . . . . . . . . . . 107
105 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 108
106 11.1. Normative References . . . . . . . . . . . . . . . . . . 108
107 11.2. Informative References . . . . . . . . . . . . . . . . . 111
108 Appendix A. Example of IS-IS configuration in XML . . . . . . . 112
109 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114
111 1. Introduction
113 This document defines a YANG ([RFC7950]) data model for IS-IS routing
114 protocol.
116 The data model covers configuration of an IS-IS routing protocol
117 instance as well as operational states.
119 A simplified tree representation of the data model is presented in
120 Section 2. Tree diagrams used in this document follow the notation
121 defined in [RFC8340].
123 The module is designed as per NMDA (Network Management Datastore
124 Architecture) [RFC8342].
126 2. Design of the Data Model
128 The IS-IS YANG module augments the "control-plane-protocol" list in
129 ietf-routing module (defined in [RFC8349]) with specific IS-IS
130 parameters.
132 The figure below describes the overall structure of the isis YANG
133 module:
135 module: ietf-isis
136 augment /rt:routing/rt:ribs/rt:rib/rt:routes/rt:route:
137 +--ro metric? uint32
138 +--ro tag* uint64
139 +--ro route-type? enumeration
140 augment /if:interfaces/if:interface:
141 +--rw clns-mtu? uint16
143 augment
144 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol:
145 +--rw isis
146 +--rw enable? boolean {admin-control}?
147 +--rw level-type? level
148 +--rw system-id? system-id
149 +--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
150 +--rw area-address* area-address
151 +--rw lsp-mtu? uint16
152 +--rw lsp-lifetime? uint16
153 +--rw lsp-refresh? rt-types:timer-value-seconds16
154 {lsp-refresh}?
155 +--rw poi-tlv? boolean {poi-tlv}?
156 +--rw graceful-restart {graceful-restart}?
157 | +--rw enable? boolean
158 | +--rw restart-interval? rt-types:timer-value-seconds16
159 | +--rw helper-enable? boolean
160 +--rw nsr {nsr}?
161 | +--rw enable? boolean
162 +--rw node-tags {node-tag}?
163 | +--rw node-tag* [tag]
164 | ...
165 +--rw metric-type
166 | +--rw value? enumeration
167 | +--rw level-1
168 | | ...
169 | +--rw level-2
170 | ...
171 +--rw default-metric
172 | +--rw value? wide-metric
173 | +--rw level-1
174 | | ...
175 | +--rw level-2
176 | ...
177 +--rw auto-cost {auto-cost}?
178 | +--rw enable? boolean
179 | +--rw reference-bandwidth? uint32
180 +--rw authentication
181 | +--rw (authentication-type)?
182 | | ...
183 | +--rw level-1
184 | | ...
185 | +--rw level-2
186 | ...
187 +--rw address-families {nlpid-control}?
188 | +--rw address-family-list* [address-family]
189 | ...
190 +--rw mpls
191 | +--rw te-rid {te-rid}?
192 | | ...
194 | +--rw ldp
195 | ...
196 +--rw spf-control
197 | +--rw paths? uint16 {max-ecmp}?
198 | +--rw ietf-spf-delay {ietf-spf-delay}?
199 | ...
200 +--rw fast-reroute {fast-reroute}?
201 | +--rw lfa {lfa}?
202 +--rw preference
203 | +--rw (granularity)?
204 | ...
205 +--rw overload
206 | +--rw status? boolean
207 +--rw overload-max-metric {overload-max-metric}?
208 | +--rw timeout? rt-types:timer-value-seconds16
209 +--ro spf-log
210 | +--ro event* [id]
211 | ...
212 +--ro lsp-log
213 | +--ro event* [id]
214 | ...
215 +--ro hostnames
216 | +--ro hostname* [system-id]
217 | ...
218 +--ro database
219 | +--ro level-db* [level]
220 | ...
221 +--ro local-rib
222 | +--ro route* [prefix]
223 | ...
224 +--ro system-counters
225 | +--ro level* [level]
226 | ...
227 +--ro protected-routes
228 | +--ro address-family-stats* [address-family prefix alternate]
229 | ...
230 +--ro unprotected-routes
231 | +--ro address-family-stats* [address-family prefix]
232 | ...
233 +--ro protection-statistics* [frr-protection-method]
234 | +--ro frr-protection-method string
235 | +--ro address-family-stats* [address-family]
236 | ...
237 +--rw topologies {multi-topology}?
238 | +--rw topology* [name]
239 | ...
240 +--rw interfaces
241 +--rw interface* [name]
242 ...
244 rpcs:
245 +---x clear-adjacency
246 | +---w input
247 | +---w routing-protocol-instance-name ->
248 /rt:routing/control-plane-protocols/control-plane-protocol/name
249 | +---w level? level
250 | +---w interface? if:interface-ref
251 +---x clear-database
252 +---w input
253 +---w routing-protocol-instance-name ->
254 /rt:routing/control-plane-protocols/control-plane-protocol/name
255 +---w level? level
257 notifications:
258 +---n database-overload
259 | +--ro routing-protocol-name? ->
260 /rt:routing/control-plane-protocols/control-plane-protocol/name
261 | +--ro isis-level? level
262 | +--ro overload? enumeration
263 +---n lsp-too-large
264 | +--ro routing-protocol-name? ->
265 /rt:routing/control-plane-protocols/control-plane-protocol/name
266 | +--ro isis-level? level
267 | +--ro interface-name? if:interface-ref
268 | +--ro interface-level? level
269 | +--ro extended-circuit-id? extended-circuit-id
270 | +--ro pdu-size? uint32
271 | +--ro lsp-id? lsp-id
272 +---n if-state-change
273 | +--ro routing-protocol-name? ->
274 /rt:routing/control-plane-protocols/control-plane-protocol/name
275 | +--ro isis-level? level
276 | +--ro interface-name? if:interface-ref
277 | +--ro interface-level? level
278 | +--ro extended-circuit-id? extended-circuit-id
279 | +--ro state? if-state-type
280 +---n corrupted-lsp-detected
281 | +--ro routing-protocol-name? ->
282 /rt:routing/control-plane-protocols/control-plane-protocol/name
283 | +--ro isis-level? level
284 | +--ro lsp-id? lsp-id
285 +---n attempt-to-exceed-max-sequence
286 | +--ro routing-protocol-name? ->
287 /rt:routing/control-plane-protocols/control-plane-protocol/name
288 | +--ro isis-level? level
289 | +--ro lsp-id? lsp-id
290 +---n id-len-mismatch
291 | +--ro routing-protocol-name? ->
292 /rt:routing/control-plane-protocols/control-plane-protocol/name
293 | +--ro isis-level? level
294 | +--ro interface-name? if:interface-ref
295 | +--ro interface-level? level
296 | +--ro extended-circuit-id? extended-circuit-id
297 | +--ro pdu-field-len? uint8
298 | +--ro raw-pdu? binary
299 +---n max-area-addresses-mismatch
300 | +--ro routing-protocol-name? ->
301 /rt:routing/control-plane-protocols/control-plane-protocol/name
302 | +--ro isis-level? level
303 | +--ro interface-name? if:interface-ref
304 | +--ro interface-level? level
305 | +--ro extended-circuit-id? extended-circuit-id
306 | +--ro max-area-addresses? uint8
307 | +--ro raw-pdu? binary
308 +---n own-lsp-purge
309 | +--ro routing-protocol-name? ->
310 /rt:routing/control-plane-protocols/control-plane-protocol/name
311 | +--ro isis-level? level
312 | +--ro interface-name? if:interface-ref
313 | +--ro interface-level? level
314 | +--ro extended-circuit-id? extended-circuit-id
315 | +--ro lsp-id? lsp-id
316 +---n sequence-number-skipped
317 | +--ro routing-protocol-name? ->
318 /rt:routing/control-plane-protocols/control-plane-protocol/name
319 | +--ro isis-level? level
320 | +--ro interface-name? if:interface-ref
321 | +--ro interface-level? level
322 | +--ro extended-circuit-id? extended-circuit-id
323 | +--ro lsp-id? lsp-id
324 +---n authentication-type-failure
325 | +--ro routing-protocol-name? ->
326 /rt:routing/control-plane-protocols/control-plane-protocol/name
327 | +--ro isis-level? level
328 | +--ro interface-name? if:interface-ref
329 | +--ro interface-level? level
330 | +--ro extended-circuit-id? extended-circuit-id
331 | +--ro raw-pdu? binary
332 +---n authentication-failure
333 | +--ro routing-protocol-name? ->
334 /rt:routing/control-plane-protocols/control-plane-protocol/name
335 | +--ro isis-level? level
336 | +--ro interface-name? if:interface-ref
337 | +--ro interface-level? level
338 | +--ro extended-circuit-id? extended-circuit-id
339 | +--ro raw-pdu? binary
340 +---n version-skew
341 | +--ro routing-protocol-name? ->
342 /rt:routing/control-plane-protocols/control-plane-protocol/name
343 | +--ro isis-level? level
344 | +--ro interface-name? if:interface-ref
345 | +--ro interface-level? level
346 | +--ro extended-circuit-id? extended-circuit-id
347 | +--ro protocol-version? uint8
348 | +--ro raw-pdu? binary
349 +---n area-mismatch
350 | +--ro routing-protocol-name? ->
351 /rt:routing/control-plane-protocols/control-plane-protocol/name
352 | +--ro isis-level? level
353 | +--ro interface-name? if:interface-ref
354 | +--ro interface-level? level
355 | +--ro extended-circuit-id? extended-circuit-id
356 | +--ro raw-pdu? binary
357 +---n rejected-adjacency
358 | +--ro routing-protocol-name? ->
359 /rt:routing/control-plane-protocols/control-plane-protocol/name
360 | +--ro isis-level? level
361 | +--ro interface-name? if:interface-ref
362 | +--ro interface-level? level
363 | +--ro extended-circuit-id? extended-circuit-id
364 | +--ro raw-pdu? binary
365 | +--ro reason? string
366 +---n protocols-supported-mismatch
367 | +--ro routing-protocol-name? ->
368 /rt:routing/control-plane-protocols/control-plane-protocol/name
369 | +--ro isis-level? level
370 | +--ro interface-name? if:interface-ref
371 | +--ro interface-level? level
372 | +--ro extended-circuit-id? extended-circuit-id
373 | +--ro raw-pdu? binary
374 | +--ro protocols* uint8
375 +---n lsp-error-detected
376 | +--ro routing-protocol-name? ->
377 /rt:routing/control-plane-protocols/control-plane-protocol/name
378 | +--ro isis-level? level
379 | +--ro interface-name? if:interface-ref
380 | +--ro interface-level? level
381 | +--ro extended-circuit-id? extended-circuit-id
382 | +--ro lsp-id? lsp-id
383 | +--ro raw-pdu? binary
384 | +--ro error-offset? uint32
385 | +--ro tlv-type? uint8
386 +---n adjacency-state-change
387 | +--ro routing-protocol-name? ->
388 /rt:routing/control-plane-protocols/control-plane-protocol/name
389 | +--ro isis-level? level
390 | +--ro interface-name? if:interface-ref
391 | +--ro interface-level? level
392 | +--ro extended-circuit-id? extended-circuit-id
393 | +--ro neighbor? string
394 | +--ro neighbor-system-id? system-id
395 | +--ro state? adj-state-type
396 | +--ro reason? string
397 +---n lsp-received
398 | +--ro routing-protocol-name? ->
399 /rt:routing/control-plane-protocols/control-plane-protocol/name
400 | +--ro isis-level? level
401 | +--ro interface-name? if:interface-ref
402 | +--ro interface-level? level
403 | +--ro extended-circuit-id? extended-circuit-id
404 | +--ro lsp-id? lsp-id
405 | +--ro sequence? uint32
406 | +--ro received-timestamp? yang:timestamp
407 | +--ro neighbor-system-id? system-id
408 +---n lsp-generation
409 +--ro routing-protocol-name? ->
410 /rt:routing/control-plane-protocols/control-plane-protocol/name
411 +--ro isis-level? level
412 +--ro lsp-id? lsp-id
413 +--ro sequence? uint32
414 +--ro send-timestamp? yang:timestamp
416 2.1. IS-IS Configuration
418 The IS-IS configuration container is divided in:
420 o Global parameters.
422 o Per interface configuration (see Section 2.4).
424 Additional modules may be created to support any additional
425 parameters. These additional modules MUST augment the ietf-isis
426 module.
428 The model implements features, thus some of the configuration
429 statement becomes optional. As an example, the ability to control
430 the administrative state of a particular IS-IS instance is optional.
431 By advertising the feature "admin-control", a device communicates to
432 the client that it supports the ability to shutdown a particular IS-
433 IS instance.
435 The global configuration contains usual IS-IS parameters such as lsp-
436 mtu, lsp-lifetime, lsp-refresh, default-metric...
438 2.2. Multitopology Parameters
440 The model supports multitopology (MT) IS-IS as defined in [RFC5120].
442 The "topologies" container is used to enable support of MT
443 extensions.
445 The "name" used in the topology list should refer to an existing RIB
446 of the device.
448 Some specific parameters could be defined on a per topology basis
449 both at global level and at interface level: for example, an
450 interface metric can be defined per topology.
452 Multiple address families (like IPv4 or IPv6) can also be activated
453 within the default topology. This can be achieved using the "afs"
454 container (requiring "nlpid-control" feature to be advertised).
456 2.3. Per-Level Parameters
458 Some parameters allow a per level configuration. In this case, the
459 parameter is modeled as a container with three configuration
460 locations:
462 o a top level container: corresponds to level-1-2, so the
463 configuration applies to both levels.
465 o a level-1 container: corresponds to level-1 specific parameters.
467 o a level-2 container: corresponds to level-2 specific parameters.
469 +--rw priority
470 | +--rw value? uint8
471 | +--rw level-1
472 | | +--rw value? uint8
473 | +--rw level-2
474 | +--rw value? uint8
476 Example:
478
479 250
480
481 100
482
483
484 200
485
486
488 An implementation SHOULD prefer a level specific parameter over a
489 level-all parameter. As example, if the priority is 100 for the
490 level-1, 200 for the level-2 and 250 for the top level configuration,
491 the implementation should use 100 for the level-1 and 200 for the
492 level-2.
494 Some parameters like "overload bit" and "route preference" are not
495 modeled to support a per level configuration. If an implementation
496 supports per level configuration for such parameter, this
497 implementation SHOULD augment the current model by adding both
498 level-1 and level-2 containers and SHOULD reuse existing
499 configuration groupings.
501 Example of augmentation:
503 augment "/rt:routing/" +
504 "rt:control-plane-protocols/rt:control-plane-protocol"+
505 "/isis:isis/isis:overload" {
506 when "rt:type = 'isis:isis'" {
507 description
508 "This augment IS-IS routing protocol when used";
509 }
510 description
511 "This augments IS-IS overload configuration
512 with per level configuration.";
514 container level-1 {
515 uses isis:overload-global-cfg;
516 description
517 "Level 1 configuration.";
518 }
519 container level-2 {
520 uses isis:overload-global-cfg;
521 description
522 "Level 2 configuration.";
523 }
524 }
526 If an implementation does not support per level configuration for a
527 parameter modeled with per level configuration, the implementation
528 SHOULD advertise a deviation to announce the non support of the
529 level-1 and level-2 containers.
531 Finally, if an implementation supports per level configuration but
532 does not support the level-1-2 configuration, it SHOULD also
533 advertise a deviation.
535 2.4. Per-Interface Parameters
537 The per-interface section of the IS-IS instance describes the
538 interface specific parameters.
540 The interface is modeled as a reference to an existing interface
541 defined in the "ietf-interfaces" YANG model ([RFC8343].
543 Each interface has some interface-specific parameters that may have a
544 different per level value as described in previous section. An
545 interface-specific parameter always override an IS-IS global
546 parameter.
548 Some parameters like hello-padding are defined as containers to allow
549 easy extension by vendor specific modules.
551 +--rw interfaces
552 +--rw interface* [name]
553 +--rw name if:interface-ref
554 +--rw level-type? level
555 +--rw lsp-pacing-interval?
556 rt-types:timer-value-milliseconds
557 +--rw lsp-retransmit-interval?
558 rt-types:timer-value-seconds16
559 +--rw passive? boolean
560 +--rw csnp-interval?
561 rt-types:timer-value-seconds16
562 +--rw hello-padding
563 | +--rw enable? boolean
564 +--rw mesh-group-enable? mesh-group-state
565 +--rw mesh-group? uint8
566 +--rw interface-type? interface-type
567 +--rw enable? boolean {admin-control}?
568 +--rw tag* uint32 {prefix-tag}?
569 +--rw tag64* uint64 {prefix-tag64}?
570 +--rw node-flag? boolean {node-flag}?
571 +--rw hello-authentication
572 | +--rw (authentication-type)?
573 | | +--:(key-chain) {key-chain}?
574 | | | +--rw key-chain? key-chain:key-chain-ref
575 | | +--:(password)
576 | | +--rw key? string
577 | | +--rw crypto-algorithm? identityref
578 | +--rw level-1
579 | | +--rw (authentication-type)?
580 | | +--:(key-chain) {key-chain}?
581 | | | +--rw key-chain?
582 key-chain:key-chain-ref
583 | | +--:(password)
584 | | +--rw key? string
585 | | +--rw crypto-algorithm? identityref
586 | +--rw level-2
587 | +--rw (authentication-type)?
588 | +--:(key-chain) {key-chain}?
589 | | +--rw key-chain?
590 key-chain:key-chain-ref
591 | +--:(password)
592 | +--rw key? string
593 | +--rw crypto-algorithm? identityref
594 +--rw hello-interval
595 | +--rw value? rt-types:timer-value-seconds16
596 | +--rw level-1
597 | | +--rw value? rt-types:timer-value-seconds16
598 | +--rw level-2
599 | +--rw value? rt-types:timer-value-seconds16
600 +--rw hello-multiplier
601 | +--rw value? uint16
602 | +--rw level-1
603 | | +--rw value? uint16
604 | +--rw level-2
605 | +--rw value? uint16
606 +--rw priority
607 | +--rw value? uint8
608 | +--rw level-1
609 | | +--rw value? uint8
610 | +--rw level-2
611 | +--rw value? uint8
612 +--rw metric
613 | +--rw value? wide-metric
614 | +--rw level-1
615 | | +--rw value? wide-metric
616 | +--rw level-2
617 | +--rw value? wide-metric
618 +--rw bfd {bfd}?
619 | +--rw enable? boolean
620 | +--rw local-multiplier? multiplier
621 | +--rw (interval-config-type)?
622 | +--:(tx-rx-intervals)
623 | | +--rw desired-min-tx-interval? uint32
624 | | +--rw required-min-rx-interval? uint32
625 | +--:(single-interval) {single-minimum-interval}?
626 | +--rw min-interval? uint32
627 +--rw address-families {nlpid-control}?
628 | +--rw address-family-list* [address-family]
629 | +--rw address-family iana-rt-types:address-family
630 +--rw mpls
631 | +--rw ldp
632 | +--rw igp-sync? boolean {ldp-igp-sync}?
633 +--rw fast-reroute {fast-reroute}?
634 | +--rw lfa {lfa}?
635 | +--rw candidate-enable? boolean
636 | +--rw enable? boolean
637 | +--rw remote-lfa {remote-lfa}?
638 | | +--rw enable? boolean
639 | +--rw level-1
640 | | +--rw candidate-enable? boolean
641 | | +--rw enable? boolean
642 | | +--rw remote-lfa {remote-lfa}?
643 | | +--rw enable? boolean
644 | +--rw level-2
645 | +--rw candidate-enable? boolean
646 | +--rw enable? boolean
647 | +--rw remote-lfa {remote-lfa}?
648 | +--rw enable? boolean
649 +--ro adjacencies
650 | +--ro adjacency* []
651 | +--ro neighbor-sys-type? level
652 | +--ro neighbor-sysid? system-id
653 | +--ro neighbor-extended-circuit-id?
654 extended-circuit-id
655 | +--ro neighbor-snpa? snpa
656 | +--ro usage? level
657 | +--ro hold-timer?
658 rt-types:timer-value-seconds16
659 | +--ro neighbor-priority? uint8
660 | +--ro lastuptime? yang:timestamp
661 | +--ro state? adj-state-type
662 +--ro event-counters
663 | +--ro adjacency-changes? uint32
664 | +--ro adjacency-number? uint32
665 | +--ro init-fails? uint32
666 | +--ro adjacency-rejects? uint32
667 | +--ro id-len-mismatch? uint32
668 | +--ro max-area-addresses-mismatch? uint32
669 | +--ro authentication-type-fails? uint32
670 | +--ro authentication-fails? uint32
671 | +--ro lan-dis-changes? uint32
672 +--ro packet-counters
673 | +--ro level* [level]
674 | +--ro level level-number
675 | +--ro iih
676 | | +--ro in? uint32
677 | | +--ro out? uint32
678 | +--ro ish
679 | | +--ro in? uint32
680 | | +--ro out? uint32
681 | +--ro esh
682 | | +--ro in? uint32
683 | | +--ro out? uint32
684 | +--ro lsp
685 | | +--ro in? uint32
686 | | +--ro out? uint32
687 | +--ro psnp
688 | | +--ro in? uint32
689 | | +--ro out? uint32
690 | +--ro csnp
691 | | +--ro in? uint32
692 | | +--ro out? uint32
693 | +--ro unknown
694 | +--ro in? uint32
695 | +--ro out? uint32
696 +--rw topologies {multi-topology}?
697 +--rw topology* [name]
698 +--rw name ->
699 ../../../../../../../../rt:ribs/rib/name
700 +--rw metric
701 +--rw value? wide-metric
702 +--rw level-1
703 | +--rw value? wide-metric
704 +--rw level-2
705 +--rw value? wide-metric
707 rpcs:
708 +---x clear-adjacency
709 | +---w input
710 | +---w routing-protocol-instance-name ->
711 /rt:routing/control-plane-protocols/control-plane-protocol/name
712 | +---w level? level
713 | +---w interface? if:interface-ref
714 +---x clear-database
715 +---w input
716 +---w routing-protocol-instance-name ->
717 /rt:routing/control-plane-protocols/control-plane-protocol/name
718 +---w level? level
720 notifications:
721 +---n database-overload
722 | +--ro routing-protocol-name? ->
723 /rt:routing/control-plane-protocols/control-plane-protocol/name
724 | +--ro isis-level? level
725 | +--ro overload? enumeration
726 +---n lsp-too-large
727 | +--ro routing-protocol-name? ->
728 /rt:routing/control-plane-protocols/control-plane-protocol/name
729 | +--ro isis-level? level
730 | +--ro interface-name? if:interface-ref
731 | +--ro interface-level? level
732 | +--ro extended-circuit-id? extended-circuit-id
733 | +--ro pdu-size? uint32
734 | +--ro lsp-id? lsp-id
735 +---n if-state-change
736 | +--ro routing-protocol-name? ->
737 /rt:routing/control-plane-protocols/control-plane-protocol/name
738 | +--ro isis-level? level
739 | +--ro interface-name? if:interface-ref
740 | +--ro interface-level? level
741 | +--ro extended-circuit-id? extended-circuit-id
742 | +--ro state? if-state-type
743 +---n corrupted-lsp-detected
744 | +--ro routing-protocol-name? ->
745 /rt:routing/control-plane-protocols/control-plane-protocol/name
746 | +--ro isis-level? level
747 | +--ro lsp-id? lsp-id
748 +---n attempt-to-exceed-max-sequence
749 | +--ro routing-protocol-name? ->
750 /rt:routing/control-plane-protocols/control-plane-protocol/name
751 | +--ro isis-level? level
752 | +--ro lsp-id? lsp-id
753 +---n id-len-mismatch
754 | +--ro routing-protocol-name? ->
755 /rt:routing/control-plane-protocols/control-plane-protocol/name
756 | +--ro isis-level? level
757 | +--ro interface-name? if:interface-ref
758 | +--ro interface-level? level
759 | +--ro extended-circuit-id? extended-circuit-id
760 | +--ro pdu-field-len? uint8
761 | +--ro raw-pdu? binary
762 +---n max-area-addresses-mismatch
763 | +--ro routing-protocol-name? ->
764 /rt:routing/control-plane-protocols/control-plane-protocol/name
765 | +--ro isis-level? level
766 | +--ro interface-name? if:interface-ref
767 | +--ro interface-level? level
768 | +--ro extended-circuit-id? extended-circuit-id
769 | +--ro max-area-addresses? uint8
770 | +--ro raw-pdu? binary
771 +---n own-lsp-purge
772 | +--ro routing-protocol-name? ->
773 /rt:routing/control-plane-protocols/control-plane-protocol/name
774 | +--ro isis-level? level
775 | +--ro interface-name? if:interface-ref
776 | +--ro interface-level? level
777 | +--ro extended-circuit-id? extended-circuit-id
778 | +--ro lsp-id? lsp-id
779 +---n sequence-number-skipped
780 | +--ro routing-protocol-name? ->
781 /rt:routing/control-plane-protocols/control-plane-protocol/name
782 | +--ro isis-level? level
783 | +--ro interface-name? if:interface-ref
784 | +--ro interface-level? level
785 | +--ro extended-circuit-id? extended-circuit-id
786 | +--ro lsp-id? lsp-id
787 +---n authentication-type-failure
788 | +--ro routing-protocol-name? ->
789 /rt:routing/control-plane-protocols/control-plane-protocol/name
790 | +--ro isis-level? level
791 | +--ro interface-name? if:interface-ref
792 | +--ro interface-level? level
793 | +--ro extended-circuit-id? extended-circuit-id
794 | +--ro raw-pdu? binary
795 +---n authentication-failure
796 | +--ro routing-protocol-name? ->
797 /rt:routing/control-plane-protocols/control-plane-protocol/name
798 | +--ro isis-level? level
799 | +--ro interface-name? if:interface-ref
800 | +--ro interface-level? level
801 | +--ro extended-circuit-id? extended-circuit-id
802 | +--ro raw-pdu? binary
803 +---n version-skew
804 | +--ro routing-protocol-name? ->
805 /rt:routing/control-plane-protocols/control-plane-protocol/name
806 | +--ro isis-level? level
807 | +--ro interface-name? if:interface-ref
808 | +--ro interface-level? level
809 | +--ro extended-circuit-id? extended-circuit-id
810 | +--ro protocol-version? uint8
811 | +--ro raw-pdu? binary
812 +---n area-mismatch
813 | +--ro routing-protocol-name? ->
814 /rt:routing/control-plane-protocols/control-plane-protocol/name
815 | +--ro isis-level? level
816 | +--ro interface-name? if:interface-ref
817 | +--ro interface-level? level
818 | +--ro extended-circuit-id? extended-circuit-id
819 | +--ro raw-pdu? binary
820 +---n rejected-adjacency
821 | +--ro routing-protocol-name? ->
822 /rt:routing/control-plane-protocols/control-plane-protocol/name
823 | +--ro isis-level? level
824 | +--ro interface-name? if:interface-ref
825 | +--ro interface-level? level
826 | +--ro extended-circuit-id? extended-circuit-id
827 | +--ro raw-pdu? binary
828 | +--ro reason? string
829 +---n protocols-supported-mismatch
830 | +--ro routing-protocol-name? ->
831 /rt:routing/control-plane-protocols/control-plane-protocol/name
832 | +--ro isis-level? level
833 | +--ro interface-name? if:interface-ref
834 | +--ro interface-level? level
835 | +--ro extended-circuit-id? extended-circuit-id
836 | +--ro raw-pdu? binary
837 | +--ro protocols* uint8
838 +---n lsp-error-detected
839 | +--ro routing-protocol-name? ->
840 /rt:routing/control-plane-protocols/control-plane-protocol/name
841 | +--ro isis-level? level
842 | +--ro interface-name? if:interface-ref
843 | +--ro interface-level? level
844 | +--ro extended-circuit-id? extended-circuit-id
845 | +--ro lsp-id? lsp-id
846 | +--ro raw-pdu? binary
847 | +--ro error-offset? uint32
848 | +--ro tlv-type? uint8
849 +---n adjacency-state-change
850 | +--ro routing-protocol-name? ->
851 /rt:routing/control-plane-protocols/control-plane-protocol/name
852 | +--ro isis-level? level
853 | +--ro interface-name? if:interface-ref
854 | +--ro interface-level? level
855 | +--ro extended-circuit-id? extended-circuit-id
856 | +--ro neighbor? string
857 | +--ro neighbor-system-id? system-id
858 | +--ro state? adj-state-type
859 | +--ro reason? string
860 +---n lsp-received
861 | +--ro routing-protocol-name? ->
862 /rt:routing/control-plane-protocols/control-plane-protocol/name
863 | +--ro isis-level? level
864 | +--ro interface-name? if:interface-ref
865 | +--ro interface-level? level
866 | +--ro extended-circuit-id? extended-circuit-id
867 | +--ro lsp-id? lsp-id
868 | +--ro sequence? uint32
869 | +--ro received-timestamp? yang:timestamp
870 | +--ro neighbor-system-id? system-id
871 +---n lsp-generation
872 +--ro routing-protocol-name? ->
873 /rt:routing/control-plane-protocols/control-plane-protocol/name
874 +--ro isis-level? level
875 +--ro lsp-id? lsp-id
876 +--ro sequence? uint32
877 +--ro send-timestamp? yang:timestamp
879 2.5. Authentication Parameters
881 The module enables authentication configuration through the IETF key-
882 chain module ([RFC8177]). The IS-IS module imports the "ietf-key-
883 chain" module and reuses some groupings to allow global and per
884 interface configuration of authentication. If a global
885 authentication is configured, an implementation SHOULD authenticate
886 PSNPs, CSNPs and LSPs with the authentication parameters supplied.
887 The authentication of hello PDUs can be activated on a per interface
888 basis.
890 2.6. IGP/LDP synchronization
892 [RFC5443] defines a mechanism where IGP needs to be synchronized with
893 LDP. An "ldp-igp-sync" feature has been defined in the model to
894 support this mechanism. The "mpls/ldp/igp-sync" leaf under
895 "interface" allows activation of the mechanism on a per interface
896 basis. The "mpls/ldp/igp-sync" container in the global configuration
897 is empty on purpose and is not required for the activation. The goal
898 of this empty container is to allow easy augmentation with additional
899 parameters like timers for example.
901 2.7. ISO parameters
903 As IS-IS protocol is based on ISO protocol suite, some ISO parameters
904 may be required.
906 This module augments interface configuration model to support ISO
907 configuration parameters.
909 The clns-mtu can be defined under the interface.
911 2.8. IP FRR
913 This YANG model supports LFA ([RFC5286]) and remote LFA ([RFC7490])
914 as IP FRR techniques. The "fast-reroute" container may be augmented
915 by other models to support other IPFRR flavors (MRT, TILFA ...).
917 The current version of the model supports activation of LFA and
918 remote LFA at interface only. The global "lfa" container is present
919 but kept empty to allow augmentation with vendor specific properties
920 like policies.
922 Remote LFA is considered as a child of LFA. Remote LFA cannot be
923 enabled if LFA is not enabled.
925 The "candidate-disabled" allows to mark an interface to not be used
926 as a backup.
928 2.9. Operational States
930 Operational states are provided in the module in various places:
932 o system-counters: provides statistical informations about the
933 global system.
935 o interface : provides configuration state informations for each
936 interface.
938 o adjacencies: provides state informations about current IS-IS
939 adjacencies.
941 o spf-log: provides informations about SPF events on the node. This
942 SHOULD be implemented as a wrapping buffer.
944 o lsp-log: provides informations about LSP events on the node
945 (reception of an LSP or modification of local LSP). This SHOULD
946 be implemented as a wrapping buffer and an implementation MAY
947 decide to log refresh LSPs or not.
949 o local-rib: provides the IS-IS internal routing table view.
951 o database: provides details on the current LSDB.
953 o hostnames: provides informations about system-id to hostname
954 mappings.
956 o fast-reroute: provides informations about IP FRR.
958 3. RPC Operations
960 The "ietf-isis" module defines two RPC operations:
962 o clear-database: reset the content of a particular IS-IS database
963 and restart database synchronization with the neighbors.
965 o clear-adjacency: restart a particular set of IS-IS adjacencies.
967 4. Notifications
969 The "ietf-isis" module introduces some notifications :
971 database-overload: raised when overload condition is changed.
973 lsp-too-large: raised when the system tries to propagate a too
974 large PDU.
976 if-state-change: raise when the state of an interface changes.
978 corrupted-lsp-detected: raised when the system find that an LSP
979 that was stored in memory has become corrupted.
981 attempt-to-exceed-max-sequence: This notification is sent when the
982 system wraps the 32-bit sequence counter of an LSP.
984 id-len-mismatch: This notification is sent when we receive a PDU
985 with a different value for the System ID length.
987 max-area-addresses-mismatch: This notification is sent when we
988 receive a PDU with a different value for the Maximum Area
989 Addresses.
991 own-lsp-purge: This notification is sent when the system receives
992 a PDU with its own system ID and zero age.
994 sequence-number-skipped: This notification is sent when the system
995 receives a PDU with its own system ID and different contents. The
996 system has to reissue the LSP with a higher sequence number.
998 authentication-type-failure: This notification is sent when the
999 system receives a PDU with the wrong authentication type field.
1001 authentication-failure: This notification is sent when the system
1002 receives a PDU with the wrong authentication information.
1004 version-skew: This notification is sent when the system receives a
1005 PDU with a different protocol version number.
1007 area-mismatch: This notification is sent when the system receives
1008 a Hello PDU from an IS that does not share any area address.
1010 rejected-adjacency: This notification is sent when the system
1011 receives a Hello PDU from an IS but does not establish an
1012 adjacency for some reason.
1014 protocols-supported-mismatch: This notification is sent when the
1015 system receives a non pseudonode LSP that has no matching protocol
1016 supported.
1018 lsp-error-detected: This notification is sent when the system
1019 receives a LSP with a parse error.
1021 adjacency-state-change: This notification is sent when an IS-IS
1022 adjacency moves to Up state or to Down state.
1024 lsp-received: This notification is sent when a LSP is received.
1026 lsp-generation: This notification is sent when a LSP is
1027 regenerated.
1029 5. Interaction with Other YANG Modules
1031 The "isis" configuration container augments the "/rt:routing/
1032 rt:control-plane-protocols/control-plane-protocol" container of the
1033 ietf-routing [RFC8349] module by defining IS-IS specific parameters.
1035 The "isis" module augments "/if:interfaces/if:interface" defined by
1036 [RFC8343] with ISO specific parameters.
1038 The "isis" operational state container augments the "/rt:routing-
1039 state/rt:control-plane-protocols/control-plane-protocol" container of
1040 the ietf-routing module by defining IS-IS specific operational
1041 states.
1043 Some IS-IS specific routes attributes are added to route objects of
1044 the ietf-routing module by augmenting "/rt:routing-
1045 state/rt:ribs/rt:rib/rt:routes/rt:route".
1047 The modules defined in this document use some groupings from ietf-
1048 keychain [RFC8177].
1050 The module reuses types from [RFC6991] and [RFC8294].
1052 To support BFD for fast detection, the module relies on
1053 [I-D.ietf-bfd-yang].
1055 6. IS-IS YANG Module
1057 file "ietf-isis@2018-12-11.yang"
1059 module ietf-isis {
1060 yang-version 1.1;
1061 namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
1063 prefix isis;
1065 import ietf-routing {
1066 prefix "rt";
1067 reference "RFC 8349 - A YANG Data Model for Routing
1068 Management (NMDA Version)";
1069 }
1071 import ietf-inet-types {
1072 prefix inet;
1073 reference "RFC 6991 - Common YANG Data Types";
1074 }
1076 import ietf-yang-types {
1077 prefix yang;
1078 reference "RFC 6991 - Common YANG Data Types";
1079 }
1081 import ietf-interfaces {
1082 prefix "if";
1083 reference "RFC 8343 - A YANG Data Model for Interface
1084 Management (NDMA Version)";
1085 }
1087 import ietf-key-chain {
1088 prefix "key-chain";
1089 reference "RFC 8177 - YANG Data Model for Key Chains";
1090 }
1092 import ietf-routing-types {
1093 prefix "rt-types";
1094 reference "RFC 8294 - Common YANG Data Types for the
1095 Routing Area";
1096 }
1098 import iana-routing-types {
1099 prefix "iana-rt-types";
1100 reference "RFC 8294 - Common YANG Data Types for the
1101 Routing Area";
1102 }
1103 import ietf-bfd-types {
1104 prefix "bfd-types";
1105 reference "RFC YYYY - YANG Data Model for Bidirectional
1106 Forwarding Detection (BFD).
1108 -- Note to RFC Editor Please replace YYYY with published RFC number for
1109 draft-ietf-bfd-yang.";
1111 }
1113 organization
1114 "IETF LSR Working Group";
1116 contact
1117 "WG List: <mailto:lsr@ietf.org>
1119 Editor: Stephane Litkowski
1120 <mailto:stephane.litkowski@orange.com>
1122 Derek Yeung
1123 <mailto:derek@arrcus.com>
1124 Acee Lindem
1125 <mailto:acee@cisco.com>
1126 Jeffrey Zhang
1127 <mailto:zzhang@juniper.net>
1128 Ladislav Lhotka
1129 <mailto:llhotka@nic.cz>
1130 Yi Yang
1131 <mailto:yiya@cisco.com>
1132 Dean Bogdanovic
1133 <mailto:deanb@juniper.net>
1134 Kiran Agrahara Sreenivasa
1135 <mailto:kkoushik@brocade.com>
1136 Yingzhen Qu
1137 <mailto:yiqu@cisco.com>
1138 Jeff Tantsura
1139 <mailto:jefftant.ietf@gmail.com>
1141 ";
1143 description
1144 "This YANG module defines the generic configuration and
1145 operational state for the IS-IS protocol.
1146 It is intended that the module
1147 will be extended by vendors to define vendor-specific
1148 IS-IS configuration parameters and policies,
1149 for example route maps or route policies.
1151 This YANG model conforms to the Network Management
1152 Datastore Architecture (NDMA) as described in RFC 8242.
1154 Copyright (c) 2018 IETF Trust and the persons identified as
1155 authors of the code. All rights reserved.
1157 Redistribution and use in source and binary forms, with or
1158 without modification, is permitted pursuant to, and subject
1159 to the license terms contained in, the Simplified BSD License
1160 set forth in Section 4.c of the IETF Trust's Legal Provisions
1161 Relating to IETF Documents
1162 (http://trustee.ietf.org/license-info).
1164 This version of this YANG module is part of RFC XXXX;
1165 see the RFC itself for full legal notices.";
1167 revision 2018-12-11 {
1168 description
1169 "Initial revision.";
1170 reference "RFC XXXX";
1171 }
1173 /* Identities */
1175 identity isis {
1176 base rt:routing-protocol;
1177 description "Identity for the IS-IS routing protocol.";
1178 }
1180 identity lsp-log-reason {
1181 description "Base identity for an LSP change log reason.";
1182 }
1184 identity refresh {
1185 base lsp-log-reason;
1186 description
1187 "Identity used when the LSP log reason is
1188 a refresh LSP received.";
1189 }
1191 identity content-change {
1192 base lsp-log-reason;
1193 description
1194 "Identity used when the LSP log reason is
1195 a change in the content of the LSP.";
1196 }
1198 /* Feature definitions */
1199 feature poi-tlv {
1200 description "Support of Purge Originator Identification.";
1201 reference "RFC 6232 - Purge Originator Identification TLV
1202 for IS-IS";
1203 }
1204 feature ietf-spf-delay {
1205 description
1206 "Support for IETF SPF delay algorithm.";
1207 reference "RFC 8405 - SPF Back-off algorithm for link
1208 state IGPs";
1209 }
1210 feature bfd {
1211 description
1212 "Support for BFD detection of IS-IS neighbor reachability.";
1213 reference "RFC 5880 - Bidirectional Forwarding Detection (BFD)
1214 RFC 5881 - Bidirectional Forwarding Detection
1215 (BFD) for IPv4 and IPv6 (Single Hop)";
1216 }
1217 feature key-chain {
1218 description
1219 "Support of keychain for authentication.";
1220 reference "RFC8177 - YANG Data Model for Key Chains";
1221 }
1222 feature node-flag {
1223 description
1224 "Support for node-flag for IS-IS prefixes.";
1225 reference "RFC7794 - IS-IS Prefix Attributes for
1226 Extended IP and IPv6 Reachability";
1227 }
1228 feature node-tag {
1229 description
1230 "Support for node admin tag for IS-IS routing instances.";
1231 reference "RFC7917 - Advertising Node Administrative Tags
1232 in IS-IS";
1233 }
1234 feature ldp-igp-sync {
1235 description
1236 "LDP IGP synchronization.";
1237 reference "RFC5443 - LDP IGP Synchronization.";
1238 }
1239 feature fast-reroute {
1240 description
1241 "Support for IP Fast Reroute (IP-FRR).";
1242 }
1243 feature nsr {
1244 description
1245 "Non-Stop-Routing (NSR) support.";
1246 }
1247 feature lfa {
1248 description
1249 "Support for Loop-Free Alternates (LFAs).";
1250 reference "RFC5286 - Basic Specification of IP Fast-Reroute:
1251 Loop-free Alternates";
1252 }
1253 feature remote-lfa {
1254 description
1255 "Support for Remote Loop-Free Alternates (R-LFAs).";
1256 reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute";
1257 }
1259 feature overload-max-metric {
1260 description
1261 "Support of overload by setting
1262 all links to max metric.";
1263 }
1264 feature prefix-tag {
1265 description
1266 "Support for 32-bit prefix tags";
1267 reference "RFC5130 - A Policy Control Mechanism in
1268 IS-IS Using Administrative Tags";
1269 }
1270 feature prefix-tag64 {
1271 description
1272 "Support for 64-bit prefix tags";
1273 reference "RFC5130 - A Policy Control Mechanism in
1274 IS-IS Using Administrative Tags";
1275 }
1276 feature auto-cost {
1277 description
1278 "Calculate IS-IS interface metric according to
1279 reference bandwidth.";
1280 }
1282 feature te-rid {
1283 description
1284 "Traffic-Engineering Router-ID.";
1285 reference "RFC5305 - IS-IS Extensions for Traffic Engineering
1286 RFC6119 - IPv6 Traffic Engineering in IS-IS";
1287 }
1288 feature max-ecmp {
1289 description
1290 "Setting maximum number of ECMP paths.";
1291 }
1292 feature multi-topology {
1293 description
1294 "Support for Multiple-Topology Routing (MTR).";
1296 reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS";
1297 }
1298 feature nlpid-control {
1299 description
1300 "This feature controls the advertisement
1301 of support NLPID within IS-IS configuration.";
1302 }
1303 feature graceful-restart {
1304 description
1305 "IS-IS Graceful restart support.";
1306 reference "RFC5306 - Restart Signaling in IS-IS";
1307 }
1309 feature lsp-refresh {
1310 description
1311 "Configuration of LSP refresh interval.";
1312 }
1314 feature maximum-area-addresses {
1315 description
1316 "Support of maximum-area-addresses config.";
1317 }
1319 feature admin-control {
1320 description
1321 "Administrative control of the protocol state.";
1322 }
1324 /* Type definitions */
1326 typedef circuit-id {
1327 type uint8;
1328 description
1329 "This type defines the circuit ID
1330 associated with an interface.";
1331 }
1333 typedef extended-circuit-id {
1334 type uint32;
1335 description
1336 "This type defines the extended circuit ID
1337 associated with an interface.";
1338 }
1340 typedef interface-type {
1341 type enumeration {
1342 enum broadcast {
1343 description
1344 "Broadcast interface type.";
1345 }
1346 enum point-to-point {
1347 description
1348 "Point-to-point interface type.";
1349 }
1350 }
1351 description
1352 "This type defines the type of adjacency
1353 to be established on the interface.
1354 The interface-type determines the type
1355 of hello message that is used.";
1357 }
1359 typedef level {
1360 type enumeration {
1361 enum "level-1" {
1362 description
1363 "This enum indicates L1-only capability.";
1364 }
1365 enum "level-2" {
1366 description
1367 "This enum indicates L2-only capability.";
1368 }
1369 enum "level-all" {
1370 description
1371 "This enum indicates capability for both levels.";
1372 }
1373 }
1374 default "level-all";
1375 description
1376 "This type defines IS-IS level of an object.";
1378 }
1380 typedef adj-state-type {
1381 type enumeration {
1382 enum "up" {
1383 description
1384 "State indicates the adjacency is established.";
1385 }
1386 enum "down" {
1387 description
1388 "State indicates the adjacency is NOT established.";
1389 }
1390 enum "init" {
1391 description
1392 "State indicates the adjacency is establishing.";
1393 }
1394 enum "failed" {
1395 description
1396 "State indicates the adjacency is failed.";
1397 }
1398 }
1399 description
1400 "This type defines states of an adjacency";
1401 }
1403 typedef if-state-type {
1404 type enumeration {
1405 enum "up" {
1406 description "Up state.";
1408 }
1409 enum "down" {
1410 description "Down state";
1411 }
1412 }
1413 description
1414 "This type defines the state of an interface";
1415 }
1417 typedef level-number {
1418 type uint8 {
1419 range "1 .. 2";
1420 }
1421 description
1422 "This type defines the current IS-IS level.";
1423 }
1425 typedef lsp-id {
1426 type string {
1427 pattern
1428 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
1429 +'{4}\.[0-9][0-9]-[0-9][0-9]';
1430 }
1431 description
1432 "This type defines the IS-IS LSP ID format using a
1433 pattern, An example LSP ID is 0143.0438.AEF0.02-01";
1434 }
1436 typedef area-address {
1437 type string {
1438 pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,3}';
1439 }
1440 description
1441 "This type defines the area address format.";
1442 }
1444 typedef snpa {
1445 type string {
1446 length "0 .. 20";
1447 }
1448 description
1449 "This type defines the Subnetwork Point
1450 of Attachement (SNPA) format.";
1451 }
1453 typedef system-id {
1454 type string {
1455 pattern
1456 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
1457 }
1458 description
1459 "This type defines IS-IS system-id using pattern,
1460 An example system-id is 0143.0438.AEF0";
1461 }
1462 typedef extended-system-id {
1463 type string {
1464 pattern
1465 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9][0-9]';
1466 }
1467 description
1468 "This type defines IS-IS system-id using pattern. The extended
1469 system id contains the pseudonode number in addition to the
1470 system id.
1471 An example system-id is 0143.0438.AEF0.00";
1472 }
1474 typedef wide-metric {
1475 type uint32 {
1476 range "0 .. 16777215";
1477 }
1478 description
1479 "This type defines wide style format of IS-IS metric.";
1480 }
1482 typedef std-metric {
1483 type uint8 {
1484 range "0 .. 63";
1485 }
1486 description
1487 "This type defines old style format of IS-IS metric.";
1489 }
1491 typedef mesh-group-state {
1492 type enumeration {
1493 enum "mesh-inactive" {
1494 description
1495 "Interface is not part of a mesh group.";
1496 }
1497 enum "mesh-set" {
1498 description
1499 "Interface is part of a mesh group.";
1500 }
1501 enum "mesh-blocked" {
1502 description
1503 "LSPs must not be flooded over this interface.";
1504 }
1505 }
1506 description
1507 "This type describes mesh group state of an interface";
1508 }
1510 /* Grouping for notifications */
1512 grouping notification-instance-hdr {
1513 description
1514 "Instance specific IS-IS notification data grouping";
1515 leaf routing-protocol-name {
1516 type leafref {
1517 path "/rt:routing/rt:control-plane-protocols/"
1518 + "rt:control-plane-protocol/rt:name";
1519 }
1520 description "Name of the IS-IS instance.";
1521 }
1522 leaf isis-level {
1523 type level;
1524 description "IS-IS level of the instance.";
1525 }
1526 }
1528 grouping notification-interface-hdr {
1529 description
1530 "Interface specific IS-IS notification data grouping";
1531 leaf interface-name {
1532 type if:interface-ref;
1533 description "IS-IS interface name";
1534 }
1535 leaf interface-level {
1536 type level;
1537 description "IS-IS level of the interface.";
1538 }
1539 leaf extended-circuit-id {
1540 type extended-circuit-id;
1541 description "Eextended circuit-id of the interface.";
1542 }
1543 }
1545 /* Groupings for IP Fast Reroute */
1547 grouping instance-fast-reroute-config {
1548 description
1549 "This group defines global configuration of IP
1550 Fast ReRoute (FRR).";
1551 container fast-reroute {
1552 if-feature fast-reroute;
1553 description
1554 "This container may be augmented with global
1555 parameters for IP-FRR.";
1556 container lfa {
1557 if-feature lfa;
1558 description
1559 "This container may be augmented with
1560 global parameters for Loop-Free Alternatives (LFA).
1561 Container creation has no effect on LFA activation.";
1562 }
1563 }
1564 }
1566 grouping interface-lfa-config {
1567 leaf candidate-enable {
1568 type boolean;
1569 default true;
1570 description
1571 "Enable the interface to be used as backup.";
1572 }
1573 leaf enable {
1574 type boolean;
1575 default false;
1576 description
1577 "Activates LFA - Per-prefix LFA computation
1578 is assumed.";
1579 }
1580 container remote-lfa {
1581 if-feature remote-lfa;
1582 leaf enable {
1583 type boolean;
1584 default false;
1585 description
1586 "Activates Remote LFA (R-LFA).";
1587 }
1588 description
1589 "Remote LFA configuration.";
1590 }
1591 description "Grouping for LFA interface configuration";
1592 }
1593 grouping interface-fast-reroute-config {
1594 description
1595 "This group defines interface configuration of IP-FRR.";
1596 container fast-reroute {
1597 if-feature fast-reroute;
1598 container lfa {
1599 if-feature lfa;
1600 uses interface-lfa-config;
1601 container level-1 {
1602 uses interface-lfa-config;
1603 description
1604 "LFA level 1 config";
1605 }
1606 container level-2 {
1607 uses interface-lfa-config;
1608 description
1609 "LFA level 2 config";
1610 }
1611 description
1612 "LFA configuration.";
1613 }
1614 description
1615 "Interface IP Fast-reroute configuration.";
1616 }
1617 }
1618 grouping instance-fast-reroute-state {
1619 description "IPFRR state data grouping";
1621 container protected-routes {
1622 config false;
1623 list address-family-stats {
1624 key "address-family prefix alternate";
1626 leaf address-family {
1627 type iana-rt-types:address-family;
1628 description
1629 "Address-family";
1630 }
1631 leaf prefix {
1632 type string;
1633 description
1634 "Protected prefix.";
1635 }
1636 leaf alternate {
1637 type string;
1638 description
1639 "Alternate nexthop for the prefix.";
1640 }
1641 leaf alternate-type {
1642 type enumeration {
1643 enum equal-cost {
1644 description
1645 "ECMP alternate.";
1646 }
1647 enum lfa {
1648 description
1649 "LFA alternate.";
1650 }
1651 enum remote-lfa {
1652 description
1653 "Remote LFA alternate.";
1654 }
1655 enum tunnel {
1656 description
1657 "Tunnel based alternate
1658 (like RSVP-TE or GRE).";
1659 }
1660 enum ti-lfa {
1661 description
1662 "TI-LFA alternate.";
1663 }
1664 enum mrt {
1665 description
1666 "MRT alternate.";
1667 }
1668 enum other {
1669 description
1670 "Unknown alternate type.";
1671 }
1672 }
1673 description
1674 "Type of alternate.";
1675 }
1676 leaf best {
1677 type boolean;
1678 description
1679 "Indicates if the alternate is the preferred.";
1681 }
1682 leaf non-best-reason {
1683 type string;
1684 description
1685 "Information field to describe why the alternate
1686 is not best.";
1687 }
1688 leaf protection-available {
1689 type bits {
1690 bit node-protect {
1691 position 0;
1692 description
1693 "Node protection available.";
1694 }
1695 bit link-protect {
1696 position 1;
1697 description
1698 "Link protection available.";
1699 }
1700 bit srlg-protect {
1701 position 2;
1702 description
1703 "SRLG protection available.";
1704 }
1705 bit downstream-protect {
1706 position 3;
1707 description
1708 "Downstream protection available.";
1709 }
1710 bit other {
1711 position 4;
1712 description
1713 "Other protection available.";
1714 }
1715 }
1716 description "Protection provided by the alternate.";
1717 }
1718 leaf alternate-metric1 {
1719 type uint32;
1720 description
1721 "Metric from Point of Local Repair (PLR) to
1722 destination through the alternate path.";
1723 }
1724 leaf alternate-metric2 {
1725 type uint32;
1726 description
1727 "Metric from PLR to the alternate node";
1728 }
1729 leaf alternate-metric3 {
1730 type uint32;
1731 description
1732 "Metric from alternate node to the destination";
1733 }
1734 description
1735 "Per-AF protected prefix statistics.";
1736 }
1737 description
1738 "List of prefixes that are protected.";
1739 }
1741 container unprotected-routes {
1742 config false;
1743 list address-family-stats {
1744 key "address-family prefix";
1746 leaf address-family {
1747 type iana-rt-types:address-family;
1749 description "Address-family";
1750 }
1751 leaf prefix {
1752 type string;
1753 description "Unprotected prefix.";
1754 }
1755 description
1756 "Per AF unprotected prefix statistics.";
1757 }
1758 description
1759 "List of prefixes that are not protected.";
1760 }
1762 list protection-statistics {
1763 key frr-protection-method;
1764 config false;
1765 leaf frr-protection-method {
1766 type string;
1767 description "Protection method used.";
1768 }
1769 list address-family-stats {
1770 key address-family;
1772 leaf address-family {
1773 type iana-rt-types:address-family;
1775 description "Address-family";
1776 }
1777 leaf total-routes {
1778 type uint32;
1779 description "Total prefixes.";
1780 }
1781 leaf unprotected-routes {
1782 type uint32;
1783 description
1784 "Total prefixes that are not protected.";
1785 }
1786 leaf protected-routes {
1787 type uint32;
1788 description
1789 "Total prefixes that are protected.";
1790 }
1791 leaf linkprotected-routes {
1792 type uint32;
1793 description
1794 "Total prefixes that are link protected.";
1795 }
1796 leaf nodeprotected-routes {
1797 type uint32;
1798 description
1799 "Total prefixes that are node protected.";
1800 }
1801 description
1802 "Per AF protected prefix statistics.";
1803 }
1805 description "Global protection statistics.";
1806 }
1807 }
1809 /* Route table and local RIB groupings */
1811 grouping local-rib {
1812 description "Local-rib - RIB for Routes computed by the local
1813 IS-IS routing instance.";
1814 container local-rib {
1815 config false;
1816 description "Local-rib.";
1817 list route {
1818 key "prefix";
1819 description "Routes";
1820 leaf prefix {
1821 type inet:ip-prefix;
1822 description "Destination prefix.";
1823 }
1824 container next-hops {
1825 description "Next hops for the route.";
1826 list next-hop {
1827 key "next-hop";
1828 description "List of next hops for the route";
1829 leaf outgoing-interface {
1830 type if:interface-ref;
1831 description
1832 "Name of the outgoing interface.";
1833 }
1834 leaf next-hop {
1835 type inet:ip-address;
1836 description "Nexthop address.";
1837 }
1838 }
1839 }
1840 leaf metric {
1841 type uint32;
1842 description "Metric for this route.";
1843 }
1844 leaf level {
1845 type level-number;
1846 description "Level number for this route.";
1847 }
1848 leaf route-tag {
1849 type uint32;
1850 description "Route tag for this route.";
1851 }
1852 }
1853 }
1854 }
1856 grouping route-content {
1857 description
1858 "IS-IS protocol-specific route properties grouping.";
1859 leaf metric {
1860 type uint32;
1861 description "IS-IS metric of a route.";
1862 }
1863 leaf-list tag {
1864 type uint64;
1865 description
1866 "List of tags associated with the route. The leaf
1867 describes both 32-bit and 64-bit tags.";
1868 }
1869 leaf route-type {
1870 type enumeration {
1871 enum l2-up-internal {
1872 description "Level 2 internal route
1873 and not leaked to a lower level";
1874 }
1875 enum l1-up-internal {
1876 description "Level 1 internal route
1877 and not leaked to a lower level";
1878 }
1879 enum l2-up-external {
1880 description "Level 2 external route
1881 and not leaked to a lower level";
1882 }
1883 enum l1-up-external {
1884 description "Level 1 external route
1885 and not leaked to a lower level";
1886 }
1887 enum l2-down-internal {
1888 description "Level 2 internal route
1889 and leaked to a lower level";
1890 }
1891 enum l1-down-internal {
1892 description "Level 1 internal route
1893 and leaked to a lower level";
1894 }
1895 enum l2-down-external {
1896 description "Level 2 external route
1897 and leaked to a lower level";
1898 }
1899 enum l1-down-external {
1900 description "Level 1 external route
1901 and leaked to a lower level";
1902 }
1903 }
1904 description "IS-IS route type.";
1905 }
1906 }
1908 /* Grouping definitions for configuration and ops state */
1910 grouping adjacency-state {
1911 container adjacencies {
1912 config false;
1913 list adjacency {
1914 leaf neighbor-sys-type {
1915 type level;
1916 description
1917 "Level capability of neighboring system";
1918 }
1919 leaf neighbor-sysid {
1920 type system-id;
1921 description
1922 "The system-id of the neighbor";
1923 }
1924 leaf neighbor-extended-circuit-id {
1925 type extended-circuit-id;
1926 description
1927 "Circuit ID of the neighbor";
1928 }
1929 leaf neighbor-snpa {
1930 type snpa;
1931 description
1932 "SNPA of the neighbor";
1933 }
1934 leaf usage {
1935 type level;
1936 description
1937 "Define the level(s) activated on the adjacency.
1938 On a p2p link this might be level 1 and 2,
1939 but on a LAN, the usage will be level 1
1940 between peers at level 1 or level 2 between
1941 peers at level 2.";
1942 }
1943 leaf hold-timer {
1944 type rt-types:timer-value-seconds16;
1945 units seconds;
1946 description
1947 "The holding time in seconds for this
1948 adjacency. This value is based on
1949 received hello PDUs and the elapsed
1950 time since receipt.";
1951 }
1952 leaf neighbor-priority {
1953 type uint8 {
1954 range "0 .. 127";
1955 }
1956 description
1957 "Priority of the neighboring IS for becoming
1958 the DIS.";
1959 }
1960 leaf lastuptime {
1961 type yang:timestamp;
1962 description
1963 "When the adjacency most recently entered
1964 state 'up', measured in hundredths of a
1965 second since the last reinitialization of
1966 the network management subsystem.
1968 The value is 0 if the adjacency has never
1969 been in state 'up'.";
1970 }
1971 leaf state {
1972 type adj-state-type;
1973 description
1974 "This leaf describes the state of the interface.";
1975 }
1977 description
1978 "List of operational adjacencies.";
1979 }
1980 description
1981 "This container lists the adjacencies of
1982 the local node.";
1983 }
1984 description
1985 "Adjacency state";
1986 }
1988 grouping admin-control {
1989 leaf enable {
1990 if-feature admin-control;
1991 type boolean;
1992 default true;
1993 description
1994 "Enable/Disable the protocol.";
1995 }
1996 description
1997 "Grouping for admin control.";
1998 }
2000 grouping ietf-spf-delay {
2001 leaf initial-delay {
2002 type rt-types:timer-value-milliseconds;
2003 units msec;
2004 description
2005 "Delay used while in QUIET state (milliseconds).";
2006 }
2007 leaf short-delay {
2008 type rt-types:timer-value-milliseconds;
2009 units msec;
2010 description
2011 "Delay used while in SHORT_WAIT state (milliseconds).";
2012 }
2013 leaf long-delay {
2014 type rt-types:timer-value-milliseconds;
2015 units msec;
2016 description
2017 "Delay used while in LONG_WAIT state (milliseconds).";
2018 }
2020 leaf hold-down {
2021 type rt-types:timer-value-milliseconds;
2022 units msec;
2023 description
2024 "Timer used to consider an IGP stability period
2025 (milliseconds).";
2026 }
2027 leaf time-to-learn {
2028 type rt-types:timer-value-milliseconds;
2029 units msec;
2030 description
2031 "Duration used to learn all the IGP events
2032 related to a single component failure (milliseconds).";
2033 }
2034 leaf current-state {
2035 type enumeration {
2036 enum "quiet" {
2037 description "QUIET state";
2038 }
2039 enum "short-wait" {
2040 description "SHORT_WAIT state";
2041 }
2042 enum "long-wait" {
2043 description "LONG_WAIT state";
2044 }
2045 }
2046 config false;
2047 description
2048 "Current SPF backoff algorithm state.";
2049 }
2050 leaf remaining-time-to-learn {
2051 type rt-types:timer-value-milliseconds;
2052 units "msec";
2053 config false;
2054 description
2055 "Remaining time until time-to-learn timer fires.";
2056 }
2057 leaf remaining-hold-down {
2058 type rt-types:timer-value-milliseconds;
2059 units "msec";
2060 config false;
2061 description
2062 "Remaining time until hold-down timer fires.";
2063 }
2064 leaf last-event-received {
2065 type yang:timestamp;
2066 config false;
2067 description
2068 "Time of last IGP event received";
2069 }
2070 leaf next-spf-time {
2071 type yang:timestamp;
2072 config false;
2073 description
2074 "Time when next SPF has been scheduled.";
2075 }
2076 leaf last-spf-time {
2077 type yang:timestamp;
2078 config false;
2079 description
2080 "Time of last SPF computation.";
2081 }
2082 description
2083 "Grouping for IETF SPF delay configuration and state.";
2084 }
2086 grouping node-tag-config {
2087 description
2088 "IS-IS node tag config state.";
2089 container node-tags {
2090 if-feature node-tag;
2091 list node-tag {
2092 key tag;
2093 leaf tag {
2094 type uint32;
2095 description
2096 "Node tag value.";
2097 }
2098 description
2099 "List of tags.";
2100 }
2101 description
2102 "Container for node admin tags.";
2103 }
2104 }
2106 grouping authentication-global-cfg {
2107 choice authentication-type {
2108 case key-chain {
2109 if-feature key-chain;
2110 leaf key-chain {
2111 type key-chain:key-chain-ref;
2112 description
2113 "Reference to a key-chain.";
2114 }
2115 }
2116 case password {
2117 leaf key {
2118 type string;
2119 description
2120 "This leaf specifies the authentication key.";
2121 }
2122 leaf crypto-algorithm {
2123 type identityref {
2124 base key-chain:crypto-algorithm;
2125 }
2126 description
2127 "Cryptographic algorithm associated with key.";
2128 }
2129 }
2130 description "Choice of authentication.";
2131 }
2132 description "Grouping for global authentication config.";
2133 }
2135 grouping metric-type-global-cfg {
2136 leaf value {
2137 type enumeration {
2138 enum wide-only {
2139 description
2140 "Advertise new metric style only (RFC5305)";
2141 }
2142 enum old-only {
2143 description
2144 "Advertise old metric style only (RFC1195)";
2145 }
2146 enum both {
2147 description "Advertise both metric styles";
2148 }
2149 }
2150 default wide-only;
2151 description
2152 "Type of metric to be generated:
2153 - wide-only means only new metric style
2154 is generated,
2155 - old-only means that only old style metric
2156 is generated,
2157 - both means that both are advertised.
2159 This leaf is only affecting IPv4 metrics.";
2160 }
2161 description
2162 "Grouping for global metric style config.";
2163 }
2165 grouping default-metric-global-cfg {
2166 leaf value {
2167 type wide-metric;
2168 default "10";
2169 description "Value of the metric";
2170 }
2171 description
2172 "Global default metric config grouping.";
2173 }
2175 grouping overload-global-cfg {
2176 leaf status {
2177 type boolean;
2178 default false;
2179 description
2180 "This leaf specifies the overload status.";
2181 }
2182 description "Grouping for overload bit config.";
2183 }
2185 grouping overload-max-metric-global-cfg {
2186 leaf timeout {
2187 type rt-types:timer-value-seconds16;
2188 units "seconds";
2189 description
2190 "Timeout (in seconds) of the overload condition.";
2191 }
2192 description
2193 "Overload maximum metric configuration grouping";
2194 }
2196 grouping route-preference-global-cfg {
2197 choice granularity {
2198 case detail {
2199 leaf internal {
2200 type uint8;
2201 description
2202 "Protocol preference for internal routes.";
2203 }
2204 leaf external {
2205 type uint8;
2206 description
2207 "Protocol preference for external routes.";
2208 }
2209 }
2210 case coarse {
2211 leaf default {
2212 type uint8;
2213 description
2214 "Protocol preference for all IS-IS routes.";
2215 }
2216 }
2217 description
2218 "Choice for implementation of route preference.";
2219 }
2220 description
2221 "Global route preference grouping";
2222 }
2224 grouping hello-authentication-cfg {
2225 choice authentication-type {
2226 case key-chain {
2227 if-feature key-chain;
2228 leaf key-chain {
2229 type key-chain:key-chain-ref;
2230 description "Reference to a key-chain.";
2231 }
2232 }
2233 case password {
2234 leaf key {
2235 type string;
2236 description "Authentication key specification";
2237 }
2238 leaf crypto-algorithm {
2239 type identityref {
2240 base key-chain:crypto-algorithm;
2241 }
2242 description
2243 "Cryptographic algorithm associated with key.";
2244 }
2245 }
2246 description "Choice of authentication.";
2247 }
2248 description "Grouping for hello authentication.";
2249 }
2251 grouping hello-interval-cfg {
2252 leaf value {
2253 type rt-types:timer-value-seconds16;
2254 units "seconds";
2255 default 10;
2256 description
2257 "Interval (in seconds) between successive hello
2258 messages.";
2259 }
2261 description "Interval between hello messages.";
2262 }
2264 grouping hello-multiplier-cfg {
2265 leaf value {
2266 type uint16;
2267 default 3;
2268 description
2269 "Number of missed hello messages prior to
2270 declaring the adjacency down.";
2271 }
2272 description
2273 "Number of missed hello messages prior to
2274 adjacency down grouping.";
2275 }
2277 grouping priority-cfg {
2278 leaf value {
2279 type uint8 {
2280 range "0 .. 127";
2281 }
2282 default 64;
2283 description
2284 "Priority of interface for DIS election.";
2285 }
2287 description "Interface DIS election priority grouping";
2288 }
2290 grouping metric-cfg {
2291 leaf value {
2292 type wide-metric;
2293 default "10";
2294 description "Metric value.";
2295 }
2296 description "Interface metric grouping";
2297 }
2299 grouping metric-parameters {
2300 container metric-type {
2301 uses metric-type-global-cfg;
2302 container level-1 {
2303 uses metric-type-global-cfg;
2304 description "level-1 specific configuration";
2305 }
2306 container level-2 {
2307 uses metric-type-global-cfg;
2308 description "level-2 specific configuration";
2309 }
2310 description "Metric style global configuration";
2311 }
2313 container default-metric {
2314 uses default-metric-global-cfg;
2315 container level-1 {
2316 uses default-metric-global-cfg;
2317 description "level-1 specific configuration";
2318 }
2319 container level-2 {
2320 uses default-metric-global-cfg;
2321 description "level-2 specific configuration";
2322 }
2323 description "Default metric global configuration";
2324 }
2325 container auto-cost {
2326 if-feature auto-cost;
2327 description
2328 "Interface Auto-cost configuration state.";
2329 leaf enable {
2330 type boolean;
2331 description
2332 "Enable/Disable interface auto-cost.";
2333 }
2334 leaf reference-bandwidth {
2335 when "../enable = 'true'" {
2336 description "Only when auto cost is enabled";
2337 }
2338 type uint32 {
2339 range "1..4294967";
2340 }
2341 units Mbits;
2342 description
2343 "Configure reference bandwidth used to automatically
2344 determine interface cost (Mbits). The cost is the
2345 reference bandwidth divided by the interface speed
2346 with 1 being the minimum cost.";
2347 }
2348 }
2349 description "Grouping for global metric parameters.";
2350 }
2352 grouping high-availability-parameters {
2353 container graceful-restart {
2354 if-feature graceful-restart;
2355 leaf enable {
2356 type boolean;
2357 default false;
2358 description "Enable graceful restart.";
2359 }
2360 leaf restart-interval {
2361 type rt-types:timer-value-seconds16;
2362 units "seconds";
2363 description
2364 "Interval (in seconds) to attempt graceful restart prior
2365 to failure.";
2366 }
2367 leaf helper-enable {
2368 type boolean;
2369 default true;
2370 description
2371 "Enable local IS-IS router as graceful restart helper.";
2372 }
2373 description "Graceful-Restart Configuration.";
2374 }
2375 container nsr {
2376 if-feature nsr;
2377 description "Non-Stop Routing (NSR) configuration.";
2378 leaf enable {
2379 type boolean;
2380 default false;
2381 description "Enable/Disable Non-Stop Routing (NSR).";
2382 }
2383 }
2384 description "Grouping for High Availability parameters.";
2385 }
2387 grouping authentication-parameters {
2388 container authentication {
2389 uses authentication-global-cfg;
2391 container level-1 {
2392 uses authentication-global-cfg;
2393 description "level-1 specific configuration";
2394 }
2395 container level-2 {
2396 uses authentication-global-cfg;
2397 description "level-2 specific configuration";
2398 }
2399 description "Authentication global configuration for
2400 both LSPs and SNPs.";
2401 }
2402 description "Grouping for authentication parameters";
2403 }
2404 grouping address-family-parameters {
2405 container address-families {
2406 if-feature nlpid-control;
2407 list address-family-list {
2408 key address-family;
2409 leaf address-family {
2410 type iana-rt-types:address-family;
2411 description "Address-family";
2412 }
2413 leaf enable {
2414 type boolean;
2415 description "Activate the address family.";
2416 }
2417 description
2418 "List of address families and whether or not they
2419 are activated.";
2420 }
2421 description "Address Family configuration";
2422 }
2423 description "Grouping for address family parameters.";
2424 }
2426 grouping mpls-parameters {
2427 container mpls {
2428 container te-rid {
2429 if-feature te-rid;
2430 description
2431 "Stable ISIS Router IP Address used for Traffic
2432 Engineering";
2433 leaf ipv4-router-id {
2434 type inet:ipv4-address;
2435 description
2436 "Router ID value that would be used in TLV 134.";
2437 }
2438 leaf ipv6-router-id {
2439 type inet:ipv6-address;
2440 description
2441 "Router ID value that would be used in TLV 140.";
2442 }
2443 }
2444 container ldp {
2445 container igp-sync {
2446 if-feature ldp-igp-sync;
2447 description
2448 "This container may be augmented with global
2449 parameters for igp-ldp-sync.";
2450 }
2451 description "LDP configuration.";
2452 }
2453 description "MPLS configuration";
2454 }
2455 description "Grouping for MPLS global parameters.";
2456 }
2458 grouping lsp-parameters {
2459 leaf lsp-mtu {
2460 type uint16;
2461 units "bytes";
2462 default 1492;
2463 description
2464 "Maximum size of an LSP PDU in bytes.";
2465 }
2466 leaf lsp-lifetime {
2467 type uint16 {
2468 range "1..65535";
2469 }
2470 units "seconds";
2471 description
2472 "Lifetime of the router's LSPs in seconds.";
2473 }
2474 leaf lsp-refresh {
2475 if-feature lsp-refresh;
2476 type rt-types:timer-value-seconds16;
2477 units "seconds";
2478 description
2479 "Refresh interval of the router's LSPs in seconds.";
2480 }
2481 leaf poi-tlv {
2482 if-feature poi-tlv;
2483 type boolean;
2484 default false;
2485 description
2486 "Enable advertisement of IS-IS purge TLV.";
2487 }
2488 description "Grouping for LSP global parameters.";
2489 }
2490 grouping spf-parameters {
2491 container spf-control {
2492 leaf paths {
2493 if-feature max-ecmp;
2494 type uint16 {
2495 range "1..32";
2496 }
2497 description
2498 "Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
2499 }
2500 container ietf-spf-delay {
2501 if-feature ietf-spf-delay;
2502 uses ietf-spf-delay;
2503 description "IETF SPF delay algorithm configuration.";
2504 }
2505 description
2506 "SPF calculation control.";
2507 }
2508 description "Grouping for SPF global parameters.";
2509 }
2510 grouping instance-config {
2511 description "IS-IS global configuration grouping";
2513 uses admin-control;
2515 leaf level-type {
2516 type level;
2517 default "level-all";
2518 description
2519 "Level of an IS-IS node - can be level-1-only,
2520 level-2-only or level-1-2.";
2521 }
2523 leaf system-id {
2524 type system-id;
2525 description "System-id of the node.";
2526 }
2528 leaf maximum-area-addresses {
2529 if-feature maximum-area-addresses;
2530 type uint8;
2531 default 3;
2532 description "Maximum areas supported.";
2533 }
2535 leaf-list area-address {
2536 type area-address;
2537 description
2538 "List of areas supported by the protocol instance.";
2539 }
2540 uses lsp-parameters;
2541 uses high-availability-parameters;
2542 uses node-tag-config;
2543 uses metric-parameters;
2544 uses authentication-parameters;
2545 uses address-family-parameters;
2546 uses mpls-parameters;
2547 uses spf-parameters;
2548 uses instance-fast-reroute-config;
2550 container preference {
2551 uses route-preference-global-cfg;
2552 description "Router preference configuration for IS-IS
2553 protocol instance route installation";
2554 }
2556 container overload {
2557 uses overload-global-cfg;
2558 description "Router protocol instance overload state
2559 configuration";
2560 }
2562 container overload-max-metric {
2563 if-feature overload-max-metric;
2564 uses overload-max-metric-global-cfg;
2565 description
2566 "Router protocol instance overload maximum
2567 metric advertisement configuration.";
2568 }
2569 }
2571 grouping instance-state {
2572 description
2573 "IS-IS instance operational state.";
2574 uses spf-log;
2575 uses lsp-log;
2576 uses hostname-db;
2577 uses lsdb;
2578 uses local-rib;
2579 uses system-counters;
2580 uses instance-fast-reroute-state;
2581 }
2583 grouping multi-topology-config {
2584 description "Per-topology configuration";
2585 container default-metric {
2586 uses default-metric-global-cfg;
2587 container level-1 {
2588 uses default-metric-global-cfg;
2589 description "level-1 specific configuration";
2590 }
2591 container level-2 {
2592 uses default-metric-global-cfg;
2593 description "level-2 specific configuration";
2594 }
2595 description "Default metric per-topology configuration";
2596 }
2597 uses node-tag-config;
2598 }
2600 grouping interface-config {
2601 description "Interface configuration grouping";
2602 leaf level-type {
2603 type level;
2604 default "level-all";
2605 description "IS-IS level of the interface.";
2606 }
2607 leaf lsp-pacing-interval {
2608 type rt-types:timer-value-milliseconds;
2609 units "milliseconds";
2610 default 33;
2611 description
2612 "Interval (in milli-seconds) between LSP
2613 transmissions.";
2614 }
2615 leaf lsp-retransmit-interval {
2616 type rt-types:timer-value-seconds16;
2617 units "seconds";
2618 description
2619 "Interval (in seconds) between LSP
2620 retransmissions.";
2621 }
2622 leaf passive {
2623 type boolean;
2624 default "false";
2625 description
2626 "Indicates whetherthe interface is in passive mode (IS-IS
2627 not running but network is advertised).";
2628 }
2629 leaf csnp-interval {
2630 type rt-types:timer-value-seconds16;
2631 units "seconds";
2632 default 10;
2633 description
2634 "Interval (in seconds) between CSNP messages.";
2635 }
2636 container hello-padding {
2637 leaf enable {
2638 type boolean;
2639 default "true";
2640 description
2641 "IS-IS Hello-padding activation - enabled by default.";
2642 }
2643 description "IS-IS hello padding configuration.";
2644 }
2645 leaf mesh-group-enable {
2646 type mesh-group-state;
2647 description "IS-IS interface mesh-group state";
2648 }
2649 leaf mesh-group {
2650 when "../mesh-group-enable = 'mesh-set'" {
2651 description
2652 "Only valid when mesh-group-enable equals meshset";
2653 }
2654 type uint8;
2655 description "IS-IS interface mesh-group ID.";
2656 }
2657 leaf interface-type {
2658 type interface-type;
2659 default "broadcast";
2660 description
2661 "Type of adjacency to be established on the interface. This
2662 dictates the type of hello messages that are used.";
2663 }
2665 uses admin-control;
2667 leaf-list tag {
2668 if-feature prefix-tag;
2669 type uint32;
2670 description
2671 "List of tags associated with the interface.";
2672 }
2673 leaf-list tag64 {
2674 if-feature prefix-tag64;
2675 type uint64;
2676 description
2677 "List of 64-bit tags associated with the interface.";
2678 }
2679 leaf node-flag {
2680 if-feature node-flag;
2681 type boolean;
2682 default false;
2683 description
2684 "Set prefix as a node representative prefix.";
2685 }
2686 container hello-authentication {
2687 uses hello-authentication-cfg;
2688 container level-1 {
2689 uses hello-authentication-cfg;
2690 description "level-1 specific configuration";
2691 }
2692 container level-2 {
2693 uses hello-authentication-cfg;
2694 description "level-2 specific configuration";
2695 }
2696 description
2697 "Authentication type to be used in hello messages.";
2698 }
2699 container hello-interval {
2700 uses hello-interval-cfg;
2701 container level-1 {
2702 uses hello-interval-cfg;
2703 description "level-1 specific configuration";
2704 }
2705 container level-2 {
2706 uses hello-interval-cfg;
2707 description "level-2 specific configuration";
2708 }
2709 description "Interval between hello messages.";
2710 }
2711 container hello-multiplier {
2712 uses hello-multiplier-cfg;
2713 container level-1 {
2714 uses hello-multiplier-cfg;
2715 description "level-1 specific configuration";
2716 }
2717 container level-2 {
2718 uses hello-multiplier-cfg;
2719 description "level-2 specific configuration";
2720 }
2721 description "Hello multiplier configuration.";
2722 }
2723 container priority {
2724 must '../interface-type = "broadcast"' {
2725 error-message
2726 "Priority only applies to broadcast interfaces.";
2727 description "Check for broadcast interface.";
2728 }
2729 uses priority-cfg;
2730 container level-1 {
2731 uses priority-cfg;
2732 description "level-1 specific configuration";
2733 }
2734 container level-2 {
2735 uses priority-cfg;
2736 description "level-2 specific configuration";
2737 }
2738 description "Priority for DIS election.";
2739 }
2740 container metric {
2741 uses metric-cfg;
2742 container level-1 {
2743 uses metric-cfg;
2744 description "level-1 specific configuration";
2745 }
2746 container level-2 {
2747 uses metric-cfg;
2748 description "level-2 specific configuration";
2749 }
2750 description "Metric configuration.";
2751 }
2752 container bfd {
2753 if-feature bfd;
2754 description "BFD Client Configuration.";
2755 uses bfd-types:client-cfg-parms;
2757 reference "RFC YYYY - YANG Data Model for Bidirectional
2758 Forwarding Detection (BFD).
2760 -- Note to RFC Editor Please replace YYYY with published RFC number for
2761 draft-ietf-bfd-yang.";
2763 }
2764 container address-families {
2765 if-feature nlpid-control;
2766 list address-family-list {
2767 key address-family;
2768 leaf address-family {
2769 type iana-rt-types:address-family;
2770 description "Address-family";
2771 }
2772 description "List of AFs.";
2773 }
2774 description "Interface address-families";
2775 }
2776 container mpls {
2777 container ldp {
2778 leaf igp-sync {
2779 if-feature ldp-igp-sync;
2780 type boolean;
2781 default false;
2782 description "Enables IGP/LDP synchronization";
2783 }
2784 description "LDP protocol related configuration.";
2785 }
2786 description "MPLS configuration for IS-IS interfaces";
2787 }
2788 uses interface-fast-reroute-config;
2789 }
2791 grouping multi-topology-interface-config {
2792 description "IS-IS interface topology configuration.";
2793 container metric {
2794 uses metric-cfg;
2795 container level-1 {
2796 uses metric-cfg;
2797 description "level-1 specific configuration";
2798 }
2799 container level-2 {
2800 uses metric-cfg;
2801 description "level-2 specific configuration";
2802 }
2803 description "Metric IS-IS interface configuration.";
2804 }
2805 }
2806 grouping interface-state {
2807 description
2808 "IS-IS interface operational state.";
2809 uses adjacency-state;
2810 uses event-counters;
2811 uses packet-counters;
2812 }
2814 /* Grouping for the hostname database */
2816 grouping hostname-db {
2817 container hostnames {
2818 config false;
2819 list hostname {
2820 key system-id;
2821 leaf system-id {
2822 type system-id;
2823 description
2824 "System-id associated with the hostname.";
2825 }
2826 leaf hostname {
2827 type string;
2828 description
2829 "Hostname associated with the system ID.";
2830 }
2831 description
2832 "List of system-id/hostname associations.";
2833 }
2834 description
2835 "Hostname to system-id mapping database.";
2836 }
2837 description
2838 "Grouping for hostname to system-id mapping database.";
2839 }
2841 /* Groupings for counters */
2843 grouping system-counters {
2844 container system-counters {
2845 config false;
2846 list level {
2847 key level;
2849 leaf level {
2850 type level-number;
2851 description "IS-IS level.";
2852 }
2853 leaf corrupted-lsps {
2854 type uint32;
2855 description
2856 "Number of corrupted in-memory LSPs detected.
2857 LSPs received from the wire with a bad
2858 checksum are silently dropped and not counted.
2859 LSPs received from the wire with parse errors
2860 are counted by lsp-errors.";
2861 }
2862 leaf authentication-type-fails {
2863 type uint32;
2864 description
2865 "Number of authentication type mismatches.";
2866 }
2867 leaf authentication-fails {
2868 type uint32;
2869 description
2870 "Number of authentication key failures.";
2871 }
2872 leaf database-overload {
2873 type uint32;
2874 description
2875 "Number of times the database has become
2876 overloaded.";
2878 }
2879 leaf own-lsp-purge {
2880 type uint32;
2881 description
2882 "Number of times a zero-aged copy of the system's
2883 own LSP is received from some other IS-IS node.";
2884 }
2885 leaf manual-address-drop-from-area {
2886 type uint32;
2887 description
2888 "Number of times a manual address
2889 has been dropped from the area.";
2890 }
2891 leaf max-sequence {
2892 type uint32;
2893 description
2894 "Number of times the system has attempted
2895 to exceed the maximum sequence number.";
2896 }
2897 leaf sequence-number-skipped {
2898 type uint32;
2899 description
2900 "Number of times a sequence number skip has
2901 occured.";
2902 }
2903 leaf id-len-mismatch {
2904 type uint32;
2905 description
2906 "Number of times a PDU is received with a
2907 different value for the ID field length
2908 than that of the receiving system.";
2909 }
2910 leaf partition-changes {
2911 type uint32;
2912 description
2913 "Number of partition changes detected.";
2914 }
2915 leaf lsp-errors {
2916 type uint32;
2917 description
2918 "Number of LSPs with errors we have received.";
2919 }
2920 leaf spf-runs {
2921 type uint32;
2922 description
2923 "Number of times we ran SPF at this level.";
2924 }
2925 description
2926 "List of supported levels.";
2927 }
2928 description
2929 "List counters for the IS-IS protocol instance";
2930 }
2931 description "System counters grouping.";
2932 }
2934 grouping event-counters {
2935 container event-counters {
2936 config false;
2937 leaf adjacency-changes {
2938 type uint32;
2939 description
2940 "The number of times an adjacency state change has
2941 occured on this interface.";
2942 }
2943 leaf adjacency-number {
2944 type uint32;
2945 description
2946 "The number of adjacencies on this interface.";
2947 }
2948 leaf init-fails {
2949 type uint32;
2950 description
2951 "The number of times initialization of this
2952 interface has failed. This counts events such
2953 as PPP NCP failures. Failures to form an
2954 adjacency are counted by adjacency-rejects.";
2955 }
2956 leaf adjacency-rejects {
2957 type uint32;
2958 description
2959 "The number of times an adjacency has been
2960 rejected on this interface.";
2961 }
2962 leaf id-len-mismatch {
2963 type uint32;
2964 description
2965 "The number of times an IS-IS PDU with an ID
2966 field length different from that for this
2967 system has been received on this interface.";
2968 }
2969 leaf max-area-addresses-mismatch {
2970 type uint32;
2971 description
2972 "The number of times an IS-IS PDU has been
2973 received on this interface with the
2974 max area address field differing from that of
2975 this system.";
2976 }
2977 leaf authentication-type-fails {
2978 type uint32;
2979 description
2980 "Number of authentication type mismatches.";
2981 }
2982 leaf authentication-fails {
2983 type uint32;
2984 description
2985 "Number of authentication key failures.";
2986 }
2987 leaf lan-dis-changes {
2988 type uint32;
2989 description
2990 "The number of times the DIS has changed on this
2991 interface at this level. If the interface type is
2992 point-to-point,the count is zero.";
2993 }
2994 description "IS-IS interface event counters.";
2995 }
2996 description
2997 "Grouping for IS-IS interface event counters";
2998 }
3000 grouping packet-counters {
3001 container packet-counters {
3002 config false;
3003 list level {
3004 key level;
3006 leaf level {
3007 type level-number;
3008 description "IS-IS level.";
3009 }
3010 container iih {
3011 leaf in {
3012 type uint32;
3013 description "Received IIH PDUs.";
3014 }
3015 leaf out {
3016 type uint32;
3017 description "Sent IIH PDUs.";
3018 }
3019 description "Number of IIH PDUs received/sent.";
3020 }
3021 container ish {
3022 leaf in {
3023 type uint32;
3024 description "Received ISH PDUs.";
3025 }
3026 leaf out {
3027 type uint32;
3028 description "Sent ISH PDUs.";
3029 }
3030 description
3031 "ISH PDUs received/sent.";
3032 }
3033 container esh {
3034 leaf in {
3035 type uint32;
3036 description "Received ESH PDUs.";
3037 }
3038 leaf out {
3039 type uint32;
3040 description "Sent ESH PDUs.";
3041 }
3042 description "Number of ESH PDUs received/sent.";
3043 }
3044 container lsp {
3045 leaf in {
3046 type uint32;
3047 description "Received LSP PDUs.";
3048 }
3049 leaf out {
3050 type uint32;
3051 description "Sent LSP PDUs.";
3052 }
3053 description "Number of LSP PDUs received/sent.";
3054 }
3055 container psnp {
3056 leaf in {
3057 type uint32;
3058 description "Received PSNP PDUs.";
3059 }
3060 leaf out {
3061 type uint32;
3062 description "Sent PSNP PDUs.";
3063 }
3064 description "Number of PSNP PDUs received/sent.";
3065 }
3066 container csnp {
3067 leaf in {
3068 type uint32;
3069 description "Received CSNP PDUs.";
3071 }
3072 leaf out {
3073 type uint32;
3074 description "Sent CSNP PDUs.";
3075 }
3076 description "Number of CSNP PDUs received/sent.";
3077 }
3078 container unknown {
3079 leaf in {
3080 type uint32;
3081 description "Received unknown PDUs.";
3082 }
3083 leaf out {
3084 type uint32;
3085 description "Sent unknown PDUs.";
3086 }
3087 description "Number of unknown PDUs received/sent.";
3088 }
3089 description
3090 "List of packet counter for supported llevels.";
3091 }
3092 description "Packet counters per IS-IS level.";
3093 }
3094 description
3095 "Grouping for per IS-IS Level packet counters.";
3096 }
3098 /* Groupings for various log buffers */
3099 grouping spf-log {
3100 container spf-log {
3101 config false;
3102 list event {
3103 key id;
3105 leaf id {
3106 type uint32;
3107 description
3108 "Event identifier - purely internal value.";
3109 }
3110 leaf spf-type {
3111 type enumeration {
3112 enum full {
3113 description "Full SPF computation.";
3114 }
3115 enum route-only {
3116 description
3117 "Route reachability only SPF computation";
3118 }
3120 }
3121 description "Type of SPF computation performed.";
3122 }
3123 leaf level {
3124 type level-number;
3125 description
3126 "IS-IS level number for SPF computation";
3127 }
3128 leaf schedule-timestamp {
3129 type yang:timestamp;
3130 description
3131 "Timestamp of when the SPF computation was
3132 scheduled.";
3133 }
3134 leaf start-timestamp {
3135 type yang:timestamp;
3136 description
3137 "Timestamp of when the SPF computation started.";
3138 }
3139 leaf end-timestamp {
3140 type yang:timestamp;
3141 description
3142 "Timestamp of when the SPF computation ended.";
3143 }
3144 list trigger-lsp {
3145 key "lsp";
3146 leaf lsp {
3147 type lsp-id;
3148 description
3149 "LSPID of the LSP triggering SPF computation.";
3150 }
3151 leaf sequence {
3152 type uint32;
3153 description
3154 "Sequence number of the LSP triggering SPF
3155 computation";
3156 }
3157 description
3158 "This list includes the LSPs that triggered the
3159 SPF computation.";
3160 }
3161 description
3162 "List of computation events - implemented as a
3163 wrapping buffer.";
3164 }
3166 description
3167 "This container lists the SPF computation events.";
3169 }
3170 description "Grouping for spf-log events.";
3171 }
3173 grouping lsp-log {
3174 container lsp-log {
3175 config false;
3176 list event {
3177 key id;
3179 leaf id {
3180 type uint32;
3181 description
3182 "Event identifier - purely internal value.";
3183 }
3184 leaf level {
3185 type level-number;
3186 description
3187 "IS-IS level number for LSP";
3188 }
3189 container lsp {
3190 leaf lsp {
3191 type lsp-id;
3192 description
3193 "LSPID of the LSP.";
3194 }
3195 leaf sequence {
3196 type uint32;
3197 description
3198 "Sequence number of the LSP.";
3199 }
3200 description
3201 "LSP identification container - either the received
3202 LSP or the locally generated LSP.";
3203 }
3205 leaf received-timestamp {
3206 type yang:timestamp;
3207 description
3208 "This is the timestamp when the LSA was received.
3209 In case of local LSA update, the timestamp refers
3210 to the LSA origination time.";
3211 }
3213 leaf reason {
3214 type identityref {
3215 base lsp-log-reason;
3216 }
3217 description "Type of LSP change.";
3218 }
3220 description
3221 "List of LSP events - implemented as a
3222 wrapping buffer.";
3223 }
3225 description
3226 "This container lists the LSP log.
3227 Local LSP modifications are also included
3228 in the list.";
3230 } description "Grouping for LSP log.";
3231 }
3233 /* Groupings for the LSDB description */
3235 /* Unknown TLV and subTLV description */
3236 grouping tlv {
3237 description
3238 "Type-Length-Value (TLV)";
3239 leaf type {
3240 type uint16;
3241 description "TLV type.";
3242 }
3243 leaf length {
3244 type uint16;
3245 description "TLV length (octets).";
3246 }
3247 leaf value {
3248 type yang:hex-string;
3249 description "TLV value.";
3250 }
3251 }
3253 grouping unknown-tlvs {
3254 description
3255 "Unknown TLVs grouping - Used for unknown TLVs or
3256 unknown sub-TLVs.";
3257 container unknown-tlvs {
3258 description "All unknown TLVs.";
3259 list unknown-tlv {
3260 description "Unknown TLV.";
3261 uses tlv;
3262 }
3264 }
3265 }
3267 /* TLVs and subTLVs for prefixes */
3269 grouping prefix-reachability-attributes {
3270 description
3271 "Grouping for extended reachability attributes of an
3272 IPv4 or IPv6 prefix.";
3274 leaf external-prefix-flag {
3275 type boolean;
3276 description "External prefix flag.";
3277 }
3278 leaf readvertisement-flag {
3279 type boolean;
3280 description "Readvertisement flag.";
3281 }
3282 leaf node-flag {
3283 type boolean;
3284 description "Node flag.";
3285 }
3286 }
3288 grouping prefix-ipv4-source-router-id {
3289 description
3290 "Grouping for the IPv4 source router ID of a prefix
3291 advertisement.";
3293 leaf ipv4-source-router-id {
3294 type inet:ipv4-address;
3295 description "IPv4 Source router ID address.";
3296 }
3297 }
3299 grouping prefix-ipv6-source-router-id {
3300 description
3301 "Grouping for the IPv6 source router ID of a prefix
3302 advertisement.";
3304 leaf ipv6-source-router-id {
3305 type inet:ipv6-address;
3306 description "IPv6 Source router ID address.";
3307 }
3308 }
3310 grouping prefix-attributes-extension {
3311 description "Prefix extended attributes.";
3312 uses prefix-reachability-attributes;
3313 uses prefix-ipv4-source-router-id;
3314 uses prefix-ipv6-source-router-id;
3315 }
3317 grouping prefix-ipv4-std {
3318 description
3319 "Grouping for attributes of an IPv4 standard prefix.";
3320 leaf up-down {
3321 type boolean;
3322 description "Value of up/down bit.";
3323 }
3324 leaf i-e {
3325 type boolean;
3326 description "Value of I/E bit.";
3327 }
3328 leaf ip-prefix {
3329 type inet:ipv4-address;
3330 description "IPv4 prefix address";
3331 }
3332 leaf prefix-len {
3333 type uint8;
3334 description "IPv4 prefix length (in bits)";
3335 }
3336 leaf default-metric {
3337 type std-metric;
3338 description "Default IS-IS metric for IPv4 prefix";
3339 }
3340 container delay-metric {
3341 leaf metric {
3342 type std-metric;
3343 description "IS-IS delay metric for IPv4 prefix";
3344 }
3345 leaf supported {
3346 type boolean;
3347 default "false";
3348 description
3349 "Indicates whether IS-IS delay metric is supported.";
3350 }
3351 description "IS-IS delay metric container.";
3352 }
3353 container expense-metric {
3354 leaf metric {
3355 type std-metric;
3356 description "IS-IS expense metric for IPv4 prefix";
3357 }
3358 leaf supported {
3359 type boolean;
3360 default "false";
3361 description
3362 "Indicates whether IS-IS delay metric is supported.";
3363 }
3364 description "IS-IS expense metric container.";
3365 }
3366 container error-metric {
3367 leaf metric {
3368 type std-metric;
3369 description
3370 "This leaf describes the IS-IS error metric value";
3371 }
3372 leaf supported {
3373 type boolean;
3374 default "false";
3375 description "IS-IS error metric for IPv4 prefix";
3376 }
3377 description "IS-IS error metric container.";
3378 }
3379 }
3381 grouping prefix-ipv4-extended {
3382 description
3383 "Grouping for attributes of an IPv4 extended prefix.";
3384 leaf up-down {
3385 type boolean;
3386 description "Value of up/down bit.";
3387 }
3388 leaf ip-prefix {
3389 type inet:ipv4-address;
3390 description "IPv4 prefix address";
3391 }
3392 leaf prefix-len {
3393 type uint8;
3394 description "IPv4 prefix length (in bits)";
3395 }
3397 leaf metric {
3398 type wide-metric;
3399 description "IS-IS wide metric value";
3400 }
3401 leaf-list tag {
3402 type uint32;
3403 description
3404 "List of 32-bit tags associated with the IPv4 prefix.";
3405 }
3406 leaf-list tag64 {
3407 type uint64;
3408 description
3409 "List of 32-bit tags associated with the IPv4 prefix.";
3410 }
3411 uses prefix-attributes-extension;
3412 }
3414 grouping prefix-ipv6-extended {
3415 description "Grouping for attributes of an IPv6 prefix.";
3416 leaf up-down {
3417 type boolean;
3418 description "Value of up/down bit.";
3419 }
3420 leaf ip-prefix {
3421 type inet:ipv6-address;
3422 description "IPv6 prefix address";
3423 }
3424 leaf prefix-len {
3425 type uint8;
3426 description "IPv4 prefix length (in bits)";
3427 }
3428 leaf metric {
3429 type wide-metric;
3430 description "IS-IS wide metric value";
3431 }
3432 leaf-list tag {
3433 type uint32;
3434 description
3435 "List of 32-bit tags associated with the IPv4 prefix.";
3436 }
3437 leaf-list tag64 {
3438 type uint64;
3439 description
3440 "List of 32-bit tags associated with the IPv4 prefix.";
3441 }
3442 uses prefix-attributes-extension;
3443 }
3445 /* TLVs and subTLVs for neighbors */
3447 grouping neighbor-link-attributes {
3448 description
3449 "Grouping for link attributes as defined
3450 in RFC5029";
3451 leaf link-attributes-flags {
3452 type uint16;
3453 description
3454 "Flags for the link attributes";
3455 }
3457 }
3458 grouping neighbor-gmpls-extensions {
3459 description
3460 "Grouping for GMPLS attributes of a neighbor as defined
3461 in RFC5307";
3462 leaf link-local-id {
3463 type uint32;
3464 description
3465 "Local identifier of the link.";
3466 }
3467 leaf remote-local-id {
3468 type uint32;
3469 description
3470 "Remote identifier of the link.";
3471 }
3472 leaf protection-capability {
3473 type uint8;
3474 description
3475 "Describes the protection capabilities
3476 of the link. This is the value of the
3477 first octet of the sub-TLV type 20 value.";
3478 }
3479 container interface-switching-capability {
3480 description
3481 "Interface switching capabilities of the link.";
3482 leaf switching-capability {
3483 type uint8;
3484 description
3485 "Switching capability of the link.";
3486 }
3487 leaf encoding {
3488 type uint8;
3489 description
3490 "Type of encoding of the LSP being used.";
3491 }
3492 container max-lsp-bandwidths {
3493 description "Per priority max LSP bandwidths.";
3494 list max-lsp-bandwidth {
3495 leaf priority {
3496 type uint8 {
3497 range "0 .. 7";
3498 }
3499 description "Priority from 0 to 7.";
3500 }
3501 leaf bandwidth {
3502 type rt-types:bandwidth-ieee-float32;
3503 description "max LSP bandwidth.";
3504 }
3505 description
3506 "List of max LSP bandwidths for different
3507 priorities.";
3508 }
3509 }
3510 container tdm-specific {
3511 when "../switching-capability = 100";
3512 description
3513 "Switching Capability-specific information applicable
3514 when switching type is TDM.";
3516 leaf minimum-lsp-bandwidth {
3517 type rt-types:bandwidth-ieee-float32;
3518 description "minimum LSP bandwidth.";
3519 }
3520 leaf indication {
3521 type uint8;
3522 description
3523 "The indication whether the interface supports Standard
3524 or Arbitrary SONET/SDH.";
3525 }
3526 }
3527 container psc-specific {
3528 when "../switching-capability >= 1 and ../switching-capability
3529 <= 4";
3530 description
3531 "Switching Capability-specific information applicable
3532 when switching type is PSC1,PSC2,PSC3 or PSC4.";
3534 leaf minimum-lsp-bandwidth {
3535 type rt-types:bandwidth-ieee-float32;
3536 description "minimum LSP bandwidth.";
3537 }
3538 leaf mtu {
3539 type uint16;
3540 units bytes;
3541 description
3542 "Interface MTU";
3543 }
3544 }
3545 }
3546 }
3548 grouping neighbor-extended-te-extensions {
3549 description
3550 "Grouping for TE attributes of a neighbor as defined
3551 in RFC7810";
3553 container unidirectional-link-delay {
3554 description
3555 "Container for the average delay
3556 from the local neighbor to the remote one.";
3557 leaf flags {
3558 type bits {
3559 bit A {
3560 position 7;
3561 description
3562 "The A bit represents the Anomalous (A) bit.
3563 The A bit is set when the measured value of
3564 this parameter exceeds its configured
3565 maximum threshold.
3566 The A bit is cleared when the measured value
3567 falls below its configured reuse threshold.
3568 If the A bit is clear,
3569 the value represents steady-state link performance.";
3570 }
3571 }
3572 description
3573 "Flags.";
3574 }
3575 leaf value {
3576 type uint32;
3577 units usec;
3578 description
3579 "Delay value expressed in microseconds.";
3580 }
3581 }
3582 container min-max-unidirectional-link-delay {
3583 description
3584 "Container for the min and max delay
3585 from the local neighbor to the remote one.";
3586 leaf flags {
3587 type bits {
3588 bit A {
3589 position 7;
3590 description
3591 "The A bit represents the Anomalous (A) bit.
3592 The A bit is set when the measured value of
3593 this parameter exceeds its configured
3594 maximum threshold.
3595 The A bit is cleared when the measured value
3596 falls below its configured reuse threshold.
3597 If the A bit is clear,
3598 the value represents steady-state link performance.";
3599 }
3600 }
3601 description
3602 "Flags.";
3603 }
3604 leaf min-value {
3605 type uint32;
3606 units usec;
3607 description
3608 "Minimum delay value expressed in microseconds.";
3609 }
3610 leaf max-value {
3611 type uint32;
3612 units usec;
3613 description
3614 "Maximum delay value expressed in microseconds.";
3615 }
3616 }
3617 container unidirectional-link-delay-variation {
3618 description
3619 "Container for the average delay variation
3620 from the local neighbor to the remote one.";
3621 leaf value {
3622 type uint32;
3623 units usec;
3624 description
3625 "Delay variation value expressed in microseconds.";
3626 }
3627 }
3628 container unidirectional-link-loss{
3629 description
3630 "Container for the packet loss
3631 from the local neighbor to the remote one.";
3632 leaf flags {
3633 type bits {
3634 bit A {
3635 position 7;
3636 description
3637 "The A bit represents the Anomalous (A) bit.
3638 The A bit is set when the measured value of
3639 this parameter exceeds its configured
3640 maximum threshold.
3641 The A bit is cleared when the measured value
3642 falls below its configured reuse threshold.
3643 If the A bit is clear,
3644 the value represents steady-state link performance.";
3645 }
3646 }
3647 description
3648 "Flags.";
3649 }
3650 leaf value {
3651 type uint32;
3652 units percent;
3653 description
3654 "Link packet loss expressed as a percentage
3655 of the total traffic sent over a configurable interval.";
3656 }
3657 }
3658 container unidirectional-link-residual-bandwidth {
3659 description
3660 "Container for the residual bandwidth
3661 from the local neighbor to the remote one.";
3662 leaf value {
3663 type rt-types:bandwidth-ieee-float32;
3664 units Bps;
3665 description
3666 "Residual bandwidth.";
3667 }
3668 }
3669 container unidirectional-link-available-bandwidth {
3670 description
3671 "Container for the available bandwidth
3672 from the local neighbor to the remote one.";
3673 leaf value {
3674 type rt-types:bandwidth-ieee-float32;
3675 units Bps;
3676 description
3677 "Available bandwidth.";
3678 }
3679 }
3680 container unidirectional-link-utilized-bandwidth {
3681 description
3682 "Container for the utilized bandwidth
3683 from the local neighbor to the remote one.";
3684 leaf value {
3685 type rt-types:bandwidth-ieee-float32;
3686 units Bps;
3687 description
3688 "Utilized bandwidth.";
3689 }
3690 }
3691 }
3693 grouping neighbor-te-extensions {
3694 description
3695 "Grouping for TE attributes of a neighbor as defined
3696 in RFC5305";
3697 leaf admin-group {
3698 type uint32;
3699 description
3700 "Administrative group/Resource Class/Color.";
3701 }
3702 container local-if-ipv4-addrs {
3703 description "All local interface IPv4 addresses.";
3704 leaf-list local-if-ipv4-addr {
3705 type inet:ipv4-address;
3706 description
3707 "List of local interface IPv4 addresses.";
3708 }
3709 }
3710 container remote-if-ipv4-addrs {
3711 description "All remote interface IPv4 addresses.";
3712 leaf-list remote-if-ipv4-addr {
3713 type inet:ipv4-address;
3714 description
3715 "List of remote interface IPv4 addresses.";
3716 }
3717 }
3718 leaf te-metric {
3719 type uint32;
3720 description "TE metric.";
3721 }
3722 leaf max-bandwidth {
3723 type rt-types:bandwidth-ieee-float32;
3724 description "Maximum bandwidth.";
3725 }
3726 leaf max-reservable-bandwidth {
3727 type rt-types:bandwidth-ieee-float32;
3728 description "Maximum reservable bandwidth.";
3729 }
3730 container unreserved-bandwidths {
3731 description "All unreserved bandwidths.";
3732 list unreserved-bandwidth {
3733 leaf priority {
3734 type uint8 {
3735 range "0 .. 7";
3736 }
3737 description "Priority from 0 to 7.";
3738 }
3739 leaf unreserved-bandwidth {
3740 type rt-types:bandwidth-ieee-float32;
3741 description "Unreserved bandwidth.";
3742 }
3743 description
3744 "List of unreserved bandwidths for different
3745 priorities.";
3747 }
3748 }
3749 }
3751 grouping neighbor-extended {
3752 description
3753 "Grouping for attributes of an IS-IS extended neighbor.";
3754 leaf neighbor-id {
3755 type extended-system-id;
3756 description "System-id of the extended neighbor.";
3757 }
3758 container instances {
3759 description "List of all adjacencies between the local
3760 system and the neighbor system-id.";
3761 list instance {
3762 key id;
3764 leaf id {
3765 type uint32;
3766 description "Unique identifier of an instance of a
3767 particular neighbor.";
3768 }
3769 leaf metric {
3770 type wide-metric;
3771 description "IS-IS wide metric for extended neighbor";
3772 }
3773 uses neighbor-gmpls-extensions;
3774 uses neighbor-te-extensions;
3775 uses neighbor-extended-te-extensions;
3776 uses neighbor-link-attributes;
3777 uses unknown-tlvs;
3778 description "Instance of a particular adjacency.";
3779 }
3780 }
3781 }
3783 grouping neighbor {
3784 description "IS-IS standard neighbor grouping.";
3785 leaf neighbor-id {
3786 type extended-system-id;
3787 description "IS-IS neighbor system-id";
3788 }
3789 container instances {
3790 description "List of all adjacencies between the local
3791 system and the neighbor system-id.";
3792 list instance {
3793 key id;
3794 leaf id {
3795 type uint32;
3796 description "Unique identifier of an instance of a
3797 particular neighbor.";
3798 }
3799 leaf i-e {
3800 type boolean;
3801 description
3802 "Internal or External (I/E) Metric bit value";
3803 }
3804 leaf default-metric {
3805 type std-metric;
3806 description "IS-IS default metric value";
3807 }
3808 container delay-metric {
3809 leaf metric {
3810 type std-metric;
3811 description "IS-IS delay metric value";
3812 }
3813 leaf supported {
3814 type boolean;
3815 default "false";
3816 description "IS-IS delay metric supported";
3817 }
3818 description "IS-IS delay metric container";
3819 }
3820 container expense-metric {
3821 leaf metric {
3822 type std-metric;
3823 description "IS-IS delay expense metric value";
3824 }
3825 leaf supported {
3826 type boolean;
3827 default "false";
3828 description "IS-IS delay expense metric supported";
3829 }
3830 description "IS-IS delay expense metric container";
3831 }
3832 container error-metric {
3833 leaf metric {
3834 type std-metric;
3835 description "IS-IS error metric value";
3836 }
3837 leaf supported {
3838 type boolean;
3839 default "false";
3840 description "IS-IS error metric supported";
3841 }
3842 description "IS-IS error metric container";
3843 }
3844 description "Instance of a particular adjacency.";
3845 }
3846 }
3847 }
3849 /* Top level TLVs */
3851 grouping tlv132-ipv4-addresses {
3852 leaf-list ipv4-addresses {
3853 type inet:ipv4-address;
3854 description
3855 "List of IPv4 addresses of the IS-IS node - IS-IS
3856 reference is TLV 132.";
3857 }
3858 description "Grouping for TLV132.";
3859 }
3860 grouping tlv232-ipv6-addresses {
3861 leaf-list ipv6-addresses {
3862 type inet:ipv6-address;
3863 description
3864 "List of IPv6 addresses of the IS-IS node - IS-IS
3865 reference is TLV 232.";
3866 }
3867 description "Grouping for TLV232.";
3868 }
3869 grouping tlv134-ipv4-te-rid {
3870 leaf ipv4-te-routerid {
3871 type inet:ipv4-address;
3872 description
3873 "IPv4 Traffic Engineering router ID of the IS-IS node -
3874 IS-IS reference is TLV 134.";
3875 }
3876 description "Grouping for TLV134.";
3877 }
3878 grouping tlv140-ipv6-te-rid {
3879 leaf ipv6-te-routerid {
3880 type inet:ipv6-address;
3881 description
3882 "IPv6 Traffic Engineering router ID of the IS-IS node -
3883 IS-IS reference is TLV 140.";
3884 }
3885 description "Grouping for TLV140.";
3886 }
3887 grouping tlv129-protocols {
3888 leaf-list protocol-supported {
3889 type uint8;
3890 description
3891 "List of supported protocols of the IS-IS node -
3892 IS-IS reference is TLV 129.";
3893 }
3894 description "Grouping for TLV129.";
3895 }
3896 grouping tlv137-hostname {
3897 leaf dynamic-hostname {
3898 type string;
3899 description
3900 "Host Name of the IS-IS node - IS-IS reference
3901 is TLV 137.";
3902 }
3903 description "Grouping for TLV137.";
3904 }
3905 grouping tlv10-authentication {
3906 container authentication {
3907 leaf authentication-type {
3908 type string;
3909 description
3910 "Authentication type to be used with IS-IS node.";
3911 }
3912 leaf authentication-key {
3913 type string;
3914 description
3915 "Authentication keyto be used. For security reasons,
3916 the authentication key MUST NOT be presented in
3917 plaintext format. It is recommended to use an MD5
3918 hash to present the authentication-key.";
3919 }
3920 description
3921 "IS-IS node authentication information container -
3922 IS-IS reference is TLV 10.";
3923 }
3924 description "Grouping for TLV10.";
3925 }
3926 grouping tlv229-mt {
3927 container mt-entries {
3928 list topology {
3929 description
3930 "List of topologies supported";
3932 leaf mt-id {
3933 type uint16 {
3934 range "0 .. 4095";
3935 }
3936 description
3937 "Multi-Topology identifier of topology.";
3939 }
3941 leaf attributes {
3942 type bits {
3943 bit overload {
3944 description
3945 "If set, the originator is overloaded,
3946 and must be avoided in path calculation.";
3947 }
3948 bit attached {
3949 description
3950 "If set, the originator is attached to
3951 another area using the referred metric.";
3952 }
3953 }
3954 description
3955 "Attributes of the LSP for the associated
3956 topology.";
3957 }
3958 }
3959 description
3960 "IS-IS node topology information container -
3961 IS-IS reference is TLV 229.";
3962 }
3963 description "Grouping for TLV229.";
3964 }
3966 grouping tlv242-router-capabilities {
3967 container router-capabilities {
3968 list router-capability {
3969 leaf flags {
3970 type bits {
3971 bit flooding {
3972 position 0;
3973 description
3974 "If the S bit is set, the IS-IS Router CAPABILITY
3975 TLV MUST be flooded across the entire routing
3976 domain. If the S bit is clear, the TLV MUST NOT
3977 be leaked between levels. This bit MUST NOT
3978 be altered during the TLV leaking.";
3979 }
3980 bit down {
3981 position 1;
3982 description
3983 "When the IS-IS Router CAPABILITY TLV is leaked
3984 from level-2 to level-1, the D bit MUST be set.
3985 Otherwise, this bit MUST be clear. IS-IS Router
3986 capability TLVs with the D bit set MUST NOT be
3987 leaked from level-1 to level-2 in to prevent
3988 TLV looping.";
3989 }
3990 }
3991 description "Router Capability Flags";
3992 }
3993 container node-tags {
3994 if-feature node-tag;
3995 list node-tag {
3996 leaf tag {
3997 type uint32;
3998 description "Node tag value.";
3999 }
4000 description "List of tags.";
4001 }
4002 description "Container for node admin tags";
4003 }
4005 uses unknown-tlvs;
4007 leaf binary {
4008 type binary;
4009 description
4010 "Binary encoding of the IS-IS node capabilities";
4011 }
4012 description
4013 "IS-IS node capabilities. This list element may
4014 be extended with detailed information - IS-IS
4015 reference is TLV 242.";
4016 }
4017 description "List of router capability TLVs.";
4018 }
4019 description "Grouping for TLV242.";
4020 }
4022 grouping tlv138-srlg {
4023 description
4024 "Grouping for TLV138.";
4025 container links-srlgs {
4026 list links {
4027 leaf neighbor-id {
4028 type extended-system-id;
4029 description "System-id of the extended neighbor.";
4030 }
4031 leaf flags {
4032 type uint8;
4033 description
4034 "Flags associated with the link.";
4036 }
4037 leaf link-local-id {
4038 type union {
4039 type inet:ip-address;
4040 type uint32;
4041 }
4042 description
4043 "Local identifier of the link.
4044 It could be an IPv4 address or a local identifier.";
4045 }
4046 leaf link-remote-id {
4047 type union {
4048 type inet:ip-address;
4049 type uint32;
4050 }
4051 description
4052 "Remote identifier of the link.
4053 It could be an IPv4 address or a remotely learned
4054 identifier.";
4055 }
4056 container srlgs {
4057 description "List of SRLGs.";
4058 leaf-list srlg {
4059 type uint32;
4060 description
4061 "SRLG value of the link.";
4062 }
4063 }
4064 description
4065 "SRLG attribute of a link.";
4066 }
4067 description
4068 "List of links with SRLGs";
4069 }
4070 }
4072 /* Grouping for LSDB description */
4074 grouping lsp-entry {
4075 description "IS-IS LSP database entry groupting";
4077 leaf decoded-completed {
4078 type boolean;
4079 description "IS-IS LSP body fully decoded.";
4080 }
4081 leaf raw-data {
4082 type yang:hex-string;
4083 description
4084 "The hexadecial representation of the complete LSP in
4085 network-byte order (NBO) as received or originated.";
4086 }
4087 leaf lsp-id {
4088 type lsp-id;
4089 description "LSP ID of the LSP";
4090 }
4091 leaf checksum {
4092 type uint16;
4093 description "LSP checksum";
4094 }
4095 leaf remaining-lifetime {
4096 type uint16;
4097 units "seconds";
4098 description
4099 "Remaining lifetime (in seconds) until LSP expiration.";
4100 }
4101 leaf sequence {
4102 type uint32;
4103 description
4104 "This leaf describes the sequence number of the LSP.";
4105 }
4106 leaf attributes {
4107 type bits {
4108 bit partitioned {
4109 description "Originator partition repair supported";
4110 }
4111 bit attached-error {
4112 description
4113 "If set, the originator is attached to
4114 another area using the referred metric.";
4115 }
4116 bit attached-expense {
4117 description
4118 "If set, the originator is attached to
4119 another area using the referred metric.";
4120 }
4121 bit attached-delay {
4122 description
4123 "If set, the originator is attached to
4124 another area using the referred metric.";
4125 }
4126 bit attached-default {
4127 description
4128 "If set, the originator is attached to
4129 another area using the referred metric.";
4130 }
4131 bit overload {
4132 description
4133 "If set, the originator is overloaded,
4134 and must be avoided in path calculation.";
4135 }
4136 }
4137 description "LSP attributes";
4138 }
4140 uses tlv132-ipv4-addresses;
4141 uses tlv232-ipv6-addresses;
4142 uses tlv134-ipv4-te-rid;
4143 uses tlv140-ipv6-te-rid;
4144 uses tlv129-protocols;
4145 uses tlv137-hostname;
4146 uses tlv10-authentication;
4147 uses tlv229-mt;
4148 uses tlv242-router-capabilities;
4149 uses tlv138-srlg;
4150 uses unknown-tlvs;
4152 container is-neighbor {
4153 list neighbor {
4154 key neighbor-id;
4156 uses neighbor;
4157 description "List of neighbors.";
4158 }
4159 description
4160 "Standard IS neighbors container - IS-IS reference is
4161 TLV 2.";
4162 }
4164 container extended-is-neighbor {
4165 list neighbor {
4166 key neighbor-id;
4168 uses neighbor-extended;
4169 description
4170 "List of extended IS neighbors";
4171 }
4172 description
4173 "Standard IS extended neighbors container - IS-IS
4174 reference is TLV 22";
4175 }
4177 container ipv4-internal-reachability {
4178 list prefixes {
4179 uses prefix-ipv4-std;
4180 description "List of prefixes.";
4181 }
4182 description
4183 "IPv4 internal reachability information container - IS-IS
4184 reference is TLV 128.";
4185 }
4187 container ipv4-external-reachability {
4188 list prefixes {
4189 uses prefix-ipv4-std;
4190 description "List of prefixes.";
4191 }
4192 description
4193 "IPv4 external reachability information container -
4194 IS-IS reference is TLV 130.";
4195 }
4197 container extended-ipv4-reachability {
4198 list prefixes {
4199 uses prefix-ipv4-extended;
4200 uses unknown-tlvs;
4201 description "List of prefixes.";
4202 }
4203 description
4204 "IPv4 extended reachability information container -
4205 IS-IS reference is TLV 135.";
4206 }
4208 container mt-is-neighbor {
4209 list neighbor {
4210 leaf mt-id {
4211 type uint16 {
4212 range "0 .. 4095";
4213 }
4214 description "Multi-topology (MT) identifier";
4215 }
4216 uses neighbor-extended;
4217 description "List of neighbors.";
4218 }
4219 description
4220 "IS-IS multi-topology neighbor container - IS-IS
4221 reference is TLV 223.";
4222 }
4224 container mt-extended-ipv4-reachability {
4225 list prefixes {
4226 leaf mt-id {
4227 type uint16 {
4228 range "0 .. 4095";
4229 }
4230 description "Multi-topology (MT) identifier";
4231 }
4232 uses prefix-ipv4-extended;
4233 uses unknown-tlvs;
4234 description "List of extended prefixes.";
4235 }
4236 description
4237 "IPv4 multi-topolgy (MT) extended reachability
4238 information container - IS-IS reference is TLV 235.";
4239 }
4241 container mt-ipv6-reachability {
4242 list prefixes {
4243 leaf MT-ID {
4244 type uint16 {
4245 range "0 .. 4095";
4246 }
4247 description "Multi-topology (MT) identifier";
4248 }
4249 uses prefix-ipv6-extended;
4250 uses unknown-tlvs;
4251 description "List of IPv6 extended prefixes.";
4252 }
4253 description
4254 "IPv6 multi-topolgy (MT) extended reachability
4255 information container - IS-IS reference is TLV 237.";
4256 }
4258 container ipv6-reachability {
4259 list prefixes {
4260 uses prefix-ipv6-extended;
4261 uses unknown-tlvs;
4262 description "List of IPv6 prefixes.";
4263 }
4264 description
4265 "IPv6 reachability information container - IS-IS
4266 reference is TLV 236.";
4267 }
4268 }
4270 grouping lsdb {
4271 description "Link State Database (LSDB) grouping";
4272 container database {
4273 config false;
4274 list level-db {
4275 key level;
4276 leaf level {
4277 type level-number;
4278 description "LSDB level number (1 or 2)";
4279 }
4280 list lsp {
4281 key lsp-id;
4282 uses lsp-entry;
4283 description "List of LSPs in LSDB";
4284 }
4285 description "LSP list for LSDB level container";
4286 }
4287 description "IS-IS Link State database container";
4288 }
4289 }
4291 /* Augmentations */
4293 augment "/rt:routing/"
4294 +"rt:ribs/rt:rib/rt:routes/rt:route" {
4295 when "rt:source-protocol = 'isis:isis'" {
4296 description "IS-IS-specific route attributes.";
4297 }
4298 uses route-content;
4299 description
4300 "This augments route object in RIB with IS-IS-specific
4301 attributes.";
4302 }
4304 augment "/if:interfaces/if:interface" {
4305 leaf clns-mtu {
4306 type uint16;
4307 description "CLNS MTU of the interface";
4308 }
4309 description "ISO specific interface parameters.";
4310 }
4312 augment "/rt:routing/rt:control-plane-protocols/"
4313 +"rt:control-plane-protocol" {
4314 when "rt:type = 'isis:isis'" {
4315 description
4316 "This augment is only valid when routing protocol
4317 instance type is 'isis'";
4318 }
4319 description
4320 "This augments a routing protocol instance with IS-IS
4321 specific parameters.";
4322 container isis {
4323 must "count(area-address) > 0" {
4324 error-message
4325 "At least one area-address must be configured.";
4326 description
4327 "Enforce configuration of at least one area.";
4328 }
4330 uses instance-config;
4331 uses instance-state;
4333 container topologies {
4334 if-feature multi-topology;
4335 list topology {
4336 key "name";
4337 leaf enable {
4338 type boolean;
4339 description "Topology enable configuration";
4340 }
4341 leaf name {
4342 type leafref {
4343 path "../../../../../../rt:ribs/rt:rib/rt:name";
4344 }
4345 description
4346 "Routing Information Base (RIB) corresponding
4347 to topology.";
4348 }
4350 uses multi-topology-config;
4352 description "List of topologies";
4353 }
4354 description "Multi-topology container";
4355 }
4356 container interfaces {
4357 list interface {
4358 key "name";
4359 leaf name {
4360 type if:interface-ref;
4362 description
4363 "Reference to the interface within
4364 the routing-instance.";
4365 }
4366 uses interface-config;
4367 uses interface-state;
4368 container topologies {
4369 if-feature multi-topology;
4370 list topology {
4371 key name;
4373 leaf name {
4374 type leafref {
4375 path "../../../../../../../../"+
4376 "rt:ribs/rt:rib/rt:name";
4377 }
4379 description
4380 "Routing Information Base (RIB) corresponding
4381 to topology.";
4382 }
4383 uses multi-topology-interface-config;
4384 description "List of interface topologies";
4385 }
4386 description "Multi-topology container";
4387 }
4388 description "List of IS-IS interfaces.";
4389 }
4390 description
4391 "IS-IS interface specific configuration container";
4392 }
4394 description
4395 "IS-IS configuration/state top-level container";
4396 }
4397 }
4399 /* RPC methods */
4401 rpc clear-adjacency {
4402 description
4403 "This RPC request clears a particular set of IS-IS
4404 adjacencies. If the operation fails due to an internal
4405 reason, then the error-tag and error-app-tag should be
4406 set indicating the reason for the failure.";
4407 input {
4409 leaf routing-protocol-instance-name {
4410 type leafref {
4411 path "/rt:routing/rt:control-plane-protocols/"
4412 + "rt:control-plane-protocol/rt:name";
4413 }
4414 mandatory "true";
4415 description
4416 "Name of the IS-IS protocol instance whose IS-IS
4417 information is being queried.
4419 If the corresponding IS-IS instance doesn't exist,
4420 then the operation will fail with an error-tag of
4421 'data-missing' and an error-app-tag of
4422 'routing-protocol-instance-not-found'.";
4423 }
4424 leaf level {
4425 type level;
4426 description
4427 "IS-IS level of the adjacency to be cleared. If the
4428 IS-IS level is level-1-2, both level 1 and level 2
4429 adjacencies would be cleared.
4431 If the value provided is different from the one
4432 authorized in the enum type, then the operation
4433 SHALL fail with an error-tag of 'data-missing' and
4434 an error-app-tag of 'bad-isis-level'.";
4435 }
4436 leaf interface {
4437 type if:interface-ref;
4438 description
4439 "IS-IS interface name.
4441 If the corresponding IS-IS interface doesn't exist,
4442 then the operation SHALL fail with an error-tag of
4443 'data-missing' and an error-app-tag of
4444 'isis-interface-not-found'.";
4445 }
4446 }
4447 }
4449 rpc clear-database {
4450 description
4451 "This RPC request clears a particular IS-IS database. If
4452 the operation fails for an IS-IS internal reason, then
4453 the error-tag and error-app-tag should be set
4454 indicating the reason for the failure.";
4455 input {
4456 leaf routing-protocol-instance-name {
4457 type leafref {
4458 path "/rt:routing/rt:control-plane-protocols/"
4459 + "rt:control-plane-protocol/rt:name";
4460 }
4461 mandatory "true";
4462 description
4463 "Name of the IS-IS protocol instance whose IS-IS
4464 database(s) is/are being cleared.
4466 If the corresponding IS-IS instance doesn't exist,
4467 then the operation will fail with an error-tag of
4468 'data-missing' and an error-app-tag of
4469 'routing-protocol-instance-not-found'.";
4470 }
4471 leaf level {
4472 type level;
4473 description
4474 "IS-IS level of the adjacency to be cleared. If the
4475 IS-IS level is level-1-2, both level 1 and level 2
4476 databases would be cleared.
4478 If the value provided is different from the one
4479 authorized in the enum type, then the operation
4480 SHALL fail with an error-tag of 'data-missing' and
4481 an error-app-tag of 'bad-isis-level'.";
4482 }
4483 }
4484 }
4486 /* Notifications */
4488 notification database-overload {
4489 uses notification-instance-hdr;
4491 leaf overload {
4492 type enumeration {
4493 enum off {
4494 description
4495 "Indicates IS-IS instance has left overload state";
4496 }
4497 enum on {
4498 description
4499 "Indicates IS-IS instance has entered overload state";
4500 }
4502 }
4503 description "New overload state of the IS-IS instance";
4504 }
4505 description
4506 "This notification is sent when an IS-IS instance
4507 overload state changes.";
4508 }
4509 notification lsp-too-large {
4510 uses notification-instance-hdr;
4511 uses notification-interface-hdr;
4513 leaf pdu-size {
4514 type uint32;
4515 description "Size of the LSP PDU";
4516 }
4517 leaf lsp-id {
4518 type lsp-id;
4519 description "LSP ID";
4520 }
4521 description
4522 "This notification is sent when we attempt to propagate
4523 an LSP that is larger than the dataLinkBlockSize for the
4524 circuit. The notification generation must be throttled
4525 with at least 5 seconds betweeen successive
4526 notifications.";
4527 }
4529 notification if-state-change {
4530 uses notification-instance-hdr;
4531 uses notification-interface-hdr;
4533 leaf state {
4534 type if-state-type;
4535 description "Interface state.";
4536 }
4537 description
4538 "This notification is sent when an interface
4539 state change is detected.";
4540 }
4542 notification corrupted-lsp-detected {
4543 uses notification-instance-hdr;
4544 leaf lsp-id {
4545 type lsp-id;
4546 description "LSP ID";
4547 }
4548 description
4549 "This notification is sent when we find that
4550 an LSP that was stored in memory has become
4551 corrupted.";
4552 }
4554 notification attempt-to-exceed-max-sequence {
4555 uses notification-instance-hdr;
4556 leaf lsp-id {
4557 type lsp-id;
4558 description "LSP ID";
4559 }
4560 description
4561 "This notification is sent when the system
4562 wraps the 32-bit sequence counter of an LSP.";
4563 }
4565 notification id-len-mismatch {
4566 uses notification-instance-hdr;
4567 uses notification-interface-hdr;
4569 leaf pdu-field-len {
4570 type uint8;
4571 description "Size of the ID length in the received PDU";
4572 }
4573 leaf raw-pdu {
4574 type binary;
4575 description "Received raw PDU.";
4576 }
4577 description
4578 "This notification is sent when we receive a PDU
4579 with a different value for the System ID length.
4580 The notification generation must be throttled
4581 with at least 5 seconds betweeen successive
4582 notifications.";
4583 }
4585 notification max-area-addresses-mismatch {
4586 uses notification-instance-hdr;
4587 uses notification-interface-hdr;
4589 leaf max-area-addresses {
4590 type uint8;
4591 description "Received number of supported areas";
4592 }
4593 leaf raw-pdu {
4594 type binary;
4595 description "Received raw PDU.";
4596 }
4597 description
4598 "This notification is sent when we receive a PDU
4599 with a different value for the Maximum Area Addresses.
4600 The notification generation must be throttled
4601 with at least 5 seconds betweeen successive
4602 notifications.";
4603 }
4604 notification own-lsp-purge {
4605 uses notification-instance-hdr;
4606 uses notification-interface-hdr;
4607 leaf lsp-id {
4608 type lsp-id;
4609 description "LSP ID";
4610 }
4611 description
4612 "This notification is sent when the system receives
4613 a PDU with its own system ID and zero age.";
4614 }
4616 notification sequence-number-skipped {
4617 uses notification-instance-hdr;
4618 uses notification-interface-hdr;
4619 leaf lsp-id {
4620 type lsp-id;
4621 description "LSP ID";
4622 }
4623 description
4624 "This notification is sent when the system receives a
4625 PDU with its own system ID and different contents. The
4626 system has to reoriginate the LSP with a higher sequence
4627 number.";
4628 }
4630 notification authentication-type-failure {
4631 uses notification-instance-hdr;
4632 uses notification-interface-hdr;
4633 leaf raw-pdu {
4634 type binary;
4635 description "Received raw PDU.";
4636 }
4637 description
4638 "This notification is sent when the system receives a
4639 PDU with the wrong authentication type field.
4640 The notification generation must be throttled
4641 with at least 5 seconds betweeen successive
4642 notifications.";
4643 }
4645 notification authentication-failure {
4646 uses notification-instance-hdr;
4647 uses notification-interface-hdr;
4648 leaf raw-pdu {
4649 type binary;
4650 description "Received raw PDU.";
4651 }
4652 description
4653 "This notification is sent when the system receives
4654 a PDU with the wrong authentication information.
4655 The notification generation must be throttled with
4656 with at least 5 seconds betweeen successive
4657 notifications.";
4658 }
4660 notification version-skew {
4661 uses notification-instance-hdr;
4662 uses notification-interface-hdr;
4663 leaf protocol-version {
4664 type uint8;
4665 description "Protocol version received in the PDU.";
4666 }
4667 leaf raw-pdu {
4668 type binary;
4669 description "Received raw PDU.";
4670 }
4671 description
4672 "This notification is sent when the system receives a
4673 PDU with a different protocol version number.
4674 The notification generation must be throttled
4675 with at least 5 seconds betweeen successive
4676 notifications.";
4677 }
4679 notification area-mismatch {
4680 uses notification-instance-hdr;
4681 uses notification-interface-hdr;
4682 leaf raw-pdu {
4683 type binary;
4684 description "Received raw PDU.";
4685 }
4686 description
4687 "This notification is sent when the system receives a
4688 Hello PDU from an IS that does not share any area
4689 address. The notification generation must be throttled
4690 with at least 5 seconds betweeen successive
4691 notifications.";
4692 }
4694 notification rejected-adjacency {
4695 uses notification-instance-hdr;
4696 uses notification-interface-hdr;
4697 leaf raw-pdu {
4698 type binary;
4699 description
4700 "Received raw PDU.";
4701 }
4702 leaf reason {
4703 type string;
4704 description
4705 "The system may provide a reason to reject the
4706 adjacency. If the reason is not available,
4707 an empty string will be returned.";
4708 }
4709 description
4710 "This notification is sent when the system receives a
4711 Hello PDU from an IS but does not establish an adjacency
4712 for some reason. The notification generation must be
4713 throttled with at least 5 seconds betweeen successive
4714 notifications.";
4715 }
4717 notification protocols-supported-mismatch {
4718 uses notification-instance-hdr;
4719 uses notification-interface-hdr;
4720 leaf raw-pdu {
4721 type binary;
4722 description "Received raw PDU.";
4723 }
4724 leaf-list protocols {
4725 type uint8;
4726 description
4727 "List of protocols supported by the remote system.";
4728 }
4729 description
4730 "This notification is sent when the system receives a
4731 non-pseudonode LSP that has no matching protocols
4732 supported. The notification generation must be throttled
4733 with at least 5 seconds betweeen successive
4734 notifications.";
4735 }
4737 notification lsp-error-detected {
4738 uses notification-instance-hdr;
4739 uses notification-interface-hdr;
4740 leaf lsp-id {
4741 type lsp-id;
4742 description "LSP ID.";
4743 }
4744 leaf raw-pdu {
4745 type binary;
4746 description "Received raw PDU.";
4748 }
4749 leaf error-offset {
4750 type uint32;
4751 description
4752 "If the problem is a malformed TLV, the error-offset
4753 points to the start of the TLV. If the problem is with
4754 the LSP header, the error-offset points to the errant
4755 byte";
4756 }
4757 leaf tlv-type {
4758 type uint8;
4759 description
4760 "If the problem is a malformed TLV, the tlv-type is set
4761 to the type value of the suspicious TLV. Otherwise,
4762 this leaf is not present.";
4763 }
4764 description
4765 "This notification is sent when the system receives an
4766 LSP with a parse error. The notification generation must
4767 be throttled with at least 5 seconds betweeen successive
4768 notifications.";
4769 }
4771 notification adjacency-state-change {
4772 uses notification-instance-hdr;
4773 uses notification-interface-hdr;
4774 leaf neighbor {
4775 type string;
4776 description
4777 "Name of the neighbor. If the name of the neighbor is
4778 not available, it is not returned.";
4779 }
4780 leaf neighbor-system-id {
4781 type system-id;
4782 description "Neighbor system-id";
4783 }
4784 leaf state {
4785 type adj-state-type;
4787 description "New state of the IS-IS adjacency.";
4788 }
4789 leaf reason {
4790 type string;
4791 description
4792 "If the adjacency is going to DOWN, this leaf provides
4793 a reason for the adjacency going down. The reason is
4794 provided as a text. If the adjacency is going to UP, no
4795 reason is provided.";
4797 }
4798 description
4799 "This notification is sent when an IS-IS adjacency
4800 moves to Up state or to Down state.";
4801 }
4803 notification lsp-received {
4804 uses notification-instance-hdr;
4805 uses notification-interface-hdr;
4807 leaf lsp-id {
4808 type lsp-id;
4809 description "LSP ID";
4810 }
4811 leaf sequence {
4812 type uint32;
4813 description "Sequence number of the received LSP.";
4814 }
4815 leaf received-timestamp {
4816 type yang:timestamp;
4818 description "Timestamp when the LSP was received.";
4819 }
4820 leaf neighbor-system-id {
4821 type system-id;
4822 description "Neighbor system-id of LSP sender";
4823 }
4824 description
4825 "This notification is sent when an LSP is received.
4826 The notification generation must be throttled with at
4827 least 5 seconds betweeen successive notifications.";
4828 }
4830 notification lsp-generation {
4831 uses notification-instance-hdr;
4833 leaf lsp-id {
4834 type lsp-id;
4835 description "LSP ID";
4836 }
4837 leaf sequence {
4838 type uint32;
4839 description "Sequence number of the received LSP.";
4840 }
4841 leaf send-timestamp {
4842 type yang:timestamp;
4844 description "Timestamp when our LSP was regenerated.";
4846 }
4847 description
4848 "This notification is sent when an LSP is regenerated.
4849 The notification generation must be throttled with at
4850 least 5 seconds betweeen successive notifications.";
4851 }
4852 }
4854
4856 7. Security Considerations
4858 The YANG module specified in this document defines a schema for data
4859 that is designed to be accessed via network management protocols such
4860 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
4861 is the secure transport layer, and the mandatory-to-implement secure
4862 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
4863 is HTTPS, and the mandatory-to-implement secure transport is TLS
4864 [RFC8446]
4866 The Network Configuration Access Control Model (NACM) [RFC8341]
4867 provides the means to restrict access for particular NETCONF or
4868 RESTCONF users to a preconfigured subset of all available NETCONF or
4869 RESTCONF protocol operations and content.
4871 There are a number of data nodes defined in this YANG module that are
4872 writable/creatable/deletable (i.e., config true, which is the
4873 default). These data nodes may be considered sensitive or vulnerable
4874 in some network environments. Write operations (e.g., edit-config)
4875 to these data nodes without proper protection can have a negative
4876 effect on network operations. For IS-IS, the ability to modify IS-IS
4877 configuration will allow the entire IS-IS domain to be compromised
4878 including creating adjacencies with unauthorized routers to misroute
4879 traffic, isolate routers, or mount a massive Denial-of-Service (DoS)
4880 attack. A user should consider all the configuration nodes are
4881 sensible.
4883 Some of the readable data nodes in this YANG module may be considered
4884 sensitive or vulnerable in some network environments. It is thus
4885 important to control read access (e.g., via get, get-config, or
4886 notification) to these data nodes. The exposure of the Link State
4887 Database (LSDB) will expose the detailed topology of the network
4888 including authentication parameters. Implementations MUST NOT
4889 provide a configured authentication key in a clear text format in
4890 response to any request (e.g., via get, get-config).
4892 For IS-IS authentication, configuration is supported vua the
4893 specification of key-chain [RFC8177] or the direction specification
4894 of key and authentication algorithm. Hence, authentification
4895 configuration using the "auth-table-trailer" case in the
4896 "authentication" container inherits the security considerations of
4897 [RFC8177]. This includes the considerations with respect to the
4898 local storage and handling of authentication keys.
4900 Some of the RPC operations in this YANG module may be considered
4901 sensitive or vulnerable in some network environments. It is thus
4902 important to control access to these operations. The OSPF YANG
4903 module support the "clear-adjacency" and "clear-database" RPCs. If
4904 access too either of these is compromised, they can result in
4905 temporary network outages be employed to mount DoS attacks.
4907 8. Contributors
4909 Authors would like to thank Kiran Agrahara Sreenivasa, Dean
4910 Bogdanovic, Yingzhen Qu, Yi Yang, Jeff Tanstura for their major
4911 contributions to the draft.
4913 9. IANA Considerations
4915 The IANA is requested to assign two new URIs from the IETF XML
4916 registry ([RFC3688]). Authors are suggesting the following URI:
4918 URI: urn:ietf:params:xml:ns:yang:ietf-isis
4919 Registrant Contact: IS-IS WG
4920 XML: N/A, the requested URI is an XML namespace
4922 This document also requests one new YANG module name in the YANG
4923 Module Names registry ([RFC6020]) with the following suggestion:
4925 name: ietf-isis
4926 namespace: urn:ietf:params:xml:ns:yang:ietf-isis
4927 prefix: isis
4928 reference: RFC XXXX
4930 10. Change log for ietf-isis YANG module
4932 10.1. From version -26 to version -27
4934 o Fixed XPATH to switching-capability leaf in "when" statement of
4935 psc-specific and tdm-specific containers.
4937 10.2. From version -25 to version -26
4939 o Modify BFD reference descriptions.
4941 o Fix indentation.
4943 o "uses interface-state" was missing.
4945 10.3. From version -24 to version -25
4947 o RPC clear-adjacency uses now an interface reference instead of a
4948 string.
4950 o Use expanded "address-family" rather than "af" in the model.
4952 o Fix pattern for area-address.
4954 o Removed unnecessary identities.
4956 o Added an instances container and list in the modeling of neighbors
4957 in the LSDB. This is to manage the case where there are parallel
4958 links between two neighbors.
4960 o Notification instance header: removed routing-instance leaf
4961 (alignment with OSPF).
4963 o Notification instance header: changed routing-protocol-name to a
4964 reference.
4966 o Notification interface header: changed interface to a reference.
4968 o RPCs: changed instance-state-ref typedef to a leafref. Removed
4969 associated typedef.
4971 o Revised some groupings and their names (alignment with OSPF).
4973 o Some description alignment with OSPF.
4975 o auto-cost container alignment with OSPF.
4977 o MT-ID leaf in database description renamed (lower-case) mt-id.
4979 o In lsp-log grouping, leaf change is renamed reason to align with
4980 OSPF.
4982 o Added some link attributes (GMPLS, TE, extended TE, SRLGs) in the
4983 LSDB.
4985 o Added extended-system-id typedef which contains the systemid plus
4986 the pseudonode number.
4988 o Add support of POI Purge Originator Identification.
4990 10.4. From version -22 to version -24
4992 o Fix revision date of the module.
4994 10.5. From version -21 to version -22
4996 o TE router-id modeling alignment with OSPF.
4998 o Add max-ecmp + feature in spf-control container (alignment with
4999 OSPF).
5001 10.6. From version -20 to version -21
5003 o Model revision date fix
5005 10.7. From version -19 to version -20
5007 o Moved to Yang 1.1
5009 o Lower case enumerations
5011 o Add RFC references to features
5013 o Remove segment-routing feature
5015 o Modified BFD activation modeling
5017 10.8. From version -18 to version -19
5019 o Align with draft-ietf-netmod-rfc8022bis.
5021 o Modify address family types as per draft-ietf-rtgwg-routing-types-
5022 17.
5024 10.9. From version -17 to version -18
5026 o NMDA compliancy.
5028 o Set some default values.
5030 o Align with iana-rt-types module.
5032 10.10. From version -16 to version -17
5034 o Cosmetic fixes.
5036 o Use of rt-types model.
5038 10.11. From version -15 to version -16
5040 o Alignment with last IETF key chain model.
5042 o lsp-log "change" leaf moved as an identity.
5044 o Incremental SPF removed from spf-log types.
5046 10.12. From version -14 to version -15
5048 o Alignment with OSPF model done:
5050 * Added spf-control container with IETF SPF delay algorithm as a
5051 feature.
5053 * Added graceful-restart options.
5055 * Added nsr as a feature.
5057 * Removed per topology FRR. Need to be augmented if necessary.
5059 * Created an ldp container within mpls.
5061 * Renamed igp-ldp-sync to igp-sync.
5063 * Added auto-cost container.
5065 * Moved reference-bandwidth under auto-cost container.
5067 * Added IS-IS local RIB as operational state.
5069 * Added decode-completed and raw-data leaves in the LSDB model.
5071 * Modified the notification header.
5073 10.13. From version -13 to version -14
5075 o Segment Routing extensions are now in a separate document.
5077 10.14. From version -12 to version -13
5079 o Move feature nlpid-control to container rather than list.
5081 o Rename multi-topology to topologies to align with OSPF.
5083 o Rename bfd/enabled to bfd/enable for consistency reason.
5085 o Add support for NSR with a feature.
5087 10.15. From version -09 to version -12
5089 o Rename node-tag container to node-tags.
5091 10.16. From version -08 to version -09
5093 o Added container before af list.
5095 o Added container before topology list.
5097 o Aligned LFA if per level cfg.
5099 o Align to draft-ietf-netmod-routing-cfg-23.
5101 10.17. From version -07 to version -08
5103 o Remove selector from system-id type.
5105 o Add some default values.
5107 o Moved lists to containers+groupings for per level configuration.
5109 o remove routing-instance as per core routing model v21.
5111 o added BFD leaf (no more BFD protocol model).
5113 o changed keychain module reference.
5115 10.18. From version -05 to version -07
5117 o Move Overload config from list to container.
5119 o Move Overload-max-metric config from list to container.
5121 o Move preference config from list to container.
5123 o Add Node flag in config.
5125 o Removed BFD config => moved to isis-bfd module.
5127 o Remove call to routing policy model.
5129 10.19. From version -03 to version -05
5131 o Correct invalid references to previous versions of core routing
5132 model.
5134 o Remove BFD config and replace by groupings from ietf-bfd.
5136 o Adding routing-policy support through routing-policy model.
5138 10.20. From version -02 to version -03
5140 o Reviewed config and op state groupings.
5142 o Add default value to lfa candidate-disabled.
5144 o Add enable leaf to isis container to reflect admin state.
5146 o Move to VRF centric only.
5148 o Segment routing is part os a separate module.
5150 10.21. From version -01 to version -02
5152 o Adding IPFRR.
5154 o Adding igp-ldp-sync.
5156 o Adding segment-routing.
5158 o Adding instance reference to operational states.
5160 o Move AF type from string to identity.
5162 o Updated router-capability in LSDB description.
5164 o packet counters moved to interface-packet-counters.
5166 o Added modification information in lsp-log.
5168 o Removing igp-ldp-sync timer in IS-IS.
5170 o Defining hierarchy for operational states.
5172 o Adding clns-mtu.
5174 o Adding key-chain.
5176 10.22. From version -00 to version -01
5178 o Interface metric move from af container to interface container.
5180 o Hello-padding on interface moved to hello-padding-disable with
5181 empty type.
5183 o three-way-handshake removed.
5185 o route preference changed to a choice.
5187 o csnp-authentication/psnp-authentication merged to authentication
5188 container.
5190 o lsp-gen-interval-exp-delay removed.
5192 o Added overload-max-metric feature.
5194 o overload-max-metric is in a separate container.
5196 o Change hello-padding to container.
5198 o Change bfd to container.
5200 o Make BFD a feature.
5202 o Create mpls-te container and put router-id inside.
5204 o Remove GR helper disable and timers.
5206 11. References
5208 11.1. Normative References
5210 [I-D.ietf-bfd-yang]
5211 Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and
5212 G. Mirsky, "YANG Data Model for Bidirectional Forwarding
5213 Detection (BFD)", draft-ietf-bfd-yang-17 (work in
5214 progress), August 2018.
5216 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
5217 Requirement Levels", BCP 14, RFC 2119,
5218 DOI 10.17487/RFC2119, March 1997,
5219 .
5221 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
5222 DOI 10.17487/RFC3688, January 2004,
5223 .
5225 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
5226 Topology (MT) Routing in Intermediate System to
5227 Intermediate Systems (IS-ISs)", RFC 5120,
5228 DOI 10.17487/RFC5120, February 2008,
5229 .
5231 [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy
5232 Control Mechanism in IS-IS Using Administrative Tags",
5233 RFC 5130, DOI 10.17487/RFC5130, February 2008,
5234 .
5236 [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for
5237 IP Fast Reroute: Loop-Free Alternates", RFC 5286,
5238 DOI 10.17487/RFC5286, September 2008,
5239 .
5241 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic
5242 Engineering", RFC 5305, DOI 10.17487/RFC5305, October
5243 2008, .
5245 [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS",
5246 RFC 5306, DOI 10.17487/RFC5306, October 2008,
5247 .
5249 [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP
5250 Synchronization", RFC 5443, DOI 10.17487/RFC5443, March
5251 2009, .
5253 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
5254 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
5255 .
5257 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
5258 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881,
5259 DOI 10.17487/RFC5881, June 2010,
5260 .
5262 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
5263 the Network Configuration Protocol (NETCONF)", RFC 6020,
5264 DOI 10.17487/RFC6020, October 2010,
5265 .
5267 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic
5268 Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119,
5269 February 2011, .
5271 [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge
5272 Originator Identification TLV for IS-IS", RFC 6232,
5273 DOI 10.17487/RFC6232, May 2011,
5274 .
5276 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
5277 and A. Bierman, Ed., "Network Configuration Protocol
5278 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
5279 .
5281 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
5282 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
5283 .
5285 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
5286 RFC 6991, DOI 10.17487/RFC6991, July 2013,
5287 .
5289 [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N.
5290 So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)",
5291 RFC 7490, DOI 10.17487/RFC7490, April 2015,
5292 .
5294 [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and
5295 U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4
5296 and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794,
5297 March 2016, .
5299 [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and
5300 Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions",
5301 RFC 7810, DOI 10.17487/RFC7810, May 2016,
5302 .
5304 [RFC7917] Sarkar, P., Ed., Gredler, H., Hegde, S., Litkowski, S.,
5305 and B. Decraene, "Advertising Node Administrative Tags in
5306 IS-IS", RFC 7917, DOI 10.17487/RFC7917, July 2016,
5307 .
5309 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
5310 RFC 7950, DOI 10.17487/RFC7950, August 2016,
5311 .
5313 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
5314 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
5315 .
5317 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
5318 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
5319 May 2017, .
5321 [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
5322 Zhang, "YANG Data Model for Key Chains", RFC 8177,
5323 DOI 10.17487/RFC8177, June 2017,
5324 .
5326 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
5327 "Common YANG Data Types for the Routing Area", RFC 8294,
5328 DOI 10.17487/RFC8294, December 2017,
5329 .
5331 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
5332 Access Control Model", STD 91, RFC 8341,
5333 DOI 10.17487/RFC8341, March 2018,
5334 .
5336 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
5337 and R. Wilton, "Network Management Datastore Architecture
5338 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
5339 .
5341 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
5342 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
5343 .
5345 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
5346 Routing Management (NMDA Version)", RFC 8349,
5347 DOI 10.17487/RFC8349, March 2018,
5348 .
5350 [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A.,
5351 Francois, P., and C. Bowers, "Shortest Path First (SPF)
5352 Back-Off Delay Algorithm for Link-State IGPs", RFC 8405,
5353 DOI 10.17487/RFC8405, June 2018,
5354 .
5356 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
5357 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
5358 .
5360 11.2. Informative References
5362 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
5363 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
5364 .
5366 Appendix A. Example of IS-IS configuration in XML
5368 This section gives an example of configuration of an IS-IS instance
5369 on a device. The example is written in XML.
5371
5372
5373
5374 SLI
5375 1.1.1.1
5376
5377
5378 ISIS-example
5379
5380
5381
5382 isis:isis
5383
5384
5385
5386 true
5387 level-2
5388 87FC.FCDF.4432
5389 49.0001
5390
5391
5392 192.0.2.1
5393
5394
5395 65535
5396 65000
5397
5398 wide-only
5399
5400
5401 111111
5402
5403
5404
5405 ipv4
5406 true
5407
5408
5409 ipv6
5410 true
5411
5412
5413
5414
5415 Loopback0
5416 200
5417
5418 0
5419
5420 true
5421
5422
5423 Eth1
5424 level-2
5425 point-to-point
5426
5427 167890
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437 Loopback0
5438
5439
5440 ianaift:softwareLoopback
5441
5442 enabled
5443
5444
5445 192.0.2.1
5446 32
5447
5448
5449
5450
5451 2001:DB8::1
5452 128
5453
5454
5455
5456
5457 Eth1
5458
5459
5460 ianaift:ethernetCsmacd
5461
5462 enabled
5463
5464
5465 198.51.100.1
5466 30
5467
5468
5469
5470
5471 2001:DB8:0:0:FF::1
5472 64
5473
5474
5475
5476
5477
5479 Authors' Addresses
5481 Stephane Litkowski
5482 Orange
5484 Email: stephane.litkowski@orange.com
5486 Derek Yeung
5487 Arrcus, Inc
5489 Email: derek@arrcus.com
5491 Acee Lindem
5492 Cisco Systems
5494 Email: acee@cisco.com
5496 Jeffrey Zhang
5497 Juniper Networks
5499 Email: zzhang@juniper.net
5501 Ladislav Lhotka
5502 CZ.NIC
5504 Email: lhotka@nic.cz