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