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