idnits 2.17.1 draft-hu-isis-srv6-yang-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 2 instances of too long lines in the document, the longest one being 4 characters in excess of 72. ** The abstract seems to contain references ([I-D.bashandy-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 830 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 (July 31, 2018) is 2093 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 (-05) exists of draft-bashandy-isis-srv6-extensions-03 == Outdated reference: A later version (-42) exists of draft-ietf-isis-yang-isis-cfg-22 == Outdated reference: A later version (-06) exists of draft-raza-spring-srv6-yang-01 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 4 errors (**), 0 flaws (~~), 6 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: February 1, 2019 Cisco Systems 6 Y. Qu 7 J. Dong 8 Huawei Technologies 9 July 31, 2018 11 YANG Data Model for IS-IS SRv6 12 draft-hu-isis-srv6-yang-00 14 Abstract 16 This document defines a YANG data model that can be used to configure 17 and manage IS-IS SRv6 [I-D.bashandy-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 February 1, 2019. 42 Copyright Notice 44 Copyright (c) 2018 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 4. IS-IS SRv6 YANG Module . . . . . . . . . . . . . . . . . . . 5 66 5. Security Considerations . . . . . . . . . . . . . . . . . . . 18 67 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 68 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 69 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 70 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 73 1. Overview 75 YANG[RFC6020][RFC7950] is a data definition language used to define 76 the contents of a conceptual data store that allows networked devices 77 to be managed using NETCONF[RFC6241]. YANG is proving relevant 78 beyond its initial confines, as bindings to other interfaces (e.g., 79 ReST) and encodings other than XML (e.g., JSON) are being defined. 80 Furthermore, YANG data models can be used as the basis for 81 implementation of other interfaces, such as CLI and programmatic 82 APIs. 84 This document defines a YANG data model that can be used to configure 85 and manage IS-IS SRv6 and it is an augmentation to the IS- IS YANG 86 data model. 88 2. IS-IS SRv6 90 This document defines a model for IS-IS SRv6 feature. It is an 91 augmentation of the IS-IS base model. 93 The IS-IS SRv6 YANG module requires support for the base srv6 94 module[I-D.raza-spring-srv6-yang], which defines the global srv6 95 configuration independent of any specific routing protocol 96 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 augment /rt:routing/rt:control-plane-protocols 114 /rt:control-plane-protocol/isis:isis 115 /isis:interfaces/isis:interface/isis:fast-reroute: 116 +--rw srv6-ti-lfa {srv6-ti-lfa}? 117 +--rw enable? boolean 118 augment /rt:routing/rt:control-plane-protocols 119 /rt:control-plane-protocol/isis:isis/isis:database 120 /isis:level-db/isis:lsp/isis:router-capabilities: 121 +--ro v6-capability 122 | +--ro flags? bits 123 +--ro v6-msd 124 +--ro max-segments-left? uint8 125 +--ro max-end-pop? uint8 126 +--ro max-t-insert? uint8 127 +--ro max-t-encap? uint8 128 +--ro max-end-d? uint8 129 augment /rt:routing/rt:control-plane-protocols 130 /rt:control-plane-protocol/isis:isis/isis:database 131 /isis:level-db/isis:lsp/isis:extended-is-neighbor 132 /isis:neighbor: 133 +--ro srv6-end-x-sids 134 +--ro end-x-sid* [sid] 135 +--ro func-flags? bits 136 +--ro algorithm? uint8 137 +--ro weight? uint8 138 +--ro endpoint-func 139 | +--ro flags? uint8 140 | +--ro endpoint-func? identityref 141 | +--ro undefined-endpoint-func? uint16 142 +--ro sid srv6-sid-value 143 +--ro neighbor-id? isis:system-id 144 augment /rt:routing/rt:control-plane-protocols 145 /rt:control-plane-protocol/isis:isis/isis:database 146 /isis:level-db/isis:lsp/isis:mt-is-neighbor/isis:neighbor: 147 +--ro srv6-end-x-sids 148 +--ro end-x-sid* [sid] 149 +--ro func-flags? bits 150 +--ro algorithm? uint8 151 +--ro weight? uint8 152 +--ro endpoint-func 153 | +--ro flags? uint8 154 | +--ro endpoint-func? identityref 155 | +--ro undefined-endpoint-func? uint16 156 +--ro sid srv6-sid-value 157 +--ro neighbor-id? isis:system-id 158 augment /rt:routing/rt:control-plane-protocols 159 /rt:control-plane-protocol/isis:isis/isis:database 160 /isis:level-db/isis:lsp: 161 +--ro srv6-locators 162 +--ro locator* [locator] 163 +--ro mt-id? uint16 164 +--ro flags? bits 165 +--ro metric? uint32 166 +--ro algorithm? uint8 167 +--ro loc-size? uint8 168 +--ro locator inet:ipv6-address-no-zone 169 +--ro srv6-end-sids 170 | +--ro end-sid* [sid] 171 | +--ro flags? uint8 172 | +--ro endpoint-func 173 | | +--ro flags? uint8 174 | | +--ro endpoint-func? identityref 175 | | +--ro undefined-endpoint-func? uint16 176 | +--ro sid srv6-sid-value 177 +--ro external-prefix-flag? boolean 178 +--ro readvertisement-flag? boolean 179 +--ro node-flag? boolean 180 +--ro ipv4-source-router-id? inet:ipv4-address 181 +--ro ipv6-source-router-id? inet:ipv6-address 182 augment /rt:routing/rt:control-plane-protocols 183 /rt:control-plane-protocol/isis:isis/isis:interfaces 184 /isis:interface/isis:adjacencies/isis:adjacency: 185 +--ro end-x-sid* [value] 186 +--ro value srv6-sid-value 187 +--ro weight? uint8 188 +--ro protection-requested? boolean 189 +--ro persistent? boolean 190 +--ro algorithm? uint8 191 +--ro endpoint-func 192 +--ro flags? uint8 193 +--ro endpoint-func? identityref 194 +--ro undefined-endpoint-func? uint16 196 3. IS-IS SRv6 configuration 198 3.1. SRv6 activation 200 Activation of IS-IS SRv6 is done by setting the "enable" leaf to 201 true. This triggers advertisement of SRv6 extensions based on the 202 configuration parameters that have been setup using the base SRv6 203 module. 205 3.2. Locator setting 207 The basic SRv6 module defines the related locator leafs. When the 208 IS-IS SRv6 module is enabled, set the locator by using the following 209 strategy: firstly, it is reasonable to check whether the default 210 locator is used, if not, to use the specified locator. The strategy 211 is realized by adding the leaf "default-locator", "locator-name" . 213 3.3. IP Fast reroute 215 IS-IS SRv6 model augments the fast-reroute container under interface. 216 It brings the ability to activate ipv6 TI-LFA (topology independent 217 LFA). 219 4. IS-IS SRv6 YANG Module 221 file "ietf-isis-srv6@2018-07-31.yang" 222 module ietf-isis-srv6 { 223 namespace "urn:ietf:params:xml:ns:" 224 + "yang:ietf-isis-srv6"; 225 prefix isis-srv6; 227 import ietf-routing { 228 prefix "rt"; 229 } 231 import ietf-isis { 232 prefix "isis"; 233 } 235 import ietf-srv6-base { 236 prefix "srv6"; 237 } 239 import iana-routing-types { 240 prefix "iana-rt-types"; 242 } 244 import ietf-inet-types { 245 prefix "inet"; 246 } 248 organization 249 "IETF ISIS Working Group"; 251 contact 252 "WG List: 253 Author: Zhibo Hu 254 255 Author: Dan Ye 256 257 Author: Yingzhen Qu 258 259 Author: Jiajia Dong 260 261 "; 263 description 264 "The YANG module defines a generic configuration model for 265 Segment IPV6 routing ISIS extensions common across all of 266 the vendor implementations."; 268 revision 2018-07-31 { 269 description 270 "Initial revision."; 271 reference "draft-bashandy-isis-srv6-extensions-03"; 272 } 274 /* Identities */ 275 identity SRV6_END_FUNC_TYPE { 276 description 277 "Base identity type for srv6 endpoint function code points."; 278 } 280 identity SRV6_END_FUNC_NO_PSP_USP { 281 base "SRV6_END_FUNC_TYPE"; 282 description 283 "End (no PSP, no USP)."; 284 } 286 identity SRV6_END_FUNC_PSP { 287 base "SRV6_END_FUNC_TYPE"; 288 description 289 "End with PSP."; 291 } 293 identity SRV6_END_FUNC_USP { 294 base "SRV6_END_FUNC_TYPE"; 295 description 296 "END with USP."; 297 } 299 identity SRV6_END_FUNC_PSP_USP { 300 base "SRV6_END_FUNC_TYPE"; 301 description 302 "END with PSP & USP."; 303 } 305 identity SRVT_END_T_FUNC_NO_PSP_USP { 306 base "SRV6_END_FUNC_TYPE"; 307 description 308 "End.T (no PSP, no USP)."; 309 } 311 identity SRVT_END_T_FUNC_PSP { 312 base "SRV6_END_FUNC_TYPE"; 313 description 314 "End.T with PSP."; 315 } 317 identity SRVT_END_T_FUNC_USP { 318 base "SRV6_END_FUNC_TYPE"; 319 description 320 "End.T with USP."; 321 } 323 identity SRVT_END_T_FUNC_PSP_USP { 324 base "SRV6_END_FUNC_TYPE"; 325 description 326 "End.T with PSP & USP."; 327 } 329 identity SRV6_END_X_FUNC_NO_PSP_USP { 330 base "SRV6_END_FUNC_TYPE"; 331 description 332 "End.x (no PSP, no USP)."; 333 } 335 identity SRV6_END_X_FUNC_PSP { 336 base "SRV6_END_FUNC_TYPE"; 337 description 338 "End.x with PSP."; 340 } 342 identity SRV6_END_X_FUNC_USP { 343 base "SRV6_END_FUNC_TYPE"; 344 description 345 "End.x with USP."; 346 } 348 identity SRV6_END_X_FUNC_PSP_USP { 349 base "SRV6_END_FUNC_TYPE"; 350 description 351 "End.x with PSP & USP."; 352 } 354 identity SRV6_END_FUNC_DX6 { 355 base "SRV6_END_FUNC_TYPE"; 356 description 357 "End.DX6 function."; 358 } 360 identity SRV6_END_FUNC_DT6 { 361 base "SRV6_END_FUNC_TYPE"; 362 description 363 "End.DT6 function."; 364 } 366 identity SRV6_END_FUNC_OTP { 367 base "SRV6_END_FUNC_TYPE"; 368 description 369 "END.OTP ."; 370 } 372 /* typedef */ 373 typedef srv6-sid-value { 374 type inet:ipv6-address-no-zone; 375 description 376 "16 Octets encoded sid value."; 377 } 379 /* Features */ 380 feature srv6-ti-lfa { 381 description 382 "Enhance SRv6 FRR with ti-lfa 383 support"; 384 } 385 /* Groupings */ 386 grouping srv6-msd { 387 description 388 "means to advertise to advertise node/link specific 389 values for Maxium Sid Depths(MSD) of various types"; 390 container v6-msd { 391 description 392 "Maximum SRv6 SID Depths."; 393 leaf max-segments-left { 394 type uint8; 395 description 396 "The maximum value of 'SL' field in the SRH of a 397 recevied packet."; 398 } 399 leaf max-end-pop { 400 type uint8; 401 description 402 "The maximum number of SIDS in the topp SRH in an SRH 403 stack to which the router can apply 'PSP' or 'USP'."; 404 } 405 leaf max-t-insert { 406 type uint8; 407 description 408 "The maximum number of SIDs can be inserted as port of 409 the 'T.insert' behavior."; 410 } 411 leaf max-t-encap { 412 type uint8; 413 description 414 "The maximum number of SIDs can be included as part of 415 the 'T.Encap' behavior."; 416 } 417 leaf max-end-d { 418 type uint8; 419 description 420 "The maximum number of SIDs in an SRH when performing 421 decapsulation associated with 'End.Dx' functions 422 (e.g., 'End.DX6' and 'End.DT6')."; 423 } 424 } 425 } 427 grouping srv6-capability { 428 description 429 "SRV6 capability grouping."; 430 container v6-capability { 431 description 432 "SRv6 capability."; 433 leaf flags { 434 type bits { 435 bit o-flag { 436 position 1; 437 description 438 "If set, then the router is able to 439 use of the O-bit in the Segment Routing Header(SRH) 440 as defined in [draft-ietf-6man-segment-routing-header]."; 441 } 442 } 443 description 444 "Flags."; 445 } 446 } 447 } 449 grouping srv6-endpoint-func { 450 description 451 "This group defines srv6 endpoint function"; 452 container endpoint-func { 453 description 454 "Srv6 Endpoint function Descriptor."; 455 leaf flags { 456 type uint8; 457 description 458 "No flags are currently being defined."; 459 } 460 leaf endpoint-func { 461 type identityref { 462 base isis-srv6:SRV6_END_FUNC_TYPE; 463 } 464 description 465 "The endpoint function."; 466 } 467 leaf undefined-endpoint-func { 468 type uint16; 469 description 470 "Unknown endpoint func value."; 471 } 472 } 473 } 475 grouping srv6-end-sid { 476 description 477 "SRv6 Segment Identifier(SID) with Endpoint functions."; 478 leaf flags { 479 type uint8; 480 description 481 "NO flags are currently being defined."; 482 } 483 uses srv6-endpoint-func; 485 leaf sid { 486 type srv6-sid-value; 487 description 488 "SRV6 sid value."; 489 } 490 // sub-sub-tlvs not yet defined 491 } 493 grouping srv6-locator { 494 description 495 "This group defines srv6 locator tlv."; 496 leaf mt-id { 497 type uint16 { 498 range "0..4095"; 499 } 500 description 501 "Multitopology Identifier as defined in [RFC5120]."; 502 } 503 leaf flags { 504 type bits { 505 bit d-flag { 506 position 0; 507 description 508 "When the locator is leaked from level-2 to leve-1, 509 the d-flag must be set."; 510 } 511 } 512 description 513 "Flags for srv6 locator tlv."; 514 } 516 leaf metric { 517 type uint32; 518 description 519 "Metric value."; 520 } 521 leaf algorithm { 522 type uint8; 523 description 524 "Associated algorithm."; 525 } 527 leaf loc-size { 528 type uint8; 529 description 530 "Number of bits in the locator field."; 532 } 533 leaf locator { 534 type inet:ipv6-address-no-zone; 535 description 536 "Advertised SRV6 locator."; 537 } 538 container srv6-end-sids { 539 description 540 "This contains list of srv6 end sids."; 541 list end-sid { 542 key "sid"; 543 description 544 "List of SRV6 SRv6 Segment Identifiers (SID) 545 with Endpoint functions."; 546 uses srv6-end-sid; 547 } 548 } 549 uses isis:prefix-reachability-attributes; 550 uses isis:prefix-ipv4-source-router-id; 551 uses isis:prefix-ipv6-source-router-id; 552 } 554 grouping srv6-end-x-sid { 555 description 556 "SRv6 sid associated with an adjacency."; 558 leaf func-flags { 559 type bits { 560 bit b-flag { 561 position 0; 562 description 563 "Backup flag. If set, the End.X sid is 564 eligible for protection."; 565 } 567 bit s-flag { 568 position 1; 569 description 570 "Set flag. When set, the End.X sid refers to 571 a set of adjacencies (and therefore May be assigned 572 to other adjacencies as well."; 573 } 575 bit p-flag { 576 position 2; 577 description 578 "Persistent flag. When set, the End.X sid is persistently 579 allocated, i.e., the End.x sid value remains consistent 580 across router restart and/or interface flap."; 581 } 582 } 583 description 584 "Flags for srv6 end x sid."; 585 } 587 leaf algorithm { 588 type uint8; 589 description 590 "Associated algorithm."; 591 } 593 leaf weight { 594 type uint8; 595 description 596 "The value represents the weight of the End.X sid 597 for the purpose of load balancing."; 598 } 600 uses srv6-endpoint-func; 602 leaf sid { 603 type srv6-sid-value; 604 description 605 "SRV6 sid value."; 606 } 608 leaf neighbor-id { 609 type isis:system-id; 610 description 611 "Describes the system ID of the neighbor 612 associated with the SID value. This is only 613 used on LAN adjacencies."; 614 } 616 // sub-sub-tlvs 617 } 619 grouping srv6-adjacency-state { 620 description 621 "This group will extend adjacency state."; 622 list end-x-sid { 623 key value; 624 config false; 625 leaf value { 626 type srv6-sid-value; 627 description 628 "Value of the Adj-SID."; 629 } 630 leaf weight { 631 type uint8; 632 description 633 "Weight associated with 634 the End.X SID."; 635 } 636 leaf protection-requested { 637 type boolean; 638 description 639 "Set to True if the End.X SID 640 must be protected."; 641 } 642 leaf persistent { 643 type boolean; 644 description 645 "Persistent flag. When set, the End.X sid is persistently 646 allocated, i.e., the End.X sid value remains consistent 647 across router restart and/or interface flap."; 648 } 649 leaf algorithm { 650 type uint8; 651 description 652 "Associated algorithm."; 653 } 654 uses srv6-endpoint-func; 656 description 657 "List of End.X Segment IDs."; 658 } 659 } 660 /* Cfg */ 661 augment "/rt:routing/" + 662 "rt:control-plane-protocols/rt:control-plane-protocol"+ 663 "/isis:isis" { 664 when "/rt:routing/rt:control-plane-protocols/"+ 665 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 666 description 667 "This augment ISIS routing protocol when used"; 668 } 669 description 670 "This augments ISIS protocol configuration 671 with SRv6."; 673 container srv6-cfg{ 674 leaf enable{ 675 type boolean; 676 default "false"; 677 description 678 "Enables SRv6 679 protocol extensions."; 680 } 682 leaf default-locator { 683 type boolean; 684 default "false"; 685 description 686 "Enable ISIS segment-routing IPv6 with default Locator."; 687 } 689 leaf locator-name { 690 when "not(../default-locator='true')"; 691 type leafref { 692 path "/rt:routing/srv6:srv6/srv6:locators/srv6:locator/srv6:name"; 693 } 694 description 695 "Enable ISIS segment-routing IPv6 with specified Locator."; 696 } 698 leaf persistent-end-x-sid{ 699 type boolean; 700 default "false"; 701 description 702 "Enable the persistent nature of End.X sid"; 703 } 704 description 705 "Configuration about ISIS segment-routing IPv6."; 706 } 707 } 709 augment "/rt:routing/" + 710 "rt:control-plane-protocols/rt:control-plane-protocol"+ 711 "/isis:isis/isis:interfaces/isis:interface"+ 712 "/isis:fast-reroute"{ 713 when "/rt:routing/rt:control-plane-protocols/"+ 714 "rt:control-plane-protocol/rt:type = 'isis:isis'"{ 715 description 716 "This augment ISIS routing protocol when used"; 717 } 718 description 719 "This augments ISIS IPFRR with IPV6 TILFA."; 721 container srv6-ti-lfa { 722 if-feature srv6-ti-lfa; 723 leaf enable { 724 type boolean; 725 description 726 "Enables SRv6 TI-LFA computation."; 727 } 729 description 730 "SRv6 TILFA configuration."; 731 } 732 } 734 /* Operational states */ 735 augment "/rt:routing/" + 736 "rt:control-plane-protocols/rt:control-plane-protocol"+ 737 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 738 "/isis:router-capabilities" { 739 when "/rt:routing/rt:control-plane-protocols/"+ 740 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 741 description 742 "This augment ISIS routing protocol when used"; 743 } 744 description 745 "This augments ISIS protocol router capability."; 746 uses srv6-capability; 747 uses srv6-msd; 748 } 750 augment "/rt:routing/" + 751 "rt:control-plane-protocols/rt:control-plane-protocol"+ 752 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 753 "/isis:extended-is-neighbor/isis:neighbor" { 754 when "/rt:routing/rt:control-plane-protocols/"+ 755 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 756 description 757 "This augment ISIS routing protocol when used."; 758 } 759 description 760 "This augments ISIS protocol neighbor."; 761 container srv6-end-x-sids { 762 description 763 "This defines svr6 end-x sids for the adjacency."; 764 list end-x-sid { 765 key "sid"; 766 uses srv6-end-x-sid; 767 description 768 "List of end-x sids."; 770 } 771 } 772 } 773 augment "/rt:routing/" + 774 "rt:control-plane-protocols/rt:control-plane-protocol"+ 775 "/isis:isis/isis:database/isis:level-db/isis:lsp"+ 776 "/isis:mt-is-neighbor/isis:neighbor" { 777 when "/rt:routing/rt:control-plane-protocols/"+ 778 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 779 description 780 "This augment ISIS routing protocol when used."; 781 } 782 description 783 "This augments ISIS protocol neighbor."; 784 container srv6-end-x-sids { 785 description 786 "This defines svr6 end-x sids for the adjacency."; 787 list end-x-sid { 788 key "sid"; 789 uses srv6-end-x-sid; 790 description 791 "List of end-x sids."; 792 } 793 } 794 } 796 augment "/rt:routing/" + 797 "rt:control-plane-protocols/rt:control-plane-protocol"+ 798 "/isis:isis/isis:database/isis:level-db/isis:lsp" { 799 when "/rt:routing/rt:control-plane-protocols/"+ 800 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 801 description 802 "This augment ISIS routing protocol when used."; 803 } 804 description 805 "This augments ISIS protocol LSDB."; 806 container srv6-locators { 807 description 808 "This defines srv6 locator tlvs."; 809 list locator { 810 key "locator"; 811 uses srv6-locator; 812 description 813 "List of srv6 locators."; 814 } 815 } 816 } 817 augment "/rt:routing/" + 818 "rt:control-plane-protocols/rt:control-plane-protocol"+ 819 "/isis:isis/isis:interfaces/isis:interface" + 820 "/isis:adjacencies/isis:adjacency" { 821 when "/rt:routing/rt:control-plane-protocols/"+ 822 "rt:control-plane-protocol/rt:type = 'isis:isis'" { 823 description 824 "This augment ISIS routing protocol when used."; 825 } 826 description 827 "This augments ISIS protocol operational state 828 with segment routing."; 830 uses srv6-adjacency-state; 831 } 833 /* Notifications */ 834 } 835 837 5. Security Considerations 839 Configuration and state data defined in this document are designed to 840 be accessed via the NETCONF protocol [RFC6241]. 842 As IS-IS is an IGP protocol (critical piece of the network), ensuring 843 stability and security of the protocol is mandatory for the network 844 service. 846 Authors recommends to implement NETCONF access control model 847 ([RFC6536]) to restrict access to all or part of the configuration to 848 specific users. 850 6. Contributors 852 TBD. 854 7. Acknowledgements 856 TBD. 858 8. IANA Considerations 860 The IANA is requested to assign two new URIs from the IETF XML 861 registry ([RFC3688]). Authors are suggesting the following URI: 863 URI: urn:ietf:params:xml:ns:yang:ietf-isis-srv6 864 Registrant Contact: IS-IS WG 865 XML: N/A, the requested URI is an XML namespace 867 This document also requests one new YANG module name in the YANG 868 Module Names registry ([RFC6020]) with the following suggestion : 870 name: ietf-isis-srv6 871 namespace: urn:ietf:params:xml:ns:yang:ietf-isis-srv6 prefix: isis-srv6 872 reference: RFC XXXX 874 9. References 876 [I-D.bashandy-isis-srv6-extensions] 877 Ginsberg, L., Psenak, P., Filsfils, C., Bashandy, A., 878 Decraene, B., and Z. Hu, "IS-IS Extensions to Support 879 Routing over IPv6 Dataplane", draft-bashandy-isis- 880 srv6-extensions-03 (work in progress), June 2018. 882 [I-D.ietf-isis-yang-isis-cfg] 883 Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. 884 Lhotka, "YANG Data Model for IS-IS protocol", draft-ietf- 885 isis-yang-isis-cfg-22 (work in progress), July 2018. 887 [I-D.raza-spring-srv6-yang] 888 Raza, K., Rajamanickam, J., Liu, X., Hu, Z., Hussain, I., 889 Shah, H., daniel.voyer@bell.ca, d., Elmalky, H., 890 Matsushima, S., Horiba, K., and A. Abdelsalam, "YANG Data 891 Model for SRv6 Base and Static", draft-raza-spring- 892 srv6-yang-01 (work in progress), March 2018. 894 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 895 Requirement Levels", BCP 14, RFC 2119, 896 DOI 10.17487/RFC2119, March 1997, 897 . 899 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 900 DOI 10.17487/RFC3688, January 2004, 901 . 903 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 904 the Network Configuration Protocol (NETCONF)", RFC 6020, 905 DOI 10.17487/RFC6020, October 2010, 906 . 908 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 909 and A. Bierman, Ed., "Network Configuration Protocol 910 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 911 . 913 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 914 Protocol (NETCONF) Access Control Model", RFC 6536, 915 DOI 10.17487/RFC6536, March 2012, 916 . 918 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 919 RFC 7950, DOI 10.17487/RFC7950, August 2016, 920 . 922 Authors' Addresses 924 Zhibo Hu 925 Huawei Technologies 926 Huawei Bld., No.156 Beiqing Rd. 927 Beijing 100095 928 China 930 Email: huzhibo@huawei.com 932 Dan Ye 933 Cisco Systems 934 170 W. Tasman Dr. San Jose, 935 California 95134 936 USA 938 Email: daye@cisco.com 940 Yingzhen Qu 941 Huawei Technologies 942 Huawei Bld., No.156 Beiqing Rd. 943 Beijing 100095 944 China 946 Email: yingzhen.qu@huawei.com 947 Jiajia Dong 948 Huawei Technologies 949 Huawei Bld., No.156 Beiqing Rd. 950 Beijing 100095 951 China 953 Email: dongjiajia@huawei.com