idnits 2.17.00 (12 Aug 2021)
/tmp/idnits28106/draft-ietf-isis-yang-isis-cfg-13.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== The page length should not exceed 58 lines per page, but there was 2
longer pages, the longest (page 23) being 69 lines
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the IETF Trust and authors Copyright Line does not
match the current year
== Line 305 has weird spacing: '...ce-name ins...'
== Line 310 has weird spacing: '...ce-name ins...'
== Line 689 has weird spacing: '...--rw af ide...'
== Line 823 has weird spacing: '...ce-name ins...'
== Line 828 has weird spacing: '...ce-name ins...'
== (12 more instances...)
-- The document date (October 26, 2016) is 2033 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
== Outdated reference: draft-ietf-netmod-routing-cfg has been published as
RFC 8022
== Outdated reference: draft-ietf-rtgwg-yang-key-chain has been published
as RFC 8177
== Outdated reference: draft-ietf-spring-sr-yang has been published as RFC
9020
** Downref: Normative reference to an Informational RFC: RFC 5443
** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341)
Summary: 2 errors (**), 0 flaws (~~), 11 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: April 29, 2017 Arrcus, Inc
6 A. Lindem
7 Cisco Systems
8 J. Zhang
9 Juniper Networks
10 L. Lhotka
11 CZ.NIC
12 October 26, 2016
14 YANG Data Model for IS-IS protocol
15 draft-ietf-isis-yang-isis-cfg-13
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. It also defines an
21 extension module for IS-IS segment routing configuration and
22 operation.
24 Requirements Language
26 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
27 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
28 document are to be interpreted as described in [RFC2119].
30 Status of This Memo
32 This Internet-Draft is submitted in full conformance with the
33 provisions of BCP 78 and BCP 79.
35 Internet-Drafts are working documents of the Internet Engineering
36 Task Force (IETF). Note that other groups may also distribute
37 working documents as Internet-Drafts. The list of current Internet-
38 Drafts is at http://datatracker.ietf.org/drafts/current/.
40 Internet-Drafts are draft documents valid for a maximum of six months
41 and may be updated, replaced, or obsoleted by other documents at any
42 time. It is inappropriate to use Internet-Drafts as reference
43 material or to cite them other than as "work in progress."
45 This Internet-Draft will expire on April 29, 2017.
47 Copyright Notice
49 Copyright (c) 2016 IETF Trust and the persons identified as the
50 document authors. All rights reserved.
52 This document is subject to BCP 78 and the IETF Trust's Legal
53 Provisions Relating to IETF Documents
54 (http://trustee.ietf.org/license-info) in effect on the date of
55 publication of this document. Please review these documents
56 carefully, as they describe your rights and restrictions with respect
57 to this document. Code Components extracted from this document must
58 include Simplified BSD License text as described in Section 4.e of
59 the Trust Legal Provisions and are provided without warranty as
60 described in the Simplified BSD License.
62 Table of Contents
64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
65 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3
66 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 4
67 2.1. IS-IS Configuration . . . . . . . . . . . . . . . . . . . 10
68 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 10
69 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 11
70 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 12
71 2.5. Authentication Parameters . . . . . . . . . . . . . . . . 16
72 2.6. IGP/LDP synchronization . . . . . . . . . . . . . . . . . 16
73 2.7. ISO parameters . . . . . . . . . . . . . . . . . . . . . 16
74 2.8. IP FRR . . . . . . . . . . . . . . . . . . . . . . . . . 17
75 2.9. Operational State . . . . . . . . . . . . . . . . . . . . 17
76 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 18
77 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 18
78 5. Segment Routing . . . . . . . . . . . . . . . . . . . . . . . 22
79 5.1. Segment Routing activation . . . . . . . . . . . . . . . 25
80 5.2. Advertising mapping server policy . . . . . . . . . . . . 25
81 5.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 25
82 6. Interaction with Other YANG Modules . . . . . . . . . . . . . 25
83 7. IS-IS YANG Module . . . . . . . . . . . . . . . . . . . . . . 26
84 8. IS-IS Segment Routing YANG Module . . . . . . . . . . . . . . 100
85 9. Security Considerations . . . . . . . . . . . . . . . . . . . 115
86 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 116
87 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 116
88 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 116
89 13. Change log for ietf-isis-sr YANG module . . . . . . . . . . . 117
90 13.1. From version -12 to version -13 . . . . . . . . . . . . 117
91 13.2. From version -09 to version -11 . . . . . . . . . . . . 117
92 13.3. From version -08 to version -09 . . . . . . . . . . . . 117
93 13.4. From version -07 to version -08 . . . . . . . . . . . . 117
94 14. Change log for ietf-isis YANG module . . . . . . . . . . . . 117
95 14.1. From version -12 to version -13 . . . . . . . . . . . . 117
96 14.2. From version -09 to version -12 . . . . . . . . . . . . 117
97 14.3. From version -08 to version -09 . . . . . . . . . . . . 117
98 14.4. From version -07 to version -08 . . . . . . . . . . . . 118
99 14.5. From version -05 to version -07 . . . . . . . . . . . . 118
100 14.6. From version -03 to version -05 . . . . . . . . . . . . 118
101 14.7. From version -02 to version -03 . . . . . . . . . . . . 118
102 14.8. From version -01 to version -02 . . . . . . . . . . . . 119
103 14.9. From version -00 to version -01 . . . . . . . . . . . . 119
104 15. Normative References . . . . . . . . . . . . . . . . . . . . 120
105 Appendix A. Example of IS-IS configuration in XML . . . . . . . 121
106 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 123
108 1. Introduction
110 This document defines a YANG data model for IS-IS routing protocol.
112 The data model covers configuration of an IS-IS routing protocol
113 instance as well as operational states.
115 1.1. Tree diagram
117 A simplified graphical representation of the data model is presented
118 in Section 2.
120 The meaning of the symbols in these diagrams is as follows:
122 o Brackets "[" and "]" enclose list keys.
124 o Curly braces "{" and "}" contain names of optional features that
125 make the corresponding node conditional.
127 o Abbreviations before data node names: "rw" means configuration
128 (read-write), and "ro" state data (read-only).
130 o Symbols after data node names: "?" means an optional node and "*"
131 denotes a "list" or "leaf-list".
133 o Parentheses enclose choice and case nodes, and case nodes are also
134 marked with a colon (":").
136 o Ellipsis ("...") stands for contents of subtrees that are not
137 shown.
139 2. Design of the Data Model
141 The IS-IS YANG module is divided in two main "isis" containers that
142 are augmenting the "control-plane-protocol" lists in ietf-routing
143 module with specific IS-IS parameters.
145 One container contains the writable parameters, while the other
146 contains the operational states.
148 The figure below describes the overall structure of the isis YANG
149 module:
151 module: ietf-isis
152 augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route:
153 +--ro metric? uint32
154 +--ro tag* uint64
155 +--ro route-type? enumeration
156 augment /if:interfaces/if:interface:
157 +--rw clns-mtu? uint16
158 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
159 :
160 +--rw isis
161 +--rw enable? boolean {admin-control}?
162 +--rw level-type? level
163 +--rw system-id? system-id
164 +--rw maximum-area-addresses? uint8 {maximum-area-addresses}?
165 +--rw area-address* area-address
166 +--rw mpls
167 | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
168 | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
169 | +--rw igp-ldp-sync {igp-ldp-sync}?
170 +--rw reference-bandwidth? uint32 {reference-bandwidth}?
171 +--rw lsp-mtu? uint16
172 +--rw lsp-lifetime? uint16
173 +--rw lsp-refresh? uint16 {lsp-refresh}?
174 +--rw graceful-restart {graceful-restart}?
175 | +--rw enable? boolean
176 +--rw nsr {nsr}?
177 | +--rw enable? boolean
178 +--rw node-tags {node-tag}?
179 | +--rw node-tag* [tag]
180 | ...
181 +--rw authentication
182 | +--rw (authentication-type)?
183 | | ...
184 | +--rw level-1
185 | | ...
186 | +--rw level-2
187 | ...
189 +--rw metric-type
190 | +--rw value? enumeration
191 | +--rw level-1
192 | | ...
193 | +--rw level-2
194 | ...
195 +--rw default-metric
196 | +--rw value? wide-metric
197 | +--rw level-1
198 | | ...
199 | +--rw level-2
200 | ...
201 +--rw afs {nlpid-control}?
202 | +--rw af* [af]
203 | ...
204 +--rw preference
205 | +--rw (granularity)?
206 | ...
207 +--rw overload
208 | +--rw status? boolean
209 +--rw overload-max-metric {overload-max-metric}?
210 | +--rw timeout? uint16
211 +--rw fast-reroute {fast-reroute}?
212 | +--rw lfa {lfa}?
213 +--rw topologies {multi-topology}?
214 | +--rw topology* [name]
215 | ...
216 +--rw interfaces
217 +--rw interface* [name]
218 ...
219 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
220 otocol:
221 +--ro isis
222 +--ro enable? boolean {admin-control}?
223 +--ro level-type? level
224 +--ro system-id? system-id
225 +--ro maximum-area-addresses? uint8 {maximum-area-addresses}?
226 +--ro area-address* area-address
227 +--ro mpls
228 | +--ro ipv4-router-id? inet:ipv4-address {ipv4-router-id}?
229 | +--ro ipv6-router-id? inet:ipv6-address {ipv6-router-id}?
230 | +--ro igp-ldp-sync {igp-ldp-sync}?
231 +--ro reference-bandwidth? uint32 {reference-bandwidth}?
232 +--ro lsp-mtu? uint16
233 +--ro lsp-lifetime? uint16
234 +--ro lsp-refresh? uint16 {lsp-refresh}?
235 +--ro graceful-restart {graceful-restart}?
236 | +--ro enable? boolean
237 +--ro nsr {nsr}?
238 | +--ro enable? boolean
239 +--ro node-tags {node-tag}?
240 | +--ro node-tag* [tag]
241 | ...
242 +--ro authentication
243 | +--ro (authentication-type)?
244 | | ...
245 | +--ro level-1
246 | | ...
247 | +--ro level-2
248 | ...
249 +--ro metric-type
250 | +--ro value? enumeration
251 | +--ro level-1
252 | | ...
253 | +--ro level-2
254 | ...
255 +--ro default-metric
256 | +--ro value? wide-metric
257 | +--ro level-1
258 | | ...
259 | +--ro level-2
260 | ...
261 +--ro afs {nlpid-control}?
262 | +--ro af* [af]
263 | ...
264 +--ro preference
265 | +--ro (granularity)?
266 | ...
267 +--ro overload
268 | +--ro status? boolean
269 +--ro overload-max-metric {overload-max-metric}?
270 | +--ro timeout? uint16
271 +--ro fast-reroute {fast-reroute}?
272 | +--ro lfa {lfa}?
273 | +--ro protected-routes
274 | | ...
275 | +--ro nonprotected-routes
276 | | ...
277 | +--ro protection-statistics* [frr-protection-method]
278 | ...
279 +--ro topologies* [name]
280 | +--ro name leafref
281 | +--ro fast-route {fast-reroute}?
282 | ...
283 +--ro system-counters
284 | +--ro level* [level]
285 | ...
287 +--ro interfaces
288 | +--ro interface* [interface]
289 | ...
290 +--ro spf-log
291 | +--ro event* [id]
292 | ...
293 +--ro lsp-log
294 | +--ro event* [id]
295 | ...
296 +--ro database
297 | +--ro level-db* [level]
298 | ...
299 +--ro hostnames
300 +--ro hostname* [system-id]
301 ...
302 rpcs:
303 +---x clear-adjacency
304 | +--ro input
305 | +--ro routing-protocol-instance-name instance-state-ref
306 | +--ro level? level
307 | +--ro interface? string
308 +---x clear-database
309 +--ro input
310 +--ro routing-protocol-instance-name instance-state-ref
311 +--ro level? level
312 notifications:
313 +---n database-overload
314 | +--ro instance-name? string
315 | +--ro instance-level? level
316 | +--ro overload? enumeration
317 +---n lsp-too-large
318 | +--ro instance-name? string
319 | +--ro instance-level? level
320 | +--ro interface-name? string
321 | +--ro interface-level? level
322 | +--ro extended-circuit-id? extended-circuit-id
323 | +--ro pdu-size? uint32
324 | +--ro lsp-id? lsp-id
325 +---n corrupted-lsp-detected
326 | +--ro instance-name? string
327 | +--ro instance-level? level
328 | +--ro lsp-id? lsp-id
329 +---n attempt-to-exceed-max-sequence
330 | +--ro instance-name? string
331 | +--ro instance-level? level
332 | +--ro lsp-id? lsp-id
333 +---n id-len-mismatch
334 | +--ro instance-name? string
335 | +--ro instance-level? level
336 | +--ro interface-name? string
337 | +--ro interface-level? level
338 | +--ro extended-circuit-id? extended-circuit-id
339 | +--ro pdu-field-len? uint8
340 | +--ro raw-pdu? binary
341 +---n max-area-addresses-mismatch
342 | +--ro instance-name? string
343 | +--ro instance-level? level
344 | +--ro interface-name? string
345 | +--ro interface-level? level
346 | +--ro extended-circuit-id? extended-circuit-id
347 | +--ro max-area-addresses? uint8
348 | +--ro raw-pdu? binary
349 +---n own-lsp-purge
350 | +--ro instance-name? string
351 | +--ro instance-level? level
352 | +--ro interface-name? string
353 | +--ro interface-level? level
354 | +--ro extended-circuit-id? extended-circuit-id
355 | +--ro lsp-id? lsp-id
356 +---n sequence-number-skipped
357 | +--ro instance-name? string
358 | +--ro instance-level? level
359 | +--ro interface-name? string
360 | +--ro interface-level? level
361 | +--ro extended-circuit-id? extended-circuit-id
362 | +--ro lsp-id? lsp-id
363 +---n authentication-type-failure
364 | +--ro instance-name? string
365 | +--ro instance-level? level
366 | +--ro interface-name? string
367 | +--ro interface-level? level
368 | +--ro extended-circuit-id? extended-circuit-id
369 | +--ro raw-pdu? binary
370 +---n authentication-failure
371 | +--ro instance-name? string
372 | +--ro instance-level? level
373 | +--ro interface-name? string
374 | +--ro interface-level? level
375 | +--ro extended-circuit-id? extended-circuit-id
376 | +--ro raw-pdu? binary
377 +---n version-skew
378 | +--ro instance-name? string
379 | +--ro instance-level? level
380 | +--ro interface-name? string
381 | +--ro interface-level? level
382 | +--ro extended-circuit-id? extended-circuit-id
383 | +--ro protocol-version? uint8
384 | +--ro raw-pdu? binary
385 +---n area-mismatch
386 | +--ro instance-name? string
387 | +--ro instance-level? level
388 | +--ro interface-name? string
389 | +--ro interface-level? level
390 | +--ro extended-circuit-id? extended-circuit-id
391 | +--ro raw-pdu? binary
392 +---n rejected-adjacency
393 | +--ro instance-name? string
394 | +--ro instance-level? level
395 | +--ro interface-name? string
396 | +--ro interface-level? level
397 | +--ro extended-circuit-id? extended-circuit-id
398 | +--ro raw-pdu? binary
399 | +--ro reason? string
400 +---n protocols-supported-mismatch
401 | +--ro instance-name? string
402 | +--ro instance-level? level
403 | +--ro interface-name? string
404 | +--ro interface-level? level
405 | +--ro extended-circuit-id? extended-circuit-id
406 | +--ro raw-pdu? binary
407 | +--ro protocols* uint8
408 +---n lsp-error-detected
409 | +--ro instance-name? string
410 | +--ro instance-level? level
411 | +--ro interface-name? string
412 | +--ro interface-level? level
413 | +--ro extended-circuit-id? extended-circuit-id
414 | +--ro lsp-id? lsp-id
415 | +--ro raw-pdu? binary
416 | +--ro error-offset? uint32
417 | +--ro tlv-type? uint8
418 +---n adjacency-change
419 | +--ro instance-name? string
420 | +--ro instance-level? level
421 | +--ro interface-name? string
422 | +--ro interface-level? level
423 | +--ro extended-circuit-id? extended-circuit-id
424 | +--ro neighbor? string
425 | +--ro neighbor-system-id? system-id
426 | +--ro level? level
427 | +--ro state? enumeration
428 | +--ro reason? string
429 +---n lsp-received
430 | +--ro instance-name? string
431 | +--ro instance-level? level
432 | +--ro interface-name? string
433 | +--ro interface-level? level
434 | +--ro extended-circuit-id? extended-circuit-id
435 | +--ro lsp-id? lsp-id
436 | +--ro sequence? uint32
437 | +--ro received-timestamp? yang:timestamp
438 | +--ro neighbor-system-id? system-id
439 +---n lsp-generation
440 +--ro instance-name? string
441 +--ro instance-level? level
442 +--ro lsp-id? lsp-id
443 +--ro sequence? uint32
444 +--ro send-timestamp? yang:timestamp
446 2.1. IS-IS Configuration
448 The IS-IS configuration container is divided in:
450 o Global parameters.
452 o Per interface configuration (see Section 2.4).
454 Additional modules may be created this to support any additional
455 parameters. These modules should augment the ietf-isis module.
457 The model implements features, so some of the configuration statement
458 becomes optional. As an example, the ability to control the
459 administrative state of a particular IS-IS instance is optional. By
460 advertising the feature "admin-control", a device communicates to the
461 client that it supports the ability to shutdown a particular IS-IS
462 instance.
464 The global configuration contains usual IS-IS parameters such as lsp-
465 mtu, lsp-lifetime, lsp-refresh, default-metric ...
467 2.2. Multitopology Parameters
469 The model supports multitopology (MT) IS-IS as defined in [RFC5120].
471 The "topologies" container is used to enable support of MT
472 extensions.
474 The "name" used in the topology list should refer to an existing RIB
475 of the device.
477 Some specific parameters could be defined on a per topology basis
478 both at global level and at interface level: for example, an
479 interface metric can be defined per topology.
481 Multiple address families (like IPv4 or IPv6) can also be activated
482 within the default topology. This can be achieved using the "afs"
483 container (requiring "nlpid-control" feature to be advertised).
485 2.3. Per-Level Parameters
487 Some parameters support a per level configuration. In this case, the
488 parameter is modeled as a container with three configuration
489 locations:
491 o top level container: corresponds to level-1-2, so the
492 configuration applies to both levels.
494 o level-1 container: corresponds to level-1 specific parameters.
496 o level-2 container: corresponds to level-2 specific parameters.
498 +--rw priority
499 | +--rw value? uint8
500 | +--rw level-1
501 | | +--rw value? uint8
502 | +--rw level-2
503 | +--rw value? uint8
505 Example:
507
508 250
509
510 100
511
512
513 200
514
515
517 An implementation SHOULD prefer a level specific parameter over a
518 level-all parameter. As example, if the priority is 100 for the
519 level-1, 200 for the level-2 and 250 for the top level configuration,
520 the implementation should use 100 for the level-1 and 200 for the
521 level-2.
523 Some parameters like "overload bit" and "route preference" are not
524 modeled to support a per level configuration. If an implementation
525 supports per level configuration for such parameter, this
526 implementation SHOULD augment the current model by adding both
527 level-1 and level-2 containers and SHOULD reuse existing
528 configuration groupings.
530 Example of augmentation:
532 augment "/rt:routing/" +
533 "rt:control-plane-protocols/rt:control-plane-protocol"+
534 "/isis:isis/isis:overload" {
535 when "rt:type = 'isis:isis'" {
536 description
537 "This augment IS-IS routing protocol when used";
538 }
539 description
540 "This augments IS-IS overload configuration
541 with per level configuration.";
543 container level-1 {
544 uses isis:overload-global-cfg;
545 description
546 "Level 1 configuration.";
547 }
548 container level-2 {
549 uses isis:overload-global-cfg;
550 description
551 "Level 2 configuration.";
552 }
554 }
556 If an implementation does not support per level configuration for a
557 parameter modeled with per level configuration, the implementation
558 SHOULD advertise a deviation to announce the non support of the
559 level-1 and level-2 containers.
561 Finally, if an implementation supports per level configuration but
562 does not support the level-1-2 configuration, it SHOULD also
563 advertise a deviation.
565 2.4. Per-Interface Parameters
567 The per-interface section of the IS-IS instance describes the
568 interface specific parameters.
570 The interface is a reference to an interface defined in the "ietf-
571 interfaces" YANG model.
573 Each interface has some interface-specific parameters that may have a
574 different per level value as described in previous section. An
575 interface-specific parameter always override an IS-IS global
576 parameter.
578 Some parameters like hello-padding are defined as containers to allow
579 easy extension by vendor specific modules.
581 +--rw interfaces
582 +--rw interface* [name]
583 +--rw name if:interface-ref
584 +--rw level-type? level
585 +--rw lsp-pacing-interval? uint16
586 +--rw lsp-retransmit-interval? uint16
587 +--rw passive? boolean
588 +--rw csnp-interval? uint16
589 +--rw hello-padding
590 | +--rw enable? boolean
591 +--rw mesh-group-enable? mesh-group-state
592 +--rw mesh-group? uint8
593 +--rw interface-type? interface-type
594 +--rw enable? boolean {admin-control}?
595 +--rw tag* uint32 {prefix-tag}?
596 +--rw tag64* uint64 {prefix-tag64}?
597 +--rw node-flag? boolean {node-flag}?
598 +--rw hello-authentication
599 | +--rw (authentication-type)?
600 | | +--:(key-chain) {key-chain}?
601 | | | +--rw key-chain? key-chain:key-chain-ref
602 | | +--:(password)
603 | | +--rw key? string
604 | | +--rw (algorithm)?
605 | | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}?
606 | | | +--rw hmac-sha1-12? empty
607 | | +--:(md5)
608 | | | +--rw md5? empty
609 | | +--:(sha-1)
610 | | | +--rw sha-1? empty
611 | | +--:(hmac-sha-1)
612 | | | +--rw hmac-sha-1? empty
613 | | +--:(hmac-sha-256)
614 | | | +--rw hmac-sha-256? empty
615 | | +--:(hmac-sha-384)
616 | | | +--rw hmac-sha-384? empty
617 | | +--:(hmac-sha-512)
618 | | +--rw hmac-sha-512? empty
619 | +--rw level-1
620 | | +--rw (authentication-type)?
621 | | +--:(key-chain) {key-chain}?
622 | | | +--rw key-chain? key-chain:key-chain-ref
623 | | +--:(password)
624 | | +--rw key? string
625 | | +--rw (algorithm)?
626 | | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}?
627 | | | +--rw hmac-sha1-12? empty
628 | | +--:(md5)
629 | | | +--rw md5? empty
630 | | +--:(sha-1)
631 | | | +--rw sha-1? empty
632 | | +--:(hmac-sha-1)
633 | | | +--rw hmac-sha-1? empty
634 | | +--:(hmac-sha-256)
635 | | | +--rw hmac-sha-256? empty
636 | | +--:(hmac-sha-384)
637 | | | +--rw hmac-sha-384? empty
638 | | +--:(hmac-sha-512)
639 | | +--rw hmac-sha-512? empty
640 | +--rw level-2
641 | +--rw (authentication-type)?
642 | +--:(key-chain) {key-chain}?
643 | | +--rw key-chain? key-chain:key-chain-ref
644 | +--:(password)
645 | +--rw key? string
646 | +--rw (algorithm)?
647 | +--:(hmac-sha-1-12) {crypto-hmac-sha-1-12}?
648 | | +--rw hmac-sha1-12? empty
649 | +--:(md5)
650 | | +--rw md5? empty
651 | +--:(sha-1)
652 | | +--rw sha-1? empty
653 | +--:(hmac-sha-1)
654 | | +--rw hmac-sha-1? empty
655 | +--:(hmac-sha-256)
656 | | +--rw hmac-sha-256? empty
657 | +--:(hmac-sha-384)
658 | | +--rw hmac-sha-384? empty
659 | +--:(hmac-sha-512)
660 | +--rw hmac-sha-512? empty
661 +--rw hello-interval
662 | +--rw value? uint16
663 | +--rw level-1
664 | | +--rw value? uint16
665 | +--rw level-2
666 | +--rw value? uint16
667 +--rw hello-multiplier
668 | +--rw value? uint16
669 | +--rw level-1
670 | | +--rw value? uint16
671 | +--rw level-2
672 | +--rw value? uint16
673 +--rw priority
674 | +--rw value? uint8
675 | +--rw level-1
676 | | +--rw value? uint8
677 | +--rw level-2
678 | +--rw value? uint8
679 +--rw metric
680 | +--rw value? wide-metric
681 | +--rw level-1
682 | | +--rw value? wide-metric
683 | +--rw level-2
684 | +--rw value? wide-metric
685 +--rw bfd {bfd}?
686 | +--rw enable? boolean
687 +--rw afs {nlpid-control}?
688 | +--rw af* [af]
689 | +--rw af identityref
690 +--rw mpls
691 | +--rw igp-ldp-sync {igp-ldp-sync}?
692 | +--rw enable? boolean
693 +--rw fast-reroute {fast-reroute}?
694 | +--rw lfa {lfa}?
695 | +--rw candidate-disabled? boolean
696 | +--rw enable? boolean
697 | +--rw remote-lfa {remote-lfa}?
698 | | +--rw enable? boolean
699 | +--rw level-1
700 | | +--rw candidate-disabled? boolean
701 | | +--rw enable? boolean
702 | | +--rw remote-lfa {remote-lfa}?
703 | | +--rw enable? boolean
704 | +--rw level-2
705 | +--rw candidate-disabled? boolean
706 | +--rw enable? boolean
707 | +--rw remote-lfa {remote-lfa}?
708 | +--rw enable? boolean
709 +--rw topologies {multi-topology}?
710 +--rw topology* [name]
711 +--rw name leafref
712 +--rw fast-reroute {fast-reroute}?
713 | +--rw lfa {lfa}?
714 | +--rw candidate-disabled? boolean
715 | +--rw enable? boolean
716 | +--rw remote-lfa {remote-lfa}?
717 | | +--rw enable? boolean
718 | +--rw level-1
719 | | +--rw candidate-disabled? boolean
720 | | +--rw enable? boolean
721 | | +--rw remote-lfa {remote-lfa}?
722 | | +--rw enable? boolean
723 | +--rw level-2
724 | +--rw candidate-disabled? boolean
725 | +--rw enable? boolean
726 | +--rw remote-lfa {remote-lfa}?
727 | +--rw enable? boolean
728 +--rw metric
729 +--rw value? wide-metric
730 +--rw level-1
731 | +--rw value? wide-metric
732 +--rw level-2
733 +--rw value? wide-metric
735 2.5. Authentication Parameters
737 The module enables authentication configuration through the IETF key-
738 chain module ([I-D.ietf-rtgwg-yang-key-chain]). The IS-IS module
739 imports the "ietf-key-chain" module and reuses some groupings to
740 allow global and per interface configuration of authentication. If a
741 global authentication is configured, an implementation SHOULD
742 authenticate PSNP, CSNP and LSPs with the authentication parameters
743 supplied. The authentication of hello PDUs can be activated on a per
744 interface basis.
746 2.6. IGP/LDP synchronization
748 [RFC5443] defines a mechanism where IGP needs to be synchronized with
749 LDP. An "igp-ldp-sync" feature has been defined in the model to
750 support this mechanism. The "mpls/igp-ldp-sync" container under
751 "interface" allows activation of the mechanism on a per interface
752 basis. The "mpls/igp-ldp-sync" container in the global configuration
753 is empty on purpose and is not required for the activation. The goal
754 of this empty container is to allow easy augmentation with additional
755 parameters like timers for example.
757 2.7. ISO parameters
759 As IS-IS protocol is based on ISO protocol suite, some ISO parameters
760 may be required.
762 This module augments interface configuration model to support ISO
763 configuration parameters.
765 The clns-mtu can be defined under the interface.
767 2.8. IP FRR
769 This YANG model supports LFA ([RFC5286]) and remote LFA ([RFC7490])
770 as IP FRR techniques. The "fast-reroute" container may be augmented
771 by other models to support other IPFRR flavors (MRT, TILFA ...).
773 The current version of the model supports activation of LFA and
774 remote LFA at interface only. The global "lfa" container is present
775 but kept empty to allow augmentation with vendor specific properties
776 like policies.
778 Remote LFA is considered as a child of LFA. Remote LFA cannot be
779 enabled if LFA is not enabled.
781 The "candidate-disabled" allows to mark an interface to not be used
782 as a backup.
784 2.9. Operational State
786 A "isis" container provides operational states for IS-IS. This
787 container is divided in multiple components:
789 o system-counters : provides statistical informations about the
790 global system.
792 o interface : provides configuration state information for each
793 interface.
795 o adjacencies: provides state information about current IS-IS
796 adjacencies.
798 o spf-log: provides information about SPF events on the node.
800 o lsp-log: provides information about LSP events on the node
801 (reception of an LSP or modification of local LSP).
803 o database: provides details on current LSDB.
805 o hostnames: provides information about system-id to hostname
806 mappings.
808 o fast-reroute: provides information about IP FRR.
810 3. RPC Operations
812 The "ietf-isis" module defines two RPC operations:
814 o clear-isis-database: reset the content of a particular IS-IS
815 database and restart database synchronization with the neighbors.
817 o clear-isis-adjacency: restart a particular set of IS-IS
818 adjacencies.
820 rpcs:
821 +---x clear-adjacency
822 | +--ro input
823 | +--ro routing-protocol-instance-name instance-state-ref
824 | +--ro level? level
825 | +--ro interface? string
826 +---x clear-database
827 +--ro input
828 +--ro routing-protocol-instance-name instance-state-ref
829 +--ro level? level
831 4. Notifications
833 The "ietf-isis" module introduces some notifications :
835 database-overload : raised when overload condition is changed.
837 lsp-too-large : raised when the system tries to propagate a too
838 large PDU.
840 corrupted-lsp-detected : raised when the system find that an LSP
841 that was stored in memory has become corrupted.
843 attempt-to-exceed-max-sequence : This notification is sent when
844 the system wraps the 32-bit sequence counter of an LSP.
846 id-len-mismatch : This notification is sent when we receive a PDU
847 with a different value for the System ID length.
849 max-area-addresses-mismatch : This notification is sent when we
850 receive a PDU with a different value for the Maximum Area
851 Addresses.
853 own-lsp-purge : This notification is sent when the system receives
854 a PDU with its own system ID and zero age.
856 sequence-number-skipped : This notification is sent when the
857 system receives a PDU with its own system ID and different
858 contents. The system has to reissue the LSP with a higher
859 sequence number.
861 authentication-type-failure : This notification is sent when the
862 system receives a PDU with the wrong authentication type field.
864 authentication-failure : This notification is sent when the system
865 receives a PDU with the wrong authentication information.
867 version-skew : This notification is sent when the system receives
868 a PDU with a different protocol version number.
870 area-mismatch : This notification is sent when the system receives
871 a Hello PDU from an IS that does not share any area address.
873 rejected-adjacency : This notification is sent when the system
874 receives a Hello PDU from an IS but does not establish an
875 adjacency for some reason.
877 protocols-supported-mismatch : This notification is sent when the
878 system receives a non pseudonode LSP that has no matching protocol
879 supported.
881 lsp-error-detected : This notification is sent when the system
882 receives a LSP with a parse error.
884 adjacency-change : This notification is sent when an IS-IS
885 adjacency moves to Up state or to Down state.
887 lsp-received : This notification is sent when a LSP is received.
889 lsp-generation : This notification is sent when a LSP is
890 regenerated.
892 notifications:
893 +---n database-overload
894 | +--ro instance-name? string
895 | +--ro instance-level? level
896 | +--ro overload? enumeration
897 +---n lsp-too-large
898 | +--ro instance-name? string
899 | +--ro instance-level? level
900 | +--ro interface-name? string
901 | +--ro interface-level? level
902 | +--ro extended-circuit-id? extended-circuit-id
903 | +--ro pdu-size? uint32
904 | +--ro lsp-id? lsp-id
905 +---n corrupted-lsp-detected
906 | +--ro instance-name? string
907 | +--ro instance-level? level
908 | +--ro lsp-id? lsp-id
909 +---n attempt-to-exceed-max-sequence
910 | +--ro instance-name? string
911 | +--ro instance-level? level
912 | +--ro lsp-id? lsp-id
913 +---n id-len-mismatch
914 | +--ro instance-name? string
915 | +--ro instance-level? level
916 | +--ro interface-name? string
917 | +--ro interface-level? level
918 | +--ro extended-circuit-id? extended-circuit-id
919 | +--ro pdu-field-len? uint8
920 | +--ro raw-pdu? binary
921 +---n max-area-addresses-mismatch
922 | +--ro instance-name? string
923 | +--ro instance-level? level
924 | +--ro interface-name? string
925 | +--ro interface-level? level
926 | +--ro extended-circuit-id? extended-circuit-id
927 | +--ro max-area-addresses? uint8
928 | +--ro raw-pdu? binary
929 +---n own-lsp-purge
930 | +--ro instance-name? string
931 | +--ro instance-level? level
932 | +--ro interface-name? string
933 | +--ro interface-level? level
934 | +--ro extended-circuit-id? extended-circuit-id
935 | +--ro lsp-id? lsp-id
936 +---n sequence-number-skipped
937 | +--ro instance-name? string
938 | +--ro instance-level? level
939 | +--ro interface-name? string
940 | +--ro interface-level? level
941 | +--ro extended-circuit-id? extended-circuit-id
942 | +--ro lsp-id? lsp-id
943 +---n authentication-type-failure
944 | +--ro instance-name? string
945 | +--ro instance-level? level
946 | +--ro interface-name? string
947 | +--ro interface-level? level
948 | +--ro extended-circuit-id? extended-circuit-id
949 | +--ro raw-pdu? binary
950 +---n authentication-failure
951 | +--ro instance-name? string
952 | +--ro instance-level? level
953 | +--ro interface-name? string
954 | +--ro interface-level? level
955 | +--ro extended-circuit-id? extended-circuit-id
956 | +--ro raw-pdu? binary
957 +---n version-skew
958 | +--ro instance-name? string
959 | +--ro instance-level? level
960 | +--ro interface-name? string
961 | +--ro interface-level? level
962 | +--ro extended-circuit-id? extended-circuit-id
963 | +--ro protocol-version? uint8
964 | +--ro raw-pdu? binary
965 +---n area-mismatch
966 | +--ro instance-name? string
967 | +--ro instance-level? level
968 | +--ro interface-name? string
969 | +--ro interface-level? level
970 | +--ro extended-circuit-id? extended-circuit-id
971 | +--ro raw-pdu? binary
972 +---n rejected-adjacency
973 | +--ro instance-name? string
974 | +--ro instance-level? level
975 | +--ro interface-name? string
976 | +--ro interface-level? level
977 | +--ro extended-circuit-id? extended-circuit-id
978 | +--ro raw-pdu? binary
979 | +--ro reason? string
980 +---n protocols-supported-mismatch
981 | +--ro instance-name? string
982 | +--ro instance-level? level
983 | +--ro interface-name? string
984 | +--ro interface-level? level
985 | +--ro extended-circuit-id? extended-circuit-id
986 | +--ro raw-pdu? binary
987 | +--ro protocols* uint8
988 +---n lsp-error-detected
989 | +--ro instance-name? string
990 | +--ro instance-level? level
991 | +--ro interface-name? string
992 | +--ro interface-level? level
993 | +--ro extended-circuit-id? extended-circuit-id
994 | +--ro lsp-id? lsp-id
995 | +--ro raw-pdu? binary
996 | +--ro error-offset? uint32
997 | +--ro tlv-type? uint8
998 +---n adjacency-change
999 | +--ro instance-name? string
1000 | +--ro instance-level? level
1001 | +--ro interface-name? string
1002 | +--ro interface-level? level
1003 | +--ro extended-circuit-id? extended-circuit-id
1004 | +--ro neighbor? string
1005 | +--ro neighbor-system-id? system-id
1006 | +--ro level? level
1007 | +--ro state? enumeration
1008 | +--ro reason? string
1009 +---n lsp-received
1010 | +--ro instance-name? string
1011 | +--ro instance-level? level
1012 | +--ro interface-name? string
1013 | +--ro interface-level? level
1014 | +--ro extended-circuit-id? extended-circuit-id
1015 | +--ro lsp-id? lsp-id
1016 | +--ro sequence? uint32
1017 | +--ro received-timestamp? yang:timestamp
1018 | +--ro neighbor-system-id? system-id
1019 +---n lsp-generation
1020 +--ro instance-name? string
1021 +--ro instance-level? level
1022 +--ro lsp-id? lsp-id
1023 +--ro sequence? uint32
1024 +--ro send-timestamp? yang:timestamp
1026 5. Segment Routing
1028 The IS-IS SR YANG module is augmenting IS-IS module for both
1029 configuration and operational states.
1031 The IS-IS SR YANG module requires the base segment routing module
1032 ([I-D.ietf-spring-sr-yang]) to be supported as there is a strong
1033 relationship between those modules.
1035 The figure below describe the overall structure of the isis-sr YANG
1036 module:
1038 module: ietf-isis-sr
1039 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
1040 /isis:isis:
1041 +--rw segment-routing
1042 | +--rw enabled? boolean
1043 | +--rw bindings
1044 | +--rw advertise
1045 | | +--rw policies* string
1046 | +--rw receive? boolean
1047 +--rw protocol-srgb {sr:protocol-srgb}?
1048 +--rw srgb* [lower-bound upper-bound]
1049 +--rw lower-bound uint32
1050 +--rw upper-bound uint32
1052 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
1053 /isis:isis/isis:interfaces/isis:interface:
1054 +--rw segment-routing
1055 +--rw adjacency-sid
1056 +--rw advertise-adj-group-sid* [group-id]
1057 | +--rw group-id uint32
1058 +--rw advertise-protection? enumeration
1059 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
1060 /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute:
1061 +--rw ti-lfa {ti-lfa}?
1062 +--rw enable? boolean
1063 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol
1064 /isis:isis/isis:interfaces/isis:interface/isis:fast-reroute/isis:lfa/isi
1065 s:remote-lfa:
1066 +--rw use-segment-routing-path? boolean {remote-lfa-sr}?
1067 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1068 otocol/isis:isis:
1069 +--ro segment-routing
1070 | +--ro enabled? boolean
1071 | +--ro bindings
1072 | +--ro advertise
1073 | | +--ro policies* string
1074 | +--ro receive? boolean
1075 +--ro protocol-srgb {sr:protocol-srgb}?
1076 +--ro srgb* [lower-bound upper-bound]
1077 +--ro lower-bound uint32
1078 +--ro upper-bound uint32
1079 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1080 otocol/isis:isis/isis:interfaces/isis:interface:
1081 +--ro segment-routing
1082 +--ro adjacency-sid
1083 +--ro advertise-adj-group-sid* [group-id]
1084 | +--ro group-id uint32
1085 +--ro advertise-protection? enumeration
1086 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1087 otocol/isis:isis/isis:interfaces/isis:interface/isis:adjacencies/isis:ad
1088 jacency:
1089 +--ro adjacency-sid* [value]
1090 +--ro af? identityref
1091 +--ro value uint32
1092 +--ro weight? uint8
1093 +--ro protection-requested? boolean
1094 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1095 otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:extended-is-n
1096 eighbor/isis:neighbor:
1097 +--ro sid-list* [value]
1098 +--ro flags? bits
1099 +--ro weight? uint8
1100 +--ro neighbor-id? isis:system-id
1101 +--ro value uint32
1102 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1103 otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbo
1104 r/isis:neighbor:
1105 +--ro sid-list* [value]
1106 +--ro flags? bits
1107 +--ro weight? uint8
1108 +--ro neighbor-id? isis:system-id
1109 +--ro value uint32
1110 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1111 otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:extended-ipv4
1112 -reachability/isis:prefixes:
1113 +--ro sid-list* [value]
1114 +--ro flags? bits
1115 +--ro algorithm? uint8
1116 +--ro value uint32
1117 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1118 otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:mt-extended-i
1119 pv4-reachability/isis:prefixes:
1120 +--ro sid-list* [value]
1121 +--ro flags? bits
1122 +--ro algorithm? uint8
1123 +--ro value uint32
1124 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1125 otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:ipv6-reachabi
1126 lity/isis:prefixes:
1127 +--ro sid-list* [value]
1128 +--ro flags? bits
1129 +--ro algorithm? uint8
1130 +--ro value uint32
1131 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1132 otocol/isis:isis/isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reach
1133 ability/isis:prefixes:
1134 +--ro sid-list* [value]
1135 +--ro flags? bits
1136 +--ro algorithm? uint8
1137 +--ro value uint32
1138 augment /rt:routing-state/rt:control-plane-protocols/rt:control-plane-pr
1139 otocol/isis:isis/isis:database/isis:level-db/isis:lsp:
1140 +--ro segment-routing-bindings* [fec range]
1141 +--ro fec string
1142 +--ro range uint16
1143 +--ro flags? bits
1144 +--ro weight? uint8
1145 +--ro binding
1146 +--ro prefix-sid
1147 | +--ro sid-list* [value]
1148 | +--ro flags? bits
1149 | +--ro algorithm? uint8
1150 | +--ro value uint32
1151 +--ro ero-metric? uint32
1152 +--ro ero
1153 | +--ro address-family? identityref
1154 | +--ro loose? boolean
1155 | +--ro address? string
1156 +--ro backup-ero
1157 | +--ro address-family? identityref
1158 | +--ro loose? boolean
1159 | +--ro address? string
1160 +--ro unnumbered-interface-id-ero
1161 | +--ro router-id? string
1162 | +--ro interface-id? uint32
1163 +--ro backup-unnumbered-interface-id-ero
1164 +--ro router-id? string
1165 +--ro interface-id? uint32
1167 5.1. Segment Routing activation
1169 Activation of segment-routing IS-IS is done by setting the "enable"
1170 leaf to true. This triggers advertisement of segment-routing
1171 extensions based on the configuration parameters that have been setup
1172 using the base segment routing module.
1174 5.2. Advertising mapping server policy
1176 The base segment routing module defines mapping server policies. By
1177 default, IS-IS will not advertise nor receive any mapping server
1178 entry. The IS-IS segment-routing module allows to advertise one or
1179 multiple mapping server policies through the "bindings/advertise/
1180 policies" leaf-list. The "bindings/receive" leaf allows to enable
1181 the reception of mapping server entries.
1183 5.3. IP Fast reroute
1185 IS-IS SR model augments the fast-reroute container under interface.
1186 It brings the ability to activate TI-LFA (topology independent LFA)
1187 and also enhances remote LFA to use segment-routing tunneling instead
1188 of LDP.
1190 6. Interaction with Other YANG Modules
1192 The "isis" configuration container augments the "/rt:routing/
1193 rt:control-plane-protocols/control-plane-protocol" container of the
1194 ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS
1195 specific parameters.
1197 The "isis" module augments "/if:interfaces/if:interface" with ISO
1198 specific parameters.
1200 The "isis" operational state container augments the "/rt:routing-
1201 state/rt:control-plane-protocols/control-plane-protocol" container of
1202 the ietf-routing module by defining IS-IS specific operational
1203 states.
1205 Some IS-IS specific routes attributes are added to route objects of
1206 the ietf-routing module by augmenting "/rt:routing-
1207 state/rt:ribs/rt:rib/rt:routes/rt:route".
1209 The modules defined in this document use some groupings from ietf-
1210 keychain [I-D.ietf-rtgwg-yang-key-chain] and ietf-segment routing
1211 [I-D.ietf-spring-sr-yang].
1213 7. IS-IS YANG Module
1215 file "ietf-isis@2016-10-26.yang"
1217 module ietf-isis {
1218 namespace "urn:ietf:params:xml:ns:yang:ietf-isis";
1220 prefix isis;
1222 import ietf-routing {
1223 prefix "rt";
1224 }
1226 import ietf-inet-types {
1227 prefix inet;
1228 }
1230 import ietf-yang-types {
1231 prefix yang;
1232 }
1234 import ietf-interfaces {
1235 prefix "if";
1236 }
1238 import ietf-key-chain {
1239 prefix "key-chain";
1240 }
1242 organization
1243 "IETF ISIS Working Group";
1245 contact
1246 "WG List: <mailto:isis-wg@ietf.org>
1248 Editor: Stephane Litkowski
1249 <mailto:stephane.litkowski@orange.com>
1251 Derek Yeung
1252 <mailto:derek@arrcus.com>
1253 Acee Lindem
1254 <mailto:acee@cisco.com>
1255 Jeffrey Zhang
1256 <mailto:zzhang@juniper.net>
1257 Ladislav Lhotka
1258 <mailto:llhotka@nic.cz>
1259 Yi Yang
1260 <mailto:yiya@cisco.com>
1262 Dean Bogdanovic
1263 <mailto:deanb@juniper.net>
1264 Kiran Agrahara Sreenivasa
1265 <mailto:kkoushik@brocade.com>
1266 Yingzhen Qu
1267 <mailto:yiqu@cisco.com>
1268 Jeff Tantsura
1269 <mailto:jeff.tantsura@ericsson.com>
1271 ";
1273 description
1274 "The YANG module defines a generic configuration model for
1275 ISIS common across all of the vendor implementations.";
1277 revision 2016-10-26 {
1278 description
1279 "Initial revision.";
1280 reference "draft-ietf-isis-yang-isis-cfg-13";
1281 }
1283 /* Identities */
1285 identity isis {
1286 base rt:routing-protocol;
1287 description "Identity for the ISIS routing protocol.";
1288 }
1290 identity isis-adjacency-change {
1291 description "Identity for the ISIS routing protocol
1292 adjacency state.";
1293 }
1295 identity clear-isis-database {
1296 description "Identity for the ISIS routing protocol
1297 database reset action.";
1298 }
1300 identity clear-isis-adjacency {
1301 description "Identity for the ISIS routing protocol
1302 adjacency reset action.";
1303 }
1305 /* Feature definitions */
1307 feature bfd {
1308 description
1309 "Support of BFD for IS-IS links.";
1310 }
1311 feature key-chain {
1312 description
1313 "Support of keychain for authentication.";
1314 }
1315 feature segment-routing {
1316 description
1317 "Support of segment-routing.";
1318 }
1319 feature node-flag {
1320 description
1321 "Support of node-flag advertisement
1322 as prefix attribute";
1323 }
1324 feature node-tag {
1325 description
1326 "Support of node tag.";
1327 }
1328 feature igp-ldp-sync {
1329 description
1330 "Support of RFC5443.";
1331 }
1332 feature fast-reroute {
1333 description
1334 "Support of IPFRR.";
1335 }
1336 feature nsr {
1337 description
1338 "Support of
1339 Non Stop Routing.";
1340 }
1341 feature lfa {
1342 description
1343 "Support of Loop Free Alternates.";
1344 }
1345 feature remote-lfa {
1346 description
1347 "Support of remote Loop Free Alternates.";
1348 }
1350 feature overload-max-metric {
1351 description
1352 "Support of overload by setting
1353 all links to max metric.";
1354 }
1355 feature prefix-tag {
1356 description
1357 "Add 32bit tag to prefixes";
1358 }
1359 feature prefix-tag64 {
1360 description
1361 "Add 64bit tag to prefixes";
1362 }
1363 feature reference-bandwidth {
1364 description
1365 "Use a reference bandwidth to compute metric.";
1366 }
1367 feature ipv4-router-id {
1368 description
1369 "Support of IPv4 router ID configuration under ISIS.";
1370 }
1372 feature ipv6-router-id {
1373 description
1374 "Support of IPv6 router ID configuration under ISIS.";
1375 }
1377 feature multi-topology {
1378 description
1379 "Multitopology routing support.";
1380 }
1381 feature nlpid-control {
1382 description
1383 "This feature controls the advertisement
1384 of support NLPID within ISIS configuration.";
1385 }
1386 feature graceful-restart {
1387 description
1388 "Graceful restart support as per RFC5306.";
1389 }
1391 feature lsp-refresh {
1392 description
1393 "Configuration of LSP refresh interval.";
1394 }
1396 feature maximum-area-addresses {
1397 description
1398 "Support of maximum-area-addresses config.";
1399 }
1401 feature admin-control {
1402 description
1403 "Control administrative state of ISIS.";
1405 }
1407 /* Type definitions */
1409 typedef instance-state-ref {
1410 type leafref {
1411 path "/rt:routing-state/"
1412 +"rt:control-plane-protocols/rt:control-plane-protocol/rt:name";
1413 }
1414 description
1415 "This type is used for leaves that reference state data of
1416 an ISIS protocol instance.";
1417 }
1419 typedef admin-state {
1420 type enumeration {
1421 enum "up" {
1422 description
1423 "Up state";
1424 }
1425 enum "down" {
1426 description
1427 "Down state";
1428 }
1429 }
1430 description
1431 "Administrative state of a component.";
1432 }
1433 typedef oper-state {
1434 type enumeration {
1435 enum "up" {
1436 description
1437 "Up state";
1438 }
1439 enum "down" {
1440 description
1441 "Down state";
1442 }
1443 }
1444 description
1445 "Operational state of a component.";
1446 }
1447 typedef circuit-id {
1448 type uint8;
1449 description
1450 "This type defines the circuit ID
1451 associated with an interface.";
1453 }
1455 typedef extended-circuit-id {
1456 type uint32;
1457 description
1458 "This type defines the extended circuit ID
1459 associated with an interface.";
1460 }
1462 typedef interface-type {
1463 type enumeration {
1464 enum broadcast {
1465 description "Broadcast interface type.
1466 Would result in DIS election.";
1467 }
1468 enum point-to-point {
1469 description
1470 "Point to point interface type.";
1471 }
1472 }
1473 description
1474 "This type defines the type of adjacency
1475 to be established on the interface.
1476 This is affecting the type of hello
1477 message that would be used.";
1479 }
1481 typedef level {
1482 type enumeration {
1483 enum "level-1" {
1484 description
1485 "This enum describes L1 only capability.";
1486 }
1487 enum "level-2" {
1488 description
1489 "This enum describes L2 only capability.";
1490 }
1491 enum "level-all" {
1492 description
1493 "This enum describes both levels capability.";
1494 }
1495 }
1496 default "level-all";
1497 description
1498 "This type defines ISIS level of an object.";
1500 }
1501 typedef level-number {
1502 type uint8 {
1503 range "1 .. 2";
1504 }
1505 description
1506 "This type defines a current ISIS level.";
1507 }
1509 typedef lsp-id {
1510 type string {
1511 pattern
1512 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
1513 +'{4}\.[0-9][0-9]-[0-9][0-9]';
1514 }
1515 description
1516 "This type defines ISIS LSP ID using pattern,
1517 system id looks like : 0143.0438.AeF0.02-01";
1518 }
1520 typedef area-address {
1521 type string {
1522 pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}';
1523 }
1524 description
1525 "This type defines the area address.";
1526 }
1528 typedef snpa {
1529 type string {
1530 length "0 .. 20";
1531 }
1532 description
1533 "This type defines Subnetwork Point of Attachement format.";
1535 }
1537 typedef system-id {
1538 type string {
1539 pattern
1540 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}';
1541 }
1542 description
1543 "This type defines ISIS system id using pattern,
1544 system id looks like : 0143.0438.AeF0";
1545 }
1547 typedef wide-metric {
1548 type uint32 {
1549 range "0 .. 16777215";
1550 }
1551 description
1552 "This type defines wide style format
1553 of ISIS metric.";
1554 }
1556 typedef std-metric {
1557 type uint8 {
1558 range "0 .. 63";
1559 }
1560 description
1561 "This type defines old style format
1562 of ISIS metric.";
1563 }
1565 typedef mesh-group-state {
1566 type enumeration {
1567 enum "meshInactive" {
1568 description
1569 "Interface is not part of a mesh group.";
1570 }
1571 enum "meshSet" {
1572 description
1573 "Interface is part of a mesh group.";
1574 }
1575 enum "meshBlocked" {
1576 description
1577 "LSPs must not be flooded over that interface.";
1578 }
1579 }
1580 description
1581 "This type describes meshgroup state of an interface";
1582 }
1584 /* Grouping definitions */
1586 grouping admin-control {
1588 leaf enable {
1589 if-feature admin-control;
1590 type boolean;
1591 default true;
1592 description
1593 "Control the administrative
1594 state.";
1595 }
1597 description
1598 "Grouping for admin control.";
1599 }
1601 grouping adjacency-state {
1602 container adjacencies {
1603 list adjacency {
1604 leaf neighbor-systype {
1605 type level;
1606 description
1607 "Type of neighboring system";
1609 }
1610 leaf neighbor-sysid {
1611 type system-id;
1612 description
1613 "The system-id of the neighbor";
1615 }
1616 leaf neighbor-extended-circuit-id {
1617 type extended-circuit-id;
1618 description
1619 "Circuit ID of the neighbor";
1620 }
1621 leaf neighbor-snpa {
1622 type snpa;
1623 description
1624 "SNPA of the neighbor";
1625 }
1626 leaf usage {
1627 type level;
1628 description
1629 "How is the adjacency used ?
1630 On a p2p link this might be level 1 and 2,
1631 but on a LAN, the usage will be level 1
1632 between peers at L1 or level 2 between
1633 peers at L2.";
1634 }
1635 leaf hold-timer {
1636 type uint16;
1637 description
1638 "The holding time in seconds for this
1639 adjacency. This value is based on
1640 received hello PDUs and the elapsed
1641 time since receipt.";
1642 }
1643 leaf neighbor-priority {
1644 type uint8 {
1645 range "0 .. 127";
1646 }
1647 description
1648 "Priority of the neighboring IS for becoming
1649 the DIS.";
1650 }
1651 leaf lastuptime {
1652 type yang:timestamp;
1653 description
1654 "When the adjacency most recently entered
1655 state 'up', measured in hundredths of a
1656 second since the last reinitialization of
1657 the network management subsystem.
1658 The value is 0 if the adjacency has never
1659 been in state 'up'.";
1661 }
1662 leaf state {
1663 type enumeration {
1664 enum "Up" {
1665 description
1666 "This state describes that
1667 adjacency is established.";
1668 }
1669 enum "Down" {
1670 description
1671 "This state describes that
1672 adjacency is NOT established.";
1673 }
1674 enum "Init" {
1675 description
1676 "This state describes that
1677 adjacency is establishing.";
1678 }
1679 enum "Failed" {
1680 description
1681 "This state describes that
1682 adjacency is failed.";
1683 }
1684 }
1685 description
1686 "This leaf describes the state of the
1687 interface.";
1688 }
1690 description
1691 "List of operational adjacencies.";
1692 }
1693 description
1694 "This container lists the adjacencies of
1695 the local node.";
1696 }
1697 description
1698 "Adjacency state";
1699 }
1701 grouping fast-reroute-global-state {
1702 container protected-routes {
1703 list af-stats {
1704 key "af prefix alternate";
1706 leaf af {
1707 type identityref {
1708 base rt:address-family;
1709 }
1710 description
1711 "Address-family";
1712 }
1713 leaf prefix {
1714 type string;
1715 description
1716 "Protected prefix.";
1717 }
1718 leaf alternate {
1719 type string;
1720 description
1721 "Alternate nexthop for the prefix.";
1722 }
1723 leaf alternate-type {
1724 type enumeration {
1725 enum equalcost {
1726 description
1727 "ECMP alternate.";
1728 }
1729 enum lfa {
1730 description
1731 "LFA alternate.";
1732 }
1733 enum remote-lfa {
1734 description
1735 "Remote LFA alternate.";
1736 }
1737 enum tunnel {
1738 description
1739 "Tunnel based alternate
1740 (like RSVP-TE or GRE).";
1741 }
1742 enum ti-lfa {
1743 description
1744 "TI LFA alternate.";
1745 }
1746 enum mrt {
1747 description
1748 "MRT alternate.";
1749 }
1750 enum other {
1751 description
1752 "Unknown alternate type.";
1753 }
1754 }
1755 description
1756 "Type of alternate.";
1757 }
1758 leaf best {
1759 type boolean;
1760 description
1761 "describes if the alternate is the best one.";
1762 }
1763 leaf non-best-reason {
1764 type string;
1765 description
1766 "Information field to describe why the alternate
1767 is not best.";
1768 }
1769 leaf protection-available {
1770 type bits {
1771 bit nodeprotect {
1772 position 0;
1773 description
1774 "Node protection available.";
1775 }
1776 bit linkprotect {
1777 position 1;
1778 description
1779 "Link protection available.";
1780 }
1781 bit srlgprotect {
1782 position 2;
1783 description
1784 "SRLG protection available.";
1785 }
1786 bit downstreamprotect {
1787 position 3;
1788 description
1789 "Downstream protection available.";
1790 }
1791 bit other {
1792 position 4;
1793 description
1794 "Other protection available.";
1795 }
1796 }
1797 description
1798 "Describes protection provided by the alternate.";
1799 }
1800 leaf alternate-metric1 {
1801 type uint32;
1802 description
1803 "Metric from PLR to destination
1804 through the alternate path.";
1805 }
1806 leaf alternate-metric2 {
1807 type uint32;
1808 description
1809 "Metric from PLR to the alternate node";
1810 }
1811 leaf alternate-metric3 {
1812 type uint32;
1813 description
1814 "Metric from alternate node to the destination";
1815 }
1817 description
1818 "Per AF statistics.";
1819 }
1820 description
1821 "List of prefixes that are protected.";
1822 }
1824 container nonprotected-routes {
1825 list af-stats {
1826 key "af prefix";
1828 leaf af {
1829 type identityref {
1830 base rt:address-family;
1831 }
1832 description
1833 "Address-family";
1834 }
1835 leaf prefix {
1836 type string;
1837 description
1838 "Protected prefix.";
1839 }
1840 description
1841 "Per AF statistics.";
1842 }
1843 description
1844 "List of prefixes that are not protected.";
1845 }
1847 list protection-statistics {
1848 key frr-protection-method;
1850 leaf frr-protection-method {
1851 type string;
1852 description
1853 "Protection method used.";
1854 }
1855 list af-stats {
1856 key af;
1858 leaf af {
1859 type identityref {
1860 base rt:address-family;
1861 }
1862 description
1863 "Address-family";
1864 }
1865 leaf total-routes {
1866 type uint32;
1867 description
1868 "Total prefixes.";
1869 }
1870 leaf unprotected-routes {
1871 type uint32;
1872 description
1873 "Total of prefixes who are
1874 not protected.";
1875 }
1876 leaf protected-routes {
1877 type uint32;
1878 description
1879 "Total of prefixes who are
1880 protected.";
1881 }
1882 leaf linkprotected-routes {
1883 type uint32;
1884 description
1885 "Total of prefixes who are
1886 link protected.";
1887 }
1888 leaf nodeprotected-routes {
1889 type uint32;
1890 description
1891 "Total of prefixes who are
1892 node protected.";
1893 }
1894 description
1895 "Per AF statistics.";
1896 }
1898 description
1899 "Global protection statistics.";
1900 }
1901 description
1902 "IPFRR states.";
1903 }
1905 grouping notification-instance-hdr {
1906 description
1907 "This group describes common instance specific
1908 data for notifications.";
1909 leaf instance-name {
1910 type string;
1911 description
1912 "Describes the name of the ISIS instance.";
1913 }
1914 leaf instance-level {
1915 type level;
1916 description
1917 "Describes the ISIS level of the instance.";
1918 }
1919 }
1921 grouping notification-interface-hdr {
1922 description
1923 "This group describes common interface specific
1924 data for notifications.";
1926 leaf interface-name {
1927 type string;
1928 description
1929 "Describes the name of the ISIS interface.";
1930 }
1931 leaf interface-level {
1932 type level;
1933 description
1934 "Describes the ISIS level of the interface.";
1935 }
1936 leaf extended-circuit-id {
1937 type extended-circuit-id;
1938 description
1939 "Describes the extended circuit-id of the interface.";
1940 }
1941 }
1943 grouping route-content {
1944 description
1945 "This group add isis-specific route properties.";
1946 leaf metric {
1947 type uint32;
1948 description
1949 "This leaf describes ISIS metric of a route.";
1950 }
1951 leaf-list tag {
1952 type uint64;
1953 description
1954 "This leaf describes list of tags associated
1955 with the route. The leaf describes both
1956 32bits and 64bits tags.";
1957 }
1958 leaf route-type {
1959 type enumeration {
1960 enum l2-up-internal {
1961 description "Level 2 internal route
1962 and not leaked to a lower level";
1963 }
1964 enum l1-up-internal {
1965 description "Level 1 internal route
1966 and not leaked to a lower level";
1967 }
1968 enum l2-up-external {
1969 description "Level 2 external route
1970 and not leaked to a lower level";
1971 }
1972 enum l1-up-external {
1973 description "Level 1 external route
1974 and not leaked to a lower level";
1975 }
1976 enum l2-down-internal {
1977 description "Level 2 internal route
1978 and leaked to a lower level";
1979 }
1980 enum l1-down-internal {
1981 description "Level 1 internal route
1982 and leaked to a lower level";
1983 }
1984 enum l2-down-external {
1985 description "Level 2 external route
1986 and leaked to a lower level";
1987 }
1988 enum l1-down-external {
1989 description "Level 1 external route
1990 and leaked to a lower level";
1991 }
1992 }
1993 description
1994 "This leaf describes the type of ISIS route.";
1995 }
1996 }
1998 grouping fast-reroute-global-cfg {
1999 description
2000 "This group defines global
2001 configuration of IPFRR.";
2003 container lfa {
2004 if-feature lfa;
2005 description
2006 "This container may be
2007 augmented with global parameters
2008 for LFA.
2009 Creating the container has no effect on
2010 LFA activation.";
2011 }
2013 }
2015 grouping fast-reroute-if-cfg {
2016 description
2017 "This group defines interface
2018 configuration of IPFRR.";
2020 container lfa {
2021 if-feature lfa;
2022 uses lfa-if-cfg;
2023 container level-1 {
2024 uses lfa-if-cfg;
2025 description
2026 "LFA level 21 config";
2027 }
2028 container level-2 {
2029 uses lfa-if-cfg;
2030 description
2031 "LFA level 2 config";
2032 }
2033 description
2034 "LFA config";
2035 }
2037 }
2039 grouping prefix-reachability-attributes {
2040 description
2041 "This group defines extended reachability attributes of an
2042 IPv4 or IPv6 prefix.";
2044 leaf external-prefix-flag {
2045 type boolean;
2046 description
2047 "External prefix flag.";
2048 }
2049 leaf readvertisement-flag {
2050 type boolean;
2051 description
2052 "Readvertisement flag.";
2053 }
2054 leaf node-flag {
2055 type boolean;
2056 description
2057 "Node flag.";
2058 }
2059 }
2061 grouping prefix-ipv4-source-router-id {
2062 description
2063 "This group defines the IPv4 source router ID of
2064 a prefix advertisement.";
2066 leaf ipv4-source-router-id {
2067 type inet:ipv4-address;
2068 description
2069 "IPv4 Source router ID address.";
2070 }
2072 }
2073 grouping prefix-ipv6-source-router-id {
2074 description
2075 "This group defines the IPv6 source router ID of
2076 a prefix advertisement.";
2078 leaf ipv6-source-router-id {
2079 type inet:ipv6-address;
2080 description
2081 "IPv6 Source router ID address.";
2082 }
2084 }
2086 grouping prefix-attributes-extension {
2087 description
2088 "Prefix extended attributes.";
2090 uses prefix-reachability-attributes;
2091 uses prefix-ipv4-source-router-id;
2092 uses prefix-ipv6-source-router-id;
2093 }
2095 grouping prefix-ipv4-std {
2096 description
2097 "This group defines attributes of an
2098 IPv4 standard prefix.";
2099 leaf up-down {
2100 type boolean;
2101 description
2102 "This leaf expresses the value of up/down bit.";
2103 }
2104 leaf i-e {
2105 type boolean;
2106 description
2107 "This leaf expresses the value of I/E bit.";
2108 }
2109 leaf ip-prefix {
2110 type inet:ipv4-address;
2111 description
2112 "This leaf describes the IPv4 prefix";
2113 }
2114 leaf prefix-len {
2115 type uint8;
2116 description
2117 "This leaf describes the IPv4 prefix len in bits";
2118 }
2119 leaf default-metric {
2120 type std-metric;
2121 description
2122 "This leaf describes the ISIS default metric value";
2123 }
2124 container delay-metric {
2125 leaf metric {
2126 type std-metric;
2127 description
2128 "This leaf describes the ISIS delay metric value";
2129 }
2130 leaf supported {
2131 type boolean;
2132 default "false";
2133 description
2134 "This leaf describes if the metric is supported.";
2135 }
2137 description
2138 "This container defines the ISIS delay metric.";
2139 }
2140 container expense-metric {
2141 leaf metric {
2142 type std-metric;
2143 description
2144 "This leaf describes the ISIS expense metric value";
2145 }
2146 leaf supported {
2147 type boolean;
2148 default "false";
2149 description
2150 "This leaf describes if the metric is supported.";
2151 }
2152 description
2153 "This container defines the ISIS expense metric.";
2154 }
2155 container error-metric {
2156 leaf metric {
2157 type std-metric;
2158 description
2159 "This leaf describes the ISIS error metric value";
2160 }
2161 leaf supported {
2162 type boolean;
2163 default "false";
2164 description
2165 "This leaf describes if the metric is supported.";
2166 }
2168 description
2169 "This container defines the ISIS error metric.";
2170 }
2171 }
2173 grouping prefix-ipv4-extended {
2174 description
2175 "This group defines attributes of an
2176 IPv4 extended prefix.";
2177 leaf up-down {
2178 type boolean;
2179 description
2180 "This leaf expresses the value of up/down bit.";
2181 }
2182 leaf ip-prefix {
2183 type inet:ipv4-address;
2184 description
2185 "This leaf describes the IPv4 prefix";
2186 }
2187 leaf prefix-len {
2188 type uint8;
2189 description
2190 "This leaf describes the IPv4 prefix len in bits";
2191 }
2193 leaf metric {
2194 type wide-metric;
2195 description
2196 "This leaf describes the ISIS metric value";
2197 }
2198 leaf-list tag {
2199 type uint32;
2200 description
2201 "This leaf describes a list of tags associated with
2202 the prefix.";
2203 }
2204 leaf-list tag64 {
2205 type uint64;
2206 description
2207 "This leaf describes a list of 64-bit tags associated with
2208 the prefix.";
2209 }
2210 uses prefix-attributes-extension;
2212 }
2214 grouping prefix-ipv6-extended {
2215 description
2216 "This group defines attributes of an
2217 IPv6 prefix.";
2218 leaf up-down {
2219 type boolean;
2220 description
2221 "This leaf expresses the value of up/down bit.";
2222 }
2223 leaf ip-prefix {
2224 type inet:ipv6-address;
2225 description
2226 "This leaf describes the IPv6 prefix";
2227 }
2228 leaf prefix-len {
2229 type uint8;
2230 description
2231 "This leaf describes the IPv4 prefix len in bits";
2232 }
2234 leaf metric {
2235 type wide-metric;
2236 description
2237 "This leaf describes the ISIS metric value";
2238 }
2239 leaf-list tag {
2240 type uint32;
2241 description
2242 "This leaf describes a list of tags associated with
2243 the prefix.";
2244 }
2245 leaf-list tag64 {
2246 type uint64;
2247 description
2248 "This leaf describes a list of 64-bit tags associated with
2249 the prefix.";
2250 }
2252 uses prefix-attributes-extension;
2253 }
2255 grouping neighbor-extended {
2256 description
2257 "This group defines attributes of an
2258 ISIS extended neighbor.";
2259 leaf neighbor-id {
2260 type system-id;
2261 description
2262 "This leaf describes the system-id of the neighbor.";
2263 }
2264 leaf metric {
2265 type wide-metric;
2266 description
2267 "This leaf describes the ISIS metric value";
2268 }
2270 }
2272 grouping neighbor {
2273 description
2274 "This group defines attributes of an
2275 ISIS standard neighbor.";
2276 leaf neighbor-id {
2277 type system-id;
2278 description
2279 "This leaf describes the system-id of the neighbor.";
2280 }
2281 leaf i-e {
2282 type boolean;
2283 description
2284 "This leaf expresses the value of I/E bit.";
2285 }
2286 leaf default-metric {
2287 type std-metric;
2288 description
2289 "This leaf describes the ISIS default metric value";
2290 }
2291 container delay-metric {
2292 leaf metric {
2293 type std-metric;
2294 description
2295 "This leaf describes the ISIS delay metric value";
2296 }
2297 leaf supported {
2298 type boolean;
2299 default "false";
2300 description
2301 "This leaf describes if the metric is supported.";
2302 }
2303 description
2304 "This container defines the ISIS delay metric.";
2305 }
2306 container expense-metric {
2307 leaf metric {
2308 type std-metric;
2309 description
2310 "This leaf describes the ISIS delay expense value";
2311 }
2312 leaf supported {
2313 type boolean;
2314 default "false";
2315 description
2316 "This leaf describes if the metric is supported.";
2317 }
2318 description
2319 "This container defines the ISIS expense metric.";
2320 }
2321 container error-metric {
2322 leaf metric {
2323 type std-metric;
2324 description
2325 "This leaf describes the ISIS error metric value";
2326 }
2327 leaf supported {
2328 type boolean;
2329 default "false";
2330 description
2331 "This leaf describes if the metric is supported.";
2332 }
2333 description
2334 "This container defines the ISIS error metric.";
2335 }
2336 }
2338 grouping database {
2339 description
2340 "This group defines attributes of an
2341 ISIS database (Link State DB).";
2342 leaf lsp-id {
2343 type lsp-id;
2344 description
2345 "This leaf describes the LSP ID of the LSP.";
2346 }
2347 leaf checksum {
2348 type uint16;
2349 description
2350 "This leaf describes the checksum of the LSP.";
2351 }
2352 leaf remaining-lifetime {
2353 type uint16;
2354 units "seconds";
2355 description
2356 "This leaf describes the remaining lifetime
2357 in seconds before the LSP expiration.";
2358 }
2359 leaf sequence {
2360 type uint32;
2361 description
2362 "This leaf describes the sequence number of the LSP.";
2363 }
2364 leaf attributes {
2365 type bits {
2366 bit PARTITIONNED {
2367 description
2368 "If set, the originator supports partition
2369 repair.";
2370 }
2371 bit ATTACHED-ERROR {
2372 description
2373 "If set, the originator is attached to
2374 another area using the referred metric.";
2375 }
2376 bit ATTACHED-EXPENSE {
2377 description
2378 "If set, the originator is attached to
2379 another area using the referred metric.";
2380 }
2381 bit ATTACHED-DELAY {
2382 description
2383 "If set, the originator is attached to
2384 another area using the referred metric.";
2385 }
2386 bit ATTACHED-DEFAULT {
2387 description
2388 "If set, the originator is attached to
2389 another area using the referred metric.";
2390 }
2391 bit OVERLOAD {
2392 description
2393 "If set, the originator is overloaded,
2394 and must be avoided in path calculation.";
2395 }
2396 }
2397 description
2398 "This leaf describes attributes of the LSP.";
2399 }
2400 container is-neighbor {
2401 list neighbor {
2402 uses neighbor;
2403 description
2404 "List of neighbors.";
2405 }
2406 description
2407 "This leaf describes list of ISIS neighbors.
2408 ISIS reference is TLV 2.";
2409 }
2411 container authentication {
2412 leaf authentication-type {
2413 type string;
2414 description
2415 "This leaf describes the authentication type
2416 to be used.";
2417 }
2418 leaf authentication-key {
2419 type string;
2420 description
2421 "This leaf describes the authentication key
2422 to be used. For security reason, the
2423 authentication key MUST NOT be presented
2424 in plaintext format. Authors recommends
2425 to use MD5 hash to present the authentication-key.";
2426 }
2427 description "This container describes authentication
2428 information of the node. ISIS reference is TLV 10.";
2429 }
2431 container extended-is-neighbor {
2432 list neighbor {
2433 uses neighbor-extended;
2434 description
2435 "List of neighbors.";
2436 }
2437 description
2438 "This container describes list of ISIS extended
2439 neighbors.
2440 ISIS reference is TLV 22.";
2441 }
2443 container ipv4-internal-reachability {
2444 list prefixes {
2445 uses prefix-ipv4-std;
2446 description
2447 "List of prefixes.";
2449 }
2450 description
2451 "This container describes list of IPv4 internal
2452 reachability information.
2453 ISIS reference is TLV 128.";
2454 }
2456 leaf-list protocol-supported {
2457 type uint8;
2458 description
2459 "This leaf describes the list of
2460 supported protocols.
2461 ISIS reference is TLV 129.";
2462 }
2464 container ipv4-external-reachability {
2465 list prefixes {
2466 uses prefix-ipv4-std;
2467 description
2468 "List of prefixes.";
2469 }
2470 description
2471 "This container describes list of IPv4 external
2472 reachability information.
2473 ISIS reference is TLV 130.";
2474 }
2476 leaf-list ipv4-addresses {
2477 type inet:ipv4-address;
2478 description
2479 "This leaf describes the IPv4 addresses of the node.
2480 ISIS reference is TLV 132.";
2481 }
2483 leaf ipv4-te-routerid {
2485 type inet:ipv4-address;
2486 description
2487 "This leaf describes the IPv4 Traffic Engineering
2488 router ID of the node.
2489 ISIS reference is TLV 134.";
2490 }
2492 container extended-ipv4-reachability {
2494 list prefixes {
2495 uses prefix-ipv4-extended;
2496 description
2497 "List of prefixes.";
2498 }
2499 description
2500 "This container describes list of IPv4 extended
2501 reachability information.
2502 ISIS reference is TLV 135.";
2503 }
2505 leaf dynamic-hostname {
2506 type string;
2508 description
2509 "This leaf describes the name of the node.
2510 ISIS reference is TLV 137.";
2511 }
2513 leaf ipv6-te-routerid {
2514 type inet:ipv6-address;
2515 description
2516 "This leaf describes the IPv6 Traffic Engineering
2517 router ID of the node.
2518 ISIS reference is TLV 140.";
2519 }
2521 container mt-is-neighbor {
2522 list neighbor {
2523 leaf MT-ID {
2524 type uint16 {
2525 range "0 .. 4095";
2526 }
2527 description
2528 "This leaf defines the identifier
2529 of a topology.";
2530 }
2531 uses neighbor-extended;
2532 description
2533 "List of neighbors.";
2534 }
2535 description
2536 "This container describes list of ISIS multi-topology
2537 neighbors.
2538 ISIS reference is TLV 223.";
2539 }
2541 container mt-entries {
2542 list topology {
2543 leaf MT-ID {
2544 type uint16 {
2545 range "0 .. 4095";
2546 }
2547 description
2548 "This leaf defines the identifier
2549 of a topology.";
2550 }
2552 leaf attributes {
2553 type bits {
2554 bit OVERLOAD {
2555 description
2556 "If set, the originator is overloaded,
2557 and must be avoided in path
2558 calculation.";
2559 }
2560 bit ATTACHED {
2561 description
2562 "If set, the originator is attached to
2563 another area using the referred metric.";
2564 }
2565 }
2566 description
2567 "This leaf describes attributes of the LSP
2568 for the associated topology.";
2569 }
2570 description
2571 "List of topologies supported.";
2572 }
2573 description
2574 "This container describes the topology supported.
2575 ISIS reference is TLV 229.";
2576 }
2578 leaf-list ipv6-addresses {
2579 type inet:ipv6-address;
2580 description
2581 "This leaf describes the IPv6 interface
2582 addresses of the node.
2583 ISIS reference is TLV 232.";
2584 }
2586 container mt-extended-ipv4-reachability {
2587 list prefixes {
2588 leaf MT-ID {
2589 type uint16 {
2590 range "0 .. 4095";
2591 }
2592 description
2593 "This leaf defines the identifier
2594 of a topology.";
2595 }
2596 uses prefix-ipv4-extended;
2597 description
2598 "List of prefixes.";
2600 }
2601 description
2602 "This container describes list of IPv4
2603 reachability information in multi-topology
2604 environment.
2605 ISIS reference is TLV 235.";
2606 }
2608 container mt-ipv6-reachability {
2609 list prefixes {
2610 leaf MT-ID {
2611 type uint16 {
2612 range "0 .. 4095";
2613 }
2614 description
2615 "This leaf defines the identifier
2616 of a topology.";
2617 }
2618 uses prefix-ipv6-extended;
2619 description
2620 "List of prefixes.";
2621 }
2622 description
2623 "This container describes list of IPv6
2624 reachability information in multi-topology
2625 environment.
2626 ISIS reference is TLV 237.";
2627 }
2629 container ipv6-reachability {
2630 list prefixes {
2631 uses prefix-ipv6-extended;
2632 description
2633 "List of prefixes.";
2634 }
2635 description
2636 "This container describes list of IPv6
2637 reachability information.
2638 ISIS reference is TLV 236.";
2639 }
2641 list router-capabilities {
2642 leaf flags {
2643 type bits {
2644 bit flooding {
2645 position 0;
2646 description
2647 "If the S bit is set(1),
2648 the IS-IS Router CAPABILITY TLV
2649 MUST be flooded across the entire routing domain.
2650 If the S bit is
2651 not set(0), the TLV MUST NOT be leaked between levels.
2652 This bit MUST NOT be altered during the TLV leaking.";
2653 }
2654 bit down {
2655 position 1;
2656 description
2657 "When the IS-IS Router CAPABILITY TLV is
2658 leaked from level-2 to level-1, the D bit
2659 MUST be set. Otherwise, this bit MUST
2660 be clear. IS-IS Router capability TLVs
2661 with the D bit set MUST NOT
2662 be leaked from level-1 to level-2.
2663 This is to prevent TLV looping.
2664 ";
2665 }
2666 }
2667 description
2668 "Flags associated with router capability.";
2669 }
2670 container node-tags {
2671 if-feature node-tag;
2672 list node-tag {
2673 leaf tag {
2674 type uint32;
2675 description
2676 "Node tag value.";
2677 }
2678 description
2679 "List of tags.";
2680 }
2681 description
2682 "Container for node tags.";
2683 }
2685 leaf binary {
2686 type binary;
2687 description
2688 "This leaf describes the capability of the node.
2689 Format is binary according to the protocol encoding.";
2690 }
2691 description
2692 "This container describes the capabilities of the node.
2693 This container may be extended with detailed
2694 information.
2695 ISIS reference is TLV 242.";
2696 }
2697 }
2699 grouping isis-node-tag-cfg {
2700 description
2701 "ISIS node tag config.";
2702 container node-tags {
2703 if-feature node-tag;
2704 list node-tag {
2705 key tag;
2706 leaf tag {
2707 type uint32;
2708 description
2709 "Node tag value.";
2710 }
2711 description
2712 "List of tags.";
2713 }
2714 description
2715 "Container for node tags.";
2716 }
2717 }
2719 grouping authentication-global-cfg {
2720 choice authentication-type {
2721 case key-chain {
2722 if-feature key-chain;
2723 leaf key-chain {
2724 type key-chain:key-chain-ref;
2725 description
2726 "Reference to a key-chain.";
2727 }
2728 }
2729 case password {
2730 leaf key {
2731 type string;
2732 description
2733 "This leaf describes the
2734 authentication key.";
2735 }
2736 uses key-chain:crypto-algorithm-types;
2737 }
2738 description
2739 "Choice of authentication.";
2740 }
2741 description
2742 "Grouping for global auth config.";
2743 }
2745 grouping metric-type-global-cfg {
2746 leaf value {
2747 type enumeration {
2748 enum wide-only {
2749 description
2750 "Advertise new metric style only
2751 (RFC5305)";
2752 }
2753 enum old-only {
2754 description
2755 "Advertise old metric style only
2756 (RFC1195)";
2757 }
2758 enum both {
2759 description "Advertise both metric
2760 styles";
2761 }
2762 }
2763 description
2764 "This leaf describes the type of metric
2765 to be generated.
2766 Wide-only means only new metric style
2767 is generated,
2768 old-only means that only old style metric
2769 is generated,
2770 and both means that both are advertised.
2771 This leaf is only affecting IPv4 metrics.";
2772 }
2773 description
2774 "Grouping for global metric style config.";
2775 }
2777 grouping default-metric-global-cfg {
2778 leaf value {
2779 type wide-metric;
2780 default "10";
2781 description
2782 "Value of the metric";
2783 }
2784 description
2785 "Grouping for global default metric config.";
2786 }
2788 grouping overload-global-cfg {
2789 leaf status {
2790 type boolean;
2791 description
2792 "This leaf defines the overload status.";
2793 }
2794 description
2795 "Grouping for overload bit config.";
2796 }
2797 grouping overload-max-metric-global-cfg {
2798 leaf timeout {
2799 type uint16;
2800 units "seconds";
2801 description
2802 "This leaf defines the timeout in seconds
2803 of the overload condition.";
2804 }
2805 description
2806 "Grouping for overload-max-metric config.";
2807 }
2809 grouping route-preference-global-cfg {
2810 choice granularity {
2811 case detail {
2812 leaf internal {
2813 type uint8;
2814 description
2815 "This leaf defines the protocol
2816 preference for internal routes.";
2817 }
2818 leaf external {
2819 type uint8;
2820 description
2821 "This leaf defines the protocol
2822 preference for external routes.";
2823 }
2824 }
2825 case coarse {
2826 leaf default {
2827 type uint8;
2828 description
2829 "This leaf defines the protocol
2830 preference for all ISIS routes.";
2831 }
2832 }
2833 description
2834 "Choice for implementation of route preference.";
2835 }
2836 description
2837 "This grouping defines how route preference is configured.";
2838 }
2840 grouping hello-authentication-cfg {
2841 choice authentication-type {
2842 case key-chain {
2843 if-feature key-chain;
2844 leaf key-chain {
2845 type key-chain:key-chain-ref;
2846 description
2847 "Reference to a key-chain.";
2848 }
2849 }
2850 case password {
2851 leaf key {
2852 type string;
2853 description
2854 "This leaf describes the
2855 authentication key.";
2856 }
2857 uses key-chain:crypto-algorithm-types;
2858 }
2859 description
2860 "Choice of authentication.";
2861 }
2862 description
2863 "Grouping for hello authentication.";
2864 }
2866 grouping hello-interval-cfg {
2867 leaf value {
2868 type uint16 {
2869 range "1..65535";
2870 }
2872 units "seconds";
2873 default 10;
2874 description
2875 "This leaf defines the interval of
2876 hello messages.";
2877 }
2879 description
2880 "Interval between
2881 hello messages.";
2882 }
2884 grouping hello-multiplier-cfg {
2885 leaf value {
2886 type uint16;
2887 description
2888 "This leaf defines the number of
2889 hello failed to be received before
2890 declaring the adjacency down.";
2891 }
2892 description
2893 "This grouping defines the number of
2894 hello failed to be received before
2895 declaring the adjacency down.";
2896 }
2898 grouping priority-cfg {
2900 leaf value {
2901 type uint8 {
2902 range "0 .. 127";
2903 }
2904 default 64;
2905 description
2906 "This leaf describes the priority of
2907 the interface
2908 for DIS election.";
2909 }
2911 description
2912 "This grouping leaf describes the
2913 priority of
2914 the interface
2915 for DIS election.";
2916 }
2918 grouping metric-cfg {
2919 leaf value {
2920 type wide-metric;
2921 description
2922 "Metric value.";
2923 }
2924 description
2925 "Grouping for interface metric";
2926 }
2927 grouping lfa-if-cfg {
2928 leaf candidate-disabled {
2929 type boolean;
2930 default false;
2931 description
2932 "Prevent the interface to be used as backup.";
2933 }
2934 leaf enable {
2935 type boolean;
2936 description
2937 "Activates LFA.
2938 This model assumes activation
2939 of per-prefix LFA.";
2940 }
2942 container remote-lfa {
2943 if-feature remote-lfa;
2944 leaf enable {
2945 type boolean;
2946 description
2947 "Activates rLFA.";
2948 }
2949 description
2950 "remote LFA configuration.";
2951 }
2952 description
2953 "Grouping for LFA
2954 interface configuration";
2955 }
2956 grouping isis-global-cfg {
2957 description
2958 "Defines the ISIS global configuration.";
2960 uses admin-control;
2962 leaf level-type {
2963 type level;
2964 default "level-all";
2965 description
2966 "This leaf describes the type of ISIS node.
2967 A node can be level-1-only, level-2-only
2968 or level-1-2.
2969 ";
2970 }
2972 leaf system-id {
2973 type system-id;
2974 description
2975 "This leaf defines the system-id of the node.";
2976 }
2978 leaf maximum-area-addresses {
2979 if-feature maximum-area-addresses;
2980 type uint8;
2981 default 3;
2982 description
2983 "Defines the maximum areas supported.";
2984 }
2986 leaf-list area-address {
2987 type area-address;
2988 description
2989 "List of areas supported by the
2990 protocol instance.";
2991 }
2993 container mpls {
2994 leaf ipv4-router-id {
2995 if-feature ipv4-router-id;
2996 type inet:ipv4-address;
2997 description
2998 "Router ID value that would be used in
2999 TLV 134.";
3000 }
3001 leaf ipv6-router-id {
3002 if-feature ipv6-router-id;
3003 type inet:ipv6-address;
3004 description
3005 "Router ID value that would be used in
3006 TLV 140.";
3007 }
3008 container igp-ldp-sync {
3009 if-feature igp-ldp-sync;
3010 description
3011 "This container may be augmented
3012 with global parameters for igp-ldp-sync.";
3014 }
3015 description
3016 "This container handles mpls config.";
3017 }
3018 leaf reference-bandwidth {
3019 if-feature reference-bandwidth;
3020 type uint32;
3021 units "bps";
3022 description
3023 "This leaf defines the bandwidth for calculating
3024 metric.";
3025 }
3027 leaf lsp-mtu {
3028 type uint16;
3029 units "bytes";
3030 default 1492;
3031 description
3032 "This leaf describes the maximum size of a
3033 LSP PDU in bytes.";
3034 }
3035 leaf lsp-lifetime {
3036 type uint16 {
3037 range "1..65535";
3038 }
3039 units "seconds";
3040 description
3041 "This leaf describes the lifetime of the router
3042 LSP in seconds.";
3043 }
3044 leaf lsp-refresh {
3045 if-feature lsp-refresh;
3046 type uint16 {
3047 range "1..65535";
3048 }
3049 units "seconds";
3050 description
3051 "This leaf describes the refresh interval of the
3052 router LSP in seconds.";
3053 }
3055 container graceful-restart {
3056 if-feature graceful-restart;
3057 leaf enable {
3058 type boolean;
3059 description
3060 "Control enabling the feature.";
3061 }
3062 description
3063 "This container activates graceful restart.";
3064 }
3066 container nsr {
3067 if-feature nsr;
3068 description
3069 "Non-Stop Routing (NSR) config state.";
3070 leaf enable {
3071 type boolean;
3072 description
3073 "Enable/Disable NSR.";
3074 }
3075 }
3077 uses isis-node-tag-cfg;
3079 container authentication {
3080 uses authentication-global-cfg;
3082 container level-1 {
3083 uses authentication-global-cfg;
3084 description "level-1 specific cfg";
3085 }
3086 container level-2 {
3087 uses authentication-global-cfg;
3088 description "level-2 specific cfg";
3089 }
3090 description "authentication global cfg.
3091 It covers both LSPs and SNPs.";
3092 }
3094 container metric-type {
3095 uses metric-type-global-cfg;
3097 container level-1 {
3098 uses metric-type-global-cfg;
3099 description "level-1 specific cfg";
3100 }
3101 container level-2 {
3102 uses metric-type-global-cfg;
3103 description "level-2 specific cfg";
3104 }
3105 description "Metric style global cfg.";
3106 }
3108 container default-metric {
3109 uses default-metric-global-cfg;
3111 container level-1 {
3112 uses default-metric-global-cfg;
3113 description "level-1 specific cfg";
3114 }
3115 container level-2 {
3116 uses default-metric-global-cfg;
3117 description "level-2 specific cfg";
3118 }
3119 description "Default metric global cfg.";
3120 }
3122 container afs {
3123 if-feature nlpid-control;
3124 list af {
3125 key af;
3126 leaf af {
3127 type identityref {
3128 base rt:address-family;
3129 }
3130 description
3131 "Address-family";
3132 }
3134 leaf enable {
3135 type boolean;
3136 description
3137 "Describes the activation state of the
3138 AF.";
3139 }
3140 description
3141 "This list permits activation
3142 of new address families.";
3144 }
3145 description
3146 "Container for address-families";
3147 }
3149 container preference {
3150 uses route-preference-global-cfg;
3151 description
3152 "This container defines the protocol preference.";
3153 }
3155 container overload {
3156 uses overload-global-cfg;
3157 description
3158 "This container describes if the router is
3159 set to overload state.";
3160 }
3162 container overload-max-metric {
3163 if-feature overload-max-metric;
3164 uses overload-max-metric-global-cfg;
3166 description
3167 "This container describes if the router is
3168 set to overload state using max-metric
3169 advertisement.";
3170 }
3172 }
3174 grouping isis-global-topologies-cfg {
3175 description
3176 "Per topology config.";
3178 container default-metric {
3179 uses default-metric-global-cfg;
3181 container level-1 {
3182 uses default-metric-global-cfg;
3183 description "level-1 specific cfg";
3184 }
3185 container level-2 {
3186 uses default-metric-global-cfg;
3187 description "level-2 specific cfg";
3188 }
3189 description "Default metric per
3190 topology cfg.";
3191 }
3193 uses isis-node-tag-cfg;
3194 }
3196 grouping isis-if-cfg {
3197 description
3198 "Grouping for interface cfg.";
3200 leaf level-type {
3201 type level;
3202 default "level-all";
3203 description
3204 "This leaf defines the associated ISIS
3205 level of the interface.";
3206 }
3207 leaf lsp-pacing-interval {
3208 type uint16;
3209 units "milliseconds";
3210 default 33;
3211 description
3212 "This leaf defines the interval between
3213 LSP transmissions in milli-seconds";
3214 }
3215 leaf lsp-retransmit-interval {
3216 type uint16;
3217 units "seconds";
3218 description
3219 "This leaf defines the interval between
3220 retransmission of LSP";
3221 }
3222 leaf passive {
3223 type boolean;
3224 default "false";
3225 description
3226 "This leaf defines if interface is in
3227 passive mode (ISIS not running,
3228 but network is advertised).";
3229 }
3230 leaf csnp-interval {
3231 type uint16 {
3232 range "1..65535";
3233 }
3234 units "seconds";
3235 default 10;
3236 description
3237 "This leaf defines the interval of CSNP
3238 messages.";
3239 }
3241 container hello-padding {
3242 leaf enable {
3243 type boolean;
3244 default "true";
3245 description
3246 "Status of Hello-padding activation.
3247 By default, the implementation shall
3248 pad HELLOs.";
3249 }
3251 description
3252 "This container handles ISIS hello padding
3253 configuration.";
3254 }
3256 leaf mesh-group-enable {
3257 type mesh-group-state;
3258 description
3259 "Describes the mesh group state of
3260 the interface.";
3261 }
3263 leaf mesh-group {
3264 when "../mesh-group-enable = 'meshSet'" {
3265 description
3266 "Only valid when mesh-group-enable
3267 equals meshSet";
3268 }
3269 type uint8;
3270 description
3271 "Describes the mesh group ID of
3272 the interface.";
3273 }
3275 leaf interface-type {
3276 type interface-type;
3277 description
3278 "This leaf defines the type of adjacency
3279 to be established on the interface.
3280 This is affecting the type of hello
3281 message that would be used.";
3282 }
3284 uses admin-control;
3286 leaf-list tag {
3287 if-feature prefix-tag;
3289 type uint32;
3290 description
3291 "This leaf defines list of tags associated
3292 with the interface.";
3293 }
3294 leaf-list tag64 {
3295 if-feature prefix-tag64;
3297 type uint64;
3298 description
3299 "This leaf defines list of 64bits tags
3300 associated with the interface.";
3301 }
3303 leaf node-flag {
3304 if-feature node-flag;
3305 type boolean;
3306 default false;
3307 description
3308 "Set prefix as a node
3309 representative prefix.";
3311 }
3313 container hello-authentication {
3314 uses hello-authentication-cfg;
3316 container level-1 {
3317 uses hello-authentication-cfg;
3318 description "level-1 specific cfg";
3319 }
3320 container level-2 {
3321 uses hello-authentication-cfg;
3322 description "level-2 specific cfg";
3323 }
3324 description "Authentication type
3325 to be used in hello messages.";
3326 }
3328 container hello-interval {
3329 uses hello-interval-cfg;
3331 container level-1 {
3332 uses hello-interval-cfg;
3333 description "level-1 specific cfg";
3334 }
3335 container level-2 {
3336 uses hello-interval-cfg;
3337 description "level-2 specific cfg";
3338 }
3339 description "Interval between
3340 hello messages.";
3341 }
3343 container hello-multiplier {
3344 uses hello-multiplier-cfg;
3346 container level-1 {
3347 uses hello-multiplier-cfg;
3348 description "level-1 specific cfg";
3349 }
3350 container level-2 {
3351 uses hello-multiplier-cfg;
3352 description "level-2 specific cfg";
3353 }
3354 description "Hello multiplier
3355 configuration.";
3356 }
3358 container priority {
3359 must '../interface-type = "broadcast"' {
3360 error-message
3361 "Priority only applies to broadcast
3362 interfaces.";
3363 description
3364 "Check for broadcast interface.";
3365 }
3366 uses priority-cfg;
3368 container level-1 {
3369 uses priority-cfg;
3370 description "level-1 specific cfg";
3371 }
3372 container level-2 {
3373 uses priority-cfg;
3374 description "level-2 specific cfg";
3375 }
3376 description "Priority for DIS election.";
3377 }
3379 container metric {
3380 uses metric-cfg;
3382 container level-1 {
3383 uses metric-cfg;
3384 description "level-1 specific cfg";
3385 }
3386 container level-2 {
3387 uses metric-cfg;
3388 description "level-2 specific cfg";
3389 }
3390 description "Metric configuration.";
3391 }
3393 container bfd {
3394 if-feature bfd;
3395 leaf enable {
3396 type boolean;
3397 default false;
3398 description "
3399 Enables BFD on the interface
3400 ";
3401 }
3402 description
3403 "BFD configuration.";
3404 }
3406 container afs {
3407 if-feature nlpid-control;
3408 list af {
3409 key af;
3411 leaf af {
3412 type identityref {
3413 base rt:address-family;
3414 }
3415 description
3416 "Address-family";
3417 }
3419 description
3420 "List of AFs.";
3421 }
3422 description
3423 "Container for address-families";
3424 }
3426 container mpls {
3427 container igp-ldp-sync {
3428 if-feature igp-ldp-sync;
3429 leaf enable {
3430 type boolean;
3431 description
3432 "Enable/disable IGP LDP sync.";
3434 }
3435 description
3436 "IGP-LDP sync configuration.";
3437 }
3438 description
3439 "Container for MPLS specific configuration
3440 for ISIS.";
3441 }
3443 }
3445 grouping isis-if-topologies-cfg {
3446 description
3447 "ISIS interface topology cfg.";
3448 container metric {
3449 uses metric-cfg;
3451 container level-1 {
3452 uses metric-cfg;
3453 description "level-1 specific cfg";
3454 }
3455 container level-2 {
3456 uses metric-cfg;
3457 description "level-2 specific cfg";
3458 }
3459 description "Metric configuration.";
3460 }
3461 }
3463 /* */
3465 augment "/rt:routing-state/"
3466 +"rt:ribs/rt:rib/rt:routes/rt:route" {
3467 when "rt:source-protocol = 'isis:isis'" {
3468 description "ISIS-specific route attributes.";
3469 }
3470 uses route-content;
3471 description
3472 "This augments route object in RIB with ISIS-specific
3473 attributes.";
3474 }
3476 augment "/if:interfaces/if:interface"
3477 {
3478 leaf clns-mtu {
3479 type uint16;
3480 description
3481 "Defines CLNS MTU of the interface.";
3482 }
3483 description "ISO interface config.";
3484 }
3486 augment "/rt:routing/rt:control-plane-protocols/"
3487 +"rt:control-plane-protocol" {
3488 when "rt:type = 'isis:isis'" {
3489 description
3490 "This augment is only valid when routing protocol
3491 instance type is isis.";
3492 }
3493 description
3494 "This augments a routing protocol instance with ISIS
3495 specific parameters.";
3496 container isis {
3498 must "count(area-address) > 0" {
3499 error-message "At least one area-address
3500 must be configured.";
3501 description
3502 "Enforce configuration of at least one area.";
3503 }
3505 uses isis-global-cfg;
3507 container fast-reroute {
3508 if-feature fast-reroute;
3509 uses fast-reroute-global-cfg;
3510 description
3511 "IPFRR.";
3512 }
3513 container topologies {
3514 if-feature multi-topology;
3515 list topology {
3517 key "name";
3519 leaf enable {
3520 type boolean;
3521 description
3522 "Control enabling of topologies";
3523 }
3524 leaf name {
3525 type leafref {
3526 path "../../../../../../rt:ribs/rt:rib/rt:name";
3527 }
3529 description "RIB";
3530 }
3532 uses isis-global-topologies-cfg;
3533 container fast-reroute {
3534 if-feature fast-reroute;
3535 uses fast-reroute-global-cfg;
3536 description
3537 "IPFRR.";
3538 }
3540 description
3541 "List of topologies";
3542 }
3543 description
3544 "Container for multi-topology";
3545 }
3547 container interfaces {
3548 list interface {
3549 key "name";
3550 leaf name {
3551 type if:interface-ref;
3553 description
3554 "Reference to the interface within
3555 the routing-instance.";
3556 }
3558 uses isis-if-cfg;
3559 container fast-reroute {
3560 if-feature fast-reroute;
3561 uses fast-reroute-if-cfg;
3562 description
3563 "IPFRR.";
3564 }
3565 container topologies {
3566 if-feature multi-topology;
3567 list topology {
3568 key name;
3570 leaf name {
3571 type leafref {
3572 path "../../../../../../../../"+
3573 "rt:ribs/rt:rib/rt:name";
3574 }
3576 description
3577 "Name of RIB.";
3578 }
3579 container fast-reroute {
3580 if-feature fast-reroute;
3581 uses fast-reroute-if-cfg;
3582 description
3583 "IPFRR.";
3584 }
3585 uses isis-if-topologies-cfg;
3586 description
3587 "List of topologies.";
3588 }
3589 description
3590 "Container for multi-topology";
3591 }
3593 description
3594 "List of ISIS interfaces.";
3595 }
3596 description
3597 "This container defines ISIS interface specific
3598 configuration objects.";
3599 }
3601 description
3602 "This container defines ISIS specific configuration
3603 objects.";
3604 }
3605 }
3607 augment "/rt:routing-state/"
3608 +"rt:control-plane-protocols/rt:control-plane-protocol" {
3609 when "rt:type = 'isis:isis'" {
3610 description
3611 "This augment is only valid when routing protocol
3612 instance type is isis.";
3613 }
3614 description
3615 "This augments routing protocol instance states with ISIS
3616 specific parameters.";
3618 container isis {
3619 config false;
3620 uses isis-global-cfg;
3621 container fast-reroute {
3622 if-feature fast-reroute;
3623 uses fast-reroute-global-cfg;
3624 uses fast-reroute-global-state;
3625 description
3626 "IPFRR states.";
3627 }
3629 list topologies {
3630 key name;
3632 leaf name {
3633 type leafref {
3634 path "../../../../../"
3635 +"rt:ribs/rt:rib/rt:name";
3636 }
3638 description
3639 "Name of RIB.";
3640 }
3641 container fast-route {
3642 if-feature fast-reroute;
3643 uses fast-reroute-global-cfg;
3644 uses fast-reroute-global-state;
3645 description
3646 "IPFRR states.";
3647 }
3648 description
3649 "List of topologies.";
3650 }
3652 container system-counters {
3653 list level {
3654 key level;
3656 leaf level {
3657 type level-number;
3658 description
3659 "This leaf describes the ISIS level.";
3660 }
3661 leaf corrupted-lsps {
3662 type uint32;
3663 description
3664 "Number of corrupted in-memory LSPs detected.
3665 LSPs received from the wire with a bad
3666 checksum are silently dropped and not counted.
3667 LSPs received from the wire with parse errors
3668 are counted by lsp-errors.";
3669 }
3670 leaf authentication-type-fails {
3671 type uint32;
3672 description
3673 "Number of authentication type mismatches.";
3674 }
3675 leaf authentication-fails {
3676 type uint32;
3677 description
3678 "Number of authentication key failures.";
3679 }
3680 leaf database-overload {
3681 type uint32;
3682 description
3683 "Number of times the database has become
3684 overloaded.";
3685 }
3686 leaf own-lsp-purge {
3687 type uint32;
3688 description
3689 "Number of times a zero-aged copy of the
3690 system's own LSP is received from some
3691 other node.";
3692 }
3693 leaf manual-address-drop-from-area {
3694 type uint32;
3695 description
3696 "Number of times a manual address
3697 has been dropped from the area.";
3698 }
3699 leaf max-sequence {
3700 type uint32;
3701 description
3702 "Number of times the system has attempted
3703 to exceed the maximum sequence number.";
3704 }
3705 leaf sequence-number-skipped {
3706 type uint32;
3707 description
3708 "Number of times a sequence number skip has
3709 occured.";
3710 }
3711 leaf id-len-mismatch {
3712 type uint32;
3713 description
3714 "Number of times a PDU is received with
3715 a different value for ID field length
3716 from that of the receiving system.";
3717 }
3718 leaf partition-changes {
3719 type uint32;
3720 description
3721 "Number of partition changes detected.";
3722 }
3723 leaf lsp-errors {
3724 type uint32;
3725 description
3726 "Number of LSPs with errors we have
3727 received.";
3728 }
3729 leaf spf-runs {
3730 type uint32;
3731 description
3732 "Number of times we ran SPF at this level.";
3733 }
3734 description
3735 "List of supported levels.";
3736 }
3737 description
3738 "The container defines a list of counters
3739 for the IS.";
3740 }
3742 container interfaces {
3743 list interface {
3744 key interface;
3746 leaf interface {
3747 type string;
3748 description
3749 "This leaf describes the name
3750 of the interface.";
3751 }
3752 uses isis-if-cfg;
3753 container fast-reroute {
3754 if-feature fast-reroute;
3755 uses fast-reroute-if-cfg;
3756 description
3757 "IPFRR.";
3758 }
3759 uses adjacency-state;
3761 list topologies {
3762 key name;
3763 leaf name {
3764 type leafref {
3765 path "../../../../../"
3766 +"../../rt:ribs/rt:rib/rt:name";
3767 }
3769 description
3770 "Name of RIB.";
3771 }
3772 uses isis-if-topologies-cfg;
3773 container fast-reroute {
3774 if-feature fast-reroute;
3775 uses fast-reroute-if-cfg;
3776 description
3777 "IPFRR.";
3778 }
3779 uses adjacency-state;
3781 description
3782 "List of topologies.";
3783 }
3785 container event-counters {
3786 leaf adjacency-changes {
3787 type uint32;
3788 description
3789 "The number of times an adjacency state
3790 change has occured on this interface.";
3791 }
3792 leaf adjacency-number {
3793 type uint32;
3794 description
3795 "The number of adjacencies on this
3796 interface.";
3797 }
3798 leaf init-fails {
3799 type uint32;
3800 description
3801 "The number of times initialization of
3802 this interface has failed. This counts
3803 events such as PPP NCP failures.
3804 Failures to form an adjacency are counted
3805 by adjacency-rejects.";
3806 }
3807 leaf adjacency-rejects {
3808 type uint32;
3809 description
3810 "The number of times an adjacency has been
3811 rejected on this interface.";
3812 }
3813 leaf id-len-mismatch {
3814 type uint32;
3815 description
3816 "The number of times an IS-IS PDU with an ID
3817 field length different from that for this
3818 system has been received on this interface.";
3819 }
3820 leaf max-area-addresses-mismatch {
3821 type uint32;
3822 description
3823 "The number of times an IS-IS PDU with
3824 according max area address field
3825 differs from that for
3826 this system has been received on this
3827 interface.";
3828 }
3829 leaf authentication-type-fails {
3830 type uint32;
3831 description
3832 "Number of authentication type mismatches.";
3833 }
3834 leaf authentication-fails {
3835 type uint32;
3836 description
3837 "Number of authentication key failures.";
3838 }
3839 leaf lan-dis-changes {
3840 type uint32;
3841 description
3842 "The number of times the DIS has changed
3843 on this interface at this level.
3844 If the interface type is point to point,
3845 the count is zero.";
3846 }
3847 description
3848 "Provides protocol event counters.";
3849 }
3850 container packet-counters {
3851 list level {
3852 key level;
3854 leaf level {
3855 type level-number;
3856 description
3857 "This leaf describes the ISIS level.";
3858 }
3860 container iih {
3861 leaf in {
3862 type uint32;
3863 description
3864 "Received PDUs.";
3865 }
3866 leaf out {
3867 type uint32;
3868 description
3869 "Sent PDUs.";
3870 }
3871 description
3872 "The number of IIH PDUs received/sent.";
3873 }
3874 container ish {
3875 leaf in {
3876 type uint32;
3877 description
3878 "Received PDUs.";
3879 }
3880 leaf out {
3881 type uint32;
3882 description
3883 "Sent PDUs.";
3884 }
3885 description
3886 "The number of ISH PDUs received/sent.";
3887 }
3888 container esh {
3889 leaf in {
3890 type uint32;
3891 description
3892 "Received PDUs.";
3893 }
3894 leaf out {
3895 type uint32;
3896 description
3897 "Sent PDUs.";
3898 }
3899 description
3900 "The number of ESH PDUs received/sent.";
3901 }
3902 container lsp {
3903 leaf in {
3904 type uint32;
3905 description
3906 "Received PDUs.";
3907 }
3908 leaf out {
3909 type uint32;
3910 description
3911 "Sent PDUs.";
3912 }
3913 description
3914 "The number of LSP PDUs received/sent.";
3915 }
3916 container psnp {
3917 leaf in {
3918 type uint32;
3919 description
3920 "Received PDUs.";
3921 }
3922 leaf out {
3923 type uint32;
3924 description
3925 "Sent PDUs.";
3926 }
3927 description
3928 "The number of PSNP PDUs received/sent.";
3929 }
3930 container csnp {
3931 leaf in {
3932 type uint32;
3933 description
3934 "Received PDUs.";
3935 }
3936 leaf out {
3937 type uint32;
3938 description
3939 "Sent PDUs.";
3940 }
3941 description
3942 "The number of CSNP PDUs received/sent.";
3943 }
3944 container unknown {
3945 leaf in {
3946 type uint32;
3947 description
3948 "Received PDUs.";
3949 }
3950 leaf out {
3951 type uint32;
3952 description
3953 "Sent PDUs.";
3954 }
3955 description
3956 "The number of unknown PDUs received/sent.";
3957 }
3958 description
3959 "List of supported levels.";
3960 }
3961 description
3962 "Provides packet counters per level.";
3963 }
3964 description
3965 "List of interfaces.";
3966 }
3967 description
3968 "The container defines operational parameters
3969 of interfaces.";
3970 }
3972 container spf-log {
3973 list event {
3974 key id;
3976 leaf id {
3977 type uint32;
3978 description
3979 "This leaf defines the event identifier.
3980 This is a purely internal value.";
3981 }
3982 leaf spf-type {
3983 type enumeration {
3984 enum full {
3985 description
3986 "Computation done is a Full SPF.";
3987 }
3988 enum incremental {
3989 description
3990 "Computation done is an
3991 incremental SPF.";
3992 }
3993 enum route-only {
3994 description
3995 "Computation done is a
3996 reachability computation
3997 only.";
3998 }
4000 }
4001 description
4002 "This leaf describes the type of computation
4003 used.";
4004 }
4005 leaf level {
4006 type level-number;
4007 description
4008 "This leaf describes the level affected by the
4009 the computation.";
4010 }
4011 leaf spf-delay {
4012 type uint32;
4013 units "milliseconds";
4014 description
4015 "This leaf describes the SPF delay that
4016 was used for this event.";
4017 }
4018 leaf schedule-timestamp {
4019 type yang:timestamp;
4020 description
4021 "This leaf describes the timestamp
4022 when the computation was scheduled.";
4023 }
4024 leaf start-timestamp {
4025 type yang:timestamp;
4026 description
4027 "This leaf describes the timestamp
4028 when the computation was started.";
4029 }
4030 leaf end-timestamp {
4031 type yang:timestamp;
4032 description
4033 "This leaf describes the timestamp
4034 when the computation was ended.";
4035 }
4036 list trigger-lsp {
4037 key "lsp";
4038 leaf lsp {
4039 type lsp-id;
4040 description
4041 "This leaf describes the LSPID
4042 of the LSP.";
4043 }
4044 leaf sequence {
4045 type uint32;
4046 description
4047 "This leaf describes the sequence
4048 number of the LSP.";
4049 }
4050 description
4051 "This leaf describes list of LSPs
4052 that triggered the computation.";
4053 }
4054 description
4055 "List of computation events.";
4056 }
4058 description
4059 "This container lists the SPF computation events.";
4060 }
4061 container lsp-log {
4062 list event {
4063 key id;
4065 leaf id {
4066 type uint32;
4067 description
4068 "This leaf defines the event identifier.
4069 This is a purely internal value.";
4070 }
4071 leaf level {
4072 type level-number;
4073 description
4074 "This leaf describes the level affected by the
4075 the computation.";
4076 }
4077 container lsp {
4078 leaf lsp {
4080 type lsp-id;
4081 description
4082 "This leaf describes the LSPID
4083 of the LSP.";
4084 }
4085 leaf sequence {
4086 type uint32;
4087 description
4088 "This leaf describes the sequence
4089 number of the LSP.";
4090 }
4091 description
4092 "This container describes the received LSP
4093 , in case of local LSP update the local
4094 LSP ID is referenced.";
4095 }
4096 leaf received-timestamp {
4097 type yang:timestamp;
4099 description
4100 "This leaf describes the timestamp
4101 when the LSP was received. In case of
4102 local LSP update, the timestamp refers
4103 to the local LSP update time.";
4104 }
4106 leaf change {
4107 type bits {
4108 bit refresh {
4109 position 0;
4110 description
4111 "Refresh LSP, nothing has changed.";
4112 }
4113 bit link-down {
4114 position 1;
4115 description
4116 "One or more links are down.";
4117 }
4118 bit link-up {
4119 position 2;
4120 description
4121 "One or more links are up.";
4122 }
4123 bit link-metric-change {
4124 position 3;
4125 description
4126 "One or more links experienced
4127 a metric change.";
4128 }
4129 bit link-other-change {
4130 position 4;
4131 description
4132 "One or more links experienced
4133 a change that does not affect state
4134 or metric.";
4135 }
4136 bit prefix-down {
4137 position 5;
4138 description
4139 "One or more links are down.";
4140 }
4141 bit prefix-up {
4142 position 6;
4143 description
4144 "One or more prefixes are up.";
4145 }
4146 bit prefix-metric-change {
4147 position 7;
4148 description
4149 "One or more prefixes experienced
4150 a metric change.";
4151 }
4152 bit prefix-other-change {
4153 position 8;
4154 description
4155 "One or more prefixes experienced
4156 a change that does not affect state
4157 or metric.";
4158 }
4159 bit other-change {
4160 position 9;
4161 description
4162 "One or more component changed that
4163 is not a prefix or link.";
4164 }
4165 }
4166 description
4167 "This leaf describes the type of change
4168 in the LSP.";
4169 }
4171 description
4172 "List of LSP events.";
4173 }
4175 description
4176 "This container lists the LSP reception events.
4177 Local LSP modification are also contained in the
4178 list.";
4179 }
4180 container database {
4181 list level-db {
4182 key level;
4184 leaf level {
4185 type level-number;
4186 description
4187 "Current level number";
4188 }
4189 list lsp {
4190 key lsp-id;
4191 uses database;
4192 description
4193 "List of LSPs in LSDB.";
4194 }
4196 description
4197 "This container describes the list of LSPs
4198 in the level x database.";
4199 }
4201 description
4202 "This container describes ISIS Link State
4203 databases.";
4204 }
4205 container hostnames {
4207 list hostname {
4208 key system-id;
4209 leaf system-id {
4210 type system-id;
4211 description
4212 "This leaf describes the system-id
4213 associated with the hostname.";
4214 }
4215 leaf hostname {
4217 type string;
4218 description
4219 "This leaf describes the hostname
4220 associated with the system ID.";
4221 }
4222 description
4223 "List of system-id/hostname associations";
4224 }
4226 description
4227 "This container describes the list
4228 of binding between system-id and
4229 hostnames.";
4230 }
4232 description
4233 "This container defines various ISIS states objects.";
4234 }
4235 }
4237 /* RPC methods */
4238 rpc clear-adjacency {
4239 description
4240 "This RPC request clears a particular
4241 set of ISIS adjacencies. If the operation
4242 fails for ISIS internal reason, then
4243 error-tag and error-app-tag should be set
4244 to a meaningful value.";
4245 input {
4247 leaf routing-protocol-instance-name {
4248 type instance-state-ref;
4249 mandatory "true";
4250 description
4251 "Name of the ISIS protocol instance whose ISIS
4252 information is being queried.
4254 If the ISIS instance with name equal to the
4255 value of this parameter doesn't exist, then this
4256 operation SHALL fail with error-tag 'data-missing'
4257 and error-app-tag
4258 'routing-protocol-instance-not-found'.";
4259 }
4260 leaf level {
4261 type level;
4262 description
4263 "ISIS level of the adjacency to be cleared.
4264 If ISIS level is level-1-2, both level 1 and level 2
4265 adjacencies would be cleared.
4267 If the value provided is different from the one
4268 authorized in the enum type, then this
4269 operation SHALL fail with error-tag 'data-missing'
4270 and error-app-tag
4271 'bad-isis-level'.
4272 ";
4273 }
4274 leaf interface {
4275 type string;
4276 description
4277 "Name of the ISIS interface.
4279 If the ISIS interface with name equal to the
4280 value of this parameter doesn't exist, then this
4281 operation SHALL fail with error-tag 'data-missing'
4282 and error-app-tag
4283 'isis-interface-not-found'.";
4284 }
4285 }
4287 }
4289 rpc clear-database {
4290 description
4291 "This RPC request clears a particular
4292 ISIS database. If the operation
4293 fails for ISIS internal reason, then
4294 error-tag and error-app-tag should be set
4295 to a meaningful value.";
4296 input {
4298 leaf routing-protocol-instance-name {
4299 type instance-state-ref;
4300 mandatory "true";
4301 description
4302 "Name of the ISIS protocol instance whose ISIS
4303 information is being queried.
4305 If the ISIS instance with name equal to the
4306 value of this parameter doesn't exist, then this
4307 operation SHALL fail with error-tag 'data-missing'
4308 and error-app-tag
4309 'routing-protocol-instance-not-found'.";
4310 }
4311 leaf level {
4312 type level;
4313 description
4314 "ISIS level of the adjacency to be cleared.
4315 If ISIS level is level-1-2, both level 1 and level 2
4316 adjacencies would be cleared.
4318 If the value provided is different from the one
4319 authorized in the enum type, then this
4320 operation SHALL fail with error-tag 'data-missing'
4321 and error-app-tag
4322 'bad-isis-level'.
4323 ";
4324 }
4325 }
4327 }
4329 /* Notifications */
4331 notification database-overload {
4332 uses notification-instance-hdr;
4333 leaf overload {
4334 type enumeration {
4335 enum "off" {
4336 description
4337 "The system has left overload condition.";
4338 }
4339 enum "on" {
4340 description
4341 "The system is in overload condition.";
4342 }
4344 }
4345 description
4346 "Describes the new overload state of the instance.";
4347 }
4348 description
4349 "This notification is sent when an ISIS instance
4350 overload condition changes.";
4351 }
4353 notification lsp-too-large {
4354 uses notification-instance-hdr;
4355 uses notification-interface-hdr;
4357 leaf pdu-size {
4358 type uint32;
4359 description
4360 "Size of the PDU";
4361 }
4362 leaf lsp-id {
4363 type lsp-id;
4364 description
4365 "LSP ID.";
4366 }
4367 description
4368 "This notification is sent when we attempt
4369 to propagate an LSP that is larger than the
4370 dataLinkBlockSize for the circuit.
4371 The notification generation must be throttled
4372 with at least a 5 second gap.
4373 ";
4374 }
4376 notification corrupted-lsp-detected {
4377 uses notification-instance-hdr;
4378 leaf lsp-id {
4379 type lsp-id;
4380 description
4381 "LSP ID.";
4382 }
4383 description
4384 "This notification is sent when we find
4385 that an LSP that was stored in memory has
4386 become corrupted.
4387 ";
4388 }
4390 notification attempt-to-exceed-max-sequence {
4391 uses notification-instance-hdr;
4392 leaf lsp-id {
4393 type lsp-id;
4394 description
4395 "LSP ID.";
4396 }
4397 description
4398 "This notification is sent when the system
4399 wraps the 32-bit sequence counter of an LSP.
4400 ";
4401 }
4403 notification id-len-mismatch {
4404 uses notification-instance-hdr;
4405 uses notification-interface-hdr;
4407 leaf pdu-field-len {
4408 type uint8;
4409 description
4410 "Size of the ID length in the received PDU";
4411 }
4412 leaf raw-pdu {
4413 type binary;
4414 description
4415 "Received raw PDU.";
4416 }
4417 description
4418 "This notification is sent when we receive a PDU
4419 with a different value for the System ID length.
4420 The notification generation must be throttled
4421 with at least a 5 second gap.
4422 ";
4423 }
4425 notification max-area-addresses-mismatch {
4426 uses notification-instance-hdr;
4427 uses notification-interface-hdr;
4428 leaf max-area-addresses {
4429 type uint8;
4430 description
4431 "Received number of supported areas";
4432 }
4433 leaf raw-pdu {
4434 type binary;
4435 description
4436 "Received raw PDU.";
4437 }
4438 description
4439 "This notification is sent when we receive a PDU
4440 with a different value for the Maximum Area Addresses.
4441 The notification generation must be throttled
4442 with at least a 5 second gap.
4443 ";
4444 }
4446 notification own-lsp-purge {
4447 uses notification-instance-hdr;
4448 uses notification-interface-hdr;
4449 leaf lsp-id {
4450 type lsp-id;
4451 description
4452 "LSP ID.";
4453 }
4454 description
4455 "This notification is sent when the system
4456 receives a PDU with its own system ID and zero age.
4457 ";
4458 }
4460 notification sequence-number-skipped {
4461 uses notification-instance-hdr;
4462 uses notification-interface-hdr;
4463 leaf lsp-id {
4464 type lsp-id;
4465 description
4466 "LSP ID.";
4467 }
4468 description
4469 "This notification is sent when the system
4470 receives a PDU with its own system ID and
4471 different contents. The system has to reissue
4472 the LSP with a higher sequence number.
4473 ";
4474 }
4475 notification authentication-type-failure {
4476 uses notification-instance-hdr;
4477 uses notification-interface-hdr;
4478 leaf raw-pdu {
4479 type binary;
4480 description
4481 "Received raw PDU.";
4482 }
4483 description
4484 "This notification is sent when the system
4485 receives a PDU with the wrong authentication type
4486 field.
4487 The notification generation must be throttled with
4488 at least a 5 second gap.
4489 ";
4490 }
4492 notification authentication-failure {
4493 uses notification-instance-hdr;
4494 uses notification-interface-hdr;
4495 leaf raw-pdu {
4496 type binary;
4497 description
4498 "Received raw PDU.";
4499 }
4500 description
4501 "This notification is sent when the system
4502 receives a PDU with the wrong authentication
4503 information.
4504 The notification generation must be throttled with
4505 at least a 5 second gap.
4506 ";
4507 }
4509 notification version-skew {
4510 uses notification-instance-hdr;
4511 uses notification-interface-hdr;
4512 leaf protocol-version {
4513 type uint8;
4514 description
4515 "Protocol version received in the PDU.";
4516 }
4517 leaf raw-pdu {
4518 type binary;
4519 description
4520 "Received raw PDU.";
4521 }
4522 description
4523 "This notification is sent when the system
4524 receives a PDU with a different protocol version
4525 number.
4526 The notification generation must be throttled with at least
4527 a 5 second gap.
4528 ";
4529 }
4531 notification area-mismatch {
4532 uses notification-instance-hdr;
4533 uses notification-interface-hdr;
4534 leaf raw-pdu {
4535 type binary;
4536 description
4537 "Received raw PDU.";
4538 }
4539 description
4540 "This notification is sent when the system
4541 receives a Hello PDU from an IS that does
4542 not share any area address.
4543 The notification generation must be throttled with at least
4544 a 5 second gap.
4545 ";
4546 }
4548 notification rejected-adjacency {
4549 uses notification-instance-hdr;
4550 uses notification-interface-hdr;
4551 leaf raw-pdu {
4552 type binary;
4553 description
4554 "Received raw PDU.";
4555 }
4556 leaf reason {
4557 type string;
4558 description
4559 "The system may provide a reason to reject the
4560 adjacency. If the reason is not available,
4561 the system use an empty string.";
4562 }
4563 description
4564 "This notification is sent when the system
4565 receives a Hello PDU from an IS but does not
4566 establish an adjacency for some reason.
4567 The notification generation must be throttled with at least
4568 a 5 second gap.
4569 ";
4570 }
4571 notification protocols-supported-mismatch {
4572 uses notification-instance-hdr;
4573 uses notification-interface-hdr;
4574 leaf raw-pdu {
4575 type binary;
4576 description
4577 "Received raw PDU.";
4578 }
4579 leaf-list protocols {
4580 type uint8;
4581 description
4582 "The list of protocols supported by the
4583 remote system.";
4584 }
4585 description
4586 "This notification is sent when the system
4587 receives a non pseudonode LSP that has no matching
4588 protocol supported.
4589 The notification generation must be throttled with at least
4590 a 5 second gap.
4591 ";
4592 }
4594 notification lsp-error-detected {
4595 uses notification-instance-hdr;
4596 uses notification-interface-hdr;
4597 leaf lsp-id {
4598 type lsp-id;
4599 description
4600 "LSP ID.";
4601 }
4602 leaf raw-pdu {
4603 type binary;
4604 description
4605 "Received raw PDU.";
4606 }
4607 leaf error-offset {
4608 type uint32;
4609 description
4610 "If the problem is a malformed TLV,
4611 the error-offset points to the start of the TLV.
4612 If the problem is with the LSP header,
4613 the error-offset points to the suspicious byte";
4614 }
4615 leaf tlv-type {
4616 type uint8;
4617 description
4618 "if the problem is a malformed TLV, the tlv-type is set
4619 to the type value of the suspicious TLV.
4620 Otherwise this leaf is not present.";
4621 }
4622 description
4623 "This notification is sent when the system
4624 receives a LSP with a parse error.
4625 The notification generation must be throttled with at least
4626 a 5 second gap.
4627 ";
4628 }
4630 notification adjacency-change {
4631 uses notification-instance-hdr;
4632 uses notification-interface-hdr;
4633 leaf neighbor {
4634 type string;
4635 description
4636 "Describes the name of the neighbor. If the
4637 name of the neighbor is not available, the
4638 field would be empty.";
4639 }
4640 leaf neighbor-system-id {
4641 type system-id;
4642 description
4643 "Describes the system-id of the neighbor.";
4644 }
4645 leaf level {
4646 type level;
4647 description
4648 "Describes the ISIS level of the adjacency.";
4649 }
4650 leaf state {
4651 type enumeration {
4652 enum "Up" {
4653 description
4654 "This state describes that
4655 adjacency is established.";
4656 }
4657 enum "Down" {
4658 description
4659 "This state describes that
4660 adjacency is no more established.";
4661 }
4662 }
4663 description
4664 "This leaf describes the new state of the
4665 ISIS adjacency.";
4666 }
4667 leaf reason {
4668 type string;
4669 description
4670 "If the adjacency is going to DOWN,
4671 this leaf provides a reason for the adjacency
4672 going down. The reason is provided as a text.
4673 If the adjacency is going to UP, no reason is
4674 provided.";
4675 }
4676 description
4677 "This notification is sent when an ISIS adjacency
4678 moves to Up state or to Down state.";
4679 }
4681 notification lsp-received {
4682 uses notification-instance-hdr;
4683 uses notification-interface-hdr;
4685 leaf lsp-id {
4686 type lsp-id;
4687 description
4688 "LSP ID.";
4689 }
4690 leaf sequence {
4691 type uint32;
4692 description
4693 "Sequence number of the received LSP.";
4694 }
4695 leaf received-timestamp {
4696 type yang:timestamp;
4698 description
4699 "This leaf describes the timestamp
4700 when the LSP was received. ";
4701 }
4702 leaf neighbor-system-id {
4703 type system-id;
4704 description
4705 "Describes the system-id of the neighbor
4706 that sent the LSP.";
4707 }
4708 description
4709 "This notification is sent when a LSP
4710 is received.
4711 The notification generation must be throttled with at least
4712 a 5 second gap. ";
4713 }
4714 notification lsp-generation {
4715 uses notification-instance-hdr;
4717 leaf lsp-id {
4718 type lsp-id;
4719 description
4720 "LSP ID.";
4721 }
4722 leaf sequence {
4723 type uint32;
4724 description
4725 "Sequence number of the received LSP.";
4726 }
4727 leaf send-timestamp {
4728 type yang:timestamp;
4730 description
4731 "This leaf describes the timestamp
4732 when our LSP was regenerated. ";
4733 }
4734 description
4735 "This notification is sent when a LSP
4736 is regenerated.
4737 The notification generation must be throttled with at least
4738 a 5 second gap. ";
4739 }
4741 }
4743
4745 8. IS-IS Segment Routing YANG Module
4747 file "ietf-isis-sr@2016-10-26.yang"
4749 module ietf-isis-sr {
4750 namespace "urn:ietf:params:xml:ns:"
4751 + "yang:ietf-isis-sr";
4752 prefix isis-sr;
4754 import ietf-routing {
4755 prefix "rt";
4756 }
4758 import ietf-segment-routing-common {
4759 prefix "sr-cmn";
4761 }
4763 import ietf-segment-routing {
4764 prefix "sr";
4765 }
4767 import ietf-isis {
4768 prefix "isis";
4769 }
4771 organization
4772 "IETF ISIS Working Group";
4774 contact
4775 "WG List: <mailto:spring@ietf.org>
4777 Editor: Stephane Litkowski
4778 <mailto:stephane.litkowski@orange.com>
4780 Acee Lindem
4781 <mailto:acee@cisco.com>
4782 Yingzhen Qu
4783 <mailto:yiqu@cisco.com>
4784 Pushpasis Sarkar
4785 <mailto:psarkar@juniper.net>
4786 Ing-Wher Chen
4787 <mailto:ing-wher.chen@ericsson.com>
4788 Jeff Tantsura
4789 <mailto:jeff.tantsura@ericsson.com>
4791 ";
4793 description
4794 "The YANG module defines a generic configuration model for
4795 Segment routing ISIS extensions common across all of the vendor
4796 implementations.";
4798 revision 2016-10-26 {
4799 description
4800 "Initial revision.";
4801 reference "draft-ietf-isis-yang-isis-cfg-13";
4802 }
4804 /* Identities */
4805 /* Features */
4807 feature remote-lfa-sr {
4808 description
4809 "Enhance rLFA to use SR path.";
4810 }
4812 feature ti-lfa {
4813 description
4814 "Enhance IPFRR with ti-lfa
4815 support";
4816 }
4818 /* Groupings */
4820 grouping adjacency-state {
4821 description
4822 "This group will extend adjacency state.";
4823 list adjacency-sid {
4824 key value;
4825 leaf af {
4826 type identityref {
4827 base rt:address-family;
4828 }
4829 description
4830 "Address-family associated with the
4831 segment ID";
4832 }
4833 leaf value {
4834 type uint32;
4835 description
4836 "Value of the Adj-SID.";
4837 }
4838 leaf weight {
4839 type uint8;
4840 description
4841 "Weight associated with
4842 the adjacency SID.";
4843 }
4844 leaf protection-requested {
4845 type boolean;
4846 description
4847 "Describe if the adjacency SID
4848 must be protected.";
4849 }
4850 description
4851 "List of adjacency Segment IDs.";
4852 }
4854 }
4856 grouping prefix-segment-id {
4857 description
4858 "This group defines segment routing extensions
4859 for prefixes.";
4861 list sid-list {
4862 key value;
4864 leaf flags {
4865 type bits {
4866 bit readvertisment {
4867 position 7;
4868 description
4869 "If set, then the prefix to
4870 which this Prefix-SID is attached,
4871 has been propagated by the
4872 router either from another level
4873 or from redistribution.";
4874 }
4876 bit php {
4877 position 5;
4878 description
4879 "If set, then the penultimate hop MUST NOT
4880 pop the Prefix-SID before delivering the packet
4881 to the node
4882 that advertised the Prefix-SID.";
4883 }
4884 bit explicit-null {
4885 position 4;
4886 description
4887 "If set, any upstream neighbor of
4888 the Prefix-SID originator MUST replace
4889 the Prefix-SID with a
4890 Prefix-SID having an
4891 Explicit-NULL value (0 for IPv4 and 2 for
4892 IPv6) before forwarding the packet.";
4893 }
4894 bit value {
4895 position 3;
4896 description
4897 "If set, then the Prefix-SID carries a
4898 value (instead of an index).
4899 By default the flag is UNSET.";
4901 }
4902 bit local {
4903 position 2;
4904 description
4905 "If set, then the value/index carried by
4906 the Prefix-SID has local significance.
4907 By default the flag is UNSET.";
4908 }
4909 }
4910 description
4911 "Describes flags associated with the
4912 segment ID.";
4913 }
4915 leaf algorithm {
4916 type uint8;
4917 description
4918 "Algorithm to be used for path computation.";
4919 }
4920 leaf value {
4921 type uint32;
4922 description
4923 "Value of the prefix-SID.";
4924 }
4925 description
4926 "List of segments.";
4927 }
4928 }
4930 grouping adjacency-segment-id {
4931 description
4932 "This group defines segment routing extensions
4933 for adjacencies.";
4935 list sid-list {
4936 key value;
4938 leaf flags {
4939 type bits {
4940 bit address-family {
4941 position 7;
4942 description
4943 "If unset, then the Adj-SID refers
4944 to an adjacency with outgoing IPv4 encapsulation.
4945 If set then the Adj-SID refers to an adjacency
4946 with outgoing IPv6 encapsulation.";
4947 }
4948 bit backup {
4949 position 6;
4950 description
4951 "If set, the Adj-SID refers to an
4952 adjacency being protected
4953 (e.g.: using IPFRR or MPLS-FRR)";
4954 }
4955 bit value {
4956 position 5;
4957 description
4958 "If set, then the SID carries a
4959 value (instead of an index).
4960 By default the flag is SET.";
4962 }
4963 bit local {
4964 position 4;
4965 description
4966 "If set, then the value/index carried by
4967 the SID has local significance.
4968 By default the flag is SET.";
4969 }
4970 bit set {
4971 position 3;
4972 description
4973 "When set, the S-Flag indicates that the
4974 Adj-SID refers to a set of adjacencies";
4975 }
4976 }
4978 description
4979 "Describes flags associated with the
4980 segment ID.";
4981 }
4982 leaf weight {
4983 type uint8;
4984 description
4985 "The value represents the weight of the Adj-SID
4986 for the purpose of load balancing.";
4987 }
4988 leaf neighbor-id {
4989 type isis:system-id;
4990 description
4991 "Describes the system ID of the neighbor
4992 associated with the SID value. This is only
4993 used on LAN adjacencies.";
4994 }
4995 leaf value {
4996 type uint32;
4997 description
4998 "Value of the Adj-SID.";
4999 }
5000 description
5001 "List of segments.";
5002 }
5004 }
5005 grouping segment-routing-binding-tlv {
5006 list segment-routing-bindings {
5008 key "fec range";
5010 leaf fec {
5011 type string;
5012 description
5013 "IP (v4 or v6) range to be bound to SIDs.";
5014 }
5016 leaf range {
5017 type uint16;
5018 description
5019 "Describes number of elements to assign
5020 a binding to.";
5021 }
5023 leaf flags {
5024 type bits {
5025 bit address-family {
5026 position 7;
5027 description
5028 "If unset, then the Prefix FEC
5029 carries an IPv4 Prefix.
5030 If set then the Prefix FEC carries an
5031 IPv6 Prefix.";
5032 }
5033 bit mirror {
5034 position 6;
5035 description
5036 "Set if the advertised SID/path
5037 corresponds to a mirrored context.
5038 ";
5039 }
5040 bit flooding {
5041 position 5;
5042 description
5043 "If the S bit is set(1),
5044 the IS-IS Router CAPABILITY TLV
5045 MUST be flooded across the entire routing domain.
5046 If the S bit is
5047 not set(0), the TLV MUST NOT be leaked between levels.
5048 This bit MUST NOT be altered during the TLV leaking.";
5049 }
5050 bit down {
5051 position 4;
5052 description
5053 "When the IS-IS Router CAPABILITY TLV is
5054 leaked from level-2 to level-1, the D bit
5055 MUST be set. Otherwise, this bit MUST
5056 be clear. IS-IS Router capability TLVs
5057 with the D bit set MUST NOT
5058 be leaked from level-1 to level-2.
5059 This is to prevent TLV looping.
5060 ";
5061 }
5062 bit attached {
5063 position 3;
5064 description
5065 "The originator of the SID/Label Binding
5066 TLV MAY set the A bit in order to signal
5067 that the prefixes and
5068 SIDs advertised in the SID/Label Binding
5069 TLV are directly
5070 connected to their originators.
5071 ";
5072 }
5074 }
5075 description
5076 "Flags of the binding.";
5077 }
5079 leaf weight {
5080 type uint8;
5081 description
5082 "Weight of the path for loadbalancing purpose.";
5083 }
5085 container binding {
5086 container prefix-sid {
5087 uses prefix-segment-id;
5088 description
5089 "Binding prefix SID to the range.";
5090 }
5091 leaf ero-metric {
5092 type uint32;
5093 description
5094 "Cost of ERO path.";
5095 }
5096 container ero {
5097 leaf address-family {
5098 type identityref {
5099 base rt:address-family;
5100 }
5101 description
5102 "Address-family.";
5103 }
5105 leaf loose {
5106 type boolean;
5107 description
5108 "Set to true,
5109 if hop is a loose hop.";
5110 }
5111 leaf address {
5112 type string;
5113 description
5114 "IP address of a node on the
5115 path.";
5116 }
5118 description
5119 "Binding ERO path to the range.";
5120 }
5121 container backup-ero {
5122 leaf address-family {
5123 type identityref {
5124 base rt:address-family;
5125 }
5126 description
5127 "Address-family.";
5128 }
5130 leaf loose {
5131 type boolean;
5132 description
5133 "Set to true,
5134 if hop is a loose hop.";
5135 }
5136 leaf address {
5137 type string;
5138 description
5139 "IP address of a node on the
5140 path.";
5141 }
5143 description
5144 "Binding backup ERO path to the range.";
5145 }
5146 container unnumbered-interface-id-ero {
5147 leaf router-id {
5148 type string;
5149 description
5150 "Router ID of the node owning the interface.";
5151 }
5152 leaf interface-id {
5153 type uint32;
5154 description
5155 "Interface ID on which the path is built.";
5156 }
5157 description
5158 "Binding a path over unnumbered interface.";
5159 }
5160 container backup-unnumbered-interface-id-ero {
5161 leaf router-id {
5162 type string;
5163 description
5164 "Router ID of the node owning the interface.";
5165 }
5166 leaf interface-id {
5167 type uint32;
5168 description
5169 "Interface ID on which the path is built.";
5170 }
5171 description
5172 "Binding a backup path over unnumbered interface.";
5173 }
5174 description
5175 "Bindings associated with the range.";
5176 }
5178 description
5179 "This container describes list of SID/Label
5180 bindings.
5181 ISIS reference is TLV 149.";
5182 }
5183 description
5184 "Defines binding TLV for database.";
5186 }
5187 /* Cfg */
5188 augment "/rt:routing/" +
5189 "rt:control-plane-protocols/rt:control-plane-protocol"+
5190 "/isis:isis" {
5191 when "/rt:routing/rt:control-plane-protocols/"+
5192 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5193 description
5194 "This augment ISIS routing protocol when used";
5195 }
5196 description
5197 "This augments ISIS protocol configuration
5198 with segment routing.";
5200 uses sr:controlplane-cfg;
5201 container protocol-srgb {
5202 if-feature sr:protocol-srgb;
5203 uses sr-cmn:srgb-cfg;
5204 description
5205 "Per-protocol SRGB.";
5206 }
5208 }
5210 augment "/rt:routing/" +
5211 "rt:control-plane-protocols/rt:control-plane-protocol"+
5212 "/isis:isis/isis:interfaces/isis:interface" {
5213 when "/rt:routing/rt:control-plane-protocols/"+
5214 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5215 description
5216 "This augment ISIS routing protocol when used";
5217 }
5218 description
5219 "This augments ISIS protocol configuration
5220 with segment routing.";
5222 uses sr:igp-interface-cfg;
5223 }
5225 augment "/rt:routing/" +
5226 "rt:control-plane-protocols/rt:control-plane-protocol"+
5227 "/isis:isis/isis:interfaces/isis:interface"+
5228 "/isis:fast-reroute" {
5229 when "/rt:routing/rt:control-plane-protocols/"+
5230 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5231 description
5232 "This augment ISIS routing protocol when used";
5233 }
5234 description
5235 "This augments ISIS IP FRR with TILFA.";
5237 container ti-lfa {
5238 if-feature ti-lfa;
5239 leaf enable {
5240 type boolean;
5241 description
5242 "Enables TI-LFA computation.";
5243 }
5244 description
5245 "TILFA configuration.";
5246 }
5248 }
5250 augment "/rt:routing/" +
5251 "rt:control-plane-protocols/rt:control-plane-protocol"+
5252 "/isis:isis/isis:interfaces/isis:interface"+
5253 "/isis:fast-reroute/isis:lfa/isis:remote-lfa" {
5254 when "/rt:routing/rt:control-plane-protocols/"+
5255 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5256 description
5257 "This augment ISIS routing protocol when used";
5258 }
5259 description
5260 "This augments ISIS remoteLFA config with
5261 use of segment-routing path.";
5263 leaf use-segment-routing-path {
5264 if-feature remote-lfa-sr;
5265 type boolean;
5266 description
5267 "force remote LFA to use segment routing
5268 path instead of LDP path.";
5269 }
5271 }
5273 /* Operational states */
5275 augment "/rt:routing-state/" +
5276 "rt:control-plane-protocols/rt:control-plane-protocol"+
5277 "/isis:isis" {
5278 when "/rt:routing-state/rt:control-plane-protocols/"+
5279 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5280 description
5281 "This augment ISIS routing protocol when used";
5282 }
5283 description
5284 "This augments ISIS protocol configuration
5285 with segment routing.";
5287 uses sr:controlplane-cfg;
5288 container protocol-srgb {
5289 if-feature sr:protocol-srgb;
5290 uses sr-cmn:srgb-cfg;
5291 description
5292 "Per-protocol SRGB.";
5293 }
5295 }
5297 augment "/rt:routing-state/" +
5298 "rt:control-plane-protocols/rt:control-plane-protocol"+
5299 "/isis:isis/isis:interfaces/isis:interface" {
5300 when "/rt:routing-state/rt:control-plane-protocols/"+
5301 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5302 description
5303 "This augment ISIS routing protocol when used";
5304 }
5305 description
5306 "This augments ISIS protocol configuration
5307 with segment routing.";
5309 uses sr:igp-interface-cfg;
5310 }
5312 augment "/rt:routing-state/" +
5313 "rt:control-plane-protocols/rt:control-plane-protocol"+
5314 "/isis:isis/isis:interfaces/isis:interface" +
5315 "/isis:adjacencies/isis:adjacency" {
5316 when "/rt:routing-state/rt:control-plane-protocols/"+
5317 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5318 description
5319 "This augment ISIS routing protocol when used";
5320 }
5321 description
5322 "This augments ISIS protocol configuration
5323 with segment routing.";
5325 uses adjacency-state;
5326 }
5327 augment "/rt:routing-state/" +
5328 "rt:control-plane-protocols/rt:control-plane-protocol"+
5329 "/isis:isis/isis:database/isis:level-db/isis:lsp"+
5330 "/isis:extended-is-neighbor/isis:neighbor" {
5331 when "/rt:routing-state/rt:control-plane-protocols/"+
5332 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5333 description
5334 "This augment ISIS routing protocol when used";
5335 }
5336 description
5337 "This augments ISIS protocol LSDB neighbor.";
5338 uses adjacency-segment-id;
5340 }
5341 augment "/rt:routing-state/" +
5342 "rt:control-plane-protocols/rt:control-plane-protocol"+
5343 "/isis:isis/isis:database/isis:level-db/isis:lsp"+
5344 "/isis:mt-is-neighbor/isis:neighbor" {
5345 when "/rt:routing-state/rt:control-plane-protocols/"+
5346 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5347 description
5348 "This augment ISIS routing protocol when used";
5349 }
5350 description
5351 "This augments ISIS protocol LSDB neighbor.";
5352 uses adjacency-segment-id;
5354 }
5355 augment "/rt:routing-state/" +
5356 "rt:control-plane-protocols/rt:control-plane-protocol"+
5357 "/isis:isis/isis:database/isis:level-db/isis:lsp"+
5358 "/isis:extended-ipv4-reachability/isis:prefixes" {
5359 when "/rt:routing-state/rt:control-plane-protocols/"+
5360 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5361 description
5362 "This augment ISIS routing protocol when used";
5363 }
5364 description
5365 "This augments ISIS protocol LSDB prefix.";
5366 uses prefix-segment-id;
5368 }
5369 augment "/rt:routing-state/" +
5370 "rt:control-plane-protocols/rt:control-plane-protocol"+
5371 "/isis:isis/isis:database/isis:level-db/isis:lsp"+
5372 "/isis:mt-extended-ipv4-reachability/isis:prefixes" {
5373 when "/rt:routing-state/rt:control-plane-protocols/"+
5374 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5376 description
5377 "This augment ISIS routing protocol when used";
5378 }
5379 description
5380 "This augments ISIS protocol LSDB prefix.";
5381 uses prefix-segment-id;
5383 }
5384 augment "/rt:routing-state/" +
5385 "rt:control-plane-protocols/rt:control-plane-protocol"+
5386 "/isis:isis/isis:database/isis:level-db/isis:lsp"+
5387 "/isis:ipv6-reachability/isis:prefixes" {
5388 when "/rt:routing-state/rt:control-plane-protocols/"+
5389 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5390 description
5391 "This augment ISIS routing protocol when used";
5392 }
5393 description
5394 "This augments ISIS protocol LSDB prefix.";
5395 uses prefix-segment-id;
5397 }
5398 augment "/rt:routing-state/" +
5399 "rt:control-plane-protocols/rt:control-plane-protocol"+
5400 "/isis:isis/isis:database/isis:level-db/isis:lsp"+
5401 "/isis:mt-ipv6-reachability/isis:prefixes" {
5402 when "/rt:routing-state/rt:control-plane-protocols/"+
5403 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5404 description
5405 "This augment ISIS routing protocol when used";
5406 }
5407 description
5408 "This augments ISIS protocol LSDB prefix.";
5409 uses prefix-segment-id;
5411 }
5412 augment "/rt:routing-state/" +
5413 "rt:control-plane-protocols/rt:control-plane-protocol"+
5414 "/isis:isis/isis:database/isis:level-db/isis:lsp" {
5415 when "/rt:routing-state/rt:control-plane-protocols/"+
5416 "rt:control-plane-protocol/rt:type = 'isis:isis'" {
5417 description
5418 "This augment ISIS routing protocol when used";
5419 }
5420 description
5421 "This augments ISIS protocol LSDB.";
5422 uses segment-routing-binding-tlv;
5424 }
5426 /* Notifications */
5428 }
5430
5432 9. Security Considerations
5434 Configuration and state data defined in this document are designed to
5435 be accessed via the NETCONF protocol [RFC6241].
5437 As IS-IS is an IGP protocol (critical piece of the network), ensuring
5438 stability and security of the protocol is mandatory for the network
5439 service.
5441 Authors recommends to implement NETCONF access control model
5442 ([RFC6536]) to restrict access to all or part of the configuration to
5443 specific users. Access control to RPCs is also critical as RPC
5444 allows to clear protocol datastructures that would definitively
5445 impact the network service. This kind of RPC needs only to be used
5446 in specific cases by well-known experienced users.
5448 Authors consider that all the configuration is considered as
5449 sensitive/vulnerable as well as RPCs. But security teams can decide
5450 to open some part of the configuration to less experienced users
5451 depending on the internal organization, for example:
5453 o User FullWrite: would access to the whole data model. This kind
5454 of profile may be restricted to few experienced people.
5456 o User PartialWrite: would only access to configuration part within
5457 /isis/interfaces/interface. So this kind of profile is restricted
5458 to creation/modification/deletion of interfaces. This profile
5459 does not have access to RPC.
5461 o User Read: would only access to state part /isis-state.
5463 Unauthorized access to configuration or RPC may cause high damages to
5464 the network service.
5466 The /isis-state/database may contain authentication information. As
5467 presented in the description of the /isis-state/database/level-
5468 1/lsp/authentication/authentication-key, the authentication MUST
5469 never be presented in plaintext format for security reason. Authors
5470 recommend the usage of MD5 to display or return the authentication-
5471 key.
5473 Some authentication-key may also be present in the /isis
5474 configuration. When configuring IS-IS using the NETCONF protocol,
5475 authors recommends the usage of secure transport of NETCONF using SSH
5476 ([RFC6242]).
5478 10. Contributors
5480 Authors would like to thank Kiran Agrahara Sreenivasa, Dean
5481 Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the
5482 draft.
5484 11. Acknowledgements
5486 TBD.
5488 12. IANA Considerations
5490 The IANA is requested to assign two new URIs from the IETF XML
5491 registry ([RFC3688]). Authors are suggesting the following URIs :
5493 URI: urn:ietf:params:xml:ns:yang:ietf-isis
5494 Registrant Contact: IS-IS WG
5495 XML: N/A, the requested URI is an XML namespace
5497 URI: urn:ietf:params:xml:ns:yang:ietf-isis-sr
5498 Registrant Contact: IS-IS WG
5499 XML: N/A, the requested URI is an XML namespace
5501 This document also requests two new YANG modules name in the YANG
5502 Module Names registry ([RFC6020]) with the following suggestion :
5504 name: ietf-isis
5505 namespace: urn:ietf:params:xml:ns:yang:ietf-isis
5506 prefix: isis
5507 reference: RFC XXXX
5509 name: ietf-isis-sr
5510 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-sr
5511 prefix: isis-sr
5512 reference: RFC XXXX
5514 13. Change log for ietf-isis-sr YANG module
5516 13.1. From version -12 to version -13
5518 o Align with new segment routing common module.
5520 13.2. From version -09 to version -11
5522 o Fixed XPATH in 'when' expressions.
5524 13.3. From version -08 to version -09
5526 o Align to draft-ietf-netmod-routing-cfg-23.
5528 13.4. From version -07 to version -08
5530 o Align to draft-ietf-netmod-routing-cfg-21.
5532 14. Change log for ietf-isis YANG module
5534 14.1. From version -12 to version -13
5536 o Move feature nlpid-control to container rather than list.
5538 o Rename multi-topology to topologies to align with OSPF.
5540 o Rename bfd/enabled to bfd/enable for consistency reason.
5542 o Add support for NSR with a feature.
5544 14.2. From version -09 to version -12
5546 o Rename node-tag container to node-tags.
5548 14.3. From version -08 to version -09
5550 o Added container before af list.
5552 o Added container before topology list.
5554 o Aligned LFA if per level cfg.
5556 o Align to draft-ietf-netmod-routing-cfg-23.
5558 14.4. From version -07 to version -08
5560 o Remove selector from system-id type.
5562 o Add some default values.
5564 o Moved lists to containers+groupings for per level configuration.
5566 o remove routing-instance as per core routing model v21.
5568 o added BFD leaf (no more BFD protocol model).
5570 o changed keychain module reference.
5572 14.5. From version -05 to version -07
5574 o Move Overload config from list to container.
5576 o Move Overload-max-metric config from list to container.
5578 o Move preference config from list to container.
5580 o Add Node flag in config.
5582 o Removed BFD config => moved to isis-bfd module.
5584 o Remove call to routing policy model.
5586 14.6. From version -03 to version -05
5588 o Correct invalid references to previous versions of core routing
5589 model.
5591 o Remove BFD config and replace by groupings from ietf-bfd.
5593 o Adding routing-policy support through routing-policy model.
5595 14.7. From version -02 to version -03
5597 o Reviewed config and op state groupings.
5599 o Add default value to lfa candidate-disabled.
5601 o Add enable leaf to isis container to reflect admin state.
5603 o Move to VRF centric only.
5605 o Segment routing is part os a separate module.
5607 14.8. From version -01 to version -02
5609 o Adding IPFRR.
5611 o Adding igp-ldp-sync.
5613 o Adding segment-routing.
5615 o Adding instance reference to operational states.
5617 o Move AF type from string to identity.
5619 o Updated router-capability in LSDB description.
5621 o packet counters moved to interface-packet-counters.
5623 o Added modification information in lsp-log.
5625 o Removing igp-ldp-sync timer in IS-IS.
5627 o Defining hierarchy for operational states.
5629 o Adding clns-mtu.
5631 o Adding key-chain.
5633 14.9. From version -00 to version -01
5635 o Interface metric move from af container to interface container.
5637 o Hello-padding on interface moved to hello-padding-disable with
5638 empty type.
5640 o three-way-handshake removed.
5642 o route preference changed to a choice.
5644 o csnp-authentication/psnp-authentication merged to authentication
5645 container.
5647 o lsp-gen-interval-exp-delay removed.
5649 o Added overload-max-metric feature.
5651 o overload-max-metric is in a separate container.
5653 o Change hello-padding to container.
5655 o Change bfd to container.
5657 o Make BFD a feature.
5659 o Create mpls-te container and put router-id inside.
5661 o Remove GR helper disable and timers.
5663 15. Normative References
5665 [I-D.ietf-netmod-routing-cfg]
5666 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing
5667 Management", draft-ietf-netmod-routing-cfg-24 (work in
5668 progress), October 2016.
5670 [I-D.ietf-rtgwg-yang-key-chain]
5671 Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y.
5672 Yang, "Routing Key Chain YANG Data Model", draft-ietf-
5673 rtgwg-yang-key-chain-09 (work in progress), September
5674 2016.
5676 [I-D.ietf-spring-sr-yang]
5677 Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG
5678 Data Model for Segment Routing", draft-ietf-spring-sr-
5679 yang-04 (work in progress), October 2016.
5681 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
5682 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
5683 RFC2119, March 1997,
5684 .
5686 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
5687 DOI 10.17487/RFC3688, January 2004,
5688 .
5690 [RFC5120] Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
5691 Topology (MT) Routing in Intermediate System to
5692 Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/
5693 RFC5120, February 2008,
5694 .
5696 [RFC5286] Atlas, A., Ed. and A. Zinin, Ed., "Basic Specification for
5697 IP Fast Reroute: Loop-Free Alternates", RFC 5286, DOI
5698 10.17487/RFC5286, September 2008,
5699 .
5701 [RFC5443] Jork, M., Atlas, A., and L. Fang, "LDP IGP
5702 Synchronization", RFC 5443, DOI 10.17487/RFC5443, March
5703 2009, .
5705 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
5706 the Network Configuration Protocol (NETCONF)", RFC 6020,
5707 DOI 10.17487/RFC6020, October 2010,
5708 .
5710 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
5711 and A. Bierman, Ed., "Network Configuration Protocol
5712 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
5713 .
5715 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
5716 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
5717 .
5719 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
5720 Protocol (NETCONF) Access Control Model", RFC 6536, DOI
5721 10.17487/RFC6536, March 2012,
5722 .
5724 [RFC7490] Bryant, S., Filsfils, C., Previdi, S., Shand, M., and N.
5725 So, "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)",
5726 RFC 7490, DOI 10.17487/RFC7490, April 2015,
5727 .
5729 Appendix A. Example of IS-IS configuration in XML
5731 This section gives an example of configuration of an IS-IS instance
5732 on a device. The example is written in XML.
5734
5735
5736
5737 SLI
5738 1.1.1.1
5739
5740
5741
5742 Loopback0
5743
5744
5745 Eth1
5746
5747
5748
5749
5750 ISIS
5751
5752 isis:isis
5753
5754 true
5755 level-2
5756 87FC.FCDF.4432
5757 49.0001
5758
5759 1.1.1.1
5760
5761 65535
5762 65000
5763
5764 wide
5765
5766
5767 111111
5768
5769
5770
5771 ipv4-unicast
5772 true
5773
5774
5775
5776
5777 Loopback0
5778 200
5779
5780 0
5781
5782 true
5783
5784
5785 Eth1
5786 level-2
5787 point-to-point
5788
5789 167890
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799 Loopback0
5800
5801
5802
5803
5804
5805
5806 1.1.1.1
5807 32
5808
5809
5811
5812
5813 Eth1
5814
5815
5816
5817
5818
5819
5820 10.0.0.1
5821 30
5822
5823
5825
5826
5827
5829 Authors' Addresses
5831 Stephane Litkowski
5832 Orange
5834 Email: stephane.litkowski@orange.com
5836 Derek Yeung
5837 Arrcus, Inc
5839 Email: derek@arrcus.com
5840 Acee Lindem
5841 Cisco Systems
5843 Email: acee@cisco.com
5845 Jeffrey Zhang
5846 Juniper Networks
5848 Email: zzhang@juniper.net
5850 Ladislav Lhotka
5851 CZ.NIC
5853 Email: lhotka@nic.cz