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