idnits 2.17.1 draft-chen-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 191 has weird spacing: '...-rw sid srv...' == (3 more instances...) -- The document date (March 31, 2020) is 1481 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 1008, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-spring-srv6-network-programming' is defined on line 1014, but no explicit reference was found in the text == Unused Reference: 'RFC6020' is defined on line 1033, but no explicit reference was found in the text == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-15 == Outdated reference: A later version (-10) exists of draft-mirsky-6man-unified-id-sr-06 == Outdated reference: A later version (-06) exists of draft-raza-spring-srv6-yang-05 Summary: 1 error (**), 0 flaws (~~), 13 warnings (==), 2 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 2, 2020 March 31, 2020 7 YANG data model for shorter srv6 8 draft-chen-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 2, 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 186 | +--rw weight? uint32 187 | +--rw role? enumeration 188 | +--rw backup-path-index? uint8 189 | +--rw sid-list 190 | +--rw out-sid* [sid] 191 | +--rw sid srv6-types:srv6-sid 192 +--rw end.x_psp_usd_uet32 193 | +--rw protected? boolean 194 | +--rw paths 195 | +--rw path* [path-index] 196 | +--rw path-index uint8 197 | +--rw interface? if:interface-ref 198 | +--rw next-hop? inet:ipv6-address 199 | +--rw table? srv6-types:table-id 200 | +--rw weight? uint32 201 | +--rw role? enumeration 202 | +--rw backup-path-index? uint8 203 | +--rw sid-list 204 | +--rw out-sid* [sid] 205 | +--rw sid srv6-types:srv6-sid 206 +--rw end.x_usp_usd_uet32 207 | +--rw protected? boolean 208 | +--rw paths 209 | +--rw path* [path-index] 210 | +--rw path-index uint8 211 | +--rw interface? if:interface-ref 212 | +--rw next-hop? inet:ipv6-address 213 | +--rw table? srv6-types:table-id 214 | +--rw weight? uint32 215 | +--rw role? enumeration 216 | +--rw backup-path-index? uint8 217 | +--rw sid-list 218 | +--rw out-sid* [sid] 219 | +--rw sid srv6-types:srv6-sid 220 +--rw end-x_psp_usp_usd_uet32 221 | +--rw protected? boolean 222 | +--rw paths 223 | +--rw path* [path-index] 224 | +--rw path-index uint8 225 | +--rw interface? if:interface-ref 226 | +--rw next-hop? inet:ipv6-address 227 | +--rw table? srv6-types:table-id 228 | +--rw weight? uint32 229 | +--rw role? enumeration 230 | +--rw backup-path-index? uint8 231 | +--rw sid-list 232 | +--rw out-sid* [sid] 233 | +--rw sid srv6-types:srv6-sid 234 +--rw end.t_uet32 235 | +--rw lookup-table-ipv6 srv6-types:table-id 236 +--rw end.t_psp_uet32 237 | +--rw lookup-table-ipv6 srv6-types:table-id 238 +--rw end.t_psp_usp_uet32 239 | +--rw lookup-table-ipv6 srv6-types:table-id 240 +--rw end.t_usd_uet32 241 | +--rw lookup-table-ipv6 srv6-types:table-id 242 +--rw end.t_psp_usd_uet32 243 | +--rw lookup-table-ipv6 srv6-types:table-id 244 +--rw end.t_usp_usd_uet32 245 | +--rw lookup-table-ipv6 srv6-types:table-id 246 +--rw end-t_psp_usp_usd_uet32 247 +--rw lookup-table-ipv6 srv6-types:table-id 249 4. YANG Module 251 4.1. Shorter SRv6 type 253 The Shorter-SRv6-Types augment "ietf-srv6-types" 254 [I-D.raza-spring-srv6-yang], and defines new srv6-endpoint-type. 256 file "ietf-shorter-srv6-type@2020-03-30.yang" 258 module ietf-shorter-srv6-types { 259 yang-version 1.1; 261 namespace "urn:ietf:params:xml:ns:yang:ietf-shorter-srv6-types"; 262 prefix "shorter-srv6-types"; 264 import ietf-inet-types { 265 prefix "inet"; 266 reference "RFC6991: Common YANG Data Types"; 267 } 268 import ietf-srv6-types { 269 prefix srv6-types; 270 reference "RFC XXXX: YANG Data Model for SRv6"; 271 } 273 organization 274 "IETF SPRING - SPRING Working Group"; 275 contact 276 "WG Web: 277 WG List: 278 Editor: Ran Chen 279 280 Editor: Detao Zhao 281 282 "; 283 description 284 "The YANG module defines a generic configuration model for SFF. 285 Copyright (c) 2019 IETF Trust and the persons 286 identified as authors of the code. All rights reserved. 288 Redistribution and use in source and binary forms, with or 289 without modification, is permitted pursuant to, and subject 290 to the license terms contained in, the Simplified BSD License 291 set forth in Section 4.c of the IETF Trust's Legal Provisions 292 Relating to IETF Documents 293 (https://trustee.ietf.org/license-info). 294 This version of this YANG module is part of RFC XXXX; see 295 the RFC itself for full legal notices."; 297 revision "2020-03-30"{ 298 description "Initial revision."; 299 reference "RFC XXXX: YANG Data Model for Shorter SRv6 type."; 300 } 302 /* Identities */ 303 identity srv6-endpoint-type { 304 description 305 "Base identity from which specific SRv6 Endpoint types are 306 derived."; 307 } 308 identity End_UET32 { 309 base srv6-endpoint-type; 310 description 311 "End function (variant: UET32 only)."; 312 } 314 identity End_PSP_UET32{ 315 base srv6-endpoint-type; 316 description 317 "End function (variant:PSP and UET32)."; 318 } 320 identity End_USP_UET32{ 321 base srv6-endpoint-type; 322 description 323 "End function (variant:USP and UET32)."; 324 } 325 identity End_PSP_USP_UET32{ 326 base srv6-endpoint-type; 327 description 328 "End function (variant:PSP, USP, and UET32)."; 329 } 330 identity USD_UET32{ 331 base srv6-endpoint-type; 332 description 333 "End function (variant: USD, and UET32)."; 334 } 335 identity End_PSP_USD_UET32{ 336 base srv6-endpoint-type; 337 description 338 "End function (variant:PSP, USD, and UET32)."; 339 } 340 identity End_USP_USD_UET32{ 341 base srv6-endpoint-type; 342 description 343 "End function (variant:USP, USD, and UET32)."; 344 } 345 identity End_PSP_USP_USD_UET32{ 346 base srv6-endpoint-type; 347 description 348 "End function (variant:PSP, USP, USD, and UET32)."; 349 } 351 identity End.X_UET32 { 352 base srv6-endpoint-type; 353 description 354 "Endpoint with cross-connect to an array 355 of layer-3 adjacencies (variant: UET32)."; 356 } 357 identity End.X_PSP_UET32 { 358 base srv6-endpoint-type; 359 description 360 "Endpoint with cross-connect to an array 361 of layer-3 adjacencies (variant:PSP and UET32)."; 362 } 363 identity End.X_USP_UET32 { 364 base srv6-endpoint-type; 365 description 366 "Endpoint with cross-connect to an array 367 of layer-3 adjacencies (variant: USP and UET32)."; 368 } 369 identity End.X_PSP_USP_UET32 { 370 base srv6-endpoint-type; 371 description 372 "Endpoint with cross-connect to an array 373 of layer-3 adjacencies (variant:PSP , USP and UET32)."; 374 } 375 identity End.X_USD_UET32 { 376 base srv6-endpoint-type; 377 description 378 "Endpoint with cross-connect to an array 379 of layer-3 adjacencies (variant:USD and UET32)."; 380 } 381 identity End.X_PSP_USD_UET32 { 382 base srv6-endpoint-type; 383 description 384 "Endpoint with cross-connect to an array 385 of layer-3 adjacencies (variant:PSP, USD and UET32)."; 386 } 387 identity End.X_USP_USD_UET32 { 388 base srv6-endpoint-type; 389 description 390 "Endpoint with cross-connect to an array 391 of layer-3 adjacencies (variant:USP, USD and UET32)."; 392 } 393 identity End.X_PSP_USP_USD_UET32 { 394 base srv6-endpoint-type; 395 description 396 "Endpoint with cross-connect to an array 397 of layer-3 adjacencies (variant:PSP, USP, USD and UET32)."; 398 } 399 identity End.T_UET32 { 400 base srv6-endpoin-type; 401 description 402 "Endpoint with specific IPv6 table lookup 403 (variant: UET32)."; 404 } 405 identity End.T_PSP_UET32 { 406 base srv6-endpoin-type; 407 description 408 "Endpoint with specific IPv6 table lookup 409 (variant: PSP and UET32)."; 410 } 411 identity End.T_USP_UET32 { 412 base srv6-endpoin-type; 413 description 414 "Endpoint with specific IPv6 table lookup 415 (variant: USP and UET32)."; 416 } 417 identity End.T_PSP_UET_UET32 { 418 base srv6-endpoin-type; 419 description 420 "Endpoint with specific IPv6 table lookup 421 (variant: PSP ,UET and UET32)."; 422 } 423 identity End.T_USD_UET32 { 424 base srv6-endpoint-type; 425 description 426 "Endpoint with specific IPv6 table lookup (variant:USD and UET32)."; 427 } 428 identity End.T_PSP_USD_UET32 { 429 base srv6-endpoint-type; 430 description 431 "Endpoint with specific IPv6 table lookup (variant:PSP, USD and UET32)."; 432 } 433 identity End.T_USP_USD_UET32 { 434 base srv6-endpoint-type; 435 description 436 "Endpoint with specific IPv6 table lookup (variant:USP, USD and UET32)."; 437 } 438 identity End.T_PSP_USP_USD_UET32 { 439 base srv6-endpoint-type; 440 description 441 "Endpoint with specific IPv6 table lookup(variant:PSP, USP, USD and UET32)."; 442 } 444 typedef uec-support-type { 445 type enumeration { 446 enum 128bit SID { value 1; description "The node only support to use classical 128-bits SRv6 SID."; } 447 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"; } 448 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"; } 449 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"; } 450 } 451 description 452 "The node capabilities."; 453 } 455 typedef srv6-lb-length { 456 type uint8 { 457 range "8 .. 88"; 458 } 459 description 460 "This type defines an SRv6 locator block len with range constraints"; 461 } 462 464 4.2. Shorter SRv6 Base 466 file "ietf-shorter-srv6-base@2020-03-30.yang" 468 module ietf-shorter-srv6-base { 469 yang-version 1.1; 470 namespace "urn:ietf:params:xml:ns:yang:ietf-shorter-srv6-base"; 471 prefix shorter-srv6; 473 import ietf-srv6-base { 474 prefix "srv6"; 475 reference "RFC 8343: A YANG Data Model for SRv6 base."; 476 } 478 import ietf-srv6-types { 479 prefix srv6-types; 480 reference "RFC XXXX: YANG Data Model for SRv6 type"; 481 } 482 import ietf-shhorter-srv6-types { 483 prefix shourter-srv6-types; 484 reference "RFC XXXX: YANG Data Model for shorter SRv6 type"; 485 } 486 import ietf-routing { 487 prefix "rt"; 488 reference 489 "RFC 8349: A YANG Data Model for Routing Management 490 (NMDA version)"; 491 } 492 organization 493 "IETF SPRING - SPRING Working Group"; 494 contact 495 "WG Web: 496 WG List: 497 Editor: Ran Chen 498 499 Editor: Detao Zhao 500 501 "; 502 description 503 "The YANG module defines a generic configuration model for SFF. 504 Copyright (c) 2019 IETF Trust and the persons 505 identified as authors of the code. All rights reserved. 507 Redistribution and use in source and binary forms, with or 508 without modification, is permitted pursuant to, and subject 509 to the license terms contained in, the Simplified BSD License 510 set forth in Section 4.c of the IETF Trust's Legal Provisions 511 Relating to IETF Documents 512 (https://trustee.ietf.org/license-info). 513 This version of this YANG module is part of RFC XXXX; see 514 the RFC itself for full legal notices."; 516 revision "2020-03-30"{ 517 description "Initial revision."; 518 reference "RFC XXXX: YANG Data Model for Shorter SRv6 ."; 519 } 520 augment "/rt:routing/rt:srv6" { 521 description 522 "This augments SRv6 base data model with Shorter SRv6."; 523 grouping shorter-srv6{ 524 description 525 "SRv6 node capabilities grouping"; 526 container node-capabilities { 527 description "SRv6 node capabilities." 528 leaf uec-support-type{ 529 type shorter-srv6-types:uec-support-type; 530 description "The node capabilities for UET." 531 } 532 } 533 } 534 } 535 augment "/rt:routing/rt:srv6/rt:locators/rt:locator/rt:prefix" { 536 description 537 "This augments SRv6 base data model with Shorter SRv6."; 538 leaf srv6-lb-length{ 539 type shorter-srv6-types:srv6-lb-len; 540 description "SRv6 locator block len with range constraints"; 541 } 542 } 543 } 544 546 4.3. Shorter SRv6 Static 548 file "ietf-shorter-srv6-type@2020-03-30.yang" 549 module ietf-shorter-srv6-base { 550 yang-version 1.1; 551 namespace "urn:ietf:params:xml:ns:yang:ietf-shorter-srv6-base"; 552 prefix shorter-srv6; 554 import ietf-srv6-base { 555 prefix "srv6"; 556 reference "RFC 8343: A YANG Data Model for SRv6 base."; 557 } 559 import ietf-srv6-types { 560 prefix srv6-types; 561 reference "RFC XXXX: YANG Data Model for SRv6"; 562 } 563 import ietf-routing { 564 prefix "rt"; 565 reference 566 "RFC 8349: A YANG Data Model for Routing Management 567 (NMDA version)"; 568 } 569 import ietf-srv6-static { 571 prefix srv6-static ; 572 reference "RFC XXXX: YANG Data Model for SRv6 static application."; 573 } 574 import ietf-shhorter-srv6-types { 575 prefix shourter-srv6-types; 576 reference "RFC XXXX: YANG Data Model for shorter SRv6 type"; 577 } 578 organization 579 "IETF SPRING - SPRING Working Group"; 580 contact 581 "WG Web: 582 WG List: 583 Editor: Ran Chen 584 585 Editor: Detao Zhao 586 587 "; 588 description 589 "The YANG module defines a generic configuration model for SFF. 590 Copyright (c) 2019 IETF Trust and the persons 591 identified as authors of the code. All rights reserved. 593 Redistribution and use in source and binary forms, with or 594 without modification, is permitted pursuant to, and subject 595 to the license terms contained in, the Simplified BSD License 596 set forth in Section 4.c of the IETF Trust's Legal Provisions 597 Relating to IETF Documents 598 (https://trustee.ietf.org/license-info). 599 This version of this YANG module is part of RFC XXXX; see 600 the RFC itself for full legal notices."; 602 revision "2020-03-30"{ 603 description "Initial revision."; 604 reference "RFC XXXX: YANG Data Model for Shorter SRv6 ."; 605 } 607 grouping shorter-srv6-sid-config { 608 description 609 "Configuration parameters relating to Shorter SRv6 sid."; 611 leaf function { 612 type srv6-types:srv6-func-value; 613 description 614 "SRv6 function value."; 615 } 616 leaf end-behavior-type { 617 type identityref { 618 base shorter-srv6-types:srv6-endpoint-type; 619 } 620 mandatory true; 621 description 622 "Type of SRv6 end behavior."; 623 } 625 container end_uet32 { 626 when "../end-behavior-type = 'End_UET32'" { 627 description 628 "This container is valid only when the user chooses End 629 behavior (variant: UET32)."; 630 } 631 description 632 "The Endpoint function is the most basic function. 633 FIB lookup on updated DA and forward accordingly 634 to the matched entry. 635 This is the SRv6 instantiation of a Prefix SID 636 (variant: UET32)"; 637 } 639 container end_psp_uet32 { 640 when "../end-behavior-type = 'End_PSP_UET32'" { 641 description 642 "This container is valid only when the user chooses End 643 behavior (variant: PSP and UET32)."; 644 } 645 description 646 "The Endpoint function is the most basic function. 647 FIB lookup on updated DA and forward accordingly 648 to the matched entry. 649 This is the SRv6 instantiation of a Prefix SID 650 (variant: PSP and UET32)"; 652 } 653 container end_usp_uet32 { 654 when "../end-behavior-type = 'End_USP_UET32'" { 655 description 656 "This container is valid only when the user chooses End 657 behavior (variant: USP and UET32)."; 658 } 659 description 660 " This is the SRv6 instantiation of a Prefix SID 661 (variant: USP and UET32)"; 663 container end_psp_usp_uet32 { 664 when "../end-behavior-type = 'End_PSP_USP_UET32'" { 665 description 666 "This container is valid only when the user chooses End 667 behavior (variant: PSP/USP/UET32)."; 668 } 669 description 670 " This is the SRv6 instantiation of a Prefix SID 671 (variant: PSP/USP/UET32)"; 672 } 673 } 674 container end_usd_uet32 { 675 when "../end-behavior-type = 'End_USD_UET32'" { 676 description 677 "This container is valid only when the user chooses End 678 behavior (variant: USD/UET32)."; 679 } 680 description 681 "This is the SRv6 instantiation of a Prefix SID 682 (variant: USD/UET32)"; 683 } 685 container end_psp_usd_uet32 { 686 when "../end-behavior-type = 'End_PSP_USD_UET32'" { 687 description 688 "This container is valid only when the user chooses End 689 behavior (variant: PSP/USD/UET32)."; 690 } 691 description 692 "This is the SRv6 instantiation of a Prefix SID 693 (variant: PSP/USD/UET32)"; 694 } 695 container end_psp_usp_usd_uet32 { 696 when "../end-behavior-type = 'End_PSP_USP_IUSD_UET32'" { 697 description 698 "This container is valid only when the user chooses End 699 behavior (variant: PSP/USP/USD/UET32)."; 700 } 701 description 702 "This is the SRv6 instantiation of a Prefix SID 703 (variant: PSP/USP/USD/UET32)"; 704 } 706 container end-t_psp_uet32 { 707 when "../end-behavior-type = 'End.T_PSP_UET32'" { 708 description 709 "This container is valid only when the user chooses 710 End.T behavior (variant: PSP/UET32)."; 711 } 712 description 713 "Endpoint with specific IPv6 table lookup (variant: PSP/UET32)."; 714 leaf lookup-table-ipv6 { 715 type srv6-types:table-id; 716 mandatory true; 717 description 718 "Table Id for lookup on updated DA (next segment)"; 719 } 720 } 722 container end-t_uet32 { 723 when "../end-behavior-type = 'End.T_UET32'" { 724 description 725 "This container is valid only when the user chooses 726 End.T behavior (variant: UET32)."; 727 } 728 description 729 "Endpoint with specific IPv6 table lookup (variant: UET32)."; 730 leaf lookup-table-ipv6 { 731 type srv6-types:table-id; 732 mandatory true; 733 description 734 "Table Id for lookup on updated DA (next segment)"; 735 } 736 } 738 container end-t_usp_uet32 { 739 when "../end-behavior-type = 'End.T_USP_UET32'" { 740 description 741 "This container is valid only when the user chooses 742 End.T behavior (variant: USP/UET32)."; 743 } 744 description 745 "Endpoint with specific IPv6 table lookup (variant: USP/UET32)."; 746 leaf lookup-table-ipv6 { 747 type srv6-types:table-id; 748 mandatory true; 749 description 750 "Table Id for lookup on updated DA (next segment)"; 751 } 752 } 754 container end-t_psp_usp_uet32 { 755 when "../end-behavior-type = 'End.T_PSP_USP_UET32'" { 756 description 757 "This container is valid only when the user chooses 758 End.T behavior (variant: PSP/USP/UET32)."; 759 } 760 description 761 "Endpoint with specific IPv6 table lookup (variant: PSP/USP/UET32)."; 762 leaf lookup-table-ipv6 { 763 type srv6-types:table-id; 764 mandatory true; 765 description 766 "Table Id for lookup on updated DA (next segment)"; 767 } 768 } 770 container end-t_usd_uet32 { 771 when "../end-behavior-type = 'End.T_USD_UET32'" { 772 description 773 "This container is valid only when the user chooses 774 End.T behavior (variant: USD/UET32)."; 775 } 776 description 777 "Endpoint with specific IPv6 table lookup (variant: USD/UET32)."; 778 leaf lookup-table-ipv6 { 779 type srv6-types:table-id; 780 mandatory true; 781 description 782 "Table Id for lookup on updated DA (next segment)"; 783 } 784 } 786 container end-t_psp_usd_uet32 { 787 when "../end-behavior-type = 'End.T_PSP_USD_UET32'" { 788 description 789 "This container is valid only when the user chooses 790 End.T behavior (variant: PSP/USD/UET32)."; 791 } 792 description 793 "Endpoint with specific IPv6 table lookup (variant: PSP/USD/UET32)."; 794 leaf lookup-table-ipv6 { 795 type srv6-types:table-id; 796 mandatory true; 797 description 798 "Table Id for lookup on updated DA (next segment)"; 799 } 800 } 802 container end-t_usp_usd_uet32 { 803 when "../end-behavior-type = 'End.T_USP_USD_UET32'" { 804 description 805 "This container is valid only when the user chooses 806 End.T behavior (variant: USP/USD/UET32)."; 807 } 808 description 809 "Endpoint with specific IPv6 table lookup (variant: USP/USD/UET32)."; 810 leaf lookup-table-ipv6 { 811 type srv6-types:table-id; 812 mandatory true; 813 description 814 "Table Id for lookup on updated DA (next segment)"; 815 } 816 } 818 container end-t_psp_usp_usd_uet32 { 819 when "../end-behavior-type = 'End.T_PSP_USP_USD_UET32'" { 820 description 821 "This container is valid only when the user chooses 822 End.T behavior (variant: PSP/USP/USD/UET32)."; 823 } 824 description 825 "Endpoint with specific IPv6 table lookup (variant: PSP/USP/USD/UET32)"; 826 leaf lookup-table-ipv6 { 827 type srv6-types:table-id; 828 mandatory true; 829 description 830 "Table Id for lookup on updated DA (next segment)"; 831 } 832 } 834 container end-x_uet32 { 835 when "../end-behavior-type = 'End.X_UET32'" { 836 description 837 "This container is valid only when the user chooses 838 End.X behavior (variant: UET32)"; 839 } 840 description 841 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: UET32)."; 842 leaf protected { 843 type boolean; 844 default false; 845 description "Is Adj-SID protected?"; 846 } 847 uses srv6-static:multi-paths-v6; 848 } 850 container end-x_psp_uet32 { 851 when "../end-behavior-type = 'End.X_PSP_UET32'" { 852 description 853 "This container is valid only when the user chooses 854 End.X behavior (variant: PSP/UET32)"; 855 } 856 description 857 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/UET32)."; 859 leaf protected { 860 type boolean; 861 default false; 862 description "Is Adj-SID protected?"; 863 } 865 uses srv6-static:multi-paths-v6; 866 } 868 container end-x_usp_uet32 { 869 when "../end-behavior-type = 'End.X_USP_UET32'" { 870 description 871 "This container is valid only when the user chooses 872 End.X behavior (variant: USP/UET32)"; 873 } 874 description 875 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: USP/UET32)."; 877 leaf protected { 878 type boolean; 879 default false; 880 description "Is Adj-SID protected?"; 881 } 883 uses srv6-static:multi-paths-v6; 884 } 886 container end-x_psp_usp_uet32 { 887 when "../end-behavior-type = 'End.X_PSP_USP_UET32'" { 888 description 889 "This container is valid only when the user chooses 890 End.X behavior (variant: PSP/USP/UET32)"; 891 } 892 description 893 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/USP/UET32)."; 895 leaf protected { 896 type boolean; 897 default false; 898 description "Is Adj-SID protected?"; 899 } 901 uses srv6-static:multi-paths-v6; 902 } 904 container end-x_usd_uet32 { 905 when "../end-behavior-type = 'End.X_USD_UET32'" { 906 description 907 "This container is valid only when the user chooses 908 End.X behavior (variant: USD/UET32)"; 909 } 910 description 911 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: USD/UET32)."; 913 leaf protected { 914 type boolean; 915 default false; 916 description "Is Adj-SID protected?"; 917 } 918 uses srv6-static:multi-paths-v6; 919 } 920 container end-x_psp_usd_uet32 { 921 when "../end-behavior-type = 'End.X_PSP_USD_UET32'" { 922 description 923 "This container is valid only when the user chooses 924 End.X behavior (variant: PSP/USD/UET32)"; 925 } 926 description 927 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/USD/UET32)."; 929 leaf protected { 930 type boolean; 931 default false; 932 description "Is Adj-SID protected?"; 933 } 935 uses srv6-static:multi-paths-v6; 936 } 937 container end-x_usp_usd_uet32 { 938 when "../end-behavior-type = 'End.X_USP_USD_UET32'" { 939 description 940 "This container is valid only when the user chooses 941 End.X behavior (variant: USP/USD/UET32)"; 942 } 943 description 944 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: USP/USD/UET32)."; 946 leaf protected { 947 type boolean; 948 default false; 949 description "Is Adj-SID protected?"; 950 } 952 uses srv6-static:multi-paths-v6; 953 } 954 container end-x_psp_usp_usd_uet32 { 955 when "../end-behavior-type = 'End.X_PSP_USP_USD_UET32'" { 956 description 957 "This container is valid only when the user chooses 958 End.X behavior (variant: PSP/USP/USD/UET32)"; 959 } 960 description 961 "Endpoint with cross-connect to an array of layer-3 adjacencies (variant: PSP/USP/USD/UET32)."; 963 leaf protected { 964 type boolean; 965 default false; 966 description "Is Adj-SID protected?"; 967 } 969 uses srv6-static:multi-paths-v6; 970 } 971 } 973 grouping shorter-srv6-static-cfg { 974 description 975 "Grouping configuration and operation for Shorter SRv6 sid."; 976 list sid { 977 key "function"; 978 description "List of locally instantiated SIDs"; 979 uses shorter-srv6-sid-config; 980 } 981 } 982 augment"/rt:routing/srv6:srv6/srv6:locators/srv6:locator:/srv6:static/srv6:local-sids/srv6:sid"{ 983 description 984 "This augments SRv6 static data model with Shorter static SRv6."; 985 leaf end-behavior-type { 986 type identityref { 987 base shorter-srv6-types:srv6-endpoint-type; 988 } 989 mandatory true; 990 description 991 "Type of SRv6 end behavior."; 992 } 993 uses shorter-srv6-static-cfg; 994 } 995 } 996 998 5. Security Considerations 1000 TBD. 1002 6. IANA Considerations 1004 TBD. 1006 7. Normative References 1008 [I-D.ietf-6man-segment-routing-header] 1009 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 1010 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 1011 (SRH)", draft-ietf-6man-segment-routing-header-26 (work in 1012 progress), October 2019. 1014 [I-D.ietf-spring-srv6-network-programming] 1015 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 1016 Matsushima, S., and Z. Li, "SRv6 Network Programming", 1017 draft-ietf-spring-srv6-network-programming-15 (work in 1018 progress), March 2020. 1020 [I-D.mirsky-6man-unified-id-sr] 1021 Cheng, W., Mirsky, G., Peng, S., Aihua, L., Wan, X., and 1022 C. Wei, "Unified Identifier in IPv6 Segment Routing 1023 Networks", draft-mirsky-6man-unified-id-sr-06 (work in 1024 progress), March 2020. 1026 [I-D.raza-spring-srv6-yang] 1027 Raza, K., Agarwal, S., Liu, X., Hu, Z., Hussain, I., Shah, 1028 H., Voyer, D., Elmalky, H., Matsushima, S., Horiba, K., 1029 Abdelsalam, A., and J. Rajamanickam, "YANG Data Model for 1030 SRv6 Base and Static", draft-raza-spring-srv6-yang-05 1031 (work in progress), October 2019. 1033 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1034 the Network Configuration Protocol (NETCONF)", RFC 6020, 1035 DOI 10.17487/RFC6020, October 2010, 1036 . 1038 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1039 and A. Bierman, Ed., "Network Configuration Protocol 1040 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1041 . 1043 Authors' Addresses 1045 Ran Chen 1046 ZTE Corporation 1047 No. 50 Software Ave, Yuhuatai Distinct 1048 Nanjing, P.R.China 1049 China 1051 Email: chen.ran@zte.com.cn 1053 Detao zhao 1054 ZTE Corporation 1055 No. 50 Software Ave, Yuhuatai Distinct 1056 Nanjing, P.R.China 1057 China 1059 Email: zhao.detao@zte.com.cn