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