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