idnits 2.17.1 draft-hu-isis-srv6-yang-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 : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 4 instances of too long lines in the document, the longest one being 20 characters in excess of 72. ** The abstract seems to contain references ([I-D.ietf-lsr-isis-srv6-extensions]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 876 has weird spacing: '... uses srv6-...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (November 4, 2019) is 1634 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) == Outdated reference: A later version (-19) exists of draft-ietf-lsr-isis-srv6-extensions-03 == Outdated reference: A later version (-06) exists of draft-raza-spring-srv6-yang-05 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 4 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Z. Hu 3 Internet-Draft Huawei Technologies 4 Intended status: Standards Track D. Ye 5 Expires: May 7, 2020 Cisco Systems 6 Y. Qu 7 J. Dong 8 Huawei Technologies 9 November 4, 2019 11 YANG Data Model for IS-IS SRv6 12 draft-hu-isis-srv6-yang-02 14 Abstract 16 This document defines a YANG data model that can be used to configure 17 and manage IS-IS SRv6 [I-D.ietf-lsr-isis-srv6-extensions]. 19 Requirements Language 21 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 22 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 23 document are to be interpreted as described in RFC 2119 [RFC2119]. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on May 7, 2020. 42 Copyright Notice 44 Copyright (c) 2019 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. IS-IS SRv6 . . . . . . . . . . . . . . . . . . . . . . . . . 2 61 3. IS-IS SRv6 configuration . . . . . . . . . . . . . . . . . . 5 62 3.1. SRv6 activation . . . . . . . . . . . . . . . . . . . . . 5 63 3.2. Locator setting . . . . . . . . . . . . . . . . . . . . . 5 64 3.3. IP Fast reroute . . . . . . . . . . . . . . . . . . . . . 5 65 3.4. Microloop avoidance . . . . . . . . . . . . . . . . . . . 6 66 4. IS-IS SRv6 YANG Module . . . . . . . . . . . . . . . . . . . 6 67 5. Security Considerations . . . . . . . . . . . . . . . . . . . 19 68 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 19 69 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 70 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 71 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 74 1. Overview 76 YANG[RFC6020][RFC7950] is a data definition language used to define 77 the contents of a conceptual data store that allows networked devices 78 to be managed using NETCONF[RFC6241]. YANG is proving relevant 79 beyond its initial confines, as bindings to other interfaces (e.g., 80 ReST) and encodings other than XML (e.g., JSON) are being defined. 81 Furthermore, YANG data models can be used as the basis for 82 implementation of other interfaces, such as CLI and programmatic 83 APIs. 85 This document defines a YANG data model that can be used to configure 86 and manage IS-IS SRv6 and it is an augmentation to the IS- IS YANG 87 data model. 89 2. IS-IS SRv6 91 This document defines a model for IS-IS SRv6 feature. It is an 92 augmentation of the IS-IS base model. 94 The IS-IS SRv6 YANG module requires support for the base srv6 95 module[I-D.raza-spring-srv6-yang], which defines the global srv6 96 configuration independent of any specific routing protocol 97 configuration, and support of IS-IS base model 98 [I-D.ietf-isis-yang-isis-cfg] which defines basic IS-IS configuration 99 and state. 101 The figure below describes the overall structure of the isis-srv6 102 YANG module: 104 module: ietf-isis-srv6 105 augment /rt:routing/rt:control-plane-protocols 106 /rt:control-plane-protocol/isis:isis: 107 +--rw srv6-cfg 108 | +--rw enable? boolean 109 | +--rw default-locator? boolean 110 | +--rw locator-name? -> /rt:routing/srv6:srv6 111 | | /locators/locator/name 112 | +--rw persistent-end-x-sid? boolean 113 +--rw micro-loop-avoidance 114 +--rw srv6-enable? boolean 115 +--rw srv6-rib-update-delay? uint16 116 augment /rt:routing/rt:control-plane-protocols 117 /rt:control-plane-protocol/isis:isis 118 /isis:fast-reroute: 119 +--rw srv6-ti-lfa {srv6-ti-lfa}? 120 +--rw enable? boolean 121 augment /rt:routing/rt:control-plane-protocols 122 /rt:control-plane-protocol/isis:isis/isis:database 123 /isis:levels/isis:lsp/isis:router-capabilities: 124 +--ro v6-capability 125 | +--ro flags? bits 126 +--ro v6-msd 127 +--ro max-segments-left? uint8 128 +--ro max-end-pop? uint8 129 +--ro max-t-insert? uint8 130 +--ro max-t-encap? uint8 131 +--ro max-end-d? uint8 132 augment /rt:routing/rt:control-plane-protocols 133 /rt:control-plane-protocol/isis:isis/isis:database 134 /isis:levels/isis:lsp/isis:extended-is-neighbor 135 /isis:neighbor: 136 +--ro srv6-adjacency-sids 137 +--ro end-x-sid* [sid] 138 +--ro func-flags? bits 139 +--ro algorithm? uint8 140 +--ro weight? uint8 141 +--ro endpoint-func 142 | +--ro flags? uint8 143 | +--ro endpoint-func? identityref 144 | +--ro undefined-endpoint-func? uint16 145 +--ro sid srv6-sid-value 146 +--ro neighbor-id? isis:system-id 147 +--ro srv6-sid-structure 148 +--ro lb-length? uint8 149 +--ro ln-length? uint8 150 +--ro fun-length? uint8 151 +--ro arg-length? uint8 152 augment /rt:routing/rt:control-plane-protocols 153 /rt:control-plane-protocol/isis:isis/isis:database 154 /isis:levels/isis:lsp/isis:mt-is-neighbor/isis:neighbor: 155 +--ro srv6-adjacency-sids 156 +--ro end-x-sid* [sid] 157 +--ro func-flags? bits 158 +--ro algorithm? uint8 159 +--ro weight? uint8 160 +--ro endpoint-func 161 | +--ro flags? uint8 162 | +--ro endpoint-func? identityref 163 | +--ro undefined-endpoint-func? uint16 164 +--ro sid srv6-sid-value 165 +--ro neighbor-id? isis:system-id 166 +--ro srv6-sid-structure 167 +--ro lb-length? uint8 168 +--ro ln-length? uint8 169 +--ro fun-length? uint8 170 +--ro arg-length? uint8 171 augment /rt:routing/rt:control-plane-protocols 172 /rt:control-plane-protocol/isis:isis/isis:database 173 /isis:levels/isis:lsp: 174 +--ro srv6-locators 175 +--ro locator* [locator] 176 +--ro mt-id? uint16 177 +--ro flags? bits 178 +--ro metric? uint32 179 +--ro algorithm? uint8 180 +--ro loc-size? uint8 181 +--ro locator inet:ipv6-address-no-zone 182 +--ro srv6-end-sids 183 | +--ro end-sid* [sid] 184 | +--ro flags? uint8 185 | +--ro endpoint-func 186 | | +--ro flags? uint8 187 | | +--ro endpoint-func? identityref 188 | | +--ro undefined-endpoint-func? uint16 189 | +--ro sid srv6-sid-value 190 | +--ro srv6-sid-structure 191 | +--ro lb-length? uint8 192 | +--ro ln-length? uint8 193 | +--ro fun-length? uint8 194 | +--ro arg-length? uint8 195 +--ro external-prefix-flag? boolean 196 +--ro readvertisement-flag? boolean 197 +--ro node-flag? boolean 198 +--ro ipv4-source-router-id? inet:ipv4-address 199 +--ro ipv6-source-router-id? inet:ipv6-address 200 augment /rt:routing/rt:control-plane-protocols 201 /rt:control-plane-protocol/isis:isis/isis:interfaces 202 /isis:interface/isis:adjacencies/isis:adjacency: 203 +--ro end-x-sid* [value] 204 +--ro value srv6-sid-value 205 +--ro weight? uint8 206 +--ro protection-requested? boolean 207 +--ro persistent? boolean 208 +--ro algorithm? uint8 209 +--ro endpoint-func 210 +--ro flags? uint8 211 +--ro endpoint-func? identityref 212 +--ro undefined-endpoint-func? uint16 214 3. IS-IS SRv6 configuration 216 3.1. SRv6 activation 218 Activation of IS-IS SRv6 is done by setting the "enable" leaf to 219 true. This triggers advertisement of SRv6 extensions based on the 220 configuration parameters that have been setup using the base SRv6 221 module. 223 3.2. Locator setting 225 The basic SRv6 module defines the related locator leafs. When the 226 IS-IS SRv6 module is enabled, set the locator by using the following 227 strategy: firstly, it is reasonable to check whether the default 228 locator is used, if not, to use the specified locator. The strategy 229 is realized by adding the leaf "default-locator", "locator-name" . 231 3.3. IP Fast reroute 233 IS-IS SRv6 model augments the fast-reroute container. It brings the 234 ability to activate ipv6 TI-LFA (topology independent LFA). 236 3.4. Microloop avoidance 238 IS-IS SRv6 model augments the micro-loop-avoidance container, this 239 container including the leaf "srv6-enable" brings the ability to 240 activate SRv6 avoid-microloop. 242 4. IS-IS SRv6 YANG Module 244 file "ietf-isis-srv6@2019-10-23.yang" 245 module ietf-isis-srv6 { 246 namespace "urn:ietf:params:xml:ns:" 247 + "yang:ietf-isis-srv6"; 248 prefix isis-srv6; 250 import ietf-routing { 251 prefix "rt"; 252 } 254 import ietf-isis { 255 prefix "isis"; 256 } 258 import ietf-srv6-base { 259 prefix "srv6"; 260 } 262 import iana-routing-types { 263 prefix "iana-rt-types"; 264 } 266 import ietf-inet-types { 267 prefix "inet"; 268 } 270 organization 271 "IETF LSR Working Group"; 273 contact 274 "WG List: 275 Author: Zhibo Hu 276 277 Author: Dan Ye 278 279 Author: Yingzhen Qu 280 281 Author: Jiajia Dong 282 283 "; 285 description 286 "The YANG module defines a generic configuration model for 287 Segment IPV6 routing ISIS extensions common across all of 288 the vendor implementations."; 290 revision 2019-10-23 { 291 description 292 "Initial revision."; 293 reference "draft-ietf-lsr-isis-srv6-extensions-03"; 294 } 296 /* Identities */ 297 identity SRV6_END_FUNC_TYPE { 298 description 299 "Base identity type for srv6 endpoint function code points."; 300 } 302 identity SRV6_END_FUNC_PSP_USP_USD { 303 base "SRV6_END_FUNC_TYPE"; 304 description 305 "End (May support PSP, USP, USD)."; 306 } 308 identity SRV6_END_X_FUNC_PSP_USP_USD { 309 base "SRV6_END_FUNC_TYPE"; 310 description 311 "End.X(May support PSP, USP, USD)"; 312 } 314 identity SRV6_END_T_FUNC_PSP_USP_USD { 315 base "SRV6_END_FUNC_TYPE"; 316 description 317 "END (May support PSP, USP, USD)"; 318 } 320 identity SRV6_END_FUNC_DX6 { 321 base "SRV6_END_FUNC_TYPE"; 322 description 323 "End.DX6."; 324 } 326 identity SRV6_END_FUNC_DX4 { 327 base "SRV6_END_FUNC_TYPE"; 328 description 329 "End.DX4."; 330 } 332 identity SRV6_END_FUNC_DT6 { 333 base "SRV6_END_FUNC_TYPE"; 334 description 335 "End.DT6."; 336 } 338 identity SRV6_END_FUNC_DT4 { 339 base "SRV6_END_FUNC_TYPE"; 340 description 341 "End.DT4."; 342 } 344 identity SRV6_END_FUNC_DT64 { 345 base "SRV6_END_FUNC_TYPE"; 346 description 347 "End.DT64."; 348 } 350 identity SRV6_END_FUNC_OP { 351 base "SRV6_END_FUNC_TYPE"; 352 description 353 "END.OP ."; 354 } 356 identity SRV6_END_FUNC_OTP { 357 base "SRV6_END_FUNC_TYPE"; 358 description 359 "END.OTP ."; 360 } 362 /* typedef */ 363 typedef srv6-sid-value { 364 type inet:ipv6-address-no-zone; 365 description 366 "16 Octets encoded sid value."; 367 } 369 /* Features */ 370 feature srv6-ti-lfa { 371 description 372 "Enhance SRv6 FRR with ti-lfa 373 support"; 374 } 375 /* Groupings */ 376 grouping srv6-msd { 377 description 378 "means to advertise to advertise node/link specific 379 values for Maxium Sid Depths(MSD) of various types"; 380 container v6-msd { 381 description 382 "Maximum SRv6 SID Depths."; 383 leaf max-segments-left { 384 type uint8; 385 description 386 "The maximum value of 'SL' field in the SRH of a 387 recevied packet."; 388 } 389 leaf max-end-pop { 390 type uint8; 391 description 392 "The maximum number of SIDS in the top SRH in an SRH 393 stack to which the router can apply 'PSP' or 'USP'."; 394 } 395 leaf max-t-insert { 396 type uint8; 397 description 398 "The maximum number of SIDs can be inserted as port of 399 the 'T.insert' behavior."; 400 } 401 leaf max-t-encap { 402 type uint8; 403 description 404 "The maximum number of SIDs can be included as part of 405 the 'T.Encap' behavior."; 406 } 407 leaf max-end-d { 408 type uint8; 409 description 410 "The maximum number of SIDs in an SRH when performing 411 decapsulation associated with 'End.Dx' functions 412 (e.g., 'End.DX6' and 'End.DT6')."; 413 } 414 } 415 } 417 grouping srv6-sid-structures { 418 description 419 "This group defines SRv6 SID Structure sub-sub-TLV."; 420 container srv6-sid-structure { 421 description 422 "SRv6 SID Structure sub-sub-TLV is used to advertise the length of each 423 individual part of the SRv6 SID as defined in 424 [I-D.ietf-spring-srv6-network-programming]"; 425 leaf lb-length { 426 type uint8; 427 description 428 "SRv6 SID Locator Block length in bits."; 430 } 432 leaf ln-length { 433 type uint8; 434 description 435 "SRv6 SID Locator Node length in bits."; 436 } 438 leaf fun-length { 439 type uint8; 440 description 441 "SRv6 SID Function length in bits."; 442 } 444 leaf arg-length { 445 type uint8; 446 description 447 "SRv6 SID Argument length in bits."; 448 } 449 } 450 } 451 grouping srv6-capability { 452 description 453 "SRV6 capability grouping."; 454 container v6-capability { 455 description 456 "SRv6 capability."; 457 leaf flags { 458 type bits { 459 bit o-flag { 460 position 1; 461 description 462 "If set, then the router is able to 463 use of the O-bit in the Segment Routing Header(SRH) 464 as defined in [draft-ietf-6man-segment-routing-header]."; 465 } 466 } 467 description 468 "Flags."; 469 } 470 } 471 } 473 grouping srv6-endpoint-func { 474 description 475 "This group defines srv6 endpoint function"; 476 container endpoint-func { 477 description 478 "Srv6 Endpoint function Descriptor."; 479 leaf flags { 480 type uint8; 481 description 482 "No flags are currently being defined."; 483 } 484 leaf endpoint-func { 485 type identityref { 486 base isis-srv6:SRV6_END_FUNC_TYPE; 487 } 488 description 489 "The endpoint function."; 490 } 491 leaf undefined-endpoint-func { 492 type uint16; 493 description 494 "Unknown endpoint func value."; 495 } 496 } 497 } 499 grouping srv6-end-sid { 500 description 501 "SRv6 Segment Identifier(SID) with Endpoint functions."; 502 leaf flags { 503 type uint8; 504 description 505 "NO flags are currently being defined."; 506 } 508 uses srv6-endpoint-func; 510 leaf sid { 511 type srv6-sid-value; 512 description 513 "SRV6 sid value."; 514 } 515 // sub-sub-tlvs 516 uses srv6-sid-structures; 517 } 519 grouping srv6-locator { 520 description 521 "This group defines srv6 locator tlv."; 522 leaf mt-id { 523 type uint16 { 524 range "0..4095"; 525 } 526 description 527 "Multitopology Identifier as defined in [RFC5120]."; 528 } 529 leaf flags { 530 type bits { 531 bit d-flag { 532 position 0; 533 description 534 "When the locator is leaked from level-2 to leve-1, 535 the d-flag must be set."; 536 } 537 } 538 description 539 "Flags for srv6 locator tlv."; 540 } 542 leaf metric { 543 type uint32; 544 description 545 "Metric value."; 546 } 547 leaf algorithm { 548 type uint8; 549 description 550 "Associated algorithm."; 551 } 553 leaf loc-size { 554 type uint8; 555 description 556 "Number of bits in the locator field."; 557 } 558 leaf locator { 559 type inet:ipv6-address-no-zone; 560 description 561 "Advertised SRV6 locator."; 562 } 563 container srv6-end-sids { 564 description 565 "This contains list of srv6 end sids."; 566 list end-sid { 567 key "sid"; 568 description 569 "List of SRV6 SRv6 Segment Identifiers (SID) 570 with Endpoint functions."; 571 uses srv6-end-sid; 572 } 573 } 574 uses isis:prefix-reachability-attributes; 575 uses isis:prefix-ipv4-source-router-id; 576 uses isis:prefix-ipv6-source-router-id; 577 } 579 grouping srv6-adjacency-sid { 580 description 581 "SRv6 sid associated with an adjacency."; 583 leaf func-flags { 584 type bits { 585 bit b-flag { 586 position 0; 587 description 588 "Backup flag. If set, the End.X sid is 589 eligible for protection."; 590 } 592 bit s-flag { 593 position 1; 594 description 595 "Set flag. When set, the End.X sid refers to 596 a set of adjacencies (and therefore May be assigned 597 to other adjacencies as well."; 598 } 600 bit p-flag { 601 position 2; 602 description 603 "Persistent flag. When set, the End.X sid is persistently 604 allocated, i.e., the End.x sid value remains consistent 605 across router restart and/or interface flap."; 606 } 607 } 608 description 609 "Flags for srv6 end x sid."; 610 } 612 leaf algorithm { 613 type uint8; 614 description 615 "Associated algorithm."; 616 } 618 leaf weight { 619 type uint8; 620 description 621 "The value represents the weight of the End.X sid 622 for the purpose of load balancing."; 623 } 625 uses srv6-endpoint-func; 627 leaf sid { 628 type srv6-sid-value; 629 description 630 "SRV6 sid value."; 631 } 633 leaf neighbor-id { 634 type isis:system-id; 635 description 636 "Describes the system ID of the neighbor 637 associated with the SID value. This is only 638 used on LAN adjacencies."; 639 } 641 // sub-sub-tlvs 642 uses srv6-sid-structures; 643 } 645 grouping srv6-adjacency-state { 646 description 647 "This group will extend adjacency state."; 648 list end-x-sid { 649 key value; 650 config false; 651 leaf value { 652 type srv6-sid-value; 653 description 654 "Value of the Adj-SID."; 655 } 656 leaf weight { 657 type uint8; 658 description 659 "Weight associated with 660 the End.X SID."; 661 } 662 leaf protection-requested { 663 type boolean; 664 description 665 "Set to True if the End.X SID 666 must be protected."; 667 } 668 leaf persistent { 669 type boolean; 670 description 671 "Persistent flag. When set, the End.X sid is persistently 672 allocated, i.e., the End.X sid value remains consistent 673 across router restart and/or interface flap."; 674 } 675 leaf algorithm { 676 type uint8; 677 description 678 "Associated algorithm."; 679 } 680 uses srv6-endpoint-func; 682 description 683 "List of End.X Segment IDs."; 684 } 685 } 686 /* Cfg */ 687 augment "/rt:routing/" + 688 "rt:control-plane-protocols/rt:control-plane-protocol"+ 689 "/isis:isis" { 690 when "/rt:routing/rt:control-plane-protocols/"+ 691 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 692 description 693 "This augment ISIS routing protocol when used"; 694 } 695 description 696 "This augments ISIS protocol configuration 697 with SRv6."; 699 container srv6-cfg{ 700 leaf enable{ 701 type boolean; 702 default "false"; 703 description 704 "Enables SRv6 705 protocol extensions."; 706 } 708 leaf default-locator { 709 type boolean; 710 default "false"; 711 description 712 "Enable ISIS segment-routing IPv6 with default Locator."; 713 } 715 leaf locator-name { 716 when "not(../default-locator='true')"; 717 type leafref { 718 path "/rt:routing/srv6:srv6/srv6:locators/srv6:locator/srv6:name"; 719 } 720 description 721 "Enable ISIS segment-routing IPv6 with specified Locator."; 722 } 724 leaf persistent-end-x-sid{ 725 type boolean; 726 default "false"; 727 description 728 "Enable the persistent nature of End.X sid"; 729 } 730 description 731 "Configuration about ISIS segment-routing IPv6."; 732 } 733 container micro-loop-avoidance { 734 leaf srv6-enable { 735 type boolean; 736 default "false"; 737 description 738 "Enable SRv6 avoid-microloop.Depend on SR IPv6 Enable."; 739 } 741 leaf srv6-rib-update-delay { 742 type uint16 { 743 range "1000..10000"; 744 } 745 units "ms"; 746 default "5000"; 747 description 748 "Set the route delivery delay for SRv6 avoid-microloop.Depend on SR IPv6 Enable."; 749 } 751 description 752 "Enable IS-IS avoid-microloop."; 753 } 754 } 756 augment "/rt:routing/" + 757 "rt:control-plane-protocols/rt:control-plane-protocol"+ 758 "/isis:isis/isis:fast-reroute"{ 759 when "/rt:routing/rt:control-plane-protocols/"+ 760 "rt:control-plane-protocol/rt:type = 'isis:isis'"{ 761 description 762 "This augment ISIS routing protocol when used"; 763 } 764 description 765 "This augments ISIS IPFRR with IPV6 TILFA."; 767 container srv6-ti-lfa { 769 if-feature srv6-ti-lfa; 770 leaf enable { 771 type boolean; 772 description 773 "Enables SRv6 TI-LFA computation."; 774 } 776 description 777 "SRv6 TILFA configuration."; 778 } 779 } 781 /* Operational states */ 782 augment "/rt:routing/" + 783 "rt:control-plane-protocols/rt:control-plane-protocol"+ 784 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 785 "/isis:router-capabilities" { 786 when "/rt:routing/rt:control-plane-protocols/"+ 787 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 788 description 789 "This augment ISIS routing protocol when used"; 790 } 791 description 792 "This augments ISIS protocol router capability."; 793 uses srv6-capability; 794 uses srv6-msd; 795 } 797 augment "/rt:routing/" + 798 "rt:control-plane-protocols/rt:control-plane-protocol"+ 799 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 800 "/isis:extended-is-neighbor/isis:neighbor" { 801 when "/rt:routing/rt:control-plane-protocols/"+ 802 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 803 description 804 "This augment ISIS routing protocol when used."; 805 } 806 description 807 "This augments ISIS protocol neighbor."; 808 container srv6-adjacency-sids { 809 description 810 "This defines svr6 end-x sids for the adjacency."; 811 list end-x-sid { 812 key "sid"; 813 uses srv6-adjacency-sid; 814 description 815 "List of end-x sids."; 816 } 817 } 818 } 819 augment "/rt:routing/" + 820 "rt:control-plane-protocols/rt:control-plane-protocol"+ 821 "/isis:isis/isis:database/isis:levels/isis:lsp"+ 822 "/isis:mt-is-neighbor/isis:neighbor" { 823 when "/rt:routing/rt:control-plane-protocols/"+ 824 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 825 description 826 "This augment ISIS routing protocol when used."; 827 } 828 description 829 "This augments ISIS protocol neighbor."; 830 container srv6-adjacency-sids { 831 description 832 "This defines svr6 end-x sids for the adjacency."; 833 list end-x-sid { 834 key "sid"; 835 uses srv6-adjacency-sid; 836 description 837 "List of end-x sids."; 838 } 839 } 840 } 842 augment "/rt:routing/" + 843 "rt:control-plane-protocols/rt:control-plane-protocol"+ 844 "/isis:isis/isis:database/isis:levels/isis:lsp" { 845 when "/rt:routing/rt:control-plane-protocols/"+ 846 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 847 description 848 "This augment ISIS routing protocol when used."; 849 } 850 description 851 "This augments ISIS protocol LSDB."; 852 container srv6-locators { 853 description 854 "This defines srv6 locator tlvs."; 855 list locator { 856 key "locator"; 857 uses srv6-locator; 858 description 859 "List of srv6 locators."; 860 } 861 } 862 } 863 augment "/rt:routing/" + 864 "rt:control-plane-protocols/rt:control-plane-protocol"+ 865 "/isis:isis/isis:interfaces/isis:interface" + 866 "/isis:adjacencies/isis:adjacency" { 867 when "/rt:routing/rt:control-plane-protocols/"+ 868 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 869 description 870 "This augment ISIS routing protocol when used."; 871 } 872 description 873 "This augments ISIS protocol operational state 874 with segment routing."; 876 uses srv6-adjacency-state; 877 } 879 /* Notifications */ 880 } 881 883 5. Security Considerations 885 Configuration and state data defined in this document are designed to 886 be accessed via the NETCONF protocol [RFC6241]. 888 As IS-IS is an IGP protocol (critical piece of the network), ensuring 889 stability and security of the protocol is mandatory for the network 890 service. 892 Authors recommends to implement NETCONF access control model 893 ([RFC6536]) to restrict access to all or part of the configuration to 894 specific users. 896 6. Contributors 898 TBD. 900 7. Acknowledgements 902 TBD. 904 8. IANA Considerations 906 The IANA is requested to assign two new URIs from the IETF XML 907 registry ([RFC3688]). Authors are suggesting the following URI: 909 URI: urn:ietf:params:xml:ns:yang:ietf-isis-srv6 910 Registrant Contact: IS-IS WG 911 XML: N/A, the requested URI is an XML namespace 913 This document also requests one new YANG module name in the YANG 914 Module Names registry ([RFC6020]) with the following suggestion : 916 name: ietf-isis-srv6 917 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-srv6 prefix: isis-srv6 918 reference: RFC XXXX 920 9. References 922 [I-D.ietf-isis-yang-isis-cfg] 923 Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. 924 Lhotka, "YANG Data Model for IS-IS Protocol", draft-ietf- 925 isis-yang-isis-cfg-42 (work in progress), October 2019. 927 [I-D.ietf-lsr-isis-srv6-extensions] 928 Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and 929 Z. Hu, "IS-IS Extension to Support Segment Routing over 930 IPv6 Dataplane", draft-ietf-lsr-isis-srv6-extensions-03 931 (work in progress), October 2019. 933 [I-D.raza-spring-srv6-yang] 934 Raza, K., Agarwal, S., Liu, X., Hu, Z., Hussain, I., Shah, 935 H., Voyer, D., Elmalky, H., Matsushima, S., Horiba, K., 936 Abdelsalam, A., and J. Rajamanickam, "YANG Data Model for 937 SRv6 Base and Static", draft-raza-spring-srv6-yang-05 938 (work in progress), October 2019. 940 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 941 Requirement Levels", BCP 14, RFC 2119, 942 DOI 10.17487/RFC2119, March 1997, 943 . 945 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 946 DOI 10.17487/RFC3688, January 2004, 947 . 949 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 950 the Network Configuration Protocol (NETCONF)", RFC 6020, 951 DOI 10.17487/RFC6020, October 2010, 952 . 954 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 955 and A. Bierman, Ed., "Network Configuration Protocol 956 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 957 . 959 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 960 Protocol (NETCONF) Access Control Model", RFC 6536, 961 DOI 10.17487/RFC6536, March 2012, 962 . 964 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 965 RFC 7950, DOI 10.17487/RFC7950, August 2016, 966 . 968 Authors' Addresses 970 Zhibo Hu 971 Huawei Technologies 972 Huawei Bld., No.156 Beiqing Rd. 973 Beijing 100095 974 China 976 Email: huzhibo@huawei.com 978 Dan Ye 979 Cisco Systems 980 170 W. Tasman Dr. San Jose, 981 California 95134 982 USA 984 Email: daye@cisco.com 986 Yingzhen Qu 987 Huawei Technologies 988 Huawei Bld., No.156 Beiqing Rd. 989 Beijing 100095 990 China 992 Email: yingzhen.qu@huawei.com 993 Jiajia Dong 994 Huawei Technologies 995 Huawei Bld., No.156 Beiqing Rd. 996 Beijing 100095 997 China 999 Email: dongjiajia@huawei.com