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