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