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