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