idnits 2.17.00 (12 Aug 2021) /tmp/idnits15696/draft-ietf-lsr-isis-yang-augmentation-v1-02.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 12 instances of too long lines in the document, the longest one being 5 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (22 December 2021) is 150 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC5329' is defined on line 1297, but no explicit reference was found in the text == Outdated reference: A later version (-20) exists of draft-ietf-lsr-flex-algo-18 ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 3 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet A. Lindem 3 Internet-Draft S. Litkowski 4 Intended status: Standards Track Cisco Systems 5 Expires: 25 June 2022 Y. Qu 6 Futurewei 7 22 December 2021 9 IS-IS YANG Model Augmentations for Additional Features - Version 1 10 draft-ietf-lsr-isis-yang-augmentation-v1-02 12 Abstract 14 This document defines YANG data modules augmenting the IETF IS-IS 15 YANG model to provide support for IS-IS Minimum Remaining Lifetime as 16 defined in RFC 7987, and IS-IS Application-Specific Link Attributes 17 as defined in RFC 8919. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on 25 June 2022. 36 Copyright Notice 38 Copyright (c) 2021 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 43 license-info) in effect on the date of publication of this document. 44 Please review these documents carefully, as they describe your rights 45 and restrictions with respect to this document. Code Components 46 extracted from this document must include Revised BSD License text as 47 described in Section 4.e of the Trust Legal Provisions and are 48 provided without warranty as described in the Revised BSD License. 50 Table of Contents 52 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 53 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 54 1.2. Tree diagram . . . . . . . . . . . . . . . . . . . . . . 3 55 2. YANG Module for IS-IS Minimum Remaining Lifetime . . . . . . 3 56 3. YANG Module for IS-IS Application-Specific Link Attributes . 5 57 4. YANG Module for IS-IS Flexible Algorithm . . . . . . . . . . 14 58 5. Security Considerations . . . . . . . . . . . . . . . . . . . 25 59 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 60 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27 61 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 62 8.1. Normative References . . . . . . . . . . . . . . . . . . 27 63 8.2. Informative References . . . . . . . . . . . . . . . . . 29 64 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29 66 1. Overview 68 YANG [RFC7950] is a data definition language used to define the 69 contents of a conceptual data store that allows networked devices to 70 be managed using NETCONF [RFC6241]. YANG is proving relevant beyond 71 its initial confines, as bindings to other interfaces (e.g., ReST) 72 and encodings other than XML (e.g., JSON) are being defined. 73 Furthermore, YANG data models can be used as the basis for 74 implementation of other interfaces, such as CLI and programmatic 75 APIs. 77 This document defines YANG data modules augmenting the IETF IS-IS 78 YANG model [I-D.ietf-isis-yang-isis-cfg], which itself augments 79 [RFC8349], to provide support for configuration and operational state 80 for the following IS-IS features: 82 RFC7987: IS-IS Minimum Remaining Lifetime[RFC7987]. 84 RFC8919: IS-IS Application-Specific Link Attributes[RFC8919]. 86 RFCxxxx: IGP Flexible Algorithm [I-D.ietf-lsr-flex-algo]. 88 The augmentations defined in this document requires support for the 89 IS-IS base model[I-D.ietf-isis-yang-isis-cfg] which defines basic IS- 90 IS configuration and state. The IS-IS YANG model augments the ietf- 91 routing YANG model defined in [RFC8349]. 93 1.1. Requirements Language 95 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 96 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 97 "OPTIONAL" in this document are to be interpreted as described in BCP 98 14 [RFC2119] [RFC8174] when, and only when, they appear in all 99 capitals, as shown here. 101 1.2. Tree diagram 103 Tree diagrams used in this document follow the notation defined in 104 [RFC8340]. 106 2. YANG Module for IS-IS Minimum Remaining Lifetime 108 This document defines a YANG module for IS-IS Minimum Remaining 109 Lifetime as defined in [RFC7987]. It is an augmentation of the IS-IS 110 base model. 112 module: ietf-isis-remaining-lifetime 114 notifications: 115 +---n corrupt-remaining-lifetime 116 +--ro routing-protocol-name? -> /rt:routing 117 /control-plane-protocols 118 /control-plane-protocol/name 119 +--ro isis-level? level 120 +--ro lsp-id? isis:lsp-id 122 file "ietf-isis-remaining-lifetime@2021-12-22.yang" 123 module ietf-isis-remaining-lifetime { 124 yang-version 1.1; 125 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-remaining-lifetime"; 127 prefix isis-remaining-lifetime; 129 import ietf-isis { 130 prefix "isis"; 131 } 133 organization 134 "IETF LSR - Link State Routing Working Group"; 136 contact 137 "WG Web: 138 WG List: 139 Author: Yingzhen Qu 140 141 Author: Acee Lindem 142 143 Author: Stephane Litkowski 144 "; 146 description 147 "This YANG module defines the configuration and operational 148 state for IS-IS Minimum Remaining Lifetime feature as defined 149 in RFC 7987. 151 Copyright (c) 2021 IETF Trust and the persons identified as 152 authors of the code. All rights reserved. 154 Redistribution and use in source and binary forms, with or 155 without modification, is permitted pursuant to, and subject to 156 the license terms contained in, the Revised BSD License set 157 forth in Section 4.c of the IETF Trust's Legal Provisions 158 Relating to IETF Documents 159 (http://trustee.ietf.org/license-info). 161 This version of this YANG module is part of RFC XXXX; 162 see the RFC itself for full legal notices."; 164 reference "RFC XXXX"; 166 revision 2021-12-22 { 167 description 168 "Initial version"; 169 reference 170 "RFC XXXX: A YANG Data Model for IS-IS Minimum Remaining Lifetime."; 171 } 173 notification corrupt-remaining-lifetime { 174 uses isis:notification-instance-hdr; 175 leaf lsp-id { 176 type isis:lsp-id; 177 description "LSP ID"; 178 } 179 description 180 "This notification is sent when the system 181 detects corrupted lifetime of an LSP."; 182 reference "RFC 7987: IS-IS Minimum Remaining Lifetime"; 183 } 184 } 185 187 3. YANG Module for IS-IS Application-Specific Link Attributes 189 This document defines a YANG module for IS-IS Application-Specific 190 Link Attributes [RFC8919]. It is an augmentation of the IS-IS base 191 model. 193 module: ietf-isis-link-attr 194 augment /rt:routing/rt:control-plane-protocols 195 /rt:control-plane-protocol/isis:isis/isis:interfaces 196 /isis:interface: 197 +--rw isis-link-attr 198 +--rw (link-attr-op-mode) 199 +--:(legacy) 200 | +--rw legacy? empty 201 +--:(transition) 202 | +--rw transition? empty 203 +--:(app-specific) 204 +--rw app-specific? empty 205 augment /rt:routing/rt:control-plane-protocols 206 /rt:control-plane-protocol/isis:isis/isis:database 207 /isis:levels/isis:lsp/isis:extended-is-neighbor 208 /isis:neighbor/isis:instances/isis:instance: 209 +--ro application-specific-link-attributes-sub-tlvs 210 +--ro asla-sub-tlvs* [] 211 +--ro l-flag? boolean 212 +--ro sabm-length? uint8 213 +--ro r-flag? boolean 214 +--ro udabm-length? uint8 215 +--ro sabm 216 | +--ro sabm-bits* identityref 217 +--ro udabm 218 +--ro unknown-tlvs 219 +--ro unknown-tlv* [] 220 +--ro type? uint16 221 +--ro length? uint16 222 +--ro value? yang:hex-string 223 augment /rt:routing/rt:control-plane-protocols 224 /rt:control-plane-protocol/isis:isis/isis:database 225 /isis:levels/isis:lsp/isis:mt-is-neighbor/isis:neighbor 226 /isis:instances/isis:instance: 227 +--ro application-specific-link-attributes-sub-tlvs 228 +--ro asla-sub-tlvs* [] 229 +--ro l-flag? boolean 230 +--ro sabm-length? uint8 231 +--ro r-flag? boolean 232 +--ro udabm-length? uint8 233 +--ro sabm 234 | +--ro sabm-bits* identityref 235 +--ro udabm 236 +--ro unknown-tlvs 237 +--ro unknown-tlv* [] 238 +--ro type? uint16 239 +--ro length? uint16 240 +--ro value? yang:hex-string 241 augment /rt:routing/rt:control-plane-protocols 242 /rt:control-plane-protocol/isis:isis/isis:database 243 /isis:levels/isis:lsp: 244 +--ro application-specific-srlg-tlv 245 +--ro as-srlg-tlvs* [] 246 +--ro neighbor-system-id? isis:system-id 247 +--ro pseudo-node-id? uint8 248 +--ro l-flag? boolean 249 +--ro sabm-length? uint8 250 +--ro r-flag? boolean 251 +--ro udabm-length? uint8 252 +--ro sabm 253 | +--ro sabm-bits* identityref 254 +--ro udabm 255 +--ro length-of-sub-tlvs? uint8 256 +--ro link-id-sub-tlvs 257 | +--ro link-local-remote-ids 258 | | +--ro link-local-id? union 259 | | +--ro link-remote-id? union 260 | +--ro ipv4-interface-addr 261 | | +--ro ipv4-int-addr? inet:ipv4-address 262 | +--ro ipv4-neighbor-addr 263 | | +--ro ipv4-neighbor-addr? inet:ipv4-address 264 | +--ro ipv6-interface-addr 265 | | +--ro ipv6-int-addr? inet:ipv6-address 266 | +--ro ipv6-neighbor-addr 267 | +--ro ipv6-neighbor-addr? inet:ipv6-address 268 +--ro srlgs 269 +--ro srlg* uint32 271 file "ietf-isis-link-attr@2021-12-22.yang" 272 module ietf-isis-link-attr { 273 yang-version 1.1; 274 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-link-attr"; 276 prefix isis-link-attr; 278 import ietf-inet-types { 279 prefix inet; 280 reference "RFC 6991 - Common YANG Data Types"; 281 } 282 import ietf-routing { 283 prefix "rt"; 284 } 286 import ietf-isis { 287 prefix "isis"; 288 } 290 organization 291 "IETF LSR - Link State Routing Working Group"; 293 contact 294 "WG Web: 295 WG List: 297 Author: Yingzhen Qu 298 299 Author: Acee Lindem 300 301 Author: Stephane Litkowski 302 "; 304 description 305 "This YANG module defines the configuration and operational 306 state for IS-IS application specific link attributes feature as 307 defined in RFC 8919. 309 This YANG model conforms to the Network Management 310 Datastore Architecture (NMDA) as described in RFC 8342. 312 Copyright (c) 2021 IETF Trust and the persons identified as 313 authors of the code. All rights reserved. 315 Redistribution and use in source and binary forms, with or 316 without modification, is permitted pursuant to, and subject to 317 the license terms contained in, the Revised BSD License set 318 forth in Section 4.c of the IETF Trust's Legal Provisions 319 Relating to IETF Documents 320 (http://trustee.ietf.org/license-info). 322 This version of this YANG module is part of RFC XXXX; 323 see the RFC itself for full legal notices. 325 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 326 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 327 'MAY', and 'OPTIONAL' in this document are to be interpreted as 328 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 329 they appear in all capitals, as shown here."; 331 reference "RFC XXXX"; 333 revision 2021-12-22 { 334 description 335 "Initial version"; 336 reference 337 "RFC XXXX: A YANG Data Model for IS-IS Application-Specific Link 338 Attributes."; 339 } 341 identity sabm-bit { 342 description 343 "Base identity for sabm bits."; 344 reference "RFC 8919: IS-IS Application-Specific Link Attributes"; 345 } 347 identity rsvp-te-bit { 348 base sabm-bit; 349 description 350 "R bit, RSVP-TE."; 351 } 353 identity sr-policy-bit { 354 base sabm-bit; 355 description 356 "S bit, Segment Routing Policy."; 357 } 359 identity lfa-bit { 360 base sabm-bit; 361 description 362 "F bit, Loop Free Alternate (LFA). Includes all LFA types."; 363 } 365 grouping application-identifier-bit-mask { 366 description 367 "Identification of the set of applications associated with link 368 attribute advertisements"; 370 leaf l-flag { 371 type boolean; 372 description 373 "Legacy Flag. When set, all of the applications 374 specified in the bit mask MUST use the legacy 375 advertisements."; 376 } 377 leaf sabm-length { 378 type uint8; 379 description 380 "Standard Application Identifier Bit Mask Length in 381 octets."; 382 } 383 leaf r-flag { 384 type boolean; 385 default false; 386 description 387 "Reserved."; 388 } 389 leaf udabm-length { 390 type uint8; 391 description 392 "User Defined Application Identifier Bit Mask Length 393 in octets."; 394 } 395 container sabm { 396 leaf-list sabm-bits { 397 type identityref { 398 base sabm-bit; 399 } 400 description 401 "SABM bits list. This list will contain 402 identities for the bits which are set in the 403 SABA bits."; 404 } 405 description 406 "Standard Application Identifier Bit Mask."; 407 } 408 container udabm { 409 description 410 "User Defined Application Identifier Bit Mask. 411 This container is to be augmented by user defined 412 applications."; 413 } 414 } 416 grouping application-specific-link-attributes-sub-tlv { 417 description 418 "Grouping for specification of the applications and 419 application-specific attribute values."; 421 container application-specific-link-attributes-sub-tlvs { 422 list asla-sub-tlvs { 423 uses application-identifier-bit-mask; 424 uses isis:unknown-tlvs; 425 description 426 "List of application specific link attributes sub-tlvs."; 428 } 429 description 430 "Application specific link attributes sub-tlv."; 431 } 432 } 434 grouping application-specific-srlg-tlv { 435 description 436 "Grouping of a TLV to advertise application-specific 437 SRLGs for a given link."; 438 container application-specific-srlg-tlv { 439 list as-srlg-tlvs { 440 leaf neighbor-system-id { 441 type isis:system-id; 442 description 443 "Neighbor System-ID."; 444 } 445 leaf pseudo-node-id { 446 type uint8; 447 description 448 "Pseudo-node ID."; 449 } 450 uses application-identifier-bit-mask; 451 leaf length-of-sub-tlvs { 452 type uint8; 453 description 454 "Length of sub-tlvs."; 455 } 457 container link-id-sub-tlvs { 458 description 459 "Link Identifier sub-TLVs."; 460 container link-local-remote-ids { 461 description 462 "Link local/remote identifier sub-tlv."; 463 leaf link-local-id { 464 type union { 465 type inet:ipv4-address; 466 type uint32; 467 } 468 description 469 "Local identifier of the link. 470 It could be an IPv4 address or a local identifier."; 471 } 472 leaf link-remote-id { 473 type union { 474 type inet:ipv4-address; 475 type uint32; 477 } 478 description 479 "Remote identifier of the link. 480 It could be an IPv4 address or a remotely learned 481 identifier."; 482 } 483 } 484 container ipv4-interface-addr { 485 leaf ipv4-int-addr { 486 type inet:ipv4-address; 487 description 488 "IPv4 address for the interface."; 489 } 490 description 491 "IPv4 interface address sub-tlv."; 492 } 493 container ipv4-neighbor-addr { 494 leaf ipv4-neighbor-addr { 495 type inet:ipv4-address; 496 description 497 "IPv4 address for a neighboring router 498 on this link."; 499 } 500 description 501 "IPv4 neighbor address sub-tlv."; 502 } 503 container ipv6-interface-addr { 504 leaf ipv6-int-addr { 505 type inet:ipv6-address; 506 description 507 "IPv6 address for the interface."; 508 } 509 description 510 "IPv6 interface address sub-tlv."; 511 } 512 container ipv6-neighbor-addr { 513 leaf ipv6-neighbor-addr { 514 type inet:ipv6-address; 515 description 516 "IPv6 address for a neighboring router 517 on this link."; 518 } 519 description 520 "IPv6 neighbor address sub-tlv."; 521 } 522 } 524 container srlgs { 525 description "List of SRLGs."; 526 leaf-list srlg { 527 type uint32; 528 description 529 "SRLG value of the link."; 530 } 531 } 533 description 534 "List of application specific SRLG tlvs."; 535 } 536 description 537 "Application specific SRLG tlv."; 538 } 539 } 541 augment "/rt:routing/" + 542 "rt:control-plane-protocols/rt:control-plane-protocol"+ 543 "/isis:isis/isis:interfaces/isis:interface" { 544 when "/rt:routing/rt:control-plane-protocols/"+ 545 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 546 description 547 "This augment ISIS routing protocol when used."; 548 } 549 description 550 "This augments ISIS protocol configuration 551 with TE attributes per application."; 553 container isis-link-attr { 554 choice link-attr-op-mode { 555 mandatory "true"; 556 leaf legacy { 557 type empty; 558 description 559 "Only send legacy advertisements."; 560 } 561 leaf transition { 562 type empty; 563 description 564 "Send both application-specific and legacy advertisements."; 565 } 566 leaf app-specific{ 567 type empty; 568 description 569 "Only send application-specific advertisements."; 570 } 571 description 572 "Link attributes mode"; 574 } 575 description 576 "Link attributes operation mode."; 577 } 578 } 580 /* TLV 22 */ 581 augment "/rt:routing/" + 582 "rt:control-plane-protocols/rt:control-plane-protocol"+ 583 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 584 "/isis:extended-is-neighbor/isis:neighbor"+ 585 "/isis:instances/isis:instance" { 586 when "/rt:routing/rt:control-plane-protocols/"+ 587 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 588 description 589 "This augment ISIS routing protocol when used"; 590 } 591 description 592 "This augments ISIS protocol LSDB TLV22."; 594 uses application-specific-link-attributes-sub-tlv; 595 } 597 /* TLV 223 */ 598 augment "/rt:routing/" + 599 "rt:control-plane-protocols/rt:control-plane-protocol"+ 600 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 601 "/isis:mt-is-neighbor/isis:neighbor"+ 602 "/isis:instances/isis:instance" { 603 when "/rt:routing/rt:control-plane-protocols/"+ 604 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 605 description 606 "This augment ISIS routing protocol when used"; 607 } 608 description 609 "This augments ISIS protocol LSDB TLV22."; 611 uses application-specific-link-attributes-sub-tlv; 612 } 614 /* application-specific SRLG TLV 238 */ 615 augment "/rt:routing/" + 616 "rt:control-plane-protocols/rt:control-plane-protocol"+ 617 "/isis:isis/isis:database/isis:levels/isis:lsp" { 618 when "/rt:routing/rt:control-plane-protocols/"+ 619 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 620 description 621 "This augment ISIS routing protocol when used"; 623 } 624 description 625 "This augments ISIS protocol LSDB router capability."; 627 uses application-specific-srlg-tlv; 628 } 630 } 631 633 4. YANG Module for IS-IS Flexible Algorithm 635 This document defines a YANG module for IS-IS Flexible Algorithm 636 [I-D.ietf-lsr-flex-algo]. It is an augmentation of the IS-IS base 637 model. 639 module: ietf-isis-flex-algo 640 augment /rt:routing/rt:control-plane-protocols 641 /rt:control-plane-protocol/isis:isis: 642 +--rw isis-flex-algo 643 +--rw flex-algo* [algo-number] 644 +--rw algo-number uint8 645 +--rw advertise-definition? boolean 646 +--rw admin-groups {te-types:extended-admin-groups, 647 te-types:named-extended-admin-groups}? 648 | +--rw exclude-admin-groups* -> /te:te/globals 649 /named-admin-groups 650 /named-admin-group/name 651 | +--rw include-any-admin-groups* -> /te:te/globals 652 /named-admin-groups 653 /named-admin-group/name 654 | +--rw include-all-admin-groups* -> /te:te/globals 655 /named-admin-groups 656 /named-admin-group/name 657 +--rw exclude-srlgs* -> /te:te/globals 658 /named-srlgs/named-srlg/name 659 {te-types:named-srlg-groups}? 660 +--rw fast-reroute? boolean 661 +--rw metric-type? identityref 662 +--rw microloop-avoidance? boolean 663 +--rw prefix-metric! 664 +--rw priority? uint8 665 augment /rt:routing/rt:control-plane-protocols 666 /rt:control-plane-protocol/isis:isis/isis:database 667 /isis:levels/isis:lsp/isis:router-capabilities: 668 +--ro fad-tlvs 669 +--ro fad-tlv* [] 670 +--ro flex-algo? uint8 671 +--ro metric-type? identityref 672 +--ro calc-type? uint8 673 +--ro priority? uint8 674 +--ro fa-ex-ag-sub-tlv 675 | +--ro extended-admin-groups* uint64 676 +--ro fa-in-any-ag-sub-tlv 677 | +--ro extended-admin-groups* uint64 678 +--ro fa-in-all-ag-sub-tlv 679 | +--ro extended-admin-groups* uint64 680 +--ro fad-flags-sub-tlv 681 | +--ro fad-flags* identityref 682 +--ro fa-ex-srlg-sub-tlv 683 | +--ro srlgs* uint32 684 +--ro unknown-tlvs 685 +--ro unknown-tlv* [] 686 +--ro type? uint16 687 +--ro length? uint16 688 +--ro value? yang:hex-string 689 augment /rt:routing/rt:control-plane-protocols 690 /rt:control-plane-protocol/isis:isis/isis:database 691 /isis:levels/isis:lsp/isis:extended-ipv4-reachability 692 /isis:prefixes: 693 +--ro fapm-sub-tlvs 694 +--ro fapm-sub-tlv* [] 695 +--ro flex-algo? uint8 696 +--ro metric? uint32 697 augment /rt:routing/rt:control-plane-protocols 698 /rt:control-plane-protocol/isis:isis/isis:database 699 /isis:levels/isis:lsp/isis:mt-extended-ipv4-reachability 700 /isis:prefixes: 701 +--ro fapm-sub-tlvs 702 +--ro fapm-sub-tlv* [] 703 +--ro flex-algo? uint8 704 +--ro metric? uint32 705 augment /rt:routing/rt:control-plane-protocols 706 /rt:control-plane-protocol/isis:isis/isis:database 707 /isis:levels/isis:lsp/isis:ipv6-reachability/isis:prefixes: 708 +--ro fapm-sub-tlvs 709 +--ro fapm-sub-tlv* [] 710 +--ro flex-algo? uint8 711 +--ro metric? uint32 712 augment /rt:routing/rt:control-plane-protocols 713 /rt:control-plane-protocol/isis:isis/isis:database 714 /isis:levels/isis:lsp/isis:mt-ipv6-reachability 715 /isis:prefixes: 716 +--ro fapm-sub-tlvs 717 +--ro fapm-sub-tlv* [] 718 +--ro flex-algo? uint8 719 +--ro metric? uint32 721 file "ietf-isis-flex-algo@2021-12-22.yang" 722 module ietf-isis-flex-algo { 723 yang-version 1.1; 724 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-flex-algo"; 725 prefix isis-flex-algo; 727 import ietf-routing { 728 prefix rt; 729 reference "RFC 8349: A YANG Data Model for Routing 730 Management (NMDA Version)"; 731 } 733 import ietf-te-types { 734 prefix te-types; 735 reference 736 "RFC8776: Common YANG Data Types for Traffic Engineering."; 737 } 739 import ietf-isis { 740 prefix "isis"; 741 } 743 import ietf-te { 744 prefix "te"; 745 } 747 organization 748 "IETF LSR - Link State Routing Working Group"; 749 contact 750 "WG Web: 751 WG List: 753 Author: Yingzhen Qu 754 755 Author: Acee Lindem 756 757 Author: Stephane Litkowski 758 759 "; 761 description 762 "The YANG module defines the configuration and operational 763 state for ISIS Flexible Algorithm as defined in RFC xxxx. 765 This YANG model conforms to the Network Management 766 Datastore Architecture (NMDA) as described in RFC 8342. 768 Copyright (c) 2021 IETF Trust and the persons identified as 769 authors of the code. All rights reserved. 771 Redistribution and use in source and binary forms, with or 772 without modification, is permitted pursuant to, and subject to 773 the license terms contained in, the Revised BSD License set 774 forth in Section 4.c of the IETF Trust's Legal Provisions 775 Relating to IETF Documents 776 (https://trustee.ietf.org/license-info). 778 This version of this YANG module is part of RFC XXXX; 779 see the RFC itself for full legal notices. 781 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 782 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 783 'MAY', and 'OPTIONAL' in this document are to be interpreted as 784 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 785 they appear in all capitals, as shown here."; 787 reference "RFC XXXX: YANG Data Model for ISIS Flexible Algorithm."; 789 revision 2021-12-22 { 790 description 791 "Initial Version"; 792 reference "RFC XXXX: YANG Data Model for ISIS Flexible Algorithm."; 793 } 795 /* Identities */ 797 identity metric-type { 798 description 799 "Base identity for route metric types."; 800 } 802 identity igp-metric { 803 base metric-type; 804 description 805 "Identity for the IGP metric type."; 806 } 808 identity min-uni-delay { 809 base metric-type; 810 description 811 "Min unidirectional link delay metric type."; 813 reference 814 "RFC 8570 - IS-IS Traffic Engineering (TE) Metric Extensions"; 815 } 817 identity te-metric { 818 base metric-type; 819 description 820 "Traffic engineering metric type."; 821 reference 822 "RFC 5305 - IS-IS Extensions for Traffic Engineering (TE)"; 823 } 825 identity fad-flags { 826 description 827 "Base identity for ISIS FAD flags."; 828 } 830 identity m-bit { 831 base fad-flags; 832 description 833 "M bit, when set, the fex-algo specific prefix and ASBR 834 metric MUST be used for inter-area and external prefix 835 calculation."; 836 } 838 /* Groupings */ 839 grouping fa-ex-ag-sub-tlv { 840 container fa-ex-ag-sub-tlv { 841 leaf-list extended-admin-groups { 842 type uint64; 843 description 844 "Extended administrative group as defined in RFC 7308."; 845 } 846 description 847 "The flex-algo exclude admin group sub-tlv."; 848 } 849 description 850 "The flex-algo exclude admin group sub-tlv."; 851 } 853 grouping fa-in-any-ag-sub-tlv { 854 container fa-in-any-ag-sub-tlv { 855 leaf-list extended-admin-groups { 856 type uint64; 857 description 858 "Extended administrative group as defined in RFC 7308."; 859 } 860 description 861 "The flex-algo include-any admin group sub-tlv."; 862 } 863 description 864 "The flex-algo include-any admin group sub-tlv."; 865 } 867 grouping fa-in-all-ag-sub-tlv { 868 container fa-in-all-ag-sub-tlv { 869 leaf-list extended-admin-groups { 870 type uint64; 871 description 872 "Extended administrative group as defined in RFC 7308."; 873 } 874 description 875 "The flex-algo include-all admin group sub-tlv."; 876 } 877 description 878 "The flex-algo include-all admin group sub-tlv."; 879 } 881 grouping fad-flags-sub-tlv { 882 container fad-flags-sub-tlv { 883 leaf-list fad-flags { 884 type identityref { 885 base fad-flags; 886 } 887 description 888 "Flex-algo definition flags list."; 889 } 890 description 891 "ISIS flex-algo definition flags."; 892 } 893 description 894 "The flex-algo definition flags sub-tlv."; 895 } 897 grouping fa-ex-srlg-sub-tlv { 898 container fa-ex-srlg-sub-tlv { 899 leaf-list srlgs { 900 type uint32; 901 description 902 "SRLG value as defined in RFC 4203."; 903 } 904 description 905 "The flex-algo exclude SRLG sub-tlv."; 906 } 907 description 908 "The flex-algo exclude SRLG sub-tlv."; 910 } 912 grouping fad-tlvs { 913 container fad-tlvs { 914 list fad-tlv { 915 leaf flex-algo { 916 type uint8; 917 description 918 "Flex-algo number, value between 128 and 255 inclusive."; 919 } 920 leaf metric-type { 921 type identityref { 922 base metric-type; 923 } 924 description 925 "Type of metric to be used during the calculation."; 926 } 927 leaf calc-type { 928 type uint8 { 929 range "0..127"; 930 } 931 description 932 "IGP algorithm types, value from 0 to 127 as 933 defined under 'Interior Gateway Protocol (IGP) 934 Parameter' by IANA."; 935 } 936 leaf priority { 937 type uint8; 938 description 939 "Priority of the advertisement."; 940 } 942 uses fa-ex-ag-sub-tlv; 943 uses fa-in-any-ag-sub-tlv; 944 uses fa-in-all-ag-sub-tlv; 945 uses fad-flags-sub-tlv; 946 uses fa-ex-srlg-sub-tlv; 947 uses isis:unknown-tlvs; 949 description 950 "List of flex-algo definition TLVs."; 951 } 952 description 953 "ISIS Flexible Algorithm Definition TLV."; 954 } 955 description 956 "ISIS Flexible Algorithm Definition (FAD) TLV."; 957 } 958 grouping fapm-sub-tlvs { 959 container fapm-sub-tlvs { 960 list fapm-sub-tlv { 961 leaf flex-algo { 962 type uint8; 963 description 964 "Flex-algo number, value between 128 and 255 965 inclusive."; 966 } 967 leaf metric { 968 type uint32; 969 description 970 "Prefix metric."; 971 } 972 description 973 "List of flex-algo prefix sub-tlvs."; 974 } 975 description 976 "Flex-algo prefix metric sub-tlvs."; 977 } 978 description 979 "Flexible Algorithm Prefix Metric (FAPM) sub TLVs."; 980 } 982 /* Configurations */ 984 augment "/rt:routing/" + 985 "rt:control-plane-protocols/rt:control-plane-protocol"+ 986 "/isis:isis" { 987 when "/rt:routing/rt:control-plane-protocols/"+ 988 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 989 description 990 "This augment ISIS routing protocol when used"; 991 } 992 description 993 "This augments ISIS protocol configuration 994 with flexible algorithm."; 996 container isis-flex-algo { 997 list flex-algo { 998 key "algo-number"; 1000 leaf algo-number { 1001 type uint8 { 1002 range "128..255"; 1003 } 1004 description 1005 "An identifier in the range 128-255 that's associated 1006 with the Flexible Algorithm Definition."; 1007 } 1009 leaf advertise-definition { 1010 type boolean; 1011 default true; 1012 description 1013 "Enable to advertise the flex-algo definition."; 1014 } 1016 container admin-groups { 1017 if-feature "te-types:extended-admin-groups"; 1018 if-feature "te-types:named-extended-admin-groups"; 1019 leaf-list exclude-admin-groups { 1020 type leafref { 1021 path "/te:te/te:globals/te:named-admin-groups/" 1022 + "te:named-admin-group/te:name"; 1023 } 1024 description 1025 "Exclude rule used during the flex-algo 1026 path computation."; 1027 } 1028 leaf-list include-any-admin-groups { 1029 type leafref { 1030 path "/te:te/te:globals/te:named-admin-groups/" 1031 + "te:named-admin-group/te:name"; 1032 } 1033 description 1034 "Include-any rule used during the flex-algo 1035 path computation."; 1036 } 1037 leaf-list include-all-admin-groups { 1038 type leafref { 1039 path "/te:te/te:globals/te:named-admin-groups/" 1040 + "te:named-admin-group/te:name"; 1041 } 1042 description 1043 "Include-all rule used during the flex-algo 1044 path computation."; 1045 } 1046 description 1047 "Specify links for the flex-algo path computation."; 1048 } 1050 leaf-list exclude-srlgs { 1051 if-feature "te-types:named-srlg-groups"; 1052 type leafref { 1053 path "/te:te/te:globals/te:named-srlgs/te:named-srlg/" 1054 + "te:name"; 1055 } 1056 description 1057 "Shared Risk Link Groups (SRLGs) to be excluded during 1058 the flex-algo path computation."; 1059 } 1061 leaf fast-reroute { 1062 type boolean; 1063 default true; 1064 description 1065 "Enable fast reroute."; 1066 } 1068 leaf metric-type { 1069 type identityref { 1070 base metric-type; 1071 } 1072 description 1073 "Type of metric to be used during the calculation."; 1074 } 1076 leaf microloop-avoidance { 1077 type boolean; 1078 default true; 1079 description 1080 "Enable microloop avoidance."; 1081 } 1083 container prefix-metric { 1084 presence 1085 "Use flex-algo specific prefix metric."; 1086 description 1087 "Use flex-algo prefix metric."; 1088 } 1090 leaf priority { 1091 type uint8; 1092 description 1093 "Priority of the advertisement."; 1094 } 1096 description 1097 "List of flex-algo configurations."; 1098 } 1099 description 1100 "Flexible Algorithm configuration."; 1101 } 1102 } 1104 /* Database */ 1106 augment "/rt:routing/" + 1107 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1108 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1109 "/isis:router-capabilities" { 1110 when "/rt:routing/rt:control-plane-protocols/"+ 1111 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1112 description 1113 "This augment ISIS routing protocol when used"; 1114 } 1115 description 1116 "This augments ISIS protocol LSDB router capability."; 1118 uses fad-tlvs; 1119 } 1121 augment "/rt:routing/" + 1122 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1123 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1124 "/isis:extended-ipv4-reachability/isis:prefixes" { 1125 when "/rt:routing/rt:control-plane-protocols/"+ 1126 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1127 description 1128 "This augment ISIS routing protocol when used"; 1129 } 1130 description 1131 "This augments ISIS protocol LSDB prefix."; 1132 uses fapm-sub-tlvs; 1133 } 1135 augment "/rt:routing/" + 1136 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1137 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1138 "/isis:mt-extended-ipv4-reachability/isis:prefixes" { 1139 when "/rt:routing/rt:control-plane-protocols/"+ 1140 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1141 description 1142 "This augment ISIS routing protocol when used"; 1143 } 1144 description 1145 "This augments ISIS protocol LSDB prefix."; 1146 uses fapm-sub-tlvs; 1147 } 1148 augment "/rt:routing/" + 1149 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1150 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1151 "/isis:ipv6-reachability/isis:prefixes" { 1152 when "/rt:routing/rt:control-plane-protocols/"+ 1153 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1154 description 1155 "This augment ISIS routing protocol when used"; 1156 } 1157 description 1158 "This augments ISIS protocol LSDB prefix."; 1159 uses fapm-sub-tlvs; 1160 } 1162 augment "/rt:routing/" + 1163 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1164 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1165 "/isis:mt-ipv6-reachability/isis:prefixes" { 1166 when "/rt:routing/rt:control-plane-protocols/"+ 1167 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1168 description 1169 "This augment ISIS routing protocol when used"; 1170 } 1171 description 1172 "This augments ISIS protocol LSDB prefix."; 1173 uses fapm-sub-tlvs; 1174 } 1175 } 1176 1178 5. Security Considerations 1180 The YANG modules specified in this document define a schema for data 1181 that is designed to be accessed via network management protocols such 1182 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1183 is the secure transport layer, and the mandatory-to-implement secure 1184 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1185 is HTTPS, and the mandatory-to-implement secure transport is TLS 1186 [RFC5246]. 1188 The NETCONF access control model [RFC6536] provides the means to 1189 restrict access for particular NETCONF or RESTCONF users to a pre- 1190 configured subset of all available NETCONF or RESTCONF protocol 1191 operations and content. 1193 There are a number of data nodes defined in the modules that are 1194 writable/creatable/deletable (i.e., config true, which is the 1195 default). These data nodes may be considered sensitive or vulnerable 1196 in some network environments. Write operations (e.g., edit-config) 1197 to these data nodes without proper protection can have a negative 1198 effect on network operations. These correspond to the following 1199 schema nodes: 1201 /isis:isis/isis:interfaces/isis:interface/isis-link-attr - 1202 Modification of link attributes operation mode could result in 1203 traffic being redirected or DoS attack. 1205 Some of the readable data nodes in the modules may be considered 1206 sensitive or vulnerable in some network environments. It is thus 1207 important to control read access (e.g., via get, get-config, or 1208 notification) to these data nodes. The exposure of the Link State 1209 Database (LSDB) will expose the detailed topology of the network. 1210 This may be undesirable since both due to the fact that exposure may 1211 facilitate other attacks. Additionally, network operators may 1212 consider their topologies to be sensitive confidential data.These 1213 correspond to the following schema nodes: 1215 /isis:isis/isis:database/isis:levels/isis:lsp/isis:mt-is- 1216 neighbor/isis:neighbor/isis:instances/isis:instance/application- 1217 specific-link-attributes-sub-tlvs 1219 /isis:isis/isis:database/isis:levels/isis:lsp/application- 1220 specific-srlg-tlv 1222 6. IANA Considerations 1224 This document registers URIs in the IETF XML registry [RFC3688]. 1225 Following the format in [RFC3688], the following registrations is 1226 requested to be made: 1228 URI: urn:ietf:params:xml:ns:yang:ietf-isis-remaining-lifetime 1229 Registrant Contact: The IESG. 1230 XML: N/A, the requested URI is an XML namespace. 1232 URI: urn:ietf:params:xml:ns:yang:ietf-isis-link-attr 1233 Registrant Contact: The IESG. 1234 XML: N/A, the requested URI is an XML namespace. 1236 URI: urn:ietf:params:xml:ns:yang:ietf-isis-flex-algo 1237 Registrant Contact: The IESG. 1238 XML: N/A, the requested URI is an XML namespace. 1240 This document registers the YANG modules in the YANG Module Names 1241 registry [RFC6020]. 1243 name: ietf-isis-remaining-lifetime 1244 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-remaining-lifetime 1245 prefix: isis-remaining-lifetime 1246 reference: RFC XXXX 1248 name: ietf-isis-link-attr 1249 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-link-attr 1250 prefix: isis-link-attr 1251 reference: RFC XXXX 1253 name: ietf-isis-flex-algo 1254 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-flex-algo 1255 prefix: isis-flex-algo 1256 reference: RFC XXXX 1258 7. Acknowledgements 1260 This document was produced using Marshall Rose's xml2rfc tool. 1262 The YANG model was developed using the suite of YANG tools written 1263 and maintained by numerous authors. 1265 8. References 1267 8.1. Normative References 1269 [I-D.ietf-isis-yang-isis-cfg] 1270 Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. 1271 Lhotka, "YANG Data Model for IS-IS Protocol", Work in 1272 Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- 1273 42, 15 October 2019, . 1276 [I-D.ietf-lsr-flex-algo] 1277 Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and 1278 A. Gulko, "IGP Flexible Algorithm", Work in Progress, 1279 Internet-Draft, draft-ietf-lsr-flex-algo-18, 25 October 1280 2021, . 1283 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1284 Requirement Levels", BCP 14, RFC 2119, 1285 DOI 10.17487/RFC2119, March 1997, 1286 . 1288 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1289 DOI 10.17487/RFC3688, January 2004, 1290 . 1292 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1293 (TLS) Protocol Version 1.2", RFC 5246, 1294 DOI 10.17487/RFC5246, August 2008, 1295 . 1297 [RFC5329] Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed., 1298 "Traffic Engineering Extensions to OSPF Version 3", 1299 RFC 5329, DOI 10.17487/RFC5329, September 2008, 1300 . 1302 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1303 the Network Configuration Protocol (NETCONF)", RFC 6020, 1304 DOI 10.17487/RFC6020, October 2010, 1305 . 1307 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1308 and A. Bierman, Ed., "Network Configuration Protocol 1309 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1310 . 1312 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1313 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1314 . 1316 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1317 Protocol (NETCONF) Access Control Model", RFC 6536, 1318 DOI 10.17487/RFC6536, March 2012, 1319 . 1321 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1322 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1323 . 1325 [RFC7987] Ginsberg, L., Wells, P., Decraene, B., Przygienda, T., and 1326 H. Gredler, "IS-IS Minimum Remaining Lifetime", RFC 7987, 1327 DOI 10.17487/RFC7987, October 2016, 1328 . 1330 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1331 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1332 . 1334 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1335 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1336 May 2017, . 1338 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 1339 Routing Management (NMDA Version)", RFC 8349, 1340 DOI 10.17487/RFC8349, March 2018, 1341 . 1343 [RFC8919] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and 1344 J. Drake, "IS-IS Application-Specific Link Attributes", 1345 RFC 8919, DOI 10.17487/RFC8919, October 2020, 1346 . 1348 8.2. Informative References 1350 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1351 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1352 . 1354 Authors' Addresses 1356 Acee Lindem 1357 Cisco Systems 1358 301 Midenhall Way 1359 Cary, NC 27513 1361 Email: acee@cisco.com 1363 Stephane Litkowski 1364 Cisco Systems 1366 Email: slitkows.ietf@gmail.com 1368 Yingzhen Qu 1369 Futurewei 1370 2330 Central Expressway 1371 Santa Clara, CA 95050 1372 United States of America 1374 Email: yingzhen.qu@futurewei.com