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