idnits 2.17.1 draft-ietf-isis-yang-isis-cfg-09.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 79 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 3 instances of too long lines in the document, the longest one being 7 characters in excess of 72. ** There are 32 instances of lines with control characters in the document. 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 5535, 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: 3 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-09 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 . . . . . . . . . . . . . . . . . . . . . . . 120 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 "routing-protocol" lists in ietf-routing module 124 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:routing-protocols/rt:routing-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 /rt:routing/rt:control-plane-protocols/ 820 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 /rt:routing/rt:control-plane-protocols/ 832 rt:control-plane-protocol/isis:isis/ 833 isis: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 /rt:routing/rt:control-plane-protocols/ 840 rt:control-plane-protocol/isis:isis/ 841 isis:interfaces/isis:interface/isis:fast-reroute: 842 +--rw ti-lfa {ti-lfa}? 843 +--rw enable? boolean 844 augment /rt:routing/rt:control-plane-protocols/ 845 rt:control-plane-protocol/isis:isis/ 846 isis:interfaces/isis:interface/isis:fast-reroute/isis:lfa/isis:remote-lfa: 847 +--rw use-segment-routing-path? boolean {remote-lfa-sr}? 848 augment /rt:routing-state/rt:control-plane-protocols/ 849 rt:control-plane-protocol/isis:isis: 850 +--ro segment-routing 851 | +--ro enabled? boolean 852 | +--ro bindings 853 | +--ro advertise 854 | | +--ro policies* string 855 | +--ro receive? boolean 856 +--ro protocol-srgb {sr:protocol-srgb}? 857 +--ro srgb* [lower-bound upper-bound] 858 +--ro lower-bound uint32 859 +--ro upper-bound uint32 860 augment /rt:routing-state/rt:control-plane-protocols/ 861 rt:control-plane-protocol/isis:isis/ 862 isis:interfaces/isis:interface: 863 +--ro segment-routing 864 +--ro adjacency-sid 865 +--ro advertise-adj-group-sid* [group-id] 866 | +--ro group-id uint32 867 +--ro advertise-protection? enumeration 868 augment /rt:routing-state/rt:control-plane-protocols/ 869 rt:control-plane-protocol/isis:isis/ 870 isis:interfaces/isis:interface/isis:adjacencies/isis:adjacency: 871 +--ro adjacency-sid* [value] 872 +--ro af? identityref 873 +--ro value uint32 874 +--ro weight? uint8 875 +--ro protection-requested? boolean 876 augment /rt:routing-state/rt:control-plane-protocols/ 877 rt:control-plane-protocol/isis:isis/ 878 isis:database/isis:level-db/isis:lsp/isis:extended-is-neighbor/ 879 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 /rt:routing-state/rt:control-plane-protocols/ 886 rt:control-plane-protocol/isis:isis/ 887 isis:database/isis:level-db/isis:lsp/isis:mt-is-neighbor/ 888 isis:neighbor: 889 +--ro sid-list* [value] 890 +--ro flags? bits 891 +--ro weight? uint8 892 +--ro neighbor-id? isis:system-id 893 +--ro value uint32 894 augment /rt:routing-state/rt:control-plane-protocols/ 895 rt:control-plane-protocol/isis:isis/isis:database/ 896 isis:level-db/isis:lsp/isis:extended-ipv4-reachability/ 897 isis:prefixes: 898 +--ro sid-list* [value] 899 +--ro flags? bits 900 +--ro algorithm? uint8 901 +--ro value uint32 902 augment /rt:routing-state/rt:control-plane-protocols/ 903 rt:control-plane-protocol/isis:isis/ 904 isis:database/isis:level-db/isis:lsp/ 905 isis:mt-extended-ipv4-reachability/isis:prefixes: 906 +--ro sid-list* [value] 907 +--ro flags? bits 908 +--ro algorithm? uint8 909 +--ro value uint32 910 augment /rt:routing-state/rt:control-plane-protocols/ 911 rt:control-plane-protocol/isis:isis/ 912 isis:database/isis:level-db/isis:lsp/ 913 isis:ipv6-reachability/isis:prefixes: 914 +--ro sid-list* [value] 915 +--ro flags? bits 916 +--ro algorithm? uint8 917 +--ro value uint32 918 augment /rt:routing-state/rt:control-plane-protocols/ 919 rt:control-plane-protocol/isis:isis/ 920 isis:database/isis:level-db/isis:lsp/isis:mt-ipv6-reachability/ 921 isis:prefixes: 922 +--ro sid-list* [value] 923 +--ro flags? bits 924 +--ro algorithm? uint8 925 +--ro value uint32 926 augment /rt:routing-state/rt:control-plane-protocols/ 927 rt:control-plane-protocol/isis:isis/ 928 isis:database/isis:level-db/isis:lsp: 930 +--ro segment-routing-bindings* [fec range] 931 +--ro fec string 932 +--ro range uint16 933 +--ro flags? bits 934 +--ro weight? uint8 935 +--ro binding 936 +--ro prefix-sid 937 | +--ro sid-list* [value] 938 | +--ro flags? bits 939 | +--ro algorithm? uint8 940 | +--ro value uint32 941 +--ro ero-metric? uint32 942 +--ro ero 943 | +--ro address-family? identityref 944 | +--ro loose? boolean 945 | +--ro address? string 946 +--ro backup-ero 947 | +--ro address-family? identityref 948 | +--ro loose? boolean 949 | +--ro address? string 950 +--ro unnumbered-interface-id-ero 951 | +--ro router-id? string 952 | +--ro interface-id? uint32 953 +--ro backup-unnumbered-interface-id-ero 954 +--ro router-id? string 955 +--ro interface-id? uint32 957 5.1. Segment Routing activation 959 Activation of segment-routing IS-IS is done by setting the "enabled" 960 leaf to true. This triggers advertisement of segment-routing 961 extensions based on the configuration parameters that have been setup 962 using the base segment routing module. 964 5.2. Advertising mapping server policy 966 The base segment routing module defines mapping server policies. By 967 default, IS-IS will not advertise nor receive any mapping server 968 entry. The IS-IS segment-routing module permits to advertise one or 969 multiple mapping server policies through the "bindings/advertise/ 970 policies" leaf-list. The "bindings/receive" leaf permits to enable 971 the reception of mapping server entries. 973 5.3. IP Fast reroute 975 IS-IS SR model augments the fast-reroute container under interface. 976 It brings the ability to activate TI-LFA (topology independent LFA) 977 and also enhances remote LFA to use segment-routing tunneling instead 978 of LDP. 980 6. Interaction with Other YANG Modules 982 The "isis" configuration container augments the "/rt:routing/ 983 rt:control-plane-protocols/control-plane-protocol" container of the 984 ietf-routing [I-D.ietf-netmod-routing-cfg] module by defining IS-IS 985 specific parameters. 987 The "isis" module augments "/if:interfaces/if:interface" with ISO 988 specific parameters. 990 The "isis" operational state container augments the "/rt:routing- 991 state/rt:control-plane-protocols/control-plane-protocol" container of 992 the ietf-routing module by defining IS-IS specific operational 993 states. 995 Some IS-IS specific routes attributes are added to route objects of 996 the ietf-routing module by augmenting "/rt:routing- 997 state/rt:ribs/rt:rib/rt:routes/rt:route". 999 The modules defined in this document use some groupings from ietf- 1000 keychain [I-D.ietf-rtgwg-yang-key-chain] and ietf-segment routing 1001 [I-D.ietf-spring-sr-yang]. 1003 7. IS-IS YANG Module 1005 file "ietf-isis@2016-09-20.yang" 1007 module ietf-isis { 1008 namespace "urn:ietf:params:xml:ns:yang:ietf-isis"; 1010 prefix isis; 1012 import ietf-routing { 1013 prefix "rt"; 1014 } 1016 import ietf-inet-types { 1017 prefix inet; 1018 } 1020 import ietf-yang-types { 1021 prefix yang; 1022 } 1024 import ietf-interfaces { 1025 prefix "if"; 1026 } 1028 import ietf-key-chain { 1029 prefix "key-chain"; 1030 } 1032 organization 1033 "IETF ISIS Working Group"; 1035 contact 1036 "WG List: <mailto:isis-wg@ietf.org> 1038 Editor: Stephane Litkowski 1039 <mailto:stephane.litkowski@orange.com> 1041 Derek Yeung 1042 <mailto:myeung@cisco.com> 1043 Acee Lindem 1044 <mailto:acee@cisco.com> 1045 Jeffrey Zhang 1046 <mailto:zzhang@juniper.net> 1047 Ladislav Lhotka 1048 <mailto:llhotka@nic.cz> 1049 Yi Yang 1050 <mailto:yiya@cisco.com> 1051 Dean Bogdanovic 1052 <mailto:deanb@juniper.net> 1053 Kiran Agrahara Sreenivasa 1054 <mailto:kkoushik@brocade.com> 1055 Yingzhen Qu 1056 <mailto:yiqu@cisco.com> 1057 Jeff Tantsura 1058 <mailto:jeff.tantsura@ericsson.com> 1060 "; 1062 description 1063 "The YANG module defines a generic configuration model for 1064 ISIS common across all of the vendor implementations."; 1066 revision 2016-09-20 { 1067 description 1068 " 1069 Align to draft-ietf-netmod-routing-cfg-23. 1070 "; 1071 reference "draft-ietf-isis-yang-isis-cfg-09"; 1072 } 1073 revision 2016-05-30 { 1074 description 1075 " 1076 Added container before af list 1077 Added container before topology list 1078 Aligned LFA if per level cfg 1079 "; 1080 reference ""; 1081 } 1082 revision 2016-03-21 { 1083 description 1084 " 1085 - remove routing-instance as per core routing model v21 1086 - added BFD leaf (no more BFD protocol model) 1087 - changed keychain module reference 1088 "; 1089 reference "draft-ietf-isis-yang-isis-cfg-08"; 1090 } 1092 revision 2015-12-17 { 1093 description 1094 "Moved lists to containers+groupings for per level 1095 configuration."; 1096 reference ""; 1097 } 1098 revision 2015-11-25 { 1099 description 1100 " 1101 * Remove selector from system-id type 1102 * Added some defaults 1103 "; 1104 reference ""; 1105 } 1106 revision 2015-11-18 { 1107 description 1108 " 1109 * Move Overload config from list to container 1110 * Move Overload-max-metric config from list to container 1111 * Move preference config from list to container 1112 * Add Node flag in config 1113 * Removed BFD config => moved to isis-bfd module 1114 * Remove call to routing policy model 1115 (waiting stabilization to add it) 1116 "; 1117 reference "draft-ietf-isis-yang-isis-cfg-07"; 1118 } 1119 revision 2015-09-10 { 1120 description 1121 " * Correct invalid references to previous 1122 versions core routing model. 1123 * Moved BFD config to usage of ietf-bfd yang grouping 1124 * Adding routing-policy support through routing-policy model 1125 "; 1126 reference "draft-ietf-isis-yang-isis-05"; 1127 } 1128 revision 2015-06-22 { 1129 description 1130 " * Segment routing is part os a separate module."; 1131 reference "draft-ietf-isis-yang-isis-03"; 1132 } 1133 revision 2015-03-03 { 1134 description 1135 " * Reviewed config and op state groupings. 1136 * Add default value to lfa candidate-disabled 1137 * Add enable leaf to isis container to reflect admin state 1138 * Move to VRF centric only 1139 "; 1140 reference ""; 1141 } 1142 revision 2015-03-03 { 1143 description 1144 " 1145 * Defining hierarchy for operational states 1146 * Adding CLNS MTU 1147 * Adding Keychain 1148 "; 1149 reference "draft-ietf-isis-yang-isis-02"; 1150 } 1151 revision 2015-02-20 { 1152 description 1153 " 1154 * Removing igp-ldp-sync timer in IS-IS 1156 "; 1157 reference ""; 1158 } 1159 revision 2014-12-15 { 1160 description 1161 " 1162 * Adding IPFRR 1163 * Adding igp-ldp sync 1164 * Adding segment routing 1165 * Adding instance reference to operational states. 1166 * Move AF type from string to identity 1167 * Updated router-capability in LSDB description. 1168 * packet counters moved to interface-packet-counters. 1170 * Added modification information in lsp-log 1171 "; 1172 reference ""; 1173 } 1174 revision 2014-10-24 { 1175 description 1176 " 1177 * Change hello-padding to container 1178 * Change bfd to container 1179 * Make BFD a feature 1180 * Creates mpls-te container and put router-id 1181 inside 1182 * Remove GR helper disable and timers 1183 "; 1184 reference "draft-ietf-isis-yang-isis-cfg-01"; 1185 } 1186 revision 2014-10-21 { 1187 description 1188 " 1189 * Interface metric move from af container to interface 1190 container 1191 * Hello-padding on interface moved to hello-padding-disable 1192 with empty type 1193 * three-way-handshake removed 1194 * route preference changed to a choice 1195 * csnp-authentication/psnp-authentication merged 1196 to authentication container 1197 * lsp-gen-interval-exp-delay removed 1198 * Added overload-max-metric feature 1199 * overload-max-metric is in a separate container 1200 "; 1201 reference ""; 1202 } 1204 revision 2014-10-07 { 1205 description 1206 " 1207 * Removed spf parameters (should be part of 1208 vendor specific extensions. 1209 * Removed hello parameters at global level. 1210 * Interface configuration uses a string rather 1211 than a reference. This permits to map to some 1212 vendor specific configuration. 1213 "; 1214 reference "draft-ietf-isis-yang-isis-00"; 1215 } 1216 revision 2014-09-26 { 1217 description 1218 " 1219 * Add BFD support 1220 * remove max-elements to max-area-addresses 1221 "; 1222 reference ""; 1223 } 1224 revision 2014-09-11 { 1225 description 1226 " 1227 * Add level parameter to ispf and spf delay 1228 * Add LSP generation as a feature 1229 * Make lsp-refresh a feature 1230 * Change parameter container to list 1231 "; 1232 reference ""; 1233 } 1234 revision 2014-09-05 { 1235 description 1236 " Rewrite of the global hierarchy."; 1237 reference ""; 1238 } 1239 revision 2014-08-06 { 1240 description 1241 " 1242 * isis-state renamed to isis. 1243 * Add GR support 1244 * Add meshgroup support 1245 * Add CLNS support 1246 * Add 64bits tags 1247 * Add notifications to be aligned with MIB4444 1248 * Add packet-counters, interface-counters, system-counters 1249 states 1250 * Add 3-way handshake support 1251 * Rename isis-adjacency-updown to adjacency-change 1252 * Add notification for LSP reception 1253 * Use feature for reference BW 1254 * Add lsp-retransmit-interval on interfaces 1255 * Rename lsp-interval to lsp-pacing-interval 1256 * Add ispf support as feature 1257 * Add spf delay support as feature (2step & exp backoff) 1258 * Add maximum-area-addresses 1259 * Add default-metric 1260 "; 1261 reference "RFC XXXX: YANG Data Model for ISIS Protocol"; 1262 } 1263 revision 2014-06-25 { 1264 description " 1265 * isis-cfg renamed to isis. 1267 * Add precisions on authentication-keys in description 1268 "; 1269 reference "draft-litkowski-isis-yang-isis-01"; 1270 } 1272 revision 2014-06-20 { 1273 description " 1274 * isis-op renamed to isis-state. 1275 * Multiple instances under ISIS are removed. 1276 * interface-cfg grouping removed and content 1277 is directly included in container isis. 1278 * TLVxx renamed with human-readable name in isis-database. 1279 TLV reference are putted in description. 1280 * Reference to core routing module were fixed. 1281 * Namespace fixed. 1282 * Add simple-iso-address type. 1283 * area-id and system-id in ISIS container are merged to 1284 nsap-address. 1285 * Add isis-system-id type. 1286 * Add isis-lsp-id type. 1287 * Add remaining-lifetime leaf in isis-database. 1288 * Add TLV2 (is-neighbor) in isis-database. 1289 * Renamed some container name for consistency 1290 reason ('isis-' prefixed). 1291 * Add new identities isis-cfg and isis-state. 1292 * Add descriptions. 1293 * Add notification isis-adjacency-updown. 1294 * Add RPC clear-isis-adjacency and clear-isis-database. 1295 "; 1296 reference "draft-litkowski-isis-yang-isis-00"; 1297 } 1299 revision 2014-06-11 { 1300 description "Initial revision."; 1301 reference "draft-litkowski-netmod-isis-cfg-00"; 1302 } 1303 identity isis { 1304 base rt:routing-protocol; 1305 description "Identity for the ISIS routing protocol."; 1306 } 1308 identity isis-adjacency-change { 1309 description "Identity for the ISIS routing protocol 1310 adjacency state."; 1311 } 1313 identity clear-isis-database { 1314 description "Identity for the ISIS routing protocol 1315 database reset action."; 1316 } 1318 identity clear-isis-adjacency { 1319 description "Identity for the ISIS routing protocol 1320 adjacency reset action."; 1321 } 1323 /* Feature definitions */ 1325 feature bfd { 1326 description 1327 "Support of BFD for IS-IS links."; 1328 } 1329 feature key-chain { 1330 description 1331 "Support of keychain for authentication."; 1332 } 1333 feature segment-routing { 1334 description 1335 "Support of segment-routing."; 1336 } 1337 feature node-flag { 1338 description 1339 "Support of node-flag advertisement 1340 as prefix attribute"; 1341 } 1342 feature node-tag { 1343 description 1344 "Support of node tag."; 1345 } 1346 feature igp-ldp-sync { 1347 description 1348 "Support of RFC5443."; 1349 } 1350 feature fast-reroute { 1351 description 1352 "Support of IPFRR."; 1353 } 1354 feature lfa { 1355 description 1356 "Support of Loop Free Alternates."; 1357 } 1358 feature remote-lfa { 1359 description 1360 "Support of remote Loop Free Alternates."; 1361 } 1362 feature overload-max-metric { 1363 description 1364 "Support of overload by setting 1365 all links to max metric."; 1366 } 1367 feature prefix-tag { 1368 description 1369 "Add 32bit tag to prefixes"; 1370 } 1371 feature prefix-tag64 { 1372 description 1373 "Add 64bit tag to prefixes"; 1374 } 1375 feature reference-bandwidth { 1376 description 1377 "Use a reference bandwidth to compute metric."; 1378 } 1379 feature ipv4-router-id { 1380 description 1381 "Support of IPv4 router ID configuration under ISIS."; 1382 } 1384 feature ipv6-router-id { 1385 description 1386 "Support of IPv6 router ID configuration under ISIS."; 1387 } 1389 feature multi-topology { 1390 description 1391 "Multitopology routing support."; 1392 } 1393 feature nlpid-control { 1394 description 1395 "This feature controls the advertisement 1396 of support NLPID within ISIS configuration."; 1397 } 1398 feature graceful-restart { 1399 description 1400 "Graceful restart support as per RFC5306."; 1401 } 1403 feature lsp-refresh { 1404 description 1405 "Configuration of LSP refresh interval."; 1406 } 1408 feature maximum-area-addresses { 1409 description 1410 "Support of maximum-area-addresses config."; 1411 } 1413 feature admin-control { 1414 description 1415 "Control administrative state of ISIS."; 1416 } 1418 /* Type definitions */ 1420 typedef instance-state-ref { 1421 type leafref { 1422 path "/rt:routing-state/" 1423 +"rt:control-plane-protocols/rt:control-plane-protocol/rt:name"; 1424 } 1425 description 1426 "This type is used for leaves that reference state data of 1427 an ISIS protocol instance."; 1428 } 1430 typedef admin-state { 1431 type enumeration { 1432 enum "up" { 1433 description 1434 "Up state"; 1435 } 1436 enum "down" { 1437 description 1438 "Down state"; 1439 } 1440 } 1441 description 1442 "Administrative state of a component."; 1443 } 1444 typedef oper-state { 1445 type enumeration { 1446 enum "up" { 1447 description 1448 "Up state"; 1449 } 1450 enum "down" { 1451 description 1452 "Down state"; 1453 } 1454 } 1455 description 1456 "Operational state of a component."; 1457 } 1458 typedef circuit-id { 1459 type uint8; 1460 description 1461 "This type defines the circuit ID 1462 associated with an interface."; 1463 } 1465 typedef extended-circuit-id { 1466 type uint32; 1467 description 1468 "This type defines the extended circuit ID 1469 associated with an interface."; 1470 } 1472 typedef interface-type { 1473 type enumeration { 1474 enum broadcast { 1475 description "Broadcast interface type. 1476 Would result in DIS election."; 1477 } 1478 enum point-to-point { 1479 description 1480 "Point to point interface type."; 1481 } 1482 } 1483 description 1484 "This type defines the type of adjacency 1485 to be established on the interface. 1486 This is affecting the type of hello 1487 message that would be used."; 1489 } 1491 typedef level { 1492 type enumeration { 1493 enum "level-1" { 1494 description 1495 "This enum describes L1 only capability."; 1496 } 1497 enum "level-2" { 1498 description 1499 "This enum describes L2 only capability."; 1500 } 1501 enum "level-all" { 1502 description 1503 "This enum describes both levels capability."; 1505 } 1506 } 1507 default "level-all"; 1508 description 1509 "This type defines ISIS level of an object."; 1511 } 1513 typedef level-number { 1514 type uint8 { 1515 range "1 .. 2"; 1516 } 1517 description 1518 "This type defines a current ISIS level."; 1519 } 1521 typedef lsp-id { 1522 type string { 1523 pattern 1524 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]' 1525 +'{4}\.[0-9][0-9]-[0-9][0-9]'; 1526 } 1527 description 1528 "This type defines ISIS LSP ID using pattern, 1529 system id looks like : 0143.0438.AeF0.02-01"; 1530 } 1532 typedef area-address { 1533 type string { 1534 pattern '[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}'; 1535 } 1536 description 1537 "This type defines the area address."; 1538 } 1540 typedef snpa { 1541 type string { 1542 length "0 .. 20"; 1543 } 1544 description 1545 "This type defines Subnetwork Point of Attachement format."; 1547 } 1549 typedef system-id { 1550 type string { 1551 pattern 1552 '[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}'; 1553 } 1554 description 1555 "This type defines ISIS system id using pattern, 1556 system id looks like : 0143.0438.AeF0"; 1557 } 1559 typedef wide-metric { 1560 type uint32 { 1561 range "0 .. 16777215"; 1562 } 1563 description 1564 "This type defines wide style format 1565 of ISIS metric."; 1566 } 1568 typedef std-metric { 1569 type uint8 { 1570 range "0 .. 63"; 1571 } 1572 description 1573 "This type defines old style format 1574 of ISIS metric."; 1575 } 1577 typedef mesh-group-state { 1578 type enumeration { 1579 enum "meshInactive" { 1580 description 1581 "Interface is not part of a mesh group."; 1582 } 1583 enum "meshSet" { 1584 description 1585 "Interface is part of a mesh group."; 1586 } 1587 enum "meshBlocked" { 1588 description 1589 "LSPs must not be flooded over that interface."; 1590 } 1591 } 1592 description 1593 "This type describes meshgroup state of an interface"; 1594 } 1596 /* Grouping definitions */ 1598 grouping admin-control { 1600 leaf enable { 1601 if-feature admin-control; 1602 type boolean; 1603 default true; 1604 description 1605 "Control the administrative 1606 state."; 1607 } 1609 description 1610 "Grouping for admin control."; 1611 } 1613 grouping adjacency-state { 1614 container adjacencies { 1615 list adjacency { 1616 leaf neighbor-systype { 1617 type level; 1618 description 1619 "Type of neighboring system"; 1621 } 1622 leaf neighbor-sysid { 1623 type system-id; 1624 description 1625 "The system-id of the neighbor"; 1627 } 1628 leaf neighbor-extended-circuit-id { 1629 type extended-circuit-id; 1630 description 1631 "Circuit ID of the neighbor"; 1632 } 1633 leaf neighbor-snpa { 1634 type snpa; 1635 description 1636 "SNPA of the neighbor"; 1637 } 1638 leaf usage { 1639 type level; 1640 description 1641 "How is the adjacency used ? 1642 On a p2p link this might be level 1 and 2, 1643 but on a LAN, the usage will be level 1 1644 between peers at L1 or level 2 between 1645 peers at L2."; 1646 } 1647 leaf hold-timer { 1648 type uint16; 1649 description 1650 "The holding time in seconds for this 1651 adjacency. This value is based on 1652 received hello PDUs and the elapsed 1653 time since receipt."; 1654 } 1655 leaf neighbor-priority { 1656 type uint8 { 1657 range "0 .. 127"; 1658 } 1659 description 1660 "Priority of the neighboring IS for becoming 1661 the DIS."; 1662 } 1663 leaf lastuptime { 1664 type yang:timestamp; 1665 description 1666 "When the adjacency most recently entered 1667 state 'up', measured in hundredths of a 1668 second since the last reinitialization of 1669 the network management subsystem. 1670 The value is 0 if the adjacency has never 1671 been in state 'up'."; 1673 } 1674 leaf state { 1675 type enumeration { 1676 enum "Up" { 1677 description 1678 "This state describes that 1679 adjacency is established."; 1680 } 1681 enum "Down" { 1682 description 1683 "This state describes that 1684 adjacency is NOT established."; 1685 } 1686 enum "Init" { 1687 description 1688 "This state describes that 1689 adjacency is establishing."; 1690 } 1691 enum "Failed" { 1692 description 1693 "This state describes that 1694 adjacency is failed."; 1695 } 1696 } 1697 description 1698 "This leaf describes the state of the 1699 interface."; 1700 } 1702 description 1703 "List of operational adjacencies."; 1704 } 1705 description 1706 "This container lists the adjacencies of 1707 the local node."; 1708 } 1709 description 1710 "Adjacency state"; 1711 } 1713 grouping fast-reroute-global-state { 1714 container protected-routes { 1715 list af-stats { 1716 key "af prefix alternate"; 1718 leaf af { 1719 type identityref { 1720 base rt:address-family; 1721 } 1722 description 1723 "Address-family"; 1724 } 1725 leaf prefix { 1726 type string; 1727 description 1728 "Protected prefix."; 1729 } 1730 leaf alternate { 1731 type string; 1732 description 1733 "Alternate nexthop for the prefix."; 1734 } 1735 leaf alternate-type { 1736 type enumeration { 1737 enum equalcost { 1738 description 1739 "ECMP alternate."; 1740 } 1741 enum lfa { 1742 description 1743 "LFA alternate."; 1744 } 1745 enum remote-lfa { 1746 description 1747 "Remote LFA alternate."; 1748 } 1749 enum tunnel { 1750 description 1751 "Tunnel based alternate 1752 (like RSVP-TE or GRE)."; 1753 } 1754 enum ti-lfa { 1755 description 1756 "TI LFA alternate."; 1757 } 1758 enum mrt { 1759 description 1760 "MRT alternate."; 1761 } 1762 enum other { 1763 description 1764 "Unknown alternate type."; 1765 } 1766 } 1767 description 1768 "Type of alternate."; 1769 } 1770 leaf best { 1771 type boolean; 1772 description 1773 "describes if the alternate is the best one."; 1774 } 1775 leaf non-best-reason { 1776 type string; 1777 description 1778 "Information field to describe why the alternate 1779 is not best."; 1780 } 1781 leaf protection-available { 1782 type bits { 1783 bit nodeprotect { 1784 position 0; 1785 description 1786 "Node protection available."; 1788 } 1789 bit linkprotect { 1790 position 1; 1791 description 1792 "Link protection available."; 1793 } 1794 bit srlgprotect { 1795 position 2; 1796 description 1797 "SRLG protection available."; 1798 } 1799 bit downstreamprotect { 1800 position 3; 1801 description 1802 "Downstream protection available."; 1803 } 1804 bit other { 1805 position 4; 1806 description 1807 "Other protection available."; 1808 } 1809 } 1810 description 1811 "Describes protection provided by the alternate."; 1812 } 1813 leaf alternate-metric1 { 1814 type uint32; 1815 description 1816 "Metric from PLR to destination 1817 through the alternate path."; 1818 } 1819 leaf alternate-metric2 { 1820 type uint32; 1821 description 1822 "Metric from PLR to the alternate node"; 1823 } 1824 leaf alternate-metric3 { 1825 type uint32; 1826 description 1827 "Metric from alternate node to the destination"; 1828 } 1830 description 1831 "Per AF statistics."; 1832 } 1833 description 1834 "List of prefixes that are protected."; 1835 } 1836 container nonprotected-routes { 1837 list af-stats { 1838 key "af prefix"; 1840 leaf af { 1841 type identityref { 1842 base rt:address-family; 1843 } 1844 description 1845 "Address-family"; 1846 } 1847 leaf prefix { 1848 type string; 1849 description 1850 "Protected prefix."; 1851 } 1852 description 1853 "Per AF statistics."; 1854 } 1855 description 1856 "List of prefixes that are not protected."; 1857 } 1859 list protection-statistics { 1860 key frr-protection-method; 1862 leaf frr-protection-method { 1863 type string; 1864 description 1865 "Protection method used."; 1866 } 1867 list af-stats { 1868 key af; 1870 leaf af { 1871 type identityref { 1872 base rt:address-family; 1873 } 1874 description 1875 "Address-family"; 1876 } 1877 leaf total-routes { 1878 type uint32; 1879 description 1880 "Total prefixes."; 1881 } 1882 leaf unprotected-routes { 1883 type uint32; 1884 description 1885 "Total of prefixes who are 1886 not protected."; 1887 } 1888 leaf protected-routes { 1889 type uint32; 1890 description 1891 "Total of prefixes who are 1892 protected."; 1893 } 1894 leaf linkprotected-routes { 1895 type uint32; 1896 description 1897 "Total of prefixes who are 1898 link protected."; 1899 } 1900 leaf nodeprotected-routes { 1901 type uint32; 1902 description 1903 "Total of prefixes who are 1904 node protected."; 1905 } 1906 description 1907 "Per AF statistics."; 1908 } 1910 description 1911 "Global protection statistics."; 1912 } 1913 description 1914 "IPFRR states."; 1915 } 1917 grouping notification-instance-hdr { 1918 description 1919 "This group describes common instance specific 1920 data for notifications."; 1921 leaf instance-name { 1922 type string; 1923 description 1924 "Describes the name of the ISIS instance."; 1925 } 1926 leaf instance-level { 1927 type level; 1928 description 1929 "Describes the ISIS level of the instance."; 1930 } 1931 } 1932 grouping notification-interface-hdr { 1933 description 1934 "This group describes common interface specific 1935 data for notifications."; 1936 leaf interface-name { 1937 type string; 1938 description 1939 "Describes the name of the ISIS interface."; 1940 } 1941 leaf interface-level { 1942 type level; 1943 description 1944 "Describes the ISIS level of the interface."; 1945 } 1946 leaf extended-circuit-id { 1947 type extended-circuit-id; 1948 description 1949 "Describes the extended circuit-id of the interface."; 1950 } 1951 } 1953 grouping route-content { 1954 description 1955 "This group add isis-specific route properties."; 1956 leaf metric { 1957 type uint32; 1958 description 1959 "This leaf describes ISIS metric of a route."; 1960 } 1961 leaf-list tag { 1962 type uint64; 1963 description 1964 "This leaf describes list of tags associated 1965 with the route. The leaf describes both 1966 32bits and 64bits tags."; 1967 } 1968 leaf route-type { 1969 type enumeration { 1970 enum l2-up-internal { 1971 description "Level 2 internal route 1972 and not leaked to a lower level"; 1973 } 1974 enum l1-up-internal { 1975 description "Level 1 internal route 1976 and not leaked to a lower level"; 1977 } 1978 enum l2-up-external { 1979 description "Level 2 external route 1980 and not leaked to a lower level"; 1981 } 1982 enum l1-up-external { 1983 description "Level 1 external route 1984 and not leaked to a lower level"; 1985 } 1986 enum l2-down-internal { 1987 description "Level 2 internal route 1988 and leaked to a lower level"; 1989 } 1990 enum l1-down-internal { 1991 description "Level 1 internal route 1992 and leaked to a lower level"; 1993 } 1994 enum l2-down-external { 1995 description "Level 2 external route 1996 and leaked to a lower level"; 1997 } 1998 enum l1-down-external { 1999 description "Level 1 external route 2000 and leaked to a lower level"; 2001 } 2002 } 2003 description 2004 "This leaf describes the type of ISIS route."; 2005 } 2006 } 2008 grouping fast-reroute-global-cfg { 2009 description 2010 "This group defines global 2011 configuration of IPFRR."; 2013 container lfa { 2014 if-feature lfa; 2015 description 2016 "This container may be 2017 augmented with global parameters 2018 for LFA. 2019 Creating the container has no effect on 2020 LFA activation."; 2021 } 2023 } 2025 grouping fast-reroute-if-cfg { 2026 description 2027 "This group defines interface 2028 configuration of IPFRR."; 2030 container lfa { 2031 if-feature lfa; 2032 uses lfa-if-cfg; 2033 container level-1 { 2034 uses lfa-if-cfg; 2035 description 2036 "LFA level 21 config"; 2037 } 2038 container level-2 { 2039 uses lfa-if-cfg; 2040 description 2041 "LFA level 2 config"; 2042 } 2043 description 2044 "LFA config"; 2045 } 2047 } 2049 grouping prefix-reachability-attributes { 2050 description 2051 "This group defines extended reachability attributes of an 2052 IPv4 or IPv6 prefix."; 2054 leaf external-prefix-flag { 2055 type boolean; 2056 description 2057 "External prefix flag."; 2058 } 2059 leaf readvertisement-flag { 2060 type boolean; 2061 description 2062 "Readvertisement flag."; 2063 } 2064 leaf node-flag { 2065 type boolean; 2066 description 2067 "Node flag."; 2068 } 2069 } 2071 grouping prefix-ipv4-source-router-id { 2072 description 2073 "This group defines the IPv4 source router ID of 2074 a prefix advertisement."; 2076 leaf ipv4-source-router-id { 2077 type inet:ipv4-address; 2078 description 2079 "IPv4 Source router ID address."; 2080 } 2082 } 2083 grouping prefix-ipv6-source-router-id { 2084 description 2085 "This group defines the IPv6 source router ID of 2086 a prefix advertisement."; 2088 leaf ipv6-source-router-id { 2089 type inet:ipv6-address; 2090 description 2091 "IPv6 Source router ID address."; 2092 } 2094 } 2096 grouping prefix-attributes-extension { 2097 description 2098 "Prefix extended attributes."; 2100 uses prefix-reachability-attributes; 2101 uses prefix-ipv4-source-router-id; 2102 uses prefix-ipv6-source-router-id; 2103 } 2105 grouping prefix-ipv4-std { 2106 description 2107 "This group defines attributes of an 2108 IPv4 standard prefix."; 2109 leaf up-down { 2110 type boolean; 2111 description 2112 "This leaf expresses the value of up/down bit."; 2113 } 2114 leaf i-e { 2115 type boolean; 2116 description 2117 "This leaf expresses the value of I/E bit."; 2118 } 2119 leaf ip-prefix { 2120 type inet:ipv4-address; 2121 description 2122 "This leaf describes the IPv4 prefix"; 2123 } 2124 leaf prefix-len { 2125 type uint8; 2126 description 2127 "This leaf describes the IPv4 prefix len in bits"; 2128 } 2129 leaf default-metric { 2130 type std-metric; 2131 description 2132 "This leaf describes the ISIS default metric value"; 2133 } 2134 container delay-metric { 2135 leaf metric { 2136 type std-metric; 2137 description 2138 "This leaf describes the ISIS delay metric value"; 2139 } 2140 leaf supported { 2141 type boolean; 2142 default "false"; 2143 description 2144 "This leaf describes if the metric is supported."; 2145 } 2147 description 2148 "This container defines the ISIS delay metric."; 2149 } 2150 container expense-metric { 2151 leaf metric { 2152 type std-metric; 2153 description 2154 "This leaf describes the ISIS expense metric value"; 2155 } 2156 leaf supported { 2157 type boolean; 2158 default "false"; 2159 description 2160 "This leaf describes if the metric is supported."; 2161 } 2162 description 2163 "This container defines the ISIS expense metric."; 2164 } 2165 container error-metric { 2166 leaf metric { 2167 type std-metric; 2168 description 2169 "This leaf describes the ISIS error metric value"; 2170 } 2171 leaf supported { 2172 type boolean; 2173 default "false"; 2174 description 2175 "This leaf describes if the metric is supported."; 2176 } 2178 description 2179 "This container defines the ISIS error metric."; 2180 } 2181 } 2183 grouping prefix-ipv4-extended { 2184 description 2185 "This group defines attributes of an 2186 IPv4 extended prefix."; 2187 leaf up-down { 2188 type boolean; 2189 description 2190 "This leaf expresses the value of up/down bit."; 2191 } 2192 leaf ip-prefix { 2193 type inet:ipv4-address; 2194 description 2195 "This leaf describes the IPv4 prefix"; 2196 } 2197 leaf prefix-len { 2198 type uint8; 2199 description 2200 "This leaf describes the IPv4 prefix len in bits"; 2201 } 2203 leaf metric { 2204 type wide-metric; 2205 description 2206 "This leaf describes the ISIS metric value"; 2207 } 2208 leaf-list tag { 2209 type uint32; 2210 description 2211 "This leaf describes a list of tags associated with 2212 the prefix."; 2213 } 2214 leaf-list tag64 { 2215 type uint64; 2216 description 2217 "This leaf describes a list of 64-bit tags associated with 2218 the prefix."; 2219 } 2221 uses prefix-attributes-extension; 2223 } 2225 grouping prefix-ipv6-extended { 2226 description 2227 "This group defines attributes of an 2228 IPv6 prefix."; 2229 leaf up-down { 2230 type boolean; 2231 description 2232 "This leaf expresses the value of up/down bit."; 2233 } 2234 leaf ip-prefix { 2235 type inet:ipv6-address; 2236 description 2237 "This leaf describes the IPv6 prefix"; 2238 } 2239 leaf prefix-len { 2240 type uint8; 2241 description 2242 "This leaf describes the IPv4 prefix len in bits"; 2243 } 2245 leaf metric { 2246 type wide-metric; 2247 description 2248 "This leaf describes the ISIS metric value"; 2249 } 2250 leaf-list tag { 2251 type uint32; 2252 description 2253 "This leaf describes a list of tags associated with 2254 the prefix."; 2255 } 2256 leaf-list tag64 { 2257 type uint64; 2258 description 2259 "This leaf describes a list of 64-bit tags associated with 2260 the prefix."; 2261 } 2263 uses prefix-attributes-extension; 2265 } 2267 grouping neighbor-extended { 2268 description 2269 "This group defines attributes of an 2270 ISIS extended neighbor."; 2271 leaf neighbor-id { 2272 type system-id; 2273 description 2274 "This leaf describes the system-id of the neighbor."; 2275 } 2276 leaf metric { 2277 type wide-metric; 2278 description 2279 "This leaf describes the ISIS metric value"; 2280 } 2282 } 2284 grouping neighbor { 2285 description 2286 "This group defines attributes of an 2287 ISIS standard neighbor."; 2288 leaf neighbor-id { 2289 type system-id; 2290 description 2291 "This leaf describes the system-id of the neighbor."; 2292 } 2293 leaf i-e { 2294 type boolean; 2295 description 2296 "This leaf expresses the value of I/E bit."; 2297 } 2298 leaf default-metric { 2299 type std-metric; 2300 description 2301 "This leaf describes the ISIS default metric value"; 2302 } 2303 container delay-metric { 2304 leaf metric { 2305 type std-metric; 2306 description 2307 "This leaf describes the ISIS delay metric value"; 2308 } 2309 leaf supported { 2310 type boolean; 2311 default "false"; 2312 description 2313 "This leaf describes if the metric is supported."; 2314 } 2315 description 2316 "This container defines the ISIS delay metric."; 2317 } 2318 container expense-metric { 2319 leaf metric { 2320 type std-metric; 2321 description 2322 "This leaf describes the ISIS delay expense value"; 2323 } 2324 leaf supported { 2325 type boolean; 2326 default "false"; 2327 description 2328 "This leaf describes if the metric is supported."; 2329 } 2330 description 2331 "This container defines the ISIS expense metric."; 2332 } 2333 container error-metric { 2334 leaf metric { 2335 type std-metric; 2336 description 2337 "This leaf describes the ISIS error metric value"; 2338 } 2339 leaf supported { 2340 type boolean; 2341 default "false"; 2342 description 2343 "This leaf describes if the metric is supported."; 2344 } 2345 description 2346 "This container defines the ISIS error metric."; 2347 } 2348 } 2350 grouping database { 2351 description 2352 "This group defines attributes of an 2353 ISIS database (Link State DB)."; 2354 leaf lsp-id { 2355 type lsp-id; 2356 description 2357 "This leaf describes the LSP ID of the LSP."; 2358 } 2359 leaf checksum { 2360 type uint16; 2361 description 2362 "This leaf describes the checksum of the LSP."; 2363 } 2364 leaf remaining-lifetime { 2365 type uint16; 2366 units "seconds"; 2367 description 2368 "This leaf describes the remaining lifetime 2369 in seconds before the LSP expiration."; 2370 } 2371 leaf sequence { 2372 type uint32; 2373 description 2374 "This leaf describes the sequence number of the LSP."; 2375 } 2376 leaf attributes { 2377 type bits { 2378 bit PARTITIONNED { 2379 description 2380 "If set, the originator supports partition 2381 repair."; 2382 } 2383 bit ATTACHED-ERROR { 2384 description 2385 "If set, the originator is attached to 2386 another area using the referred metric."; 2387 } 2388 bit ATTACHED-EXPENSE { 2389 description 2390 "If set, the originator is attached to 2391 another area using the referred metric."; 2392 } 2393 bit ATTACHED-DELAY { 2394 description 2395 "If set, the originator is attached to 2396 another area using the referred metric."; 2397 } 2398 bit ATTACHED-DEFAULT { 2399 description 2400 "If set, the originator is attached to 2401 another area using the referred metric."; 2402 } 2403 bit OVERLOAD { 2404 description 2405 "If set, the originator is overloaded, 2406 and must be avoided in path calculation."; 2408 } 2409 } 2410 description 2411 "This leaf describes attributes of the LSP."; 2412 } 2414 container is-neighbor { 2415 list neighbor { 2416 uses neighbor; 2417 description 2418 "List of neighbors."; 2419 } 2420 description 2421 "This leaf describes list of ISIS neighbors. 2422 ISIS reference is TLV 2."; 2423 } 2425 container authentication { 2426 leaf authentication-type { 2427 type string; 2428 description 2429 "This leaf describes the authentication type 2430 to be used."; 2431 } 2432 leaf authentication-key { 2433 type string; 2434 description 2435 "This leaf describes the authentication key 2436 to be used. For security reason, the 2437 authentication key MUST NOT be presented 2438 in plaintext format. Authors recommends 2439 to use MD5 hash to present the authentication-key."; 2440 } 2441 description "This container describes authentication 2442 information of the node. ISIS reference is TLV 10."; 2443 } 2445 container extended-is-neighbor { 2446 list neighbor { 2447 uses neighbor-extended; 2448 description 2449 "List of neighbors."; 2450 } 2451 description 2452 "This container describes list of ISIS extended 2453 neighbors. 2454 ISIS reference is TLV 22."; 2456 } 2458 container ipv4-internal-reachability { 2459 list prefixes { 2460 uses prefix-ipv4-std; 2461 description 2462 "List of prefixes."; 2463 } 2464 description 2465 "This container describes list of IPv4 internal 2466 reachability information. 2467 ISIS reference is TLV 128."; 2468 } 2470 leaf-list protocol-supported { 2471 type uint8; 2472 description 2473 "This leaf describes the list of 2474 supported protocols. 2475 ISIS reference is TLV 129."; 2476 } 2478 container ipv4-external-reachability { 2479 list prefixes { 2480 uses prefix-ipv4-std; 2481 description 2482 "List of prefixes."; 2483 } 2484 description 2485 "This container describes list of IPv4 external 2486 reachability information. 2487 ISIS reference is TLV 130."; 2488 } 2490 leaf-list ipv4-addresses { 2491 type inet:ipv4-address; 2492 description 2493 "This leaf describes the IPv4 addresses of the node. 2494 ISIS reference is TLV 132."; 2495 } 2497 leaf ipv4-te-routerid { 2499 type inet:ipv4-address; 2500 description 2501 "This leaf describes the IPv4 Traffic Engineering 2502 router ID of the node. 2503 ISIS reference is TLV 134."; 2505 } 2507 container extended-ipv4-reachability { 2509 list prefixes { 2510 uses prefix-ipv4-extended; 2511 description 2512 "List of prefixes."; 2513 } 2514 description 2515 "This container describes list of IPv4 extended 2516 reachability information. 2517 ISIS reference is TLV 135."; 2518 } 2520 leaf dynamic-hostname { 2521 type string; 2523 description 2524 "This leaf describes the name of the node. 2525 ISIS reference is TLV 137."; 2526 } 2528 leaf ipv6-te-routerid { 2529 type inet:ipv6-address; 2530 description 2531 "This leaf describes the IPv6 Traffic Engineering 2532 router ID of the node. 2533 ISIS reference is TLV 140."; 2534 } 2536 container mt-is-neighbor { 2537 list neighbor { 2538 leaf MT-ID { 2539 type uint16 { 2540 range "0 .. 4095"; 2541 } 2542 description 2543 "This leaf defines the identifier 2544 of a topology."; 2545 } 2546 uses neighbor-extended; 2547 description 2548 "List of neighbors."; 2549 } 2550 description 2551 "This container describes list of ISIS multi-topology 2552 neighbors. 2553 ISIS reference is TLV 223."; 2554 } 2556 container mt-entries { 2557 list topology { 2559 leaf MT-ID { 2560 type uint16 { 2561 range "0 .. 4095"; 2562 } 2563 description 2564 "This leaf defines the identifier 2565 of a topology."; 2566 } 2568 leaf attributes { 2569 type bits { 2570 bit OVERLOAD { 2571 description 2572 "If set, the originator is overloaded, 2573 and must be avoided in path 2574 calculation."; 2575 } 2576 bit ATTACHED { 2577 description 2578 "If set, the originator is attached to 2579 another area using the referred metric."; 2580 } 2581 } 2582 description 2583 "This leaf describes attributes of the LSP 2584 for the associated topology."; 2585 } 2586 description 2587 "List of topologies supported."; 2588 } 2589 description 2590 "This container describes the topology supported. 2591 ISIS reference is TLV 229."; 2592 } 2594 leaf-list ipv6-addresses { 2595 type inet:ipv6-address; 2596 description 2597 "This leaf describes the IPv6 interface 2598 addresses of the node. 2599 ISIS reference is TLV 232."; 2601 } 2603 container mt-extended-ipv4-reachability { 2604 list prefixes { 2605 leaf MT-ID { 2606 type uint16 { 2607 range "0 .. 4095"; 2608 } 2609 description 2610 "This leaf defines the identifier 2611 of a topology."; 2612 } 2613 uses prefix-ipv4-extended; 2614 description 2615 "List of prefixes."; 2617 } 2618 description 2619 "This container describes list of IPv4 2620 reachability information in multi-topology 2621 environment. 2622 ISIS reference is TLV 235."; 2623 } 2625 container mt-ipv6-reachability { 2626 list prefixes { 2627 leaf MT-ID { 2628 type uint16 { 2629 range "0 .. 4095"; 2630 } 2631 description 2632 "This leaf defines the identifier 2633 of a topology."; 2634 } 2635 uses prefix-ipv6-extended; 2636 description 2637 "List of prefixes."; 2638 } 2639 description 2640 "This container describes list of IPv6 2641 reachability information in multi-topology 2642 environment. 2643 ISIS reference is TLV 237."; 2644 } 2645 container ipv6-reachability { 2646 list prefixes { 2647 uses prefix-ipv6-extended; 2648 description 2649 "List of prefixes."; 2650 } 2651 description 2652 "This container describes list of IPv6 2653 reachability information. 2654 ISIS reference is TLV 236."; 2655 } 2657 list router-capabilities { 2658 leaf flags { 2659 type bits { 2660 bit flooding { 2661 position 0; 2662 description 2663 "If the S bit is set(1), 2664 the IS-IS Router CAPABILITY TLV 2665 MUST be flooded across the entire routing domain. 2666 If the S bit is 2667 not set(0), the TLV MUST NOT be leaked between levels. 2668 This bit MUST NOT be altered during the TLV leaking."; 2669 } 2670 bit down { 2671 position 1; 2672 description 2673 "When the IS-IS Router CAPABILITY TLV is 2674 leaked from level-2 to level-1, the D bit 2675 MUST be set. Otherwise, this bit MUST 2676 be clear. IS-IS Router capability TLVs 2677 with the D bit set MUST NOT 2678 be leaked from level-1 to level-2. 2679 This is to prevent TLV looping. 2680 "; 2681 } 2682 } 2683 description 2684 "Flags associated with router capability."; 2685 } 2686 container node-tags { 2687 if-feature node-tag; 2688 list node-tag { 2689 leaf tag { 2690 type uint32; 2691 description 2692 "Node tag value."; 2693 } 2694 description 2695 "List of tags."; 2696 } 2697 description 2698 "Container for node tags."; 2699 } 2701 leaf binary { 2702 type binary; 2703 description 2704 "This leaf describes the capability of the node. 2705 Format is binary according to the protocol encoding."; 2706 } 2707 description 2708 "This container describes the capabilities of the node. 2709 This container may be extended with detailed 2710 information. 2711 ISIS reference is TLV 242."; 2712 } 2713 } 2715 grouping isis-node-tag-cfg { 2716 description 2717 "ISIS node tag config."; 2718 container node-tag { 2719 if-feature node-tag; 2720 list node-tag { 2721 key tag; 2722 leaf tag { 2723 type uint32; 2724 description 2725 "Node tag value."; 2726 } 2727 description 2728 "List of tags."; 2729 } 2730 description 2731 "Container for node tags."; 2732 } 2733 } 2735 grouping authentication-global-cfg { 2736 choice authentication-type { 2737 case key-chain { 2738 if-feature key-chain; 2739 leaf key-chain { 2740 type key-chain:key-chain-ref; 2741 description 2742 "Reference to a key-chain."; 2743 } 2744 } 2745 case password { 2746 leaf key { 2747 type string; 2748 description 2749 "This leaf describes the 2750 authentication key."; 2751 } 2752 uses key-chain:crypto-algorithm-types; 2753 } 2754 description 2755 "Choice of authentication."; 2756 } 2757 description 2758 "Grouping for global auth config."; 2759 } 2761 grouping metric-type-global-cfg { 2762 leaf value { 2763 type enumeration { 2764 enum wide-only { 2765 description 2766 "Advertise new metric style only 2767 (RFC5305)"; 2768 } 2769 enum old-only { 2770 description 2771 "Advertise old metric style only 2772 (RFC1195)"; 2773 } 2774 enum both { 2775 description "Advertise both metric 2776 styles"; 2777 } 2778 } 2779 description 2780 "This leaf describes the type of metric 2781 to be generated. 2782 Wide-only means only new metric style 2783 is generated, 2784 old-only means that only old style metric 2785 is generated, 2786 and both means that both are advertised. 2788 This leaf is only affecting IPv4 metrics."; 2789 } 2790 description 2791 "Grouping for global metric style config."; 2792 } 2794 grouping default-metric-global-cfg { 2795 leaf value { 2796 type wide-metric; 2797 default "10"; 2798 description 2799 "Value of the metric"; 2800 } 2801 description 2802 "Grouping for global default metric config."; 2803 } 2805 grouping overload-global-cfg { 2806 leaf status { 2807 type boolean; 2808 description 2809 "This leaf defines the overload status."; 2810 } 2811 description 2812 "Grouping for overload bit config."; 2813 } 2814 grouping overload-max-metric-global-cfg { 2815 leaf timeout { 2816 type uint16; 2817 units "seconds"; 2818 description 2819 "This leaf defines the timeout in seconds 2820 of the overload condition."; 2821 } 2822 description 2823 "Grouping for overload-max-metric config."; 2824 } 2826 grouping route-preference-global-cfg { 2827 choice granularity { 2828 case detail { 2829 leaf internal { 2830 type uint8; 2831 description 2832 "This leaf defines the protocol 2833 preference for internal routes."; 2834 } 2835 leaf external { 2836 type uint8; 2837 description 2838 "This leaf defines the protocol 2839 preference for external routes."; 2840 } 2841 } 2842 case coarse { 2843 leaf default { 2844 type uint8; 2845 description 2846 "This leaf defines the protocol 2847 preference for all ISIS routes."; 2848 } 2849 } 2850 description 2851 "Choice for implementation of route preference."; 2852 } 2853 description 2854 "This grouping defines how route preference is configured."; 2855 } 2857 grouping hello-authentication-cfg { 2858 choice authentication-type { 2859 case key-chain { 2860 if-feature key-chain; 2861 leaf key-chain { 2862 type key-chain:key-chain-ref; 2863 description 2864 "Reference to a key-chain."; 2865 } 2866 } 2867 case password { 2868 leaf key { 2869 type string; 2870 description 2871 "This leaf describes the 2872 authentication key."; 2873 } 2874 uses key-chain:crypto-algorithm-types; 2875 } 2876 description 2877 "Choice of authentication."; 2878 } 2879 description 2880 "Grouping for hello authentication."; 2881 } 2882 grouping hello-interval-cfg { 2883 leaf value { 2884 type uint16 { 2885 range "1..65535"; 2886 } 2887 units "seconds"; 2888 default 10; 2889 description 2890 "This leaf defines the interval of 2891 hello messages."; 2892 } 2894 description 2895 "Interval between 2896 hello messages."; 2897 } 2899 grouping hello-multiplier-cfg { 2900 leaf value { 2901 type uint16; 2902 description 2903 "This leaf defines the number of 2904 hello failed to be received before 2905 declaring the adjacency down."; 2906 } 2907 description 2908 "This grouping defines the number of 2909 hello failed to be received before 2910 declaring the adjacency down."; 2911 } 2913 grouping priority-cfg { 2915 leaf value { 2916 type uint8 { 2917 range "0 .. 127"; 2918 } 2919 default 64; 2920 description 2921 "This leaf describes the priority of 2922 the interface 2923 for DIS election."; 2924 } 2926 description 2927 "This grouping leaf describes the 2928 priority of 2929 the interface 2930 for DIS election."; 2931 } 2933 grouping metric-cfg { 2934 leaf value { 2935 type wide-metric; 2936 description 2937 "Metric value."; 2938 } 2939 description 2940 "Grouping for interface metric"; 2941 } 2942 grouping lfa-if-cfg { 2943 leaf candidate-disabled { 2944 type boolean; 2945 default false; 2946 description 2947 "Prevent the interface to be used as backup."; 2948 } 2949 leaf enable { 2950 type boolean; 2951 description 2952 "Activates LFA. 2953 This model assumes activation 2954 of per-prefix LFA."; 2955 } 2957 container remote-lfa { 2958 if-feature remote-lfa; 2959 leaf enable { 2960 type boolean; 2961 description 2962 "Activates rLFA."; 2963 } 2964 description 2965 "remote LFA configuration."; 2966 } 2967 description 2968 "Grouping for LFA 2969 interface configuration"; 2970 } 2971 grouping isis-global-cfg { 2972 description 2973 "Defines the ISIS global configuration."; 2975 uses admin-control; 2976 leaf level-type { 2977 type level; 2978 default "level-all"; 2979 description 2980 "This leaf describes the type of ISIS node. 2981 A node can be level-1-only, level-2-only 2982 or level-1-2. 2983 "; 2984 } 2986 leaf system-id { 2987 type system-id; 2988 description 2989 "This leaf defines the system-id of the node."; 2990 } 2992 leaf maximum-area-addresses { 2993 if-feature maximum-area-addresses; 2994 type uint8; 2995 default 3; 2996 description 2997 "Defines the maximum areas supported."; 2998 } 3000 leaf-list area-address { 3001 type area-address; 3002 description 3003 "List of areas supported by the 3004 protocol instance."; 3005 } 3007 container mpls { 3008 leaf ipv4-router-id { 3009 if-feature ipv4-router-id; 3010 type inet:ipv4-address; 3011 description 3012 "Router ID value that would be used in 3013 TLV 134."; 3014 } 3015 leaf ipv6-router-id { 3016 if-feature ipv6-router-id; 3017 type inet:ipv6-address; 3018 description 3019 "Router ID value that would be used in 3020 TLV 140."; 3021 } 3022 container igp-ldp-sync { 3023 if-feature igp-ldp-sync; 3024 description 3025 "This container may be augmented 3026 with global parameters for igp-ldp-sync."; 3027 } 3028 description 3029 "This container handles mpls config."; 3030 } 3031 leaf reference-bandwidth { 3032 if-feature reference-bandwidth; 3033 type uint32; 3034 units "bps"; 3035 description 3036 "This leaf defines the bandwidth for calculating 3037 metric."; 3038 } 3040 leaf lsp-mtu { 3041 type uint16; 3042 units "bytes"; 3043 default 1492; 3044 description 3045 "This leaf describes the maximum size of a 3046 LSP PDU in bytes."; 3047 } 3048 leaf lsp-lifetime { 3049 type uint16 { 3050 range "1..65535"; 3051 } 3052 units "seconds"; 3053 description 3054 "This leaf describes the lifetime of the router 3055 LSP in seconds."; 3056 } 3057 leaf lsp-refresh { 3058 if-feature lsp-refresh; 3059 type uint16 { 3060 range "1..65535"; 3061 } 3062 units "seconds"; 3063 description 3064 "This leaf describes the refresh interval of the 3065 router LSP in seconds."; 3066 } 3068 container graceful-restart { 3069 if-feature graceful-restart; 3070 leaf enable { 3071 type boolean; 3072 description 3073 "Control enabling the feature."; 3074 } 3075 description 3076 "This container activates graceful restart."; 3077 } 3079 uses isis-node-tag-cfg; 3081 container authentication { 3082 uses authentication-global-cfg; 3084 container level-1 { 3085 uses authentication-global-cfg; 3086 description "level-1 specific cfg"; 3087 } 3088 container level-2 { 3089 uses authentication-global-cfg; 3090 description "level-2 specific cfg"; 3091 } 3092 description "authentication global cfg. 3093 It covers both LSPs and SNPs."; 3094 } 3096 container metric-type { 3097 uses metric-type-global-cfg; 3099 container level-1 { 3100 uses metric-type-global-cfg; 3101 description "level-1 specific cfg"; 3102 } 3103 container level-2 { 3104 uses metric-type-global-cfg; 3105 description "level-2 specific cfg"; 3106 } 3107 description "Metric style global cfg."; 3108 } 3110 container default-metric { 3111 uses default-metric-global-cfg; 3113 container level-1 { 3114 uses default-metric-global-cfg; 3115 description "level-1 specific cfg"; 3116 } 3117 container level-2 { 3118 uses default-metric-global-cfg; 3119 description "level-2 specific cfg"; 3120 } 3121 description "Default metric global cfg."; 3122 } 3124 container afs { 3125 list af { 3126 if-feature nlpid-control; 3127 key af; 3128 leaf af { 3129 type identityref { 3130 base rt:address-family; 3131 } 3132 description 3133 "Address-family"; 3134 } 3136 leaf enable { 3137 type boolean; 3138 description 3139 "Describes the activation state of the 3140 AF."; 3141 } 3142 description 3143 "This list permits activation 3144 of new address families."; 3146 } 3147 description 3148 "Container for address-families"; 3149 } 3151 container preference { 3152 uses route-preference-global-cfg; 3153 description 3154 "This container defines the protocol preference."; 3155 } 3157 container overload { 3159 uses overload-global-cfg; 3160 description 3161 "This container describes if the router is 3162 set to overload state."; 3163 } 3165 container overload-max-metric { 3166 if-feature overload-max-metric; 3167 uses overload-max-metric-global-cfg; 3169 description 3170 "This container describes if the router is 3171 set to overload state using max-metric 3172 advertisement."; 3173 } 3175 } 3177 grouping isis-global-topologies-cfg { 3178 description 3179 "Per topology config."; 3181 container default-metric { 3182 uses default-metric-global-cfg; 3184 container level-1 { 3185 uses default-metric-global-cfg; 3186 description "level-1 specific cfg"; 3187 } 3188 container level-2 { 3189 uses default-metric-global-cfg; 3190 description "level-2 specific cfg"; 3191 } 3192 description "Default metric per 3193 topology cfg."; 3194 } 3196 uses isis-node-tag-cfg; 3197 } 3199 grouping isis-if-cfg { 3200 description 3201 "Grouping for interface cfg."; 3203 leaf level-type { 3204 type level; 3205 default "level-all"; 3206 description 3207 "This leaf defines the associated ISIS 3208 level of the interface."; 3209 } 3210 leaf lsp-pacing-interval { 3211 type uint16; 3212 units "milliseconds"; 3213 default 33; 3214 description 3215 "This leaf defines the interval between 3216 LSP transmissions in milli-seconds"; 3217 } 3218 leaf lsp-retransmit-interval { 3219 type uint16; 3220 units "seconds"; 3221 description 3222 "This leaf defines the interval between 3223 retransmission of LSP"; 3224 } 3225 leaf passive { 3226 type boolean; 3227 default "false"; 3228 description 3229 "This leaf defines if interface is in 3230 passive mode (ISIS not running, 3231 but network is advertised)."; 3232 } 3233 leaf csnp-interval { 3234 type uint16 { 3235 range "1..65535"; 3236 } 3237 units "seconds"; 3238 default 10; 3239 description 3240 "This leaf defines the interval of CSNP 3241 messages."; 3242 } 3244 container hello-padding { 3245 leaf enable { 3246 type boolean; 3247 default "true"; 3248 description 3249 "Status of Hello-padding activation. 3250 By default, the implementation shall 3251 pad HELLOs."; 3252 } 3254 description 3255 "This container handles ISIS hello padding 3256 configuration."; 3257 } 3258 leaf mesh-group-enable { 3259 type mesh-group-state; 3260 description 3261 "Describes the mesh group state of 3262 the interface."; 3263 } 3265 leaf mesh-group { 3266 when "../mesh-group-enable = 'meshSet'" { 3267 description 3268 "Only valid when mesh-group-enable 3269 equals meshSet"; 3270 } 3271 type uint8; 3272 description 3273 "Describes the mesh group ID of 3274 the interface."; 3275 } 3277 leaf interface-type { 3278 type interface-type; 3279 description 3280 "This leaf defines the type of adjacency 3281 to be established on the interface. 3282 This is affecting the type of hello 3283 message that would be used."; 3284 } 3286 uses admin-control; 3288 leaf-list tag { 3289 if-feature prefix-tag; 3291 type uint32; 3292 description 3293 "This leaf defines list of tags associated 3294 with the interface."; 3295 } 3297 leaf-list tag64 { 3298 if-feature prefix-tag64; 3300 type uint64; 3301 description 3302 "This leaf defines list of 64bits tags 3303 associated with the interface."; 3304 } 3305 leaf node-flag { 3306 if-feature node-flag; 3307 type boolean; 3308 default false; 3309 description 3310 "Set prefix as a node 3311 representative prefix."; 3313 } 3315 container hello-authentication { 3316 uses hello-authentication-cfg; 3318 container level-1 { 3319 uses hello-authentication-cfg; 3320 description "level-1 specific cfg"; 3321 } 3322 container level-2 { 3323 uses hello-authentication-cfg; 3324 description "level-2 specific cfg"; 3325 } 3326 description "Authentication type 3327 to be used in hello messages."; 3328 } 3330 container hello-interval { 3331 uses hello-interval-cfg; 3333 container level-1 { 3334 uses hello-interval-cfg; 3335 description "level-1 specific cfg"; 3336 } 3337 container level-2 { 3338 uses hello-interval-cfg; 3339 description "level-2 specific cfg"; 3340 } 3341 description "Interval between 3342 hello messages."; 3343 } 3345 container hello-multiplier { 3346 uses hello-multiplier-cfg; 3348 container level-1 { 3349 uses hello-multiplier-cfg; 3350 description "level-1 specific cfg"; 3352 } 3353 container level-2 { 3354 uses hello-multiplier-cfg; 3355 description "level-2 specific cfg"; 3356 } 3357 description "Hello multiplier 3358 configuration."; 3359 } 3361 container priority { 3362 must '../interface-type = "broadcast"' { 3363 error-message 3364 "Priority only applies to broadcast 3365 interfaces."; 3366 description 3367 "Check for broadcast interface."; 3368 } 3369 uses priority-cfg; 3371 container level-1 { 3372 uses priority-cfg; 3373 description "level-1 specific cfg"; 3374 } 3375 container level-2 { 3376 uses priority-cfg; 3377 description "level-2 specific cfg"; 3378 } 3379 description "Priority for DIS election."; 3380 } 3382 container metric { 3383 uses metric-cfg; 3385 container level-1 { 3386 uses metric-cfg; 3387 description "level-1 specific cfg"; 3388 } 3389 container level-2 { 3390 uses metric-cfg; 3391 description "level-2 specific cfg"; 3392 } 3393 description "Metric configuration."; 3394 } 3396 container bfd { 3397 if-feature bfd; 3398 leaf enabled { 3399 type boolean; 3400 default false; 3401 description " 3402 Enables BFD on the interface 3403 "; 3404 } 3405 description 3406 "BFD configuration."; 3407 } 3409 container afs { 3410 list af { 3411 key af; 3413 leaf af { 3414 type identityref { 3415 base rt:address-family; 3416 } 3417 description 3418 "Address-family"; 3419 } 3421 description 3422 "List of AFs."; 3423 } 3424 description 3425 "Container for address-families"; 3426 } 3428 container mpls { 3429 container igp-ldp-sync { 3430 if-feature igp-ldp-sync; 3431 leaf enable { 3432 type boolean; 3433 description 3434 "Enable/disable IGP LDP sync."; 3435 } 3436 description 3437 "IGP-LDP sync configuration."; 3438 } 3439 description 3440 "Container for MPLS specific configuration 3441 for ISIS."; 3442 } 3444 } 3445 grouping isis-if-topologies-cfg { 3446 description 3447 "ISIS interface topology cfg."; 3448 container metric { 3449 uses metric-cfg; 3451 container level-1 { 3452 uses metric-cfg; 3453 description "level-1 specific cfg"; 3454 } 3455 container level-2 { 3456 uses metric-cfg; 3457 description "level-2 specific cfg"; 3458 } 3459 description "Metric configuration."; 3460 } 3461 } 3463 /* */ 3465 augment "/rt:routing-state/" 3466 +"rt:ribs/rt:rib/rt:routes/rt:route" { 3467 when "rt:source-protocol = 'isis:isis'" { 3468 description "ISIS-specific route attributes."; 3469 } 3470 uses route-content; 3471 description 3472 "This augments route object in RIB with ISIS-specific 3473 attributes."; 3474 } 3476 augment "/if:interfaces/if:interface" 3477 { 3478 leaf clns-mtu { 3479 type uint16; 3480 description 3481 "Defines CLNS MTU of the interface."; 3482 } 3483 description "ISO interface config."; 3484 } 3486 augment "/rt:routing/rt:control-plane-protocols/" 3487 +"rt:control-plane-protocol" { 3488 when "rt:type = 'isis:isis'" { 3489 description 3490 "This augment is only valid when routing protocol 3491 instance type is isis."; 3492 } 3493 description 3494 "This augments a routing protocol instance with ISIS 3495 specific parameters."; 3496 container isis { 3498 must "count(area-address) > 0" { 3499 error-message "At least one area-address 3500 must be configured."; 3501 description 3502 "Enforce configuration of at least one area."; 3503 } 3505 uses isis-global-cfg; 3507 container fast-reroute { 3508 if-feature fast-reroute; 3509 uses fast-reroute-global-cfg; 3510 description 3511 "IPFRR."; 3512 } 3513 container multi-topology { 3514 if-feature multi-topology; 3515 list topology { 3517 key "name"; 3519 leaf enable { 3520 type boolean; 3521 description 3522 "Control enabling of topologies"; 3523 } 3525 leaf name { 3526 type leafref { 3527 path "../../../../../../rt:ribs/rt:rib/rt:name"; 3528 } 3530 description "RIB"; 3531 } 3533 uses isis-global-topologies-cfg; 3534 container fast-reroute { 3535 if-feature fast-reroute; 3536 uses fast-reroute-global-cfg; 3537 description 3538 "IPFRR."; 3539 } 3541 description 3542 "List of topologies"; 3543 } 3544 description 3545 "Container for multi-topology"; 3546 } 3548 container interfaces { 3549 list interface { 3550 key "name"; 3551 leaf name { 3552 type if:interface-ref; 3554 description 3555 "Reference to the interface within 3556 the routing-instance."; 3557 } 3559 uses isis-if-cfg; 3560 container fast-reroute { 3561 if-feature fast-reroute; 3562 uses fast-reroute-if-cfg; 3563 description 3564 "IPFRR."; 3565 } 3566 container multi-topology { 3567 if-feature multi-topology; 3568 list topology { 3569 key name; 3571 leaf name { 3572 type leafref { 3573 path "../../../../../../../../"+ 3574 "rt:ribs/rt:rib/rt:name"; 3575 } 3577 description 3578 "Name of RIB."; 3579 } 3580 container fast-reroute { 3581 if-feature fast-reroute; 3582 uses fast-reroute-if-cfg; 3583 description 3584 "IPFRR."; 3585 } 3586 uses isis-if-topologies-cfg; 3587 description 3588 "List of topologies."; 3589 } 3590 description 3591 "Container for multi-topology"; 3592 } 3594 description 3595 "List of ISIS interfaces."; 3596 } 3597 description 3598 "This container defines ISIS interface specific 3599 configuration objects."; 3600 } 3602 description 3603 "This container defines ISIS specific configuration 3604 objects."; 3605 } 3606 } 3608 augment "/rt:routing-state/" 3609 +"rt:control-plane-protocols/rt:control-plane-protocol" { 3610 when "rt:type = 'isis:isis'" { 3611 description 3612 "This augment is only valid when routing protocol 3613 instance type is isis."; 3614 } 3615 description 3616 "This augments routing protocol instance states with ISIS 3617 specific parameters."; 3619 container isis { 3620 config false; 3621 uses isis-global-cfg; 3622 container fast-reroute { 3623 if-feature fast-reroute; 3624 uses fast-reroute-global-cfg; 3625 uses fast-reroute-global-state; 3626 description 3627 "IPFRR states."; 3628 } 3630 list topologies { 3631 key name; 3632 leaf name { 3633 type leafref { 3634 path "../../../../../" 3635 +"rt:ribs/rt:rib/rt:name"; 3636 } 3638 description 3639 "Name of RIB."; 3640 } 3641 container fast-route { 3642 if-feature fast-reroute; 3643 uses fast-reroute-global-cfg; 3644 uses fast-reroute-global-state; 3645 description 3646 "IPFRR states."; 3647 } 3648 description 3649 "List of topologies."; 3650 } 3652 container system-counters { 3653 list level { 3654 key level; 3656 leaf level { 3657 type level-number; 3658 description 3659 "This leaf describes the ISIS level."; 3660 } 3661 leaf corrupted-lsps { 3662 type uint32; 3663 description 3664 "Number of corrupted in-memory LSPs detected. 3665 LSPs received from the wire with a bad 3666 checksum are silently dropped and not counted. 3667 LSPs received from the wire with parse errors 3668 are counted by lsp-errors."; 3669 } 3670 leaf authentication-type-fails { 3671 type uint32; 3672 description 3673 "Number of authentication type mismatches."; 3674 } 3675 leaf authentication-fails { 3676 type uint32; 3677 description 3678 "Number of authentication key failures."; 3679 } 3680 leaf database-overload { 3681 type uint32; 3682 description 3683 "Number of times the database has become 3684 overloaded."; 3685 } 3686 leaf own-lsp-purge { 3687 type uint32; 3688 description 3689 "Number of times a zero-aged copy of the 3690 system's own LSP is received from some 3691 other node."; 3692 } 3693 leaf manual-address-drop-from-area { 3694 type uint32; 3695 description 3696 "Number of times a manual address 3697 has been dropped from the area."; 3698 } 3699 leaf max-sequence { 3700 type uint32; 3701 description 3702 "Number of times the system has attempted 3703 to exceed the maximum sequence number."; 3704 } 3705 leaf sequence-number-skipped { 3706 type uint32; 3707 description 3708 "Number of times a sequence number skip has 3709 occured."; 3710 } 3711 leaf id-len-mismatch { 3712 type uint32; 3713 description 3714 "Number of times a PDU is received with 3715 a different value for ID field length 3716 from that of the receiving system."; 3717 } 3718 leaf partition-changes { 3719 type uint32; 3720 description 3721 "Number of partition changes detected."; 3722 } 3723 leaf lsp-errors { 3724 type uint32; 3725 description 3726 "Number of LSPs with errors we have 3727 received."; 3729 } 3730 leaf spf-runs { 3731 type uint32; 3732 description 3733 "Number of times we ran SPF at this level."; 3734 } 3735 description 3736 "List of supported levels."; 3737 } 3738 description 3739 "The container defines a list of counters 3740 for the IS."; 3741 } 3743 container interfaces { 3744 list interface { 3745 key interface; 3747 leaf interface { 3748 type string; 3749 description 3750 "This leaf describes the name 3751 of the interface."; 3752 } 3753 uses isis-if-cfg; 3754 container fast-reroute { 3755 if-feature fast-reroute; 3756 uses fast-reroute-if-cfg; 3757 description 3758 "IPFRR."; 3759 } 3760 uses adjacency-state; 3762 list topologies { 3763 key name; 3765 leaf name { 3766 type leafref { 3767 path "../../../../../" 3768 +"../../rt:ribs/rt:rib/rt:name"; 3769 } 3771 description 3772 "Name of RIB."; 3773 } 3774 uses isis-if-topologies-cfg; 3775 container fast-reroute { 3776 if-feature fast-reroute; 3777 uses fast-reroute-if-cfg; 3778 description 3779 "IPFRR."; 3780 } 3781 uses adjacency-state; 3783 description 3784 "List of topologies."; 3785 } 3787 container event-counters { 3788 leaf adjacency-changes { 3789 type uint32; 3790 description 3791 "The number of times an adjacency state 3792 change has occured on this interface."; 3793 } 3794 leaf adjacency-number { 3795 type uint32; 3796 description 3797 "The number of adjacencies on this 3798 interface."; 3799 } 3800 leaf init-fails { 3801 type uint32; 3802 description 3803 "The number of times initialization of 3804 this interface has failed. This counts 3805 events such as PPP NCP failures. 3806 Failures to form an adjacency are counted 3807 by adjacency-rejects."; 3808 } 3809 leaf adjacency-rejects { 3810 type uint32; 3811 description 3812 "The number of times an adjacency has been 3813 rejected on this interface."; 3814 } 3815 leaf id-len-mismatch { 3816 type uint32; 3817 description 3818 "The number of times an IS-IS PDU with an ID 3819 field length different from that for this 3820 system has been received on this interface."; 3822 } 3823 leaf max-area-addresses-mismatch { 3824 type uint32; 3825 description 3826 "The number of times an IS-IS PDU with 3827 according max area address field 3828 differs from that for 3829 this system has been received on this 3830 interface."; 3831 } 3832 leaf authentication-type-fails { 3833 type uint32; 3834 description 3835 "Number of authentication type mismatches."; 3836 } 3837 leaf authentication-fails { 3838 type uint32; 3839 description 3840 "Number of authentication key failures."; 3841 } 3842 leaf lan-dis-changes { 3843 type uint32; 3844 description 3845 "The number of times the DIS has changed 3846 on this interface at this level. 3847 If the interface type is point to point, 3848 the count is zero."; 3849 } 3850 description 3851 "Provides protocol event counters."; 3852 } 3853 container packet-counters { 3854 list level { 3855 key level; 3857 leaf level { 3858 type level-number; 3859 description 3860 "This leaf describes the ISIS level."; 3861 } 3863 container iih { 3864 leaf in { 3865 type uint32; 3866 description 3867 "Received PDUs."; 3868 } 3869 leaf out { 3870 type uint32; 3871 description 3872 "Sent PDUs."; 3873 } 3874 description 3875 "The number of IIH PDUs received/sent."; 3876 } 3877 container ish { 3878 leaf in { 3879 type uint32; 3880 description 3881 "Received PDUs."; 3882 } 3883 leaf out { 3884 type uint32; 3885 description 3886 "Sent PDUs."; 3887 } 3888 description 3889 "The number of ISH PDUs received/sent."; 3890 } 3891 container esh { 3892 leaf in { 3893 type uint32; 3894 description 3895 "Received PDUs."; 3896 } 3897 leaf out { 3898 type uint32; 3899 description 3900 "Sent PDUs."; 3901 } 3902 description 3903 "The number of ESH PDUs received/sent."; 3904 } 3905 container lsp { 3906 leaf in { 3907 type uint32; 3908 description 3909 "Received PDUs."; 3910 } 3911 leaf out { 3912 type uint32; 3913 description 3914 "Sent PDUs."; 3915 } 3916 description 3917 "The number of LSP PDUs received/sent."; 3919 } 3920 container psnp { 3921 leaf in { 3922 type uint32; 3923 description 3924 "Received PDUs."; 3925 } 3926 leaf out { 3927 type uint32; 3928 description 3929 "Sent PDUs."; 3930 } 3931 description 3932 "The number of PSNP PDUs received/sent."; 3933 } 3934 container csnp { 3935 leaf in { 3936 type uint32; 3937 description 3938 "Received PDUs."; 3939 } 3940 leaf out { 3941 type uint32; 3942 description 3943 "Sent PDUs."; 3944 } 3945 description 3946 "The number of CSNP PDUs received/sent."; 3947 } 3948 container unknown { 3949 leaf in { 3950 type uint32; 3951 description 3952 "Received PDUs."; 3953 } 3954 leaf out { 3955 type uint32; 3956 description 3957 "Sent PDUs."; 3958 } 3959 description 3960 "The number of unknown PDUs received/sent."; 3961 } 3962 description 3963 "List of supported levels."; 3964 } 3965 description 3966 "Provides packet counters per level."; 3968 } 3969 description 3970 "List of interfaces."; 3971 } 3972 description 3973 "The container defines operational parameters 3974 of interfaces."; 3975 } 3977 container spf-log { 3978 list event { 3979 key id; 3981 leaf id { 3982 type uint32; 3983 description 3984 "This leaf defines the event identifier. 3985 This is a purely internal value."; 3986 } 3987 leaf spf-type { 3988 type enumeration { 3989 enum full { 3990 description 3991 "Computation done is a Full SPF."; 3992 } 3993 enum incremental { 3994 description 3995 "Computation done is an 3996 incremental SPF."; 3997 } 3998 enum route-only { 3999 description 4000 "Computation done is a 4001 reachability computation 4002 only."; 4003 } 4004 } 4005 description 4006 "This leaf describes the type of computation 4007 used."; 4008 } 4009 leaf level { 4010 type level-number; 4011 description 4012 "This leaf describes the level affected by the 4013 the computation."; 4014 } 4015 leaf spf-delay { 4016 type uint32; 4017 units "milliseconds"; 4018 description 4019 "This leaf describes the SPF delay that 4020 was used for this event."; 4021 } 4022 leaf schedule-timestamp { 4023 type yang:timestamp; 4024 description 4025 "This leaf describes the timestamp 4026 when the computation was scheduled."; 4027 } 4028 leaf start-timestamp { 4029 type yang:timestamp; 4030 description 4031 "This leaf describes the timestamp 4032 when the computation was started."; 4033 } 4034 leaf end-timestamp { 4035 type yang:timestamp; 4036 description 4037 "This leaf describes the timestamp 4038 when the computation was ended."; 4039 } 4040 list trigger-lsp { 4041 key "lsp"; 4042 leaf lsp { 4043 type lsp-id; 4044 description 4045 "This leaf describes the LSPID 4046 of the LSP."; 4047 } 4048 leaf sequence { 4049 type uint32; 4050 description 4051 "This leaf describes the sequence 4052 number of the LSP."; 4053 } 4054 description 4055 "This leaf describes list of LSPs 4056 that triggered the computation."; 4057 } 4058 description 4059 "List of computation events."; 4060 } 4062 description 4063 "This container lists the SPF computation events."; 4065 } 4066 container lsp-log { 4067 list event { 4068 key id; 4070 leaf id { 4071 type uint32; 4072 description 4073 "This leaf defines the event identifier. 4074 This is a purely internal value."; 4075 } 4076 leaf level { 4077 type level-number; 4078 description 4079 "This leaf describes the level affected by the 4080 the computation."; 4081 } 4082 container lsp { 4083 leaf lsp { 4085 type lsp-id; 4086 description 4087 "This leaf describes the LSPID 4088 of the LSP."; 4089 } 4090 leaf sequence { 4091 type uint32; 4092 description 4093 "This leaf describes the sequence 4094 number of the LSP."; 4095 } 4096 description 4097 "This container describes the received LSP 4098 , in case of local LSP update the local 4099 LSP ID is referenced."; 4100 } 4102 leaf received-timestamp { 4103 type yang:timestamp; 4105 description 4106 "This leaf describes the timestamp 4107 when the LSP was received. In case of 4108 local LSP update, the timestamp refers 4109 to the local LSP update time."; 4110 } 4112 leaf change { 4113 type bits { 4114 bit refresh { 4115 position 0; 4116 description 4117 "Refresh LSP, nothing has changed."; 4118 } 4119 bit link-down { 4120 position 1; 4121 description 4122 "One or more links are down."; 4123 } 4124 bit link-up { 4125 position 2; 4126 description 4127 "One or more links are up."; 4128 } 4129 bit link-metric-change { 4130 position 3; 4131 description 4132 "One or more links experienced 4133 a metric change."; 4134 } 4135 bit link-other-change { 4136 position 4; 4137 description 4138 "One or more links experienced 4139 a change that does not affect state 4140 or metric."; 4141 } 4142 bit prefix-down { 4143 position 5; 4144 description 4145 "One or more links are down."; 4146 } 4147 bit prefix-up { 4148 position 6; 4149 description 4150 "One or more prefixes are up."; 4151 } 4152 bit prefix-metric-change { 4153 position 7; 4154 description 4155 "One or more prefixes experienced 4156 a metric change."; 4157 } 4158 bit prefix-other-change { 4159 position 8; 4160 description 4161 "One or more prefixes experienced 4162 a change that does not affect state 4163 or metric."; 4164 } 4165 bit other-change { 4166 position 9; 4167 description 4168 "One or more component changed that 4169 is not a prefix or link."; 4170 } 4171 } 4172 description 4173 "This leaf describes the type of change 4174 in the LSP."; 4175 } 4177 description 4178 "List of LSP events."; 4179 } 4181 description 4182 "This container lists the LSP reception events. 4183 Local LSP modification are also contained in the 4184 list."; 4185 } 4186 container database { 4187 list level-db { 4188 key level; 4190 leaf level { 4191 type level-number; 4192 description 4193 "Current level number"; 4194 } 4195 list lsp { 4196 key lsp-id; 4198 uses database; 4199 description 4200 "List of LSPs in LSDB."; 4201 } 4203 description 4204 "This container describes the list of LSPs 4205 in the level x database."; 4206 } 4208 description 4209 "This container describes ISIS Link State 4210 databases."; 4211 } 4212 container hostnames { 4214 list hostname { 4215 key system-id; 4216 leaf system-id { 4217 type system-id; 4218 description 4219 "This leaf describes the system-id 4220 associated with the hostname."; 4221 } 4222 leaf hostname { 4224 type string; 4225 description 4226 "This leaf describes the hostname 4227 associated with the system ID."; 4228 } 4229 description 4230 "List of system-id/hostname associations"; 4231 } 4233 description 4234 "This container describes the list 4235 of binding between system-id and 4236 hostnames."; 4237 } 4239 description 4240 "This container defines various ISIS states objects."; 4241 } 4242 } 4244 /* RPC methods */ 4246 rpc clear-adjacency { 4247 description 4248 "This RPC request clears a particular 4249 set of ISIS adjacencies. If the operation 4250 fails for ISIS internal reason, then 4251 error-tag and error-app-tag should be set 4252 to a meaningful value."; 4253 input { 4255 leaf routing-protocol-instance-name { 4256 type instance-state-ref; 4257 mandatory "true"; 4258 description 4259 "Name of the ISIS protocol instance whose ISIS 4260 information is being queried. 4262 If the ISIS instance with name equal to the 4263 value of this parameter doesn't exist, then this 4264 operation SHALL fail with error-tag 'data-missing' 4265 and error-app-tag 4266 'routing-protocol-instance-not-found'."; 4267 } 4268 leaf level { 4269 type level; 4270 description 4271 "ISIS level of the adjacency to be cleared. 4272 If ISIS level is level-1-2, both level 1 and level 2 4273 adjacencies would be cleared. 4275 If the value provided is different from the one 4276 authorized in the enum type, then this 4277 operation SHALL fail with error-tag 'data-missing' 4278 and error-app-tag 4279 'bad-isis-level'. 4280 "; 4281 } 4282 leaf interface { 4283 type string; 4284 description 4285 "Name of the ISIS interface. 4287 If the ISIS interface with name equal to the 4288 value of this parameter doesn't exist, then this 4289 operation SHALL fail with error-tag 'data-missing' 4290 and error-app-tag 4291 'isis-interface-not-found'."; 4292 } 4293 } 4294 } 4296 rpc clear-database { 4297 description 4298 "This RPC request clears a particular 4299 ISIS database. If the operation 4300 fails for ISIS internal reason, then 4301 error-tag and error-app-tag should be set 4302 to a meaningful value."; 4303 input { 4304 leaf routing-protocol-instance-name { 4305 type instance-state-ref; 4306 mandatory "true"; 4307 description 4308 "Name of the ISIS protocol instance whose ISIS 4309 information is being queried. 4311 If the ISIS instance with name equal to the 4312 value of this parameter doesn't exist, then this 4313 operation SHALL fail with error-tag 'data-missing' 4314 and error-app-tag 4315 'routing-protocol-instance-not-found'."; 4316 } 4317 leaf level { 4318 type level; 4319 description 4320 "ISIS level of the adjacency to be cleared. 4321 If ISIS level is level-1-2, both level 1 and level 2 4322 adjacencies would be cleared. 4324 If the value provided is different from the one 4325 authorized in the enum type, then this 4326 operation SHALL fail with error-tag 'data-missing' 4327 and error-app-tag 4328 'bad-isis-level'. 4329 "; 4330 } 4331 } 4333 } 4335 /* Notifications */ 4337 notification database-overload { 4338 uses notification-instance-hdr; 4340 leaf overload { 4341 type enumeration { 4342 enum "off" { 4343 description 4344 "The system has left overload condition."; 4345 } 4346 enum "on" { 4347 description 4348 "The system is in overload condition."; 4349 } 4351 } 4352 description 4353 "Describes the new overload state of the instance."; 4354 } 4355 description 4356 "This notification is sent when an ISIS instance 4357 overload condition changes."; 4358 } 4360 notification lsp-too-large { 4361 uses notification-instance-hdr; 4362 uses notification-interface-hdr; 4364 leaf pdu-size { 4365 type uint32; 4366 description 4367 "Size of the PDU"; 4368 } 4369 leaf lsp-id { 4370 type lsp-id; 4371 description 4372 "LSP ID."; 4373 } 4374 description 4375 "This notification is sent when we attempt 4376 to propagate an LSP that is larger than the 4377 dataLinkBlockSize for the circuit. 4378 The notification generation must be throttled 4379 with at least a 5 second gap. 4380 "; 4381 } 4383 notification corrupted-lsp-detected { 4384 uses notification-instance-hdr; 4385 leaf lsp-id { 4386 type lsp-id; 4387 description 4388 "LSP ID."; 4389 } 4390 description 4391 "This notification is sent when we find 4392 that an LSP that was stored in memory has 4393 become corrupted. 4394 "; 4395 } 4397 notification attempt-to-exceed-max-sequence { 4398 uses notification-instance-hdr; 4399 leaf lsp-id { 4400 type lsp-id; 4401 description 4402 "LSP ID."; 4403 } 4404 description 4405 "This notification is sent when the system 4406 wraps the 32-bit sequence counter of an LSP. 4407 "; 4408 } 4410 notification id-len-mismatch { 4411 uses notification-instance-hdr; 4412 uses notification-interface-hdr; 4414 leaf pdu-field-len { 4415 type uint8; 4416 description 4417 "Size of the ID length in the received PDU"; 4418 } 4419 leaf raw-pdu { 4420 type binary; 4421 description 4422 "Received raw PDU."; 4423 } 4424 description 4425 "This notification is sent when we receive a PDU 4426 with a different value for the System ID length. 4427 The notification generation must be throttled 4428 with at least a 5 second gap. 4429 "; 4430 } 4432 notification max-area-addresses-mismatch { 4433 uses notification-instance-hdr; 4434 uses notification-interface-hdr; 4436 leaf max-area-addresses { 4437 type uint8; 4438 description 4439 "Received number of supported areas"; 4440 } 4441 leaf raw-pdu { 4442 type binary; 4443 description 4444 "Received raw PDU."; 4445 } 4446 description 4447 "This notification is sent when we receive a PDU 4448 with a different value for the Maximum Area Addresses. 4449 The notification generation must be throttled 4450 with at least a 5 second gap. 4451 "; 4452 } 4454 notification own-lsp-purge { 4455 uses notification-instance-hdr; 4456 uses notification-interface-hdr; 4457 leaf lsp-id { 4458 type lsp-id; 4459 description 4460 "LSP ID."; 4461 } 4462 description 4463 "This notification is sent when the system 4464 receives a PDU with its own system ID and zero age. 4465 "; 4466 } 4468 notification sequence-number-skipped { 4469 uses notification-instance-hdr; 4470 uses notification-interface-hdr; 4471 leaf lsp-id { 4472 type lsp-id; 4473 description 4474 "LSP ID."; 4475 } 4476 description 4477 "This notification is sent when the system 4478 receives a PDU with its own system ID and 4479 different contents. The system has to reissue 4480 the LSP with a higher sequence number. 4481 "; 4482 } 4484 notification authentication-type-failure { 4485 uses notification-instance-hdr; 4486 uses notification-interface-hdr; 4487 leaf raw-pdu { 4488 type binary; 4489 description 4490 "Received raw PDU."; 4491 } 4492 description 4493 "This notification is sent when the system 4494 receives a PDU with the wrong authentication type 4495 field. 4496 The notification generation must be throttled with 4497 at least a 5 second gap. 4498 "; 4499 } 4501 notification authentication-failure { 4502 uses notification-instance-hdr; 4503 uses notification-interface-hdr; 4504 leaf raw-pdu { 4505 type binary; 4506 description 4507 "Received raw PDU."; 4508 } 4509 description 4510 "This notification is sent when the system 4511 receives a PDU with the wrong authentication 4512 information. 4513 The notification generation must be throttled with 4514 at least a 5 second gap. 4515 "; 4516 } 4518 notification version-skew { 4519 uses notification-instance-hdr; 4520 uses notification-interface-hdr; 4521 leaf protocol-version { 4522 type uint8; 4523 description 4524 "Protocol version received in the PDU."; 4525 } 4526 leaf raw-pdu { 4527 type binary; 4528 description 4529 "Received raw PDU."; 4530 } 4531 description 4532 "This notification is sent when the system 4533 receives a PDU with a different protocol version 4534 number. 4535 The notification generation must be throttled with at least 4536 a 5 second gap. 4537 "; 4538 } 4540 notification area-mismatch { 4541 uses notification-instance-hdr; 4542 uses notification-interface-hdr; 4543 leaf raw-pdu { 4544 type binary; 4545 description 4546 "Received raw PDU."; 4547 } 4548 description 4549 "This notification is sent when the system 4550 receives a Hello PDU from an IS that does 4551 not share any area address. 4552 The notification generation must be throttled with at least 4553 a 5 second gap. 4554 "; 4555 } 4557 notification rejected-adjacency { 4558 uses notification-instance-hdr; 4559 uses notification-interface-hdr; 4560 leaf raw-pdu { 4561 type binary; 4562 description 4563 "Received raw PDU."; 4564 } 4565 leaf reason { 4566 type string; 4567 description 4568 "The system may provide a reason to reject the 4569 adjacency. If the reason is not available, 4570 the system use an empty string."; 4571 } 4572 description 4573 "This notification is sent when the system 4574 receives a Hello PDU from an IS but does not 4575 establish an adjacency for some reason. 4576 The notification generation must be throttled with at least 4577 a 5 second gap. 4578 "; 4579 } 4581 notification protocols-supported-mismatch { 4582 uses notification-instance-hdr; 4583 uses notification-interface-hdr; 4584 leaf raw-pdu { 4585 type binary; 4586 description 4587 "Received raw PDU."; 4588 } 4589 leaf-list protocols { 4590 type uint8; 4591 description 4592 "The list of protocols supported by the 4593 remote system."; 4594 } 4595 description 4596 "This notification is sent when the system 4597 receives a non pseudonode LSP that has no matching 4598 protocol supported. 4599 The notification generation must be throttled with at least 4600 a 5 second gap. 4601 "; 4602 } 4604 notification lsp-error-detected { 4605 uses notification-instance-hdr; 4606 uses notification-interface-hdr; 4607 leaf lsp-id { 4608 type lsp-id; 4609 description 4610 "LSP ID."; 4611 } 4612 leaf raw-pdu { 4613 type binary; 4614 description 4615 "Received raw PDU."; 4616 } 4617 leaf error-offset { 4618 type uint32; 4619 description 4620 "If the problem is a malformed TLV, 4621 the error-offset points to the start of the TLV. 4622 If the problem is with the LSP header, 4623 the error-offset points to the suspicious byte"; 4624 } 4625 leaf tlv-type { 4626 type uint8; 4627 description 4628 "if the problem is a malformed TLV, the tlv-type is set 4629 to the type value of the suspicious TLV. 4630 Otherwise this leaf is not present."; 4631 } 4632 description 4633 "This notification is sent when the system 4634 receives a LSP with a parse error. 4635 The notification generation must be throttled with at least 4636 a 5 second gap. 4637 "; 4639 } 4641 notification adjacency-change { 4642 uses notification-instance-hdr; 4643 uses notification-interface-hdr; 4644 leaf neighbor { 4645 type string; 4646 description 4647 "Describes the name of the neighbor. If the 4648 name of the neighbor is not available, the 4649 field would be empty."; 4650 } 4651 leaf neighbor-system-id { 4652 type system-id; 4653 description 4654 "Describes the system-id of the neighbor."; 4655 } 4656 leaf level { 4657 type level; 4658 description 4659 "Describes the ISIS level of the adjacency."; 4660 } 4661 leaf state { 4662 type enumeration { 4663 enum "Up" { 4664 description 4665 "This state describes that 4666 adjacency is established."; 4667 } 4668 enum "Down" { 4669 description 4670 "This state describes that 4671 adjacency is no more established."; 4672 } 4673 } 4674 description 4675 "This leaf describes the new state of the 4676 ISIS adjacency."; 4677 } 4678 leaf reason { 4679 type string; 4680 description 4681 "If the adjacency is going to DOWN, 4682 this leaf provides a reason for the adjacency 4683 going down. The reason is provided as a text. 4684 If the adjacency is going to UP, no reason is 4685 provided."; 4686 } 4687 description 4688 "This notification is sent when an ISIS adjacency 4689 moves to Up state or to Down state."; 4690 } 4692 notification lsp-received { 4693 uses notification-instance-hdr; 4694 uses notification-interface-hdr; 4696 leaf lsp-id { 4697 type lsp-id; 4698 description 4699 "LSP ID."; 4700 } 4701 leaf sequence { 4702 type uint32; 4703 description 4704 "Sequence number of the received LSP."; 4705 } 4706 leaf received-timestamp { 4707 type yang:timestamp; 4709 description 4710 "This leaf describes the timestamp 4711 when the LSP was received. "; 4712 } 4713 leaf neighbor-system-id { 4714 type system-id; 4715 description 4716 "Describes the system-id of the neighbor 4717 that sent the LSP."; 4718 } 4719 description 4720 "This notification is sent when a LSP 4721 is received. 4722 The notification generation must be throttled with at least 4723 a 5 second gap. "; 4724 } 4726 notification lsp-generation { 4727 uses notification-instance-hdr; 4729 leaf lsp-id { 4730 type lsp-id; 4731 description 4732 "LSP ID."; 4733 } 4734 leaf sequence { 4735 type uint32; 4736 description 4737 "Sequence number of the received LSP."; 4738 } 4739 leaf send-timestamp { 4740 type yang:timestamp; 4742 description 4743 "This leaf describes the timestamp 4744 when our LSP was regenerated. "; 4745 } 4746 description 4747 "This notification is sent when a LSP 4748 is regenerated. 4749 The notification generation must be throttled with at least 4750 a 5 second gap. "; 4751 } 4753 } 4755 4757 8. IS-IS Segment Routing YANG Module 4759 file "ietf-isis-sr@2016-09-20.yang" 4761 module ietf-isis-sr { 4762 namespace "urn:ietf:params:xml:ns:" 4763 + "yang:ietf-isis-sr"; 4764 prefix isis-sr; 4766 import ietf-routing { 4767 prefix "rt"; 4768 } 4770 import ietf-segment-routing { 4771 prefix "sr"; 4772 } 4774 import ietf-isis { 4775 prefix "isis"; 4776 } 4778 organization 4779 "IETF ISIS Working Group"; 4781 contact 4782 "WG List: <mailto:spring@ietf.org> 4784 Editor: Stephane Litkowski 4785 <mailto:stephane.litkowski@orange.com> 4787 Acee Lindem 4788 <mailto:acee@cisco.com> 4789 Yingzhen Qu 4790 <mailto:yiqu@cisco.com> 4791 Pushpasis Sarkar 4792 <mailto:psarkar@juniper.net> 4793 Ing-Wher Chen 4794 <mailto:ing-wher.chen@ericsson.com> 4795 Jeff Tantsura 4796 <mailto:jeff.tantsura@ericsson.com> 4798 "; 4800 description 4801 "The YANG module defines a generic configuration model for 4802 Segment routing ISIS extensions common across all of the vendor 4803 implementations."; 4805 revision 2016-09-20 { 4806 description 4807 " 4808 Align to draft-ietf-netmod-routing-cfg-23. 4809 "; 4810 reference "draft-ietf-isis-yang-isis-cfg-09"; 4811 } 4813 revision 2016-03-21 { 4814 description " 4815 * Removed routing-instance in path as per 4816 core routing model v21 4817 "; 4818 reference ""; 4819 } 4820 revision 2015-09-18 { 4821 description "no modif"; 4822 reference ""; 4823 } 4824 revision 2015-07-02 { 4825 description 4826 " 4827 * Add TILFA and rLFA SR 4828 * Add container to SRGB 4829 "; 4830 reference ""; 4831 } 4833 revision 2015-05-27 { 4834 description " 4835 * Initialization 4836 "; 4837 reference ""; 4838 } 4840 /* Identities */ 4842 /* Features */ 4844 feature remote-lfa-sr { 4845 description 4846 "Enhance rLFA to use SR path."; 4847 } 4849 feature ti-lfa { 4850 description 4851 "Enhance IPFRR with ti-lfa 4852 support"; 4853 } 4855 /* Groupings */ 4857 grouping adjacency-state { 4858 description 4859 "This group will extend adjacency state."; 4860 list adjacency-sid { 4861 key value; 4862 leaf af { 4863 type identityref { 4864 base rt:address-family; 4865 } 4866 description 4867 "Address-family associated with the 4868 segment ID"; 4869 } 4870 leaf value { 4871 type uint32; 4872 description 4873 "Value of the Adj-SID."; 4874 } 4875 leaf weight { 4876 type uint8; 4877 description 4878 "Weight associated with 4879 the adjacency SID."; 4880 } 4881 leaf protection-requested { 4882 type boolean; 4883 description 4884 "Describe if the adjacency SID 4885 must be protected."; 4886 } 4887 description 4888 "List of adjacency Segment IDs."; 4889 } 4890 } 4892 grouping prefix-segment-id { 4893 description 4894 "This group defines segment routing extensions 4895 for prefixes."; 4897 list sid-list { 4898 key value; 4900 leaf flags { 4901 type bits { 4902 bit readvertisment { 4903 position 7; 4904 description 4905 "If set, then the prefix to 4906 which this Prefix-SID is attached, 4907 has been propagated by the 4908 router either from another level 4909 or from redistribution."; 4910 } 4912 bit php { 4913 position 5; 4914 description 4915 "If set, then the penultimate hop MUST NOT 4916 pop the Prefix-SID before delivering the packet 4917 to the node 4918 that advertised the Prefix-SID."; 4919 } 4920 bit explicit-null { 4921 position 4; 4922 description 4923 "If set, any upstream neighbor of 4924 the Prefix-SID originator MUST replace 4925 the Prefix-SID with a 4926 Prefix-SID having an 4927 Explicit-NULL value (0 for IPv4 and 2 for 4928 IPv6) before forwarding the packet."; 4929 } 4930 bit value { 4931 position 3; 4932 description 4933 "If set, then the Prefix-SID carries a 4934 value (instead of an index). 4935 By default the flag is UNSET."; 4937 } 4938 bit local { 4939 position 2; 4940 description 4941 "If set, then the value/index carried by 4942 the Prefix-SID has local significance. 4943 By default the flag is UNSET."; 4944 } 4945 } 4946 description 4947 "Describes flags associated with the 4948 segment ID."; 4949 } 4951 leaf algorithm { 4952 type uint8; 4953 description 4954 "Algorithm to be used for path computation."; 4955 } 4956 leaf value { 4957 type uint32; 4958 description 4959 "Value of the prefix-SID."; 4960 } 4961 description 4962 "List of segments."; 4963 } 4964 } 4966 grouping adjacency-segment-id { 4967 description 4968 "This group defines segment routing extensions 4969 for adjacencies."; 4971 list sid-list { 4972 key value; 4974 leaf flags { 4975 type bits { 4976 bit address-family { 4977 position 7; 4978 description 4979 "If unset, then the Adj-SID refers 4980 to an adjacency with outgoing IPv4 encapsulation. 4981 If set then the Adj-SID refers to an adjacency 4982 with outgoing IPv6 encapsulation."; 4983 } 4984 bit backup { 4985 position 6; 4986 description 4987 "If set, the Adj-SID refers to an 4988 adjacency being protected 4989 (e.g.: using IPFRR or MPLS-FRR)"; 4990 } 4991 bit value { 4992 position 5; 4993 description 4994 "If set, then the SID carries a 4995 value (instead of an index). 4996 By default the flag is SET."; 4998 } 4999 bit local { 5000 position 4; 5001 description 5002 "If set, then the value/index carried by 5003 the SID has local significance. 5004 By default the flag is SET."; 5005 } 5006 bit set { 5007 position 3; 5008 description 5009 "When set, the S-Flag indicates that the 5010 Adj-SID refers to a set of adjacencies"; 5011 } 5012 } 5014 description 5015 "Describes flags associated with the 5016 segment ID."; 5017 } 5018 leaf weight { 5019 type uint8; 5020 description 5021 "The value represents the weight of the Adj-SID 5022 for the purpose of load balancing."; 5023 } 5024 leaf neighbor-id { 5025 type isis:system-id; 5026 description 5027 "Describes the system ID of the neighbor 5028 associated with the SID value. This is only 5029 used on LAN adjacencies."; 5030 } 5031 leaf value { 5032 type uint32; 5033 description 5034 "Value of the Adj-SID."; 5035 } 5036 description 5037 "List of segments."; 5038 } 5040 } 5041 grouping segment-routing-binding-tlv { 5042 list segment-routing-bindings { 5044 key "fec range"; 5046 leaf fec { 5047 type string; 5048 description 5049 "IP (v4 or v6) range to be bound to SIDs."; 5050 } 5052 leaf range { 5053 type uint16; 5054 description 5055 "Describes number of elements to assign 5056 a binding to."; 5057 } 5059 leaf flags { 5060 type bits { 5061 bit address-family { 5062 position 7; 5063 description 5064 "If unset, then the Prefix FEC 5065 carries an IPv4 Prefix. 5067 If set then the Prefix FEC carries an 5068 IPv6 Prefix."; 5069 } 5070 bit mirror { 5071 position 6; 5072 description 5073 "Set if the advertised SID/path 5074 corresponds to a mirrored context. 5075 "; 5076 } 5077 bit flooding { 5078 position 5; 5079 description 5080 "If the S bit is set(1), 5081 the IS-IS Router CAPABILITY TLV 5082 MUST be flooded across the entire routing domain. 5083 If the S bit is 5084 not set(0), the TLV MUST NOT be leaked between levels. 5085 This bit MUST NOT be altered during the TLV leaking."; 5086 } 5087 bit down { 5088 position 4; 5089 description 5090 "When the IS-IS Router CAPABILITY TLV is 5091 leaked from level-2 to level-1, the D bit 5092 MUST be set. Otherwise, this bit MUST 5093 be clear. IS-IS Router capability TLVs 5094 with the D bit set MUST NOT 5095 be leaked from level-1 to level-2. 5096 This is to prevent TLV looping. 5097 "; 5098 } 5099 bit attached { 5100 position 3; 5101 description 5102 "The originator of the SID/Label Binding 5103 TLV MAY set the A bit in order to signal 5104 that the prefixes and 5105 SIDs advertised in the SID/Label Binding 5106 TLV are directly 5107 connected to their originators. 5108 "; 5109 } 5111 } 5112 description 5113 "Flags of the binding."; 5114 } 5115 leaf weight { 5116 type uint8; 5117 description 5118 "Weight of the path for loadbalancing purpose."; 5119 } 5121 container binding { 5122 container prefix-sid { 5123 uses prefix-segment-id; 5124 description 5125 "Binding prefix SID to the range."; 5126 } 5127 leaf ero-metric { 5128 type uint32; 5129 description 5130 "Cost of ERO path."; 5131 } 5132 container ero { 5133 leaf address-family { 5134 type identityref { 5135 base rt:address-family; 5136 } 5137 description 5138 "Address-family."; 5139 } 5141 leaf loose { 5142 type boolean; 5143 description 5144 "Set to true, 5145 if hop is a loose hop."; 5146 } 5147 leaf address { 5148 type string; 5149 description 5150 "IP address of a node on the 5151 path."; 5152 } 5154 description 5155 "Binding ERO path to the range."; 5156 } 5157 container backup-ero { 5158 leaf address-family { 5159 type identityref { 5160 base rt:address-family; 5161 } 5162 description 5163 "Address-family."; 5164 } 5166 leaf loose { 5167 type boolean; 5168 description 5169 "Set to true, 5170 if hop is a loose hop."; 5171 } 5172 leaf address { 5173 type string; 5174 description 5175 "IP address of a node on the 5176 path."; 5177 } 5179 description 5180 "Binding backup ERO path to the range."; 5181 } 5182 container unnumbered-interface-id-ero { 5183 leaf router-id { 5184 type string; 5185 description 5186 "Router ID of the node owning the interface."; 5187 } 5188 leaf interface-id { 5189 type uint32; 5190 description 5191 "Interface ID on which the path is built."; 5192 } 5193 description 5194 "Binding a path over unnumbered interface."; 5195 } 5196 container backup-unnumbered-interface-id-ero { 5197 leaf router-id { 5198 type string; 5199 description 5200 "Router ID of the node owning the interface."; 5201 } 5202 leaf interface-id { 5203 type uint32; 5204 description 5205 "Interface ID on which the path is built."; 5206 } 5207 description 5208 "Binding a backup path over unnumbered interface."; 5209 } 5210 description 5211 "Bindings associated with the range."; 5212 } 5214 description 5215 "This container describes list of SID/Label 5216 bindings. 5217 ISIS reference is TLV 149."; 5218 } 5219 description 5220 "Defines binding TLV for database."; 5222 } 5223 /* Cfg */ 5225 augment "/rt:routing/" + 5226 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5227 "/isis:isis" { 5228 when "rt:type = 'isis:isis'" { 5229 description 5230 "This augment ISIS routing protocol when used"; 5231 } 5232 description 5233 "This augments ISIS protocol configuration 5234 with segment routing."; 5236 uses sr:controlplane-cfg; 5237 container protocol-srgb { 5238 if-feature sr:protocol-srgb; 5239 uses sr:srgb-cfg; 5240 description 5241 "Per-protocol SRGB."; 5242 } 5244 } 5246 augment "/rt:routing/" + 5247 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5248 "/isis:isis/isis:interfaces/isis:interface" { 5249 when "rt:type = 'isis:isis'" { 5250 description 5251 "This augment ISIS routing protocol when used"; 5252 } 5253 description 5254 "This augments ISIS protocol configuration 5255 with segment routing."; 5257 uses sr:igp-interface-cfg; 5259 } 5261 augment "/rt:routing/" + 5262 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5263 "/isis:isis/isis:interfaces/isis:interface"+ 5264 "/isis:fast-reroute" { 5265 when "rt:type = 'isis:isis'" { 5266 description 5267 "This augment ISIS routing protocol when used"; 5268 } 5269 description 5270 "This augments ISIS IP FRR with TILFA."; 5272 container ti-lfa { 5273 if-feature ti-lfa; 5274 leaf enable { 5275 type boolean; 5276 description 5277 "Enables TI-LFA computation."; 5278 } 5279 description 5280 "TILFA configuration."; 5281 } 5283 } 5285 augment "/rt:routing/" + 5286 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5287 "/isis:isis/isis:interfaces/isis:interface"+ 5288 "/isis:fast-reroute/isis:lfa/isis:remote-lfa" { 5289 when "rt:type = 'isis:isis'" { 5290 description 5291 "This augment ISIS routing protocol when used"; 5292 } 5293 description 5294 "This augments ISIS remoteLFA config with 5295 use of segment-routing path."; 5297 leaf use-segment-routing-path { 5298 if-feature remote-lfa-sr; 5299 type boolean; 5300 description 5301 "force remote LFA to use segment routing 5302 path instead of LDP path."; 5303 } 5305 } 5306 /* Operational states */ 5308 augment "/rt:routing-state/" + 5309 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5310 "/isis:isis" { 5311 when "rt:type = 'isis:isis'" { 5312 description 5313 "This augment ISIS routing protocol when used"; 5314 } 5315 description 5316 "This augments ISIS protocol configuration 5317 with segment routing."; 5319 uses sr:controlplane-cfg; 5320 container protocol-srgb { 5321 if-feature sr:protocol-srgb; 5322 uses sr:srgb-cfg; 5323 description 5324 "Per-protocol SRGB."; 5325 } 5327 } 5329 augment "/rt:routing-state/" + 5330 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5331 "/isis:isis/isis:interfaces/isis:interface" { 5332 when "rt:type = 'isis:isis'" { 5333 description 5334 "This augment ISIS routing protocol when used"; 5335 } 5336 description 5337 "This augments ISIS protocol configuration 5338 with segment routing."; 5340 uses sr:igp-interface-cfg; 5341 } 5343 augment "/rt:routing-state/" + 5344 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5345 "/isis:isis/isis:interfaces/isis:interface" + 5346 "/isis:adjacencies/isis:adjacency" { 5347 when "rt:type = 'isis:isis'" { 5348 description 5349 "This augment ISIS routing protocol when used"; 5350 } 5351 description 5352 "This augments ISIS protocol configuration 5353 with segment routing."; 5355 uses adjacency-state; 5356 } 5358 augment "/rt:routing-state/" + 5359 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5360 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 5361 "/isis:extended-is-neighbor/isis:neighbor" { 5362 description 5363 "This augments ISIS protocol LSDB neighbor."; 5364 uses adjacency-segment-id; 5366 } 5367 augment "/rt:routing-state/" + 5368 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5369 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 5370 "/isis:mt-is-neighbor/isis:neighbor" { 5371 description 5372 "This augments ISIS protocol LSDB neighbor."; 5373 uses adjacency-segment-id; 5375 } 5376 augment "/rt:routing-state/" + 5377 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5378 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 5379 "/isis:extended-ipv4-reachability/isis:prefixes" { 5380 description 5381 "This augments ISIS protocol LSDB prefix."; 5382 uses prefix-segment-id; 5384 } 5385 augment "/rt:routing-state/" + 5386 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5387 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 5388 "/isis:mt-extended-ipv4-reachability/isis:prefixes" { 5389 description 5390 "This augments ISIS protocol LSDB prefix."; 5391 uses prefix-segment-id; 5393 } 5394 augment "/rt:routing-state/" + 5395 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5396 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 5397 "/isis:ipv6-reachability/isis:prefixes" { 5398 description 5399 "This augments ISIS protocol LSDB prefix."; 5400 uses prefix-segment-id; 5402 } 5403 augment "/rt:routing-state/" + 5404 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5405 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 5406 "/isis:mt-ipv6-reachability/isis:prefixes" { 5407 description 5408 "This augments ISIS protocol LSDB prefix."; 5409 uses prefix-segment-id; 5411 } 5412 augment "/rt:routing-state/" + 5413 "rt:control-plane-protocols/rt:control-plane-protocol"+ 5414 "/isis:isis/isis:database/isis:level-db/isis:lsp" { 5415 description 5416 "This augments ISIS protocol LSDB."; 5417 uses segment-routing-binding-tlv; 5419 } 5421 /* Notifications */ 5423 } 5425 5427 9. Security Considerations 5429 Configuration and state data defined in this document are designed to 5430 be accessed via the NETCONF protocol [RFC6241]. 5432 As IS-IS is an IGP protocol (critical piece of the network), ensuring 5433 stability and security of the protocol is mandatory for the network 5434 service. 5436 Authors recommends to implement NETCONF access control model 5437 ([RFC6536]) to restrict access to all or part of the configuration to 5438 specific users. Access control to RPCs is also critical as RPC 5439 permits to clear protocol datastructures that would definitively 5440 impact the network service. This kind of RPC needs only to be used 5441 in specific cases by well-known experienced users. 5443 Authors consider that all the configuration is considered as 5444 sensitive/vulnerable as well as RPCs. But security teams can decide 5445 to open some part of the configuration to less experienced users 5446 depending on the internal organization, for example: 5448 o User FullWrite: would access to the whole data model. This kind 5449 of profile may be restricted to few experienced people. 5451 o User PartialWrite: would only access to configuration part within 5452 /isis/interfaces/interface. So this kind of profile is restricted 5453 to creation/modification/deletion of interfaces. This profile 5454 does not have access to RPC. 5456 o User Read: would only access to state part /isis-state. 5458 Unauthorized access to configuration or RPC may cause high damages to 5459 the network service. 5461 The /isis-state/database may contain authentication information. As 5462 presented in the description of the /isis-state/database/level- 5463 1/lsp/authentication/authentication-key, the authentication MUST 5464 never be presented in plaintext format for security reason. Authors 5465 recommends the usage of MD5 to present the authentication-key. 5467 Some authentication-key may also be present in the /isis 5468 configuration. When configuring IS-IS using the NETCONF protocol, 5469 authors recommends the usage of secure transport of NETCONF using SSH 5470 ([RFC6242]). 5472 10. Contributors 5474 Authors would like to thank Kiran Agrahara Sreenivasa, Dean 5475 Bogdanovic, Yingzhen Qu, Yi Yang for their major contributions to the 5476 draft. 5478 11. Acknowledgements 5480 TBD. 5482 12. IANA Considerations 5484 The IANA is requested to assign two new URIs from the IETF XML 5485 registry ([RFC3688]). Authors are suggesting the following URIs : 5487 URI: urn:ietf:params:xml:ns:yang:ietf-isis 5488 Registrant Contact: IS-IS WG 5489 XML: N/A, the requested URI is an XML namespace 5491 URI: urn:ietf:params:xml:ns:yang:ietf-isis-sr 5492 Registrant Contact: IS-IS WG 5493 XML: N/A, the requested URI is an XML namespace 5495 This document also requests two new YANG modules name in the YANG 5496 Module Names registry ([RFC6020]) with the following suggestion : 5498 name: ietf-isis 5499 namespace: urn:ietf:params:xml:ns:yang:ietf-isis 5500 prefix: isis 5501 reference: RFC XXXX 5503 name: ietf-isis-sr 5504 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-sr 5505 prefix: isis-sr 5506 reference: RFC XXXX 5508 13. Normative References 5510 [I-D.ietf-netmod-routing-cfg] 5511 Lhotka, L. and A. Lindem, "A YANG Data Model for Routing 5512 Management", draft-ietf-netmod-routing-cfg-23 (work in 5513 progress), August 2016. 5515 [I-D.ietf-rtgwg-yang-key-chain] 5516 Lindem, A., Qu, Y., Yeung, D., Chen, I., Zhang, Z., and Y. 5517 Yang, "Routing Key Chain YANG Data Model", draft-ietf- 5518 rtgwg-yang-key-chain-09 (work in progress), September 5519 2016. 5521 [I-D.ietf-spring-sr-yang] 5522 Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG 5523 Data Model for Segment Routing", draft-ietf-spring-sr- 5524 yang-03 (work in progress), July 2016. 5526 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5527 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ 5528 RFC2119, March 1997, 5529 . 5531 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 5532 DOI 10.17487/RFC3688, January 2004, 5533 . 5535 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 5536 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 5537 . 5539 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 5540 the Network Configuration Protocol (NETCONF)", RFC 6020, 5541 DOI 10.17487/RFC6020, October 2010, 5542 . 5544 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 5545 and A. Bierman, Ed., "Network Configuration Protocol 5546 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 5547 . 5549 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 5550 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 5551 . 5553 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 5554 Protocol (NETCONF) Access Control Model", RFC 6536, DOI 5555 10.17487/RFC6536, March 2012, 5556 . 5558 Appendix A. Example: NETCONF Reply 5560 This section gives an example of a reply to the NETCONF request 5561 for a device that implements the data model defined in this document. 5562 The example is written in XML. 5564 5565 5566 5567 5568 SLI 5569 1.1.1.1 5570 5571 5572 5573 ipv4-unicast 5574 default 5575 5576 5577 5578 5579 Loopback0 5580 5581 5582 Eth1 5583 5584 5585 5586 5587 ISIS 5588 5589 isis:isis 5590 5591 5592 default 5593 5594 5595 5596 5597 5598 5599 SLI 5600 level-2 5601 87FC.FCDF.4432 5602 49.0001 5603 5604 1.1.1.1 5605 5606 65535 5607 65000 5608 5609 ThisIsThePassword 5610 plain-text 5611 level-2 5612 5613 5614 wide 5615 5616 5617 111111 5618 5619 5620 ipv4-unicast 5621 true 5622 5623 5624 5625 Loopback0 5626 200 5627 5628 0 5629 5630 true 5631 5632 5633 Eth1 5634 level-2 5635 point-to-point 5636 5637 167890 5638 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 default 5650 ipv4-unicast 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 Loopback0 5671 5672 5673 5674 5675 5676
5677 1.1.1.1 5678 32 5679
5680
5682
5683 5684 Eth1 5685 5686 5687 5688 5689 5690
5691 10.0.0.1 5692 30 5693
5694
5696
5697
5698
5700 Authors' Addresses 5702 Stephane Litkowski 5703 Orange 5705 Email: stephane.litkowski@orange.com 5707 Derek Yeung 5708 Cisco Systems 5710 Email: myeung@cisco.com 5712 Acee Lindem 5713 Cisco Systems 5715 Email: acee@cisco.com 5717 Jeffrey Zhang 5718 Juniper Networks 5720 Email: zzhang@juniper.net 5722 Ladislav Lhotka 5723 CZ.NIC 5725 Email: lhotka@nic.cz