idnits 2.17.1 draft-chen-spring-shorter-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 : ---------------------------------------------------------------------------- ** There are 27 instances of too long lines in the document, the longest one being 105 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 136 has weird spacing: '...-rw sid srv...' == Line 150 has weird spacing: '...-rw sid srv...' == Line 164 has weird spacing: '...-rw sid srv...' == Line 177 has weird spacing: '...-rw sid srv...' == Line 192 has weird spacing: '...-rw sid srv...' == (3 more instances...) == Couldn't figure out when the document was first submitted -- there may comments or warnings related to the use of a disclaimer for pre-RFC5378 work that could not be issued because of this. Please check the Legal Provisions document at https://trustee.ietf.org/license-info to determine if you need the pre-RFC5378 disclaimer. -- The document date (April 3, 2020) is 1455 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. 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: 'I-D.ietf-6man-segment-routing-header' is defined on line 1009, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-spring-srv6-network-programming' is defined on line 1015, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 1034, but no explicit reference was found in the text == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-15 -- No information found for draft-mirsky-6man-unified-id-sr - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'I-D.mirsky-6man-unified-id-sr' == Outdated reference: A later version (-06) exists of draft-raza-spring-srv6-yang-05 Summary: 1 error (**), 0 flaws (~~), 13 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING WG R. Chen 3 Internet-Draft D. Zhao 4 Intended status: Standards Track ZTE Corporation 5 Expires: October 5, 2020 April 3, 2020 7 YANG data model for shorter srv6 8 draft-chen-spring-shorter-srv6-yang-00 10 Abstract 12 This document is to define the YANG data model for shorter srv6( 13 Compressing SRv6 ). 15 Status of This Memo 17 This Internet-Draft is submitted in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF). Note that other groups may also distribute 22 working documents as Internet-Drafts. The list of current Internet- 23 Drafts is at https://datatracker.ietf.org/drafts/current/. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 This Internet-Draft will expire on October 5, 2020. 32 Copyright Notice 34 Copyright (c) 2020 IETF Trust and the persons identified as the 35 document authors. All rights reserved. 37 This document is subject to BCP 78 and the IETF Trust's Legal 38 Provisions Relating to IETF Documents 39 (https://trustee.ietf.org/license-info) in effect on the date of 40 publication of this document. Please review these documents 41 carefully, as they describe your rights and restrictions with respect 42 to this document. Code Components extracted from this document must 43 include Simplified BSD License text as described in Section 4.e of 44 the Trust Legal Provisions and are provided without warranty as 45 described in the Simplified BSD License. 47 Table of Contents 49 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 50 2. Shorter SRv6 Types . . . . . . . . . . . . . . . . . . . . . 2 51 3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 2 52 3.1. Shorter SRv6 base . . . . . . . . . . . . . . . . . . . . 2 53 3.2. Shorter SRv6 Static . . . . . . . . . . . . . . . . . . . 3 54 4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 6 55 4.1. Shorter SRv6 type . . . . . . . . . . . . . . . . . . . . 6 56 4.2. Shorter SRv6 Base . . . . . . . . . . . . . . . . . . . . 10 57 4.3. Shorter SRv6 Static . . . . . . . . . . . . . . . . . . . 12 58 5. Security Considerations . . . . . . . . . . . . . . . . . . . 22 59 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 60 7. Normative References . . . . . . . . . . . . . . . . . . . . 22 61 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 63 1. Introduction 65 YANG[RFC6020]is a data definition language that was introduced to 66 define the contents of a conceptual data store that allows networked 67 devices to be managed using NETCONF [RFC6241]. This document defines 68 a YANG data model for the configuration of shorter srv6. 70 [I-D.mirsky-6man-unified-id-sr] proposed an extension of SRH that 71 enables the use of a shorter segment identifier, such as 32-bits 72 Label format SID or 32-bits IP address format SID. 74 [I-D.raza-spring-srv6-yang]introduces a YANG data model for base SRv6 75 and SRv6 Static application. 77 This document is to define the YANG data model for shorter srv6( 78 Compressing SRv6 ) 80 2. Shorter SRv6 Types 82 The Shorter-SRv6-Types augment "ietf-srv6-types" 83 [I-D.raza-spring-srv6-yang], and defines new srv6-endpoint-type: SRv6 84 Endpoint behaviors identity type. 86 3. Configuration 88 3.1. Shorter SRv6 base 90 The Shorter-SRv6-base configuration augments the SRv6-base locator 91 tree [I-D.raza-spring-srv6-yang]"/rt:routing/rt:srv6", and defines 92 new Parameters. 94 Following is a simplified graphical tree representation of the data 95 model for Shorter SRv6 base configuration. 97 module: ietf-shorter-srv6-base 98 augment /rt:routing/rt:srv6: 99 +--rw shorter-srv6 100 +--rw node-capabilities 101 +--rw UET-support? enumeration 103 augment /rt:routing/rt:srv6/rt:locators/rt:locator/rt:prefix: 104 +--rw lb-length srv6-types:srv6-lb-len 106 3.2. Shorter SRv6 Static 108 The Shorter-SRv6-Static configuration augments the SRv6-base locator 109 tree "/rt:routing/srv6:srv6/srv6:locators/srv6:locator/rt:prefix:", 110 and defines new Parameters. 112 Following is a simplified graphical tree representation of the data 113 model for Shorter SRv6 Static configuration. 115 module: ietf-shorter-srv6-static 116 augment /rt:routing/srv6:srv6/srv6:locators/srv6:locator:/srv6:static/srv6:local-sids/srv6:sid: 117 +--rw end_uet32 118 +--rw end_psp_uet32 119 +--rw end_usp_uet32 120 +--rw end_usd_uet32 121 +--rw end_psp_usp_uet32 122 +--rw end_psp_usp_usd_uet32 123 +--rw end.x_uet32 124 | +--rw protected? boolean 125 | +--rw paths 126 | +--rw path* [path-index] 127 | +--rw path-index uint8 128 | +--rw interface? if:interface-ref 129 | +--rw next-hop? inet:ipv6-address 130 | +--rw table? srv6-types:table-id 131 | +--rw weight? uint32 132 | +--rw role? enumeration 133 | +--rw backup-path-index? uint8 134 | +--rw sid-list 135 | +--rw out-sid* [sid] 136 | +--rw sid srv6-types:srv6-sid 137 +--rw end.x_psp_uet32 138 | +--rw protected? boolean 139 | +--rw paths 140 | +--rw path* [path-index] 141 | +--rw path-index uint8 142 | +--rw interface? if:interface-ref 143 | +--rw next-hop? inet:ipv6-address 144 | +--rw table? srv6-types:table-id 145 | +--rw weight? uint32 146 | +--rw role? enumeration 147 | +--rw backup-path-index? uint8 148 | +--rw sid-list 149 | +--rw out-sid* [sid] 150 | +--rw sid srv6-types:srv6-sid 151 +--rw end.x_usp_uet32 152 | +--rw protected? boolean 153 | +--rw paths 154 | +--rw path* [path-index] 155 | +--rw path-index uint8 156 | +--rw interface? if:interface-ref 157 | +--rw next-hop? inet:ipv6-address 158 | +--rw table? srv6-types:table-id 159 | +--rw weight? uint32 160 | +--rw role? enumeration 161 | +--rw backup-path-index? uint8 162 | +--rw sid-list 163 | +--rw out-sid* [sid] 164 | +--rw sid srv6-types:srv6-sid 165 +--rw end.x_usd_uet32 | +--rw protected? boolean 166 | +--rw paths 167 | +--rw path* [path-index] 168 | +--rw path-index uint8 169 | +--rw interface? if:interface-ref 170 | +--rw next-hop? inet:ipv6-address 171 | +--rw table? srv6-types:table-id 172 | +--rw weight? uint32 173 | +--rw role? enumeration 174 | +--rw backup-path-index? uint8 175 | +--rw sid-list 176 | +--rw out-sid* [sid] 177 | +--rw sid srv6-types:srv6-sid 178 +--rw end.x_psp_usp_uet32 179 | +--rw protected? boolean 180 | +--rw paths 181 | +--rw path* [path-index] 182 | +--rw path-index uint8 183 | +--rw interface? if:interface-ref 184 | +--rw next-hop? inet:ipv6-address 185 | +--rw table? srv6-types:table-id 187 | +--rw weight? uint32 188 | +--rw role? enumeration 189 | +--rw backup-path-index? uint8 190 | +--rw sid-list 191 | +--rw out-sid* [sid] 192 | +--rw sid srv6-types:srv6-sid 193 +--rw end.x_psp_usd_uet32 194 | +--rw protected? boolean 195 | +--rw paths 196 | +--rw path* [path-index] 197 | +--rw path-index uint8 198 | +--rw interface? if:interface-ref 199 | +--rw next-hop? inet:ipv6-address 200 | +--rw table? srv6-types:table-id 201 | +--rw weight? uint32 202 | +--rw role? enumeration 203 | +--rw backup-path-index? uint8 204 | +--rw sid-list 205 | +--rw out-sid* [sid] 206 | +--rw sid srv6-types:srv6-sid 207 +--rw end.x_usp_usd_uet32 208 | +--rw protected? boolean 209 | +--rw paths 210 | +--rw path* [path-index] 211 | +--rw path-index uint8 212 | +--rw interface? if:interface-ref 213 | +--rw next-hop? inet:ipv6-address 214 | +--rw table? srv6-types:table-id 215 | +--rw weight? uint32 216 | +--rw role? enumeration 217 | +--rw backup-path-index? uint8 218 | +--rw sid-list 219 | +--rw out-sid* [sid] 220 | +--rw sid srv6-types:srv6-sid 221 +--rw end-x_psp_usp_usd_uet32 222 | +--rw protected? boolean 223 | +--rw paths 224 | +--rw path* [path-index] 225 | +--rw path-index uint8 226 | +--rw interface? if:interface-ref 227 | +--rw next-hop? inet:ipv6-address 228 | +--rw table? srv6-types:table-id 229 | +--rw weight? uint32 230 | +--rw role? enumeration 231 | +--rw backup-path-index? uint8 232 | +--rw sid-list 233 | +--rw out-sid* [sid] 234 | +--rw sid srv6-types:srv6-sid 235 +--rw end.t_uet32 236 | +--rw lookup-table-ipv6 srv6-types:table-id 237 +--rw end.t_psp_uet32 238 | +--rw lookup-table-ipv6 srv6-types:table-id 239 +--rw end.t_psp_usp_uet32 240 | +--rw lookup-table-ipv6 srv6-types:table-id 241 +--rw end.t_usd_uet32 242 | +--rw lookup-table-ipv6 srv6-types:table-id 243 +--rw end.t_psp_usd_uet32 244 | +--rw lookup-table-ipv6 srv6-types:table-id 245 +--rw end.t_usp_usd_uet32 246 | +--rw lookup-table-ipv6 srv6-types:table-id 247 +--rw end-t_psp_usp_usd_uet32 248 +--rw lookup-table-ipv6 srv6-types:table-id 250 4. YANG Module 252 4.1. Shorter SRv6 type 254 The Shorter-SRv6-Types augment "ietf-srv6-types" 255 [I-D.raza-spring-srv6-yang], and defines new srv6-endpoint-type. 257 file "ietf-shorter-srv6-type@2020-03-30.yang" 259 module ietf-shorter-srv6-types { 260 yang-version 1.1; 262 namespace "urn:ietf:params:xml:ns:yang:ietf-shorter-srv6-types"; 263 prefix "shorter-srv6-types"; 265 import ietf-inet-types { 266 prefix "inet"; 267 reference "RFC6991: Common YANG Data Types"; 268 } 269 import ietf-srv6-types { 270 prefix srv6-types; 271 reference "RFC XXXX: YANG Data Model for SRv6"; 272 } 274 organization 275 "IETF SPRING - SPRING Working Group"; 276 contact 277 "WG Web: 278 WG List: 279 Editor: Ran Chen 280 281 Editor: Detao Zhao 282 283 "; 284 description 285 "The YANG module defines a generic configuration model for SFF. 286 Copyright (c) 2019 IETF Trust and the persons 287 identified as authors of the code. All rights reserved. 289 Redistribution and use in source and binary forms, with or 290 without modification, is permitted pursuant to, and subject 291 to the license terms contained in, the Simplified BSD License 292 set forth in Section 4.c of the IETF Trust's Legal Provisions 293 Relating to IETF Documents 294 (https://trustee.ietf.org/license-info). 295 This version of this YANG module is part of RFC XXXX; see 296 the RFC itself for full legal notices."; 298 revision "2020-03-30"{ 299 description "Initial revision."; 300 reference "RFC XXXX: YANG Data Model for Shorter SRv6 type."; 301 } 303 /* Identities */ 304 identity srv6-endpoint-type { 305 description 306 "Base identity from which specific SRv6 Endpoint types are 307 derived."; 308 } 309 identity End_UET32 { 310 base srv6-endpoint-type; 311 description 312 "End function (variant: UET32 only)."; 313 } 315 identity End_PSP_UET32{ 316 base srv6-endpoint-type; 317 description 318 "End function (variant:PSP and UET32)."; 319 } 321 identity End_USP_UET32{ 322 base srv6-endpoint-type; 323 description 324 "End function (variant:USP and UET32)."; 325 } 326 identity End_PSP_USP_UET32{ 327 base srv6-endpoint-type; 328 description 329 "End function (variant:PSP, USP, and UET32)."; 330 } 331 identity USD_UET32{ 332 base srv6-endpoint-type; 333 description 334 "End function (variant: USD, and UET32)."; 335 } 336 identity End_PSP_USD_UET32{ 337 base srv6-endpoint-type; 338 description 339 "End function (variant:PSP, USD, and UET32)."; 340 } 341 identity End_USP_USD_UET32{ 342 base srv6-endpoint-type; 343 description 344 "End function (variant:USP, USD, and UET32)."; 345 } 346 identity End_PSP_USP_USD_UET32{ 347 base srv6-endpoint-type; 348 description 349 "End function (variant:PSP, USP, USD, and UET32)."; 350 } 352 identity End.X_UET32 { 353 base srv6-endpoint-type; 354 description 355 "Endpoint with cross-connect to an array 356 of layer-3 adjacencies (variant: UET32)."; 357 } 358 identity End.X_PSP_UET32 { 359 base srv6-endpoint-type; 360 description 361 "Endpoint with cross-connect to an array 362 of layer-3 adjacencies (variant:PSP and UET32)."; 363 } 364 identity End.X_USP_UET32 { 365 base srv6-endpoint-type; 366 description 367 "Endpoint with cross-connect to an array 368 of layer-3 adjacencies (variant: USP and UET32)."; 369 } 370 identity End.X_PSP_USP_UET32 { 371 base srv6-endpoint-type; 372 description 373 "Endpoint with cross-connect to an array 374 of layer-3 adjacencies (variant:PSP , USP and UET32)."; 375 } 376 identity End.X_USD_UET32 { 377 base srv6-endpoint-type; 378 description 379 "Endpoint with cross-connect to an array 380 of layer-3 adjacencies (variant:USD and UET32)."; 381 } 382 identity End.X_PSP_USD_UET32 { 383 base srv6-endpoint-type; 384 description 385 "Endpoint with cross-connect to an array 386 of layer-3 adjacencies (variant:PSP, USD and UET32)."; 387 } 388 identity End.X_USP_USD_UET32 { 389 base srv6-endpoint-type; 390 description 391 "Endpoint with cross-connect to an array 392 of layer-3 adjacencies (variant:USP, USD and UET32)."; 393 } 394 identity End.X_PSP_USP_USD_UET32 { 395 base srv6-endpoint-type; 396 description 397 "Endpoint with cross-connect to an array 398 of layer-3 adjacencies (variant:PSP, USP, USD and UET32)."; 399 } 400 identity End.T_UET32 { 401 base srv6-endpoin-type; 402 description 403 "Endpoint with specific IPv6 table lookup 404 (variant: UET32)."; 405 } 406 identity End.T_PSP_UET32 { 407 base srv6-endpoin-type; 408 description 409 "Endpoint with specific IPv6 table lookup 410 (variant: PSP and UET32)."; 411 } 412 identity End.T_USP_UET32 { 413 base srv6-endpoin-type; 414 description 415 "Endpoint with specific IPv6 table lookup 416 (variant: USP and UET32)."; 417 } 418 identity End.T_PSP_UET_UET32 { 419 base srv6-endpoin-type; 420 description 421 "Endpoint with specific IPv6 table lookup 422 (variant: PSP ,UET and UET32)."; 423 } 424 identity End.T_USD_UET32 { 425 base srv6-endpoint-type; 426 description 427 "Endpoint with specific IPv6 table lookup (variant:USD and UET32)."; 428 } 429 identity End.T_PSP_USD_UET32 { 430 base srv6-endpoint-type; 431 description 432 "Endpoint with specific IPv6 table lookup (variant:PSP, USD and UET32)."; 433 } 434 identity End.T_USP_USD_UET32 { 435 base srv6-endpoint-type; 436 description 437 "Endpoint with specific IPv6 table lookup (variant:USP, USD and UET32)."; 438 } 439 identity End.T_PSP_USP_USD_UET32 { 440 base srv6-endpoint-type; 441 description 442 "Endpoint with specific IPv6 table lookup(variant:PSP, USP, USD and UET32)."; 443 } 445 typedef uec-support-type { 446 type enumeration { 447 enum 128bit SID { value 1; description "The node only support to use classical 128-bits SRv6 SID."; } 448 enum 128-bits SRv6 SID and 32-bits IP U-SID { description "The node support to use both classical 128-bits SRv6 SID and 32-bits IP U-SID"; } 449 enum 128-bits SRv6 SID and 16-bits U-SID { description "The node support to use both classical 128-bits SRv6 SID and 16-bits U-SID"; } 450 enum 128-bits SRv6 SID, 32-bits IP U-SID, and 16-bits U-SID { description "The node support to use both classical 128-bits SRv6 SID, 32-bits IP U-SID, and 16-bits U-SID"; } 451 } 452 description 453 "The node capabilities."; 454 } 456 typedef srv6-lb-length { 457 type uint8 { 458 range "8 .. 88"; 459 } 460 description 461 "This type defines an SRv6 locator block len with range constraints"; 462 } 463 465 4.2. Shorter SRv6 Base 467 file "ietf-shorter-srv6-base@2020-03-30.yang" 469 module ietf-shorter-srv6-base { 470 yang-version 1.1; 471 namespace "urn:ietf:params:xml:ns:yang:ietf-shorter-srv6-base"; 472 prefix shorter-srv6; 474 import ietf-srv6-base { 475 prefix "srv6"; 476 reference "RFC 8343: A YANG Data Model for SRv6 base."; 477 } 479 import ietf-srv6-types { 480 prefix srv6-types; 481 reference "RFC XXXX: YANG Data Model for SRv6 type"; 482 } 483 import ietf-shhorter-srv6-types { 484 prefix shourter-srv6-types; 485 reference "RFC XXXX: YANG Data Model for shorter SRv6 type"; 486 } 487 import ietf-routing { 488 prefix "rt"; 489 reference 490 "RFC 8349: A YANG Data Model for Routing Management 491 (NMDA version)"; 492 } 493 organization 494 "IETF SPRING - SPRING Working Group"; 495 contact 496 "WG Web: 497 WG List: 498 Editor: Ran Chen 499 500 Editor: Detao Zhao 501 502 "; 503 description 504 "The YANG module defines a generic configuration model for SFF. 505 Copyright (c) 2019 IETF Trust and the persons 506 identified as authors of the code. All rights reserved. 508 Redistribution and use in source and binary forms, with or 509 without modification, is permitted pursuant to, and subject 510 to the license terms contained in, the Simplified BSD License 511 set forth in Section 4.c of the IETF Trust's Legal Provisions 512 Relating to IETF Documents 513 (https://trustee.ietf.org/license-info). 514 This version of this YANG module is part of RFC XXXX; see 515 the RFC itself for full legal notices."; 517 revision "2020-03-30"{ 518 description "Initial revision."; 519 reference "RFC XXXX: YANG Data Model for Shorter SRv6 ."; 520 } 521 augment "/rt:routing/rt:srv6" { 522 description 523 "This augments SRv6 base data model with Shorter SRv6."; 524 grouping shorter-srv6{ 525 description 526 "SRv6 node capabilities grouping"; 527 container node-capabilities { 528 description "SRv6 node capabilities." 529 leaf uec-support-type{ 530 type shorter-srv6-types:uec-support-type; 531 description "The node capabilities for UET." 532 } 533 } 534 } 535 } 536 augment "/rt:routing/rt:srv6/rt:locators/rt:locator/rt:prefix" { 537 description 538 "This augments SRv6 base data model with Shorter SRv6."; 539 leaf srv6-lb-length{ 540 type shorter-srv6-types:srv6-lb-len; 541 description "SRv6 locator block len with range constraints"; 542 } 543 } 544 } 545 547 4.3. Shorter SRv6 Static 549 file "ietf-shorter-srv6-type@2020-03-30.yang" 550 module ietf-shorter-srv6-base { 551 yang-version 1.1; 552 namespace "urn:ietf:params:xml:ns:yang:ietf-shorter-srv6-base"; 553 prefix shorter-srv6; 555 import ietf-srv6-base { 556 prefix "srv6"; 557 reference "RFC 8343: A YANG Data Model for SRv6 base."; 558 } 560 import ietf-srv6-types { 561 prefix srv6-types; 562 reference "RFC XXXX: YANG Data Model for SRv6"; 563 } 564 import ietf-routing { 565 prefix "rt"; 566 reference 567 "RFC 8349: A YANG Data Model for Routing Management 568 (NMDA version)"; 569 } 570 import ietf-srv6-static { 572 prefix srv6-static ; 573 reference "RFC XXXX: YANG Data Model for SRv6 static application."; 574 } 575 import ietf-shhorter-srv6-types { 576 prefix shourter-srv6-types; 577 reference "RFC XXXX: YANG Data Model for shorter SRv6 type"; 578 } 579 organization 580 "IETF SPRING - SPRING Working Group"; 581 contact 582 "WG Web: 583 WG List: 584 Editor: Ran Chen 585 586 Editor: Detao Zhao 587 588 "; 589 description 590 "The YANG module defines a generic configuration model for SFF. 591 Copyright (c) 2019 IETF Trust and the persons 592 identified as authors of the code. All rights reserved. 594 Redistribution and use in source and binary forms, with or 595 without modification, is permitted pursuant to, and subject 596 to the license terms contained in, the Simplified BSD License 597 set forth in Section 4.c of the IETF Trust's Legal Provisions 598 Relating to IETF Documents 599 (https://trustee.ietf.org/license-info). 600 This version of this YANG module is part of RFC XXXX; see 601 the RFC itself for full legal notices."; 603 revision "2020-03-30"{ 604 description "Initial revision."; 605 reference "RFC XXXX: YANG Data Model for Shorter SRv6 ."; 606 } 608 grouping shorter-srv6-sid-config { 609 description 610 "Configuration parameters relating to Shorter SRv6 sid."; 612 leaf function { 613 type srv6-types:srv6-func-value; 614 description 615 "SRv6 function value."; 616 } 617 leaf end-behavior-type { 618 type identityref { 619 base shorter-srv6-types:srv6-endpoint-type; 620 } 621 mandatory true; 622 description 623 "Type of SRv6 end behavior."; 624 } 626 container end_uet32 { 627 when "../end-behavior-type = 'End_UET32'" { 628 description 629 "This container is valid only when the user chooses End 630 behavior (variant: UET32)."; 631 } 632 description 633 "The Endpoint function is the most basic function. 634 FIB lookup on updated DA and forward accordingly 635 to the matched entry. 636 This is the SRv6 instantiation of a Prefix SID 637 (variant: UET32)"; 638 } 640 container end_psp_uet32 { 641 when "../end-behavior-type = 'End_PSP_UET32'" { 642 description 643 "This container is valid only when the user chooses End 644 behavior (variant: PSP and UET32)."; 645 } 646 description 647 "The Endpoint function is the most basic function. 648 FIB lookup on updated DA and forward accordingly 649 to the matched entry. 650 This is the SRv6 instantiation of a Prefix SID 651 (variant: PSP and UET32)"; 653 } 654 container end_usp_uet32 { 655 when "../end-behavior-type = 'End_USP_UET32'" { 656 description 657 "This container is valid only when the user chooses End 658 behavior (variant: USP and UET32)."; 659 } 660 description 661 " This is the SRv6 instantiation of a Prefix SID 662 (variant: USP and UET32)"; 664 container end_psp_usp_uet32 { 665 when "../end-behavior-type = 'End_PSP_USP_UET32'" { 666 description 667 "This container is valid only when the user chooses End 668 behavior (variant: PSP/USP/UET32)."; 669 } 670 description 671 " This is the SRv6 instantiation of a Prefix SID 672 (variant: PSP/USP/UET32)"; 673 } 674 } 675 container end_usd_uet32 { 676 when "../end-behavior-type = 'End_USD_UET32'" { 677 description 678 "This container is valid only when the user chooses End 679 behavior (variant: USD/UET32)."; 680 } 681 description 682 "This is the SRv6 instantiation of a Prefix SID 683 (variant: USD/UET32)"; 684 } 686 container end_psp_usd_uet32 { 687 when "../end-behavior-type = 'End_PSP_USD_UET32'" { 688 description 689 "This container is valid only when the user chooses End 690 behavior (variant: PSP/USD/UET32)."; 691 } 692 description 693 "This is the SRv6 instantiation of a Prefix SID 694 (variant: PSP/USD/UET32)"; 695 } 696 container end_psp_usp_usd_uet32 { 697 when "../end-behavior-type = 'End_PSP_USP_IUSD_UET32'" { 698 description 699 "This container is valid only when the user chooses End 700 behavior (variant: PSP/USP/USD/UET32)."; 701 } 702 description 703 "This is the SRv6 instantiation of a Prefix SID 704 (variant: PSP/USP/USD/UET32)"; 705 } 707 container end-t_psp_uet32 { 708 when "../end-behavior-type = 'End.T_PSP_UET32'" { 709 description 710 "This container is valid only when the user chooses 711 End.T behavior (variant: PSP/UET32)."; 712 } 713 description 714 "Endpoint with specific IPv6 table lookup (variant: PSP/UET32)."; 715 leaf lookup-table-ipv6 { 716 type srv6-types:table-id; 717 mandatory true; 718 description 719 "Table Id for lookup on updated DA (next segment)"; 720 } 721 } 723 container end-t_uet32 { 724 when "../end-behavior-type = 'End.T_UET32'" { 725 description 726 "This container is valid only when the user chooses 727 End.T behavior (variant: UET32)."; 728 } 729 description 730 "Endpoint with specific IPv6 table lookup (variant: UET32)."; 731 leaf lookup-table-ipv6 { 732 type srv6-types:table-id; 733 mandatory true; 734 description 735 "Table Id for lookup on updated DA (next segment)"; 736 } 737 } 739 container end-t_usp_uet32 { 740 when "../end-behavior-type = 'End.T_USP_UET32'" { 741 description 742 "This container is valid only when the user chooses 743 End.T behavior (variant: USP/UET32)."; 744 } 745 description 746 "Endpoint with specific IPv6 table lookup (variant: USP/UET32)."; 747 leaf lookup-table-ipv6 { 748 type srv6-types:table-id; 749 mandatory true; 750 description 751 "Table Id for lookup on updated DA (next segment)"; 752 } 753 } 755 container end-t_psp_usp_uet32 { 756 when "../end-behavior-type = 'End.T_PSP_USP_UET32'" { 757 description 758 "This container is valid only when the user chooses 759 End.T behavior (variant: PSP/USP/UET32)."; 760 } 761 description 762 "Endpoint with specific IPv6 table lookup (variant: PSP/USP/UET32)."; 763 leaf lookup-table-ipv6 { 764 type srv6-types:table-id; 765 mandatory true; 766 description 767 "Table Id for lookup on updated DA (next segment)"; 768 } 769 } 771 container end-t_usd_uet32 { 772 when "../end-behavior-type = 'End.T_USD_UET32'" { 773 description 774 "This container is valid only when the user chooses 775 End.T behavior (variant: USD/UET32)."; 776 } 777 description 778 "Endpoint with specific IPv6 table lookup (variant: USD/UET32)."; 779 leaf lookup-table-ipv6 { 780 type srv6-types:table-id; 781 mandatory true; 782 description 783 "Table Id for lookup on updated DA (next segment)"; 784 } 785 } 787 container end-t_psp_usd_uet32 { 788 when "../end-behavior-type = 'End.T_PSP_USD_UET32'" { 789 description 790 "This container is valid only when the user chooses 791 End.T behavior (variant: PSP/USD/UET32)."; 792 } 793 description 794 "Endpoint with specific IPv6 table lookup (variant: PSP/USD/UET32)."; 795 leaf lookup-table-ipv6 { 796 type srv6-types:table-id; 797 mandatory true; 798 description 799 "Table Id for lookup on updated DA (next segment)"; 800 } 801 } 803 container end-t_usp_usd_uet32 { 804 when "../end-behavior-type = 'End.T_USP_USD_UET32'" { 805 description 806 "This container is valid only when the user chooses 807 End.T behavior (variant: USP/USD/UET32)."; 808 } 809 description 810 "Endpoint with specific IPv6 table lookup (variant: USP/USD/UET32)."; 811 leaf lookup-table-ipv6 { 812 type srv6-types:table-id; 813 mandatory true; 814 description 815 "Table Id for lookup on updated DA (next segment)"; 816 } 817 } 819 container end-t_psp_usp_usd_uet32 { 820 when "../end-behavior-type = 'End.T_PSP_USP_USD_UET32'" { 821 description 822 "This container is valid only when the user chooses 823 End.T behavior (variant: PSP/USP/USD/UET32)."; 824 } 825 description 826 "Endpoint with specific IPv6 table lookup (variant: PSP/USP/USD/UET32)"; 827 leaf lookup-table-ipv6 { 828 type srv6-types:table-id; 829 mandatory true; 830 description 831 "Table Id for lookup on updated DA (next segment)"; 832 } 833 } 835 container end-x_uet32 { 836 when "../end-behavior-type = 'End.X_UET32'" { 837 description 838 "This container is valid only when the user chooses 839 End.X behavior (variant: UET32)"; 840 } 841 description 842 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: UET32)."; 843 leaf protected { 844 type boolean; 845 default false; 846 description "Is Adj-SID protected?"; 847 } 848 uses srv6-static:multi-paths-v6; 849 } 851 container end-x_psp_uet32 { 852 when "../end-behavior-type = 'End.X_PSP_UET32'" { 853 description 854 "This container is valid only when the user chooses 855 End.X behavior (variant: PSP/UET32)"; 856 } 857 description 858 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/UET32)."; 860 leaf protected { 861 type boolean; 862 default false; 863 description "Is Adj-SID protected?"; 864 } 866 uses srv6-static:multi-paths-v6; 867 } 869 container end-x_usp_uet32 { 870 when "../end-behavior-type = 'End.X_USP_UET32'" { 871 description 872 "This container is valid only when the user chooses 873 End.X behavior (variant: USP/UET32)"; 874 } 875 description 876 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: USP/UET32)."; 878 leaf protected { 879 type boolean; 880 default false; 881 description "Is Adj-SID protected?"; 882 } 884 uses srv6-static:multi-paths-v6; 885 } 887 container end-x_psp_usp_uet32 { 888 when "../end-behavior-type = 'End.X_PSP_USP_UET32'" { 889 description 890 "This container is valid only when the user chooses 891 End.X behavior (variant: PSP/USP/UET32)"; 892 } 893 description 894 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/USP/UET32)."; 896 leaf protected { 897 type boolean; 898 default false; 899 description "Is Adj-SID protected?"; 900 } 902 uses srv6-static:multi-paths-v6; 903 } 905 container end-x_usd_uet32 { 906 when "../end-behavior-type = 'End.X_USD_UET32'" { 907 description 908 "This container is valid only when the user chooses 909 End.X behavior (variant: USD/UET32)"; 910 } 911 description 912 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: USD/UET32)."; 914 leaf protected { 915 type boolean; 916 default false; 917 description "Is Adj-SID protected?"; 918 } 919 uses srv6-static:multi-paths-v6; 920 } 921 container end-x_psp_usd_uet32 { 922 when "../end-behavior-type = 'End.X_PSP_USD_UET32'" { 923 description 924 "This container is valid only when the user chooses 925 End.X behavior (variant: PSP/USD/UET32)"; 926 } 927 description 928 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/USD/UET32)."; 930 leaf protected { 931 type boolean; 932 default false; 933 description "Is Adj-SID protected?"; 934 } 936 uses srv6-static:multi-paths-v6; 937 } 938 container end-x_usp_usd_uet32 { 939 when "../end-behavior-type = 'End.X_USP_USD_UET32'" { 940 description 941 "This container is valid only when the user chooses 942 End.X behavior (variant: USP/USD/UET32)"; 943 } 944 description 945 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: USP/USD/UET32)."; 947 leaf protected { 948 type boolean; 949 default false; 950 description "Is Adj-SID protected?"; 951 } 953 uses srv6-static:multi-paths-v6; 954 } 955 container end-x_psp_usp_usd_uet32 { 956 when "../end-behavior-type = 'End.X_PSP_USP_USD_UET32'" { 957 description 958 "This container is valid only when the user chooses 959 End.X behavior (variant: PSP/USP/USD/UET32)"; 960 } 961 description 962 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/USP/USD/UET32)."; 964 leaf protected { 965 type boolean; 966 default false; 967 description "Is Adj-SID protected?"; 968 } 970 uses srv6-static:multi-paths-v6; 971 } 972 } 974 grouping shorter-srv6-static-cfg { 975 description 976 "Grouping configuration and operation for Shorter SRv6 sid."; 977 list sid { 978 key "function"; 979 description "List of locally instantiated SIDs"; 980 uses shorter-srv6-sid-config; 981 } 982 } 983 augment"/rt:routing/srv6:srv6/srv6:locators/srv6:locator:/srv6:static/srv6:local-sids/srv6:sid"{ 984 description 985 "This augments SRv6 static data model with Shorter static SRv6."; 986 leaf end-behavior-type { 987 type identityref { 988 base shorter-srv6-types:srv6-endpoint-type; 989 } 990 mandatory true; 991 description 992 "Type of SRv6 end behavior."; 993 } 994 uses shorter-srv6-static-cfg; 995 } 996 } 997 999 5. Security Considerations 1001 TBD. 1003 6. IANA Considerations 1005 TBD. 1007 7. Normative References 1009 [I-D.ietf-6man-segment-routing-header] 1010 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 1011 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 1012 (SRH)", draft-ietf-6man-segment-routing-header-26 (work in 1013 progress), October 2019. 1015 [I-D.ietf-spring-srv6-network-programming] 1016 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 1017 Matsushima, S., and Z. Li, "SRv6 Network Programming", 1018 draft-ietf-spring-srv6-network-programming-15 (work in 1019 progress), March 2020. 1021 [I-D.mirsky-6man-unified-id-sr] 1022 Cheng, W., Mirsky, G., Peng, S., Aihua, L., Wan, X., and 1023 C. Wei, "Unified Identifier in IPv6 Segment Routing 1024 Networks", draft-mirsky-6man-unified-id-sr-06 (work in 1025 progress), March 2020. 1027 [I-D.raza-spring-srv6-yang] 1028 Raza, K., Agarwal, S., Liu, X., Hu, Z., Hussain, I., Shah, 1029 H., Voyer, D., Elmalky, H., Matsushima, S., Horiba, K., 1030 Abdelsalam, A., and J. Rajamanickam, "YANG Data Model for 1031 SRv6 Base and Static", draft-raza-spring-srv6-yang-05 1032 (work in progress), October 2019. 1034 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1035 the Network Configuration Protocol (NETCONF)", RFC 6020, 1036 DOI 10.17487/RFC6020, October 2010, 1037 . 1039 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1040 and A. Bierman, Ed., "Network Configuration Protocol 1041 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1042 . 1044 Authors' Addresses 1046 Ran Chen 1047 ZTE Corporation 1048 No. 50 Software Ave, Yuhuatai Distinct 1049 Nanjing, P.R.China 1050 China 1052 Email: chen.ran@zte.com.cn 1054 Detao zhao 1055 ZTE Corporation 1056 No. 50 Software Ave, Yuhuatai Distinct 1057 Nanjing, P.R.China 1058 China 1060 Email: zhao.detao@zte.com.cn