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