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