idnits 2.17.1 draft-ietf-isis-yang-isis-cfg-01.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 : ---------------------------------------------------------------------------- ** There are 10 instances of too long lines in the document, the longest one being 15 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 201 has weird spacing: '...ce-name ins...' == Line 207 has weird spacing: '...ce-name ins...' == Line 383 has weird spacing: '...w level lev...' == Line 386 has weird spacing: '...w level lev...' == Line 397 has weird spacing: '...w level lev...' == (14 more instances...) -- The document date (October 24, 2014) is 3472 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) == Missing Reference: 'MT-ID' is mentioned on line 667, but not defined == Unused Reference: 'I-D.ietf-netmod-routing-cfg' is defined on line 3942, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 3950, but no explicit reference was found in the text == Outdated reference: A later version (-25) exists of draft-ietf-netmod-routing-cfg-15 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 2 errors (**), 0 flaws (~~), 11 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ISIS Working Group S. Litkowski 3 Internet-Draft Orange 4 Intended status: Standards Track D. Yeung 5 Expires: April 27, 2015 A. Lindem 6 Cisco Systems 7 J. Zhang 8 Juniper Networks 9 L. Lhotka 11 October 24, 2014 13 YANG Data Model for ISIS protocol 14 draft-ietf-isis-yang-isis-cfg-01 16 Abstract 18 This document defines a YANG data model that can be used to configure 19 and manage ISIS protocol. 21 Requirements Language 23 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 24 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 25 document are to be interpreted as described in [RFC2119]. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at http://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on April 27, 2015. 44 Copyright Notice 46 Copyright (c) 2014 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (http://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 1.1. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 2 63 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 64 2.1. ISIS Configuration . . . . . . . . . . . . . . . . . . . 8 65 2.2. Multitopology Parameters . . . . . . . . . . . . . . . . 9 66 2.3. Per-Level Parameters . . . . . . . . . . . . . . . . . . 10 67 2.4. Per-Interface Parameters . . . . . . . . . . . . . . . . 10 68 2.5. Operational State . . . . . . . . . . . . . . . . . . . . 11 69 3. RPC Operations . . . . . . . . . . . . . . . . . . . . . . . 15 70 4. Notifications . . . . . . . . . . . . . . . . . . . . . . . . 16 71 5. Interaction with Other YANG Modules . . . . . . . . . . . . . 20 72 6. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 20 73 7. Security Considerations . . . . . . . . . . . . . . . . . . . 82 74 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 83 75 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 83 76 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 83 77 11. Normative References . . . . . . . . . . . . . . . . . . . . 83 78 Appendix A. Example: NETCONF Reply . . . . . . . . . . . . 84 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 87 81 1. Introduction 83 This document defines a YANG data model for ISIS routing protocol. 85 The data model covers configuration of an ISIS routing protocol 86 instance as well as operational states. 88 1.1. Tree diagram 90 A simplified graphical representation of the data model is presented 91 in Section 2. 93 The meaning of the symbols in these diagrams is as follows: 95 o Brackets "[" and "]" enclose list keys. 97 o Curly braces "{" and "}" contain names of optional features that 98 make the corresponding node conditional. 100 o Abbreviations before data node names: "rw" means configuration 101 (read-write), and "ro" state data (read-only). 103 o Symbols after data node names: "?" means an optional node and "*" 104 denotes a "list" or "leaf-list". 106 o Parentheses enclose choice and case nodes, and case nodes are also 107 marked with a colon (":"). 109 o Ellipsis ("...") stands for contents of subtrees that are not 110 shown. 112 2. Design of the Data Model 114 The ISIS YANG module is divided in two main containers "isis" that 115 are augmenting the "routing-protocol" lists in ietf-routing module 116 with specific ISIS parameters. 118 One container contains the writable parameters, while the other 119 contains the operational states. 121 The figure below describe the overall structure of the isis YANG 122 module: 124 module: ietf-isis 125 augment /rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route: 126 +--ro metric? uint32 127 +--ro tag* uint64 128 +--ro route-type? enumeration 129 augment /rt:active-route/rt:output/rt:route: 130 +--ro metric? uint32 131 +--ro tag* uint64 132 +--ro route-type? enumeration 133 augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: 134 +--rw isis 135 +--rw instance* [routing-instance] 136 +--rw routing-instance rt:routing-instance-ref 137 +--rw level-type? level 138 +--rw system-id? system-id 139 +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? 140 +--rw area-address* area-address 141 +--rw mpls-te 142 | ... 143 +--rw reference-bandwidth? uint32 {reference-bandwidth}? 144 +--rw lsp-mtu? uint16 145 +--rw lsp-lifetime? uint16 146 +--rw lsp-refresh? uint16 {lsp-refresh}? 147 +--rw graceful-restart {graceful-restart}? 148 | ... 149 +--rw authentication* [level] 150 | ... 151 +--rw metric-type* [level] 152 | ... 153 +--rw preference* [level] 154 | ... 155 +--rw default-metric* [level] 156 | ... 157 +--rw af* [af] {nlpid-control}? 158 | ... 159 +--rw topologies* [name] {multi-topology}? 160 | ... 161 +--rw overload* [level] 162 | ... 163 +--rw overload-max-metric* [level] {overload-max-metric}? 164 | ... 165 +--rw interfaces 166 ... 167 augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: 168 +--ro isis 169 +--ro system-counters 170 | +--ro level* [level] 171 | ... 172 +--ro interface-counters 173 | +--ro interface* [interface] 174 | ... 175 +--ro packet-counters 176 | +--ro level* [level] 177 | ... 178 +--ro interfaces 179 | +--ro interfaces* [interface] 180 | ... 181 +--ro adjacencies 182 | +--ro adjacency* 183 | ... 184 +--ro spf-log 185 | +--ro event* [id] 186 | ... 187 +--ro lsp-log 188 | +--ro event* [id] 189 | ... 190 +--ro database 191 | +--ro level-db* [level] 192 | ... 194 +--ro hostnames 195 +--ro hostname* [system-id] 196 ... 197 rpcs: 198 +---x clear-adjacency 199 | +--ro input 200 | +--ro routing-instance-name rt:routing-instance-state-ref 201 | +--ro routing-protocol-instance-name instance-state-ref 202 | +--ro level? level 203 | +--ro interface? string 204 +---x clear-database 205 +--ro input 206 +--ro routing-instance-name rt:routing-instance-state-ref 207 +--ro routing-protocol-instance-name instance-state-ref 208 +--ro level? level 209 notifications: 210 +---n database-overload 211 | +--ro instance-name? string 212 | +--ro instance-level? level 213 | +--ro overload? enumeration 214 +---n lsp-too-large 215 | +--ro instance-name? string 216 | +--ro instance-level? level 217 | +--ro interface-name? string 218 | +--ro interface-level? level 219 | +--ro extended-circuit-id? extended-circuit-id 220 | +--ro pdu-size? uint32 221 | +--ro lsp-id? lsp-id 222 +---n corrupted-lsp-detected 223 | +--ro instance-name? string 224 | +--ro instance-level? level 225 | +--ro lsp-id? lsp-id 226 +---n attempt-to-exceed-max-sequence 227 | +--ro instance-name? string 228 | +--ro instance-level? level 229 | +--ro lsp-id? lsp-id 230 +---n id-len-mismatch 231 | +--ro instance-name? string 232 | +--ro instance-level? level 233 | +--ro interface-name? string 234 | +--ro interface-level? level 235 | +--ro extended-circuit-id? extended-circuit-id 236 | +--ro pdu-field-len? uint8 237 | +--ro raw-pdu? binary 238 +---n max-area-addresses-mismatch 239 | +--ro instance-name? string 240 | +--ro instance-level? level 241 | +--ro interface-name? string 242 | +--ro interface-level? level 243 | +--ro extended-circuit-id? extended-circuit-id 244 | +--ro max-area-addresses? uint8 245 | +--ro raw-pdu? binary 246 +---n own-lsp-purge 247 | +--ro instance-name? string 248 | +--ro instance-level? level 249 | +--ro interface-name? string 250 | +--ro interface-level? level 251 | +--ro extended-circuit-id? extended-circuit-id 252 | +--ro lsp-id? lsp-id 253 +---n sequence-number-skipped 254 | +--ro instance-name? string 255 | +--ro instance-level? level 256 | +--ro interface-name? string 257 | +--ro interface-level? level 258 | +--ro extended-circuit-id? extended-circuit-id 259 | +--ro lsp-id? lsp-id 260 +---n authentication-type-failure 261 | +--ro instance-name? string 262 | +--ro instance-level? level 263 | +--ro interface-name? string 264 | +--ro interface-level? level 265 | +--ro extended-circuit-id? extended-circuit-id 266 | +--ro raw-pdu? binary 267 +---n authentication-failure 268 | +--ro instance-name? string 269 | +--ro instance-level? level 270 | +--ro interface-name? string 271 | +--ro interface-level? level 272 | +--ro extended-circuit-id? extended-circuit-id 273 | +--ro raw-pdu? binary 274 +---n version-skew 275 | +--ro instance-name? string 276 | +--ro instance-level? level 277 | +--ro interface-name? string 278 | +--ro interface-level? level 279 | +--ro extended-circuit-id? extended-circuit-id 280 | +--ro protocol-version? uint8 281 | +--ro raw-pdu? binary 282 +---n area-mismatch 283 | +--ro instance-name? string 284 | +--ro instance-level? level 285 | +--ro interface-name? string 286 | +--ro interface-level? level 287 | +--ro extended-circuit-id? extended-circuit-id 288 | +--ro raw-pdu? binary 289 +---n rejected-adjacency 290 | +--ro instance-name? string 291 | +--ro instance-level? level 292 | +--ro interface-name? string 293 | +--ro interface-level? level 294 | +--ro extended-circuit-id? extended-circuit-id 295 | +--ro raw-pdu? binary 296 | +--ro reason? string 297 +---n protocols-supported-mismatch 298 | +--ro instance-name? string 299 | +--ro instance-level? level 300 | +--ro interface-name? string 301 | +--ro interface-level? level 302 | +--ro extended-circuit-id? extended-circuit-id 303 | +--ro raw-pdu? binary 304 | +--ro protocols* uint8 305 +---n lsp-error-detected 306 | +--ro instance-name? string 307 | +--ro instance-level? level 308 | +--ro interface-name? string 309 | +--ro interface-level? level 310 | +--ro extended-circuit-id? extended-circuit-id 311 | +--ro lsp-id? lsp-id 312 | +--ro raw-pdu? binary 313 | +--ro error-offset? uint32 314 | +--ro tlv-type? uint8 315 +---n adjacency-change 316 | +--ro instance-name? string 317 | +--ro instance-level? level 318 | +--ro interface-name? string 319 | +--ro interface-level? level 320 | +--ro extended-circuit-id? extended-circuit-id 321 | +--ro neighbor? string 322 | +--ro neighbor-system-id? system-id 323 | +--ro level? level 324 | +--ro state? enumeration 325 | +--ro reason? string 326 +---n lsp-received 327 | +--ro instance-name? string 328 | +--ro instance-level? level 329 | +--ro interface-name? string 330 | +--ro interface-level? level 331 | +--ro extended-circuit-id? extended-circuit-id 332 | +--ro lsp-id? lsp-id 333 | +--ro sequence? uint32 334 | +--ro received-timestamp? yang:timestamp 335 | +--ro neighbor-system-id? system-id 336 +---n lsp-generation 337 +--ro instance-name? string 338 +--ro instance-level? level 339 +--ro lsp-id? lsp-id 340 +--ro sequence? uint32 341 +--ro send-timestamp? yang:timestamp 343 2.1. ISIS Configuration 345 The ISIS configuration currently supports both VRF-centric and 346 protocol-centric configuration. This may be changed in future. In a 347 protocol-centric configuration, the isis configuration is applied 348 within the standard-routing-instance and the instance list helps to 349 reference the routing-instance where ISIS is activated. In a VRF- 350 centric configuration, the isis configuration is applied directly 351 within the appropriate routing-instance where ISIS is activated. In 352 this case, the instance list will contain a single element. 354 The ISIS configuration container is divided in: 356 o Global parameters. 358 o Per interface configuration (see Section 2.4). 360 It would to up to extension modules to augment this model to support 361 vendor specific parameters. 363 augment /rt:routing/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: 364 +--rw isis 365 +--rw instance* [routing-instance] 366 +--rw routing-instance rt:routing-instance-ref 367 +--rw level-type? level 368 +--rw system-id? system-id 369 +--rw maximum-area-addresses? uint8 {maximum-area-addresses}? 370 +--rw area-address* area-address 371 +--rw mpls-te 372 | +--rw ipv4-router-id? inet:ipv4-address {ipv4-router-id}? 373 | +--rw ipv6-router-id? inet:ipv6-address {ipv6-router-id}? 374 +--rw reference-bandwidth? uint32 {reference-bandwidth}? 375 +--rw lsp-mtu? uint16 376 +--rw lsp-lifetime? uint16 377 +--rw lsp-refresh? uint16 {lsp-refresh}? 378 +--rw graceful-restart {graceful-restart}? 379 | +--rw enabled? boolean 380 +--rw authentication* [level] 381 | +--rw key? string 382 | +--rw type? authentication-type 383 | +--rw level level 384 +--rw metric-type* [level] 385 | +--rw value? enumeration 386 | +--rw level level 387 +--rw preference* [level] 388 | +--rw (granularity)? 389 | | +--:(detail) 390 | | | +--rw internal? uint8 391 | | | +--rw external? uint8 392 | | +--:(coarse) 393 | | +--rw default? uint8 394 | +--rw level level 395 +--rw default-metric* [level] 396 | +--rw value? wide-metric 397 | +--rw level level 398 +--rw af* [af] {nlpid-control}? 399 | +--rw af string 400 | +--rw enabled? boolean 401 +--rw topologies* [name] {multi-topology}? 402 | +--rw enabled? boolean 403 | +--rw name rt:rib-ref 404 | +--rw default-metric* [level] 405 | +--rw value? wide-metric 406 | +--rw level level 407 +--rw overload* [level] 408 | +--rw status? boolean 409 | +--rw timeout? uint16 410 | +--rw level level 411 +--rw overload-max-metric* [level] {overload-max-metric}? 412 | +--rw status? boolean 413 | +--rw timeout? uint16 414 | +--rw level level 415 +--rw interfaces 416 +--rw interface* [name] 417 ... 419 2.2. Multitopology Parameters 421 The topologies list is used to enable support of MT extensions for 422 specific address families. 424 Each topology should refer to an existing RIB. 426 2.3. Per-Level Parameters 428 Some parameters support per level configuration. In this case, the 429 parameter is built as a list, so different values could be used for 430 each level. The "level-all" permits to apply a value to both levels. 432 +--rw priority* [level] 433 | +--rw value? uint8 434 | +--rw level level 436 Example : 438 439 100 440 level-1 441 442 443 200 444 level-2 445 447 2.4. Per-Interface Parameters 449 The per-interface section of the ISIS instance describes the 450 interface specific parameters. 452 The interface is referenced using a string. It would be up to the 453 server device to check if the interface exists or not. Using a 454 string permits to support some specific implementations that use the 455 "interface all" stanza to apply a configuration to all interfaces. 457 Each interface has interface-specific parameters that may have a 458 different value per level as described in previous section. An 459 interface-specific parameter always override an ISIS global parameter 460 . 462 Some parameters like BFD and hello-padding are defined as containers 463 to permit easy extension by vendor specific modules. 465 +--rw interfaces 466 +--rw interface* [name] 467 +--rw name string 468 +--rw level-type? level 469 +--rw lsp-pacing-interval? uint16 470 +--rw lsp-retransmit-interval? uint16 471 +--rw passive? boolean 472 +--rw csnp-interval? uint16 473 +--rw hello-padding 474 | +--rw enabled? boolean 475 +--rw mesh-group-enabled? mesh-group-state 476 +--rw mesh-group? uint8 477 +--rw interface-type? interface-type 478 +--rw enabled? boolean 479 +--rw tag* uint32 {prefix-tag}? 480 +--rw tag64* uint64 {prefix-tag64}? 481 +--rw hello-authentication* [level] 482 | +--rw type? authentication-type 483 | +--rw key? string 484 | +--rw level level 485 +--rw hello-interval* [level] 486 | +--rw value? uint16 487 | +--rw level level 488 +--rw hello-multiplier* [level] 489 | +--rw value? uint16 490 | +--rw level level 491 +--rw priority* [level] 492 | +--rw value? uint8 493 | +--rw level level 494 +--rw metric* [level] 495 | +--rw value? wide-metric 496 | +--rw level level 497 +--rw af* [af] 498 | +--rw af string 499 | +--rw bfd {bfd}? 500 | ... 501 +--rw topologies* [name] 502 +--rw name rt:rib-ref 503 +--rw metric* [level] 504 ... 506 2.5. Operational State 508 "isis" container provides operational states for ISIS. This 509 container is divided in multiple components: 511 o system-counters : provides statistical informations about the 512 global system. 514 o interface-counters : provides statistical informations for each 515 interface. 517 o packet-counters : provides statistical informations for each type 518 of PDU. 520 o interface : provides configuration state information for each 521 interface. 523 o adjacencies: provides state information about current ISIS 524 adjacencies. 526 o spf-log: provides information about SPF events on the node. 528 o lsp-log: provides information about LSP events on the node 529 (reception of an LSP or modification of local LSP). 531 o database: provides details on current LSDB. 533 o hostnames: provides information about system-id to hostname 534 mappings. 536 augment /rt:routing-state/rt:routing-instance/rt:routing-protocols/rt:routing-protocol: 537 +--ro isis 538 +--ro system-counters 539 | +--ro level* [level] 540 | +--ro level level-number 541 | +--ro corrupted-lsps? uint32 542 | +--ro authentication-type-fails? uint32 543 | +--ro authentication-fails? uint32 544 | +--ro database-overload? uint32 545 | +--ro own-lsp-purge? uint32 546 | +--ro manual-address-drop-from-area? uint32 547 | +--ro max-sequence? uint32 548 | +--ro sequence-number-skipped? uint32 549 | +--ro id-len-mismatch? uint32 550 | +--ro partition-changes? uint32 551 | +--ro lsp-errors? uint32 552 | +--ro spf-runs? uint32 553 +--ro interface-counters 554 | +--ro interface* [interface] 555 | +--ro interface string 556 | +--ro adjacency-changes? uint32 557 | +--ro adjacency-number? uint32 558 | +--ro init-fails? uint32 559 | +--ro adjacency-rejects? uint32 560 | +--ro id-len-mismatch? uint32 561 | +--ro max-area-addresses-mismatch? uint32 562 | +--ro authentication-type-fails? uint32 563 | +--ro authentication-fails? uint32 564 | +--ro lan-dis-changes? uint32 565 +--ro packet-counters 566 | +--ro level* [level] 567 | +--ro level level-number 568 | +--ro iih 569 | | +--ro in? uint32 570 | | +--ro out? uint32 571 | +--ro ish 572 | | +--ro in? uint32 573 | | +--ro out? uint32 574 | +--ro esh 575 | | +--ro in? uint32 576 | | +--ro out? uint32 577 | +--ro lsp 578 | | +--ro in? uint32 579 | | +--ro out? uint32 580 | +--ro psnp 581 | | +--ro in? uint32 582 | | +--ro out? uint32 583 | +--ro csnp 584 | | +--ro in? uint32 585 | | +--ro out? uint32 586 | +--ro unknown 587 | +--ro in? uint32 588 | +--ro out? uint32 589 +--ro interfaces 590 | +--ro interfaces* [interface] 591 | +--ro interface string 592 | +--ro circuit-id? circuit-id 593 | +--ro admin-state? admin-state 594 | +--ro oper-state? oper-state 595 | +--ro interface-type? interface-type 596 | +--ro level? level 597 | +--ro passive? empty 598 | +--ro three-way-handshake? empty 599 +--ro adjacencies 600 | +--ro adjacency* 601 | +--ro interface? string 602 | +--ro level? level 603 | +--ro neighbor-sysid? system-id 604 | +--ro neighbor-extended-circuit-id? extended-circuit-id 605 | +--ro neighbor-snpa? snpa 606 | +--ro neighbor-level? level 607 | +--ro hold-timer? uint16 608 | +--ro neighbor-priority? uint8 609 | +--ro lastuptime? yang:timestamp 610 | +--ro state? enumeration 611 +--ro spf-log 612 | +--ro event* [id] 613 | +--ro id uint32 614 | +--ro spf-type? enumeration 615 | +--ro level? level-number 616 | +--ro spf-delay? uint32 617 | +--ro schedule-timestamp? yang:timestamp 618 | +--ro start-timestamp? yang:timestamp 619 | +--ro end-timestamp? yang:timestamp 620 | +--ro trigger-lsp* [lsp] 621 | +--ro lsp lsp-id 622 | +--ro sequence? uint32 623 +--ro lsp-log 624 | +--ro event* [id] 625 | +--ro id uint32 626 | +--ro level? level-number 627 | +--ro lsp 628 | | +--ro lsp? lsp-id 629 | | +--ro sequence? uint32 630 | +--ro received-timestamp? yang:timestamp 631 +--ro database 632 | +--ro level-db* [level] 633 | +--ro level level-number 634 | +--ro lsp* [lsp-id] 635 | +--ro lsp-id lsp-id 636 | +--ro checksum? uint16 637 | +--ro remaining-lifetime? uint16 638 | +--ro sequence? uint32 639 | +--ro attributes? bits 640 | +--ro is-neighbor 641 | | +--ro neighbor* [neighbor-id] 642 | | ... 643 | +--ro authentication 644 | | +--ro authentication-type? authentication-type 645 | | +--ro authentication-key? string 646 | +--ro extended-is-neighbor 647 | | +--ro neighbor* [neighbor-id] 648 | | ... 649 | +--ro ipv4-internal-reachability 650 | | +--ro prefixes* [ip-prefix] 651 | | ... 652 | +--ro protocol-supported* uint8 653 | +--ro ipv4-external-reachability 654 | | +--ro prefixes* [ip-prefix] 655 | | ... 656 | +--ro ipv4-addresses* inet:ipv4-address 657 | +--ro ipv4-te-routerid? inet:ipv4-address 658 | +--ro extended-ipv4-reachability 659 | | +--ro prefixes* [ip-prefix] 660 | | ... 661 | +--ro dynamic-hostname? string 662 | +--ro ipv6-te-routerid? inet:ipv6-address 663 | +--ro mt-is-neighbor 664 | | +--ro neighbor* [neighbor-id] 665 | | ... 666 | +--ro mt-entries 667 | | +--ro topology* [MT-ID] 668 | | ... 669 | +--ro ipv6-addresses* inet:ipv6-address 670 | +--ro mt-extended-ipv4-reachability 671 | | +--ro prefixes* [ip-prefix] 672 | | ... 673 | +--ro mt-ipv6-reachability 674 | | +--ro prefixes* [ip-prefix] 675 | | ... 676 | +--ro ipv6-reachability 677 | | +--ro prefixes* [ip-prefix] 678 | | ... 679 | +--ro router-capabilities 680 | +--ro binary? binary 681 +--ro hostnames 682 +--ro hostname* [system-id] 683 +--ro system-id system-id 684 +--ro hostname? string 686 3. RPC Operations 688 The "ietf-isis" module defines two RPC operations: 690 o clear-isis-database: reset the content of a particular ISIS 691 database and restart database synchronization with the neighbors. 693 o clear-isis-adjacency: restart a particular set of ISIS 694 adjacencies. 696 rpcs: 697 +---x clear-adjacency 698 | +--ro input 699 | +--ro routing-instance-name rt:routing-instance-state-ref 700 | +--ro routing-protocol-instance-name instance-state-ref 701 | +--ro level? level 702 | +--ro interface? string 703 +---x clear-database 704 +--ro input 705 +--ro routing-instance-name rt:routing-instance-state-ref 706 +--ro routing-protocol-instance-name instance-state-ref 707 +--ro level? level 709 4. Notifications 711 The "ietf-isis" module introduces some notifications : 713 database-overload : raised when overload condition is changed. 715 lsp-too-large : raised when the system tries to propagate a too 716 large PDU. 718 corrupted-lsp-detected : raised when the system find that an LSP 719 that was stored in memory has become corrupted. 721 attempt-to-exceed-max-sequence : This notification is sent when 722 the system wraps the 32-bit sequence counter of an LSP. 724 id-len-mismatch : This notification is sent when we receive a PDU 725 with a different value for the System ID length. 727 max-area-addresses-mismatch : This notification is sent when we 728 receive a PDU with a different value for the Maximum Area 729 Addresses. 731 own-lsp-purge : This notification is sent when the system receives 732 a PDU with its own system ID and zero age. 734 sequence-number-skipped : This notification is sent when the 735 system receives a PDU with its own system ID and different 736 contents. The system has to reissue the LSP with a higher 737 sequence number. 739 authentication-type-failure : This notification is sent when the 740 system receives a PDU with the wrong authentication type field. 742 authentication-failure : This notification is sent when the system 743 receives a PDU with the wrong authentication information. 745 version-skew : This notification is sent when the system receives 746 a PDU with a different protocol version number. 748 area-mismatch : This notification is sent when the system receives 749 a Hello PDU from an IS that does not share any area address. 751 rejected-adjacency : This notification is sent when the system 752 receives a Hello PDU from an IS but does not establish an 753 adjacency for some reason. 755 protocols-supported-mismatch : This notification is sent when the 756 system receives a non pseudonode LSP that has no matching protocol 757 supported. 759 lsp-error-detected : This notification is sent when the system 760 receives a LSP with a parse error. 762 adjacency-change : This notification is sent when an ISIS 763 adjacency moves to Up state or to Down state. 765 lsp-received : This notification is sent when a LSP is received. 767 lsp-generation : This notification is sent when a LSP is 768 regenerated. 770 notifications: 771 +---n database-overload 772 | +--ro instance-name? string 773 | +--ro instance-level? level 774 | +--ro overload? enumeration 775 +---n lsp-too-large 776 | +--ro instance-name? string 777 | +--ro instance-level? level 778 | +--ro interface-name? string 779 | +--ro interface-level? level 780 | +--ro extended-circuit-id? extended-circuit-id 781 | +--ro pdu-size? uint32 782 | +--ro lsp-id? lsp-id 783 +---n corrupted-lsp-detected 784 | +--ro instance-name? string 785 | +--ro instance-level? level 786 | +--ro lsp-id? lsp-id 787 +---n attempt-to-exceed-max-sequence 788 | +--ro instance-name? string 789 | +--ro instance-level? level 790 | +--ro lsp-id? lsp-id 791 +---n id-len-mismatch 792 | +--ro instance-name? string 793 | +--ro instance-level? level 794 | +--ro interface-name? string 795 | +--ro interface-level? level 796 | +--ro extended-circuit-id? extended-circuit-id 797 | +--ro pdu-field-len? uint8 798 | +--ro raw-pdu? binary 799 +---n max-area-addresses-mismatch 800 | +--ro instance-name? string 801 | +--ro instance-level? level 802 | +--ro interface-name? string 803 | +--ro interface-level? level 804 | +--ro extended-circuit-id? extended-circuit-id 805 | +--ro max-area-addresses? uint8 806 | +--ro raw-pdu? binary 807 +---n own-lsp-purge 808 | +--ro instance-name? string 809 | +--ro instance-level? level 810 | +--ro interface-name? string 811 | +--ro interface-level? level 812 | +--ro extended-circuit-id? extended-circuit-id 813 | +--ro lsp-id? lsp-id 814 +---n sequence-number-skipped 815 | +--ro instance-name? string 816 | +--ro instance-level? level 817 | +--ro interface-name? string 818 | +--ro interface-level? level 819 | +--ro extended-circuit-id? extended-circuit-id 820 | +--ro lsp-id? lsp-id 821 +---n authentication-type-failure 822 | +--ro instance-name? string 823 | +--ro instance-level? level 824 | +--ro interface-name? string 825 | +--ro interface-level? level 826 | +--ro extended-circuit-id? extended-circuit-id 827 | +--ro raw-pdu? binary 828 +---n authentication-failure 829 | +--ro instance-name? string 830 | +--ro instance-level? level 831 | +--ro interface-name? string 832 | +--ro interface-level? level 833 | +--ro extended-circuit-id? extended-circuit-id 834 | +--ro raw-pdu? binary 835 +---n version-skew 836 | +--ro instance-name? string 837 | +--ro instance-level? level 838 | +--ro interface-name? string 839 | +--ro interface-level? level 840 | +--ro extended-circuit-id? extended-circuit-id 841 | +--ro protocol-version? uint8 842 | +--ro raw-pdu? binary 843 +---n area-mismatch 844 | +--ro instance-name? string 845 | +--ro instance-level? level 846 | +--ro interface-name? string 847 | +--ro interface-level? level 848 | +--ro extended-circuit-id? extended-circuit-id 849 | +--ro raw-pdu? binary 850 +---n rejected-adjacency 851 | +--ro instance-name? string 852 | +--ro instance-level? level 853 | +--ro interface-name? string 854 | +--ro interface-level? level 855 | +--ro extended-circuit-id? extended-circuit-id 856 | +--ro raw-pdu? binary 857 | +--ro reason? string 858 +---n protocols-supported-mismatch 859 | +--ro instance-name? string 860 | +--ro instance-level? level 861 | +--ro interface-name? string 862 | +--ro interface-level? level 863 | +--ro extended-circuit-id? extended-circuit-id 864 | +--ro raw-pdu? binary 865 | +--ro protocols* uint8 866 +---n lsp-error-detected 867 | +--ro instance-name? string 868 | +--ro instance-level? level 869 | +--ro interface-name? string 870 | +--ro interface-level? level 871 | +--ro extended-circuit-id? extended-circuit-id 872 | +--ro lsp-id? lsp-id 873 | +--ro raw-pdu? binary 874 | +--ro error-offset? uint32 875 | +--ro tlv-type? uint8 876 +---n adjacency-change 877 | +--ro instance-name? string 878 | +--ro instance-level? level 879 | +--ro interface-name? string 880 | +--ro interface-level? level 881 | +--ro extended-circuit-id? extended-circuit-id 882 | +--ro neighbor? string 883 | +--ro neighbor-system-id? system-id 884 | +--ro level? level 885 | +--ro state? enumeration 886 | +--ro reason? string 887 +---n lsp-received 888 | +--ro instance-name? string 889 | +--ro instance-level? level 890 | +--ro interface-name? string 891 | +--ro interface-level? level 892 | +--ro extended-circuit-id? extended-circuit-id 893 | +--ro lsp-id? lsp-id 894 | +--ro sequence? uint32 895 | +--ro received-timestamp? yang:timestamp 896 | +--ro neighbor-system-id? system-id 897 +---n lsp-generation 898 +--ro instance-name? string 899 +--ro instance-level? level 900 +--ro lsp-id? lsp-id 901 +--ro sequence? uint32 902 +--ro send-timestamp? yang:timestamp 904 5. Interaction with Other YANG Modules 906 The "isis" configuration container augments the "/rt:routing/ 907 rt:routing-instance/rt:routing-protocols/routing-protocol" container 908 of the ietf-routing module by defining ISIS specific parameters. 910 The "isis" operational state container augments the "/rt:routing- 911 state/rt:routing-instance/rt:routing-protocols/routing-protocol" 912 container of the ietf-routing module by defining ISIS specific 913 operational states. 915 Some ISIS specific routes attributes are added to route objects of 916 the ietf-routing module by augmenting "/rt:routing- 917 state/rt:ribs/rt:rib/rt:routes/rt:route" and "/rt:active- 918 route/rt:output/rt:route". 920 6. YANG Module 922 file "ietf-isis@2014-10-24.yang" 924 module ietf-isis { 925 namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; 927 prefix isis; 929 import ietf-routing { 930 prefix "rt"; 931 } 933 import ietf-inet-types { 934 prefix inet; 935 } 936 import ietf-yang-types { 937 prefix yang; 938 } 940 organization 941 "IETF ISIS Working Group"; 943 contact 944 "WG List: <mailto:isis-wg@ietf.org> 946 Editor: Stephane Litkowski 947 <mailto:stephane.litkowski@orange.com> 949 Derek Yeung 950 <mailto:myeung@cisco.com> 951 Acee Lindem 952 <mailto:acee@cisco.com> 953 Jeffrey Zhang 954 <mailto:zzhang@juniper.net> 955 Ladislav Lhotka 956 <mailto:llhotka@nic.cz> 957 Yi Yang 958 <mailto:yiya@cisco.com> 959 Dean Bogdanovic 960 <mailto:deanb@juniper.net> 961 Kiran Agrahara Sreenivasa 962 <mailto:kkoushik@brocade.com> 963 Yingzhen Qu 964 <mailto:yiqu@cisco.com> 966 "; 968 description 969 "The YANG module defines a generic configuration model for 970 ISIS common across all of the vendor implementations."; 972 revision 2014-10-24 { 973 description 974 " 975 * Change hello-padding to container 976 * Change bfd to container 977 * Make BFD a feature 978 * Creates mpls-te container and put router-id 979 inside 980 * Remove GR helper disable and timers 981 "; 982 reference "draft-ietf-isis-yang-isis-cfg-01"; 983 } 984 revision 2014-10-21 { 985 description 986 " 987 * Interface metric move from af container to interface 988 container 989 * Hello-padding on interface moved to hello-padding-disable 990 with empty type 991 * three-way-handshake removed 992 * route preference changed to a choice 993 * csnp-authentication/psnp-authentication merged 994 to authentication container 995 * lsp-gen-interval-exp-delay removed 996 * Added overload-max-metric feature 997 * overload-max-metric is in a separate container 998 "; 999 reference ""; 1000 } 1002 revision 2014-10-07 { 1003 description 1004 " 1005 * Removed spf parameters (should be part of 1006 vendor specific extensions. 1007 * Removed hello parameters at global level. 1008 * Interface configuration uses a string rather 1009 than a reference. This permits to map to some 1010 vendor specific configuration. 1011 "; 1012 reference "draft-ietf-isis-yang-isis-00"; 1013 } 1014 revision 2014-09-26 { 1015 description 1016 " 1017 * Add BFD support 1018 * remove max-elements to max-area-addresses 1019 "; 1020 reference ""; 1021 } 1022 revision 2014-09-11 { 1023 description 1024 " 1025 * Add level parameter to ispf and spf delay 1026 * Add LSP generation as a feature 1027 * Make lsp-refresh a feature 1028 * Change parameter container to list 1029 "; 1030 reference ""; 1031 } 1032 revision 2014-09-05 { 1033 description 1034 " Rewrite of the global hierarchy."; 1035 reference ""; 1036 } 1037 revision 2014-08-06 { 1038 description 1039 " 1040 * isis-state renamed to isis. 1041 * Add GR support 1042 * Add meshgroup support 1043 * Add CLNS support 1044 * Add 64bits tags 1045 * Add notifications to be aligned with MIB4444 1046 * Add packet-counters, interface-counters, system-counters 1047 states 1048 * Add 3-way handshake support 1049 * Rename isis-adjacency-updown to adjacency-change 1050 * Add notification for LSP reception 1051 * Use feature for reference BW 1052 * Add lsp-retransmit-interval on interfaces 1053 * Rename lsp-interval to lsp-pacing-interval 1054 * Add ispf support as feature 1055 * Add spf delay support as feature (2step & exp backoff) 1056 * Add maximum-area-addresses 1057 * Add default-metric 1058 "; 1059 reference "RFC XXXX: YANG Data Model for ISIS Protocol"; 1060 } 1061 revision 2014-06-25 { 1062 description " 1063 * isis-cfg renamed to isis. 1064 * Add precisions on authentication-keys in description 1065 "; 1066 reference "draft-litkowski-isis-yang-isis-01"; 1067 } 1069 revision 2014-06-20 { 1070 description " 1071 * isis-op renamed to isis-state. 1072 * Multiple instances under ISIS are removed. 1073 * interface-cfg grouping removed and content 1074 is directly included in container isis. 1075 * TLVxx renamed with human-readable name in isis-database. 1076 TLV reference are putted in description. 1077 * Reference to core routing module were fixed. 1078 * Namespace fixed. 1079 * Add simple-iso-address type. 1081 * area-id and system-id in ISIS container are merged to 1082 nsap-address. 1083 * Add isis-system-id type. 1084 * Add isis-lsp-id type. 1085 * Add remaining-lifetime leaf in isis-database. 1086 * Add TLV2 (is-neighbor) in isis-database. 1087 * Renamed some container name for consistency 1088 reason ('isis-' prefixed). 1089 * Add new identities isis-cfg and isis-state. 1090 * Add descriptions. 1091 * Add notification isis-adjacency-updown. 1092 * Add RPC clear-isis-adjacency and clear-isis-database. 1093 "; 1094 reference "draft-litkowski-isis-yang-isis-00"; 1095 } 1097 revision 2014-06-11 { 1098 description "Initial revision."; 1099 reference "draft-litkowski-netmod-isis-cfg-00"; 1100 } 1101 identity isis { 1102 base rt:routing-protocol; 1103 description "Identity for the ISIS routing protocol."; 1104 } 1106 identity isis-adjacency-change { 1107 description "Identity for the ISIS routing protocol 1108 adjacency state."; 1109 } 1111 identity clear-isis-database { 1112 description "Identity for the ISIS routing protocol 1113 database reset action."; 1114 } 1116 identity clear-isis-adjacency { 1117 description "Identity for the ISIS routing protocol 1118 adjacency reset action."; 1119 } 1121 feature bfd { 1122 description 1123 "Support of BFD."; 1124 } 1125 feature overload-max-metric { 1126 description 1127 "Support of overload by setting 1128 all links to max metric."; 1130 } 1131 feature prefix-tag { 1132 description 1133 "Add 32bit tag to prefixes"; 1134 } 1135 feature prefix-tag64 { 1136 description 1137 "Add 64bit tag to prefixes"; 1138 } 1139 feature reference-bandwidth { 1140 description 1141 "Use a reference bandwidth to compute metric."; 1142 } 1143 feature ipv4-router-id { 1144 description 1145 "Support of IPv4 router ID configuration under ISIS."; 1146 } 1148 feature ipv6-router-id { 1149 description 1150 "Support of IPv6 router ID configuration under ISIS."; 1151 } 1153 feature multi-topology { 1154 description 1155 "Multitopology routing support."; 1156 } 1157 feature nlpid-control { 1158 description 1159 "This feature controls the advertisement 1160 of support NLPID within ISIS configuration."; 1161 } 1162 feature graceful-restart { 1163 description 1164 "Graceful restart support as per RFC5306."; 1165 } 1167 feature lsp-refresh { 1168 description 1169 "Configuration of LSP refresh interval."; 1170 } 1172 feature maximum-area-addresses { 1173 description 1174 "Support of maximum-area-addresses config."; 1175 } 1176 typedef instance-state-ref { 1177 type leafref { 1178 path "/rt:routing-state/rt:routing-instance/" 1179 +"rt:routing-protocols/rt:routing-protocol/rt:name"; 1180 } 1181 description 1182 "This type is used for leaves that reference state data of 1183 an ISIS protocol instance."; 1184 } 1186 typedef admin-state { 1187 type enumeration { 1188 enum "up" { 1189 description 1190 "Up state"; 1191 } 1192 enum "down" { 1193 description 1194 "Down state"; 1195 } 1196 } 1197 description 1198 "Administrative state of a component."; 1199 } 1200 typedef oper-state { 1201 type enumeration { 1202 enum "up" { 1203 description 1204 "Up state"; 1205 } 1206 enum "down" { 1207 description 1208 "Down state"; 1209 } 1210 } 1211 description 1212 "Operational state of a component."; 1213 } 1214 typedef circuit-id { 1215 type uint8; 1216 description 1217 "This type defines the circuit ID 1218 associated with an interface."; 1219 } 1221 typedef extended-circuit-id { 1222 type uint32; 1223 description 1224 "This type defines the extended circuit ID 1225 associated with an interface."; 1226 } 1228 typedef interface-type { 1229 type enumeration { 1230 enum broadcast { 1231 description "Broadcast interface type. 1232 Would result in DIS election."; 1233 } 1234 enum point-to-point { 1235 description 1236 "Point to point interface type."; 1237 } 1238 } 1239 description 1240 "This type defines the type of adjacency 1241 to be established on the interface. 1242 This is affecting the type of hello 1243 message that would be used."; 1245 } 1246 typedef authentication-type { 1247 type enumeration { 1248 enum none { 1249 description "No authentication used."; 1250 } 1251 enum plaintext { 1252 description "Plain text password used."; 1253 } 1254 enum message-digest { 1255 description "MD5 digest used."; 1256 } 1257 } 1258 description 1259 "This type defines available authentication types."; 1260 } 1262 typedef level { 1263 type enumeration { 1264 enum "level-1" { 1265 description 1266 "This enum describes L1 only capability."; 1267 } 1268 enum "level-2" { 1269 description 1270 "This enum describes L2 only capability."; 1271 } 1272 enum "level-all" { 1273 description 1274 "This enum describes both levels capability."; 1275 } 1276 } 1277 default "level-all"; 1278 description 1279 "This type defines ISIS level of an object."; 1281 } 1283 typedef level-number { 1284 type uint8 { 1285 range "1 .. 2"; 1286 } 1287 description 1288 "This type defines a current ISIS level."; 1289 } 1291 typedef lsp-id { 1292 type string { 1293 pattern 1294 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' 1295 +'{4}\.[0-9][0-9]-[0-9][0-9]'; 1296 } 1297 description 1298 "This type defines ISIS LSP ID using pattern, 1299 system id looks like : 0143.0438.AeF0.02-01"; 1300 } 1302 typedef area-address { 1303 type string { 1304 pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; 1305 } 1306 description 1307 "This type defines the area address."; 1308 } 1310 typedef snpa { 1311 type string { 1312 length "0 .. 20"; 1313 } 1314 description 1315 "This type defines Subnetwork Point of Attachement format."; 1317 } 1318 typedef system-id { 1319 type string { 1320 pattern 1321 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.00'; 1322 } 1323 description 1324 "This type defines ISIS system id using pattern, 1325 system id looks like : 0143.0438.AeF0.00"; 1326 } 1328 typedef wide-metric { 1329 type uint32 { 1330 range "0 .. 16777215"; 1331 } 1332 description 1333 "This type defines wide style format 1334 of ISIS metric."; 1335 } 1337 typedef std-metric { 1338 type uint8 { 1339 range "0 .. 63"; 1340 } 1341 description 1342 "This type defines old style format 1343 of ISIS metric."; 1344 } 1346 typedef mesh-group-state { 1347 type enumeration { 1348 enum "meshInactive" { 1349 description 1350 "Interface is not part of a mesh group."; 1351 } 1352 enum "meshSet" { 1353 description 1354 "Interface is part of a mesh group."; 1355 } 1356 enum "meshBlocked" { 1357 description 1358 "LSPs must not be flooded over that interface."; 1359 } 1360 } 1361 description 1362 "This type describes meshgroup state of an interface"; 1363 } 1365 grouping notification-instance-hdr { 1366 description 1367 "This group describes common instance specific 1368 data for notifications."; 1369 leaf instance-name { 1370 type string; 1371 description 1372 "Describes the name of the ISIS instance."; 1373 } 1374 leaf instance-level { 1375 type level; 1376 description 1377 "Describes the ISIS level of the instance."; 1378 } 1379 } 1381 grouping notification-interface-hdr { 1382 description 1383 "This group describes common interface specific 1384 data for notifications."; 1385 leaf interface-name { 1386 type string; 1387 description 1388 "Describes the name of the ISIS interface."; 1389 } 1390 leaf interface-level { 1391 type level; 1392 description 1393 "Describes the ISIS level of the interface."; 1394 } 1395 leaf extended-circuit-id { 1396 type extended-circuit-id; 1397 description 1398 "Describes the extended circuit-id of the interface."; 1399 } 1400 } 1402 grouping route-content { 1403 description 1404 "This group add isis-specific route properties."; 1405 leaf metric { 1406 type uint32; 1407 description 1408 "This leaf describes ISIS metric of a route."; 1409 } 1410 leaf-list tag { 1411 type uint64; 1412 description 1413 "This leaf describes list of tags associated 1414 with the route. The leaf describes both 1415 32bits and 64bits tags."; 1416 } 1417 leaf route-type { 1418 type enumeration { 1419 enum l2-up-internal { 1420 description "Level 2 internal route 1421 and not leaked to a lower level"; 1422 } 1423 enum l1-up-internal { 1424 description "Level 1 internal route 1425 and not leaked to a lower level"; 1426 } 1427 enum l2-up-external { 1428 description "Level 2 external route 1429 and not leaked to a lower level"; 1430 } 1431 enum l1-up-external { 1432 description "Level 1 external route 1433 and not leaked to a lower level"; 1434 } 1435 enum l2-down-internal { 1436 description "Level 2 internal route 1437 and leaked to a lower level"; 1438 } 1439 enum l1-down-internal { 1440 description "Level 1 internal route 1441 and leaked to a lower level"; 1442 } 1443 enum l2-down-external { 1444 description "Level 2 external route 1445 and leaked to a lower level"; 1446 } 1447 enum l1-down-external { 1448 description "Level 1 external route 1449 and leaked to a lower level"; 1450 } 1451 } 1452 description 1453 "This leaf describes the type of ISIS route."; 1454 } 1455 } 1457 augment "/rt:routing-state/rt:ribs/rt:rib/rt:routes/rt:route" { 1458 when "rt:source-protocol = 'isis:isis'" { 1459 description "ISIS-specific route attributes."; 1460 } 1461 uses route-content; 1462 description 1463 "This augments route object in RIB with ISIS-specific 1464 attributes."; 1465 } 1467 augment "/rt:active-route/rt:output/rt:route" 1468 { 1469 uses route-content; 1470 description "ISIS-specific route attributes."; 1471 } 1473 grouping prefix-ipv4-std { 1474 description 1475 "This group defines attributes of an 1476 IPv4 standard prefix."; 1477 leaf up-down { 1478 type boolean; 1479 description 1480 "This leaf expresses the value of up/down bit."; 1481 } 1482 leaf i-e { 1483 type boolean; 1484 description 1485 "This leaf expresses the value of I/E bit."; 1486 } 1487 leaf ip-prefix { 1488 type inet:ipv4-address; 1489 description 1490 "This leaf describes the IPv4 prefix"; 1491 } 1492 leaf prefix-len { 1493 type uint8; 1494 description 1495 "This leaf describes the IPv4 prefix len in bits"; 1496 } 1497 leaf default-metric { 1498 type std-metric; 1499 description 1500 "This leaf describes the ISIS default metric value"; 1501 } 1502 container delay-metric { 1503 leaf metric { 1504 type std-metric; 1505 description 1506 "This leaf describes the ISIS delay metric value"; 1507 } 1508 leaf supported { 1509 type boolean; 1510 default "false"; 1511 description 1512 "This leaf describes if the metric is supported."; 1513 } 1515 description 1516 "This container defines the ISIS delay metric."; 1517 } 1518 container expense-metric { 1519 leaf metric { 1520 type std-metric; 1521 description 1522 "This leaf describes the ISIS expense metric value"; 1523 } 1524 leaf supported { 1525 type boolean; 1526 default "false"; 1527 description 1528 "This leaf describes if the metric is supported."; 1529 } 1530 description 1531 "This container defines the ISIS expense metric."; 1532 } 1533 container error-metric { 1534 leaf metric { 1535 type std-metric; 1536 description 1537 "This leaf describes the ISIS error metric value"; 1538 } 1539 leaf supported { 1540 type boolean; 1541 default "false"; 1542 description 1543 "This leaf describes if the metric is supported."; 1544 } 1546 description 1547 "This container defines the ISIS error metric."; 1548 } 1549 } 1551 grouping prefix-ipv4-extended { 1552 description 1553 "This group defines attributes of an 1554 IPv4 extended prefix."; 1555 leaf up-down { 1556 type boolean; 1557 description 1558 "This leaf expresses the value of up/down bit."; 1559 } 1560 leaf ip-prefix { 1561 type inet:ipv4-address; 1562 description 1563 "This leaf describes the IPv4 prefix"; 1564 } 1565 leaf prefix-len { 1566 type uint8; 1567 description 1568 "This leaf describes the IPv4 prefix len in bits"; 1569 } 1571 leaf metric { 1572 type wide-metric; 1573 description 1574 "This leaf describes the ISIS metric value"; 1575 } 1576 leaf-list tag { 1577 type uint32; 1578 description 1579 "This leaf describes a list of tags associated with 1580 the prefix."; 1581 } 1582 leaf-list tag64 { 1583 type uint64; 1584 description 1585 "This leaf describes a list of 64-bit tags associated with 1586 the prefix."; 1587 } 1588 } 1590 grouping prefix-ipv6-extended { 1591 description 1592 "This group defines attributes of an 1593 IPv6 prefix."; 1594 leaf up-down { 1595 type boolean; 1596 description 1597 "This leaf expresses the value of up/down bit."; 1598 } 1599 leaf ip-prefix { 1600 type inet:ipv6-address; 1601 description 1602 "This leaf describes the IPv6 prefix"; 1603 } 1604 leaf prefix-len { 1605 type uint8; 1606 description 1607 "This leaf describes the IPv4 prefix len in bits"; 1608 } 1610 leaf metric { 1611 type wide-metric; 1612 description 1613 "This leaf describes the ISIS metric value"; 1614 } 1615 leaf-list tag { 1616 type uint32; 1617 description 1618 "This leaf describes a list of tags associated with 1619 the prefix."; 1620 } 1621 leaf-list tag64 { 1622 type uint64; 1623 description 1624 "This leaf describes a list of 64-bit tags associated with 1625 the prefix."; 1626 } 1627 } 1629 grouping neighbor-extended { 1630 description 1631 "This group defines attributes of an 1632 ISIS extended neighbor."; 1633 leaf neighbor-id { 1634 type system-id; 1635 description 1636 "This leaf describes the system-id of the neighbor."; 1637 } 1638 leaf metric { 1639 type wide-metric; 1640 description 1641 "This leaf describes the ISIS metric value"; 1642 } 1643 } 1645 grouping neighbor { 1646 description 1647 "This group defines attributes of an 1648 ISIS standard neighbor."; 1649 leaf neighbor-id { 1650 type system-id; 1651 description 1652 "This leaf describes the system-id of the neighbor."; 1654 } 1655 leaf i-e { 1656 type boolean; 1657 description 1658 "This leaf expresses the value of I/E bit."; 1659 } 1660 leaf default-metric { 1661 type std-metric; 1662 description 1663 "This leaf describes the ISIS default metric value"; 1664 } 1665 container delay-metric { 1666 leaf metric { 1667 type std-metric; 1668 description 1669 "This leaf describes the ISIS delay metric value"; 1670 } 1671 leaf supported { 1672 type boolean; 1673 default "false"; 1674 description 1675 "This leaf describes if the metric is supported."; 1676 } 1677 description 1678 "This container defines the ISIS delay metric."; 1679 } 1680 container expense-metric { 1681 leaf metric { 1682 type std-metric; 1683 description 1684 "This leaf describes the ISIS delay expense value"; 1685 } 1686 leaf supported { 1687 type boolean; 1688 default "false"; 1689 description 1690 "This leaf describes if the metric is supported."; 1691 } 1692 description 1693 "This container defines the ISIS expense metric."; 1694 } 1695 container error-metric { 1696 leaf metric { 1697 type std-metric; 1698 description 1699 "This leaf describes the ISIS error metric value"; 1700 } 1701 leaf supported { 1702 type boolean; 1703 default "false"; 1704 description 1705 "This leaf describes if the metric is supported."; 1706 } 1707 description 1708 "This container defines the ISIS error metric."; 1709 } 1710 } 1712 grouping database { 1713 description 1714 "This group defines attributes of an 1715 ISIS database (Link State DB)."; 1716 leaf lsp-id { 1717 type lsp-id; 1718 description 1719 "This leaf describes the LSP ID of the LSP."; 1720 } 1721 leaf checksum { 1722 type uint16; 1723 description 1724 "This leaf describes the checksum of the LSP."; 1725 } 1726 leaf remaining-lifetime { 1727 type uint16; 1728 units "seconds"; 1729 description 1730 "This leaf describes the remaining lifetime 1731 in seconds before the LSP expiration."; 1732 } 1733 leaf sequence { 1734 type uint32; 1735 description 1736 "This leaf describes the sequence number of the LSP."; 1737 } 1738 leaf attributes { 1739 type bits { 1740 bit PARTITIONNED { 1741 description 1742 "If set, the originator supports partition 1743 repair."; 1744 } 1745 bit ATTACHED-ERROR { 1746 description 1747 "If set, the originator is attached to 1748 another area using the referred metric."; 1749 } 1750 bit ATTACHED-EXPENSE { 1751 description 1752 "If set, the originator is attached to 1753 another area using the referred metric."; 1754 } 1755 bit ATTACHED-DELAY { 1756 description 1757 "If set, the originator is attached to 1758 another area using the referred metric."; 1759 } 1760 bit ATTACHED-DEFAULT { 1761 description 1762 "If set, the originator is attached to 1763 another area using the referred metric."; 1764 } 1765 bit OVERLOAD { 1766 description 1767 "If set, the originator is overloaded, 1768 and must be avoided in path calculation."; 1769 } 1770 } 1771 description 1772 "This leaf describes attributes of the LSP."; 1773 } 1775 container is-neighbor { 1776 list neighbor { 1777 key "neighbor-id"; 1778 uses neighbor; 1779 description 1780 "List of neighbors."; 1781 } 1782 description 1783 "This leaf describes list of ISIS neighbors. 1784 ISIS reference is TLV 2."; 1785 } 1787 container authentication { 1788 leaf authentication-type { 1789 type authentication-type; 1790 description 1791 "This leaf describes the authentication type 1792 to be used."; 1793 } 1794 leaf authentication-key { 1795 type string; 1796 description 1797 "This leaf describes the authentication key 1798 to be used. For security reason, the 1799 authentication key MUST NOT be presented 1800 in plaintext format. Authors recommends 1801 to use MD5 hash to present the authentication-key."; 1802 } 1803 description "This container describes authentication 1804 information of the node. ISIS reference is TLV 10."; 1805 } 1807 container extended-is-neighbor { 1808 list neighbor { 1809 key "neighbor-id"; 1810 uses neighbor-extended; 1811 description 1812 "List of neighbors."; 1813 } 1814 description 1815 "This container describes list of ISIS extended 1816 neighbors. 1817 ISIS reference is TLV 22."; 1818 } 1820 container ipv4-internal-reachability { 1821 list prefixes { 1822 key "ip-prefix"; 1823 uses prefix-ipv4-std; 1824 description 1825 "List of prefixes."; 1826 } 1827 description 1828 "This container describes list of IPv4 internal 1829 reachability information. 1830 ISIS reference is TLV 128."; 1831 } 1833 leaf-list protocol-supported { 1834 type uint8; 1835 description 1836 "This leaf describes the list of 1837 supported protocols. 1838 ISIS reference is TLV 129."; 1839 } 1841 container ipv4-external-reachability { 1842 list prefixes { 1843 key "ip-prefix"; 1844 uses prefix-ipv4-std; 1845 description 1846 "List of prefixes."; 1847 } 1848 description 1849 "This container describes list of IPv4 external 1850 reachability information. 1851 ISIS reference is TLV 130."; 1852 } 1854 leaf-list ipv4-addresses { 1855 type inet:ipv4-address; 1856 description 1857 "This leaf describes the IPv4 addresses of the node. 1858 ISIS reference is TLV 132."; 1859 } 1861 leaf ipv4-te-routerid { 1863 type inet:ipv4-address; 1864 description 1865 "This leaf describes the IPv4 Traffic Engineering 1866 router ID of the node. 1867 ISIS reference is TLV 134."; 1868 } 1870 container extended-ipv4-reachability { 1872 list prefixes { 1873 key "ip-prefix"; 1874 uses prefix-ipv4-extended; 1875 description 1876 "List of prefixes."; 1877 } 1878 description 1879 "This container describes list of IPv4 extended 1880 reachability information. 1881 ISIS reference is TLV 135."; 1882 } 1884 leaf dynamic-hostname { 1885 type string; 1887 description 1888 "This leaf describes the name of the node. 1889 ISIS reference is TLV 137."; 1890 } 1892 leaf ipv6-te-routerid { 1893 type inet:ipv6-address; 1894 description 1895 "This leaf describes the IPv6 Traffic Engineering 1896 router ID of the node. 1897 ISIS reference is TLV 140."; 1898 } 1900 container mt-is-neighbor { 1901 list neighbor { 1902 key "neighbor-id"; 1903 leaf MT-ID { 1904 type uint16 { 1905 range "0 .. 4095"; 1906 } 1907 description 1908 "This leaf defines the identifier 1909 of a topology."; 1910 } 1911 uses neighbor-extended; 1912 description 1913 "List of neighbors."; 1914 } 1915 description 1916 "This container describes list of ISIS multi-topology 1917 neighbors. 1918 ISIS reference is TLV 223."; 1919 } 1921 container mt-entries { 1922 list topology { 1923 key "MT-ID"; 1925 leaf MT-ID { 1926 type uint16 { 1927 range "0 .. 4095"; 1928 } 1929 description 1930 "This leaf defines the identifier 1931 of a topology."; 1932 } 1934 leaf attributes { 1935 type bits { 1936 bit OVERLOAD { 1937 description 1938 "If set, the originator is overloaded, 1939 and must be avoided in path 1940 calculation."; 1942 } 1943 bit ATTACHED { 1944 description 1945 "If set, the originator is attached to 1946 another area using the referred metric."; 1947 } 1948 } 1949 description 1950 "This leaf describes attributes of the LSP 1951 for the associated topology."; 1952 } 1953 description 1954 "List of topologies supported."; 1955 } 1956 description 1957 "This container describes the topology supported. 1958 ISIS reference is TLV 229."; 1959 } 1961 leaf-list ipv6-addresses { 1962 type inet:ipv6-address; 1963 description 1964 "This leaf describes the IPv6 interface 1965 addresses of the node. 1966 ISIS reference is TLV 232."; 1967 } 1969 container mt-extended-ipv4-reachability { 1970 list prefixes { 1971 key "ip-prefix"; 1972 leaf MT-ID { 1973 type uint16 { 1974 range "0 .. 4095"; 1975 } 1976 description 1977 "This leaf defines the identifier 1978 of a topology."; 1979 } 1980 uses prefix-ipv4-extended; 1981 description 1982 "List of prefixes."; 1984 } 1985 description 1986 "This container describes list of IPv4 1987 reachability information in multi-topology 1988 environment. 1989 ISIS reference is TLV 235."; 1990 } 1992 container mt-ipv6-reachability { 1993 list prefixes { 1994 key "ip-prefix"; 1995 leaf MT-ID { 1996 type uint16 { 1997 range "0 .. 4095"; 1998 } 1999 description 2000 "This leaf defines the identifier 2001 of a topology."; 2002 } 2003 uses prefix-ipv6-extended; 2004 description 2005 "List of prefixes."; 2006 } 2007 description 2008 "This container describes list of IPv6 2009 reachability information in multi-topology 2010 environment. 2011 ISIS reference is TLV 237."; 2012 } 2014 container ipv6-reachability { 2015 list prefixes { 2016 key "ip-prefix"; 2017 uses prefix-ipv6-extended; 2018 description 2019 "List of prefixes."; 2020 } 2021 description 2022 "This container describes list of IPv6 2023 reachability information. 2024 ISIS reference is TLV 236."; 2025 } 2027 container router-capabilities { 2028 leaf binary { 2029 type binary; 2030 description 2031 "This leaf describes the capability of the node. 2032 Format is binary according to the protocol encoding."; 2033 } 2034 description 2035 "This container describes the capabilities of the node. 2036 This container may be extended with detailed 2037 information. 2038 ISIS reference is TLV 242."; 2039 } 2040 } 2042 augment "/rt:routing/rt:routing-instance/rt:routing-protocols/" 2043 +"rt:routing-protocol" { 2044 when "rt:type = 'isis:isis'" { 2045 description 2046 "This augment is only valid when routing protocol 2047 instance type is isis."; 2048 } 2049 description 2050 "This augments a routing protocol instance with ISIS 2051 specific parameters."; 2052 container isis { 2054 list instance { 2055 must "count(area-address) > 0" { 2056 error-message "At least one area-address 2057 must be configured."; 2058 description 2059 "Enforce configuration of at least one area."; 2060 } 2062 key routing-instance; 2064 leaf routing-instance { 2065 type rt:routing-instance-ref; 2066 description 2067 "Reference routing instance. 2068 For protocol centric model, which is 2069 supported in 2070 default-instance only, this could reference 2071 any VRF routing-instance. 2072 For VRF centric model, must reference the 2073 enclosing routing-instance."; 2074 } 2076 leaf level-type { 2077 type level; 2078 default "level-all"; 2079 description 2080 "This leaf describes the type of ISIS node. 2081 A node can be level-1-only, level-2-only 2082 or level-1-2. 2083 "; 2084 } 2086 leaf system-id { 2087 type system-id; 2088 description 2089 "This leaf defines the system-id of the node."; 2090 } 2092 leaf maximum-area-addresses { 2093 if-feature maximum-area-addresses; 2094 type uint8; 2095 default 3; 2096 description 2097 "Defines the maximum areas supported."; 2098 } 2100 leaf-list area-address { 2101 type area-address; 2102 description 2103 "List of areas supported by the 2104 protocol instance."; 2105 } 2107 container mpls-te { 2108 leaf ipv4-router-id { 2109 if-feature ipv4-router-id; 2110 type inet:ipv4-address; 2111 description 2112 "Router ID value that would be used in 2113 TLV 134."; 2114 } 2115 leaf ipv6-router-id { 2116 if-feature ipv6-router-id; 2117 type inet:ipv6-address; 2118 description 2119 "Router ID value that would be used in 2120 TLV 140."; 2121 } 2122 description 2123 "This container handles mpls te config."; 2124 } 2125 leaf reference-bandwidth { 2126 if-feature reference-bandwidth; 2127 type uint32; 2128 units "bps"; 2129 description 2130 "This leaf defines the bandwidth for calculating 2131 metric."; 2132 } 2134 leaf lsp-mtu { 2135 type uint16; 2136 units "bytes"; 2137 default 1492; 2138 description 2139 "This leaf describes the maximum size of a 2140 LSP PDU in bytes."; 2141 } 2142 leaf lsp-lifetime { 2143 type uint16; 2144 units "seconds"; 2145 description 2146 "This leaf describes the lifetime of the router 2147 LSP in seconds."; 2148 } 2149 leaf lsp-refresh { 2150 if-feature lsp-refresh; 2151 type uint16; 2152 units "seconds"; 2153 description 2154 "This leaf describes the refresh interval of the 2155 router LSP in seconds."; 2156 } 2158 container graceful-restart { 2159 if-feature graceful-restart; 2160 leaf enabled { 2161 type boolean; 2162 description 2163 "Control enabling the feature."; 2164 } 2165 description 2166 "This container activates graceful restart."; 2167 } 2169 list authentication { 2170 key level; 2172 leaf key { 2173 type string; 2174 description 2175 "This leaf describes the 2176 authentication key."; 2177 } 2178 leaf type { 2179 type authentication-type; 2180 description 2181 "This leaf describes the authentication 2182 type to be used."; 2183 } 2184 leaf level { 2185 type level; 2186 description 2187 "Level applicability."; 2188 } 2189 description 2190 "Container for ISIS authentication. 2191 It covers both LSPs and SNPs."; 2192 } 2194 list metric-type { 2195 key level; 2197 leaf value { 2198 type enumeration { 2199 enum wide-only { 2200 description 2201 "Advertise new metric style only 2202 (RFC5305)"; 2203 } 2204 enum old-only { 2205 description 2206 "Advertise old metric style only 2207 (RFC1195)"; 2208 } 2209 enum both { 2210 description "Advertise both metric 2211 styles"; 2212 } 2213 } 2214 description 2215 "This leaf describes the type of metric 2216 to be generated. 2217 Wide-only means only new metric style 2218 is generated, 2219 old-only means that only old style metric 2220 is generated, 2221 and both means that both are advertised. 2222 This leaf is only affecting IPv4 metrics."; 2223 } 2224 leaf level { 2225 type level; 2226 description 2227 "Level applicability."; 2228 } 2229 description 2230 "Metric style container."; 2231 } 2232 list preference { 2233 key level; 2235 choice granularity { 2236 case detail { 2237 leaf internal { 2238 type uint8; 2239 description 2240 "This leaf defines the protocol 2241 preference for internal routes."; 2242 } 2243 leaf external { 2244 type uint8; 2245 description 2246 "This leaf defines the protocol 2247 preference for external routes."; 2248 } 2249 } 2250 case coarse { 2251 leaf default { 2252 type uint8; 2253 description 2254 "This leaf defines the protocol 2255 preference for all ISIS routes."; 2256 } 2257 } 2258 description 2259 "Choice for implementation of route preference."; 2260 } 2262 leaf level { 2263 type level; 2264 description 2265 "Level applicability."; 2266 } 2267 description 2268 "This leaf defines the protocol preference."; 2269 } 2271 list default-metric { 2272 key level; 2274 leaf value { 2275 type wide-metric; 2276 description 2277 "Value of the metric"; 2278 } 2279 leaf level { 2280 type level; 2281 description 2282 "Level applicability of the metric."; 2283 } 2284 description 2285 "Defines the metric to be used by default."; 2286 } 2287 list af { 2288 if-feature nlpid-control; 2289 key af; 2290 leaf af { 2291 type string; 2292 description 2293 "Address-family"; 2294 } 2296 leaf enabled { 2297 type boolean; 2298 description 2299 "Describes the activation state of the 2300 AF."; 2301 } 2302 description 2303 "This list permits activation 2304 of new address families."; 2306 } 2308 list topologies { 2309 if-feature multi-topology; 2311 key "name"; 2312 leaf enabled { 2313 type boolean; 2314 description 2315 "Describes the activation state of the 2316 AF."; 2317 } 2318 leaf name { 2319 type rt:rib-ref; 2320 description "RIB"; 2321 } 2322 list default-metric { 2323 key level; 2325 leaf value { 2326 type wide-metric; 2327 description 2328 "Value of the metric"; 2329 } 2330 leaf level { 2331 type level; 2332 description 2333 "Level applicability of the metric."; 2334 } 2335 description 2336 "Defines the metric to be used by default."; 2337 } 2338 description 2339 "List of topologies"; 2340 } 2342 list overload { 2343 key level; 2345 leaf status { 2346 type boolean; 2347 description 2348 "This leaf defines the overload status."; 2349 } 2351 leaf timeout { 2352 type uint16; 2353 units "seconds"; 2354 description 2355 "This leaf defines the timeout in seconds 2356 of the overload condition."; 2357 } 2358 leaf level { 2359 type level; 2360 description 2361 "Level applicability of the metric."; 2363 } 2364 description 2365 "This leaf describes if the router is 2366 set to overload state."; 2367 } 2369 list overload-max-metric { 2370 if-feature overload-max-metric; 2371 key level; 2373 leaf status { 2374 type boolean; 2375 description 2376 "This leaf defines the overload status."; 2377 } 2379 leaf timeout { 2380 type uint16; 2381 units "seconds"; 2382 description 2383 "This leaf defines the timeout in seconds 2384 of the overload condition."; 2385 } 2386 leaf level { 2387 type level; 2388 description 2389 "Level applicability of the metric."; 2390 } 2391 description 2392 "This leaf describes if the router is 2393 set to overload state."; 2394 } 2396 container interfaces { 2397 list interface { 2398 key "name"; 2399 leaf name { 2400 type string; 2402 description 2403 "Reference to the interface within 2404 the routing-instance."; 2405 } 2406 leaf level-type { 2407 type level; 2408 default "level-all"; 2409 description 2410 "This leaf defines the associated ISIS 2411 level of the interface."; 2412 } 2413 leaf lsp-pacing-interval { 2414 type uint16; 2415 units "milliseconds"; 2416 description 2417 "This leaf defines the interval between 2418 LSP transmissions in milli-seconds"; 2419 } 2420 leaf lsp-retransmit-interval { 2421 type uint16; 2422 units "seconds"; 2423 description 2424 "This leaf defines the interval between 2425 retransmission of LSP"; 2426 } 2427 leaf passive { 2428 type boolean; 2429 default "false"; 2430 description 2431 "This leaf defines if interface is in 2432 passive mode (ISIS not running, 2433 but network is advertised)."; 2434 } 2435 leaf csnp-interval { 2436 type uint16; 2437 units "seconds"; 2438 description 2439 "This leaf defines the interval of CSNP 2440 messages."; 2441 } 2443 container hello-padding { 2444 leaf enabled { 2445 type boolean; 2446 default "true"; 2447 description 2448 "Status of Hello-padding activation. 2449 By default, the implementation shall 2450 pad HELLOs."; 2451 } 2453 description 2454 "This container handles ISIS hello padding 2455 configuration."; 2456 } 2458 leaf mesh-group-enabled { 2459 type mesh-group-state; 2460 description 2461 "Describes the mesh group state of 2462 the interface."; 2463 } 2465 leaf mesh-group { 2466 when "../mesh-group-enabled = meshSet" { 2467 description 2468 "Only valid when mesh-group-enabled 2469 equals meshSet"; 2470 } 2471 type uint8; 2472 description 2473 "Describes the mesh group ID of 2474 the interface."; 2475 } 2477 leaf interface-type { 2478 type interface-type; 2479 description 2480 "This leaf defines the type of adjacency 2481 to be established on the interface. 2482 This is affecting the type of hello 2483 message that would be used."; 2484 } 2486 leaf enabled { 2487 type boolean; 2488 default "true"; 2489 description 2490 "This leaf describes the administrative 2491 status of the ISIS interface."; 2493 } 2495 leaf-list tag { 2496 if-feature prefix-tag; 2498 type uint32; 2499 description 2500 "This leaf defines list of tags associated 2501 with the interface."; 2502 } 2504 leaf-list tag64 { 2505 if-feature prefix-tag64; 2506 type uint64; 2507 description 2508 "This leaf defines list of 64bits tags 2509 associated with the interface."; 2510 } 2512 list hello-authentication { 2513 key level; 2515 leaf type { 2516 type authentication-type; 2518 description 2519 "This leaf describes the authentication 2520 type to be used in hello messages."; 2521 } 2522 leaf key { 2523 type string; 2524 description 2525 "This leaf describes the 2526 authentication key 2527 to be used in hello messages. 2528 For security reason, the 2529 authentication key MUST 2530 NOT be presented 2531 in plaintext format upon a 2532 get-config reply. 2533 Authors recommends 2534 to use MD5 hash to present the 2535 authentication-key"; 2536 } 2537 leaf level { 2538 type level; 2539 description 2540 "Level applicability."; 2541 } 2542 description 2543 "This leaf describes the authentication type 2544 to be used in hello messages."; 2545 } 2547 list hello-interval { 2548 key level; 2550 leaf value { 2551 type uint16; 2552 units "seconds"; 2553 description 2554 "This leaf defines the interval of 2555 hello messages."; 2556 } 2557 leaf level { 2558 type level; 2559 description 2560 "Level applicability."; 2561 } 2562 description 2563 "This leaf defines the interval of 2564 hello messages."; 2565 } 2566 list hello-multiplier { 2567 key level; 2569 leaf value { 2570 type uint16; 2571 description 2572 "This leaf defines the number of 2573 hello failed to be received before 2574 declaring the adjacency down."; 2575 } 2576 leaf level { 2577 type level; 2578 description 2579 "Level applicability."; 2580 } 2581 description 2582 "This leaf defines the number of 2583 hello failed to be received before 2584 declaring the adjacency down."; 2585 } 2587 list priority { 2588 must 'interface-type = "broadcast"'; 2589 key level; 2590 leaf value { 2591 type uint8 { 2592 range "0 .. 127"; 2593 } 2595 description 2596 "This leaf describes the priority of 2597 the interface 2598 for DIS election."; 2599 } 2600 leaf level { 2601 type level; 2602 description 2603 "Level applicability."; 2604 } 2605 description 2606 "This leaf describes the priority of 2607 the interface 2608 for DIS election."; 2609 } 2610 list metric { 2611 key level; 2613 leaf value { 2614 type wide-metric; 2615 description 2616 "Metric value."; 2617 } 2618 leaf level { 2619 type level; 2620 description 2621 "Level applicability."; 2622 } 2623 description 2624 "Container for interface metric"; 2625 } 2626 list af { 2627 key af; 2629 leaf af { 2630 type string; 2631 description 2632 "Address-family"; 2633 } 2634 container bfd { 2635 if-feature bfd; 2636 leaf enabled { 2637 type boolean; 2638 default false; 2639 description 2640 "This leaf enables BFD."; 2641 } 2643 description 2644 "The container describes 2645 BFD config."; 2646 } 2648 description 2649 "List of AFs."; 2650 } 2652 list topologies { 2653 key name; 2655 leaf name { 2656 type rt:rib-ref; 2657 description 2658 "Name of RIB."; 2659 } 2660 list metric { 2661 key level; 2663 leaf value { 2664 type wide-metric; 2665 description 2666 "Metric value."; 2667 } 2668 leaf level { 2669 type level; 2670 description 2671 "Level applicability."; 2672 } 2673 description 2674 "Container for interface metric"; 2675 } 2676 description 2677 "List of topologies."; 2678 } 2680 description 2681 "List of ISIS interfaces."; 2682 } 2683 description 2684 "This container defines ISIS interface specific 2685 configuration objects."; 2686 } 2687 description 2688 "List of ISIS instances."; 2689 } 2690 description 2691 "This container defines ISIS specific configuration 2692 objects."; 2693 } 2694 } 2696 augment "/rt:routing-state/rt:routing-instance/" 2697 +"rt:routing-protocols/rt:routing-protocol" { 2698 when "rt:type = 'isis:isis'" { 2699 description 2700 "This augment is only valid when routing protocol 2701 instance type is isis."; 2702 } 2703 description 2704 "This augments routing protocol instance states with ISIS 2705 specific parameters."; 2706 container isis { 2707 config false; 2708 container system-counters { 2709 list level { 2710 key level; 2712 leaf level { 2713 type level-number; 2714 description 2715 "This leaf describes the ISIS level."; 2716 } 2717 leaf corrupted-lsps { 2718 type uint32; 2719 description 2720 "Number of corrupted in-memory LSPs detected. 2721 LSPs received from the wire with a bad 2722 checksum are silently dropped and not counted. 2723 LSPs received from the wire with parse errors 2724 are counted by lsp-errors."; 2725 } 2726 leaf authentication-type-fails { 2727 type uint32; 2728 description 2729 "Number of authentication type mismatches."; 2730 } 2731 leaf authentication-fails { 2732 type uint32; 2733 description 2734 "Number of authentication key failures."; 2735 } 2736 leaf database-overload { 2737 type uint32; 2738 description 2739 "Number of times the database has become 2740 overloaded."; 2741 } 2742 leaf own-lsp-purge { 2743 type uint32; 2744 description 2745 "Number of times a zero-aged copy of the 2746 system's own LSP is received from some 2747 other node."; 2748 } 2749 leaf manual-address-drop-from-area { 2750 type uint32; 2751 description 2752 "Number of times a manual address 2753 has been dropped from the area."; 2754 } 2755 leaf max-sequence { 2756 type uint32; 2757 description 2758 "Number of times the system has attempted 2759 to exceed the maximum sequence number."; 2760 } 2761 leaf sequence-number-skipped { 2762 type uint32; 2763 description 2764 "Number of times a sequence number skip has 2765 occured."; 2766 } 2767 leaf id-len-mismatch { 2768 type uint32; 2769 description 2770 "Number of times a PDU is received with 2771 a different value for ID field length 2772 from that of the receiving system."; 2773 } 2774 leaf partition-changes { 2775 type uint32; 2776 description 2777 "Number of partition changes detected."; 2778 } 2779 leaf lsp-errors { 2780 type uint32; 2781 description 2782 "Number of LSPs with errors we have 2783 received."; 2784 } 2785 leaf spf-runs { 2786 type uint32; 2787 description 2788 "Number of times we ran SPF at this level."; 2789 } 2790 description 2791 "List of supported levels."; 2792 } 2793 description 2794 "The container defines a list of counters 2795 for the IS."; 2796 } 2797 container interface-counters { 2798 list interface { 2799 key interface; 2801 leaf interface { 2802 type string; 2803 description 2804 "This leaf describes the name 2805 of the interface."; 2806 } 2808 leaf adjacency-changes { 2809 type uint32; 2810 description 2811 "The number of times an adjacency state 2812 change has occured on this interface."; 2813 } 2814 leaf adjacency-number { 2815 type uint32; 2816 description 2817 "The number of adjacencies on this 2818 interface."; 2819 } 2820 leaf init-fails { 2821 type uint32; 2822 description 2823 "The number of times initialization of 2824 this interface has failed. This counts 2825 events such as PPP NCP failures. 2826 Failures to form an adjacency are counted 2827 by adjacency-rejects."; 2828 } 2829 leaf adjacency-rejects { 2830 type uint32; 2831 description 2832 "The number of times an adjacency has been 2833 rejected on this interface."; 2834 } 2835 leaf id-len-mismatch { 2836 type uint32; 2837 description 2838 "The number of times an IS-IS PDU with an ID 2839 field length different from that for this 2840 system has been received on this interface."; 2842 } 2843 leaf max-area-addresses-mismatch { 2844 type uint32; 2845 description 2846 "The number of times an IS-IS PDU with 2847 according max area address field 2848 differs from that for 2849 this system has been received on this 2850 interface."; 2851 } 2852 leaf authentication-type-fails { 2853 type uint32; 2854 description 2855 "Number of authentication type mismatches."; 2856 } 2857 leaf authentication-fails { 2858 type uint32; 2859 description 2860 "Number of authentication key failures."; 2861 } 2862 leaf lan-dis-changes { 2863 type uint32; 2864 description 2865 "The number of times the DIS has changed 2866 on this interface at this level. 2867 If the interface type is point to point, 2868 the count is zero."; 2869 } 2870 description 2871 "List of interfaces."; 2872 } 2873 description 2874 "The container defines a list of counters 2875 for interfaces."; 2876 } 2877 container packet-counters { 2878 list level { 2879 key level; 2881 leaf level { 2882 type level-number; 2883 description 2884 "This leaf describes the ISIS level."; 2885 } 2887 container iih { 2888 leaf in { 2889 type uint32; 2890 description 2891 "Received PDUs."; 2892 } 2893 leaf out { 2894 type uint32; 2895 description 2896 "Sent PDUs."; 2897 } 2898 description 2899 "The number of IIH PDUs received/sent."; 2900 } 2901 container ish { 2902 leaf in { 2903 type uint32; 2904 description 2905 "Received PDUs."; 2906 } 2907 leaf out { 2908 type uint32; 2909 description 2910 "Sent PDUs."; 2911 } 2912 description 2913 "The number of ISH PDUs received/sent."; 2914 } 2915 container esh { 2916 leaf in { 2917 type uint32; 2918 description 2919 "Received PDUs."; 2920 } 2921 leaf out { 2922 type uint32; 2923 description 2924 "Sent PDUs."; 2925 } 2926 description 2927 "The number of ESH PDUs received/sent."; 2928 } 2929 container lsp { 2930 leaf in { 2931 type uint32; 2932 description 2933 "Received PDUs."; 2934 } 2935 leaf out { 2936 type uint32; 2937 description 2938 "Sent PDUs."; 2939 } 2940 description 2941 "The number of LSP PDUs received/sent."; 2942 } 2943 container psnp { 2944 leaf in { 2945 type uint32; 2946 description 2947 "Received PDUs."; 2948 } 2949 leaf out { 2950 type uint32; 2951 description 2952 "Sent PDUs."; 2953 } 2954 description 2955 "The number of PSNP PDUs received/sent."; 2956 } 2957 container csnp { 2958 leaf in { 2959 type uint32; 2960 description 2961 "Received PDUs."; 2962 } 2963 leaf out { 2964 type uint32; 2965 description 2966 "Sent PDUs."; 2967 } 2968 description 2969 "The number of CSNP PDUs received/sent."; 2970 } 2971 container unknown { 2972 leaf in { 2973 type uint32; 2974 description 2975 "Received PDUs."; 2976 } 2977 leaf out { 2978 type uint32; 2979 description 2980 "Sent PDUs."; 2981 } 2982 description 2983 "The number of unknown PDUs received/sent."; 2984 } 2985 description 2986 "List of supported levels."; 2987 } 2988 description 2989 "The container defines a list of PDU counters."; 2990 } 2991 container interfaces { 2992 list interfaces { 2993 key interface; 2995 leaf interface { 2996 type string; 2997 description 2998 "This leaf describes the name 2999 of the interface."; 3000 } 3001 leaf circuit-id { 3002 type circuit-id; 3003 description 3004 "This leaf describes the circuit-id 3005 associated with the interface."; 3006 } 3007 leaf admin-state { 3008 type admin-state; 3009 description 3010 "This leaf describes the admin state 3011 of the interface."; 3012 } 3013 leaf oper-state { 3014 type oper-state; 3015 description 3016 "This leaf describes the operational state 3017 of the interface."; 3018 } 3019 leaf interface-type { 3020 type interface-type; 3021 description 3022 "Type of interface to be used."; 3023 } 3024 leaf level { 3025 type level; 3026 description 3027 "Level associated with the interface."; 3028 } 3029 leaf passive { 3030 type empty; 3031 description 3032 "The interface is included in LSP, but 3033 does not run ISIS protocol."; 3035 } 3036 leaf three-way-handshake { 3037 type empty; 3038 description 3039 "The interface uses 3-way handshake."; 3040 } 3041 description 3042 "List of interfaces."; 3043 } 3044 description 3045 "The container defines operational parameters 3046 of interfaces."; 3047 } 3048 container adjacencies { 3049 list adjacency { 3050 leaf interface { 3051 type string; 3052 description 3053 "This leaf describes the name 3054 of the interface."; 3055 } 3056 leaf level { 3057 type level; 3058 description 3059 "This leaf describes the associated 3060 ISIS level of the interface. 3061 "; 3062 } 3063 leaf neighbor-sysid { 3064 type system-id; 3065 description 3066 "The system-id of the neighbor"; 3068 } 3069 leaf neighbor-extended-circuit-id { 3070 type extended-circuit-id; 3071 description 3072 "Circuit ID of the neighbor"; 3073 } 3074 leaf neighbor-snpa { 3075 type snpa; 3076 description 3077 "SNPA of the neighbor"; 3078 } 3079 leaf neighbor-level { 3080 type level; 3081 description 3082 "The type of the neighboring system."; 3084 } 3085 leaf hold-timer { 3086 type uint16; 3087 description 3088 "The holding time in seconds for this 3089 adjacency. This value is based on 3090 received hello PDUs and the elapsed 3091 time since receipt."; 3092 } 3093 leaf neighbor-priority { 3094 type uint8 { 3095 range "0 .. 127"; 3096 } 3097 description 3098 "Priority of the neighboring IS for becoming 3099 the DIS."; 3100 } 3101 leaf lastuptime { 3102 type yang:timestamp; 3103 description 3104 "When the adjacency most recently entered 3105 state 'up', measured in hundredths of a 3106 second since the last reinitialization of 3107 the network management subsystem. 3108 The value is 0 if the adjacency has never 3109 been in state 'up'."; 3111 } 3112 leaf state { 3113 type enumeration { 3114 enum "Up" { 3115 description 3116 "This state describes that 3117 adjacency is established."; 3118 } 3119 enum "Down" { 3120 description 3121 "This state describes that 3122 adjacency is NOT established."; 3123 } 3124 enum "Init" { 3125 description 3126 "This state describes that 3127 adjacency is establishing."; 3128 } 3129 } 3130 description 3131 "This leaf describes the state of the 3132 interface."; 3133 } 3134 description 3135 "List of operational adjacencies."; 3136 } 3137 description 3138 "This container lists the adjacencies of 3139 the local node."; 3140 } 3141 container spf-log { 3142 list event { 3143 key id; 3145 leaf id { 3146 type uint32; 3147 description 3148 "This leaf defines the event identifier. 3149 This is a purely internal value."; 3150 } 3151 leaf spf-type { 3152 type enumeration { 3153 enum full { 3154 description 3155 "Computation done is a Full SPF."; 3156 } 3157 enum incremental { 3158 description 3159 "Computation done is an 3160 incremental SPF."; 3161 } 3162 enum route-only { 3163 description 3164 "Computation done is a 3165 reachability computation 3166 only."; 3167 } 3168 } 3169 description 3170 "This leaf describes the type of computation 3171 used."; 3172 } 3173 leaf level { 3174 type level-number; 3175 description 3176 "This leaf describes the level affected by the 3177 the computation."; 3178 } 3179 leaf spf-delay { 3180 type uint32; 3181 units "milliseconds"; 3182 description 3183 "This leaf describes the SPF delay that 3184 was used for this event."; 3185 } 3186 leaf schedule-timestamp { 3187 type yang:timestamp; 3188 description 3189 "This leaf describes the timestamp 3190 when the computation was scheduled."; 3191 } 3192 leaf start-timestamp { 3193 type yang:timestamp; 3194 description 3195 "This leaf describes the timestamp 3196 when the computation was started."; 3197 } 3198 leaf end-timestamp { 3199 type yang:timestamp; 3200 description 3201 "This leaf describes the timestamp 3202 when the computation was ended."; 3203 } 3204 list trigger-lsp { 3205 key "lsp"; 3206 leaf lsp { 3207 type lsp-id; 3208 description 3209 "This leaf describes the LSPID 3210 of the LSP."; 3211 } 3212 leaf sequence { 3213 type uint32; 3214 description 3215 "This leaf describes the sequence 3216 number of the LSP."; 3217 } 3218 description 3219 "This leaf describes list of LSPs 3220 that triggered the computation."; 3221 } 3222 description 3223 "List of computation events."; 3224 } 3226 description 3227 "This container lists the SPF computation events."; 3229 } 3230 container lsp-log { 3231 list event { 3232 key id; 3234 leaf id { 3235 type uint32; 3236 description 3237 "This leaf defines the event identifier. 3238 This is a purely internal value."; 3239 } 3240 leaf level { 3241 type level-number; 3242 description 3243 "This leaf describes the level affected by the 3244 the computation."; 3245 } 3246 container lsp { 3247 leaf lsp { 3249 type lsp-id; 3250 description 3251 "This leaf describes the LSPID 3252 of the LSP."; 3253 } 3254 leaf sequence { 3255 type uint32; 3256 description 3257 "This leaf describes the sequence 3258 number of the LSP."; 3259 } 3260 description 3261 "This container describes the received LSP 3262 , in case of local LSP update the local 3263 LSP ID is referenced."; 3264 } 3266 leaf received-timestamp { 3267 type yang:timestamp; 3269 description 3270 "This leaf describes the timestamp 3271 when the LSP was received. In case of 3272 local LSP update, the timestamp refers 3273 to the local LSP update time."; 3274 } 3276 description 3277 "List of LSP events."; 3278 } 3280 description 3281 "This container lists the LSP reception events. 3282 Local LSP modification are also contained in the 3283 list."; 3284 } 3285 container database { 3286 list level-db { 3287 key level; 3289 leaf level { 3290 type level-number; 3291 description 3292 "Current level number"; 3293 } 3294 list lsp { 3295 key lsp-id; 3297 uses database; 3298 description 3299 "List of LSPs in LSDB."; 3300 } 3302 description 3303 "This container describes the list of LSPs 3304 in the level x database."; 3305 } 3307 description 3308 "This container describes ISIS Link State 3309 databases."; 3310 } 3311 container hostnames { 3313 list hostname { 3314 key system-id; 3315 leaf system-id { 3316 type system-id; 3317 description 3318 "This leaf describes the system-id 3319 associated with the hostname."; 3320 } 3321 leaf hostname { 3323 type string; 3324 description 3325 "This leaf describes the hostname 3326 associated with the system ID."; 3327 } 3328 description 3329 "List of system-id/hostname associations"; 3330 } 3332 description 3333 "This container describes the list 3334 of binding between system-id and 3335 hostnames."; 3336 } 3338 description 3339 "This container defines various ISIS states objects."; 3340 } 3341 } 3343 /* RPC methods */ 3345 rpc clear-adjacency { 3346 description 3347 "This RPC request clears a particular 3348 set of ISIS adjacencies. If the operation 3349 fails for ISIS internal reason, then 3350 error-tag and error-app-tag should be set 3351 to a meaningful value."; 3352 input { 3353 leaf routing-instance-name { 3354 type rt:routing-instance-state-ref; 3355 mandatory "true"; 3356 description 3357 "Name of the routing instance whose ISIS 3358 information is being queried. 3360 If the routing instance with name equal to the 3361 value of this parameter doesn't exist, then this 3362 operation SHALL fail with error-tag 'data-missing' 3363 and error-app-tag 'routing-instance-not-found'."; 3365 } 3366 leaf routing-protocol-instance-name { 3367 type instance-state-ref; 3368 mandatory "true"; 3369 description 3370 "Name of the ISIS protocol instance whose ISIS 3371 information is being queried. 3373 If the ISIS instance with name equal to the 3374 value of this parameter doesn't exist, then this 3375 operation SHALL fail with error-tag 'data-missing' 3376 and error-app-tag 3377 'routing-protocol-instance-not-found'."; 3378 } 3379 leaf level { 3380 type level; 3381 description 3382 "ISIS level of the adjacency to be cleared. 3383 If ISIS level is level-1-2, both level 1 and level 2 3384 adjacencies would be cleared. 3386 If the value provided is different from the one 3387 authorized in the enum type, then this 3388 operation SHALL fail with error-tag 'data-missing' 3389 and error-app-tag 3390 'bad-isis-level'. 3391 "; 3392 } 3393 leaf interface { 3394 type string; 3395 description 3396 "Name of the ISIS interface. 3398 If the ISIS interface with name equal to the 3399 value of this parameter doesn't exist, then this 3400 operation SHALL fail with error-tag 'data-missing' 3401 and error-app-tag 3402 'isis-interface-not-found'."; 3403 } 3404 } 3405 } 3407 rpc clear-database { 3408 description 3409 "This RPC request clears a particular 3410 ISIS database. If the operation 3411 fails for ISIS internal reason, then 3412 error-tag and error-app-tag should be set 3413 to a meaningful value."; 3414 input { 3415 leaf routing-instance-name { 3416 type rt:routing-instance-state-ref; 3417 mandatory "true"; 3418 description 3419 "Name of the routing instance whose ISIS 3420 information is being queried. 3422 If the routing instance with name equal to the 3423 value of this parameter doesn't exist, then this 3424 operation SHALL fail with error-tag 'data-missing' 3425 and error-app-tag 'routing-instance-not-found'."; 3427 } 3428 leaf routing-protocol-instance-name { 3429 type instance-state-ref; 3430 mandatory "true"; 3431 description 3432 "Name of the ISIS protocol instance whose ISIS 3433 information is being queried. 3435 If the ISIS instance with name equal to the 3436 value of this parameter doesn't exist, then this 3437 operation SHALL fail with error-tag 'data-missing' 3438 and error-app-tag 3439 'routing-protocol-instance-not-found'."; 3440 } 3441 leaf level { 3442 type level; 3443 description 3444 "ISIS level of the adjacency to be cleared. 3445 If ISIS level is level-1-2, both level 1 and level 2 3446 adjacencies would be cleared. 3448 If the value provided is different from the one 3449 authorized in the enum type, then this 3450 operation SHALL fail with error-tag 'data-missing' 3451 and error-app-tag 3452 'bad-isis-level'. 3453 "; 3454 } 3455 } 3457 } 3459 /* Notifications */ 3461 notification database-overload { 3462 uses notification-instance-hdr; 3464 leaf overload { 3465 type enumeration { 3466 enum "off" { 3467 description 3468 "The system has left overload condition."; 3469 } 3470 enum "on" { 3471 description 3472 "The system is in overload condition."; 3473 } 3475 } 3476 description 3477 "Describes the new overload state of the instance."; 3478 } 3479 description 3480 "This notification is sent when an ISIS instance 3481 overload condition changes."; 3482 } 3484 notification lsp-too-large { 3485 uses notification-instance-hdr; 3486 uses notification-interface-hdr; 3488 leaf pdu-size { 3489 type uint32; 3490 description 3491 "Size of the PDU"; 3492 } 3493 leaf lsp-id { 3494 type lsp-id; 3495 description 3496 "LSP ID."; 3497 } 3498 description 3499 "This notification is sent when we attempt 3500 to propagate an LSP that is larger than the 3501 dataLinkBlockSize for the circuit. 3502 The notification generation must be throttled 3503 with at least a 5 second gap. 3504 "; 3505 } 3507 notification corrupted-lsp-detected { 3508 uses notification-instance-hdr; 3509 leaf lsp-id { 3510 type lsp-id; 3511 description 3512 "LSP ID."; 3513 } 3514 description 3515 "This notification is sent when we find 3516 that an LSP that was stored in memory has 3517 become corrupted. 3518 "; 3519 } 3521 notification attempt-to-exceed-max-sequence { 3522 uses notification-instance-hdr; 3523 leaf lsp-id { 3524 type lsp-id; 3525 description 3526 "LSP ID."; 3527 } 3528 description 3529 "This notification is sent when the system 3530 wraps the 32-bit sequence counter of an LSP. 3531 "; 3532 } 3534 notification id-len-mismatch { 3535 uses notification-instance-hdr; 3536 uses notification-interface-hdr; 3538 leaf pdu-field-len { 3539 type uint8; 3540 description 3541 "Size of the ID length in the received PDU"; 3542 } 3543 leaf raw-pdu { 3544 type binary; 3545 description 3546 "Received raw PDU."; 3547 } 3548 description 3549 "This notification is sent when we receive a PDU 3550 with a different value for the System ID length. 3551 The notification generation must be throttled 3552 with at least a 5 second gap. 3553 "; 3554 } 3556 notification max-area-addresses-mismatch { 3557 uses notification-instance-hdr; 3558 uses notification-interface-hdr; 3560 leaf max-area-addresses { 3561 type uint8; 3562 description 3563 "Received number of supported areas"; 3564 } 3565 leaf raw-pdu { 3566 type binary; 3567 description 3568 "Received raw PDU."; 3569 } 3570 description 3571 "This notification is sent when we receive a PDU 3572 with a different value for the Maximum Area Addresses. 3573 The notification generation must be throttled 3574 with at least a 5 second gap. 3575 "; 3576 } 3578 notification own-lsp-purge { 3579 uses notification-instance-hdr; 3580 uses notification-interface-hdr; 3581 leaf lsp-id { 3582 type lsp-id; 3583 description 3584 "LSP ID."; 3585 } 3586 description 3587 "This notification is sent when the system 3588 receives a PDU with its own system ID and zero age. 3589 "; 3590 } 3592 notification sequence-number-skipped { 3593 uses notification-instance-hdr; 3594 uses notification-interface-hdr; 3595 leaf lsp-id { 3596 type lsp-id; 3597 description 3598 "LSP ID."; 3599 } 3600 description 3601 "This notification is sent when the system 3602 receives a PDU with its own system ID and 3603 different contents. The system has to reissue 3604 the LSP with a higher sequence number. 3605 "; 3606 } 3608 notification authentication-type-failure { 3609 uses notification-instance-hdr; 3610 uses notification-interface-hdr; 3611 leaf raw-pdu { 3612 type binary; 3613 description 3614 "Received raw PDU."; 3615 } 3616 description 3617 "This notification is sent when the system 3618 receives a PDU with the wrong authentication type 3619 field. 3620 The notification generation must be throttled with 3621 at least a 5 second gap. 3622 "; 3623 } 3625 notification authentication-failure { 3626 uses notification-instance-hdr; 3627 uses notification-interface-hdr; 3628 leaf raw-pdu { 3629 type binary; 3630 description 3631 "Received raw PDU."; 3632 } 3633 description 3634 "This notification is sent when the system 3635 receives a PDU with the wrong authentication 3636 information. 3637 The notification generation must be throttled with 3638 at least a 5 second gap. 3639 "; 3640 } 3642 notification version-skew { 3643 uses notification-instance-hdr; 3644 uses notification-interface-hdr; 3645 leaf protocol-version { 3646 type uint8; 3647 description 3648 "Protocol version received in the PDU."; 3649 } 3650 leaf raw-pdu { 3651 type binary; 3652 description 3653 "Received raw PDU."; 3654 } 3655 description 3656 "This notification is sent when the system 3657 receives a PDU with a different protocol version 3658 number. 3660 The notification generation must be throttled with at least 3661 a 5 second gap. 3662 "; 3663 } 3665 notification area-mismatch { 3666 uses notification-instance-hdr; 3667 uses notification-interface-hdr; 3668 leaf raw-pdu { 3669 type binary; 3670 description 3671 "Received raw PDU."; 3672 } 3673 description 3674 "This notification is sent when the system 3675 receives a Hello PDU from an IS that does 3676 not share any area address. 3677 The notification generation must be throttled with at least 3678 a 5 second gap. 3679 "; 3680 } 3682 notification rejected-adjacency { 3683 uses notification-instance-hdr; 3684 uses notification-interface-hdr; 3685 leaf raw-pdu { 3686 type binary; 3687 description 3688 "Received raw PDU."; 3689 } 3690 leaf reason { 3691 type string; 3692 description 3693 "The system may provide a reason to reject the 3694 adjacency. If the reason is not available, 3695 the system use an empty string."; 3696 } 3697 description 3698 "This notification is sent when the system 3699 receives a Hello PDU from an IS but does not 3700 establish an adjacency for some reason. 3701 The notification generation must be throttled with at least 3702 a 5 second gap. 3703 "; 3704 } 3706 notification protocols-supported-mismatch { 3707 uses notification-instance-hdr; 3708 uses notification-interface-hdr; 3709 leaf raw-pdu { 3710 type binary; 3711 description 3712 "Received raw PDU."; 3713 } 3714 leaf-list protocols { 3715 type uint8; 3716 description 3717 "The list of protocols supported by the 3718 remote system."; 3719 } 3720 description 3721 "This notification is sent when the system 3722 receives a non pseudonode LSP that has no matching 3723 protocol supported. 3724 The notification generation must be throttled with at least 3725 a 5 second gap. 3726 "; 3727 } 3729 notification lsp-error-detected { 3730 uses notification-instance-hdr; 3731 uses notification-interface-hdr; 3732 leaf lsp-id { 3733 type lsp-id; 3734 description 3735 "LSP ID."; 3736 } 3737 leaf raw-pdu { 3738 type binary; 3739 description 3740 "Received raw PDU."; 3741 } 3742 leaf error-offset { 3743 type uint32; 3744 description 3745 "If the problem is a malformed TLV, 3746 the error-offset points to the start of the TLV. 3747 If the problem is with the LSP header, 3748 the error-offset points to the suspicious byte"; 3749 } 3750 leaf tlv-type { 3751 type uint8; 3752 description 3753 "if the problem is a malformed TLV, the tlv-type is set 3754 to the type value of the suspicious TLV. 3756 Otherwise this leaf is not present."; 3757 } 3758 description 3759 "This notification is sent when the system 3760 receives a LSP with a parse error. 3761 The notification generation must be throttled with at least 3762 a 5 second gap. 3763 "; 3764 } 3766 notification adjacency-change { 3767 uses notification-instance-hdr; 3768 uses notification-interface-hdr; 3769 leaf neighbor { 3770 type string; 3771 description 3772 "Describes the name of the neighbor. If the 3773 name of the neighbor is not available, the 3774 field would be empty."; 3775 } 3776 leaf neighbor-system-id { 3777 type system-id; 3778 description 3779 "Describes the system-id of the neighbor."; 3780 } 3781 leaf level { 3782 type level; 3783 description 3784 "Describes the ISIS level of the adjacency."; 3785 } 3786 leaf state { 3787 type enumeration { 3788 enum "Up" { 3789 description 3790 "This state describes that 3791 adjacency is established."; 3792 } 3793 enum "Down" { 3794 description 3795 "This state describes that 3796 adjacency is no more established."; 3797 } 3798 } 3799 description 3800 "This leaf describes the new state of the 3801 ISIS adjacency."; 3802 } 3803 leaf reason { 3804 type string; 3805 description 3806 "If the adjacency is going to DOWN, 3807 this leaf provides a reason for the adjacency 3808 going down. The reason is provided as a text. 3809 If the adjacency is going to UP, no reason is 3810 provided."; 3811 } 3812 description 3813 "This notification is sent when an ISIS adjacency 3814 moves to Up state or to Down state."; 3815 } 3817 notification lsp-received { 3818 uses notification-instance-hdr; 3819 uses notification-interface-hdr; 3821 leaf lsp-id { 3822 type lsp-id; 3823 description 3824 "LSP ID."; 3825 } 3826 leaf sequence { 3827 type uint32; 3828 description 3829 "Sequence number of the received LSP."; 3830 } 3831 leaf received-timestamp { 3832 type yang:timestamp; 3834 description 3835 "This leaf describes the timestamp 3836 when the LSP was received. "; 3837 } 3838 leaf neighbor-system-id { 3839 type system-id; 3840 description 3841 "Describes the system-id of the neighbor 3842 that sent the LSP."; 3843 } 3844 description 3845 "This notification is sent when a LSP 3846 is received. 3847 The notification generation must be throttled with at least 3848 a 5 second gap. "; 3849 } 3851 notification lsp-generation { 3852 uses notification-instance-hdr; 3854 leaf lsp-id { 3855 type lsp-id; 3856 description 3857 "LSP ID."; 3858 } 3859 leaf sequence { 3860 type uint32; 3861 description 3862 "Sequence number of the received LSP."; 3863 } 3864 leaf send-timestamp { 3865 type yang:timestamp; 3867 description 3868 "This leaf describes the timestamp 3869 when our LSP was regenerated. "; 3870 } 3871 description 3872 "This notification is sent when a LSP 3873 is regenerated. 3874 The notification generation must be throttled with at least 3875 a 5 second gap. "; 3876 } 3877 } 3879 3881 7. Security Considerations 3883 Configuration and state data defined in this document are designed to 3884 be accessed via the NETCONF protocol [RFC6241]. 3886 As ISIS is an IGP protocol (critical piece of the network), ensuring 3887 stability and security of the protocol is mandatory for the network 3888 service. 3890 Authors recommends to implement NETCONF access control model 3891 ([RFC6536]) to restrict access to all or part of the configuration to 3892 specific users. Access control to RPCs is also critical as RPC 3893 permits to clear protocol datastructures that would definitively 3894 impact the network service. This kind of RPC needs only to be used 3895 in specific cases by well-known experienced users. 3897 Authors consider that all the configuration is considered as 3898 sensitive/vulnerable as well as RPCs. But security teams can decide 3899 to open some part of the configuration to less experienced users 3900 depending on the internal organization, for example: 3902 o User FullWrite: would access to the whole data model. This kind 3903 of profile may be restricted to few experienced people. 3905 o User PartialWrite: would only access to configuration part within 3906 /isis/interfaces/interface. So this kind of profile is restricted 3907 to creation/modification/deletion of interfaces. This profile 3908 does not have access to RPC. 3910 o User Read: would only access to state part /isis-state. 3912 Unauthorized access to configuration or RPC may cause high damages to 3913 the network service. 3915 The /isis-state/database may contain authentication information. As 3916 presented in the description of the /isis-state/database/level- 3917 1/lsp/authentication/authentication-key, the authentication MUST 3918 never be presented in plaintext format for security reason. Authors 3919 recommends the usage of MD5 to present the authentication-key. 3921 Some authentication-key may also be present in the /isis 3922 configuration. When configuring ISIS using the NETCONF protocol, 3923 authors recommends the usage of secure transport of NETCONF using SSH 3924 ([RFC6242]). 3926 8. Contributors 3928 Authors would like to thank Kiran Agrahara Sreenivasa, Dean 3929 Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the 3930 draft. 3932 9. Acknowledgements 3934 TBD. 3936 10. IANA Considerations 3938 TBD. 3940 11. Normative References 3942 [I-D.ietf-netmod-routing-cfg] 3943 Lhotka, L., "A YANG Data Model for Routing Management", 3944 draft-ietf-netmod-routing-cfg-15 (work in progress), May 3945 2014. 3947 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3948 Requirement Levels", BCP 14, RFC 2119, March 1997. 3950 [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the 3951 Network Configuration Protocol (NETCONF)", RFC 6020, 3952 October 2010. 3954 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. 3955 Bierman, "Network Configuration Protocol (NETCONF)", RFC 3956 6241, June 2011. 3958 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3959 Shell (SSH)", RFC 6242, June 2011. 3961 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 3962 Protocol (NETCONF) Access Control Model", RFC 6536, March 3963 2012. 3965 Appendix A. Example: NETCONF Reply 3967 This section gives an example of a reply to the NETCONF request 3968 for a device that implements the data model defined in this document. 3969 The example is written in XML. 3971 3972 3973 3974 3975 SLI 3976 1.1.1.1 3977 3978 3979 3980 ipv4-unicast 3981 default 3982 3983 3984 3985 3986 Loopback0 3987 3988 3989 Eth1 3990 3991 3992 3993 3994 ISIS 3995 3996 isis:isis 3997 3998 3999 default 4000 4001 4002 4003 4004 4005 4006 SLI 4007 level-2 4008 87FC.FCDF.4432 4009 49.0001 4010 4011 1.1.1.1 4012 4013 65535 4014 65000 4015 4016 ThisIsThePassword 4017 plain-text 4018 level-2 4019 4020 4021 wide 4022 4023 4024 111111 4025 4026 4027 ipv4-unicast 4028 true 4029 4030 4031 4032 Loopback0 4033 200 4034 4035 0 4036 4037 true 4038 4039 4040 Eth1 4041 level-2 4042 point-to-point 4043 4044 167890 4045 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 default 4057 ipv4-unicast 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 Loopback0 4078 4079 4080 4081 4082 4083
4084 1.1.1.1 4085 32 4086
4087
4089
4090 4091 Eth1 4092 4093 4094 4095 4096 4097
4098 10.0.0.1 4099 30 4100
4101
4103
4104
4105
4107 Authors' Addresses 4109 Stephane Litkowski 4110 Orange 4112 Email: stephane.litkowski@orange.com 4114 Derek Yeung 4115 Cisco Systems 4117 Email: myeung@cisco.com 4119 Acee Lindem 4120 Cisco Systems 4122 Email: acee@cisco.com 4124 Jeffrey Zhang 4125 Juniper Networks 4127 Email: zzhang@juniper.net 4129 Ladislav Lhotka 4131 Email: lhotka@nic.cz