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