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