idnits 2.17.1
draft-ietf-isis-yang-isis-cfg-34.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 1915 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-34
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. Multi-topology 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 shut down 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. Multi-topology Parameters
444 The model supports multi-topology (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 address-
458 families container (requiring "nlpid-control" feature to be
459 advertised).
461 2.3. Per-Level Parameters
463 Some parameters allow a per level configuration. In this case, the
464 parameter is modeled as a container with three configuration
465 locations:
467 o a top-level container: corresponds to level-1-2, so the
468 configuration applies to both levels.
470 o a level-1 container: corresponds to level-1 specific parameters.
472 o a level-2 container: corresponds to level-2 specific parameters.
474 +--rw priority
475 | +--rw value? uint8
476 | +--rw level-1
477 | | +--rw value? uint8
478 | +--rw level-2
479 | +--rw value? uint8
481 Example:
483
484 250
485
486 100
487
488
489 200
490
491
493 An implementation SHOULD prefer a level specific parameter over a
494 level-all parameter. As example, if the priority is 100 for the
495 level-1, 200 for the level-2 and 250 for the top-level configuration,
496 the implementation should use 100 for the level-1 and 200 for the
497 level-2.
499 Some parameters like "overload bit" and "route preference" are not
500 modeled to support a per level configuration. If an implementation
501 supports per level configuration for such parameter, this
502 implementation SHOULD augment the current model by adding both
503 level-1 and level-2 containers and SHOULD reuse existing
504 configuration groupings.
506 Example of augmentation:
508 augment "/rt:routing/" +
509 "rt:control-plane-protocols/rt:control-plane-protocol"+
510 "/isis:isis/isis:overload" {
511 when "rt:type = 'isis:isis'" {
512 description
513 "This augment IS-IS routing protocol when used";
514 }
515 description
516 "This augments IS-IS overload configuration
517 with per level configuration.";
519 container level-1 {
520 uses isis:overload-global-cfg;
521 description
522 "Level 1 configuration.";
523 }
524 container level-2 {
525 uses isis:overload-global-cfg;
526 description
527 "Level 2 configuration.";
528 }
529 }
531 If an implementation does not support per level configuration for a
532 parameter modeled with per level configuration, the implementation
533 SHOULD advertise a deviation to announce the non-support of the
534 level-1 and level-2 containers.
536 Finally, if an implementation supports per level configuration but
537 does not support the level-1-2 configuration, it SHOULD also
538 advertise a deviation.
540 2.4. Per-Interface Parameters
542 The per-interface section of the IS-IS instance describes the
543 interface specific parameters.
545 The interface is modeled as a reference to an existing interface
546 defined in the "ietf-interfaces" YANG model ([RFC8343].
548 Each interface has some interface-specific parameters that may have a
549 different per level value as described in previous section. An
550 interface-specific parameter always overrides an IS-IS global
551 parameter.
553 Some parameters like hello-padding are defined as containers to allow
554 easy extension by vendor specific modules.
556 +--rw interfaces
557 +--rw interface* [name]
558 +--rw name if:interface-ref
559 +--rw level-type? level
560 +--rw lsp-pacing-interval?
561 | rt-types:timer-value-milliseconds
562 +--rw lsp-retransmit-interval?
563 | rt-types:timer-value-seconds16
564 +--rw passive? boolean
565 +--rw csnp-interval?
566 | rt-types:timer-value-seconds16
567 +--rw hello-padding
568 | +--rw enable? boolean
569 +--rw mesh-group-enable? mesh-group-state
570 +--rw mesh-group? uint8
571 +--rw interface-type? interface-type
572 +--rw enable? boolean {admin-control}?
573 +--rw tag* uint32 {prefix-tag}?
574 +--rw tag64* uint64 {prefix-tag64}?
575 +--rw node-flag? boolean {node-flag}?
576 +--rw hello-authentication
577 | +--rw (authentication-type)?
578 | | +--:(key-chain) {key-chain}?
579 | | | +--rw key-chain?
580 | | | key-chain:key-chain-ref
581 | | +--:(password)
582 | | +--rw key? string
583 | | +--rw crypto-algorithm? identityref
584 | +--rw level-1
585 | | +--rw (authentication-type)?
586 | | +--:(key-chain) {key-chain}?
587 | | | +--rw key-chain?
588 | | | key-chain:key-chain-ref
589 | | +--:(password)
590 | | +--rw key? string
591 | | +--rw crypto-algorithm? identityref
592 | +--rw level-2
593 | +--rw (authentication-type)?
594 | +--:(key-chain) {key-chain}?
595 | | +--rw key-chain?
596 | | key-chain:key-chain-ref
597 | +--:(password)
598 | +--rw key? string
599 | +--rw crypto-algorithm? identityref
600 +--rw hello-interval
601 | +--rw value? rt-types:timer-value-seconds16
602 | +--rw level-1
603 | | +--rw value? rt-types:timer-value-seconds16
604 | +--rw level-2
605 | +--rw value? rt-types:timer-value-seconds16
606 +--rw hello-multiplier
607 | +--rw value? uint16
608 | +--rw level-1
609 | | +--rw value? uint16
610 | +--rw level-2
611 | +--rw value? uint16
612 +--rw priority
613 | +--rw value? uint8
614 | +--rw level-1
615 | | +--rw value? uint8
616 | +--rw level-2
617 | +--rw value? uint8
618 +--rw metric
619 | +--rw value? wide-metric
620 | +--rw level-1
621 | | +--rw value? wide-metric
622 | +--rw level-2
623 | +--rw value? wide-metric
624 +--rw bfd {bfd}?
625 | +--rw enable? boolean
626 | +--rw local-multiplier? multiplier
627 | +--rw (interval-config-type)?
628 | +--:(tx-rx-intervals)
629 | | +--rw desired-min-tx-interval? uint32
630 | | +--rw required-min-rx-interval? uint32
631 | +--:(single-interval) {single-minimum-interval}?
632 | +--rw min-interval? uint32
633 +--rw address-families {nlpid-control}?
634 | +--rw address-family-list* [address-family]
635 | +--rw address-family iana-rt-types:address-family
636 +--rw mpls
637 | +--rw ldp
638 | +--rw igp-sync? boolean {ldp-igp-sync}?
639 +--rw fast-reroute {fast-reroute}?
640 | +--rw lfa {lfa}?
641 | +--rw candidate-enable? boolean
642 | +--rw enable? boolean
643 | +--rw remote-lfa {remote-lfa}?
644 | | +--rw enable? boolean
645 | +--rw level-1
646 | | +--rw candidate-enable? boolean
647 | | +--rw enable? boolean
648 | | +--rw remote-lfa {remote-lfa}?
649 | | +--rw enable? boolean
650 | +--rw level-2
651 | +--rw candidate-enable? boolean
652 | +--rw enable? boolean
653 | +--rw remote-lfa {remote-lfa}?
654 | +--rw enable? boolean
655 +--ro adjacencies
656 | +--ro adjacency* []
657 | +--ro neighbor-sys-type? level
658 | +--ro neighbor-sysid? system-id
659 | +--ro neighbor-extended-circuit-id?
660 | | extended-circuit-id
661 | +--ro neighbor-snpa? snpa
662 | +--ro usage? level
663 | +--ro hold-timer?
664 | | rt-types:timer-value-seconds16
665 | +--ro neighbor-priority? uint8
666 | +--ro lastuptime? yang:timestamp
667 | +--ro state? adj-state-type
668 +--ro event-counters
669 | +--ro adjacency-changes? uint32
670 | +--ro adjacency-number? uint32
671 | +--ro init-fails? uint32
672 | +--ro adjacency-rejects? uint32
673 | +--ro id-len-mismatch? uint32
674 | +--ro max-area-addresses-mismatch? uint32
675 | +--ro authentication-type-fails? uint32
676 | +--ro authentication-fails? uint32
677 | +--ro lan-dis-changes? uint32
678 +--ro packet-counters
679 | +--ro level* [level]
680 | +--ro level level-number
681 | +--ro iih
682 | | +--ro in? uint32
683 | | +--ro out? uint32
684 | +--ro ish
685 | | +--ro in? uint32
686 | | +--ro out? uint32
687 | +--ro esh
688 | | +--ro in? uint32
689 | | +--ro out? uint32
690 | +--ro lsp
691 | | +--ro in? uint32
692 | | +--ro out? uint32
693 | +--ro psnp
694 | | +--ro in? uint32
695 | | +--ro out? uint32
696 | +--ro csnp
697 | | +--ro in? uint32
698 | | +--ro out? uint32
699 | +--ro unknown
700 | +--ro in? uint32
701 | +--ro out? uint32
702 +--rw topologies {multi-topology}?
703 +--rw topology* [name]
704 +--rw name ->
705 ../../../../../../../../rt:ribs/rib/name
706 +--rw metric
707 +--rw value? wide-metric
708 +--rw level-1
709 | +--rw value? wide-metric
710 +--rw level-2
711 +--rw value? wide-metric
713 rpcs:
714 +---x clear-adjacency
715 | +---w input
716 | +---w routing-protocol-instance-name ->
717 /rt:routing/control-plane-protocols/control-plane-protocol/name
718 | +---w level? level
719 | +---w interface? if:interface-ref
720 +---x clear-database
721 +---w input
722 +---w routing-protocol-instance-name ->
723 /rt:routing/control-plane-protocols/control-plane-protocol/name
724 +---w level? level
726 notifications:
727 +---n database-overload
728 | +--ro routing-protocol-name? ->
729 /rt:routing/control-plane-protocols/control-plane-protocol/name
730 | +--ro isis-level? level
731 | +--ro overload? enumeration
732 +---n lsp-too-large
733 | +--ro routing-protocol-name? ->
734 /rt:routing/control-plane-protocols/control-plane-protocol/name
735 | +--ro isis-level? level
736 | +--ro interface-name? if:interface-ref
737 | +--ro interface-level? level
738 | +--ro extended-circuit-id? extended-circuit-id
739 | +--ro pdu-size? uint32
740 | +--ro lsp-id? lsp-id
741 +---n if-state-change
742 | +--ro routing-protocol-name? ->
743 /rt:routing/control-plane-protocols/control-plane-protocol/name
744 | +--ro isis-level? level
745 | +--ro interface-name? if:interface-ref
746 | +--ro interface-level? level
747 | +--ro extended-circuit-id? extended-circuit-id
748 | +--ro state? if-state-type
749 +---n corrupted-lsp-detected
750 | +--ro routing-protocol-name? ->
751 /rt:routing/control-plane-protocols/control-plane-protocol/name
752 | +--ro isis-level? level
753 | +--ro lsp-id? lsp-id
754 +---n attempt-to-exceed-max-sequence
755 | +--ro routing-protocol-name? ->
756 /rt:routing/control-plane-protocols/control-plane-protocol/name
757 | +--ro isis-level? level
758 | +--ro lsp-id? lsp-id
759 +---n id-len-mismatch
760 | +--ro routing-protocol-name? ->
761 /rt:routing/control-plane-protocols/control-plane-protocol/name
762 | +--ro isis-level? level
763 | +--ro interface-name? if:interface-ref
764 | +--ro interface-level? level
765 | +--ro extended-circuit-id? extended-circuit-id
766 | +--ro pdu-field-len? uint8
767 | +--ro raw-pdu? binary
768 +---n max-area-addresses-mismatch
769 | +--ro routing-protocol-name? ->
770 /rt:routing/control-plane-protocols/control-plane-protocol/name
771 | +--ro isis-level? level
772 | +--ro interface-name? if:interface-ref
773 | +--ro interface-level? level
774 | +--ro extended-circuit-id? extended-circuit-id
775 | +--ro max-area-addresses? uint8
776 | +--ro raw-pdu? binary
777 +---n own-lsp-purge
778 | +--ro routing-protocol-name? ->
779 /rt:routing/control-plane-protocols/control-plane-protocol/name
780 | +--ro isis-level? level
781 | +--ro interface-name? if:interface-ref
782 | +--ro interface-level? level
783 | +--ro extended-circuit-id? extended-circuit-id
784 | +--ro lsp-id? lsp-id
785 +---n sequence-number-skipped
786 | +--ro routing-protocol-name? ->
787 /rt:routing/control-plane-protocols/control-plane-protocol/name
788 | +--ro isis-level? level
789 | +--ro interface-name? if:interface-ref
790 | +--ro interface-level? level
791 | +--ro extended-circuit-id? extended-circuit-id
792 | +--ro lsp-id? lsp-id
793 +---n authentication-type-failure
794 | +--ro routing-protocol-name? ->
795 /rt:routing/control-plane-protocols/control-plane-protocol/name
796 | +--ro isis-level? level
797 | +--ro interface-name? if:interface-ref
798 | +--ro interface-level? level
799 | +--ro extended-circuit-id? extended-circuit-id
800 | +--ro raw-pdu? binary
801 +---n authentication-failure
802 | +--ro routing-protocol-name? ->
803 /rt:routing/control-plane-protocols/control-plane-protocol/name
804 | +--ro isis-level? level
805 | +--ro interface-name? if:interface-ref
806 | +--ro interface-level? level
807 | +--ro extended-circuit-id? extended-circuit-id
808 | +--ro raw-pdu? binary
809 +---n version-skew
810 | +--ro routing-protocol-name? ->
811 /rt:routing/control-plane-protocols/control-plane-protocol/name
812 | +--ro isis-level? level
813 | +--ro interface-name? if:interface-ref
814 | +--ro interface-level? level
815 | +--ro extended-circuit-id? extended-circuit-id
816 | +--ro protocol-version? uint8
817 | +--ro raw-pdu? binary
818 +---n area-mismatch
819 | +--ro routing-protocol-name? ->
820 /rt:routing/control-plane-protocols/control-plane-protocol/name
821 | +--ro isis-level? level
822 | +--ro interface-name? if:interface-ref
823 | +--ro interface-level? level
824 | +--ro extended-circuit-id? extended-circuit-id
825 | +--ro raw-pdu? binary
826 +---n rejected-adjacency
827 | +--ro routing-protocol-name? ->
828 /rt:routing/control-plane-protocols/control-plane-protocol/name
829 | +--ro isis-level? level
830 | +--ro interface-name? if:interface-ref
831 | +--ro interface-level? level
832 | +--ro extended-circuit-id? extended-circuit-id
833 | +--ro raw-pdu? binary
834 | +--ro reason? string
835 +---n protocols-supported-mismatch
836 | +--ro routing-protocol-name? ->
837 /rt:routing/control-plane-protocols/control-plane-protocol/name
838 | +--ro isis-level? level
839 | +--ro interface-name? if:interface-ref
840 | +--ro interface-level? level
841 | +--ro extended-circuit-id? extended-circuit-id
842 | +--ro raw-pdu? binary
843 | +--ro protocols* uint8
844 +---n lsp-error-detected
845 | +--ro routing-protocol-name? ->
846 /rt:routing/control-plane-protocols/control-plane-protocol/name
847 | +--ro isis-level? level
848 | +--ro interface-name? if:interface-ref
849 | +--ro interface-level? level
850 | +--ro extended-circuit-id? extended-circuit-id
851 | +--ro lsp-id? lsp-id
852 | +--ro raw-pdu? binary
853 | +--ro error-offset? uint32
854 | +--ro tlv-type? uint8
855 +---n adjacency-state-change
856 | +--ro routing-protocol-name? ->
857 /rt:routing/control-plane-protocols/control-plane-protocol/name
858 | +--ro isis-level? level
859 | +--ro interface-name? if:interface-ref
860 | +--ro interface-level? level
861 | +--ro extended-circuit-id? extended-circuit-id
862 | +--ro neighbor? string
863 | +--ro neighbor-system-id? system-id
864 | +--ro state? adj-state-type
865 | +--ro reason? string
866 +---n lsp-received
867 | +--ro routing-protocol-name? ->
868 /rt:routing/control-plane-protocols/control-plane-protocol/name
869 | +--ro isis-level? level
870 | +--ro interface-name? if:interface-ref
871 | +--ro interface-level? level
872 | +--ro extended-circuit-id? extended-circuit-id
873 | +--ro lsp-id? lsp-id
874 | +--ro sequence? uint32
875 | +--ro received-timestamp? yang:timestamp
876 | +--ro neighbor-system-id? system-id
877 +---n lsp-generation
878 +--ro routing-protocol-name? ->
879 /rt:routing/control-plane-protocols/control-plane-protocol/name
880 +--ro isis-level? level
881 +--ro lsp-id? lsp-id
882 +--ro sequence? uint32
883 +--ro send-timestamp? yang:timestamp
885 2.5. Authentication Parameters
887 The module enables authentication configuration through the IETF key-
888 chain module ([RFC8177]). The IS-IS module imports the "ietf-key-
889 chain" module and reuses some groupings to allow global and per
890 interface configuration of authentication. If a global
891 authentication is configured, an implementation SHOULD authenticate
892 PSNPs (Partial Sequence Number Packets), CSNPs (Complete Sequence
893 Number Packets) and LSPs (Link State Packets) with the authentication
894 parameters supplied. The authentication of HELLO PDUs (Protocol Data
895 Units) can be activated on a per interface basis.
897 2.6. IGP/LDP synchronization
899 [RFC5443] defines a mechanism where IGP (Interior Gateway Protocol)
900 needs to be synchronized with LDP (Label Distribution Protocol). An
901 "ldp-igp-sync" feature has been defined in the model to support this
902 mechanism. The "mpls/ldp/igp-sync" leaf under "interface" allows
903 activation of the mechanism on a per interface basis. The "mpls/ldp/
904 igp-sync" container in the global configuration is empty on purpose
905 and is not required for the activation. The goal of this empty
906 container is to allow easy augmentation with additional parameters
907 like timers for example.
909 2.7. ISO parameters
911 As IS-IS protocol is based on ISO protocol suite, some ISO parameters
912 may be required.
914 This module augments interface configuration model to support ISO
915 configuration parameters.
917 The clns-mtu can be defined under the interface.
919 2.8. IP FRR
921 This YANG module supports LFA (Loop Free Alternates) ([RFC5286]) and
922 remote LFA ([RFC7490]) as IP FRR techniques. The "fast-reroute"
923 container may be augmented by other models to support other IPFRR
924 flavors (MRT, TILFA ...).
926 The current version of the model supports activation of LFA and
927 remote LFA at interface only. The global "lfa" container is present
928 but kept empty to allow augmentation with vendor specific properties
929 like policies.
931 Remote LFA is considered as a child of LFA. Remote LFA cannot be
932 enabled if LFA is not enabled.
934 The "candidate-disabled" allows to mark an interface to not be used
935 as a backup.
937 2.9. Operational States
939 Operational states are provided in the module in various places:
941 o system-counters: provides statistical informations about the
942 global system.
944 o interface : provides configuration state informations for each
945 interface.
947 o adjacencies: provides state informations about current IS-IS
948 adjacencies.
950 o spf-log: provides informations about SPF events on the node. This
951 SHOULD be implemented as a wrapping buffer.
953 o lsp-log: provides informations about LSP events on the node
954 (reception of an LSP or modification of local LSP). This SHOULD
955 be implemented as a wrapping buffer and an implementation MAY
956 decide to log refresh LSPs or not.
958 o local-rib: provides the IS-IS internal routing table view.
960 o database: provides details on the current LSDB.
962 o hostnames: provides informations about system-id to hostname
963 mappings (as defined in [RFC5301]).
965 o fast-reroute: provides informations about IP FRR.
967 3. RPC Operations
969 The "ietf-isis" module defines two RPC operations:
971 o clear-database: reset the content of a particular IS-IS database
972 and restart database synchronization with the neighbors.
974 o clear-adjacency: restart a particular set of IS-IS adjacencies.
976 4. Notifications
978 The "ietf-isis" module introduces some notifications :
980 database-overload: raised when overload condition is changed.
982 lsp-too-large: raised when the system tries to propagate a too
983 large PDU.
985 if-state-change: raised when the state of an interface changes.
987 corrupted-lsp-detected: raised when the system finds that an LSP
988 that was stored in memory has become corrupted.
990 attempt-to-exceed-max-sequence: This notification is sent when the
991 system wraps the 32-bit sequence counter of an LSP.
993 id-len-mismatch: This notification is sent when we receive a PDU
994 with a different value for the System ID length.
996 max-area-addresses-mismatch: This notification is sent when we
997 receive a PDU with a different value for the Maximum Area
998 Addresses.
1000 own-lsp-purge: This notification is sent when the system receives
1001 a PDU with its own system ID and zero age.
1003 sequence-number-skipped: This notification is sent when the system
1004 receives a PDU with its own system ID and different contents. The
1005 system has to reissue the LSP with a higher sequence number.
1007 authentication-type-failure: This notification is sent when the
1008 system receives a PDU with the wrong authentication type field.
1010 authentication-failure: This notification is sent when the system
1011 receives a PDU with the wrong authentication information.
1013 version-skew: This notification is sent when the system receives a
1014 PDU with a different protocol version number.
1016 area-mismatch: This notification is sent when the system receives
1017 a Hello PDU from an IS that does not share any area address.
1019 rejected-adjacency: This notification is sent when the system
1020 receives a Hello PDU from an IS but does not establish an
1021 adjacency for some reason.
1023 protocols-supported-mismatch: This notification is sent when the
1024 system receives a non-pseudonode LSP that has no matching protocol
1025 supported.
1027 lsp-error-detected: This notification is sent when the system
1028 receives an LSP with a parse error.
1030 adjacency-state-change: This notification is sent when an IS-IS
1031 adjacency moves to Up state or to Down state.
1033 lsp-received: This notification is sent when an LSP is received.
1035 lsp-generation: This notification is sent when an LSP is
1036 regenerated.
1038 5. Interaction with Other YANG Modules
1040 The "isis" container augments the "/rt:routing/rt:control-plane-
1041 protocols/control-plane-protocol" container of the ietf-routing
1042 [RFC8349] module by defining IS-IS specific parameters.
1044 The "isis" module augments "/if:interfaces/if:interface" defined by
1045 [RFC8343] with ISO specific parameters.
1047 The "isis" operational state container augments the "/rt:routing-
1048 state/rt:control-plane-protocols/control-plane-protocol" container of
1049 the ietf-routing module by defining IS-IS specific operational
1050 states.
1052 Some IS-IS specific routes attributes are added to route objects of
1053 the ietf-routing module by augmenting "/rt:routing-
1054 state/rt:ribs/rt:rib/rt:routes/rt:route".
1056 The modules defined in this document use some groupings from ietf-
1057 keychain [RFC8177].
1059 The module reuses types from [RFC6991] and [RFC8294].
1061 To support BFD for fast detection, the module relies on
1062 [I-D.ietf-bfd-yang].
1064 6. IS-IS YANG Module
1066 The following RFCs, drafts and external standards are not referenced
1067 in the document text but are referenced in the ietf-isis.yang module:
1068 [ISO-10589], [RFC1195], [RFC5029], [RFC5130], [RFC5305], [RFC5306],
1069 [RFC5308], [RFC5880], [RFC5881], [RFC6119], [RFC6232], [RFC7794],
1070 [RFC7810], [RFC7917], [RFC8405].
1072 file "ietf-ospf@2019-01-24.yang"
1073 module ietf-isis {
1074 yang-version 1.1;
1075 namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
1077 prefix isis;
1079 import ietf-routing {
1080 prefix "rt";
1081 reference "RFC 8349 - A YANG Data Model for Routing
1082 Management (NMDA Version)";
1083 }
1085 import ietf-inet-types {
1086 prefix inet;
1087 reference "RFC 6991 - Common YANG Data Types";
1088 }
1090 import ietf-yang-types {
1091 prefix yang;
1092 reference "RFC 6991 - Common YANG Data Types";
1093 }
1095 import ietf-interfaces {
1096 prefix "if";
1097 reference "RFC 8343 - A YANG Data Model for Interface
1098 Management (NDMA Version)";
1099 }
1101 import ietf-key-chain {
1102 prefix "key-chain";
1103 reference "RFC 8177 - YANG Data Model for Key Chains";
1104 }
1106 import ietf-routing-types {
1107 prefix "rt-types";
1108 reference "RFC 8294 - Common YANG Data Types for the
1109 Routing Area";
1110 }
1112 import iana-routing-types {
1113 prefix "iana-rt-types";
1114 reference "RFC 8294 - Common YANG Data Types for the
1115 Routing Area";
1116 }
1118 import ietf-bfd-types {
1119 prefix "bfd-types";
1120 reference "RFC YYYY - YANG Data Model for Bidirectional
1121 Forwarding Detection (BFD).
1123 -- Note to RFC Editor Please replace YYYY with published RFC
1124 number for draft-ietf-bfd-yang.";
1126 }
1127 organization
1128 "IETF LSR Working Group";
1130 contact
1131 "WG List:
1133 Editor: Stephane Litkowski
1134
1136 Derek Yeung
1137
1138 Acee Lindem
1139
1140 Jeffrey Zhang
1141
1142 Ladislav Lhotka
1143
1144 Yi Yang
1145
1146 Dean Bogdanovic
1147
1148 Kiran Agrahara Sreenivasa
1149
1150 Yingzhen Qu
1151
1152 Jeff Tantsura
1153
1155 ";
1157 description
1158 "This YANG module defines the generic configuration and
1159 operational state for the IS-IS protocol.
1160 It is intended that the module
1161 will be extended by vendors to define vendor-specific
1162 IS-IS configuration parameters and policies,
1163 for example, route maps or route policies.
1165 This YANG module conforms to the Network Management
1166 Datastore Architecture (NDMA) as described in RFC 8242.
1168 Copyright (c) 2018 IETF Trust and the persons identified as
1169 authors of the code. All rights reserved.
1171 Redistribution and use in source and binary forms, with or
1172 without modification, is permitted pursuant to, and subject
1173 to the license terms contained in, the Simplified BSD License
1174 set forth in Section 4.c of the IETF Trust's Legal Provisions
1175 Relating to IETF Documents
1176 (http://trustee.ietf.org/license-info).
1178 This version of this YANG module is part of RFC XXXX;
1179 see the RFC itself for full legal notices.
1181 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
1182 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
1183 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
1184 are to be interpreted as described in BCP 14 [RFC2119]
1185 [RFC8174] when, and only when, they appear in all capitals,
1186 as shown here.
1187 ";
1189 revision 2019-01-24 {
1190 description
1191 "Initial revision.";
1192 reference "RFC XXXX";
1193 }
1195 /* Identities */
1197 identity isis {
1198 base rt:routing-protocol;
1199 description "Identity for the IS-IS routing protocol.";
1200 }
1202 identity lsp-log-reason {
1203 description "Base identity for an LSP change log reason.";
1204 }
1206 identity refresh {
1207 base lsp-log-reason;
1208 description
1209 "Identity used when the LSP log reason is
1210 a refresh LSP received.";
1211 }
1213 identity content-change {
1214 base lsp-log-reason;
1215 description
1216 "Identity used when the LSP log reason is
1217 a change in the content of the LSP.";
1218 }
1220 /* Feature definitions */
1221 feature poi-tlv {
1222 description "Support of Purge Originator Identification.";
1223 reference "RFC 6232 - Purge Originator Identification TLV
1224 for IS-IS";
1225 }
1226 feature ietf-spf-delay {
1227 description
1228 "Support for IETF SPF delay algorithm.";
1229 reference "RFC 8405 - SPF Back-off algorithm for link
1230 state IGPs";
1231 }
1232 feature bfd {
1233 description
1234 "Support for BFD detection of IS-IS neighbor reachability.";
1235 reference "RFC 5880 - Bidirectional Forwarding Detection (BFD)
1236 RFC 5881 - Bidirectional Forwarding Detection
1237 (BFD) for IPv4 and IPv6 (Single Hop)";
1238 }
1239 feature key-chain {
1240 description
1241 "Support of keychain for authentication.";
1242 reference "RFC8177 - YANG Data Model for Key Chains";
1243 }
1244 feature node-flag {
1245 description
1246 "Support for node-flag for IS-IS prefixes.";
1247 reference "RFC7794 - IS-IS Prefix Attributes for
1248 Extended IP and IPv6 Reachability";
1249 }
1250 feature node-tag {
1251 description
1252 "Support for node admin tag for IS-IS routing instances.";
1253 reference "RFC7917 - Advertising Node Administrative Tags
1254 in IS-IS";
1255 }
1256 feature ldp-igp-sync {
1257 description
1258 "LDP IGP synchronization.";
1259 reference "RFC5443 - LDP IGP Synchronization.";
1260 }
1261 feature fast-reroute {
1262 description
1263 "Support for IP Fast Reroute (IP-FRR).";
1264 }
1265 feature nsr {
1266 description
1267 "Non-Stop-Routing (NSR) support.";
1268 }
1269 feature lfa {
1270 description
1271 "Support for Loop-Free Alternates (LFAs).";
1272 reference "RFC5286 - Basic Specification of IP Fast-Reroute:
1273 Loop-free Alternates";
1274 }
1275 feature remote-lfa {
1276 description
1277 "Support for Remote Loop-Free Alternates (R-LFAs).";
1278 reference "RFC7490 - Remote Loop-Free Alternate Fast Reroute";
1279 }
1281 feature overload-max-metric {
1282 description
1283 "Support of overload by setting
1284 all links to max metric.";
1285 }
1286 feature prefix-tag {
1287 description
1288 "Support for 32-bit prefix tags";
1289 reference "RFC5130 - A Policy Control Mechanism in
1290 IS-IS Using Administrative Tags";
1291 }
1292 feature prefix-tag64 {
1293 description
1294 "Support for 64-bit prefix tags";
1295 reference "RFC5130 - A Policy Control Mechanism in
1296 IS-IS Using Administrative Tags";
1297 }
1298 feature auto-cost {
1299 description
1300 "Calculate IS-IS interface metric according to
1301 reference bandwidth.";
1302 }
1304 feature te-rid {
1305 description
1306 "Traffic-Engineering Router-ID.";
1307 reference "RFC5305 - IS-IS Extensions for Traffic Engineering
1308 RFC6119 - IPv6 Traffic Engineering in IS-IS";
1309 }
1310 feature max-ecmp {
1311 description
1312 "Setting maximum number of ECMP paths.";
1313 }
1314 feature multi-topology {
1315 description
1316 "Support for Multiple-Topology Routing (MTR).";
1318 reference "RFC5120 - M-IS-IS: Multi Topology Routing in IS-IS";
1319 }
1320 feature nlpid-control {
1321 description
1322 "This feature controls the advertisement
1323 of support NLPID within IS-IS configuration.";
1324 }
1325 feature graceful-restart {
1326 description
1327 "IS-IS Graceful restart support.";
1328 reference "RFC5306 - Restart Signaling in IS-IS";
1329 }
1331 feature lsp-refresh {
1332 description
1333 "Configuration of LSP refresh interval.";
1334 }
1336 feature maximum-area-addresses {
1337 description
1338 "Support of maximum-area-addresses config.";
1339 }
1341 feature admin-control {
1342 description
1343 "Administrative control of the protocol state.";
1344 }
1346 /* Type definitions */
1348 typedef circuit-id {
1349 type uint8;
1350 description
1351 "This type defines the circuit ID
1352 associated with an interface.";
1353 }
1355 typedef extended-circuit-id {
1356 type uint32;
1357 description
1358 "This type defines the extended circuit ID
1359 associated with an interface.";
1360 }
1362 typedef interface-type {
1363 type enumeration {
1364 enum broadcast {
1365 description
1366 "Broadcast interface type.";
1367 }
1368 enum point-to-point {
1369 description
1370 "Point-to-point interface type.";
1371 }
1372 }
1373 description
1374 "This type defines the type of adjacency
1375 to be established on the interface.
1376 The interface-type determines the type
1377 of hello message that is used.";
1379 }
1381 typedef level {
1382 type enumeration {
1383 enum "level-1" {
1384 description
1385 "This enum indicates L1-only capability.";
1386 }
1387 enum "level-2" {
1388 description
1389 "This enum indicates L2-only capability.";
1390 }
1391 enum "level-all" {
1392 description
1393 "This enum indicates capability for both levels.";
1394 }
1395 }
1396 default "level-all";
1397 description
1398 "This type defines IS-IS level of an object.";
1400 }
1402 typedef adj-state-type {
1403 type enumeration {
1404 enum "up" {
1405 description
1406 "State indicates the adjacency is established.";
1407 }
1408 enum "down" {
1409 description
1410 "State indicates the adjacency is NOT established.";
1411 }
1412 enum "init" {
1413 description
1414 "State indicates the adjacency is establishing.";
1415 }
1416 enum "failed" {
1417 description
1418 "State indicates the adjacency is failed.";
1419 }
1420 }
1421 description
1422 "This type defines states of an adjacency";
1423 }
1425 typedef if-state-type {
1426 type enumeration {
1427 enum "up" {
1428 description "Up state.";
1430 }
1431 enum "down" {
1432 description "Down state";
1433 }
1434 }
1435 description
1436 "This type defines the state of an interface";
1437 }
1439 typedef level-number {
1440 type uint8 {
1441 range "1 .. 2";
1442 }
1443 description
1444 "This type defines the current IS-IS level.";
1445 }
1447 typedef lsp-id {
1448 type string {
1449 pattern
1450 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
1451 +'{4}\.[0-9][0-9]-[0-9][0-9]';
1452 }
1453 description
1454 "This type defines the IS-IS LSP ID format using a
1455 pattern. An example LSP ID is 0143.0438.AEF0.02-01";
1456 }
1458 typedef area-address {
1459 type string {
1460 pattern '[0-9A-Fa-f]{2}(\.[0-9A-Fa-f]{4}){0,6}';
1461 }
1462 description
1463 "This type defines the area address format.";
1464 }
1466 typedef snpa {
1467 type string {
1468 length "0 .. 20";
1469 }
1470 description
1471 "This type defines the Subnetwork Point
1472 of Attachment (SNPA) format.
1473 The SNPA should be encoded according to the rules
1474 specified for the particular type of subnetwork
1475 being used. As an example, for an ethernet subnetwork,
1476 the SNPA is encoded as a MAC address like
1477 '00aa.bbcc.ddee'.";
1478 }
1480 typedef system-id {
1481 type string {
1482 pattern
1483 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
1484 }
1485 description
1486 "This type defines IS-IS system-id using pattern,
1487 An example system-id is 0143.0438.AEF0";
1488 }
1489 typedef extended-system-id {
1490 type string {
1491 pattern
1492 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.'
1493 +'[0-9][0-9]';
1494 }
1495 description
1496 "This type defines IS-IS system-id using pattern. The extended
1497 system-id contains the pseudonode number in addition to the
1498 system-id.
1499 An example system-id is 0143.0438.AEF0.00";
1500 }
1502 typedef wide-metric {
1503 type uint32 {
1504 range "0 .. 16777215";
1505 }
1506 description
1507 "This type defines wide style format of IS-IS metric.";
1508 }
1509 typedef std-metric {
1510 type uint8 {
1511 range "0 .. 63";
1512 }
1513 description
1514 "This type defines old style format of IS-IS metric.";
1515 }
1517 typedef mesh-group-state {
1518 type enumeration {
1519 enum "mesh-inactive" {
1520 description
1521 "Interface is not part of a mesh group.";
1522 }
1523 enum "mesh-set" {
1524 description
1525 "Interface is part of a mesh group.";
1526 }
1527 enum "mesh-blocked" {
1528 description
1529 "LSPs must not be flooded over this interface.";
1530 }
1531 }
1532 description
1533 "This type describes mesh group state of an interface";
1534 }
1536 /* Grouping for notifications */
1538 grouping notification-instance-hdr {
1539 description
1540 "Instance specific IS-IS notification data grouping";
1541 leaf routing-protocol-name {
1542 type leafref {
1543 path "/rt:routing/rt:control-plane-protocols/"
1544 + "rt:control-plane-protocol/rt:name";
1545 }
1546 description "Name of the IS-IS instance.";
1547 }
1548 leaf isis-level {
1549 type level;
1550 description "IS-IS level of the instance.";
1551 }
1552 }
1554 grouping notification-interface-hdr {
1555 description
1556 "Interface specific IS-IS notification data grouping";
1558 leaf interface-name {
1559 type if:interface-ref;
1560 description "IS-IS interface name";
1561 }
1562 leaf interface-level {
1563 type level;
1564 description "IS-IS level of the interface.";
1565 }
1566 leaf extended-circuit-id {
1567 type extended-circuit-id;
1568 description "Extended circuit-id of the interface.";
1569 }
1570 }
1572 /* Groupings for IP Fast Reroute */
1574 grouping instance-fast-reroute-config {
1575 description
1576 "This group defines global configuration of IP
1577 Fast ReRoute (FRR).";
1578 container fast-reroute {
1579 if-feature fast-reroute;
1580 description
1581 "This container may be augmented with global
1582 parameters for IP-FRR.";
1583 container lfa {
1584 if-feature lfa;
1585 description
1586 "This container may be augmented with
1587 global parameters for Loop-Free Alternatives (LFA).
1588 Container creation has no effect on LFA activation.";
1589 }
1590 }
1591 }
1593 grouping interface-lfa-config {
1594 leaf candidate-enable {
1595 type boolean;
1596 default true;
1597 description
1598 "Enable the interface to be used as backup.";
1599 }
1600 leaf enable {
1601 type boolean;
1602 default false;
1603 description
1604 "Activates LFA - Per-prefix LFA computation
1605 is assumed.";
1606 }
1607 container remote-lfa {
1608 if-feature remote-lfa;
1609 leaf enable {
1610 type boolean;
1611 default false;
1612 description
1613 "Activates Remote LFA (R-LFA).";
1614 }
1615 description
1616 "Remote LFA configuration.";
1617 }
1618 description "Grouping for LFA interface configuration";
1619 }
1620 grouping interface-fast-reroute-config {
1621 description
1622 "This group defines interface configuration of IP-FRR.";
1623 container fast-reroute {
1624 if-feature fast-reroute;
1625 container lfa {
1626 if-feature lfa;
1627 uses interface-lfa-config;
1628 container level-1 {
1629 uses interface-lfa-config;
1630 description
1631 "LFA level 1 config";
1632 }
1633 container level-2 {
1634 uses interface-lfa-config;
1635 description
1636 "LFA level 2 config";
1637 }
1638 description
1639 "LFA configuration.";
1640 }
1641 description
1642 "Interface IP Fast-reroute configuration.";
1643 }
1644 }
1645 grouping instance-fast-reroute-state {
1646 description "IPFRR state data grouping";
1647 container protected-routes {
1648 config false;
1649 list address-family-stats {
1650 key "address-family prefix alternate";
1652 leaf address-family {
1653 type iana-rt-types:address-family;
1654 description
1655 "Address-family";
1656 }
1657 leaf prefix {
1658 type inet:ip-prefix;
1659 description
1660 "Protected prefix.";
1661 }
1662 leaf alternate {
1663 type inet:ip-address;
1664 description
1665 "Alternate next hop for the prefix.";
1666 }
1667 leaf alternate-type {
1668 type enumeration {
1669 enum equal-cost {
1670 description
1671 "ECMP alternate.";
1672 }
1673 enum lfa {
1674 description
1675 "LFA alternate.";
1676 }
1677 enum remote-lfa {
1678 description
1679 "Remote LFA alternate.";
1680 }
1681 enum tunnel {
1682 description
1683 "Tunnel based alternate
1684 (like RSVP-TE or GRE).";
1685 }
1686 enum ti-lfa {
1687 description
1688 "TI-LFA alternate.";
1689 }
1690 enum mrt {
1691 description
1692 "MRT alternate.";
1693 }
1694 enum other {
1695 description
1696 "Unknown alternate type.";
1697 }
1698 }
1699 description
1700 "Type of alternate.";
1702 }
1703 leaf best {
1704 type boolean;
1705 description
1706 "Is set when the alternate is the preferred one,
1707 is unset otherwise.";
1708 }
1709 leaf non-best-reason {
1710 type string {
1711 length "1..255";
1712 }
1713 description
1714 "Information field to describe why the alternate
1715 is not best. The length should be limited to 255
1716 unicode characters. The expected format is a single
1717 line text.";
1718 }
1719 leaf protection-available {
1720 type bits {
1721 bit node-protect {
1722 position 0;
1723 description
1724 "Node protection available.";
1725 }
1726 bit link-protect {
1727 position 1;
1728 description
1729 "Link protection available.";
1730 }
1731 bit srlg-protect {
1732 position 2;
1733 description
1734 "SRLG protection available.";
1735 }
1736 bit downstream-protect {
1737 position 3;
1738 description
1739 "Downstream protection available.";
1740 }
1741 bit other {
1742 position 4;
1743 description
1744 "Other protection available.";
1745 }
1746 }
1747 description "Protection provided by the alternate.";
1748 }
1749 leaf alternate-metric1 {
1750 type uint32;
1751 description
1752 "Metric from Point of Local Repair (PLR) to
1753 destination through the alternate path.";
1754 }
1755 leaf alternate-metric2 {
1756 type uint32;
1757 description
1758 "Metric from PLR to the alternate node";
1759 }
1760 leaf alternate-metric3 {
1761 type uint32;
1762 description
1763 "Metric from alternate node to the destination";
1764 }
1765 description
1766 "Per-AF protected prefix statistics.";
1767 }
1768 description
1769 "List of prefixes that are protected.";
1770 }
1772 container unprotected-routes {
1773 config false;
1774 list address-family-stats {
1775 key "address-family prefix";
1777 leaf address-family {
1778 type iana-rt-types:address-family;
1780 description "Address-family";
1781 }
1782 leaf prefix {
1783 type inet:ip-prefix;
1784 description "Unprotected prefix.";
1785 }
1786 description
1787 "Per AF unprotected prefix statistics.";
1788 }
1789 description
1790 "List of prefixes that are not protected.";
1791 }
1793 list protection-statistics {
1794 key frr-protection-method;
1795 config false;
1796 leaf frr-protection-method {
1797 type string;
1798 description "Protection method used.
1799 The expected format is a single word.
1800 As example: LFA,rLFA, MRT, RSVP-TE...";
1801 }
1802 list address-family-stats {
1803 key address-family;
1805 leaf address-family {
1806 type iana-rt-types:address-family;
1808 description "Address-family";
1809 }
1810 leaf total-routes {
1811 type uint32;
1812 description "Total prefixes.";
1813 }
1814 leaf unprotected-routes {
1815 type uint32;
1816 description
1817 "Total prefixes that are not protected.";
1818 }
1819 leaf protected-routes {
1820 type uint32;
1821 description
1822 "Total prefixes that are protected.";
1823 }
1824 leaf linkprotected-routes {
1825 type uint32;
1826 description
1827 "Total prefixes that are link protected.";
1828 }
1829 leaf nodeprotected-routes {
1830 type uint32;
1831 description
1832 "Total prefixes that are node protected.";
1833 }
1834 description
1835 "Per AF protected prefix statistics.";
1836 }
1838 description "Global protection statistics.";
1839 }
1840 }
1842 /* Route table and local RIB groupings */
1844 grouping local-rib {
1845 description "Local-rib - RIB for Routes computed by the local
1846 IS-IS routing instance.";
1847 container local-rib {
1848 config false;
1849 description "Local-rib.";
1850 list route {
1851 key "prefix";
1852 description "Routes";
1853 leaf prefix {
1854 type inet:ip-prefix;
1855 description "Destination prefix.";
1856 }
1857 container next-hops {
1858 description "Next hops for the route.";
1859 list next-hop {
1860 key "next-hop";
1861 description "List of next hops for the route";
1862 leaf outgoing-interface {
1863 type if:interface-ref;
1864 description
1865 "Name of the outgoing interface.";
1866 }
1867 leaf next-hop {
1868 type inet:ip-address;
1869 description "Next hop address.";
1870 }
1871 }
1872 }
1873 leaf metric {
1874 type uint32;
1875 description "Metric for this route.";
1876 }
1877 leaf level {
1878 type level-number;
1879 description "Level number for this route.";
1880 }
1881 leaf route-tag {
1882 type uint32;
1883 description "Route tag for this route.";
1884 }
1885 }
1886 }
1887 }
1889 grouping route-content {
1890 description
1891 "IS-IS protocol-specific route properties grouping.";
1892 leaf metric {
1893 type uint32;
1894 description "IS-IS metric of a route.";
1895 }
1896 leaf-list tag {
1897 type uint64;
1898 description
1899 "List of tags associated with the route. The leaf
1900 describes both 32-bit and 64-bit tags.";
1901 }
1902 leaf route-type {
1903 type enumeration {
1904 enum l2-up-internal {
1905 description "Level 2 internal route
1906 and not leaked to a lower level";
1907 }
1908 enum l1-up-internal {
1909 description "Level 1 internal route
1910 and not leaked to a lower level";
1911 }
1912 enum l2-up-external {
1913 description "Level 2 external route
1914 and not leaked to a lower level";
1915 }
1916 enum l1-up-external {
1917 description "Level 1 external route
1918 and not leaked to a lower level";
1919 }
1920 enum l2-down-internal {
1921 description "Level 2 internal route
1922 and leaked to a lower level";
1923 }
1924 enum l1-down-internal {
1925 description "Level 1 internal route
1926 and leaked to a lower level";
1927 }
1928 enum l2-down-external {
1929 description "Level 2 external route
1930 and leaked to a lower level";
1931 }
1932 enum l1-down-external {
1933 description "Level 1 external route
1934 and leaked to a lower level";
1935 }
1936 }
1937 description "IS-IS route type.";
1938 }
1939 }
1940 /* Grouping definitions for configuration and ops state */
1942 grouping adjacency-state {
1943 container adjacencies {
1944 config false;
1945 list adjacency {
1946 leaf neighbor-sys-type {
1947 type level;
1948 description
1949 "Level capability of neighboring system";
1950 }
1951 leaf neighbor-sysid {
1952 type system-id;
1953 description
1954 "The system-id of the neighbor";
1955 }
1956 leaf neighbor-extended-circuit-id {
1957 type extended-circuit-id;
1958 description
1959 "Circuit ID of the neighbor";
1960 }
1961 leaf neighbor-snpa {
1962 type snpa;
1963 description
1964 "SNPA of the neighbor";
1965 }
1966 leaf usage {
1967 type level;
1968 description
1969 "Define the level(s) activated on the adjacency.
1970 On a p2p link this might be level 1 and 2,
1971 but on a LAN, the usage will be level 1
1972 between peers at level 1 or level 2 between
1973 peers at level 2.";
1974 }
1975 leaf hold-timer {
1976 type rt-types:timer-value-seconds16;
1977 units seconds;
1978 description
1979 "The holding time in seconds for this
1980 adjacency. This value is based on
1981 received hello PDUs and the elapsed
1982 time since receipt.";
1983 }
1984 leaf neighbor-priority {
1985 type uint8 {
1986 range "0 .. 127";
1988 }
1989 description
1990 "Priority of the neighboring IS for becoming
1991 the DIS.";
1992 }
1993 leaf lastuptime {
1994 type yang:timestamp;
1995 description
1996 "When the adjacency most recently entered
1997 state 'up', measured in hundredths of a
1998 second since the last reinitialization of
1999 the network management subsystem.
2000 The value is 0 if the adjacency has never
2001 been in state 'up'.";
2002 }
2003 leaf state {
2004 type adj-state-type;
2005 description
2006 "This leaf describes the state of the interface.";
2007 }
2009 description
2010 "List of operational adjacencies.";
2011 }
2012 description
2013 "This container lists the adjacencies of
2014 the local node.";
2015 }
2016 description
2017 "Adjacency state";
2018 }
2020 grouping admin-control {
2021 leaf enable {
2022 if-feature admin-control;
2023 type boolean;
2024 default true;
2025 description
2026 "Enable/Disable the protocol.";
2027 }
2028 description
2029 "Grouping for admin control.";
2030 }
2032 grouping ietf-spf-delay {
2033 leaf initial-delay {
2034 type rt-types:timer-value-milliseconds;
2035 units msec;
2036 description
2037 "Delay used while in QUIET state (milliseconds).";
2038 }
2039 leaf short-delay {
2040 type rt-types:timer-value-milliseconds;
2041 units msec;
2042 description
2043 "Delay used while in SHORT_WAIT state (milliseconds).";
2044 }
2045 leaf long-delay {
2046 type rt-types:timer-value-milliseconds;
2047 units msec;
2048 description
2049 "Delay used while in LONG_WAIT state (milliseconds).";
2050 }
2052 leaf hold-down {
2053 type rt-types:timer-value-milliseconds;
2054 units msec;
2055 description
2056 "Timer used to consider an IGP stability period
2057 (milliseconds).";
2058 }
2059 leaf time-to-learn {
2060 type rt-types:timer-value-milliseconds;
2061 units msec;
2062 description
2063 "Duration used to learn all the IGP events
2064 related to a single component failure (milliseconds).";
2065 }
2066 leaf current-state {
2067 type enumeration {
2068 enum "quiet" {
2069 description "QUIET state";
2070 }
2071 enum "short-wait" {
2072 description "SHORT_WAIT state";
2073 }
2074 enum "long-wait" {
2075 description "LONG_WAIT state";
2076 }
2077 }
2078 config false;
2079 description
2080 "Current SPF back-off algorithm state.";
2081 }
2082 leaf remaining-time-to-learn {
2083 type rt-types:timer-value-milliseconds;
2084 units "msec";
2085 config false;
2086 description
2087 "Remaining time until time-to-learn timer fires.";
2088 }
2089 leaf remaining-hold-down {
2090 type rt-types:timer-value-milliseconds;
2091 units "msec";
2092 config false;
2093 description
2094 "Remaining time until hold-down timer fires.";
2095 }
2096 leaf last-event-received {
2097 type yang:timestamp;
2098 config false;
2099 description
2100 "Time of last IGP event received";
2101 }
2102 leaf next-spf-time {
2103 type yang:timestamp;
2104 config false;
2105 description
2106 "Time when next SPF has been scheduled.";
2107 }
2108 leaf last-spf-time {
2109 type yang:timestamp;
2110 config false;
2111 description
2112 "Time of last SPF computation.";
2113 }
2114 description
2115 "Grouping for IETF SPF delay configuration and state.";
2116 }
2118 grouping node-tag-config {
2119 description
2120 "IS-IS node tag config state.";
2121 container node-tags {
2122 if-feature node-tag;
2123 list node-tag {
2124 key tag;
2125 leaf tag {
2126 type uint32;
2127 description
2128 "Node tag value.";
2129 }
2130 description
2131 "List of tags.";
2132 }
2133 description
2134 "Container for node admin tags.";
2135 }
2136 }
2138 grouping authentication-global-cfg {
2139 choice authentication-type {
2140 case key-chain {
2141 if-feature key-chain;
2142 leaf key-chain {
2143 type key-chain:key-chain-ref;
2144 description
2145 "Reference to a key-chain.";
2146 }
2147 }
2148 case password {
2149 leaf key {
2150 type string;
2151 description
2152 "This leaf specifies the authentication key. The
2153 length of the key may be dependent on the
2154 cryptographic algorithm. In cases where it is
2155 not, a key length of at least 32 octets should be
2156 supported to allow for interoperability with
2157 strong keys.";
2158 }
2159 leaf crypto-algorithm {
2160 type identityref {
2161 base key-chain:crypto-algorithm;
2162 }
2163 description
2164 "Cryptographic algorithm associated with key.";
2165 }
2166 }
2167 description "Choice of authentication.";
2168 }
2169 description "Grouping for global authentication config.";
2170 }
2172 grouping metric-type-global-cfg {
2173 leaf value {
2174 type enumeration {
2175 enum wide-only {
2176 description
2177 "Advertise new metric style only (RFC5305)";
2179 }
2180 enum old-only {
2181 description
2182 "Advertise old metric style only (RFC1195)";
2183 }
2184 enum both {
2185 description "Advertise both metric styles";
2186 }
2187 }
2188 default wide-only;
2189 description
2190 "Type of metric to be generated:
2191 - wide-only means only new metric style
2192 is generated,
2193 - old-only means that only old-style metric
2194 is generated,
2195 - both means that both are advertised.
2196 This leaf is only affecting IPv4 metrics.";
2197 }
2198 description
2199 "Grouping for global metric style config.";
2200 }
2202 grouping default-metric-global-cfg {
2203 leaf value {
2204 type wide-metric;
2205 default "10";
2206 description "Value of the metric";
2207 }
2208 description
2209 "Global default metric config grouping.";
2210 }
2212 grouping overload-global-cfg {
2213 leaf status {
2214 type boolean;
2215 default false;
2216 description
2217 "This leaf specifies the overload status.";
2218 }
2219 description "Grouping for overload bit config.";
2220 }
2222 grouping overload-max-metric-global-cfg {
2223 leaf timeout {
2224 type rt-types:timer-value-seconds16;
2225 units "seconds";
2226 description
2227 "Timeout (in seconds) of the overload condition.";
2228 }
2229 description
2230 "Overload maximum metric configuration grouping";
2231 }
2233 grouping route-preference-global-cfg {
2234 choice granularity {
2235 case detail {
2236 leaf internal {
2237 type uint8;
2238 description
2239 "Protocol preference for internal routes.";
2240 }
2241 leaf external {
2242 type uint8;
2243 description
2244 "Protocol preference for external routes.";
2245 }
2246 }
2247 case coarse {
2248 leaf default {
2249 type uint8;
2250 description
2251 "Protocol preference for all IS-IS routes.";
2252 }
2253 }
2254 description
2255 "Choice for implementation of route preference.";
2256 }
2257 description
2258 "Global route preference grouping";
2259 }
2261 grouping hello-authentication-cfg {
2262 choice authentication-type {
2263 case key-chain {
2264 if-feature key-chain;
2265 leaf key-chain {
2266 type key-chain:key-chain-ref;
2267 description "Reference to a key-chain.";
2268 }
2269 }
2270 case password {
2271 leaf key {
2272 type string;
2273 description "Authentication key specification - The
2274 length of the key may be dependent on the
2275 cryptographic algorithm. In cases where
2276 it is not, a key length of at least 32 octets
2277 should be supported to allow for
2278 interoperability with strong keys.";
2279 }
2280 leaf crypto-algorithm {
2281 type identityref {
2282 base key-chain:crypto-algorithm;
2283 }
2284 description
2285 "Cryptographic algorithm associated with key.";
2286 }
2287 }
2288 description "Choice of authentication.";
2289 }
2290 description "Grouping for hello authentication.";
2291 }
2293 grouping hello-interval-cfg {
2294 leaf value {
2295 type rt-types:timer-value-seconds16;
2296 units "seconds";
2297 default 10;
2298 description
2299 "Interval (in seconds) between successive hello
2300 messages.";
2301 }
2303 description "Interval between hello messages.";
2304 }
2306 grouping hello-multiplier-cfg {
2307 leaf value {
2308 type uint16;
2309 default 3;
2310 description
2311 "Number of missed hello messages prior to
2312 declaring the adjacency down.";
2313 }
2314 description
2315 "Number of missed hello messages prior to
2316 adjacency down grouping.";
2317 }
2319 grouping priority-cfg {
2320 leaf value {
2321 type uint8 {
2322 range "0 .. 127";
2323 }
2324 default 64;
2325 description
2326 "Priority of interface for DIS election.";
2327 }
2329 description "Interface DIS election priority grouping";
2330 }
2332 grouping metric-cfg {
2333 leaf value {
2334 type wide-metric;
2335 default "10";
2336 description "Metric value.";
2337 }
2338 description "Interface metric grouping";
2339 }
2341 grouping metric-parameters {
2342 container metric-type {
2343 uses metric-type-global-cfg;
2344 container level-1 {
2345 uses metric-type-global-cfg;
2346 description "level-1 specific configuration";
2347 }
2348 container level-2 {
2349 uses metric-type-global-cfg;
2350 description "level-2 specific configuration";
2351 }
2352 description "Metric style global configuration";
2353 }
2355 container default-metric {
2356 uses default-metric-global-cfg;
2357 container level-1 {
2358 uses default-metric-global-cfg;
2359 description "level-1 specific configuration";
2360 }
2361 container level-2 {
2362 uses default-metric-global-cfg;
2363 description "level-2 specific configuration";
2364 }
2365 description "Default metric global configuration";
2366 }
2367 container auto-cost {
2368 if-feature auto-cost;
2369 description
2370 "Interface Auto-cost configuration state.";
2371 leaf enable {
2372 type boolean;
2373 description
2374 "Enable/Disable interface auto-cost.";
2375 }
2376 leaf reference-bandwidth {
2377 when "../enable = 'true'" {
2378 description "Only when auto cost is enabled";
2379 }
2380 type uint32 {
2381 range "1..4294967";
2382 }
2383 units Mbits;
2384 description
2385 "Configure reference bandwidth used to automatically
2386 determine interface cost (Mbits). The cost is the
2387 reference bandwidth divided by the interface speed
2388 with 1 being the minimum cost.";
2389 }
2390 }
2392 description "Grouping for global metric parameters.";
2393 }
2395 grouping high-availability-parameters {
2396 container graceful-restart {
2397 if-feature graceful-restart;
2398 leaf enable {
2399 type boolean;
2400 default false;
2401 description "Enable graceful restart.";
2402 }
2403 leaf restart-interval {
2404 type rt-types:timer-value-seconds16;
2405 units "seconds";
2406 description
2407 "Interval (in seconds) to attempt graceful restart prior
2408 to failure.";
2409 }
2410 leaf helper-enable {
2411 type boolean;
2412 default true;
2413 description
2414 "Enable local IS-IS router as graceful restart helper.";
2415 }
2416 description "Graceful-Restart Configuration.";
2418 }
2419 container nsr {
2420 if-feature nsr;
2421 description "Non-Stop Routing (NSR) configuration.";
2422 leaf enable {
2423 type boolean;
2424 default false;
2425 description "Enable/Disable Non-Stop Routing (NSR).";
2426 }
2427 }
2428 description "Grouping for High Availability parameters.";
2429 }
2431 grouping authentication-parameters {
2432 container authentication {
2433 uses authentication-global-cfg;
2435 container level-1 {
2436 uses authentication-global-cfg;
2437 description "level-1 specific configuration";
2438 }
2439 container level-2 {
2440 uses authentication-global-cfg;
2441 description "level-2 specific configuration";
2442 }
2443 description "Authentication global configuration for
2444 both LSPs and SNPs.";
2445 }
2446 description "Grouping for authentication parameters";
2447 }
2448 grouping address-family-parameters {
2449 container address-families {
2450 if-feature nlpid-control;
2451 list address-family-list {
2452 key address-family;
2453 leaf address-family {
2454 type iana-rt-types:address-family;
2455 description "Address-family";
2456 }
2457 leaf enable {
2458 type boolean;
2459 description "Activate the address family.";
2460 }
2461 description
2462 "List of address families and whether or not they
2463 are activated.";
2464 }
2465 description "Address Family configuration";
2467 }
2468 description "Grouping for address family parameters.";
2469 }
2471 grouping mpls-parameters {
2472 container mpls {
2473 container te-rid {
2474 if-feature te-rid;
2475 description
2476 "Stable ISIS Router IP Address used for Traffic
2477 Engineering";
2478 leaf ipv4-router-id {
2479 type inet:ipv4-address;
2480 description
2481 "Router ID value that would be used in TLV 134.";
2482 }
2483 leaf ipv6-router-id {
2484 type inet:ipv6-address;
2485 description
2486 "Router ID value that would be used in TLV 140.";
2487 }
2488 }
2489 container ldp {
2490 container igp-sync {
2491 if-feature ldp-igp-sync;
2492 description
2493 "This container may be augmented with global
2494 parameters for igp-ldp-sync.";
2495 }
2496 description "LDP configuration.";
2497 }
2498 description "MPLS configuration";
2499 }
2500 description "Grouping for MPLS global parameters.";
2501 }
2503 grouping lsp-parameters {
2504 leaf lsp-mtu {
2505 type uint16;
2506 units "bytes";
2507 default 1492;
2508 description
2509 "Maximum size of an LSP PDU in bytes.";
2510 }
2511 leaf lsp-lifetime {
2512 type uint16 {
2513 range "1..65535";
2514 }
2515 units "seconds";
2516 description
2517 "Lifetime of the router's LSPs in seconds.";
2518 }
2519 leaf lsp-refresh {
2520 if-feature lsp-refresh;
2521 type rt-types:timer-value-seconds16;
2522 units "seconds";
2523 description
2524 "Refresh interval of the router's LSPs in seconds.";
2525 }
2526 leaf poi-tlv {
2527 if-feature poi-tlv;
2528 type boolean;
2529 default false;
2530 description
2531 "Enable advertisement of IS-IS purge TLV.";
2532 }
2533 description "Grouping for LSP global parameters.";
2534 }
2535 grouping spf-parameters {
2536 container spf-control {
2537 leaf paths {
2538 if-feature max-ecmp;
2539 type uint16 {
2540 range "1..32";
2541 }
2542 description
2543 "Maximum number of Equal-Cost Multi-Path (ECMP) paths.";
2544 }
2545 container ietf-spf-delay {
2546 if-feature ietf-spf-delay;
2547 uses ietf-spf-delay;
2548 description "IETF SPF delay algorithm configuration.";
2549 }
2550 description
2551 "SPF calculation control.";
2552 }
2553 description "Grouping for SPF global parameters.";
2554 }
2555 grouping instance-config {
2556 description "IS-IS global configuration grouping";
2558 uses admin-control;
2560 leaf level-type {
2561 type level;
2562 default "level-all";
2563 description
2564 "Level of an IS-IS node - can be level-1,
2565 level-2 or level-all.";
2566 }
2568 leaf system-id {
2569 type system-id;
2570 description "system-id of the node.";
2571 }
2573 leaf maximum-area-addresses {
2574 if-feature maximum-area-addresses;
2575 type uint8;
2576 default 3;
2577 description "Maximum areas supported.";
2578 }
2580 leaf-list area-address {
2581 type area-address;
2582 description
2583 "List of areas supported by the protocol instance.";
2584 }
2586 uses lsp-parameters;
2587 uses high-availability-parameters;
2588 uses node-tag-config;
2589 uses metric-parameters;
2590 uses authentication-parameters;
2591 uses address-family-parameters;
2592 uses mpls-parameters;
2593 uses spf-parameters;
2594 uses instance-fast-reroute-config;
2596 container preference {
2597 uses route-preference-global-cfg;
2598 description "Router preference configuration for IS-IS
2599 protocol instance route installation";
2600 }
2602 container overload {
2603 uses overload-global-cfg;
2604 description "Router protocol instance overload state
2605 configuration";
2606 }
2608 container overload-max-metric {
2609 if-feature overload-max-metric;
2610 uses overload-max-metric-global-cfg;
2611 description
2612 "Router protocol instance overload maximum
2613 metric advertisement configuration.";
2614 }
2615 }
2617 grouping instance-state {
2618 description
2619 "IS-IS instance operational state.";
2620 uses spf-log;
2621 uses lsp-log;
2622 uses hostname-db;
2623 uses lsdb;
2624 uses local-rib;
2625 uses system-counters;
2626 uses instance-fast-reroute-state;
2627 }
2629 grouping multi-topology-config {
2630 description "Per-topology configuration";
2631 container default-metric {
2632 uses default-metric-global-cfg;
2633 container level-1 {
2634 uses default-metric-global-cfg;
2635 description "level-1 specific configuration";
2636 }
2637 container level-2 {
2638 uses default-metric-global-cfg;
2639 description "level-2 specific configuration";
2640 }
2641 description "Default metric per-topology configuration";
2642 }
2643 uses node-tag-config;
2644 }
2646 grouping interface-config {
2647 description "Interface configuration grouping";
2648 leaf level-type {
2649 type level;
2650 default "level-all";
2651 description "IS-IS level of the interface.";
2652 }
2653 leaf lsp-pacing-interval {
2654 type rt-types:timer-value-milliseconds;
2655 units "milliseconds";
2656 default 33;
2657 description
2658 "Interval (in milli-seconds) between LSP
2659 transmissions.";
2660 }
2661 leaf lsp-retransmit-interval {
2662 type rt-types:timer-value-seconds16;
2663 units "seconds";
2664 description
2665 "Interval (in seconds) between LSP
2666 retransmissions.";
2667 }
2668 leaf passive {
2669 type boolean;
2670 default "false";
2671 description
2672 "Indicates whether the interface is in passive mode (IS-IS
2673 not running but network is advertised).";
2674 }
2675 leaf csnp-interval {
2676 type rt-types:timer-value-seconds16;
2677 units "seconds";
2678 default 10;
2679 description
2680 "Interval (in seconds) between CSNP messages.";
2681 }
2682 container hello-padding {
2683 leaf enable {
2684 type boolean;
2685 default "true";
2686 description
2687 "IS-IS Hello-padding activation - enabled by default.";
2688 }
2689 description "IS-IS hello padding configuration.";
2690 }
2691 leaf mesh-group-enable {
2692 type mesh-group-state;
2693 description "IS-IS interface mesh-group state";
2694 }
2695 leaf mesh-group {
2696 when "../mesh-group-enable = 'mesh-set'" {
2697 description
2698 "Only valid when mesh-group-enable equals mesh-set";
2699 }
2700 type uint8;
2701 description "IS-IS interface mesh-group ID.";
2702 }
2703 leaf interface-type {
2704 type interface-type;
2705 default "broadcast";
2706 description
2707 "Type of adjacency to be established on the interface. This
2708 dictates the type of hello messages that are used.";
2709 }
2711 uses admin-control;
2713 leaf-list tag {
2714 if-feature prefix-tag;
2715 type uint32;
2716 description
2717 "List of tags associated with the interface.";
2718 }
2719 leaf-list tag64 {
2720 if-feature prefix-tag64;
2721 type uint64;
2722 description
2723 "List of 64-bit tags associated with the interface.";
2724 }
2725 leaf node-flag {
2726 if-feature node-flag;
2727 type boolean;
2728 default false;
2729 description
2730 "Set prefix as a node representative prefix.";
2731 }
2732 container hello-authentication {
2733 uses hello-authentication-cfg;
2734 container level-1 {
2735 uses hello-authentication-cfg;
2736 description "level-1 specific configuration";
2737 }
2738 container level-2 {
2739 uses hello-authentication-cfg;
2740 description "level-2 specific configuration";
2741 }
2742 description
2743 "Authentication type to be used in hello messages.";
2744 }
2745 container hello-interval {
2746 uses hello-interval-cfg;
2747 container level-1 {
2748 uses hello-interval-cfg;
2749 description "level-1 specific configuration";
2750 }
2751 container level-2 {
2752 uses hello-interval-cfg;
2753 description "level-2 specific configuration";
2754 }
2755 description "Interval between hello messages.";
2756 }
2757 container hello-multiplier {
2758 uses hello-multiplier-cfg;
2759 container level-1 {
2760 uses hello-multiplier-cfg;
2761 description "level-1 specific configuration";
2762 }
2763 container level-2 {
2764 uses hello-multiplier-cfg;
2765 description "level-2 specific configuration";
2766 }
2767 description "Hello multiplier configuration.";
2768 }
2769 container priority {
2770 must '../interface-type = "broadcast"' {
2771 error-message
2772 "Priority only applies to broadcast interfaces.";
2773 description "Check for broadcast interface.";
2774 }
2775 uses priority-cfg;
2776 container level-1 {
2777 uses priority-cfg;
2778 description "level-1 specific configuration";
2779 }
2780 container level-2 {
2781 uses priority-cfg;
2782 description "level-2 specific configuration";
2783 }
2784 description "Priority for DIS election.";
2785 }
2786 container metric {
2787 uses metric-cfg;
2788 container level-1 {
2789 uses metric-cfg;
2790 description "level-1 specific configuration";
2791 }
2792 container level-2 {
2793 uses metric-cfg;
2794 description "level-2 specific configuration";
2795 }
2796 description "Metric configuration.";
2797 }
2798 container bfd {
2799 if-feature bfd;
2800 description "BFD Client Configuration.";
2801 uses bfd-types:client-cfg-parms;
2802 reference "RFC YYYY - YANG Data Model for Bidirectional
2803 Forwarding Detection (BFD).
2805 -- Note to RFC Editor Please replace YYYY with published FC
2806 number for draft-ietf-bfd-yang.";
2808 }
2809 container address-families {
2810 if-feature nlpid-control;
2811 list address-family-list {
2812 key address-family;
2813 leaf address-family {
2814 type iana-rt-types:address-family;
2815 description "Address-family";
2816 }
2817 description "List of AFs.";
2818 }
2819 description "Interface address-families";
2820 }
2821 container mpls {
2822 container ldp {
2823 leaf igp-sync {
2824 if-feature ldp-igp-sync;
2825 type boolean;
2826 default false;
2827 description "Enables IGP/LDP synchronization";
2828 }
2829 description "LDP protocol related configuration.";
2830 }
2831 description "MPLS configuration for IS-IS interfaces";
2832 }
2833 uses interface-fast-reroute-config;
2834 }
2836 grouping multi-topology-interface-config {
2837 description "IS-IS interface topology configuration.";
2838 container metric {
2839 uses metric-cfg;
2840 container level-1 {
2841 uses metric-cfg;
2842 description "level-1 specific configuration";
2843 }
2844 container level-2 {
2845 uses metric-cfg;
2846 description "level-2 specific configuration";
2847 }
2848 description "Metric IS-IS interface configuration.";
2849 }
2851 }
2852 grouping interface-state {
2853 description
2854 "IS-IS interface operational state.";
2855 uses adjacency-state;
2856 uses event-counters;
2857 uses packet-counters;
2858 }
2860 /* Grouping for the hostname database */
2862 grouping hostname-db {
2863 container hostnames {
2864 config false;
2865 list hostname {
2866 key system-id;
2867 leaf system-id {
2868 type system-id;
2869 description
2870 "system-id associated with the hostname.";
2871 }
2872 leaf hostname {
2873 type string {
2874 length "1..255";
2875 }
2876 description
2877 "Hostname associated with the system-id
2878 as defined in RFC5301.";
2879 }
2880 description
2881 "List of system-id/hostname associations.";
2882 }
2883 description
2884 "Hostname to system-id mapping database.";
2885 }
2886 description
2887 "Grouping for hostname to system-id mapping database.";
2888 }
2890 /* Groupings for counters */
2892 grouping system-counters {
2893 container system-counters {
2894 config false;
2895 list level {
2896 key level;
2898 leaf level {
2899 type level-number;
2900 description "IS-IS level.";
2901 }
2902 leaf corrupted-lsps {
2903 type uint32;
2904 description
2905 "Number of corrupted in-memory LSPs detected.
2906 LSPs received from the wire with a bad
2907 checksum are silently dropped and not counted.
2908 LSPs received from the wire with parse errors
2909 are counted by lsp-errors.";
2910 }
2911 leaf authentication-type-fails {
2912 type uint32;
2913 description
2914 "Number of authentication type mismatches.";
2915 }
2916 leaf authentication-fails {
2917 type uint32;
2918 description
2919 "Number of authentication key failures.";
2920 }
2921 leaf database-overload {
2922 type uint32;
2923 description
2924 "Number of times the database has become
2925 overloaded.";
2926 }
2927 leaf own-lsp-purge {
2928 type uint32;
2929 description
2930 "Number of times a zero-aged copy of the system's
2931 own LSP is received from some other IS-IS node.";
2932 }
2933 leaf manual-address-drop-from-area {
2934 type uint32;
2935 description
2936 "Number of times a manual address
2937 has been dropped from the area.";
2938 }
2939 leaf max-sequence {
2940 type uint32;
2941 description
2942 "Number of times the system has attempted
2943 to exceed the maximum sequence number.";
2944 }
2945 leaf sequence-number-skipped {
2946 type uint32;
2947 description
2948 "Number of times a sequence number skip has
2949 occurred.";
2950 }
2951 leaf id-len-mismatch {
2952 type uint32;
2953 description
2954 "Number of times a PDU is received with a
2955 different value for the ID field length
2956 than that of the receiving system.";
2957 }
2958 leaf partition-changes {
2959 type uint32;
2960 description
2961 "Number of partition changes detected.";
2962 }
2963 leaf lsp-errors {
2964 type uint32;
2965 description
2966 "Number of LSPs with errors we have received.";
2967 }
2968 leaf spf-runs {
2969 type uint32;
2970 description
2971 "Number of times we ran SPF at this level.";
2972 }
2973 description
2974 "List of supported levels.";
2975 }
2976 description
2977 "List counters for the IS-IS protocol instance";
2978 }
2979 description "System counters grouping.";
2980 }
2982 grouping event-counters {
2983 container event-counters {
2984 config false;
2985 leaf adjacency-changes {
2986 type uint32;
2987 description
2988 "The number of times an adjacency state change has
2989 occurred on this interface.";
2990 }
2991 leaf adjacency-number {
2992 type uint32;
2993 description
2994 "The number of adjacencies on this interface.";
2996 }
2997 leaf init-fails {
2998 type uint32;
2999 description
3000 "The number of times initialization of this
3001 interface has failed. This counts events such
3002 as PPP NCP failures. Failures to form an
3003 adjacency are counted by adjacency-rejects.";
3004 }
3005 leaf adjacency-rejects {
3006 type uint32;
3007 description
3008 "The number of times an adjacency has been
3009 rejected on this interface.";
3010 }
3011 leaf id-len-mismatch {
3012 type uint32;
3013 description
3014 "The number of times an IS-IS PDU with an ID
3015 field length different from that for this
3016 system has been received on this interface.";
3017 }
3018 leaf max-area-addresses-mismatch {
3019 type uint32;
3020 description
3021 "The number of times an IS-IS PDU has been
3022 received on this interface with the
3023 max area address field differing from that of
3024 this system.";
3025 }
3026 leaf authentication-type-fails {
3027 type uint32;
3028 description
3029 "Number of authentication type mismatches.";
3030 }
3031 leaf authentication-fails {
3032 type uint32;
3033 description
3034 "Number of authentication key failures.";
3035 }
3036 leaf lan-dis-changes {
3037 type uint32;
3038 description
3039 "The number of times the DIS has changed on this
3040 interface at this level. If the interface type is
3041 point-to-point, the count is zero.";
3042 }
3043 description "IS-IS interface event counters.";
3045 }
3046 description
3047 "Grouping for IS-IS interface event counters";
3048 }
3050 grouping packet-counters {
3051 container packet-counters {
3052 config false;
3053 list level {
3054 key level;
3056 leaf level {
3057 type level-number;
3058 description "IS-IS level.";
3059 }
3060 container iih {
3061 leaf in {
3062 type uint32;
3063 description "Received IIH PDUs.";
3064 }
3065 leaf out {
3066 type uint32;
3067 description "Sent IIH PDUs.";
3068 }
3069 description "Number of IIH PDUs received/sent.";
3070 }
3071 container ish {
3072 leaf in {
3073 type uint32;
3074 description "Received ISH PDUs.";
3075 }
3076 leaf out {
3077 type uint32;
3078 description "Sent ISH PDUs.";
3079 }
3080 description
3081 "ISH PDUs received/sent.";
3082 }
3083 container esh {
3084 leaf in {
3085 type uint32;
3086 description "Received ESH PDUs.";
3087 }
3088 leaf out {
3089 type uint32;
3090 description "Sent ESH PDUs.";
3091 }
3092 description "Number of ESH PDUs received/sent.";
3094 }
3095 container lsp {
3096 leaf in {
3097 type uint32;
3098 description "Received LSP PDUs.";
3099 }
3100 leaf out {
3101 type uint32;
3102 description "Sent LSP PDUs.";
3103 }
3104 description "Number of LSP PDUs received/sent.";
3105 }
3106 container psnp {
3107 leaf in {
3108 type uint32;
3109 description "Received PSNP PDUs.";
3110 }
3111 leaf out {
3112 type uint32;
3113 description "Sent PSNP PDUs.";
3114 }
3115 description "Number of PSNP PDUs received/sent.";
3116 }
3117 container csnp {
3118 leaf in {
3119 type uint32;
3120 description "Received CSNP PDUs.";
3121 }
3122 leaf out {
3123 type uint32;
3124 description "Sent CSNP PDUs.";
3125 }
3126 description "Number of CSNP PDUs received/sent.";
3127 }
3128 container unknown {
3129 leaf in {
3130 type uint32;
3131 description "Received unknown PDUs.";
3132 }
3133 leaf out {
3134 type uint32;
3135 description "Sent unknown PDUs.";
3136 }
3137 description "Number of unknown PDUs received/sent.";
3138 }
3139 description
3140 "List of packet counter for supported levels.";
3141 }
3142 description "Packet counters per IS-IS level.";
3143 }
3144 description
3145 "Grouping for per IS-IS Level packet counters.";
3146 }
3148 /* Groupings for various log buffers */
3149 grouping spf-log {
3150 container spf-log {
3151 config false;
3152 list event {
3153 key id;
3155 leaf id {
3156 type uint32;
3157 description
3158 "Event identifier - purely internal value.";
3159 }
3160 leaf spf-type {
3161 type enumeration {
3162 enum full {
3163 description "Full SPF computation.";
3164 }
3165 enum route-only {
3166 description
3167 "Route reachability only SPF computation";
3168 }
3169 }
3170 description "Type of SPF computation performed.";
3171 }
3172 leaf level {
3173 type level-number;
3174 description
3175 "IS-IS level number for SPF computation";
3176 }
3177 leaf schedule-timestamp {
3178 type yang:timestamp;
3179 description
3180 "Timestamp of when the SPF computation was
3181 scheduled.";
3182 }
3183 leaf start-timestamp {
3184 type yang:timestamp;
3185 description
3186 "Timestamp of when the SPF computation started.";
3187 }
3188 leaf end-timestamp {
3189 type yang:timestamp;
3190 description
3191 "Timestamp of when the SPF computation ended.";
3192 }
3193 list trigger-lsp {
3194 key "lsp";
3195 leaf lsp {
3196 type lsp-id;
3197 description
3198 "LSP ID of the LSP triggering SPF computation.";
3199 }
3200 leaf sequence {
3201 type uint32;
3202 description
3203 "Sequence number of the LSP triggering SPF
3204 computation";
3205 }
3206 description
3207 "This list includes the LSPs that triggered the
3208 SPF computation.";
3209 }
3210 description
3211 "List of computation events - implemented as a
3212 wrapping buffer.";
3213 }
3215 description
3216 "This container lists the SPF computation events.";
3217 }
3218 description "Grouping for spf-log events.";
3219 }
3221 grouping lsp-log {
3222 container lsp-log {
3223 config false;
3224 list event {
3225 key id;
3227 leaf id {
3228 type uint32;
3229 description
3230 "Event identifier - purely internal value.";
3231 }
3232 leaf level {
3233 type level-number;
3234 description
3235 "IS-IS level number for LSP";
3236 }
3237 container lsp {
3238 leaf lsp {
3239 type lsp-id;
3240 description
3241 "LSP ID of the LSP.";
3242 }
3243 leaf sequence {
3244 type uint32;
3245 description
3246 "Sequence number of the LSP.";
3247 }
3248 description
3249 "LSP identification container - either the received
3250 LSP or the locally generated LSP.";
3251 }
3253 leaf received-timestamp {
3254 type yang:timestamp;
3255 description
3256 "This is the timestamp when the LSA was received.
3257 In case of local LSA update, the timestamp refers
3258 to the LSA origination time.";
3259 }
3261 leaf reason {
3262 type identityref {
3263 base lsp-log-reason;
3264 }
3265 description "Type of LSP change.";
3266 }
3268 description
3269 "List of LSP events - implemented as a
3270 wrapping buffer.";
3271 }
3273 description
3274 "This container lists the LSP log.
3275 Local LSP modifications are also included
3276 in the list.";
3278 } description "Grouping for LSP log.";
3279 }
3281 /* Groupings for the LSDB description */
3283 /* Unknown TLV and sub-TLV description */
3284 grouping tlv {
3285 description
3286 "Type-Length-Value (TLV)";
3287 leaf type {
3288 type uint16;
3289 description "TLV type.";
3290 }
3291 leaf length {
3292 type uint16;
3293 description "TLV length (octets).";
3294 }
3295 leaf value {
3296 type yang:hex-string;
3297 description "TLV value.";
3298 }
3299 }
3301 grouping unknown-tlvs {
3302 description
3303 "Unknown TLVs grouping - Used for unknown TLVs or
3304 unknown sub-TLVs.";
3305 container unknown-tlvs {
3306 description "All unknown TLVs.";
3307 list unknown-tlv {
3308 description "Unknown TLV.";
3309 uses tlv;
3310 }
3311 }
3312 }
3314 /* TLVs and sub-TLVs for prefixes */
3316 grouping prefix-reachability-attributes {
3317 description
3318 "Grouping for extended reachability attributes of an
3319 IPv4 or IPv6 prefix.";
3321 leaf external-prefix-flag {
3322 type boolean;
3323 description "External prefix flag.";
3324 }
3325 leaf readvertisement-flag {
3326 type boolean;
3327 description "Re-advertisement flag.";
3328 }
3329 leaf node-flag {
3330 type boolean;
3331 description "Node flag.";
3333 }
3334 }
3336 grouping prefix-ipv4-source-router-id {
3337 description
3338 "Grouping for the IPv4 source router ID of a prefix
3339 advertisement.";
3341 leaf ipv4-source-router-id {
3342 type inet:ipv4-address;
3343 description "IPv4 Source router ID address.";
3344 }
3345 }
3347 grouping prefix-ipv6-source-router-id {
3348 description
3349 "Grouping for the IPv6 source router ID of a prefix
3350 advertisement.";
3352 leaf ipv6-source-router-id {
3353 type inet:ipv6-address;
3354 description "IPv6 Source router ID address.";
3355 }
3356 }
3358 grouping prefix-attributes-extension {
3359 description "Prefix extended attributes
3360 as defined in RFC7794.";
3362 uses prefix-reachability-attributes;
3363 uses prefix-ipv4-source-router-id;
3364 uses prefix-ipv6-source-router-id;
3365 }
3367 grouping prefix-ipv4-std {
3368 description
3369 "Grouping for attributes of an IPv4 standard prefix
3370 as defined in RFC1195.";
3371 leaf ip-prefix {
3372 type inet:ipv4-address;
3373 description "IPv4 prefix address";
3374 }
3375 leaf prefix-len {
3376 type uint8;
3377 description "IPv4 prefix length (in bits)";
3378 }
3379 leaf i-e {
3380 type boolean;
3381 description "Internal or External (I/E) Metric bit value.";
3382 }
3383 container default-metric {
3384 leaf metric {
3385 type std-metric;
3386 description "Default IS-IS metric for IPv4 prefix";
3387 }
3388 description "IS-IS default metric container.";
3389 }
3390 container delay-metric {
3391 leaf metric {
3392 type std-metric;
3393 description "IS-IS delay metric for IPv4 prefix";
3394 }
3395 leaf supported {
3396 type boolean;
3397 default "false";
3398 description
3399 "Indicates whether IS-IS delay metric is supported.";
3400 }
3401 description "IS-IS delay metric container.";
3402 }
3403 container expense-metric {
3404 leaf metric {
3405 type std-metric;
3406 description "IS-IS expense metric for IPv4 prefix";
3407 }
3408 leaf supported {
3409 type boolean;
3410 default "false";
3411 description
3412 "Indicates whether IS-IS delay metric is supported.";
3413 }
3414 description "IS-IS expense metric container.";
3415 }
3416 container error-metric {
3417 leaf metric {
3418 type std-metric;
3419 description
3420 "This leaf describes the IS-IS error metric value";
3421 }
3422 leaf supported {
3423 type boolean;
3424 default "false";
3425 description "IS-IS error metric for IPv4 prefix";
3426 }
3427 description "IS-IS error metric container.";
3428 }
3430 }
3432 grouping prefix-ipv4-extended {
3433 description
3434 "Grouping for attributes of an IPv4 extended prefix
3435 as defined in RFC5305.";
3436 leaf up-down {
3437 type boolean;
3438 description "Value of up/down bit.";
3439 }
3440 leaf ip-prefix {
3441 type inet:ipv4-address;
3442 description "IPv4 prefix address";
3443 }
3444 leaf prefix-len {
3445 type uint8;
3446 description "IPv4 prefix length (in bits)";
3447 }
3448 leaf metric {
3449 type wide-metric;
3450 description "IS-IS wide metric value";
3451 }
3452 leaf-list tag {
3453 type uint32;
3454 description
3455 "List of 32-bit tags associated with the IPv4 prefix.";
3456 }
3457 leaf-list tag64 {
3458 type uint64;
3459 description
3460 "List of 32-bit tags associated with the IPv4 prefix.";
3461 }
3462 uses prefix-attributes-extension;
3463 }
3465 grouping prefix-ipv6-extended {
3466 description "Grouping for attributes of an IPv6 prefix
3467 as defined in RFC5308.";
3468 leaf up-down {
3469 type boolean;
3470 description "Value of up/down bit.";
3471 }
3472 leaf ip-prefix {
3473 type inet:ipv6-address;
3474 description "IPv6 prefix address";
3475 }
3476 leaf prefix-len {
3477 type uint8;
3478 description "IPv4 prefix length (in bits)";
3479 }
3480 leaf metric {
3481 type wide-metric;
3482 description "IS-IS wide metric value";
3483 }
3484 leaf-list tag {
3485 type uint32;
3486 description
3487 "List of 32-bit tags associated with the IPv4 prefix.";
3488 }
3489 leaf-list tag64 {
3490 type uint64;
3491 description
3492 "List of 32-bit tags associated with the IPv4 prefix.";
3493 }
3494 uses prefix-attributes-extension;
3495 }
3497 /* TLVs and sub-TLVs for neighbors */
3499 grouping neighbor-link-attributes {
3500 description
3501 "Grouping for link attributes as defined
3502 in RFC5029";
3503 leaf link-attributes-flags {
3504 type uint16;
3505 description
3506 "Flags for the link attributes";
3507 }
3508 }
3509 grouping neighbor-gmpls-extensions {
3510 description
3511 "Grouping for GMPLS attributes of a neighbor as defined
3512 in RFC5307";
3513 leaf link-local-id {
3514 type uint32;
3515 description
3516 "Local identifier of the link.";
3517 }
3518 leaf remote-local-id {
3519 type uint32;
3520 description
3521 "Remote identifier of the link.";
3522 }
3523 leaf protection-capability {
3524 type uint8;
3525 description
3526 "Describes the protection capabilities
3527 of the link. This is the value of the
3528 first octet of the sub-TLV type 20 value.";
3529 }
3530 container interface-switching-capability {
3531 description
3532 "Interface switching capabilities of the link.";
3533 leaf switching-capability {
3534 type uint8;
3535 description
3536 "Switching capability of the link.";
3537 }
3538 leaf encoding {
3539 type uint8;
3540 description
3541 "Type of encoding of the LSP being used.";
3542 }
3543 container max-lsp-bandwidths {
3544 description "Per priority max LSP bandwidths.";
3545 list max-lsp-bandwidth {
3546 leaf priority {
3547 type uint8 {
3548 range "0 .. 7";
3549 }
3550 description "Priority from 0 to 7.";
3551 }
3552 leaf bandwidth {
3553 type rt-types:bandwidth-ieee-float32;
3554 description "max LSP bandwidth.";
3555 }
3556 description
3557 "List of max LSP bandwidths for different
3558 priorities.";
3559 }
3560 }
3561 container tdm-specific {
3562 when "../switching-capability = 100";
3563 description
3564 "Switching Capability-specific information applicable
3565 when switching type is TDM.";
3567 leaf minimum-lsp-bandwidth {
3568 type rt-types:bandwidth-ieee-float32;
3569 description "minimum LSP bandwidth.";
3570 }
3571 leaf indication {
3572 type uint8;
3573 description
3574 "The indication whether the interface supports Standard
3575 or Arbitrary SONET/SDH.";
3576 }
3577 }
3578 container psc-specific {
3579 when "../switching-capability >= 1 and
3580 ../switching-capability <= 4";
3581 description
3582 "Switching Capability-specific information applicable
3583 when switching type is PSC1,PSC2,PSC3 or PSC4.";
3585 leaf minimum-lsp-bandwidth {
3586 type rt-types:bandwidth-ieee-float32;
3587 description "minimum LSP bandwidth.";
3588 }
3589 leaf mtu {
3590 type uint16;
3591 units bytes;
3592 description
3593 "Interface MTU";
3594 }
3595 }
3596 }
3597 }
3599 grouping neighbor-extended-te-extensions {
3600 description
3601 "Grouping for TE attributes of a neighbor as defined
3602 in RFC7810";
3604 container unidirectional-link-delay {
3605 description
3606 "Container for the average delay
3607 from the local neighbor to the remote one.";
3608 leaf flags {
3609 type bits {
3610 bit A {
3611 position 7;
3612 description
3613 "The A bit represents the Anomalous (A) bit.
3614 The A bit is set when the measured value of
3615 this parameter exceeds its configured
3616 maximum threshold.
3617 The A bit is cleared when the measured value
3618 falls below its configured reuse threshold.
3619 If the A bit is clear,
3620 the value represents steady-state link performance.";
3621 }
3623 }
3624 description
3625 "Flags.";
3626 }
3627 leaf value {
3628 type uint32;
3629 units usec;
3630 description
3631 "Delay value expressed in microseconds.";
3632 }
3633 }
3634 container min-max-unidirectional-link-delay {
3635 description
3636 "Container for the min and max delay
3637 from the local neighbor to the remote one.";
3638 leaf flags {
3639 type bits {
3640 bit A {
3641 position 7;
3642 description
3643 "The A bit represents the Anomalous (A) bit.
3644 The A bit is set when the measured value of
3645 this parameter exceeds its configured
3646 maximum threshold.
3647 The A bit is cleared when the measured value
3648 falls below its configured reuse threshold.
3649 If the A bit is clear,
3650 the value represents steady-state link performance.";
3651 }
3652 }
3653 description
3654 "Flags.";
3655 }
3656 leaf min-value {
3657 type uint32;
3658 units usec;
3659 description
3660 "Minimum delay value expressed in microseconds.";
3661 }
3662 leaf max-value {
3663 type uint32;
3664 units usec;
3665 description
3666 "Maximum delay value expressed in microseconds.";
3667 }
3668 }
3669 container unidirectional-link-delay-variation {
3670 description
3671 "Container for the average delay variation
3672 from the local neighbor to the remote one.";
3673 leaf value {
3674 type uint32;
3675 units usec;
3676 description
3677 "Delay variation value expressed in microseconds.";
3678 }
3679 }
3680 container unidirectional-link-loss{
3681 description
3682 "Container for the packet loss
3683 from the local neighbor to the remote one.";
3684 leaf flags {
3685 type bits {
3686 bit A {
3687 position 7;
3688 description
3689 "The A bit represents the Anomalous (A) bit.
3690 The A bit is set when the measured value of
3691 this parameter exceeds its configured
3692 maximum threshold.
3693 The A bit is cleared when the measured value
3694 falls below its configured reuse threshold.
3695 If the A bit is clear,
3696 the value represents steady-state link performance.";
3697 }
3698 }
3699 description
3700 "Flags.";
3701 }
3702 leaf value {
3703 type uint32;
3704 units percent;
3705 description
3706 "Link packet loss expressed as a percentage
3707 of the total traffic sent over a configurable interval.";
3708 }
3709 }
3710 container unidirectional-link-residual-bandwidth {
3711 description
3712 "Container for the residual bandwidth
3713 from the local neighbor to the remote one.";
3714 leaf value {
3715 type rt-types:bandwidth-ieee-float32;
3716 units Bps;
3717 description
3718 "Residual bandwidth.";
3720 }
3721 }
3722 container unidirectional-link-available-bandwidth {
3723 description
3724 "Container for the available bandwidth
3725 from the local neighbor to the remote one.";
3726 leaf value {
3727 type rt-types:bandwidth-ieee-float32;
3728 units Bps;
3729 description
3730 "Available bandwidth.";
3731 }
3732 }
3733 container unidirectional-link-utilized-bandwidth {
3734 description
3735 "Container for the utilized bandwidth
3736 from the local neighbor to the remote one.";
3737 leaf value {
3738 type rt-types:bandwidth-ieee-float32;
3739 units Bps;
3740 description
3741 "Utilized bandwidth.";
3742 }
3743 }
3744 }
3746 grouping neighbor-te-extensions {
3747 description
3748 "Grouping for TE attributes of a neighbor as defined
3749 in RFC5305";
3750 leaf admin-group {
3751 type uint32;
3752 description
3753 "Administrative group/Resource Class/Color.";
3754 }
3755 container local-if-ipv4-addrs {
3756 description "All local interface IPv4 addresses.";
3757 leaf-list local-if-ipv4-addr {
3758 type inet:ipv4-address;
3759 description
3760 "List of local interface IPv4 addresses.";
3761 }
3762 }
3763 container remote-if-ipv4-addrs {
3764 description "All remote interface IPv4 addresses.";
3765 leaf-list remote-if-ipv4-addr {
3766 type inet:ipv4-address;
3767 description
3768 "List of remote interface IPv4 addresses.";
3769 }
3770 }
3771 leaf te-metric {
3772 type uint32;
3773 description "TE metric.";
3774 }
3775 leaf max-bandwidth {
3776 type rt-types:bandwidth-ieee-float32;
3777 description "Maximum bandwidth.";
3778 }
3779 leaf max-reservable-bandwidth {
3780 type rt-types:bandwidth-ieee-float32;
3781 description "Maximum reservable bandwidth.";
3782 }
3783 container unreserved-bandwidths {
3784 description "All unreserved bandwidths.";
3785 list unreserved-bandwidth {
3786 leaf priority {
3787 type uint8 {
3788 range "0 .. 7";
3789 }
3790 description "Priority from 0 to 7.";
3791 }
3792 leaf unreserved-bandwidth {
3793 type rt-types:bandwidth-ieee-float32;
3794 description "Unreserved bandwidth.";
3795 }
3796 description
3797 "List of unreserved bandwidths for different
3798 priorities.";
3799 }
3800 }
3801 }
3803 grouping neighbor-extended {
3804 description
3805 "Grouping for attributes of an IS-IS extended neighbor.";
3806 leaf neighbor-id {
3807 type extended-system-id;
3808 description "system-id of the extended neighbor.";
3809 }
3810 container instances {
3811 description "List of all adjacencies between the local
3812 system and the neighbor system-id.";
3813 list instance {
3814 key id;
3815 leaf id {
3816 type uint32;
3817 description "Unique identifier of an instance of a
3818 particular neighbor.";
3819 }
3820 leaf metric {
3821 type wide-metric;
3822 description "IS-IS wide metric for extended neighbor";
3823 }
3824 uses neighbor-gmpls-extensions;
3825 uses neighbor-te-extensions;
3826 uses neighbor-extended-te-extensions;
3827 uses neighbor-link-attributes;
3828 uses unknown-tlvs;
3829 description "Instance of a particular adjacency.";
3830 }
3831 }
3832 }
3834 grouping neighbor {
3835 description "IS-IS standard neighbor grouping.";
3836 leaf neighbor-id {
3837 type extended-system-id;
3838 description "IS-IS neighbor system-id";
3839 }
3840 container instances {
3841 description "List of all adjacencies between the local
3842 system and the neighbor system-id.";
3843 list instance {
3844 key id;
3846 leaf id {
3847 type uint32;
3848 description "Unique identifier of an instance of a
3849 particular neighbor.";
3850 }
3851 leaf i-e {
3852 type boolean;
3853 description
3854 "Internal or External (I/E) Metric bit value";
3855 }
3856 container default-metric {
3857 leaf metric {
3858 type std-metric;
3859 description "IS-IS default metric value";
3860 }
3861 description "IS-IS default metric container";
3862 }
3863 container delay-metric {
3864 leaf metric {
3865 type std-metric;
3866 description "IS-IS delay metric value";
3867 }
3868 leaf supported {
3869 type boolean;
3870 default "false";
3871 description "IS-IS delay metric supported";
3872 }
3873 description "IS-IS delay metric container";
3874 }
3875 container expense-metric {
3876 leaf metric {
3877 type std-metric;
3878 description "IS-IS delay expense metric value";
3879 }
3880 leaf supported {
3881 type boolean;
3882 default "false";
3883 description "IS-IS delay expense metric supported";
3884 }
3885 description "IS-IS delay expense metric container";
3886 }
3887 container error-metric {
3888 leaf metric {
3889 type std-metric;
3890 description "IS-IS error metric value";
3891 }
3892 leaf supported {
3893 type boolean;
3894 default "false";
3895 description "IS-IS error metric supported";
3896 }
3897 description "IS-IS error metric container";
3898 }
3899 description "Instance of a particular adjacency
3900 as defined in ISO10589.";
3901 }
3902 }
3903 }
3905 /* Top-level TLVs */
3907 grouping tlv132-ipv4-addresses {
3908 leaf-list ipv4-addresses {
3909 type inet:ipv4-address;
3910 description
3911 "List of IPv4 addresses of the IS-IS node - IS-IS
3912 reference is TLV 132.";
3913 }
3914 description "Grouping for TLV132.";
3915 }
3916 grouping tlv232-ipv6-addresses {
3917 leaf-list ipv6-addresses {
3918 type inet:ipv6-address;
3919 description
3920 "List of IPv6 addresses of the IS-IS node - IS-IS
3921 reference is TLV 232.";
3922 }
3923 description "Grouping for TLV232.";
3924 }
3925 grouping tlv134-ipv4-te-rid {
3926 leaf ipv4-te-routerid {
3927 type inet:ipv4-address;
3928 description
3929 "IPv4 Traffic Engineering router ID of the IS-IS node -
3930 IS-IS reference is TLV 134.";
3931 }
3932 description "Grouping for TLV134.";
3933 }
3934 grouping tlv140-ipv6-te-rid {
3935 leaf ipv6-te-routerid {
3936 type inet:ipv6-address;
3937 description
3938 "IPv6 Traffic Engineering router ID of the IS-IS node -
3939 IS-IS reference is TLV 140.";
3940 }
3941 description "Grouping for TLV140.";
3942 }
3943 grouping tlv129-protocols {
3944 leaf-list protocol-supported {
3945 type uint8;
3946 description
3947 "List of supported protocols of the IS-IS node -
3948 IS-IS reference is TLV 129.";
3949 }
3950 description "Grouping for TLV129.";
3951 }
3952 grouping tlv137-hostname {
3953 leaf dynamic-hostname {
3954 type string;
3955 description
3956 "Host Name of the IS-IS node - IS-IS reference
3957 is TLV 137.";
3958 }
3959 description "Grouping for TLV137.";
3960 }
3961 grouping tlv10-authentication {
3962 container authentication {
3963 leaf authentication-type {
3964 type identityref {
3965 base key-chain:crypto-algorithm;
3966 }
3967 description
3968 "Authentication type to be used with IS-IS node.";
3969 }
3970 leaf authentication-key {
3971 type string;
3972 description
3973 "Authentication key to be used. For security reasons,
3974 the authentication key MUST NOT be presented in
3975 a clear text format in response to any request
3976 (e.g., via get, get-config).";
3977 }
3978 description
3979 "IS-IS node authentication information container -
3980 IS-IS reference is TLV 10.";
3981 }
3982 description "Grouping for TLV10.";
3983 }
3984 grouping tlv229-mt {
3985 container mt-entries {
3986 list topology {
3987 description
3988 "List of topologies supported";
3990 leaf mt-id {
3991 type uint16 {
3992 range "0 .. 4095";
3993 }
3994 description
3995 "Multi-Topology identifier of topology.";
3996 }
3998 leaf attributes {
3999 type bits {
4000 bit overload {
4001 description
4002 "If set, the originator is overloaded,
4003 and must be avoided in path calculation.";
4004 }
4005 bit attached {
4006 description
4007 "If set, the originator is attached to
4008 another area using the referred metric.";
4009 }
4010 }
4011 description
4012 "Attributes of the LSP for the associated
4013 topology.";
4014 }
4015 }
4016 description
4017 "IS-IS node topology information container -
4018 IS-IS reference is TLV 229.";
4019 }
4020 description "Grouping for TLV229.";
4021 }
4023 grouping tlv242-router-capabilities {
4024 container router-capabilities {
4025 list router-capability {
4026 leaf flags {
4027 type bits {
4028 bit flooding {
4029 position 0;
4030 description
4031 "If the S bit is set, the IS-IS Router CAPABILITY
4032 TLV MUST be flooded across the entire routing
4033 domain. If the S bit is clear, the TLV MUST NOT
4034 be leaked between levels. This bit MUST NOT
4035 be altered during the TLV leaking.";
4036 }
4037 bit down {
4038 position 1;
4039 description
4040 "When the IS-IS Router CAPABILITY TLV is leaked
4041 from level-2 to level-1, the D bit MUST be set.
4042 Otherwise, this bit MUST be clear. IS-IS Router
4043 capability TLVs with the D bit set MUST NOT be
4044 leaked from level-1 to level-2 in to prevent
4045 TLV looping.";
4046 }
4047 }
4048 description "Router Capability Flags";
4049 }
4050 container node-tags {
4051 if-feature node-tag;
4052 list node-tag {
4053 leaf tag {
4054 type uint32;
4055 description "Node tag value.";
4056 }
4057 description "List of tags.";
4058 }
4059 description "Container for node admin tags";
4060 }
4062 uses unknown-tlvs;
4064 leaf binary {
4065 type binary;
4066 description
4067 "Binary encoding of the IS-IS node capabilities";
4068 }
4069 description
4070 "IS-IS node capabilities. This list element may
4071 be extended with detailed information - IS-IS
4072 reference is TLV 242.";
4073 }
4074 description "List of router capability TLVs.";
4075 }
4076 description "Grouping for TLV242.";
4077 }
4079 grouping tlv138-srlg {
4080 description
4081 "Grouping for TLV138.";
4082 container links-srlgs {
4083 list links {
4084 leaf neighbor-id {
4085 type extended-system-id;
4086 description "system-id of the extended neighbor.";
4087 }
4088 leaf flags {
4089 type uint8;
4090 description
4091 "Flags associated with the link.";
4092 }
4093 leaf link-local-id {
4094 type union {
4095 type inet:ip-address;
4096 type uint32;
4097 }
4098 description
4099 "Local identifier of the link.
4100 It could be an IPv4 address or a local identifier.";
4101 }
4102 leaf link-remote-id {
4103 type union {
4104 type inet:ip-address;
4105 type uint32;
4106 }
4107 description
4108 "Remote identifier of the link.
4109 It could be an IPv4 address or a remotely learned
4110 identifier.";
4111 }
4112 container srlgs {
4113 description "List of SRLGs.";
4114 leaf-list srlg {
4115 type uint32;
4116 description
4117 "SRLG value of the link.";
4118 }
4119 }
4120 description
4121 "SRLG attribute of a link.";
4122 }
4123 description
4124 "List of links with SRLGs";
4125 }
4126 }
4128 /* Grouping for LSDB description */
4130 grouping lsp-entry {
4131 description "IS-IS LSP database entry grouping";
4133 leaf decoded-completed {
4134 type boolean;
4135 description "IS-IS LSP body fully decoded.";
4136 }
4137 leaf raw-data {
4138 type yang:hex-string;
4139 description
4140 "The hexadecimal representation of the complete LSP in
4141 network-byte order (NBO) as received or originated.";
4142 }
4143 leaf lsp-id {
4144 type lsp-id;
4145 description "LSP ID of the LSP";
4146 }
4147 leaf checksum {
4148 type uint16;
4149 description "LSP checksum";
4150 }
4151 leaf remaining-lifetime {
4152 type uint16;
4153 units "seconds";
4154 description
4155 "Remaining lifetime (in seconds) until LSP expiration.";
4156 }
4157 leaf sequence {
4158 type uint32;
4159 description
4160 "This leaf describes the sequence number of the LSP.";
4161 }
4162 leaf attributes {
4163 type bits {
4164 bit partitioned {
4165 description "Originator partition repair supported";
4166 }
4167 bit attached-error {
4168 description
4169 "If set, the originator is attached to
4170 another area using the referred metric.";
4171 }
4172 bit attached-expense {
4173 description
4174 "If set, the originator is attached to
4175 another area using the referred metric.";
4176 }
4177 bit attached-delay {
4178 description
4179 "If set, the originator is attached to
4180 another area using the referred metric.";
4181 }
4182 bit attached-default {
4183 description
4184 "If set, the originator is attached to
4185 another area using the referred metric.";
4186 }
4187 bit overload {
4188 description
4189 "If set, the originator is overloaded,
4190 and must be avoided in path calculation.";
4191 }
4192 }
4193 description "LSP attributes";
4194 }
4196 uses tlv132-ipv4-addresses;
4197 uses tlv232-ipv6-addresses;
4198 uses tlv134-ipv4-te-rid;
4199 uses tlv140-ipv6-te-rid;
4200 uses tlv129-protocols;
4201 uses tlv137-hostname;
4202 uses tlv10-authentication;
4203 uses tlv229-mt;
4204 uses tlv242-router-capabilities;
4205 uses tlv138-srlg;
4206 uses unknown-tlvs;
4208 container is-neighbor {
4209 list neighbor {
4210 key neighbor-id;
4212 uses neighbor;
4213 description "List of neighbors.";
4214 }
4215 description
4216 "Standard IS neighbors container - IS-IS reference is
4217 TLV 2.";
4218 }
4220 container extended-is-neighbor {
4221 list neighbor {
4222 key neighbor-id;
4224 uses neighbor-extended;
4225 description
4226 "List of extended IS neighbors";
4227 }
4228 description
4229 "Standard IS extended neighbors container - IS-IS
4230 reference is TLV 22";
4231 }
4233 container ipv4-internal-reachability {
4234 list prefixes {
4235 uses prefix-ipv4-std;
4236 description "List of prefixes.";
4237 }
4238 description
4239 "IPv4 internal reachability information container - IS-IS
4240 reference is TLV 128.";
4241 }
4243 container ipv4-external-reachability {
4244 list prefixes {
4245 uses prefix-ipv4-std;
4246 description "List of prefixes.";
4248 }
4249 description
4250 "IPv4 external reachability information container -
4251 IS-IS reference is TLV 130.";
4252 }
4254 container extended-ipv4-reachability {
4255 list prefixes {
4256 uses prefix-ipv4-extended;
4257 uses unknown-tlvs;
4258 description "List of prefixes.";
4259 }
4260 description
4261 "IPv4 extended reachability information container -
4262 IS-IS reference is TLV 135.";
4263 }
4265 container mt-is-neighbor {
4266 list neighbor {
4267 leaf mt-id {
4268 type uint16 {
4269 range "0 .. 4095";
4270 }
4271 description "Multi-topology (MT) identifier";
4272 }
4273 uses neighbor-extended;
4274 description "List of neighbors.";
4275 }
4276 description
4277 "IS-IS multi-topology neighbor container - IS-IS
4278 reference is TLV 223.";
4279 }
4281 container mt-extended-ipv4-reachability {
4282 list prefixes {
4283 leaf mt-id {
4284 type uint16 {
4285 range "0 .. 4095";
4286 }
4287 description "Multi-topology (MT) identifier";
4288 }
4289 uses prefix-ipv4-extended;
4290 uses unknown-tlvs;
4291 description "List of extended prefixes.";
4292 }
4293 description
4294 "IPv4 multi-topology (MT) extended reachability
4295 information container - IS-IS reference is TLV 235.";
4297 }
4299 container mt-ipv6-reachability {
4300 list prefixes {
4301 leaf MT-ID {
4302 type uint16 {
4303 range "0 .. 4095";
4304 }
4305 description "Multi-topology (MT) identifier";
4306 }
4307 uses prefix-ipv6-extended;
4308 uses unknown-tlvs;
4309 description "List of IPv6 extended prefixes.";
4310 }
4311 description
4312 "IPv6 multi-topology (MT) extended reachability
4313 information container - IS-IS reference is TLV 237.";
4314 }
4316 container ipv6-reachability {
4317 list prefixes {
4318 uses prefix-ipv6-extended;
4319 uses unknown-tlvs;
4320 description "List of IPv6 prefixes.";
4321 }
4322 description
4323 "IPv6 reachability information container - IS-IS
4324 reference is TLV 236.";
4325 }
4326 }
4328 grouping lsdb {
4329 description "Link State Database (LSDB) grouping";
4330 container database {
4331 config false;
4332 list levels {
4333 key level;
4335 leaf level {
4336 type level-number;
4337 description "LSDB level number (1 or 2)";
4338 }
4339 list lsp {
4340 key lsp-id;
4341 uses lsp-entry;
4342 description "List of LSPs in LSDB";
4343 }
4344 description "List of LSPs for the LSDB level container";
4346 }
4347 description "IS-IS Link State database container";
4348 }
4349 }
4351 /* Augmentations */
4353 augment "/rt:routing/"
4354 +"rt:ribs/rt:rib/rt:routes/rt:route" {
4355 when "rt:source-protocol = 'isis:isis'" {
4356 description "IS-IS-specific route attributes.";
4357 }
4358 uses route-content;
4359 description
4360 "This augments route object in RIB with IS-IS-specific
4361 attributes.";
4362 }
4364 augment "/if:interfaces/if:interface" {
4365 leaf clns-mtu {
4366 type uint16;
4367 description "CLNS MTU of the interface";
4368 }
4369 description "ISO specific interface parameters.";
4370 }
4372 augment "/rt:routing/rt:control-plane-protocols/"
4373 +"rt:control-plane-protocol" {
4374 when "rt:type = 'isis:isis'" {
4375 description
4376 "This augment is only valid when routing protocol
4377 instance type is 'isis'";
4378 }
4379 description
4380 "This augments a routing protocol instance with IS-IS
4381 specific parameters.";
4382 container isis {
4383 must "count(area-address) > 0" {
4384 error-message
4385 "At least one area-address must be configured.";
4386 description
4387 "Enforce configuration of at least one area.";
4388 }
4389 uses instance-config;
4390 uses instance-state;
4392 container topologies {
4393 if-feature multi-topology;
4394 list topology {
4395 key "name";
4396 leaf enable {
4397 type boolean;
4398 description "Topology enable configuration";
4399 }
4400 leaf name {
4401 type leafref {
4402 path "../../../../../../rt:ribs/rt:rib/rt:name";
4403 }
4404 description
4405 "Routing Information Base (RIB) corresponding
4406 to topology.";
4407 }
4409 uses multi-topology-config;
4411 description "List of topologies";
4412 }
4413 description "Multi-topology container";
4414 }
4415 container interfaces {
4416 list interface {
4417 key "name";
4418 leaf name {
4419 type if:interface-ref;
4421 description
4422 "Reference to the interface within
4423 the routing-instance.";
4424 }
4425 uses interface-config;
4426 uses interface-state;
4427 container topologies {
4428 if-feature multi-topology;
4429 list topology {
4430 key name;
4432 leaf name {
4433 type leafref {
4434 path "../../../../../../../../"+
4435 "rt:ribs/rt:rib/rt:name";
4436 }
4437 description
4438 "Routing Information Base (RIB) corresponding
4439 to topology.";
4440 }
4441 uses multi-topology-interface-config;
4442 description "List of interface topologies";
4443 }
4444 description "Multi-topology container";
4445 }
4446 description "List of IS-IS interfaces.";
4447 }
4448 description
4449 "IS-IS interface specific configuration container";
4450 }
4452 description
4453 "IS-IS configuration/state top-level container";
4454 }
4455 }
4457 /* RPC methods */
4459 rpc clear-adjacency {
4460 description
4461 "This RPC request clears a particular set of IS-IS
4462 adjacencies. If the operation fails due to an internal
4463 reason, then the error-tag and error-app-tag should be
4464 set indicating the reason for the failure.";
4465 input {
4467 leaf routing-protocol-instance-name {
4468 type leafref {
4469 path "/rt:routing/rt:control-plane-protocols/"
4470 + "rt:control-plane-protocol/rt:name";
4471 }
4472 mandatory "true";
4473 description
4474 "Name of the IS-IS protocol instance whose IS-IS
4475 adjacency is being cleared.
4477 If the corresponding IS-IS instance doesn't exist,
4478 then the operation will fail with an error-tag of
4479 'data-missing' and an error-app-tag of
4480 'routing-protocol-instance-not-found'.";
4481 }
4482 leaf level {
4483 type level;
4484 description
4485 "IS-IS level of the adjacency to be cleared. If the
4486 IS-IS level is level-1-2, both level 1 and level 2
4487 adjacencies would be cleared.
4489 If the value provided is different from the one
4490 authorized in the enum type, then the operation
4491 SHALL fail with an error-tag of 'data-missing' and
4492 an error-app-tag of 'bad-isis-level'.";
4493 }
4494 leaf interface {
4495 type if:interface-ref;
4496 description
4497 "IS-IS interface name.
4499 If the corresponding IS-IS interface doesn't exist,
4500 then the operation SHALL fail with an error-tag of
4501 'data-missing' and an error-app-tag of
4502 'isis-interface-not-found'.";
4503 }
4504 }
4505 }
4507 rpc clear-database {
4508 description
4509 "This RPC request clears a particular IS-IS database. If
4510 the operation fails for an IS-IS internal reason, then
4511 the error-tag and error-app-tag should be set
4512 indicating the reason for the failure.";
4513 input {
4514 leaf routing-protocol-instance-name {
4515 type leafref {
4516 path "/rt:routing/rt:control-plane-protocols/"
4517 + "rt:control-plane-protocol/rt:name";
4518 }
4519 mandatory "true";
4520 description
4521 "Name of the IS-IS protocol instance whose IS-IS
4522 database(s) is/are being cleared.
4524 If the corresponding IS-IS instance doesn't exist,
4525 then the operation will fail with an error-tag of
4526 'data-missing' and an error-app-tag of
4527 'routing-protocol-instance-not-found'.";
4528 }
4529 leaf level {
4530 type level;
4531 description
4532 "IS-IS level of the adjacency to be cleared. If the
4533 IS-IS level is level-1-2, both level 1 and level 2
4534 databases would be cleared.
4536 If the value provided is different from the one
4537 authorized in the enum type, then the operation
4538 SHALL fail with an error-tag of 'data-missing' and
4539 an error-app-tag of 'bad-isis-level'.";
4540 }
4541 }
4542 }
4544 /* Notifications */
4546 notification database-overload {
4547 uses notification-instance-hdr;
4549 leaf overload {
4550 type enumeration {
4551 enum off {
4552 description
4553 "Indicates IS-IS instance has left overload state";
4554 }
4555 enum on {
4556 description
4557 "Indicates IS-IS instance has entered overload state";
4558 }
4560 }
4561 description "New overload state of the IS-IS instance";
4562 }
4563 description
4564 "This notification is sent when an IS-IS instance
4565 overload state changes.";
4566 }
4568 notification lsp-too-large {
4569 uses notification-instance-hdr;
4570 uses notification-interface-hdr;
4572 leaf pdu-size {
4573 type uint32;
4574 description "Size of the LSP PDU";
4575 }
4576 leaf lsp-id {
4577 type lsp-id;
4578 description "LSP ID";
4580 }
4581 description
4582 "This notification is sent when we attempt to propagate
4583 an LSP that is larger than the dataLinkBlockSize for the
4584 circuit. The notification generation must be throttled
4585 with at least 5 seconds between successive
4586 notifications.";
4587 }
4589 notification if-state-change {
4590 uses notification-instance-hdr;
4591 uses notification-interface-hdr;
4593 leaf state {
4594 type if-state-type;
4595 description "Interface state.";
4596 }
4597 description
4598 "This notification is sent when an interface
4599 state change is detected.";
4600 }
4602 notification corrupted-lsp-detected {
4603 uses notification-instance-hdr;
4604 leaf lsp-id {
4605 type lsp-id;
4606 description "LSP ID";
4607 }
4608 description
4609 "This notification is sent when we find that
4610 an LSP that was stored in memory has become
4611 corrupted.";
4612 }
4614 notification attempt-to-exceed-max-sequence {
4615 uses notification-instance-hdr;
4616 leaf lsp-id {
4617 type lsp-id;
4618 description "LSP ID";
4619 }
4620 description
4621 "This notification is sent when the system
4622 wraps the 32-bit sequence counter of an LSP.";
4623 }
4625 notification id-len-mismatch {
4626 uses notification-instance-hdr;
4627 uses notification-interface-hdr;
4628 leaf pdu-field-len {
4629 type uint8;
4630 description "Size of the ID length in the received PDU";
4631 }
4632 leaf raw-pdu {
4633 type binary;
4634 description "Received raw PDU.";
4635 }
4636 description
4637 "This notification is sent when we receive a PDU
4638 with a different value for the system-id length.
4639 The notification generation must be throttled
4640 with at least 5 seconds between successive
4641 notifications.";
4642 }
4644 notification max-area-addresses-mismatch {
4645 uses notification-instance-hdr;
4646 uses notification-interface-hdr;
4648 leaf max-area-addresses {
4649 type uint8;
4650 description "Received number of supported areas";
4651 }
4652 leaf raw-pdu {
4653 type binary;
4654 description "Received raw PDU.";
4655 }
4656 description
4657 "This notification is sent when we receive a PDU
4658 with a different value for the Maximum Area Addresses.
4659 The notification generation must be throttled
4660 with at least 5 seconds between successive
4661 notifications.";
4662 }
4664 notification own-lsp-purge {
4665 uses notification-instance-hdr;
4666 uses notification-interface-hdr;
4667 leaf lsp-id {
4668 type lsp-id;
4669 description "LSP ID";
4670 }
4671 description
4672 "This notification is sent when the system receives
4673 a PDU with its own system-id and zero age.";
4674 }
4675 notification sequence-number-skipped {
4676 uses notification-instance-hdr;
4677 uses notification-interface-hdr;
4678 leaf lsp-id {
4679 type lsp-id;
4680 description "LSP ID";
4681 }
4682 description
4683 "This notification is sent when the system receives a
4684 PDU with its own system-id and different contents. The
4685 system has to originate the LSP with a higher sequence
4686 number.";
4687 }
4689 notification authentication-type-failure {
4690 uses notification-instance-hdr;
4691 uses notification-interface-hdr;
4692 leaf raw-pdu {
4693 type binary;
4694 description "Received raw PDU.";
4695 }
4696 description
4697 "This notification is sent when the system receives a
4698 PDU with the wrong authentication type field.
4699 The notification generation must be throttled
4700 with at least 5 seconds between successive
4701 notifications.";
4702 }
4704 notification authentication-failure {
4705 uses notification-instance-hdr;
4706 uses notification-interface-hdr;
4707 leaf raw-pdu {
4708 type binary;
4709 description "Received raw PDU.";
4710 }
4711 description
4712 "This notification is sent when the system receives
4713 a PDU with the wrong authentication information.
4714 The notification generation must be throttled
4715 with at least 5 seconds between successive
4716 notifications.";
4717 }
4719 notification version-skew {
4720 uses notification-instance-hdr;
4721 uses notification-interface-hdr;
4722 leaf protocol-version {
4723 type uint8;
4724 description "Protocol version received in the PDU.";
4725 }
4726 leaf raw-pdu {
4727 type binary;
4728 description "Received raw PDU.";
4729 }
4730 description
4731 "This notification is sent when the system receives a
4732 PDU with a different protocol version number.
4733 The notification generation must be throttled
4734 with at least 5 seconds between successive
4735 notifications.";
4736 }
4738 notification area-mismatch {
4739 uses notification-instance-hdr;
4740 uses notification-interface-hdr;
4741 leaf raw-pdu {
4742 type binary;
4743 description "Received raw PDU.";
4744 }
4745 description
4746 "This notification is sent when the system receives a
4747 Hello PDU from an IS that does not share any area
4748 address. The notification generation must be throttled
4749 with at least 5 seconds between successive
4750 notifications.";
4751 }
4753 notification rejected-adjacency {
4754 uses notification-instance-hdr;
4755 uses notification-interface-hdr;
4756 leaf raw-pdu {
4757 type binary;
4758 description
4759 "Received raw PDU.";
4760 }
4761 leaf reason {
4762 type string {
4763 length "1..255";
4764 }
4765 description
4766 "The system may provide a reason to reject the
4767 adjacency. If the reason is not available,
4768 an empty string will be returned.
4769 The expected format is a single line text.";
4770 }
4771 description
4772 "This notification is sent when the system receives a
4773 Hello PDU from an IS but does not establish an adjacency
4774 for some reason. The notification generation must be
4775 throttled with at least 5 seconds between successive
4776 notifications.";
4777 }
4779 notification protocols-supported-mismatch {
4780 uses notification-instance-hdr;
4781 uses notification-interface-hdr;
4782 leaf raw-pdu {
4783 type binary;
4784 description "Received raw PDU.";
4785 }
4786 leaf-list protocols {
4787 type uint8;
4788 description
4789 "List of protocols supported by the remote system.";
4790 }
4791 description
4792 "This notification is sent when the system receives a
4793 non-pseudonode LSP that has no matching protocols
4794 supported. The notification generation must be throttled
4795 with at least 5 seconds between successive
4796 notifications.";
4797 }
4799 notification lsp-error-detected {
4800 uses notification-instance-hdr;
4801 uses notification-interface-hdr;
4802 leaf lsp-id {
4803 type lsp-id;
4804 description "LSP ID.";
4805 }
4806 leaf raw-pdu {
4807 type binary;
4808 description "Received raw PDU.";
4809 }
4810 leaf error-offset {
4811 type uint32;
4812 description
4813 "If the problem is a malformed TLV, the error-offset
4814 points to the start of the TLV. If the problem is with
4815 the LSP header, the error-offset points to the errant
4816 byte";
4817 }
4818 leaf tlv-type {
4819 type uint8;
4820 description
4821 "If the problem is a malformed TLV, the tlv-type is set
4822 to the type value of the suspicious TLV. Otherwise,
4823 this leaf is not present.";
4824 }
4825 description
4826 "This notification is sent when the system receives an
4827 LSP with a parse error. The notification generation must
4828 be throttled with at least 5 seconds between successive
4829 notifications.";
4830 }
4832 notification adjacency-state-change {
4833 uses notification-instance-hdr;
4834 uses notification-interface-hdr;
4835 leaf neighbor {
4836 type string {
4837 length "1..255";
4838 }
4839 description
4840 "Name of the neighbor.
4841 It corresponds to the hostname associated
4842 with the system-id of the neighbor in the
4843 mapping database (RFC5301).
4844 If the name of the neighbor is
4845 not available, it is not returned.";
4846 }
4847 leaf neighbor-system-id {
4848 type system-id;
4849 description "Neighbor system-id";
4850 }
4851 leaf state {
4852 type adj-state-type;
4854 description "New state of the IS-IS adjacency.";
4855 }
4856 leaf reason {
4857 type string {
4858 length "1..255";
4859 }
4860 description
4861 "If the adjacency is going to DOWN, this leaf provides
4862 a reason for the adjacency going down. The reason is
4863 provided as a text. If the adjacency is going to UP, no
4864 reason is provided. The expected format is a single line
4865 text.";
4867 }
4868 description
4869 "This notification is sent when an IS-IS adjacency
4870 moves to Up state or to Down state.";
4871 }
4873 notification lsp-received {
4874 uses notification-instance-hdr;
4875 uses notification-interface-hdr;
4877 leaf lsp-id {
4878 type lsp-id;
4879 description "LSP ID";
4880 }
4881 leaf sequence {
4882 type uint32;
4883 description "Sequence number of the received LSP.";
4884 }
4885 leaf received-timestamp {
4886 type yang:timestamp;
4888 description "Timestamp when the LSP was received.";
4889 }
4890 leaf neighbor-system-id {
4891 type system-id;
4892 description "Neighbor system-id of LSP sender";
4893 }
4894 description
4895 "This notification is sent when an LSP is received.
4896 The notification generation must be throttled with at
4897 least 5 seconds between successive notifications.";
4898 }
4900 notification lsp-generation {
4901 uses notification-instance-hdr;
4903 leaf lsp-id {
4904 type lsp-id;
4905 description "LSP ID";
4906 }
4907 leaf sequence {
4908 type uint32;
4909 description "Sequence number of the received LSP.";
4910 }
4911 leaf send-timestamp {
4912 type yang:timestamp;
4914 description "Timestamp when our LSP was regenerated.";
4916 }
4917 description
4918 "This notification is sent when an LSP is regenerated.
4919 The notification generation must be throttled with at
4920 least 5 seconds between successive notifications.";
4921 }
4922 }
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, authentication
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 to 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 inaccurate 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 the lsp-log grouping, leaf change is renamed reason to align
5085 with 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 system-id 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 and groupings for per level
5213 configuration.
5215 o Remove routing-instance as per core routing model v21.
5217 o added BFD leaf (no more BFD protocol model).
5219 o changed keychain module reference.
5221 10.21. From version -05 to version -07
5223 o Move Overload config from list to container.
5225 o Move Overload-max-metric config from list to container.
5227 o Move preference config from list to container.
5229 o Add Node flag in config.
5231 o Removed BFD config => moved to isis-bfd module.
5233 o Remove call to routing policy model.
5235 10.22. From version -03 to version -05
5237 o Correct invalid references to previous versions of core routing
5238 model.
5240 o Remove BFD config and replace by groupings from ietf-bfd.
5242 o Adding routing-policy support through routing-policy model.
5244 10.23. From version -02 to version -03
5246 o Reviewed config and op state groupings.
5248 o Add default value to lfa candidate-disabled.
5250 o Add enable leaf to isis container to reflect admin state.
5252 o Move to VRF centric only.
5254 o Segment routing is part of a separate module.
5256 10.24. From version -01 to version -02
5258 o Adding IPFRR.
5260 o Adding igp-ldp-sync.
5262 o Adding segment-routing.
5264 o Adding instance reference to operational states.
5266 o Move AF type from string to identity.
5268 o Updated router-capability in LSDB description.
5270 o packet counters moved to interface-packet-counters.
5272 o Added modification information in lsp-log.
5274 o Removing igp-ldp-sync timer in IS-IS.
5276 o Defining hierarchy for operational states.
5278 o Adding clns-mtu.
5280 o Adding key-chain.
5282 10.25. From version -00 to version -01
5284 o Interface metric move from af container to interface container.
5286 o Hello-padding on interface moved to hello-padding-disable with
5287 empty type.
5289 o three-way-handshake removed.
5291 o route preference changed to a choice.
5293 o csnp-authentication/psnp-authentication merged to authentication
5294 container.
5296 o lsp-gen-interval-exp-delay removed.
5298 o Added overload-max-metric feature.
5300 o overload-max-metric is in a separate container.
5302 o Change hello-padding to container.
5304 o Change bfd to container.
5306 o Make BFD a feature.
5308 o Create mpls-te container and put router-id inside.
5310 o Remove GR helper disable and timers.
5312 11. References
5314 11.1. Normative References
5316 [I-D.ietf-bfd-yang]
5317 Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and
5318 G. Mirsky, "YANG Data Model for Bidirectional Forwarding
5319 Detection (BFD)", draft-ietf-bfd-yang-17 (work in
5320 progress), August 2018.
5322 [ISO-10589]
5323 ISO, , "Intermediate System to Intermediate System intra-
5324 domain routing information exchange protocol for use in
5325 conjunction with the protocol for providing the
5326 connectionless-mode network service (ISO 8473)",
5327 International Standard 10589: 2002, Second Edition, 2002.
5329 [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and
5330 dual environments", RFC 1195, DOI 10.17487/RFC1195,
5331 December 1990, .
5333 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
5334 Requirement Levels", BCP 14, RFC 2119,
5335 DOI 10.17487/RFC2119, March 1997, .
5338 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
5339 DOI 10.17487/RFC3688, January 2004, .
5342 [RFC5029] Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link
5343 Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029,
5344 September 2007, .
5346 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
5347 Topology (MT) Routing in Intermediate System to
5348 Intermediate Systems (IS-ISs)", RFC 5120,
5349 DOI 10.17487/RFC5120, February 2008, .
5352 [RFC5130] Previdi, S., Shand, M., Ed., and C. Martin, "A Policy
5353 Control Mechanism in IS-IS Using Administrative Tags",
5354 RFC 5130, DOI 10.17487/RFC5130, February 2008,
5355 .
5357 [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for
5358 IP Fast Reroute: Loop-Free Alternates", RFC 5286,
5359 DOI 10.17487/RFC5286, September 2008, .
5362 [RFC5301] McPherson, D. and N. Shen, "Dynamic Hostname Exchange
5363 Mechanism for IS-IS", RFC 5301, DOI 10.17487/RFC5301,
5364 October 2008, .
5366 [RFC5305] Li, T. and H. Smit, "IS-IS Extensions for Traffic
5367 Engineering", RFC 5305, DOI 10.17487/RFC5305, October
5368 2008, .
5370 [RFC5306] Shand, M. and L. Ginsberg, "Restart Signaling for IS-IS",
5371 RFC 5306, DOI 10.17487/RFC5306, October 2008,
5372 .
5374 [RFC5308] Hopps, C., "Routing IPv6 with IS-IS", RFC 5308,
5375 DOI 10.17487/RFC5308, October 2008, .
5378 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
5379 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
5380 .
5382 [RFC5881] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
5383 (BFD) for IPv4 and IPv6 (Single Hop)", RFC 5881,
5384 DOI 10.17487/RFC5881, June 2010, .
5387 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
5388 the Network Configuration Protocol (NETCONF)", RFC 6020,
5389 DOI 10.17487/RFC6020, October 2010, .
5392 [RFC6119] Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic
5393 Engineering in IS-IS", RFC 6119, DOI 10.17487/RFC6119,
5394 February 2011, .
5396 [RFC6232] Wei, F., Qin, Y., Li, Z., Li, T., and J. Dong, "Purge
5397 Originator Identification TLV for IS-IS", RFC 6232,
5398 DOI 10.17487/RFC6232, May 2011, .
5401 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
5402 and A. Bierman, Ed., "Network Configuration Protocol
5403 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
5404 .
5406 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
5407 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
5408 .
5410 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
5411 RFC 6991, DOI 10.17487/RFC6991, July 2013,
5412 .
5414 [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N.
5415 So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)",
5416 RFC 7490, DOI 10.17487/RFC7490, April 2015,
5417 .
5419 [RFC7794] Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and
5420 U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4
5421 and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794,
5422 March 2016, .
5424 [RFC7810] Previdi, S., Ed., Giacalone, S., Ward, D., Drake, J., and
5425 Q. Wu, "IS-IS Traffic Engineering (TE) Metric Extensions",
5426 RFC 7810, DOI 10.17487/RFC7810, May 2016,
5427 .
5429 [RFC7917] Sarkar, P., Ed., Gredler, H., Hegde, S., Litkowski, S.,
5430 and B. Decraene, "Advertising Node Administrative Tags in
5431 IS-IS", RFC 7917, DOI 10.17487/RFC7917, July 2016,
5432 .
5434 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
5435 RFC 7950, DOI 10.17487/RFC7950, August 2016,
5436 .
5438 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
5439 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
5440 .
5442 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
5443 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
5444 May 2017, .
5446 [RFC8177] Lindem, A., Ed., Qu, Y., Yeung, D., Chen, I., and J.
5447 Zhang, "YANG Data Model for Key Chains", RFC 8177,
5448 DOI 10.17487/RFC8177, June 2017, .
5451 [RFC8294] Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
5452 "Common YANG Data Types for the Routing Area", RFC 8294,
5453 DOI 10.17487/RFC8294, December 2017, .
5456 [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
5457 Access Control Model", STD 91, RFC 8341,
5458 DOI 10.17487/RFC8341, March 2018, .
5461 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
5462 and R. Wilton, "Network Management Datastore Architecture
5463 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
5464 .
5466 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface
5467 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
5468 .
5470 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for
5471 Routing Management (NMDA Version)", RFC 8349,
5472 DOI 10.17487/RFC8349, March 2018, .
5475 [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A.,
5476 Francois, P., and C. Bowers, "Shortest Path First (SPF)
5477 Back-Off Delay Algorithm for Link-State IGPs", RFC 8405,
5478 DOI 10.17487/RFC8405, June 2018, .
5481 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
5482 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
5483 .
5485 11.2. Informative References
5487 [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP
5488 Synchronization", RFC 5443, DOI 10.17487/RFC5443, March
5489 2009, .
5491 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
5492 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
5493 .
5495 Appendix A. Example of IS-IS configuration in XML
5497 This section gives an example of configuration of an IS-IS instance
5498 on a device. The example is written in XML.
5500
5501
5502
5503 SLI
5504 1.1.1.1
5505
5506
5507 ISIS-example
5508
5509
5510
5512 isis:isis
5513
5514
5515
5516 true
5517 level-2
5518 87FC.FCDF.4432
5519 49.0001
5520
5521
5522 192.0.2.1
5523
5524
5525 65535
5526 65000
5527
5528 wide-only
5530
5531
5532 111111
5533
5534
5535
5536 ipv4
5537 true
5538
5539
5540 ipv6
5541 true
5542
5543
5544
5545
5546 Loopback0
5547 200
5548
5549 0
5550
5551 true
5552
5553
5554 Eth1
5555 level-2
5557 point-to-point
5558
5559 167890
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569 Loopback0
5570
5571
5573 ianaift:softwareLoopback
5574
5576 enabled
5577
5578
5579 192.0.2.1
5580 32
5581
5582
5583
5584
5585 2001:DB8::1
5586 128
5587
5588
5589
5590
5591 Eth1
5592
5593
5595 ianaift:ethernetCsmacd
5596
5598 enabled
5599
5600
5601 198.51.100.1
5602 30
5603
5604
5605
5606
5607 2001:DB8:0:0:FF::1
5608 64
5609
5610
5611
5612
5613
5615 Authors' Addresses
5617 Stephane Litkowski
5618 Orange
5620 Email: stephane.litkowski@orange.com
5621 Derek Yeung
5622 Arrcus, Inc
5624 Email: derek@arrcus.com
5626 Acee Lindem
5627 Cisco Systems
5629 Email: acee@cisco.com
5631 Jeffrey Zhang
5632 Juniper Networks
5634 Email: zzhang@juniper.net
5636 Ladislav Lhotka
5637 CZ.NIC
5639 Email: lhotka@nic.cz