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