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