idnits 2.17.1
draft-ietf-isis-yang-isis-cfg-18.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
== Line 247 has weird spacing: '...ce-name ins...'
== Line 252 has weird spacing: '...ce-name ins...'
== Line 619 has weird spacing: '...--rw af ide...'
== Line 788 has weird spacing: '...ce-name ins...'
== Line 793 has weird spacing: '...ce-name ins...'
== (1 more instance...)
-- The document date (July 25, 2017) is 2468 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
** Downref: Normative reference to an Informational RFC: RFC 5443
** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341)
Summary: 2 errors (**), 0 flaws (~~), 7 warnings (==), 1 comment (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 IS-IS Working Group S. Litkowski
3 Internet-Draft Orange
4 Intended status: Standards Track D. Yeung
5 Expires: January 26, 2018 Arrcus, Inc
6 A. Lindem
7 Cisco Systems
8 J. Zhang
9 Juniper Networks
10 L. Lhotka
11 CZ.NIC
12 July 25, 2017
14 YANG Data Model for IS-IS protocol
15 draft-ietf-isis-yang-isis-cfg-18
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", "MAY", and "OPTIONAL" in this
26 document are to be interpreted as described in [RFC2119].
28 Status of This Memo
30 This Internet-Draft is submitted in full conformance with the
31 provisions of BCP 78 and BCP 79.
33 Internet-Drafts are working documents of the Internet Engineering
34 Task Force (IETF). Note that other groups may also distribute
35 working documents as Internet-Drafts. The list of current Internet-
36 Drafts is at http://datatracker.ietf.org/drafts/current/.
38 Internet-Drafts are draft documents valid for a maximum of six months
39 and may be updated, replaced, or obsoleted by other documents at any
40 time. It is inappropriate to use Internet-Drafts as reference
41 material or to cite them other than as "work in progress."
43 This Internet-Draft will expire on January 26, 2018.
45 Copyright Notice
47 Copyright (c) 2017 IETF Trust and the persons identified as the
48 document authors. All rights reserved.
50 This document is subject to BCP 78 and the IETF Trust's Legal
51 Provisions Relating to IETF Documents
52 (http://trustee.ietf.org/license-info) in effect on the date of
53 publication of this document. Please review these documents
54 carefully, as they describe your rights and restrictions with respect
55 to this document. Code Components extracted from this document must
56 include Simplified BSD License text as described in Section 4.e of
57 the Trust Legal Provisions and are provided without warranty as
58 described in the Simplified BSD License.
60 Table of Contents
62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
63 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
64 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3
65 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 9
66 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10
67 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10
68 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12
69 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 15
70 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 15
71 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 16
72 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 16
73 2.9. Operational States . . . . . . . . . . . . . . . . . . . 16
74 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 17
75 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 17
76 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 22
77 6. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 22
78 7. Security Considerations . . . . . . . . . . . . . . . . . . . 97
79 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 98
80 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 98
81 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 98
82 11. Change log for ietf-isis YANG module . . . . . . . . . . . . 98
83 11.1. From version -17 to version -18 . . . . . . . . . . . . 98
84 11.2. From version -16 to version -17 . . . . . . . . . . . . 98
85 11.3. From version -15 to version -16 . . . . . . . . . . . . 99
86 11.4. From version -14 to version -15 . . . . . . . . . . . . 99
87 11.5. From version -13 to version -14 . . . . . . . . . . . . 99
88 11.6. From version -12 to version -13 . . . . . . . . . . . . 99
89 11.7. From version -09 to version -12 . . . . . . . . . . . . 100
90 11.8. From version -08 to version -09 . . . . . . . . . . . . 100
91 11.9. From version -07 to version -08 . . . . . . . . . . . . 100
92 11.10. From version -05 to version -07 . . . . . . . . . . . . 100
93 11.11. From version -03 to version -05 . . . . . . . . . . . . 100
94 11.12. From version -02 to version -03 . . . . . . . . . . . . 101
95 11.13. From version -01 to version -02 . . . . . . . . . . . . 101
96 11.14. From version -00 to version -01 . . . . . . . . . . . . 101
97 12. Normative References . . . . . . . . . . . . . . . . . . . . 102
98 Appendix A. Example of IS-IS configuration in XML . . . . . . . 103
99 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 105
101 1. Introduction
103 This document defines a YANG data model for IS-IS routing protocol.
105 The data model covers configuration of an IS-IS routing protocol
106 instance as well as operational states.
108 1.1. Tree diagram
110 A simplified graphical representation of the data model is presented
111 in Section 2.
113 The meaning of the symbols in these diagrams is as follows:
115 o Brackets "[" and "]" enclose list keys.
117 o Curly braces "{" and "}" contain names of optional features that
118 make the corresponding node conditional.
120 o Abbreviations before data node names: "rw" means configuration
121 (read-write), and "ro" state data (read-only).
123 o Symbols after data node names: "?" means an optional node and "*"
124 denotes a "list" or "leaf-list".
126 o Parentheses enclose choice and case nodes, and case nodes are also
127 marked with a colon (":").
129 o Ellipsis ("...") stands for contents of subtrees that are not
130 shown.
132 2. Design of the Data Model
134 The IS-IS YANG module augments the "control-plane-protocol" list in
135 ietf-routing module with specific IS-IS parameters.
137 The module is designed as per NMDA (Network Management Datastore
138 Architecture).
140 The figure below describes the overall structure of the isis YANG
141 module:
143 module: ietf-isis
144 augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route:
145 +--ro metric? uint32
146 +--ro tag* uint64
147 +--ro route-type? enumeration
148 augment /if:interfaces/if:interface:
149 +--rw clns-mtu? uint16
150 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
151 :
152 +--rw isis
153 +--rw enable? boolean {admin-control}?
154 +--rw level-type? level
155 +--rw system-id? system-id
156 +--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
157 +--rw area-address* area-address
158 +--rw mpls
159 | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
160 | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
161 | +--rw ldp
162 | ...
163 +--rw auto-cost {auto-cost}?
164 | +--rw reference-bandwidth? uint32
165 | +--rw enable? boolean
166 +--rw lsp-mtu? uint16
167 +--rw lsp-lifetime? uint16
168 +--rw lsp-refresh? rt-types:timer-value-seconds16 {ls
169 p-refresh}?
170 +--rw graceful-restart {graceful-restart}?
171 | +--rw enable? boolean
172 | +--rw restart-interval? rt-types:timer-value-seconds16
173 | +--rw helper-enable? boolean
174 +--rw nsr {nsr}?
175 | +--rw enable? boolean
176 +--rw node-tags {node-tag}?
177 | +--rw node-tag* [tag]
178 | ...
179 +--rw authentication
180 | +--rw (authentication-type)?
181 | | ...
182 | +--rw level-1
183 | | ...
184 | +--rw level-2
185 | ...
186 +--rw metric-type
187 | +--rw value? enumeration
188 | +--rw level-1
189 | | ...
191 | +--rw level-2
192 | ...
193 +--rw default-metric
194 | +--rw value? wide-metric
195 | +--rw level-1
196 | | ...
197 | +--rw level-2
198 | ...
199 +--rw afs {nlpid-control}?
200 | +--rw af* [af]
201 | ...
202 +--rw preference
203 | +--rw (granularity)?
204 | ...
205 +--rw overload
206 | +--rw status? boolean
207 +--rw overload-max-metric {overload-max-metric}?
208 | +--rw timeout? rt-types:timer-value-seconds16
209 +--rw fast-reroute {fast-reroute}?
210 | +--rw lfa {lfa}?
211 | +--ro protected-routes
212 | | ...
213 | +--ro nonprotected-routes
214 | | ...
215 | +--ro protection-statistics* [frr-protection-method]
216 | ...
217 +--rw spf-control
218 | +--rw ietf-spf-delay {ietf-spf-delay}?
219 | ...
220 +--rw topologies {multi-topology}?
221 | +--rw topology* [name]
222 | ...
223 +--rw interfaces
224 | +--rw interface* [name]
225 | ...
226 +--ro spf-log
227 | +--ro event* [id]
228 | ...
229 +--ro lsp-log
230 | +--ro event* [id]
231 | ...
232 +--ro hostnames
233 | +--ro hostname* [system-id]
234 | ...
235 +--ro database
236 | +--ro level-db* [level]
237 | ...
238 +--ro local-rib
239 | +--ro route* [prefix]
240 | ...
241 +--ro system-counters
242 +--ro level* [level]
243 ...
244 rpcs:
245 +---x clear-adjacency
246 | +--ro input
247 | +--ro routing-protocol-instance-name instance-state-ref
248 | +--ro level? level
249 | +--ro interface? string
250 +---x clear-database
251 +--ro input
252 +--ro routing-protocol-instance-name instance-state-ref
253 +--ro level? level
254 notifications:
255 +---n database-overload
256 | +--ro routing-instance? string
257 | +--ro routing-protocol-name? string
258 | +--ro isis-level? level
259 | +--ro overload? enumeration
260 +---n lsp-too-large
261 | +--ro routing-instance? string
262 | +--ro routing-protocol-name? string
263 | +--ro isis-level? level
264 | +--ro interface-name? string
265 | +--ro interface-level? level
266 | +--ro extended-circuit-id? extended-circuit-id
267 | +--ro pdu-size? uint32
268 | +--ro lsp-id? lsp-id
269 +---n if-state-change
270 | +--ro routing-instance? string
271 | +--ro routing-protocol-name? string
272 | +--ro isis-level? level
273 | +--ro interface-name? string
274 | +--ro interface-level? level
275 | +--ro extended-circuit-id? extended-circuit-id
276 | +--ro state? if-state-type
277 +---n corrupted-lsp-detected
278 | +--ro routing-instance? string
279 | +--ro routing-protocol-name? string
280 | +--ro isis-level? level
281 | +--ro lsp-id? lsp-id
282 +---n attempt-to-exceed-max-sequence
283 | +--ro routing-instance? string
284 | +--ro routing-protocol-name? string
285 | +--ro isis-level? level
286 | +--ro lsp-id? lsp-id
287 +---n id-len-mismatch
288 | +--ro routing-instance? string
289 | +--ro routing-protocol-name? string
290 | +--ro isis-level? level
291 | +--ro interface-name? string
292 | +--ro interface-level? level
293 | +--ro extended-circuit-id? extended-circuit-id
294 | +--ro pdu-field-len? uint8
295 | +--ro raw-pdu? binary
296 +---n max-area-addresses-mismatch
297 | +--ro routing-instance? string
298 | +--ro routing-protocol-name? string
299 | +--ro isis-level? level
300 | +--ro interface-name? string
301 | +--ro interface-level? level
302 | +--ro extended-circuit-id? extended-circuit-id
303 | +--ro max-area-addresses? uint8
304 | +--ro raw-pdu? binary
305 +---n own-lsp-purge
306 | +--ro routing-instance? string
307 | +--ro routing-protocol-name? string
308 | +--ro isis-level? level
309 | +--ro interface-name? string
310 | +--ro interface-level? level
311 | +--ro extended-circuit-id? extended-circuit-id
312 | +--ro lsp-id? lsp-id
313 +---n sequence-number-skipped
314 | +--ro routing-instance? string
315 | +--ro routing-protocol-name? string
316 | +--ro isis-level? level
317 | +--ro interface-name? string
318 | +--ro interface-level? level
319 | +--ro extended-circuit-id? extended-circuit-id
320 | +--ro lsp-id? lsp-id
321 +---n authentication-type-failure
322 | +--ro routing-instance? string
323 | +--ro routing-protocol-name? string
324 | +--ro isis-level? level
325 | +--ro interface-name? string
326 | +--ro interface-level? level
327 | +--ro extended-circuit-id? extended-circuit-id
328 | +--ro raw-pdu? binary
329 +---n authentication-failure
330 | +--ro routing-instance? string
331 | +--ro routing-protocol-name? string
332 | +--ro isis-level? level
333 | +--ro interface-name? string
334 | +--ro interface-level? level
335 | +--ro extended-circuit-id? extended-circuit-id
336 | +--ro raw-pdu? binary
337 +---n version-skew
338 | +--ro routing-instance? string
339 | +--ro routing-protocol-name? string
340 | +--ro isis-level? level
341 | +--ro interface-name? string
342 | +--ro interface-level? level
343 | +--ro extended-circuit-id? extended-circuit-id
344 | +--ro protocol-version? uint8
345 | +--ro raw-pdu? binary
346 +---n area-mismatch
347 | +--ro routing-instance? string
348 | +--ro routing-protocol-name? string
349 | +--ro isis-level? level
350 | +--ro interface-name? string
351 | +--ro interface-level? level
352 | +--ro extended-circuit-id? extended-circuit-id
353 | +--ro raw-pdu? binary
354 +---n rejected-adjacency
355 | +--ro routing-instance? string
356 | +--ro routing-protocol-name? string
357 | +--ro isis-level? level
358 | +--ro interface-name? string
359 | +--ro interface-level? level
360 | +--ro extended-circuit-id? extended-circuit-id
361 | +--ro raw-pdu? binary
362 | +--ro reason? string
363 +---n protocols-supported-mismatch
364 | +--ro routing-instance? string
365 | +--ro routing-protocol-name? string
366 | +--ro isis-level? level
367 | +--ro interface-name? string
368 | +--ro interface-level? level
369 | +--ro extended-circuit-id? extended-circuit-id
370 | +--ro raw-pdu? binary
371 | +--ro protocols* uint8
372 +---n lsp-error-detected
373 | +--ro routing-instance? string
374 | +--ro routing-protocol-name? string
375 | +--ro isis-level? level
376 | +--ro interface-name? string
377 | +--ro interface-level? level
378 | +--ro extended-circuit-id? extended-circuit-id
379 | +--ro lsp-id? lsp-id
380 | +--ro raw-pdu? binary
381 | +--ro error-offset? uint32
382 | +--ro tlv-type? uint8
383 +---n adjacency-state-change
384 | +--ro routing-instance? string
385 | +--ro routing-protocol-name? string
386 | +--ro isis-level? level
387 | +--ro interface-name? string
388 | +--ro interface-level? level
389 | +--ro extended-circuit-id? extended-circuit-id
390 | +--ro neighbor? string
391 | +--ro neighbor-system-id? system-id
392 | +--ro state? adj-state-type
393 | +--ro reason? string
394 +---n lsp-received
395 | +--ro routing-instance? string
396 | +--ro routing-protocol-name? string
397 | +--ro isis-level? level
398 | +--ro interface-name? string
399 | +--ro interface-level? level
400 | +--ro extended-circuit-id? extended-circuit-id
401 | +--ro lsp-id? lsp-id
402 | +--ro sequence? uint32
403 | +--ro received-timestamp? yang:timestamp
404 | +--ro neighbor-system-id? system-id
405 +---n lsp-generation
406 +--ro routing-instance? string
407 +--ro routing-protocol-name? string
408 +--ro isis-level? level
409 +--ro lsp-id? lsp-id
410 +--ro sequence? uint32
411 +--ro send-timestamp? yang:timestamp
413 2.1. IS-IS Configuration
415 The IS-IS configuration container is divided in:
417 o Global parameters.
419 o Per interface configuration (see Section 2.4).
421 Additional modules may be created this to support any additional
422 parameters. These additional modules should augment the ietf-isis
423 module.
425 The model implements features, thus some of the configuration
426 statement becomes optional. As an example, the ability to control
427 the administrative state of a particular IS-IS instance is optional.
428 By advertising the feature "admin-control", a device communicates to
429 the client that it supports the ability to shutdown a particular IS-
430 IS instance.
432 The global configuration contains usual IS-IS parameters such as lsp-
433 mtu, lsp-lifetime, lsp-refresh, default-metric...
435 2.2. Multitopology Parameters
437 The model supports multitopology (MT) IS-IS as defined in [RFC5120].
439 The "topologies" container is used to enable support of MT
440 extensions.
442 The "name" used in the topology list should refer to an existing RIB
443 of the device.
445 Some specific parameters could be defined on a per topology basis
446 both at global level and at interface level: for example, an
447 interface metric can be defined per topology.
449 Multiple address families (like IPv4 or IPv6) can also be activated
450 within the default topology. This can be achieved using the "afs"
451 container (requiring "nlpid-control" feature to be advertised).
453 2.3. Per-Level Parameters
455 Some parameters allow a per level configuration. In this case, the
456 parameter is modeled as a container with three configuration
457 locations:
459 o a top level container: corresponds to level-1-2, so the
460 configuration applies to both levels.
462 o a level-1 container: corresponds to level-1 specific parameters.
464 o a level-2 container: corresponds to level-2 specific parameters.
466 +--rw priority
467 | +--rw value? uint8
468 | +--rw level-1
469 | | +--rw value? uint8
470 | +--rw level-2
471 | +--rw value? uint8
473 Example:
475
476 250
477
478 100
479
480
481 200
482
483
485 An implementation SHOULD prefer a level specific parameter over a
486 level-all parameter. As example, if the priority is 100 for the
487 level-1, 200 for the level-2 and 250 for the top level configuration,
488 the implementation should use 100 for the level-1 and 200 for the
489 level-2.
491 Some parameters like "overload bit" and "route preference" are not
492 modeled to support a per level configuration. If an implementation
493 supports per level configuration for such parameter, this
494 implementation SHOULD augment the current model by adding both
495 level-1 and level-2 containers and SHOULD reuse existing
496 configuration groupings.
498 Example of augmentation:
500 augment "/rt:routing/" +
501 "rt:control-plane-protocols/rt:control-plane-protocol"+
502 "/isis:isis/isis:overload" {
503 when "rt:type = 'isis:isis'" {
504 description
505 "This augment IS-IS routing protocol when used";
506 }
507 description
508 "This augments IS-IS overload configuration
509 with per level configuration.";
511 container level-1 {
512 uses isis:overload-global-cfg;
513 description
514 "Level 1 configuration.";
515 }
516 container level-2 {
517 uses isis:overload-global-cfg;
518 description
519 "Level 2 configuration.";
520 }
522 }
523 If an implementation does not support per level configuration for a
524 parameter modeled with per level configuration, the implementation
525 SHOULD advertise a deviation to announce the non support of the
526 level-1 and level-2 containers.
528 Finally, if an implementation supports per level configuration but
529 does not support the level-1-2 configuration, it SHOULD also
530 advertise a deviation.
532 2.4. Per-Interface Parameters
534 The per-interface section of the IS-IS instance describes the
535 interface specific parameters.
537 The interface is modeled as a reference to an existing interface
538 defined in the "ietf-interfaces" YANG model.
540 Each interface has some interface-specific parameters that may have a
541 different per level value as described in previous section. An
542 interface-specific parameter always override an IS-IS global
543 parameter.
545 Some parameters like hello-padding are defined as containers to allow
546 easy extension by vendor specific modules.
548 +--rw interfaces
549 | +--rw interface* [name]
550 | +--rw name if:interface-ref
551 | +--rw level-type? level
552 | +--rw lsp-pacing-interval? rt-types:timer-value-millis
553 econds
554 | +--rw lsp-retransmit-interval? rt-types:timer-value-second
555 s16
556 | +--rw passive? boolean
557 | +--rw csnp-interval? rt-types:timer-value-second
558 s16
559 | +--rw hello-padding
560 | | +--rw enable? boolean
561 | +--rw mesh-group-enable? mesh-group-state
562 | +--rw mesh-group? uint8
563 | +--rw interface-type? interface-type
564 | +--rw enable? boolean {admin-control}?
565 | +--rw tag* uint32 {prefix-tag}?
566 | +--rw tag64* uint64 {prefix-tag64}?
567 | +--rw node-flag? boolean {node-flag}?
568 | +--rw hello-authentication
569 | | +--rw (authentication-type)?
570 | | | +--:(key-chain) {key-chain}?
571 | | | | +--rw key-chain? key-chain:key-chain-ref
572 | | | +--:(password)
573 | | | +--rw key? string
574 | | | +--rw crypto-algorithm? identityref
575 | | +--rw level-1
576 | | | +--rw (authentication-type)?
577 | | | +--:(key-chain) {key-chain}?
578 | | | | +--rw key-chain? key-chain:key-chain-re
579 f
580 | | | +--:(password)
581 | | | +--rw key? string
582 | | | +--rw crypto-algorithm? identityref
583 | | +--rw level-2
584 | | +--rw (authentication-type)?
585 | | +--:(key-chain) {key-chain}?
586 | | | +--rw key-chain? key-chain:key-chain-re
587 f
588 | | +--:(password)
589 | | +--rw key? string
590 | | +--rw crypto-algorithm? identityref
591 | +--rw hello-interval
592 | | +--rw value? rt-types:timer-value-seconds16
593 | | +--rw level-1
594 | | | +--rw value? rt-types:timer-value-seconds16
595 | | +--rw level-2
596 | | +--rw value? rt-types:timer-value-seconds16
597 | +--rw hello-multiplier
598 | | +--rw value? uint16
599 | | +--rw level-1
600 | | | +--rw value? uint16
601 | | +--rw level-2
602 | | +--rw value? uint16
603 | +--rw priority
604 | | +--rw value? uint8
605 | | +--rw level-1
606 | | | +--rw value? uint8
607 | | +--rw level-2
608 | | +--rw value? uint8
609 | +--rw metric
610 | | +--rw value? wide-metric
611 | | +--rw level-1
612 | | | +--rw value? wide-metric
613 | | +--rw level-2
614 | | +--rw value? wide-metric
615 | +--rw bfd {bfd}?
616 | | +--rw enable? boolean
617 | +--rw afs {nlpid-control}?
618 | | +--rw af* [af]
619 | | +--rw af identityref
620 | +--rw mpls
621 | | +--rw ldp
622 | | +--rw igp-sync? boolean {ldp-igp-sync}?
623 | +--rw fast-reroute {fast-reroute}?
624 | | +--rw lfa {lfa}?
625 | | +--rw candidate-disabled? boolean
626 | | +--rw enable? boolean
627 | | +--rw remote-lfa {remote-lfa}?
628 | | | +--rw enable? boolean
629 | | +--rw level-1
630 | | | +--rw candidate-disabled? boolean
631 | | | +--rw enable? boolean
632 | | | +--rw remote-lfa {remote-lfa}?
633 | | | +--rw enable? boolean
634 | | +--rw level-2
635 | | +--rw candidate-disabled? boolean
636 | | +--rw enable? boolean
637 | | +--rw remote-lfa {remote-lfa}?
638 | | +--rw enable? boolean
639 | +--rw topologies {multi-topology}?
640 | | +--rw topology* [name]
641 | | +--rw name leafref
642 | | +--rw metric
643 | | +--rw value? wide-metric
644 | | +--rw level-1
645 | | | +--rw value? wide-metric
646 | | +--rw level-2
647 | | +--rw value? wide-metric
648 | +--ro adjacencies
649 | | +--ro adjacency*
650 | | +--ro neighbor-systype? level
651 | | +--ro neighbor-sysid? system-id
652 | | +--ro neighbor-extended-circuit-id? extended-circuit
653 -id
654 | | +--ro neighbor-snpa? snpa
655 | | +--ro usage? level
656 | | +--ro hold-timer? rt-types:timer-v
657 alue-seconds16
658 | | +--ro neighbor-priority? uint8
659 | | +--ro lastuptime? yang:timestamp
660 | | +--ro state? adj-state-type
661 | +--ro event-counters
662 | | +--ro adjacency-changes? uint32
663 | | +--ro adjacency-number? uint32
664 | | +--ro init-fails? uint32
665 | | +--ro adjacency-rejects? uint32
666 | | +--ro id-len-mismatch? uint32
667 | | +--ro max-area-addresses-mismatch? uint32
668 | | +--ro authentication-type-fails? uint32
669 | | +--ro authentication-fails? uint32
670 | | +--ro lan-dis-changes? uint32
671 | +--ro packet-counters
672 | +--ro level* [level]
673 | +--ro level level-number
674 | +--ro iih
675 | | +--ro in? uint32
676 | | +--ro out? uint32
677 | +--ro ish
678 | | +--ro in? uint32
679 | | +--ro out? uint32
680 | +--ro esh
681 | | +--ro in? uint32
682 | | +--ro out? uint32
683 | +--ro lsp
684 | | +--ro in? uint32
685 | | +--ro out? uint32
686 | +--ro psnp
687 | | +--ro in? uint32
688 | | +--ro out? uint32
689 | +--ro csnp
690 | | +--ro in? uint32
691 | | +--ro out? uint32
692 | +--ro unknown
693 | +--ro in? uint32
694 | +--ro out? uint32
696 2.5. Authentication Parameters
698 The module enables authentication configuration through the IETF key-
699 chain module ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module
700 imports the "ietf-key-chain" module and reuses some groupings to
701 allow global and per interface configuration of authentication. If a
702 global authentication is configured, an implementation SHOULD
703 authenticate PSNPs, CSNPs and LSPs with the authentication parameters
704 supplied. The authentication of hello PDUs can be activated on a per
705 interface basis.
707 2.6. IGP/LDP synchronization
709 [RFC5443] defines a mechanism where IGP needs to be synchronized with
710 LDP. An "ldp-igp-sync" feature has been defined in the model to
711 support this mechanism. The "mpls/ldp/igp-sync" leaf under
712 "interface" allows activation of the mechanism on a per interface
713 basis. The "mpls/ldp/igp-sync" container in the global configuration
714 is empty on purpose and is not required for the activation. The goal
715 of this empty container is to allow easy augmentation with additional
716 parameters like timers for example.
718 2.7. ISO parameters
720 As IS-IS protocol is based on ISO protocol suite, some ISO parameters
721 may be required.
723 This module augments interface configuration model to support ISO
724 configuration parameters.
726 The clns-mtu can be defined under the interface.
728 2.8. IP FRR
730 This YANG model supports LFA ([RFC5286]) and remote LFA ([RFC7490])
731 as IP FRR techniques. The "fast-reroute" container may be augmented
732 by other models to support other IPFRR flavors (MRT, TILFA ...).
734 The current version of the model supports activation of LFA and
735 remote LFA at interface only. The global "lfa" container is present
736 but kept empty to allow augmentation with vendor specific properties
737 like policies.
739 Remote LFA is considered as a child of LFA. Remote LFA cannot be
740 enabled if LFA is not enabled.
742 The "candidate-disabled" allows to mark an interface to not be used
743 as a backup.
745 2.9. Operational States
747 Operational states are provided in the module in various places:
749 o system-counters: provides statistical informations about the
750 global system.
752 o interface : provides configuration state informations for each
753 interface.
755 o adjacencies: provides state informations about current IS-IS
756 adjacencies.
758 o spf-log: provides informations about SPF events on the node. This
759 SHOULD be implemented as a wrapping buffer.
761 o lsp-log: provides informations about LSP events on the node
762 (reception of an LSP or modification of local LSP). This SHOULD
763 be implemented as a wrapping buffer and an implementation MAY
764 decide to log refresh LSPs or not.
766 o local-rib: provides the IS-IS internal routing table view.
768 o database: provides details on the current LSDB.
770 o hostnames: provides informations about system-id to hostname
771 mappings.
773 o fast-reroute: provides informations about IP FRR.
775 3. RPC Operations
777 The "ietf-isis" module defines two RPC operations:
779 o clear-isis-database: reset the content of a particular IS-IS
780 database and restart database synchronization with the neighbors.
782 o clear-isis-adjacency: restart a particular set of IS-IS
783 adjacencies.
785 rpcs:
786 +---x clear-adjacency
787 | +--ro input
788 | +--ro routing-protocol-instance-name instance-state-ref
789 | +--ro level? level
790 | +--ro interface? string
791 +---x clear-database
792 +--ro input
793 +--ro routing-protocol-instance-name instance-state-ref
794 +--ro level? level
796 4. Notifications
798 The "ietf-isis" module introduces some notifications :
800 database-overload : raised when overload condition is changed.
802 lsp-too-large : raised when the system tries to propagate a too
803 large PDU.
805 corrupted-lsp-detected : raised when the system find that an LSP
806 that was stored in memory has become corrupted.
808 attempt-to-exceed-max-sequence : This notification is sent when
809 the system wraps the 32-bit sequence counter of an LSP.
811 id-len-mismatch : This notification is sent when we receive a PDU
812 with a different value for the System ID length.
814 max-area-addresses-mismatch : This notification is sent when we
815 receive a PDU with a different value for the Maximum Area
816 Addresses.
818 own-lsp-purge : This notification is sent when the system receives
819 a PDU with its own system ID and zero age.
821 sequence-number-skipped : This notification is sent when the
822 system receives a PDU with its own system ID and different
823 contents. The system has to reissue the LSP with a higher
824 sequence number.
826 authentication-type-failure : This notification is sent when the
827 system receives a PDU with the wrong authentication type field.
829 authentication-failure : This notification is sent when the system
830 receives a PDU with the wrong authentication information.
832 version-skew : This notification is sent when the system receives
833 a PDU with a different protocol version number.
835 area-mismatch : This notification is sent when the system receives
836 a Hello PDU from an IS that does not share any area address.
838 rejected-adjacency : This notification is sent when the system
839 receives a Hello PDU from an IS but does not establish an
840 adjacency for some reason.
842 protocols-supported-mismatch : This notification is sent when the
843 system receives a non pseudonode LSP that has no matching protocol
844 supported.
846 lsp-error-detected : This notification is sent when the system
847 receives a LSP with a parse error.
849 adjacency-change : This notification is sent when an IS-IS
850 adjacency moves to Up state or to Down state.
852 lsp-received : This notification is sent when a LSP is received.
854 lsp-generation : This notification is sent when a LSP is
855 regenerated.
857 notifications:
858 +---n database-overload
859 | +--ro routing-instance? string
860 | +--ro routing-protocol-name? string
861 | +--ro isis-level? level
862 | +--ro overload? enumeration
863 +---n lsp-too-large
864 | +--ro routing-instance? string
865 | +--ro routing-protocol-name? string
866 | +--ro isis-level? level
867 | +--ro interface-name? string
868 | +--ro interface-level? level
869 | +--ro extended-circuit-id? extended-circuit-id
870 | +--ro pdu-size? uint32
871 | +--ro lsp-id? lsp-id
872 +---n if-state-change
873 | +--ro routing-instance? string
874 | +--ro routing-protocol-name? string
875 | +--ro isis-level? level
876 | +--ro interface-name? string
877 | +--ro interface-level? level
878 | +--ro extended-circuit-id? extended-circuit-id
879 | +--ro state? if-state-type
880 +---n corrupted-lsp-detected
881 | +--ro routing-instance? string
882 | +--ro routing-protocol-name? string
883 | +--ro isis-level? level
884 | +--ro lsp-id? lsp-id
885 +---n attempt-to-exceed-max-sequence
886 | +--ro routing-instance? string
887 | +--ro routing-protocol-name? string
888 | +--ro isis-level? level
889 | +--ro lsp-id? lsp-id
890 +---n id-len-mismatch
891 | +--ro routing-instance? string
892 | +--ro routing-protocol-name? string
893 | +--ro isis-level? level
894 | +--ro interface-name? string
895 | +--ro interface-level? level
896 | +--ro extended-circuit-id? extended-circuit-id
897 | +--ro pdu-field-len? uint8
898 | +--ro raw-pdu? binary
899 +---n max-area-addresses-mismatch
900 | +--ro routing-instance? string
901 | +--ro routing-protocol-name? string
902 | +--ro isis-level? level
903 | +--ro interface-name? string
904 | +--ro interface-level? level
905 | +--ro extended-circuit-id? extended-circuit-id
906 | +--ro max-area-addresses? uint8
907 | +--ro raw-pdu? binary
908 +---n own-lsp-purge
909 | +--ro routing-instance? string
910 | +--ro routing-protocol-name? string
911 | +--ro isis-level? level
912 | +--ro interface-name? string
913 | +--ro interface-level? level
914 | +--ro extended-circuit-id? extended-circuit-id
915 | +--ro lsp-id? lsp-id
916 +---n sequence-number-skipped
917 | +--ro routing-instance? string
918 | +--ro routing-protocol-name? string
919 | +--ro isis-level? level
920 | +--ro interface-name? string
921 | +--ro interface-level? level
922 | +--ro extended-circuit-id? extended-circuit-id
923 | +--ro lsp-id? lsp-id
924 +---n authentication-type-failure
925 | +--ro routing-instance? string
926 | +--ro routing-protocol-name? string
927 | +--ro isis-level? level
928 | +--ro interface-name? string
929 | +--ro interface-level? level
930 | +--ro extended-circuit-id? extended-circuit-id
931 | +--ro raw-pdu? binary
932 +---n authentication-failure
933 | +--ro routing-instance? string
934 | +--ro routing-protocol-name? string
935 | +--ro isis-level? level
936 | +--ro interface-name? string
937 | +--ro interface-level? level
938 | +--ro extended-circuit-id? extended-circuit-id
939 | +--ro raw-pdu? binary
940 +---n version-skew
941 | +--ro routing-instance? string
942 | +--ro routing-protocol-name? string
943 | +--ro isis-level? level
944 | +--ro interface-name? string
945 | +--ro interface-level? level
946 | +--ro extended-circuit-id? extended-circuit-id
947 | +--ro protocol-version? uint8
948 | +--ro raw-pdu? binary
949 +---n area-mismatch
950 | +--ro routing-instance? string
951 | +--ro routing-protocol-name? string
952 | +--ro isis-level? level
953 | +--ro interface-name? string
954 | +--ro interface-level? level
955 | +--ro extended-circuit-id? extended-circuit-id
956 | +--ro raw-pdu? binary
957 +---n rejected-adjacency
958 | +--ro routing-instance? string
959 | +--ro routing-protocol-name? string
960 | +--ro isis-level? level
961 | +--ro interface-name? string
962 | +--ro interface-level? level
963 | +--ro extended-circuit-id? extended-circuit-id
964 | +--ro raw-pdu? binary
965 | +--ro reason? string
966 +---n protocols-supported-mismatch
967 | +--ro routing-instance? string
968 | +--ro routing-protocol-name? string
969 | +--ro isis-level? level
970 | +--ro interface-name? string
971 | +--ro interface-level? level
972 | +--ro extended-circuit-id? extended-circuit-id
973 | +--ro raw-pdu? binary
974 | +--ro protocols* uint8
975 +---n lsp-error-detected
976 | +--ro routing-instance? string
977 | +--ro routing-protocol-name? string
978 | +--ro isis-level? level
979 | +--ro interface-name? string
980 | +--ro interface-level? level
981 | +--ro extended-circuit-id? extended-circuit-id
982 | +--ro lsp-id? lsp-id
983 | +--ro raw-pdu? binary
984 | +--ro error-offset? uint32
985 | +--ro tlv-type? uint8
986 +---n adjacency-state-change
987 | +--ro routing-instance? string
988 | +--ro routing-protocol-name? string
989 | +--ro isis-level? level
990 | +--ro interface-name? string
991 | +--ro interface-level? level
992 | +--ro extended-circuit-id? extended-circuit-id
993 | +--ro neighbor? string
994 | +--ro neighbor-system-id? system-id
995 | +--ro state? adj-state-type
996 | +--ro reason? string
997 +---n lsp-received
998 | +--ro routing-instance? string
999 | +--ro routing-protocol-name? string
1000 | +--ro isis-level? level
1001 | +--ro interface-name? string
1002 | +--ro interface-level? level
1003 | +--ro extended-circuit-id? extended-circuit-id
1004 | +--ro lsp-id? lsp-id
1005 | +--ro sequence? uint32
1006 | +--ro received-timestamp? yang:timestamp
1007 | +--ro neighbor-system-id? system-id
1008 +---n lsp-generation
1009 +--ro routing-instance? string
1010 +--ro routing-protocol-name? string
1011 +--ro isis-level? level
1012 +--ro lsp-id? lsp-id
1013 +--ro sequence? uint32
1014 +--ro send-timestamp? yang:timestamp
1016 5. Interaction with Other YANG Modules
1018 The "isis" configuration container augments the "/rt:routing/
1019 rt:control-plane-protocols/control-plane-protocol" container of the
1020 ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS
1021 specific parameters.
1023 The "isis" module augments "/if:interfaces/if:interface" with ISO
1024 specific parameters.
1026 The "isis" operational state container augments the "/rt:routing-
1027 state/rt:control-plane-protocols/control-plane-protocol" container of
1028 the ietf-routing module by defining IS-IS specific operational
1029 states.
1031 Some IS-IS specific routes attributes are added to route objects of
1032 the ietf-routing module by augmenting "/rt:routing-
1033 state/rt:ribs/rt:rib/rt:routes/rt:route".
1035 The modules defined in this document use some groupings from ietf-
1036 keychain [I-D.ietf-rtgwg-yang-key-chain].
1038 6. IS-IS YANG Module
1040 file "ietf-isis@2017-07-25.yang"
1042 module ietf-isis {
1043 namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
1045 prefix isis;
1047 import ietf-routing {
1048 prefix "rt";
1049 }
1051 import ietf-inet-types {
1052 prefix inet;
1053 }
1054 import ietf-yang-types {
1055 prefix yang;
1056 }
1058 import ietf-interfaces {
1059 prefix "if";
1060 }
1062 import ietf-key-chain {
1063 prefix "key-chain";
1064 }
1066 import ietf-routing-types {
1067 prefix "rt-types";
1068 }
1070 import iana-routing-types {
1071 prefix "iana-rt-types";
1072 }
1074 organization
1075 "IETF ISIS Working Group";
1077 contact
1078 "WG List: <mailto:isis-wg@ietf.org>
1080 Editor: Stephane Litkowski
1081 <mailto:stephane.litkowski@orange.com>
1083 Derek Yeung
1084 <mailto:derek@arrcus.com>
1085 Acee Lindem
1086 <mailto:acee@cisco.com>
1087 Jeffrey Zhang
1088 <mailto:zzhang@juniper.net>
1089 Ladislav Lhotka
1090 <mailto:llhotka@nic.cz>
1091 Yi Yang
1092 <mailto:yiya@cisco.com>
1093 Dean Bogdanovic
1094 <mailto:deanb@juniper.net>
1095 Kiran Agrahara Sreenivasa
1096 <mailto:kkoushik@brocade.com>
1097 Yingzhen Qu
1098 <mailto:yiqu@cisco.com>
1099 Jeff Tantsura
1100 <mailto:jefftant.ietf@gmail.com>
1102 ";
1104 description
1105 "The YANG module defines a generic configuration model for
1106 ISIS common across all of the vendor implementations.";
1108 revision 2017-07-25 {
1109 description
1110 "Initial revision.";
1111 reference "RFC XXXX";
1112 }
1114 /* Identities */
1116 identity isis {
1117 base rt:routing-protocol;
1118 description "Identity for the ISIS routing protocol.";
1119 }
1121 identity isis-adjacency-change {
1122 description "Identity for the ISIS routing protocol
1123 adjacency state.";
1124 }
1126 identity clear-isis-database {
1127 description "Identity for the ISIS routing protocol
1128 database reset action.";
1129 }
1131 identity clear-isis-adjacency {
1132 description "Identity for the ISIS routing protocol
1133 adjacency reset action.";
1134 }
1136 identity lsp-log-reason {
1137 description "Base identity for an LSP change
1138 log reason.";
1139 }
1141 identity refresh {
1142 base lsp-log-reason;
1143 description
1144 "Identity used when the LSP log reason is
1145 a refresh LSP received.";
1146 }
1148 identity content-change {
1149 base lsp-log-reason;
1150 description
1151 "Identity used when the LSP log reason is
1152 a change in the content of the LSP.";
1153 }
1155 /* Feature definitions */
1157 feature ietf-spf-delay {
1158 description
1159 "Support of IETF SPF delay algorithm.";
1160 }
1161 feature bfd {
1162 description
1163 "Support of BFD for IS-IS links.";
1164 }
1165 feature key-chain {
1166 description
1167 "Support of keychain for authentication.";
1168 }
1169 feature segment-routing {
1170 description
1171 "Support of segment-routing.";
1172 }
1173 feature node-flag {
1174 description
1175 "Support of node-flag advertisement
1176 as prefix attribute";
1177 }
1178 feature node-tag {
1179 description
1180 "Support of node tag.";
1181 }
1182 feature ldp-igp-sync {
1183 description
1184 "Support of RFC5443.";
1185 }
1186 feature fast-reroute {
1187 description
1188 "Support of IPFRR.";
1189 }
1190 feature nsr {
1191 description
1192 "Support of
1193 Non Stop Routing.";
1194 }
1195 feature lfa {
1196 description
1197 "Support of Loop Free Alternates.";
1198 }
1199 feature remote-lfa {
1200 description
1201 "Support of remote Loop Free Alternates.";
1202 }
1204 feature overload-max-metric {
1205 description
1206 "Support of overload by setting
1207 all links to max metric.";
1208 }
1209 feature prefix-tag {
1210 description
1211 "Add 32bit tag to prefixes";
1212 }
1213 feature prefix-tag64 {
1214 description
1215 "Add 64bit tag to prefixes";
1216 }
1217 feature auto-cost {
1218 description
1219 "Use an automated assignment of metrics.";
1220 }
1221 feature ipv4-router-id {
1222 description
1223 "Support of IPv4 router ID configuration under ISIS.";
1224 }
1226 feature ipv6-router-id {
1227 description
1228 "Support of IPv6 router ID configuration under ISIS.";
1229 }
1231 feature multi-topology {
1232 description
1233 "Multitopology routing support.";
1234 }
1235 feature nlpid-control {
1236 description
1237 "This feature controls the advertisement
1238 of support NLPID within ISIS configuration.";
1239 }
1240 feature graceful-restart {
1241 description
1242 "Graceful restart support as per RFC5306.";
1243 }
1244 feature lsp-refresh {
1245 description
1246 "Configuration of LSP refresh interval.";
1247 }
1249 feature maximum-area-addresses {
1250 description
1251 "Support of maximum-area-addresses config.";
1252 }
1254 feature admin-control {
1255 description
1256 "Control administrative state of ISIS.";
1257 }
1259 /* Type definitions */
1261 typedef instance-state-ref {
1262 type leafref {
1263 path "/rt:routing-state/"
1264 +"rt:control-plane-protocols/rt:control-plane-protocol/"
1265 +"rt:name";
1266 }
1267 description
1268 "This type is used for leaves that reference state data of
1269 an ISIS protocol instance.";
1270 }
1272 typedef circuit-id {
1273 type uint8;
1274 description
1275 "This type defines the circuit ID
1276 associated with an interface.";
1277 }
1279 typedef extended-circuit-id {
1280 type uint32;
1281 description
1282 "This type defines the extended circuit ID
1283 associated with an interface.";
1284 }
1286 typedef interface-type {
1287 type enumeration {
1288 enum broadcast {
1289 description
1290 "Broadcast interface type.";
1292 }
1293 enum point-to-point {
1294 description
1295 "Point to point interface type.";
1296 }
1297 }
1298 description
1299 "This type defines the type of adjacency
1300 to be established on the interface.
1301 This is affecting the type of hello
1302 message that would be used.";
1304 }
1306 typedef level {
1307 type enumeration {
1308 enum "level-1" {
1309 description
1310 "This enum describes L1 only capability.";
1311 }
1312 enum "level-2" {
1313 description
1314 "This enum describes L2 only capability.";
1315 }
1316 enum "level-all" {
1317 description
1318 "This enum describes both levels capability.";
1319 }
1320 }
1321 default "level-all";
1322 description
1323 "This type defines ISIS level of an object.";
1325 }
1327 typedef adj-state-type {
1328 type enumeration {
1329 enum "Up" {
1330 description
1331 "This state describes that
1332 adjacency is established.";
1333 }
1334 enum "Down" {
1335 description
1336 "This state describes that
1337 adjacency is NOT established.";
1338 }
1339 enum "Init" {
1340 description
1341 "This state describes that
1342 adjacency is establishing.";
1343 }
1344 enum "Failed" {
1345 description
1346 "This state describes that
1347 adjacency is failed.";
1348 }
1349 }
1350 description
1351 "This type defines states of an adjacency";
1352 }
1354 typedef if-state-type {
1355 type enumeration {
1356 enum "Up" {
1357 description
1358 "Up state.";
1360 }
1361 enum "Down" {
1362 description
1363 "Down state";
1364 }
1365 }
1366 description
1367 "This type defines states of an interface";
1368 }
1370 typedef level-number {
1371 type uint8 {
1372 range "1 .. 2";
1373 }
1374 description
1375 "This type defines a current ISIS level.";
1376 }
1378 typedef lsp-id {
1379 type string {
1380 pattern
1381 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
1382 +'{4}\.[0-9][0-9]-[0-9][0-9]';
1383 }
1384 description
1385 "This type defines ISIS LSP ID using pattern,
1386 system id looks like : 0143.0438.AeF0.02-01";
1387 }
1388 typedef area-address {
1389 type string {
1390 pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}';
1391 }
1392 description
1393 "This type defines the area address format.";
1394 }
1396 typedef snpa {
1397 type string {
1398 length "0 .. 20";
1399 }
1400 description
1401 "This type defines Subnetwork Point
1402 of Attachement format.";
1403 }
1405 typedef system-id {
1406 type string {
1407 pattern
1408 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
1409 }
1410 description
1411 "This type defines ISIS system id using pattern,
1412 system id looks like : 0143.0438.AeF0";
1413 }
1415 typedef wide-metric {
1416 type uint32 {
1417 range "0 .. 16777215";
1418 }
1419 description
1420 "This type defines wide style format
1421 of ISIS metric.";
1422 }
1424 typedef std-metric {
1425 type uint8 {
1426 range "0 .. 63";
1427 }
1428 description
1429 "This type defines old style format
1430 of ISIS metric.";
1431 }
1433 typedef mesh-group-state {
1434 type enumeration {
1435 enum "meshInactive" {
1436 description
1437 "Interface is not part of a mesh group.";
1438 }
1439 enum "meshSet" {
1440 description
1441 "Interface is part of a mesh group.";
1442 }
1443 enum "meshBlocked" {
1444 description
1445 "LSPs must not be flooded over that interface.";
1446 }
1447 }
1448 description
1449 "This type describes meshgroup state of an interface";
1450 }
1452 /* Grouping definitions for configuration and ops state */
1454 grouping adjacency-state {
1455 container adjacencies {
1456 config false;
1457 list adjacency {
1458 leaf neighbor-systype {
1459 type level;
1460 description
1461 "Type of neighboring system";
1462 }
1463 leaf neighbor-sysid {
1464 type system-id;
1465 description
1466 "The system-id of the neighbor";
1467 }
1468 leaf neighbor-extended-circuit-id {
1469 type extended-circuit-id;
1470 description
1471 "Circuit ID of the neighbor";
1472 }
1473 leaf neighbor-snpa {
1474 type snpa;
1475 description
1476 "SNPA of the neighbor";
1477 }
1478 leaf usage {
1479 type level;
1480 description
1481 "How is the adjacency used ?
1482 On a p2p link this might be level 1 and 2,
1483 but on a LAN, the usage will be level 1
1484 between peers at L1 or level 2 between
1485 peers at L2.";
1486 }
1487 leaf hold-timer {
1488 type rt-types:timer-value-seconds16;
1489 units seconds;
1490 description
1491 "The holding time in seconds for this
1492 adjacency. This value is based on
1493 received hello PDUs and the elapsed
1494 time since receipt.";
1495 }
1496 leaf neighbor-priority {
1497 type uint8 {
1498 range "0 .. 127";
1499 }
1500 description
1501 "Priority of the neighboring IS for becoming
1502 the DIS.";
1503 }
1504 leaf lastuptime {
1505 type yang:timestamp;
1506 description
1507 "When the adjacency most recently entered
1508 state 'up', measured in hundredths of a
1509 second since the last reinitialization of
1510 the network management subsystem.
1511 The value is 0 if the adjacency has never
1512 been in state 'up'.";
1513 }
1514 leaf state {
1515 type adj-state-type;
1516 description
1517 "This leaf describes the state of the
1518 interface.";
1519 }
1521 description
1522 "List of operational adjacencies.";
1523 }
1524 description
1525 "This container lists the adjacencies of
1526 the local node.";
1527 }
1528 description
1529 "Adjacency state";
1531 }
1533 grouping fast-reroute-global-state {
1534 container protected-routes {
1535 config false;
1536 list af-stats {
1537 key "af prefix alternate";
1539 leaf af {
1540 type identityref {
1541 base iana-rt-types:address-family;
1542 }
1543 description
1544 "Address-family";
1545 }
1546 leaf prefix {
1547 type string;
1548 description
1549 "Protected prefix.";
1550 }
1551 leaf alternate {
1552 type string;
1553 description
1554 "Alternate nexthop for the prefix.";
1555 }
1556 leaf alternate-type {
1557 type enumeration {
1558 enum equalcost {
1559 description
1560 "ECMP alternate.";
1561 }
1562 enum lfa {
1563 description
1564 "LFA alternate.";
1565 }
1566 enum remote-lfa {
1567 description
1568 "Remote LFA alternate.";
1569 }
1570 enum tunnel {
1571 description
1572 "Tunnel based alternate
1573 (like RSVP-TE or GRE).";
1574 }
1575 enum ti-lfa {
1576 description
1577 "TI LFA alternate.";
1578 }
1579 enum mrt {
1580 description
1581 "MRT alternate.";
1582 }
1583 enum other {
1584 description
1585 "Unknown alternate type.";
1586 }
1587 }
1588 description
1589 "Type of alternate.";
1590 }
1591 leaf best {
1592 type boolean;
1593 description
1594 "describes if the alternate is the best one.";
1595 }
1596 leaf non-best-reason {
1597 type string;
1598 description
1599 "Information field to describe why the alternate
1600 is not best.";
1601 }
1602 leaf protection-available {
1603 type bits {
1604 bit nodeprotect {
1605 position 0;
1606 description
1607 "Node protection available.";
1608 }
1609 bit linkprotect {
1610 position 1;
1611 description
1612 "Link protection available.";
1613 }
1614 bit srlgprotect {
1615 position 2;
1616 description
1617 "SRLG protection available.";
1618 }
1619 bit downstreamprotect {
1620 position 3;
1621 description
1622 "Downstream protection available.";
1623 }
1624 bit other {
1625 position 4;
1626 description
1627 "Other protection available.";
1628 }
1629 }
1630 description
1631 "Describes protection provided by the alternate.";
1632 }
1633 leaf alternate-metric1 {
1634 type uint32;
1635 description
1636 "Metric from PLR to destination
1637 through the alternate path.";
1638 }
1639 leaf alternate-metric2 {
1640 type uint32;
1641 description
1642 "Metric from PLR to the alternate node";
1643 }
1644 leaf alternate-metric3 {
1645 type uint32;
1646 description
1647 "Metric from alternate node to the destination";
1648 }
1649 description
1650 "Per AF statistics.";
1651 }
1652 description
1653 "List of prefixes that are protected.";
1654 }
1656 container nonprotected-routes {
1657 config false;
1658 list af-stats {
1659 key "af prefix";
1661 leaf af {
1662 type identityref {
1663 base iana-rt-types:address-family;
1664 }
1665 description
1666 "Address-family";
1667 }
1668 leaf prefix {
1669 type string;
1670 description
1671 "Protected prefix.";
1672 }
1673 description
1674 "Per AF statistics.";
1676 }
1677 description
1678 "List of prefixes that are not protected.";
1679 }
1681 list protection-statistics {
1682 key frr-protection-method;
1683 config false;
1684 leaf frr-protection-method {
1685 type string;
1686 description
1687 "Protection method used.";
1688 }
1689 list af-stats {
1690 key af;
1692 leaf af {
1693 type identityref {
1694 base iana-rt-types:address-family;
1695 }
1696 description
1697 "Address-family";
1698 }
1699 leaf total-routes {
1700 type uint32;
1701 description
1702 "Total prefixes.";
1703 }
1704 leaf unprotected-routes {
1705 type uint32;
1706 description
1707 "Total of prefixes who are
1708 not protected.";
1709 }
1710 leaf protected-routes {
1711 type uint32;
1712 description
1713 "Total of prefixes who are
1714 protected.";
1715 }
1716 leaf linkprotected-routes {
1717 type uint32;
1718 description
1719 "Total of prefixes who are
1720 link protected.";
1721 }
1722 leaf nodeprotected-routes {
1723 type uint32;
1724 description
1725 "Total of prefixes who are
1726 node protected.";
1727 }
1728 description
1729 "Per AF statistics.";
1730 }
1732 description
1733 "Global protection statistics.";
1734 }
1735 description
1736 "IPFRR states.";
1737 }
1739 grouping notification-instance-hdr {
1740 description
1741 "This group describes common instance specific
1742 data for notifications.";
1743 leaf routing-instance {
1744 type string;
1745 description
1746 "Describes the name of the routing-instance instance.";
1747 }
1748 leaf routing-protocol-name {
1749 type string;
1750 description
1751 "Describes the name of the ISIS instance.";
1752 }
1753 leaf isis-level {
1754 type level;
1755 description
1756 "Describes the ISIS level of the instance.";
1757 }
1758 }
1760 grouping notification-interface-hdr {
1761 description
1762 "This group describes common interface specific
1763 data for notifications.";
1764 leaf interface-name {
1765 type string;
1766 description
1767 "Describes the name of the ISIS interface.";
1768 }
1769 leaf interface-level {
1770 type level;
1771 description
1772 "Describes the ISIS level of the interface.";
1773 }
1774 leaf extended-circuit-id {
1775 type extended-circuit-id;
1776 description
1777 "Describes the extended circuit-id of the interface.";
1778 }
1779 }
1781 grouping route-content {
1782 description
1783 "This group add isis-specific route properties.";
1784 leaf metric {
1785 type uint32;
1786 description
1787 "This leaf describes ISIS metric of a route.";
1788 }
1789 leaf-list tag {
1790 type uint64;
1791 description
1792 "This leaf describes list of tags associated
1793 with the route. The leaf describes both
1794 32bits and 64bits tags.";
1795 }
1796 leaf route-type {
1797 type enumeration {
1798 enum l2-up-internal {
1799 description "Level 2 internal route
1800 and not leaked to a lower level";
1801 }
1802 enum l1-up-internal {
1803 description "Level 1 internal route
1804 and not leaked to a lower level";
1805 }
1806 enum l2-up-external {
1807 description "Level 2 external route
1808 and not leaked to a lower level";
1809 }
1810 enum l1-up-external {
1811 description "Level 1 external route
1812 and not leaked to a lower level";
1813 }
1814 enum l2-down-internal {
1815 description "Level 2 internal route
1816 and leaked to a lower level";
1817 }
1818 enum l1-down-internal {
1819 description "Level 1 internal route
1820 and leaked to a lower level";
1821 }
1822 enum l2-down-external {
1823 description "Level 2 external route
1824 and leaked to a lower level";
1825 }
1826 enum l1-down-external {
1827 description "Level 1 external route
1828 and leaked to a lower level";
1829 }
1830 }
1831 description
1832 "This leaf describes the type of ISIS route.";
1833 }
1834 }
1836 grouping admin-control {
1837 leaf enable {
1838 if-feature admin-control;
1839 type boolean;
1840 default true;
1841 description
1842 "Control the administrative
1843 state.";
1844 }
1845 description
1846 "Grouping for admin control.";
1847 }
1849 grouping fast-reroute-global-cfg {
1850 description
1851 "This group defines global
1852 configuration of IPFRR.";
1853 container lfa {
1854 if-feature lfa;
1855 description
1856 "This container may be
1857 augmented with global parameters
1858 for LFA.
1859 Creating the container has no effect on
1860 LFA activation.";
1861 }
1862 }
1864 grouping fast-reroute-if-cfg {
1865 description
1866 "This group defines interface
1867 configuration of IPFRR.";
1868 container lfa {
1869 if-feature lfa;
1870 uses lfa-if-cfg;
1871 container level-1 {
1872 uses lfa-if-cfg;
1873 description
1874 "LFA level 1 config";
1875 }
1876 container level-2 {
1877 uses lfa-if-cfg;
1878 description
1879 "LFA level 2 config";
1880 }
1881 description
1882 "LFA config";
1883 }
1884 }
1886 grouping ietf-spf-delay-cfg {
1887 leaf initial-delay {
1888 type rt-types:timer-value-milliseconds;
1889 units msec;
1890 description
1891 "Delay used while in QUIET state.";
1892 }
1893 leaf short-delay {
1894 type rt-types:timer-value-milliseconds;
1895 units msec;
1896 description
1897 "Delay used while in SHORT_WAIT state.";
1898 }
1899 leaf long-delay {
1900 type rt-types:timer-value-milliseconds;
1901 units msec;
1902 description
1903 "Delay used while in LONG_WAIT state.";
1904 }
1906 leaf hold-down {
1907 type rt-types:timer-value-milliseconds;
1908 units msec;
1909 description
1910 "Timer used to consider an IGP stability period.";
1911 }
1912 leaf time-to-learn {
1913 type rt-types:timer-value-milliseconds;
1914 units msec;
1915 description
1916 "Duration used to learn all the IGP events
1917 related to a single component failure.";
1918 }
1920 description
1921 "Grouping for IETF SPF delay configuration.";
1922 }
1924 grouping ietf-spf-delay-state {
1925 leaf current-state {
1926 type enumeration {
1927 enum "QUIET" {
1928 description "QUIET state";
1929 }
1930 enum "SHORT_WAIT" {
1931 description "SHORT_WAIT state";
1932 }
1933 enum "LONG_WAIT" {
1934 description "LONG_WAIT state";
1935 }
1936 }
1937 config false;
1938 description
1939 "Current state of the algorithm.";
1940 }
1941 leaf remaining-time-to-learn {
1942 type rt-types:timer-value-milliseconds;
1943 units "msec";
1944 config false;
1945 description
1946 "Remaining time until time-to-learn timer fires.";
1947 }
1948 leaf remaining-hold-down {
1949 type rt-types:timer-value-milliseconds;
1950 units "msec";
1951 config false;
1952 description
1953 "Remaining time until hold-down timer fires.";
1954 }
1955 leaf last-event-received {
1956 type yang:timestamp;
1957 config false;
1958 description
1959 "Time of last IGP event received";
1960 }
1961 leaf next-spf-time {
1962 type yang:timestamp;
1963 config false;
1964 description
1965 "Time when next SPF has been scheduled.";
1966 }
1967 leaf last-spf-time {
1968 type yang:timestamp;
1969 config false;
1970 description
1971 "Time of last SPF computation.";
1972 }
1973 description
1974 "Grouping for IETF SPF delay operational states.";
1975 }
1977 grouping local-rib {
1978 description "Local-rib grouping.";
1979 container local-rib {
1980 config false;
1981 description "Local-rib.";
1982 list route {
1983 key "prefix";
1984 description "Routes";
1985 leaf prefix {
1986 type inet:ip-prefix;
1987 description "Destination prefix.";
1988 }
1989 container next-hops {
1990 description "All next hops for the route.";
1991 list next-hop {
1992 key "next-hop";
1993 description "List of next hop for the route";
1994 leaf outgoing-interface {
1995 type if:interface-ref;
1996 description
1997 "Name of the outgoing interface.";
1998 }
1999 leaf next-hop {
2000 type inet:ip-address;
2001 description "Nexthop address.";
2002 }
2003 }
2004 }
2005 leaf metric {
2006 type uint32;
2007 description "Metric for this route.";
2008 }
2009 leaf level {
2010 type level-number;
2011 description "Level number for this route.";
2013 }
2014 leaf route-tag {
2015 type uint32;
2016 description "Route tag for this route.";
2017 }
2018 }
2019 }
2020 }
2022 grouping isis-node-tag-cfg {
2023 description
2024 "ISIS node tag config.";
2025 container node-tags {
2026 if-feature node-tag;
2027 list node-tag {
2028 key tag;
2029 leaf tag {
2030 type uint32;
2031 description
2032 "Node tag value.";
2033 }
2034 description
2035 "List of tags.";
2036 }
2037 description
2038 "Container for node tags.";
2039 }
2040 }
2042 grouping authentication-global-cfg {
2043 choice authentication-type {
2044 case key-chain {
2045 if-feature key-chain;
2046 leaf key-chain {
2047 type key-chain:key-chain-ref;
2048 description
2049 "Reference to a key-chain.";
2050 }
2051 }
2052 case password {
2053 leaf key {
2054 type string;
2055 description
2056 "This leaf describes the
2057 authentication key.";
2058 }
2059 leaf crypto-algorithm {
2060 type identityref {
2061 base key-chain:crypto-algorithm;
2062 }
2063 description
2064 "Cryptographic algorithm associated with key.";
2065 }
2066 }
2067 description
2068 "Choice of authentication.";
2069 }
2070 description
2071 "Grouping for global auth config.";
2072 }
2074 grouping metric-type-global-cfg {
2075 leaf value {
2076 type enumeration {
2077 enum wide-only {
2078 description
2079 "Advertise new metric style only
2080 (RFC5305)";
2081 }
2082 enum old-only {
2083 description
2084 "Advertise old metric style only
2085 (RFC1195)";
2086 }
2087 enum both {
2088 description "Advertise both metric
2089 styles";
2090 }
2091 }
2092 default wide-only;
2093 description
2094 "This leaf describes the type of metric
2095 to be generated.
2096 Wide-only means only new metric style
2097 is generated,
2098 old-only means that only old style metric
2099 is generated,
2100 and both means that both are advertised.
2101 This leaf is only affecting IPv4 metrics.";
2102 }
2103 description
2104 "Grouping for global metric style config.";
2105 }
2107 grouping default-metric-global-cfg {
2108 leaf value {
2109 type wide-metric;
2110 default "10";
2111 description
2112 "Value of the metric";
2113 }
2114 description
2115 "Grouping for global default metric config.";
2116 }
2118 grouping overload-global-cfg {
2119 leaf status {
2120 type boolean;
2121 default false;
2122 description
2123 "This leaf defines the overload status.";
2124 }
2125 description
2126 "Grouping for overload bit config.";
2127 }
2129 grouping overload-max-metric-global-cfg {
2130 leaf timeout {
2131 type rt-types:timer-value-seconds16;
2132 units "seconds";
2133 description
2134 "This leaf defines the timeout in seconds
2135 of the overload condition.";
2136 }
2137 description
2138 "Grouping for overload-max-metric config.";
2139 }
2141 grouping route-preference-global-cfg {
2142 choice granularity {
2143 case detail {
2144 leaf internal {
2145 type uint8;
2146 description
2147 "This leaf defines the protocol
2148 preference for internal routes.";
2149 }
2150 leaf external {
2151 type uint8;
2152 description
2153 "This leaf defines the protocol
2154 preference for external routes.";
2155 }
2157 }
2158 case coarse {
2159 leaf default {
2160 type uint8;
2161 description
2162 "This leaf defines the protocol
2163 preference for all ISIS routes.";
2164 }
2165 }
2166 description
2167 "Choice for implementation of route preference.";
2168 }
2169 description
2170 "This grouping defines how route preference is configured.";
2171 }
2173 grouping hello-authentication-cfg {
2174 choice authentication-type {
2175 case key-chain {
2176 if-feature key-chain;
2177 leaf key-chain {
2178 type key-chain:key-chain-ref;
2179 description
2180 "Reference to a key-chain.";
2181 }
2182 }
2183 case password {
2184 leaf key {
2185 type string;
2186 description
2187 "This leaf describes the
2188 authentication key.";
2189 }
2190 leaf crypto-algorithm {
2191 type identityref {
2192 base key-chain:crypto-algorithm;
2193 }
2194 description
2195 "Cryptographic algorithm associated with key.";
2196 }
2197 }
2198 description
2199 "Choice of authentication.";
2200 }
2201 description
2202 "Grouping for hello authentication.";
2203 }
2204 grouping hello-interval-cfg {
2205 leaf value {
2206 type rt-types:timer-value-seconds16;
2207 units "seconds";
2208 default 10;
2209 description
2210 "This leaf defines the interval of
2211 hello messages.";
2212 }
2214 description
2215 "Interval between
2216 hello messages.";
2217 }
2219 grouping hello-multiplier-cfg {
2220 leaf value {
2221 type uint16;
2222 default 3;
2223 description
2224 "This leaf defines the number of
2225 hello failed to be received before
2226 declaring the adjacency down.";
2227 }
2228 description
2229 "This grouping defines the number of
2230 hello failed to be received before
2231 declaring the adjacency down.";
2232 }
2234 grouping priority-cfg {
2235 leaf value {
2236 type uint8 {
2237 range "0 .. 127";
2238 }
2239 default 64;
2240 description
2241 "This leaf describes the priority of
2242 the interface
2243 for DIS election.";
2244 }
2246 description
2247 "This grouping leaf describes the
2248 priority of
2249 the interface
2250 for DIS election.";
2251 }
2252 grouping metric-cfg {
2253 leaf value {
2254 type wide-metric;
2255 default "10";
2256 description
2257 "Metric value.";
2258 }
2259 description
2260 "Grouping for interface metric";
2261 }
2263 grouping lfa-if-cfg {
2264 leaf candidate-disabled {
2265 type boolean;
2266 default false;
2267 description
2268 "Prevent the interface to be used as backup.";
2269 }
2270 leaf enable {
2271 type boolean;
2272 default false;
2273 description
2274 "Activates LFA.
2275 This model assumes activation
2276 of per-prefix LFA.";
2277 }
2279 container remote-lfa {
2280 if-feature remote-lfa;
2281 leaf enable {
2282 type boolean;
2283 default false;
2284 description
2285 "Activates rLFA.";
2286 }
2287 description
2288 "remote LFA configuration.";
2289 }
2290 description
2291 "Grouping for LFA
2292 interface configuration";
2293 }
2295 grouping isis-global-cfg {
2296 description
2297 "Defines the ISIS global configuration.";
2299 uses admin-control;
2300 leaf level-type {
2301 type level;
2302 default "level-all";
2303 description
2304 "This leaf describes the type of ISIS node.
2305 A node can be level-1-only, level-2-only
2306 or level-1-2.
2307 ";
2308 }
2310 leaf system-id {
2311 type system-id;
2312 description
2313 "This leaf defines the system-id of the node.";
2314 }
2316 leaf maximum-area-addresses {
2317 if-feature maximum-area-addresses;
2318 type uint8;
2319 default 3;
2320 description
2321 "Defines the maximum areas supported.";
2322 }
2324 leaf-list area-address {
2325 type area-address;
2326 description
2327 "List of areas supported by the
2328 protocol instance.";
2329 }
2331 container mpls {
2332 leaf ipv4-router-id {
2333 if-feature ipv4-router-id;
2334 type inet:ipv4-address;
2335 description
2336 "Router ID value that would be used in
2337 TLV 134.";
2338 }
2339 leaf ipv6-router-id {
2340 if-feature ipv6-router-id;
2341 type inet:ipv6-address;
2342 description
2343 "Router ID value that would be used in
2344 TLV 140.";
2345 }
2346 container ldp {
2347 container igp-sync {
2348 if-feature ldp-igp-sync;
2349 description
2350 "This container may be augmented
2351 with global parameters for igp-ldp-sync.";
2352 }
2353 description
2354 "LDP related configuration.";
2355 }
2356 description
2357 "This container handles mpls config.";
2358 }
2359 container auto-cost {
2360 if-feature auto-cost;
2361 leaf reference-bandwidth {
2362 type uint32;
2363 units "bps";
2364 description
2365 "This leaf defines the bandwidth for calculating
2366 metric.";
2367 }
2368 leaf enable {
2369 type boolean;
2370 default false;
2371 description
2372 "Enable/disable auto-cost.";
2373 }
2374 description
2375 "This container defines the auto-cost configuration.";
2376 }
2377 leaf lsp-mtu {
2378 type uint16;
2379 units "bytes";
2380 default 1492;
2381 description
2382 "This leaf describes the maximum size of a
2383 LSP PDU in bytes.";
2384 }
2385 leaf lsp-lifetime {
2386 type uint16 {
2387 range "1..65535";
2388 }
2389 units "seconds";
2390 description
2391 "This leaf describes the lifetime of the router
2392 LSP in seconds.";
2393 }
2394 leaf lsp-refresh {
2395 if-feature lsp-refresh;
2396 type rt-types:timer-value-seconds16;
2397 units "seconds";
2398 description
2399 "This leaf describes the refresh interval of the
2400 router LSP in seconds.";
2401 }
2402 container graceful-restart {
2403 if-feature graceful-restart;
2404 leaf enable {
2405 type boolean;
2406 default false;
2407 description
2408 "Control enabling the feature.";
2409 }
2410 leaf restart-interval {
2411 type rt-types:timer-value-seconds16;
2412 units "seconds";
2413 description
2414 "Interval in seconds to attempt graceful restart prior
2415 to failing";
2416 }
2417 leaf helper-enable {
2418 type boolean;
2419 default true;
2420 description
2421 "If enabled, the local router can act as restart helper.";
2422 }
2423 description
2424 "This container activates graceful restart.";
2425 }
2427 container nsr {
2428 if-feature nsr;
2429 description
2430 "Non-Stop Routing (NSR) config state.";
2431 leaf enable {
2432 type boolean;
2433 default false;
2434 description
2435 "Enable/Disable NSR.";
2436 }
2437 }
2439 uses isis-node-tag-cfg;
2441 container authentication {
2442 uses authentication-global-cfg;
2443 container level-1 {
2444 uses authentication-global-cfg;
2445 description "level-1 specific cfg";
2446 }
2447 container level-2 {
2448 uses authentication-global-cfg;
2449 description "level-2 specific cfg";
2450 }
2451 description "authentication global cfg.
2452 It covers both LSPs and SNPs.";
2453 }
2455 container metric-type {
2456 uses metric-type-global-cfg;
2457 container level-1 {
2458 uses metric-type-global-cfg;
2459 description "level-1 specific cfg";
2460 }
2461 container level-2 {
2462 uses metric-type-global-cfg;
2463 description "level-2 specific cfg";
2464 }
2465 description "Metric style global cfg.";
2466 }
2468 container default-metric {
2469 uses default-metric-global-cfg;
2470 container level-1 {
2471 uses default-metric-global-cfg;
2472 description "level-1 specific cfg";
2473 }
2474 container level-2 {
2475 uses default-metric-global-cfg;
2476 description "level-2 specific cfg";
2477 }
2478 description "Default metric global cfg.";
2479 }
2481 container afs {
2482 if-feature nlpid-control;
2483 list af {
2484 key af;
2485 leaf af {
2486 type identityref {
2487 base iana-rt-types:address-family;
2488 }
2489 description
2490 "Address-family";
2492 }
2493 leaf enable {
2494 type boolean;
2495 description
2496 "Describes the activation state of the
2497 AF.";
2498 }
2499 description
2500 "This list permits activation
2501 of new address families.";
2502 }
2503 description
2504 "Container for address-families";
2505 }
2507 container preference {
2508 uses route-preference-global-cfg;
2509 description
2510 "This container defines the protocol preference.";
2511 }
2513 container overload {
2514 uses overload-global-cfg;
2515 description
2516 "This container describes if the router is
2517 set to overload state.";
2518 }
2520 container overload-max-metric {
2521 if-feature overload-max-metric;
2522 uses overload-max-metric-global-cfg;
2523 description
2524 "This container describes if the router is
2525 set to overload state using max-metric
2526 advertisement.";
2527 }
2528 }
2530 grouping isis-global-topologies-cfg {
2531 description
2532 "Per topology config.";
2533 container default-metric {
2534 uses default-metric-global-cfg;
2535 container level-1 {
2536 uses default-metric-global-cfg;
2537 description "level-1 specific cfg";
2538 }
2539 container level-2 {
2540 uses default-metric-global-cfg;
2541 description "level-2 specific cfg";
2542 }
2543 description "Default metric per
2544 topology cfg.";
2545 }
2546 uses isis-node-tag-cfg;
2547 }
2549 grouping isis-if-cfg {
2550 description
2551 "Grouping for interface cfg.";
2553 leaf level-type {
2554 type level;
2555 default "level-all";
2556 description
2557 "This leaf defines the associated ISIS
2558 level of the interface.";
2559 }
2560 leaf lsp-pacing-interval {
2561 type rt-types:timer-value-milliseconds;
2562 units "milliseconds";
2563 default 33;
2564 description
2565 "This leaf defines the interval between
2566 LSP transmissions in milli-seconds";
2567 }
2568 leaf lsp-retransmit-interval {
2569 type rt-types:timer-value-seconds16;
2570 units "seconds";
2571 description
2572 "This leaf defines the interval between
2573 retransmission of LSP";
2574 }
2575 leaf passive {
2576 type boolean;
2577 default "false";
2578 description
2579 "This leaf defines if interface is in
2580 passive mode (ISIS not running,
2581 but network is advertised).";
2582 }
2583 leaf csnp-interval {
2584 type rt-types:timer-value-seconds16;
2585 units "seconds";
2586 default 10;
2587 description
2588 "This leaf defines the interval of CSNP
2589 messages.";
2590 }
2591 container hello-padding {
2592 leaf enable {
2593 type boolean;
2594 default "true";
2595 description
2596 "Status of Hello-padding activation.
2597 By default, the implementation shall
2598 pad HELLOs.";
2599 }
2600 description
2601 "This container handles ISIS hello padding
2602 configuration.";
2603 }
2604 leaf mesh-group-enable {
2605 type mesh-group-state;
2606 description
2607 "Describes the mesh group state of
2608 the interface.";
2609 }
2610 leaf mesh-group {
2611 when "../mesh-group-enable = 'meshSet'" {
2612 description
2613 "Only valid when mesh-group-enable
2614 equals meshSet";
2615 }
2616 type uint8;
2617 description
2618 "Describes the mesh group ID of
2619 the interface.";
2620 }
2621 leaf interface-type {
2622 type interface-type;
2623 default "broadcast";
2624 description
2625 "This leaf defines the type of adjacency
2626 to be established on the interface.
2627 This is affecting the type of hello
2628 message that would be used.";
2629 }
2631 uses admin-control;
2633 leaf-list tag {
2634 if-feature prefix-tag;
2635 type uint32;
2636 description
2637 "This leaf defines list of tags associated
2638 with the interface.";
2639 }
2640 leaf-list tag64 {
2641 if-feature prefix-tag64;
2642 type uint64;
2643 description
2644 "This leaf defines list of 64bits tags
2645 associated with the interface.";
2646 }
2647 leaf node-flag {
2648 if-feature node-flag;
2649 type boolean;
2650 default false;
2651 description
2652 "Set prefix as a node
2653 representative prefix.";
2654 }
2655 container hello-authentication {
2656 uses hello-authentication-cfg;
2657 container level-1 {
2658 uses hello-authentication-cfg;
2659 description "level-1 specific cfg";
2660 }
2661 container level-2 {
2662 uses hello-authentication-cfg;
2663 description "level-2 specific cfg";
2664 }
2665 description "Authentication type
2666 to be used in hello messages.";
2667 }
2668 container hello-interval {
2669 uses hello-interval-cfg;
2670 container level-1 {
2671 uses hello-interval-cfg;
2672 description "level-1 specific cfg";
2673 }
2674 container level-2 {
2675 uses hello-interval-cfg;
2676 description "level-2 specific cfg";
2677 }
2678 description "Interval between
2679 hello messages.";
2680 }
2681 container hello-multiplier {
2682 uses hello-multiplier-cfg;
2683 container level-1 {
2684 uses hello-multiplier-cfg;
2685 description "level-1 specific cfg";
2686 }
2687 container level-2 {
2688 uses hello-multiplier-cfg;
2689 description "level-2 specific cfg";
2690 }
2691 description "Hello multiplier
2692 configuration.";
2693 }
2694 container priority {
2695 must '../interface-type = "broadcast"' {
2696 error-message
2697 "Priority only applies to broadcast
2698 interfaces.";
2699 description
2700 "Check for broadcast interface.";
2701 }
2702 uses priority-cfg;
2703 container level-1 {
2704 uses priority-cfg;
2705 description "level-1 specific cfg";
2706 }
2707 container level-2 {
2708 uses priority-cfg;
2709 description "level-2 specific cfg";
2710 }
2711 description "Priority for DIS election.";
2712 }
2713 container metric {
2714 uses metric-cfg;
2715 container level-1 {
2716 uses metric-cfg;
2717 description "level-1 specific cfg";
2718 }
2719 container level-2 {
2720 uses metric-cfg;
2721 description "level-2 specific cfg";
2722 }
2723 description "Metric configuration.";
2724 }
2725 container bfd {
2726 if-feature bfd;
2727 leaf enable {
2728 type boolean;
2729 default false;
2730 description "
2731 Enables BFD on the interface
2733 ";
2734 }
2735 description
2736 "BFD configuration.";
2737 }
2738 container afs {
2739 if-feature nlpid-control;
2740 list af {
2741 key af;
2742 leaf af {
2743 type identityref {
2744 base iana-rt-types:address-family;
2745 }
2746 description
2747 "Address-family";
2748 }
2749 description
2750 "List of AFs.";
2751 }
2752 description
2753 "Container for address-families";
2754 }
2755 container mpls {
2756 container ldp {
2757 leaf igp-sync {
2758 if-feature ldp-igp-sync;
2759 type boolean;
2760 default false;
2761 description
2762 "Enables IGP/LDP sync.";
2763 }
2764 description
2765 "LDP protocol related configurations.";
2766 }
2767 description
2768 "Container for MPLS specific configuration
2769 for ISIS.";
2770 }
2771 }
2773 grouping isis-if-topologies-cfg {
2774 description
2775 "ISIS interface topology cfg.";
2776 container metric {
2777 uses metric-cfg;
2778 container level-1 {
2779 uses metric-cfg;
2780 description "level-1 specific cfg";
2782 }
2783 container level-2 {
2784 uses metric-cfg;
2785 description "level-2 specific cfg";
2786 }
2787 description "Metric configuration.";
2788 }
2789 }
2791 grouping system-counters {
2792 container system-counters {
2793 config false;
2794 list level {
2795 key level;
2797 leaf level {
2798 type level-number;
2799 description
2800 "This leaf describes the ISIS level.";
2801 }
2802 leaf corrupted-lsps {
2803 type uint32;
2804 description
2805 "Number of corrupted in-memory LSPs detected.
2806 LSPs received from the wire with a bad
2807 checksum are silently dropped and not counted.
2808 LSPs received from the wire with parse errors
2809 are counted by lsp-errors.";
2810 }
2811 leaf authentication-type-fails {
2812 type uint32;
2813 description
2814 "Number of authentication type mismatches.";
2815 }
2816 leaf authentication-fails {
2817 type uint32;
2818 description
2819 "Number of authentication key failures.";
2820 }
2821 leaf database-overload {
2822 type uint32;
2823 description
2824 "Number of times the database has become
2825 overloaded.";
2826 }
2827 leaf own-lsp-purge {
2828 type uint32;
2829 description
2830 "Number of times a zero-aged copy of the
2831 system's own LSP is received from some
2832 other node.";
2833 }
2834 leaf manual-address-drop-from-area {
2835 type uint32;
2836 description
2837 "Number of times a manual address
2838 has been dropped from the area.";
2839 }
2840 leaf max-sequence {
2841 type uint32;
2842 description
2843 "Number of times the system has attempted
2844 to exceed the maximum sequence number.";
2845 }
2846 leaf sequence-number-skipped {
2847 type uint32;
2848 description
2849 "Number of times a sequence number skip has
2850 occured.";
2851 }
2852 leaf id-len-mismatch {
2853 type uint32;
2854 description
2855 "Number of times a PDU is received with
2856 a different value for ID field length
2857 from that of the receiving system.";
2858 }
2859 leaf partition-changes {
2860 type uint32;
2861 description
2862 "Number of partition changes detected.";
2863 }
2864 leaf lsp-errors {
2865 type uint32;
2866 description
2867 "Number of LSPs with errors we have
2868 received.";
2869 }
2870 leaf spf-runs {
2871 type uint32;
2872 description
2873 "Number of times we ran SPF at this level.";
2874 }
2875 description
2876 "List of supported levels.";
2877 }
2878 description
2879 "The container defines a list of counters
2880 for the IS.";
2881 }
2882 description
2883 "Grouping for system counters.";
2884 }
2886 grouping event-counters {
2887 container event-counters {
2888 config false;
2889 leaf adjacency-changes {
2890 type uint32;
2891 description
2892 "The number of times an adjacency state
2893 change has occured on this interface.";
2894 }
2895 leaf adjacency-number {
2896 type uint32;
2897 description
2898 "The number of adjacencies on this
2899 interface.";
2900 }
2901 leaf init-fails {
2902 type uint32;
2903 description
2904 "The number of times initialization of
2905 this interface has failed. This counts
2906 events such as PPP NCP failures.
2907 Failures to form an adjacency are counted
2908 by adjacency-rejects.";
2909 }
2910 leaf adjacency-rejects {
2911 type uint32;
2912 description
2913 "The number of times an adjacency has been
2914 rejected on this interface.";
2915 }
2916 leaf id-len-mismatch {
2917 type uint32;
2918 description
2919 "The number of times an IS-IS PDU with an ID
2920 field length different from that for this
2921 system has been received on this interface.";
2922 }
2923 leaf max-area-addresses-mismatch {
2924 type uint32;
2925 description
2926 "The number of times an IS-IS PDU with
2927 according max area address field
2928 differs from that for
2929 this system has been received on this
2930 interface.";
2931 }
2932 leaf authentication-type-fails {
2933 type uint32;
2934 description
2935 "Number of authentication type mismatches.";
2936 }
2937 leaf authentication-fails {
2938 type uint32;
2939 description
2940 "Number of authentication key failures.";
2941 }
2942 leaf lan-dis-changes {
2943 type uint32;
2944 description
2945 "The number of times the DIS has changed
2946 on this interface at this level.
2947 If the interface type is point to point,
2948 the count is zero.";
2949 }
2950 description
2951 "Provides protocol event counters.";
2952 }
2953 description
2954 "Grouping for event counters";
2955 }
2957 grouping packet-counters {
2958 container packet-counters {
2959 config false;
2960 list level {
2961 key level;
2963 leaf level {
2964 type level-number;
2965 description
2966 "This leaf describes the ISIS level.";
2967 }
2968 container iih {
2969 leaf in {
2970 type uint32;
2971 description
2972 "Received PDUs.";
2973 }
2974 leaf out {
2975 type uint32;
2976 description
2977 "Sent PDUs.";
2978 }
2979 description
2980 "The number of IIH PDUs received/sent.";
2981 }
2982 container ish {
2983 leaf in {
2984 type uint32;
2985 description
2986 "Received PDUs.";
2987 }
2988 leaf out {
2989 type uint32;
2990 description
2991 "Sent PDUs.";
2992 }
2993 description
2994 "The number of ISH PDUs received/sent.";
2995 }
2996 container esh {
2997 leaf in {
2998 type uint32;
2999 description
3000 "Received PDUs.";
3001 }
3002 leaf out {
3003 type uint32;
3004 description
3005 "Sent PDUs.";
3006 }
3007 description
3008 "The number of ESH PDUs received/sent.";
3009 }
3010 container lsp {
3011 leaf in {
3012 type uint32;
3013 description
3014 "Received PDUs.";
3015 }
3016 leaf out {
3017 type uint32;
3018 description
3019 "Sent PDUs.";
3020 }
3021 description
3022 "The number of LSP PDUs received/sent.";
3023 }
3024 container psnp {
3025 leaf in {
3026 type uint32;
3027 description
3028 "Received PDUs.";
3029 }
3030 leaf out {
3031 type uint32;
3032 description
3033 "Sent PDUs.";
3034 }
3035 description
3036 "The number of PSNP PDUs received/sent.";
3037 }
3038 container csnp {
3039 leaf in {
3040 type uint32;
3041 description
3042 "Received PDUs.";
3043 }
3044 leaf out {
3045 type uint32;
3046 description
3047 "Sent PDUs.";
3048 }
3049 description
3050 "The number of CSNP PDUs received/sent.";
3051 }
3052 container unknown {
3053 leaf in {
3054 type uint32;
3055 description
3056 "Received PDUs.";
3057 }
3058 leaf out {
3059 type uint32;
3060 description
3061 "Sent PDUs.";
3062 }
3063 description
3064 "The number of unknown PDUs received/sent.";
3065 }
3066 description
3067 "List of supported levels.";
3068 }
3069 description
3070 "Provides packet counters per level.";
3071 }
3072 description
3073 "Grouping for packet counters.";
3074 }
3076 grouping spf-log {
3077 container spf-log {
3078 config false;
3079 list event {
3080 key id;
3082 leaf id {
3083 type uint32;
3084 description
3085 "This leaf defines the event identifier.
3086 This is a purely internal value.";
3087 }
3088 leaf spf-type {
3089 type enumeration {
3090 enum full {
3091 description
3092 "Computation done is a Full SPF.";
3093 }
3094 enum route-only {
3095 description
3096 "Computation done is a
3097 reachability computation
3098 only.";
3099 }
3100 }
3101 description
3102 "This leaf describes the type of computation
3103 used.";
3104 }
3105 leaf level {
3106 type level-number;
3107 description
3108 "This leaf describes the level affected by the
3109 the computation.";
3110 }
3111 leaf schedule-timestamp {
3112 type yang:timestamp;
3113 description
3114 "This leaf describes the timestamp
3115 when the computation was scheduled.";
3116 }
3117 leaf start-timestamp {
3118 type yang:timestamp;
3119 description
3120 "This leaf describes the timestamp
3121 when the computation was started.";
3122 }
3123 leaf end-timestamp {
3124 type yang:timestamp;
3125 description
3126 "This leaf describes the timestamp
3127 when the computation was ended.";
3128 }
3129 list trigger-lsp {
3130 key "lsp";
3131 leaf lsp {
3132 type lsp-id;
3133 description
3134 "This leaf describes the LSPID
3135 of the LSP.";
3136 }
3137 leaf sequence {
3138 type uint32;
3139 description
3140 "This leaf describes the sequence
3141 number of the LSP.";
3142 }
3143 description
3144 "This leaf describes list of LSPs
3145 that triggered the computation.";
3146 }
3147 description
3148 "List of computation events.
3149 It is used as a wrapping buffer.";
3150 }
3152 description
3153 "This container lists the SPF computation events.";
3154 }
3155 description
3156 "Grouping for spf-log events.";
3157 }
3159 grouping lsp-log {
3160 container lsp-log {
3161 config false;
3162 list event {
3163 key id;
3165 leaf id {
3166 type uint32;
3167 description
3168 "This leaf defines the event identifier.
3169 This is a purely internal value.";
3170 }
3171 leaf level {
3172 type level-number;
3173 description
3174 "This leaf describes the level affected by the
3175 the computation.";
3176 }
3177 container lsp {
3178 leaf lsp {
3180 type lsp-id;
3181 description
3182 "This leaf describes the LSPID
3183 of the LSP.";
3184 }
3185 leaf sequence {
3186 type uint32;
3187 description
3188 "This leaf describes the sequence
3189 number of the LSP.";
3190 }
3191 description
3192 "This container describes the received LSP
3193 , in case of local LSP update the local
3194 LSP ID is referenced.";
3195 }
3197 leaf received-timestamp {
3198 type yang:timestamp;
3200 description
3201 "This leaf describes the timestamp
3202 when the LSP was received. In case of
3203 local LSP update, the timestamp refers
3204 to the local LSP update time.";
3205 }
3207 leaf change {
3208 type identityref {
3209 base lsp-log-reason;
3210 }
3211 description
3212 "This leaf describes the type of change
3213 in the LSP.";
3215 }
3217 description
3218 "List of LSP events.
3219 It is used as a wrapping buffer.";
3220 }
3222 description
3223 "This container lists the LSP reception events.
3224 Local LSP modification are also contained in the
3225 list.";
3226 }
3227 description
3228 "Grouping for LSP log.";
3229 }
3231 grouping hostname-db {
3232 container hostnames {
3233 config false;
3234 list hostname {
3235 key system-id;
3236 leaf system-id {
3237 type system-id;
3238 description
3239 "This leaf describes the system-id
3240 associated with the hostname.";
3241 }
3242 leaf hostname {
3243 type string;
3244 description
3245 "This leaf describes the hostname
3246 associated with the system ID.";
3247 }
3248 description
3249 "List of system-id/hostname associations";
3250 }
3251 description
3252 "This container describes the list
3253 of binding between system-id and
3254 hostnames.";
3255 }
3256 description
3257 "Grouping for hostname to systemid mapping database.";
3258 }
3260 /* Groupings for the LSDB description */
3262 grouping prefix-reachability-attributes {
3263 description
3264 "This group defines extended reachability attributes of an
3265 IPv4 or IPv6 prefix.";
3267 leaf external-prefix-flag {
3268 type boolean;
3269 description
3270 "External prefix flag.";
3271 }
3272 leaf readvertisement-flag {
3273 type boolean;
3274 description
3275 "Readvertisement flag.";
3276 }
3277 leaf node-flag {
3278 type boolean;
3279 description
3280 "Node flag.";
3281 }
3282 }
3284 grouping prefix-ipv4-source-router-id {
3285 description
3286 "This group defines the IPv4 source router ID of
3287 a prefix advertisement.";
3289 leaf ipv4-source-router-id {
3290 type inet:ipv4-address;
3291 description
3292 "IPv4 Source router ID address.";
3293 }
3294 }
3296 grouping prefix-ipv6-source-router-id {
3297 description
3298 "This group defines the IPv6 source router ID of
3299 a prefix advertisement.";
3301 leaf ipv6-source-router-id {
3302 type inet:ipv6-address;
3303 description
3304 "IPv6 Source router ID address.";
3305 }
3306 }
3308 grouping prefix-attributes-extension {
3309 description
3310 "Prefix extended attributes.";
3312 uses prefix-reachability-attributes;
3313 uses prefix-ipv4-source-router-id;
3314 uses prefix-ipv6-source-router-id;
3315 }
3317 grouping prefix-ipv4-std {
3318 description
3319 "This group defines attributes of an
3320 IPv4 standard prefix.";
3321 leaf up-down {
3322 type boolean;
3323 description
3324 "This leaf expresses the value of up/down bit.";
3325 }
3326 leaf i-e {
3327 type boolean;
3328 description
3329 "This leaf expresses the value of I/E bit.";
3330 }
3331 leaf ip-prefix {
3332 type inet:ipv4-address;
3333 description
3334 "This leaf describes the IPv4 prefix";
3335 }
3336 leaf prefix-len {
3337 type uint8;
3338 description
3339 "This leaf describes the IPv4 prefix len in bits";
3340 }
3341 leaf default-metric {
3342 type std-metric;
3343 description
3344 "This leaf describes the ISIS default metric value";
3345 }
3346 container delay-metric {
3347 leaf metric {
3348 type std-metric;
3349 description
3350 "This leaf describes the ISIS delay metric value";
3351 }
3352 leaf supported {
3353 type boolean;
3354 default "false";
3355 description
3356 "This leaf describes if the metric is supported.";
3357 }
3359 description
3360 "This container defines the ISIS delay metric.";
3361 }
3362 container expense-metric {
3363 leaf metric {
3364 type std-metric;
3365 description
3366 "This leaf describes the ISIS expense metric value";
3367 }
3368 leaf supported {
3369 type boolean;
3370 default "false";
3371 description
3372 "This leaf describes if the metric is supported.";
3373 }
3374 description
3375 "This container defines the ISIS expense metric.";
3376 }
3377 container error-metric {
3378 leaf metric {
3379 type std-metric;
3380 description
3381 "This leaf describes the ISIS error metric value";
3382 }
3383 leaf supported {
3384 type boolean;
3385 default "false";
3386 description
3387 "This leaf describes if the metric is supported.";
3388 }
3390 description
3391 "This container defines the ISIS error metric.";
3392 }
3393 }
3395 grouping prefix-ipv4-extended {
3396 description
3397 "This group defines attributes of an
3398 IPv4 extended prefix.";
3399 leaf up-down {
3400 type boolean;
3401 description
3402 "This leaf expresses the value of up/down bit.";
3403 }
3404 leaf ip-prefix {
3405 type inet:ipv4-address;
3406 description
3407 "This leaf describes the IPv4 prefix";
3409 }
3410 leaf prefix-len {
3411 type uint8;
3412 description
3413 "This leaf describes the IPv4 prefix len in bits";
3414 }
3416 leaf metric {
3417 type wide-metric;
3418 description
3419 "This leaf describes the ISIS metric value";
3420 }
3421 leaf-list tag {
3422 type uint32;
3423 description
3424 "This leaf describes a list of tags associated with
3425 the prefix.";
3426 }
3427 leaf-list tag64 {
3428 type uint64;
3429 description
3430 "This leaf describes a list of 64-bit tags associated with
3431 the prefix.";
3432 }
3433 uses prefix-attributes-extension;
3434 }
3436 grouping prefix-ipv6-extended {
3437 description
3438 "This group defines attributes of an
3439 IPv6 prefix.";
3440 leaf up-down {
3441 type boolean;
3442 description
3443 "This leaf expresses the value of up/down bit.";
3444 }
3445 leaf ip-prefix {
3446 type inet:ipv6-address;
3447 description
3448 "This leaf describes the IPv6 prefix";
3449 }
3450 leaf prefix-len {
3451 type uint8;
3452 description
3453 "This leaf describes the IPv4 prefix len in bits";
3454 }
3455 leaf metric {
3456 type wide-metric;
3457 description
3458 "This leaf describes the ISIS metric value";
3459 }
3460 leaf-list tag {
3461 type uint32;
3462 description
3463 "This leaf describes a list of tags associated with
3464 the prefix.";
3465 }
3466 leaf-list tag64 {
3467 type uint64;
3468 description
3469 "This leaf describes a list of 64-bit tags associated with
3470 the prefix.";
3471 }
3472 uses prefix-attributes-extension;
3473 }
3475 grouping neighbor-extended {
3476 description
3477 "This group defines attributes of an
3478 ISIS extended neighbor.";
3479 leaf neighbor-id {
3480 type system-id;
3481 description
3482 "This leaf describes the system-id of the neighbor.";
3483 }
3484 leaf metric {
3485 type wide-metric;
3486 description
3487 "This leaf describes the ISIS metric value";
3488 }
3489 }
3491 grouping neighbor {
3492 description
3493 "This group defines attributes of an
3494 ISIS standard neighbor.";
3495 leaf neighbor-id {
3496 type system-id;
3497 description
3498 "This leaf describes the system-id of the neighbor.";
3499 }
3500 leaf i-e {
3501 type boolean;
3502 description
3503 "This leaf expresses the value of I/E bit.";
3504 }
3505 leaf default-metric {
3506 type std-metric;
3507 description
3508 "This leaf describes the ISIS default metric value";
3509 }
3510 container delay-metric {
3511 leaf metric {
3512 type std-metric;
3513 description
3514 "This leaf describes the ISIS delay metric value";
3515 }
3516 leaf supported {
3517 type boolean;
3518 default "false";
3519 description
3520 "This leaf describes if the metric is supported.";
3521 }
3522 description
3523 "This container defines the ISIS delay metric.";
3524 }
3525 container expense-metric {
3526 leaf metric {
3527 type std-metric;
3528 description
3529 "This leaf describes the ISIS delay expense value";
3530 }
3531 leaf supported {
3532 type boolean;
3533 default "false";
3534 description
3535 "This leaf describes if the metric is supported.";
3536 }
3537 description
3538 "This container defines the ISIS expense metric.";
3539 }
3540 container error-metric {
3541 leaf metric {
3542 type std-metric;
3543 description
3544 "This leaf describes the ISIS error metric value";
3545 }
3546 leaf supported {
3547 type boolean;
3548 default "false";
3549 description
3550 "This leaf describes if the metric is supported.";
3551 }
3552 description
3553 "This container defines the ISIS error metric.";
3554 }
3555 }
3557 grouping lsp-entry {
3558 description
3559 "This group defines attributes of an
3560 ISIS LSP database entry.";
3562 leaf decoded-completed {
3563 type boolean;
3564 description
3565 "The IS-IS body is fully decoded.";
3566 }
3567 leaf raw-data {
3568 type yang:hex-string;
3569 description
3570 "The complete LSP in network byte
3571 order hexadecimal as received or originated.";
3572 }
3573 leaf lsp-id {
3574 type lsp-id;
3575 description
3576 "This leaf describes the LSP ID of the LSP.";
3577 }
3578 leaf checksum {
3579 type uint16;
3580 description
3581 "This leaf describes the checksum of the LSP.";
3582 }
3583 leaf remaining-lifetime {
3584 type uint16;
3585 units "seconds";
3586 description
3587 "This leaf describes the remaining lifetime
3588 in seconds before the LSP expiration.";
3589 }
3590 leaf sequence {
3591 type uint32;
3592 description
3593 "This leaf describes the sequence number of the LSP.";
3594 }
3595 leaf attributes {
3596 type bits {
3597 bit PARTITIONNED {
3598 description
3599 "If set, the originator supports partition
3600 repair.";
3602 }
3603 bit ATTACHED-ERROR {
3604 description
3605 "If set, the originator is attached to
3606 another area using the referred metric.";
3607 }
3608 bit ATTACHED-EXPENSE {
3609 description
3610 "If set, the originator is attached to
3611 another area using the referred metric.";
3612 }
3613 bit ATTACHED-DELAY {
3614 description
3615 "If set, the originator is attached to
3616 another area using the referred metric.";
3617 }
3618 bit ATTACHED-DEFAULT {
3619 description
3620 "If set, the originator is attached to
3621 another area using the referred metric.";
3622 }
3623 bit OVERLOAD {
3624 description
3625 "If set, the originator is overloaded,
3626 and must be avoided in path calculation.";
3627 }
3628 }
3629 description
3630 "This leaf describes attributes of the LSP.";
3631 }
3633 leaf-list ipv4-addresses {
3634 type inet:ipv4-address;
3635 description
3636 "This leaf describes the IPv4 addresses of the node.
3637 ISIS reference is TLV 132.";
3638 }
3640 leaf-list ipv6-addresses {
3641 type inet:ipv6-address;
3642 description
3643 "This leaf describes the IPv6 interface
3644 addresses of the node.
3645 ISIS reference is TLV 232.";
3646 }
3648 leaf ipv4-te-routerid {
3649 type inet:ipv4-address;
3650 description
3651 "This leaf describes the IPv4 Traffic Engineering
3652 router ID of the node.
3653 ISIS reference is TLV 134.";
3654 }
3656 leaf ipv6-te-routerid {
3657 type inet:ipv6-address;
3658 description
3659 "This leaf describes the IPv6 Traffic Engineering
3660 router ID of the node.
3661 ISIS reference is TLV 140.";
3662 }
3664 leaf-list protocol-supported {
3665 type uint8;
3666 description
3667 "This leaf describes the list of
3668 supported protocols.
3669 ISIS reference is TLV 129.";
3670 }
3672 leaf dynamic-hostname {
3673 type string;
3674 description
3675 "This leaf describes the name of the node.
3676 ISIS reference is TLV 137.";
3677 }
3679 container authentication {
3680 leaf authentication-type {
3681 type string;
3682 description
3683 "This leaf describes the authentication type
3684 to be used.";
3685 }
3686 leaf authentication-key {
3687 type string;
3688 description
3689 "This leaf describes the authentication key
3690 to be used. For security reason, the
3691 authentication key MUST NOT be presented
3692 in plaintext format. Authors recommends
3693 to use MD5 hash to present the authentication-key.";
3694 }
3695 description "This container describes authentication
3696 information of the node. ISIS reference is TLV 10.";
3697 }
3698 container mt-entries {
3699 list topology {
3701 leaf MT-ID {
3702 type uint16 {
3703 range "0 .. 4095";
3704 }
3705 description
3706 "This leaf defines the identifier
3707 of a topology.";
3708 }
3710 leaf attributes {
3711 type bits {
3712 bit OVERLOAD {
3713 description
3714 "If set, the originator is overloaded,
3715 and must be avoided in path
3716 calculation.";
3717 }
3718 bit ATTACHED {
3719 description
3720 "If set, the originator is attached to
3721 another area using the referred metric.";
3722 }
3723 }
3724 description
3725 "This leaf describes attributes of the LSP
3726 for the associated topology.";
3727 }
3728 description
3729 "List of topologies supported.";
3730 }
3731 description
3732 "This container describes the topology supported.
3733 ISIS reference is TLV 229.";
3734 }
3736 list router-capabilities {
3737 leaf flags {
3738 type bits {
3739 bit flooding {
3740 position 0;
3741 description
3742 "If the S bit is set(1),
3743 the IS-IS Router CAPABILITY TLV
3744 MUST be flooded across the entire routing domain.
3745 If the S bit is
3746 not set(0), the TLV MUST NOT be leaked between levels.
3747 This bit MUST NOT be altered during the TLV leaking.";
3748 }
3749 bit down {
3750 position 1;
3751 description
3752 "When the IS-IS Router CAPABILITY TLV is
3753 leaked from level-2 to level-1, the D bit
3754 MUST be set. Otherwise, this bit MUST
3755 be clear. IS-IS Router capability TLVs
3756 with the D bit set MUST NOT
3757 be leaked from level-1 to level-2.
3758 This is to prevent TLV looping.
3759 ";
3760 }
3761 }
3762 description
3763 "Flags associated with router capability.";
3764 }
3765 container node-tags {
3766 if-feature node-tag;
3767 list node-tag {
3768 leaf tag {
3769 type uint32;
3770 description
3771 "Node tag value.";
3772 }
3773 description
3774 "List of tags.";
3775 }
3776 description
3777 "Container for node tags.";
3778 }
3780 leaf binary {
3781 type binary;
3782 description
3783 "This leaf describes the capability of the node.
3784 Format is binary according to the protocol encoding.";
3785 }
3786 description
3787 "This container describes the capabilities of the node.
3788 This container may be extended with detailed
3789 information.
3790 ISIS reference is TLV 242.";
3791 }
3793 container is-neighbor {
3794 list neighbor {
3795 uses neighbor;
3796 description
3797 "List of neighbors.";
3798 }
3799 description
3800 "This leaf describes list of ISIS neighbors.
3801 ISIS reference is TLV 2.";
3802 }
3804 container extended-is-neighbor {
3805 list neighbor {
3806 uses neighbor-extended;
3807 description
3808 "List of neighbors.";
3809 }
3810 description
3811 "This container describes list of ISIS extended
3812 neighbors.
3813 ISIS reference is TLV 22.";
3814 }
3816 container ipv4-internal-reachability {
3817 list prefixes {
3818 uses prefix-ipv4-std;
3819 description
3820 "List of prefixes.";
3821 }
3822 description
3823 "This container describes list of IPv4 internal
3824 reachability information.
3825 ISIS reference is TLV 128.";
3826 }
3828 container ipv4-external-reachability {
3829 list prefixes {
3830 uses prefix-ipv4-std;
3831 description
3832 "List of prefixes.";
3833 }
3834 description
3835 "This container describes list of IPv4 external
3836 reachability information.
3837 ISIS reference is TLV 130.";
3838 }
3840 container extended-ipv4-reachability {
3841 list prefixes {
3842 uses prefix-ipv4-extended;
3843 description
3844 "List of prefixes.";
3845 }
3846 description
3847 "This container describes list of IPv4 extended
3848 reachability information.
3849 ISIS reference is TLV 135.";
3850 }
3852 container mt-is-neighbor {
3853 list neighbor {
3854 leaf MT-ID {
3855 type uint16 {
3856 range "0 .. 4095";
3857 }
3858 description
3859 "This leaf defines the identifier
3860 of a topology.";
3861 }
3862 uses neighbor-extended;
3863 description
3864 "List of neighbors.";
3865 }
3866 description
3867 "This container describes list of ISIS multi-topology
3868 neighbors.
3869 ISIS reference is TLV 223.";
3870 }
3872 container mt-extended-ipv4-reachability {
3873 list prefixes {
3874 leaf MT-ID {
3875 type uint16 {
3876 range "0 .. 4095";
3877 }
3878 description
3879 "This leaf defines the identifier
3880 of a topology.";
3881 }
3882 uses prefix-ipv4-extended;
3883 description
3884 "List of prefixes.";
3886 }
3887 description
3888 "This container describes list of IPv4
3889 reachability information in multi-topology
3890 environment.
3891 ISIS reference is TLV 235.";
3892 }
3894 container mt-ipv6-reachability {
3895 list prefixes {
3896 leaf MT-ID {
3897 type uint16 {
3898 range "0 .. 4095";
3899 }
3900 description
3901 "This leaf defines the identifier
3902 of a topology.";
3903 }
3904 uses prefix-ipv6-extended;
3905 description
3906 "List of prefixes.";
3907 }
3908 description
3909 "This container describes list of IPv6
3910 reachability information in multi-topology
3911 environment.
3912 ISIS reference is TLV 237.";
3913 }
3915 container ipv6-reachability {
3916 list prefixes {
3917 uses prefix-ipv6-extended;
3918 description
3919 "List of prefixes.";
3920 }
3921 description
3922 "This container describes list of IPv6
3923 reachability information.
3924 ISIS reference is TLV 236.";
3925 }
3926 }
3928 grouping lsdb {
3929 container database {
3930 config false;
3931 list level-db {
3932 key level;
3934 leaf level {
3935 type level-number;
3936 description
3937 "Current level number";
3939 }
3940 list lsp {
3941 key lsp-id;
3942 uses lsp-entry;
3943 description
3944 "List of LSPs in LSDB.";
3945 }
3946 description
3947 "This container describes the list of LSPs
3948 in the level x database.";
3949 }
3950 description
3951 "This container describes ISIS Link State
3952 databases.";
3953 }
3954 description
3955 "Grouping for LSDB description.";
3956 }
3958 /* Augmentations */
3960 augment "/rt:routing-state/"
3961 +"rt:ribs/rt:rib/rt:routes/rt:route" {
3962 when "rt:source-protocol = 'isis:isis'" {
3963 description "ISIS-specific route attributes.";
3964 }
3965 uses route-content;
3966 description
3967 "This augments route object in RIB with ISIS-specific
3968 attributes.";
3969 }
3971 augment "/if:interfaces/if:interface" {
3972 leaf clns-mtu {
3973 type uint16;
3974 description
3975 "Defines CLNS MTU of the interface.";
3976 }
3977 description "ISO interface config.";
3978 }
3980 augment "/rt:routing/rt:control-plane-protocols/"
3981 +"rt:control-plane-protocol" {
3982 when "rt:type = 'isis:isis'" {
3983 description
3984 "This augment is only valid when routing protocol
3985 instance type is isis.";
3986 }
3987 description
3988 "This augments a routing protocol instance with ISIS
3989 specific parameters.";
3990 container isis {
3991 must "count(area-address) > 0" {
3992 error-message "At least one area-address
3993 must be configured.";
3994 description
3995 "Enforce configuration of at least one area.";
3996 }
3998 uses isis-global-cfg;
3999 container fast-reroute {
4000 if-feature fast-reroute;
4001 uses fast-reroute-global-cfg;
4002 uses fast-reroute-global-state;
4003 description
4004 "IPFRR.";
4005 }
4006 container spf-control {
4007 container ietf-spf-delay {
4008 if-feature ietf-spf-delay;
4009 uses ietf-spf-delay-cfg;
4010 uses ietf-spf-delay-state;
4011 description
4012 "IETF spf delay algorithm configuration.";
4013 }
4014 description
4015 "Container for all SPF computation related
4016 operations.";
4017 }
4018 container topologies {
4019 if-feature multi-topology;
4020 list topology {
4021 key "name";
4022 leaf enable {
4023 type boolean;
4024 description
4025 "Control enabling of topologies";
4026 }
4027 leaf name {
4028 type leafref {
4029 path "../../../../../../rt:ribs/rt:rib/rt:name";
4030 }
4032 description "RIB";
4033 }
4035 uses isis-global-topologies-cfg;
4037 description
4038 "List of topologies";
4039 }
4040 description
4041 "Container for multi-topology";
4042 }
4043 container interfaces {
4044 list interface {
4045 key "name";
4046 leaf name {
4047 type if:interface-ref;
4049 description
4050 "Reference to the interface within
4051 the routing-instance.";
4052 }
4053 uses isis-if-cfg;
4054 container fast-reroute {
4055 if-feature fast-reroute;
4056 uses fast-reroute-if-cfg;
4057 description
4058 "IPFRR.";
4059 }
4060 container topologies {
4061 if-feature multi-topology;
4062 list topology {
4063 key name;
4065 leaf name {
4066 type leafref {
4067 path "../../../../../../../../"+
4068 "rt:ribs/rt:rib/rt:name";
4069 }
4071 description
4072 "Name of RIB.";
4073 }
4074 uses isis-if-topologies-cfg;
4075 description
4076 "List of topologies.";
4077 }
4078 description
4079 "Container for multi-topology";
4081 }
4082 uses adjacency-state;
4083 uses event-counters;
4084 uses packet-counters;
4085 description
4086 "List of ISIS interfaces.";
4087 }
4088 description
4089 "This container defines ISIS interface specific
4090 configuration objects.";
4091 }
4092 uses spf-log;
4093 uses lsp-log;
4094 uses hostname-db;
4095 uses lsdb;
4096 uses local-rib;
4097 uses system-counters;
4099 description
4100 "This container defines ISIS specific configuration
4101 objects.";
4102 }
4103 }
4105 /* RPC methods */
4107 rpc clear-adjacency {
4108 description
4109 "This RPC request clears a particular
4110 set of ISIS adjacencies. If the operation
4111 fails for ISIS internal reason, then
4112 error-tag and error-app-tag should be set
4113 to a meaningful value.";
4114 input {
4116 leaf routing-protocol-instance-name {
4117 type instance-state-ref;
4118 mandatory "true";
4119 description
4120 "Name of the ISIS protocol instance whose ISIS
4121 information is being queried.
4123 If the ISIS instance with name equal to the
4124 value of this parameter doesn't exist, then this
4125 operation SHALL fail with error-tag 'data-missing'
4126 and error-app-tag
4127 'routing-protocol-instance-not-found'.";
4129 }
4130 leaf level {
4131 type level;
4132 description
4133 "ISIS level of the adjacency to be cleared.
4134 If ISIS level is level-1-2, both level 1 and level 2
4135 adjacencies would be cleared.
4137 If the value provided is different from the one
4138 authorized in the enum type, then this
4139 operation SHALL fail with error-tag 'data-missing'
4140 and error-app-tag
4141 'bad-isis-level'.
4142 ";
4143 }
4144 leaf interface {
4145 type string;
4146 description
4147 "Name of the ISIS interface.
4149 If the ISIS interface with name equal to the
4150 value of this parameter doesn't exist, then this
4151 operation SHALL fail with error-tag 'data-missing'
4152 and error-app-tag
4153 'isis-interface-not-found'.";
4154 }
4155 }
4156 }
4158 rpc clear-database {
4159 description
4160 "This RPC request clears a particular
4161 ISIS database. If the operation
4162 fails for ISIS internal reason, then
4163 error-tag and error-app-tag should be set
4164 to a meaningful value.";
4165 input {
4166 leaf routing-protocol-instance-name {
4167 type instance-state-ref;
4168 mandatory "true";
4169 description
4170 "Name of the ISIS protocol instance whose ISIS
4171 information is being queried.
4173 If the ISIS instance with name equal to the
4174 value of this parameter doesn't exist, then this
4175 operation SHALL fail with error-tag 'data-missing'
4176 and error-app-tag
4177 'routing-protocol-instance-not-found'.";
4178 }
4179 leaf level {
4180 type level;
4181 description
4182 "ISIS level of the adjacency to be cleared.
4183 If ISIS level is level-1-2, both level 1 and level 2
4184 adjacencies would be cleared.
4186 If the value provided is different from the one
4187 authorized in the enum type, then this
4188 operation SHALL fail with error-tag 'data-missing'
4189 and error-app-tag
4190 'bad-isis-level'.
4191 ";
4192 }
4193 }
4194 }
4196 /* Notifications */
4198 notification database-overload {
4199 uses notification-instance-hdr;
4201 leaf overload {
4202 type enumeration {
4203 enum "off" {
4204 description
4205 "The system has left overload condition.";
4206 }
4207 enum "on" {
4208 description
4209 "The system is in overload condition.";
4210 }
4212 }
4213 description
4214 "Describes the new overload state of the instance.";
4215 }
4216 description
4217 "This notification is sent when an ISIS instance
4218 overload condition changes.";
4219 }
4221 notification lsp-too-large {
4222 uses notification-instance-hdr;
4223 uses notification-interface-hdr;
4224 leaf pdu-size {
4225 type uint32;
4226 description
4227 "Size of the PDU";
4228 }
4229 leaf lsp-id {
4230 type lsp-id;
4231 description
4232 "LSP ID.";
4233 }
4234 description
4235 "This notification is sent when we attempt
4236 to propagate an LSP that is larger than the
4237 dataLinkBlockSize for the circuit.
4238 The notification generation must be throttled
4239 with at least a 5 second gap.
4240 ";
4241 }
4243 notification if-state-change {
4244 uses notification-instance-hdr;
4245 uses notification-interface-hdr;
4247 leaf state {
4248 type if-state-type;
4249 description "Interface state.";
4250 }
4251 description
4252 "This notification is sent when an interface
4253 state change is detected.";
4254 }
4256 notification corrupted-lsp-detected {
4257 uses notification-instance-hdr;
4258 leaf lsp-id {
4259 type lsp-id;
4260 description
4261 "LSP ID.";
4262 }
4263 description
4264 "This notification is sent when we find
4265 that an LSP that was stored in memory has
4266 become corrupted.
4267 ";
4268 }
4270 notification attempt-to-exceed-max-sequence {
4271 uses notification-instance-hdr;
4272 leaf lsp-id {
4273 type lsp-id;
4274 description
4275 "LSP ID.";
4276 }
4277 description
4278 "This notification is sent when the system
4279 wraps the 32-bit sequence counter of an LSP.
4280 ";
4281 }
4283 notification id-len-mismatch {
4284 uses notification-instance-hdr;
4285 uses notification-interface-hdr;
4287 leaf pdu-field-len {
4288 type uint8;
4289 description
4290 "Size of the ID length in the received PDU";
4291 }
4292 leaf raw-pdu {
4293 type binary;
4294 description
4295 "Received raw PDU.";
4296 }
4297 description
4298 "This notification is sent when we receive a PDU
4299 with a different value for the System ID length.
4300 The notification generation must be throttled
4301 with at least a 5 second gap.
4302 ";
4303 }
4305 notification max-area-addresses-mismatch {
4306 uses notification-instance-hdr;
4307 uses notification-interface-hdr;
4309 leaf max-area-addresses {
4310 type uint8;
4311 description
4312 "Received number of supported areas";
4313 }
4314 leaf raw-pdu {
4315 type binary;
4316 description
4317 "Received raw PDU.";
4318 }
4319 description
4320 "This notification is sent when we receive a PDU
4321 with a different value for the Maximum Area Addresses.
4322 The notification generation must be throttled
4323 with at least a 5 second gap.
4324 ";
4325 }
4327 notification own-lsp-purge {
4328 uses notification-instance-hdr;
4329 uses notification-interface-hdr;
4330 leaf lsp-id {
4331 type lsp-id;
4332 description
4333 "LSP ID.";
4334 }
4335 description
4336 "This notification is sent when the system
4337 receives a PDU with its own system ID and zero age.
4338 ";
4339 }
4341 notification sequence-number-skipped {
4342 uses notification-instance-hdr;
4343 uses notification-interface-hdr;
4344 leaf lsp-id {
4345 type lsp-id;
4346 description
4347 "LSP ID.";
4348 }
4349 description
4350 "This notification is sent when the system
4351 receives a PDU with its own system ID and
4352 different contents. The system has to reissue
4353 the LSP with a higher sequence number.
4354 ";
4355 }
4357 notification authentication-type-failure {
4358 uses notification-instance-hdr;
4359 uses notification-interface-hdr;
4360 leaf raw-pdu {
4361 type binary;
4362 description
4363 "Received raw PDU.";
4364 }
4365 description
4366 "This notification is sent when the system
4367 receives a PDU with the wrong authentication type
4368 field.
4369 The notification generation must be throttled with
4370 at least a 5 second gap.
4371 ";
4372 }
4374 notification authentication-failure {
4375 uses notification-instance-hdr;
4376 uses notification-interface-hdr;
4377 leaf raw-pdu {
4378 type binary;
4379 description
4380 "Received raw PDU.";
4381 }
4382 description
4383 "This notification is sent when the system
4384 receives a PDU with the wrong authentication
4385 information.
4386 The notification generation must be throttled with
4387 at least a 5 second gap.
4388 ";
4389 }
4391 notification version-skew {
4392 uses notification-instance-hdr;
4393 uses notification-interface-hdr;
4394 leaf protocol-version {
4395 type uint8;
4396 description
4397 "Protocol version received in the PDU.";
4398 }
4399 leaf raw-pdu {
4400 type binary;
4401 description
4402 "Received raw PDU.";
4403 }
4404 description
4405 "This notification is sent when the system
4406 receives a PDU with a different protocol version
4407 number.
4408 The notification generation must be throttled with at least
4409 a 5 second gap.
4410 ";
4411 }
4413 notification area-mismatch {
4414 uses notification-instance-hdr;
4415 uses notification-interface-hdr;
4416 leaf raw-pdu {
4417 type binary;
4418 description
4419 "Received raw PDU.";
4420 }
4421 description
4422 "This notification is sent when the system
4423 receives a Hello PDU from an IS that does
4424 not share any area address.
4425 The notification generation must be throttled with at least
4426 a 5 second gap.
4427 ";
4428 }
4430 notification rejected-adjacency {
4431 uses notification-instance-hdr;
4432 uses notification-interface-hdr;
4433 leaf raw-pdu {
4434 type binary;
4435 description
4436 "Received raw PDU.";
4437 }
4438 leaf reason {
4439 type string;
4440 description
4441 "The system may provide a reason to reject the
4442 adjacency. If the reason is not available,
4443 the system use an empty string.";
4444 }
4445 description
4446 "This notification is sent when the system
4447 receives a Hello PDU from an IS but does not
4448 establish an adjacency for some reason.
4449 The notification generation must be throttled with at least
4450 a 5 second gap.
4451 ";
4452 }
4454 notification protocols-supported-mismatch {
4455 uses notification-instance-hdr;
4456 uses notification-interface-hdr;
4457 leaf raw-pdu {
4458 type binary;
4459 description
4460 "Received raw PDU.";
4461 }
4462 leaf-list protocols {
4463 type uint8;
4464 description
4465 "The list of protocols supported by the
4466 remote system.";
4467 }
4468 description
4469 "This notification is sent when the system
4470 receives a non pseudonode LSP that has no matching
4471 protocol supported.
4472 The notification generation must be throttled with at least
4473 a 5 second gap.
4474 ";
4475 }
4477 notification lsp-error-detected {
4478 uses notification-instance-hdr;
4479 uses notification-interface-hdr;
4480 leaf lsp-id {
4481 type lsp-id;
4482 description
4483 "LSP ID.";
4484 }
4485 leaf raw-pdu {
4486 type binary;
4487 description
4488 "Received raw PDU.";
4489 }
4490 leaf error-offset {
4491 type uint32;
4492 description
4493 "If the problem is a malformed TLV,
4494 the error-offset points to the start of the TLV.
4495 If the problem is with the LSP header,
4496 the error-offset points to the suspicious byte";
4497 }
4498 leaf tlv-type {
4499 type uint8;
4500 description
4501 "if the problem is a malformed TLV, the tlv-type is set
4502 to the type value of the suspicious TLV.
4503 Otherwise this leaf is not present.";
4504 }
4505 description
4506 "This notification is sent when the system
4507 receives a LSP with a parse error.
4508 The notification generation must be throttled with at least
4509 a 5 second gap.
4510 ";
4512 }
4514 notification adjacency-state-change {
4515 uses notification-instance-hdr;
4516 uses notification-interface-hdr;
4517 leaf neighbor {
4518 type string;
4519 description
4520 "Describes the name of the neighbor. If the
4521 name of the neighbor is not available, the
4522 field would be empty.";
4523 }
4524 leaf neighbor-system-id {
4525 type system-id;
4526 description
4527 "Describes the system-id of the neighbor.";
4528 }
4529 leaf state {
4530 type adj-state-type;
4532 description
4533 "This leaf describes the new state of the
4534 ISIS adjacency.";
4535 }
4536 leaf reason {
4537 type string;
4538 description
4539 "If the adjacency is going to DOWN,
4540 this leaf provides a reason for the adjacency
4541 going down. The reason is provided as a text.
4542 If the adjacency is going to UP, no reason is
4543 provided.";
4544 }
4545 description
4546 "This notification is sent when an ISIS adjacency
4547 moves to Up state or to Down state.";
4548 }
4550 notification lsp-received {
4551 uses notification-instance-hdr;
4552 uses notification-interface-hdr;
4554 leaf lsp-id {
4555 type lsp-id;
4556 description
4557 "LSP ID.";
4558 }
4559 leaf sequence {
4560 type uint32;
4561 description
4562 "Sequence number of the received LSP.";
4563 }
4564 leaf received-timestamp {
4565 type yang:timestamp;
4567 description
4568 "This leaf describes the timestamp
4569 when the LSP was received. ";
4570 }
4571 leaf neighbor-system-id {
4572 type system-id;
4573 description
4574 "Describes the system-id of the neighbor
4575 that sent the LSP.";
4576 }
4577 description
4578 "This notification is sent when a LSP
4579 is received.
4580 The notification generation must be throttled with at least
4581 a 5 second gap. ";
4582 }
4584 notification lsp-generation {
4585 uses notification-instance-hdr;
4587 leaf lsp-id {
4588 type lsp-id;
4589 description
4590 "LSP ID.";
4591 }
4592 leaf sequence {
4593 type uint32;
4594 description
4595 "Sequence number of the received LSP.";
4596 }
4597 leaf send-timestamp {
4598 type yang:timestamp;
4600 description
4601 "This leaf describes the timestamp
4602 when our LSP was regenerated. ";
4603 }
4604 description
4605 "This notification is sent when a LSP
4606 is regenerated.
4607 The notification generation must be throttled with at least
4608 a 5 second gap. ";
4609 }
4610 }
4612
4614 7. Security Considerations
4616 Configuration and state data defined in this document are designed to
4617 be accessed via the NETCONF protocol [RFC6241].
4619 As IS-IS is an IGP protocol (critical piece of the network), ensuring
4620 stability and security of the protocol is mandatory for the network
4621 service.
4623 Authors recommends to implement NETCONF access control model
4624 ([RFC6536]) to restrict access to all or part of the configuration to
4625 specific users. Access control to RPCs is also critical as RPC
4626 allows to clear protocol datastructures that would definitively
4627 impact the network service. This kind of RPC needs only to be used
4628 in specific cases by well-known experienced users.
4630 Authors consider that all the configuration is considered as
4631 sensitive/vulnerable as well as RPCs. But security teams can decide
4632 to open some part of the configuration to less experienced users
4633 depending on the internal organization, for example:
4635 o User FullWrite: would access to the whole data model. This kind
4636 of profile may be restricted to few experienced people.
4638 o User PartialWrite: would only access to configuration part within
4639 /isis/interfaces/interface. So this kind of profile is restricted
4640 to creation/modification/deletion of interfaces. This profile
4641 does not have access to RPC.
4643 o User Read: would only access to the operational states.
4645 Unauthorized access to configuration or RPC may cause high damages to
4646 the network service.
4648 The "isis/database" may contain authentication information. As
4649 presented in the description of the "/isis/database/level-
4650 1/lsp/authentication/authentication-key", the authentication MUST
4651 never be displayed in a plaintext format for security reason.
4652 Authors recommend the usage of MD5 to display or return the
4653 authentication-key.
4655 Some authentication-key may also be required in the "isis" writable
4656 container. When configuring IS-IS using the NETCONF protocol,
4657 authors recommends the usage of secure transport of NETCONF using SSH
4658 ([RFC6242]).
4660 8. Contributors
4662 Authors would like to thank Kiran Agrahara Sreenivasa, Dean
4663 Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the
4664 draft.
4666 9. Acknowledgements
4668 TBD.
4670 10. IANA Considerations
4672 The IANA is requested to assign two new URIs from the IETF XML
4673 registry ([RFC3688]). Authors are suggesting the following URI:
4675 URI: urn:ietf:params:xml:ns:yang:ietf-isis
4676 Registrant Contact: IS-IS WG
4677 XML: N/A, the requested URI is an XML namespace
4679 This document also requests one new YANG module name in the YANG
4680 Module Names registry ([RFC6020]) with the following suggestion:
4682 name: ietf-isis
4683 namespace: urn:ietf:params:xml:ns:yang:ietf-isis
4684 prefix: isis
4685 reference: RFC XXXX
4687 11. Change log for ietf-isis YANG module
4689 11.1. From version -17 to version -18
4691 o NMDA compliancy.
4693 o Set some default values.
4695 o Align with iana-rt-types module.
4697 11.2. From version -16 to version -17
4699 o Cosmetic fixes.
4701 o Use of rt-types model.
4703 11.3. From version -15 to version -16
4705 o Alignment with last IETF key chain model.
4707 o lsp-log "change" leaf moved as an identity.
4709 o Incremental SPF removed from spf-log types.
4711 11.4. From version -14 to version -15
4713 o Alignment with OSPF model done:
4715 * Added spf-control container with IETF SPF delay algorithm as a
4716 feature.
4718 * Added graceful-restart options.
4720 * Added nsr as a feature.
4722 * Removed per topology FRR. Need to be augmented if necessary.
4724 * Created an ldp container within mpls.
4726 * Renamed igp-ldp-sync to igp-sync.
4728 * Added auto-cost container.
4730 * Moved reference-bandwidth under auto-cost container.
4732 * Added IS-IS local RIB as operational state.
4734 * Added decode-completed and raw-data leaves in the LSDB model.
4736 * Modified the notification header.
4738 11.5. From version -13 to version -14
4740 o Segment Routing extensions are now in a separate document.
4742 11.6. From version -12 to version -13
4744 o Move feature nlpid-control to container rather than list.
4746 o Rename multi-topology to topologies to align with OSPF.
4748 o Rename bfd/enabled to bfd/enable for consistency reason.
4750 o Add support for NSR with a feature.
4752 11.7. From version -09 to version -12
4754 o Rename node-tag container to node-tags.
4756 11.8. From version -08 to version -09
4758 o Added container before af list.
4760 o Added container before topology list.
4762 o Aligned LFA if per level cfg.
4764 o Align to draft-ietf-netmod-routing-cfg-23.
4766 11.9. From version -07 to version -08
4768 o Remove selector from system-id type.
4770 o Add some default values.
4772 o Moved lists to containers+groupings for per level configuration.
4774 o remove routing-instance as per core routing model v21.
4776 o added BFD leaf (no more BFD protocol model).
4778 o changed keychain module reference.
4780 11.10. From version -05 to version -07
4782 o Move Overload config from list to container.
4784 o Move Overload-max-metric config from list to container.
4786 o Move preference config from list to container.
4788 o Add Node flag in config.
4790 o Removed BFD config => moved to isis-bfd module.
4792 o Remove call to routing policy model.
4794 11.11. From version -03 to version -05
4796 o Correct invalid references to previous versions of core routing
4797 model.
4799 o Remove BFD config and replace by groupings from ietf-bfd.
4801 o Adding routing-policy support through routing-policy model.
4803 11.12. From version -02 to version -03
4805 o Reviewed config and op state groupings.
4807 o Add default value to lfa candidate-disabled.
4809 o Add enable leaf to isis container to reflect admin state.
4811 o Move to VRF centric only.
4813 o Segment routing is part os a separate module.
4815 11.13. From version -01 to version -02
4817 o Adding IPFRR.
4819 o Adding igp-ldp-sync.
4821 o Adding segment-routing.
4823 o Adding instance reference to operational states.
4825 o Move AF type from string to identity.
4827 o Updated router-capability in LSDB description.
4829 o packet counters moved to interface-packet-counters.
4831 o Added modification information in lsp-log.
4833 o Removing igp-ldp-sync timer in IS-IS.
4835 o Defining hierarchy for operational states.
4837 o Adding clns-mtu.
4839 o Adding key-chain.
4841 11.14. From version -00 to version -01
4843 o Interface metric move from af container to interface container.
4845 o Hello-padding on interface moved to hello-padding-disable with
4846 empty type.
4848 o three-way-handshake removed.
4850 o route preference changed to a choice.
4852 o csnp-authentication/psnp-authentication merged to authentication
4853 container.
4855 o lsp-gen-interval-exp-delay removed.
4857 o Added overload-max-metric feature.
4859 o overload-max-metric is in a separate container.
4861 o Change hello-padding to container.
4863 o Change bfd to container.
4865 o Make BFD a feature.
4867 o Create mpls-te container and put router-id inside.
4869 o Remove GR helper disable and timers.
4871 12. Normative References
4873 [I-D.ietf-netmod-routing-cfg]
4874 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
4875 Management", draft-ietf-netmod-routing-cfg-25 (work in
4876 progress), November 2016.
4878 [I-D.ietf-rtgwg-yang-key-chain]
4879 Lindem, A., Qu, Y., Yeung, D., Chen, I., and Z. Zhang,
4880 "Routing Key Chain YANG Data Model", draft-ietf-rtgwg-
4881 yang-key-chain-24 (work in progress), April 2017.
4883 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
4884 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
4885 RFC2119, March 1997,
4886 .
4888 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
4889 DOI 10.17487/RFC3688, January 2004,
4890 .
4892 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
4893 Topology (MT) Routing in Intermediate System to
4894 Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/
4895 RFC5120, February 2008,
4896 .
4898 [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for
4899 IP Fast Reroute: Loop-Free Alternates", RFC 5286, DOI
4900 10.17487/RFC5286, September 2008,
4901 .
4903 [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP
4904 Synchronization", RFC 5443, DOI 10.17487/RFC5443, March
4905 2009, .
4907 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
4908 the Network Configuration Protocol (NETCONF)", RFC 6020,
4909 DOI 10.17487/RFC6020, October 2010,
4910 .
4912 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
4913 and A. Bierman, Ed., "Network Configuration Protocol
4914 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
4915 .
4917 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
4918 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
4919 .
4921 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
4922 Protocol (NETCONF) Access Control Model", RFC 6536, DOI
4923 10.17487/RFC6536, March 2012,
4924 .
4926 [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N.
4927 So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)",
4928 RFC 7490, DOI 10.17487/RFC7490, April 2015,
4929 .
4931 Appendix A. Example of IS-IS configuration in XML
4933 This section gives an example of configuration of an IS-IS instance
4934 on a device. The example is written in XML.
4936
4937
4938
4939 SLI
4940 1.1.1.1
4941
4942
4943
4944 Loopback0
4945
4946
4947 Eth1
4948
4949
4950
4951
4952 ISIS
4953
4954 isis:isis
4955
4956 true
4957 level-2
4958 87FC.FCDF.4432
4959 49.0001
4960
4961 1.1.1.1
4962
4963 65535
4964 65000
4965
4966 wide
4967
4968
4969 111111
4970
4971
4972
4973 ipv4-unicast
4974 true
4975
4976
4977
4978
4979 Loopback0
4980 200
4981
4982 0
4983
4984 true
4985
4986
4987 Eth1
4988 level-2
4989 point-to-point
4990
4991 167890
4992
4993
4995
4996
4997
4998
4999
5000
5001
5002 Loopback0
5003
5004
5005
5006
5007
5008
5009 1.1.1.1
5010 32
5011
5012
5014
5015
5016 Eth1
5017
5018
5019
5020
5021
5022
5023 10.0.0.1
5024 30
5025
5026
5028
5029
5030
5032 Authors' Addresses
5034 Stephane Litkowski
5035 Orange
5037 Email: stephane.litkowski@orange.com
5038 Derek Yeung
5039 Arrcus, Inc
5041 Email: derek@arrcus.com
5043 Acee Lindem
5044 Cisco Systems
5046 Email: acee@cisco.com
5048 Jeffrey Zhang
5049 Juniper Networks
5051 Email: zzhang@juniper.net
5053 Ladislav Lhotka
5054 CZ.NIC
5056 Email: lhotka@nic.cz