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