idnits 2.17.1 draft-ietf-lsr-isis-yang-augmentation-v1-03.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 (6 March 2022) is 772 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 1333, but no explicit reference was found in the text == Outdated reference: A later version (-26) 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) ** Obsolete normative reference: RFC 8919 (Obsoleted by RFC 9479) Summary: 4 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: 7 September 2022 Y. Qu 6 Futurewei 7 6 March 2022 9 IS-IS YANG Model Augmentations for Additional Features - Version 1 10 draft-ietf-lsr-isis-yang-augmentation-v1-03 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, IS-IS Application-Specific Link Attributes as 17 defined in RFC 8919, and IS-IS Flexible Algorithm. 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 7 September 2022. 36 Copyright Notice 38 Copyright (c) 2022 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 . . . . . . . . . . . . . . . . . . . 26 59 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 60 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 61 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 62 8.1. Normative References . . . . . . . . . . . . . . . . . . 28 63 8.2. Informative References . . . . . . . . . . . . . . . . . 30 64 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 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@2022-03-06.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) 2022 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 2022-03-06 { 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 TLV223."; 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."; 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 notifications: 722 +---n flex-algo-not-supported 723 +--ro routing-protocol-name? -> /rt:routing 724 /control-plane-protocols 725 /control-plane-protocol/name 726 +--ro isis-level? level 727 +--ro flex-algo-number? uint8 729 file "ietf-isis-flex-algo@2022-03-06.yang" 730 module ietf-isis-flex-algo { 731 yang-version 1.1; 732 namespace "urn:ietf:params:xml:ns:yang:ietf-isis-flex-algo"; 733 prefix isis-flex-algo; 735 import ietf-routing { 736 prefix rt; 737 reference "RFC 8349: A YANG Data Model for Routing 738 Management (NMDA Version)"; 739 } 741 import ietf-te-types { 742 prefix te-types; 743 reference 744 "RFC8776: Common YANG Data Types for Traffic Engineering."; 745 } 747 import ietf-isis { 748 prefix "isis"; 749 } 751 import ietf-te { 752 prefix "te"; 753 } 755 import ietf-isis-link-attr { 756 prefix "isis-link-attr"; 757 } 759 organization 760 "IETF LSR - Link State Routing Working Group"; 761 contact 762 "WG Web: 763 WG List: 764 Author: Yingzhen Qu 765 766 Author: Acee Lindem 767 768 Author: Stephane Litkowski 769 770 "; 772 description 773 "The YANG module defines the configuration and operational 774 state for ISIS Flexible Algorithm as defined in RFC xxxx. 776 This YANG model conforms to the Network Management 777 Datastore Architecture (NMDA) as described in RFC 8342. 779 Copyright (c) 2022 IETF Trust and the persons identified as 780 authors of the code. All rights reserved. 782 Redistribution and use in source and binary forms, with or 783 without modification, is permitted pursuant to, and subject to 784 the license terms contained in, the Revised BSD License set 785 forth in Section 4.c of the IETF Trust's Legal Provisions 786 Relating to IETF Documents 787 (https://trustee.ietf.org/license-info). 789 This version of this YANG module is part of RFC XXXX; 790 see the RFC itself for full legal notices. 792 The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL 793 NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 794 'MAY', and 'OPTIONAL' in this document are to be interpreted as 795 described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, 796 they appear in all capitals, as shown here."; 798 reference "RFC XXXX: YANG Data Model for ISIS Flexible Algorithm."; 800 revision 2022-03-06 { 801 description 802 "Initial Version"; 803 reference "RFC XXXX: YANG Data Model for ISIS Flexible Algorithm."; 804 } 806 /* Identities */ 808 identity metric-type { 809 description 810 "Base identity for route metric types."; 812 } 814 identity igp-metric { 815 base metric-type; 816 description 817 "Identity for the IGP metric type."; 818 } 820 identity min-uni-delay { 821 base metric-type; 822 description 823 "Min unidirectional link delay metric type."; 824 reference 825 "RFC 8570 - IS-IS Traffic Engineering (TE) Metric Extensions"; 826 } 828 identity te-metric { 829 base metric-type; 830 description 831 "Traffic engineering metric type."; 832 reference 833 "RFC 5305 - IS-IS Extensions for Traffic Engineering (TE)"; 834 } 836 identity fad-flags { 837 description 838 "Base identity for ISIS FAD flags."; 839 } 841 identity m-bit { 842 base fad-flags; 843 description 844 "M bit, when set, the flex-algo specific prefix and ASBR 845 metric MUST be used for inter-area and external prefix 846 calculation."; 847 } 849 /* Identity augmentation */ 850 identity flex-algo-bit { 851 base isis-link-attr:sabm-bit; 852 description 853 "X bit, flexible algorithm."; 854 } 856 /* Groupings */ 857 grouping fa-ex-ag-sub-tlv { 858 container fa-ex-ag-sub-tlv { 859 leaf-list extended-admin-groups { 860 type uint64; 861 description 862 "Extended administrative group as defined in RFC 7308."; 863 } 864 description 865 "The flex-algo exclude admin group sub-tlv."; 866 } 867 description 868 "The flex-algo exclude admin group sub-tlv."; 869 } 871 grouping fa-in-any-ag-sub-tlv { 872 container fa-in-any-ag-sub-tlv { 873 leaf-list extended-admin-groups { 874 type uint64; 875 description 876 "Extended administrative group as defined in RFC 7308."; 877 } 878 description 879 "The flex-algo include-any admin group sub-tlv."; 880 } 881 description 882 "The flex-algo include-any admin group sub-tlv."; 883 } 885 grouping fa-in-all-ag-sub-tlv { 886 container fa-in-all-ag-sub-tlv { 887 leaf-list extended-admin-groups { 888 type uint64; 889 description 890 "Extended administrative group as defined in RFC 7308."; 891 } 892 description 893 "The flex-algo include-all admin group sub-tlv."; 894 } 895 description 896 "The flex-algo include-all admin group sub-tlv."; 897 } 899 grouping fad-flags-sub-tlv { 900 container fad-flags-sub-tlv { 901 leaf-list fad-flags { 902 type identityref { 903 base fad-flags; 904 } 905 description 906 "Flex-algo definition flags list."; 907 } 908 description 909 "ISIS flex-algo definition flags."; 910 } 911 description 912 "The flex-algo definition flags sub-tlv."; 913 } 915 grouping fa-ex-srlg-sub-tlv { 916 container fa-ex-srlg-sub-tlv { 917 leaf-list srlgs { 918 type uint32; 919 description 920 "SRLG value as defined in RFC 4203."; 921 } 922 description 923 "The flex-algo exclude SRLG sub-tlv."; 924 } 925 description 926 "The flex-algo exclude SRLG sub-tlv."; 927 } 929 grouping fad-tlvs { 930 container fad-tlvs { 931 list fad-tlv { 932 leaf flex-algo { 933 type uint8; 934 description 935 "Flex-algo number, value between 128 and 255 inclusive."; 936 } 937 leaf metric-type { 938 type identityref { 939 base metric-type; 940 } 941 description 942 "Type of metric to be used during the calculation."; 943 } 944 leaf calc-type { 945 type uint8 { 946 range "0..127"; 947 } 948 description 949 "IGP algorithm types, value from 0 to 127 as 950 defined under 'Interior Gateway Protocol (IGP) 951 Parameter' by IANA."; 952 } 953 leaf priority { 954 type uint8; 955 description 956 "Priority of the advertisement."; 957 } 959 uses fa-ex-ag-sub-tlv; 960 uses fa-in-any-ag-sub-tlv; 961 uses fa-in-all-ag-sub-tlv; 962 uses fad-flags-sub-tlv; 963 uses fa-ex-srlg-sub-tlv; 964 uses isis:unknown-tlvs; 966 description 967 "List of flex-algo definition TLVs."; 968 } 969 description 970 "ISIS Flexible Algorithm Definition TLV."; 971 } 972 description 973 "ISIS Flexible Algorithm Definition (FAD) TLV."; 974 } 976 grouping fapm-sub-tlvs { 977 container fapm-sub-tlvs { 978 list fapm-sub-tlv { 979 leaf flex-algo { 980 type uint8; 981 description 982 "Flex-algo number, value between 128 and 255 983 inclusive."; 984 } 985 leaf metric { 986 type uint32; 987 description 988 "Prefix metric."; 989 } 990 description 991 "List of flex-algo prefix sub-tlvs."; 992 } 993 description 994 "Flex-algo prefix metric sub-tlvs."; 995 } 996 description 997 "Flexible Algorithm Prefix Metric (FAPM) sub TLVs."; 998 } 1000 /* Configurations */ 1002 augment "/rt:routing/" + 1003 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1004 "/isis:isis" { 1005 when "/rt:routing/rt:control-plane-protocols/"+ 1006 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1007 description 1008 "This augment ISIS routing protocol when used"; 1009 } 1010 description 1011 "This augments ISIS protocol configuration 1012 with flexible algorithm."; 1014 container isis-flex-algo { 1015 list flex-algo { 1016 key "algo-number"; 1018 leaf algo-number { 1019 type uint8 { 1020 range "128..255"; 1021 } 1022 description 1023 "An identifier in the range 128-255 that's associated 1024 with the Flexible Algorithm Definition."; 1025 } 1027 leaf advertise-definition { 1028 type boolean; 1029 default true; 1030 description 1031 "Enable to advertise the flex-algo definition."; 1032 } 1034 container admin-groups { 1035 if-feature "te-types:extended-admin-groups"; 1036 if-feature "te-types:named-extended-admin-groups"; 1037 leaf-list exclude-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 "Exclude rule used during the flex-algo 1044 path computation."; 1045 } 1046 leaf-list include-any-admin-groups { 1047 type leafref { 1048 path "/te:te/te:globals/te:named-admin-groups/" 1049 + "te:named-admin-group/te:name"; 1050 } 1051 description 1052 "Include-any rule used during the flex-algo 1053 path computation."; 1054 } 1055 leaf-list include-all-admin-groups { 1056 type leafref { 1057 path "/te:te/te:globals/te:named-admin-groups/" 1058 + "te:named-admin-group/te:name"; 1059 } 1060 description 1061 "Include-all rule used during the flex-algo 1062 path computation."; 1063 } 1064 description 1065 "Specify links for the flex-algo path computation."; 1066 } 1068 leaf-list exclude-srlgs { 1069 if-feature "te-types:named-srlg-groups"; 1070 type leafref { 1071 path "/te:te/te:globals/te:named-srlgs/te:named-srlg/" 1072 + "te:name"; 1073 } 1074 description 1075 "Shared Risk Link Groups (SRLGs) to be excluded during 1076 the flex-algo path computation."; 1077 } 1079 leaf fast-reroute { 1080 type boolean; 1081 default true; 1082 description 1083 "Enable fast reroute."; 1084 } 1086 leaf metric-type { 1087 type identityref { 1088 base metric-type; 1089 } 1090 description 1091 "Type of metric to be used during the calculation."; 1092 } 1094 leaf microloop-avoidance { 1095 type boolean; 1096 default true; 1097 description 1098 "Enable microloop avoidance."; 1100 } 1102 container prefix-metric { 1103 presence 1104 "Use flex-algo specific prefix metric."; 1105 description 1106 "Use flex-algo prefix metric."; 1107 } 1109 leaf priority { 1110 type uint8; 1111 description 1112 "Priority of the advertisement."; 1113 } 1115 description 1116 "List of flex-algo configurations."; 1117 } 1118 description 1119 "Flexible Algorithm configuration."; 1120 } 1121 } 1123 /* Database */ 1125 augment "/rt:routing/" + 1126 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1127 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1128 "/isis:router-capabilities" { 1129 when "/rt:routing/rt:control-plane-protocols/"+ 1130 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1131 description 1132 "This augment ISIS routing protocol when used"; 1133 } 1134 description 1135 "This augments ISIS protocol LSDB router capability."; 1137 uses fad-tlvs; 1138 } 1140 augment "/rt:routing/" + 1141 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1142 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1143 "/isis:extended-ipv4-reachability/isis:prefixes" { 1144 when "/rt:routing/rt:control-plane-protocols/"+ 1145 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1146 description 1147 "This augment ISIS routing protocol when used"; 1149 } 1150 description 1151 "This augments ISIS protocol LSDB prefix."; 1152 uses fapm-sub-tlvs; 1153 } 1155 augment "/rt:routing/" + 1156 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1157 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1158 "/isis:mt-extended-ipv4-reachability/isis:prefixes" { 1159 when "/rt:routing/rt:control-plane-protocols/"+ 1160 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1161 description 1162 "This augment ISIS routing protocol when used"; 1163 } 1164 description 1165 "This augments ISIS protocol LSDB prefix."; 1166 uses fapm-sub-tlvs; 1167 } 1169 augment "/rt:routing/" + 1170 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1171 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1172 "/isis:ipv6-reachability/isis:prefixes" { 1173 when "/rt:routing/rt:control-plane-protocols/"+ 1174 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1175 description 1176 "This augment ISIS routing protocol when used"; 1177 } 1178 description 1179 "This augments ISIS protocol LSDB prefix."; 1180 uses fapm-sub-tlvs; 1181 } 1183 augment "/rt:routing/" + 1184 "rt:control-plane-protocols/rt:control-plane-protocol"+ 1185 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 1186 "/isis:mt-ipv6-reachability/isis:prefixes" { 1187 when "/rt:routing/rt:control-plane-protocols/"+ 1188 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 1189 description 1190 "This augment ISIS routing protocol when used"; 1191 } 1192 description 1193 "This augments ISIS protocol LSDB prefix."; 1194 uses fapm-sub-tlvs; 1195 } 1196 /* notification */ 1198 notification flex-algo-not-supported { 1199 uses isis:notification-instance-hdr; 1200 leaf flex-algo-number { 1201 type uint8 { 1202 range "128..255"; 1203 } 1204 description 1205 "Flex-algo identifier which is not supported by the IS-IS 1206 instance."; 1207 } 1208 description 1209 "This notification is sent when an IS-IS instance does not 1210 support this flex-algo."; 1211 } 1212 } 1213 1215 5. Security Considerations 1217 The YANG modules specified in this document define a schema for data 1218 that is designed to be accessed via network management protocols such 1219 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1220 is the secure transport layer, and the mandatory-to-implement secure 1221 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1222 is HTTPS, and the mandatory-to-implement secure transport is TLS 1223 [RFC5246]. 1225 The NETCONF access control model [RFC6536] provides the means to 1226 restrict access for particular NETCONF or RESTCONF users to a pre- 1227 configured subset of all available NETCONF or RESTCONF protocol 1228 operations and content. 1230 There are a number of data nodes defined in the modules that are 1231 writable/creatable/deletable (i.e., config true, which is the 1232 default). These data nodes may be considered sensitive or vulnerable 1233 in some network environments. Write operations (e.g., edit-config) 1234 to these data nodes without proper protection can have a negative 1235 effect on network operations. These correspond to the following 1236 schema nodes: 1238 /isis:isis/isis:interfaces/isis:interface/isis-link-attr - 1239 Modification of link attributes operation mode could result in 1240 traffic being redirected or DoS attack. 1242 Some of the readable data nodes in the modules may be considered 1243 sensitive or vulnerable in some network environments. It is thus 1244 important to control read access (e.g., via get, get-config, or 1245 notification) to these data nodes. The exposure of the Link State 1246 Database (LSDB) will expose the detailed topology of the network. 1247 This may be undesirable since both due to the fact that exposure may 1248 facilitate other attacks. Additionally, network operators may 1249 consider their topologies to be sensitive confidential data.These 1250 correspond to the following schema nodes: 1252 /isis:isis/isis:database/isis:levels/isis:lsp/isis:mt-is- 1253 neighbor/isis:neighbor/isis:instances/isis:instance/application- 1254 specific-link-attributes-sub-tlvs 1256 /isis:isis/isis:database/isis:levels/isis:lsp/application- 1257 specific-srlg-tlv 1259 6. IANA Considerations 1261 This document registers URIs in the IETF XML registry [RFC3688]. 1262 Following the format in [RFC3688], the following registrations is 1263 requested to be made: 1265 URI: urn:ietf:params:xml:ns:yang:ietf-isis-remaining-lifetime 1266 Registrant Contact: The IESG. 1267 XML: N/A, the requested URI is an XML namespace. 1269 URI: urn:ietf:params:xml:ns:yang:ietf-isis-link-attr 1270 Registrant Contact: The IESG. 1271 XML: N/A, the requested URI is an XML namespace. 1273 URI: urn:ietf:params:xml:ns:yang:ietf-isis-flex-algo 1274 Registrant Contact: The IESG. 1275 XML: N/A, the requested URI is an XML namespace. 1277 This document registers the YANG modules in the YANG Module Names 1278 registry [RFC6020]. 1280 name: ietf-isis-remaining-lifetime 1281 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-remaining-lifetime 1282 prefix: isis-remaining-lifetime 1283 reference: RFC XXXX 1284 name: ietf-isis-link-attr 1285 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-link-attr 1286 prefix: isis-link-attr 1287 reference: RFC XXXX 1289 name: ietf-isis-flex-algo 1290 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-flex-algo 1291 prefix: isis-flex-algo 1292 reference: RFC XXXX 1294 7. Acknowledgements 1296 This document was produced using Marshall Rose's xml2rfc tool. 1298 The YANG model was developed using the suite of YANG tools written 1299 and maintained by numerous authors. 1301 8. References 1303 8.1. Normative References 1305 [I-D.ietf-isis-yang-isis-cfg] 1306 Litkowski, S., Yeung, D., Lindem, A., Zhang, J., and L. 1307 Lhotka, "YANG Data Model for IS-IS Protocol", Work in 1308 Progress, Internet-Draft, draft-ietf-isis-yang-isis-cfg- 1309 42, 15 October 2019, . 1312 [I-D.ietf-lsr-flex-algo] 1313 Psenak, P., Hegde, S., Filsfils, C., Talaulikar, K., and 1314 A. Gulko, "IGP Flexible Algorithm", Work in Progress, 1315 Internet-Draft, draft-ietf-lsr-flex-algo-18, 25 October 1316 2021, . 1319 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1320 Requirement Levels", BCP 14, RFC 2119, 1321 DOI 10.17487/RFC2119, March 1997, 1322 . 1324 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1325 DOI 10.17487/RFC3688, January 2004, 1326 . 1328 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1329 (TLS) Protocol Version 1.2", RFC 5246, 1330 DOI 10.17487/RFC5246, August 2008, 1331 . 1333 [RFC5329] Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed., 1334 "Traffic Engineering Extensions to OSPF Version 3", 1335 RFC 5329, DOI 10.17487/RFC5329, September 2008, 1336 . 1338 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1339 the Network Configuration Protocol (NETCONF)", RFC 6020, 1340 DOI 10.17487/RFC6020, October 2010, 1341 . 1343 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1344 and A. Bierman, Ed., "Network Configuration Protocol 1345 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1346 . 1348 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1349 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1350 . 1352 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1353 Protocol (NETCONF) Access Control Model", RFC 6536, 1354 DOI 10.17487/RFC6536, March 2012, 1355 . 1357 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1358 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1359 . 1361 [RFC7987] Ginsberg, L., Wells, P., Decraene, B., Przygienda, T., and 1362 H. Gredler, "IS-IS Minimum Remaining Lifetime", RFC 7987, 1363 DOI 10.17487/RFC7987, October 2016, 1364 . 1366 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1367 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1368 . 1370 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1371 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1372 May 2017, . 1374 [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for 1375 Routing Management (NMDA Version)", RFC 8349, 1376 DOI 10.17487/RFC8349, March 2018, 1377 . 1379 [RFC8919] Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and 1380 J. Drake, "IS-IS Application-Specific Link Attributes", 1381 RFC 8919, DOI 10.17487/RFC8919, October 2020, 1382 . 1384 8.2. Informative References 1386 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1387 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1388 . 1390 Authors' Addresses 1392 Acee Lindem 1393 Cisco Systems 1394 301 Midenhall Way 1395 Cary, NC 27513 1396 Email: acee@cisco.com 1398 Stephane Litkowski 1399 Cisco Systems 1400 Email: slitkows.ietf@gmail.com 1402 Yingzhen Qu 1403 Futurewei 1404 2330 Central Expressway 1405 Santa Clara, CA 95050 1406 United States of America 1407 Email: yingzhen.qu@futurewei.com