idnits 2.17.1 draft-hb-spring-sr-p2mp-policy-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 272 instances of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 97 has weird spacing: '...cy-name str...' == Line 106 has weird spacing: '...cy-name str...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (July 6, 2019) is 1746 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) -- Missing reference section? 'RFC2119' on line 90 looks like a reference Summary: 1 error (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working group H. Bidgoli, Ed. 3 Internet Draft Nokia 4 Intended status: Standard Track D. Voyer 5 Bell Canada 6 Tanmoy Kundu 7 J. Kotalwar 8 Nokia 9 R. Parekh 10 Cisco System, Inc. 11 T. Saad 12 Juniper Networks 14 Expires: January 7, 2020 July 6, 2019 16 YANG Data Model for p2mp sr policy 17 draft-hb-spring-sr-p2mp-policy-yang-00 19 Abstract 21 SR P2MP policies are set of policies that enable architecture for 22 P2MP service delivery. 24 This document defines a YANG data model for SR P2MP Policy 25 Configuration and operation. 27 Status of this Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF), its areas, and its working groups. Note that 34 other groups may also distribute working documents as Internet- 35 Drafts. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." The list 41 of current Internet-Drafts can be accessed at 42 http://www.ietf.org/ietf/1id-abstracts.txt 44 The list of Internet-Draft Shadow Directories can be accessed at 45 http://www.ietf.org/shadow.html 46 This Internet-Draft will expire on October 8, 2017. 48 Copyright Notice 50 Copyright (c) 2019 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents 55 (http://trustee.ietf.org/license-info) in effect on the date of 56 publication of this document. Please review these documents 57 carefully, as they describe your rights and restrictions with respect 58 to this document. Code Components extracted from this document must 59 include Simplified BSD License text as described in Section 4.e of 60 the Trust Legal Provisions and are provided without warranty as 61 described in the Simplified BSD License. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 66 2. Conventions used in this document . . . . . . . . . . . . . . . 2 67 3. Design of the Data Model . . . . . . . . . . . . . . . . . . . 3 68 4. Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 4 69 5. Control plane configuration . . . . . . . . . . . . . . . . . . 4 70 6. States . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 71 7. Yang Data Model . . . . . . . . . . . . . . . . . . . . . . . . 4 72 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 73 7. Security Considerations . . . . . . . . . . . . . . . . . . . . 12 74 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 75 8.1. Normative References . . . . . . . . . . . . . . . . . . . 12 76 8.2. Informative References . . . . . . . . . . . . . . . . . . 12 77 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 12 78 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 80 1. Introduction 82 This document defines a YANG data model for P2MP SR Policy 83 configuration and operation. 85 2. Conventions used in this document 87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 89 document are to be interpreted as described in RFC 2119 [RFC2119]. 91 3. Design of the Data Model 93 submodule: router-p2mp-segment (belongs-to root) 94 +--rw p2mp-segment! 95 +--rw admin-state? boolean 96 +--rw p2mp-policy* [p2mp-policy-name] 97 | +--rw p2mp-policy-name string 98 | +--rw root-address? inet:ipv4-address 99 | +--rw tree-id? uint32 100 | +--rw admin-state? boolean 101 | +--ro oper-state? boolean 102 | +--rw leaf-list* [leaf-address] 103 | +--rw leaf-address inet:ipv4-address 104 | +--rw admin-state? boolean 105 +--rw replication-policy* [replication-policy-name] 106 +--rw replication-policy-name string 107 +--rw root-address? inet:ipv4-address 108 +--rw tree-id? uint32 109 +--rw node-address? inet:ipv4-address 110 +--rw admin-state? boolean 111 +--ro oper-state? boolean 112 +--rw candidate-path* [candidate-path-name] 113 +--rw candidate-path-name string 114 +--rw origin? enumeration 115 +--rw originator-asn? uint32 116 +--rw originator-node-address? inet:ipv4-address 117 +--rw descriminator? uint32 118 +--rw admin-state? boolean 119 +--ro oper-state? boolean 120 +--rw plsp-id? uint32 121 +--rw preference? uint32 122 +--rw incoming-replication-sid? uint32 123 +--rw operation? enumeration 124 +--rw next-hop-id* [next-hop-id] 125 +--rw next-hop-id uint32 126 +--rw next-hop-address? inet:ipv4-address 127 +--rw next-hop-interface-name? if:interface-ref 128 +--rw protect-nexthop-id? uint32 129 +--rw weight? uint32 130 +--rw (label)? 131 +--:(outgoing-replication-sid) 132 | +--rw out-replication-sid* [index] 133 | +--rw index uint32 134 +--:(outgoing-sr-policy-sid-list) 135 | +--rw sr-policy-sid-list* [index] 136 | +--rw index uint32 137 +--:(outgoin-sr-policy) 138 +--rw sr-policy? string 140 4. Configuration 142 This Module augments the "/rt:routing:" with a treeSID container. 143 This container defines all the configuration parameter related to 144 treeSID and P2MP SR Policy for this particular routing. The P2MP SR 145 policy contains replication policy which in order contain candidate- 146 path and the next-hop-groups for each OIF in the replication Policy. 147 IT should be noted that two disjoint replication policies can be 148 connected via a SR Policy as per draft-ietf-spring-segment-routing- 149 policy. 150 5. Control plane configuration 152 6. States 154 7. Yang Data Model 155 file "ietf-p2mp-policy@2019-07-04.yang" 156 module ietf-tree-sid { 157 yang-version 1.1; 158 namespace "urn:ietf:params:xml:ns:yang:p2mp-policy-segment"; 159 // replace with IANA namespace when assigned 160 prefix tree-sid; 162 import ietf-inet-types { 163 prefix "inet"; 164 } 166 import ietf-yang-types { 167 prefix "yang"; 168 } 170 import ietf-routing-types { 171 prefix "rt-types"; 172 } 174 import ietf-routing { 175 prefix "rt"; 176 } 178 import ietf-interfaces { 179 prefix "if"; 180 } 182 import ietf-ip { 183 prefix ip; 184 } 186 organization 187 "IETF SPRING Working Group"; 189 contact 190 "WG Web: 191 WG List: 193 WG Chair: Bruno Decraene 194 196 WG Chair: Rob Shakir 197 198 Editor: Hooman Bidgoli 199 200 Editor: Tanmoy Kundu 201 202 Editor: Daniel Voyer 203 204 description 205 "The module defines a collection of YANG definition for 206 p2mp policy module."; 208 revision 2019-07-04 { 209 description 210 "First draft."; 211 reference 212 "RFC XXXX: A YANG Data Model for TREE-SID"; 213 } 215 submodule router-p2mp-segment { 217 belongs-to root { prefix "root"; } 218 import ietf-inet-types { prefix "inet"; } 219 import ietf-interfaces { prefix "if"; } 221 container p2mp-segment { 222 presence "Configure Tree SID parameters."; 224 leaf admin-state { 225 type boolean; 226 default false; 227 description 228 "Administratively enable/disable Tree SID."; 229 } 231 list p2mp-policy { 232 key "p2mp-policy-name"; 233 uses p2mp-policy-key; 235 leaf root-address { 236 type inet:ipv4-address; 237 description 238 "Root address of the tree."; 239 } 240 leaf tree-id { 241 type uint32; 242 description 243 "Tree ID uniquely indentifies a tunnel in the root, 244 this also represent a spefic constraint. Also known as 245 color and/or p2mp-id"; 246 } 247 leaf admin-state { 248 type boolean; 249 default false; 250 description 251 "Administratively enable/disable Tree SID p2mp policy."; 252 } 253 leaf oper-state { 254 type boolean; 255 default false; 256 config false; 257 description 258 "Tree SID p2mp policy operational state based on users."; 259 } 261 list leaf-list { 262 key "leaf-address"; 263 uses leaf-list-key; 265 leaf admin-state { 266 type boolean; 267 default false; 268 description 269 "Administratively enable/disable Tree SID p2mp policy."; 270 } 271 } 272 } 274 list replication-policy { 275 key "replication-policy-name"; 276 uses replication-policy-key; 278 leaf root-address { 279 type inet:ipv4-address; 280 description 281 "Root address of the tree."; 282 } 283 leaf tree-id { 284 type uint32; 285 description 286 "Tree ID uniquely indentifies a tunnel in the root, 287 this also represent a spefic constraint. Also known as 288 color and/or p2mp-id"; 289 } 290 leaf node-address { 291 type inet:ipv4-address; 292 description 293 "Node address for which this replication policy is used."; 294 } 295 leaf admin-state { 296 type boolean; 297 default false; 298 description 299 "Administratively enable/disable Tree SID replication policy."; 300 } 301 leaf oper-state { 302 type boolean; 303 default false; 304 config false; 305 description 306 "Tree SID replication policy operational state based on users."; 307 } 308 list candidate-path { 309 description 310 "Candidate path is Tree SID or SID list representing a 311 unique path from root to a specific endpoint using the 312 tree-id constraint."; 314 key "candidate-path-name"; 316 uses candidate-path-key; 318 leaf admin-state { 319 type boolean; 320 default false; 321 description 322 "Administratively enable/disable Tree SID candidate path."; 323 } 324 leaf oper-state { 325 type boolean; 326 default false; 327 config false; 328 description 329 "candidate-path operational state based on ilm programming."; 330 } 331 leaf plsp-id { 332 type uint32; 333 default 0; 334 description 335 "PLSP-ID is an unique identifier assigned by controler and 336 remain unchanged througout the life of a LSP(candidate path)."; 337 } 338 leaf preference { 339 type uint32; 340 default 100; 341 description 342 "Preference determines the best preferred candidate-path among 343 list of candiate path towards a leaf. Higher preference is 344 choosen."; 345 } 346 leaf incoming-replication-sid{ 347 type uint32; 348 default 0; 349 description 350 "The incoming label for transit and leaf routers, root it 351 is 0"; 352 } 353 leaf operation { 354 type enumeration { 355 enum push { value 0; } 356 enum pop { value 1; } 357 enum swap { value 2; } 358 } 359 default push; 360 description 361 "Label operation"; 362 } 364 list next-hop-id { 365 description 366 "Identifies each nexthop in a candidate path."; 367 key "next-hop-id"; 369 uses next-hop-id-key; 371 leaf next-hop-address { 372 type inet:ipv4-address; 373 default 0.0.0.0; 374 description 375 "Nexthop address of the desitnation."; 376 } 377 leaf next-hop-interface-name { 378 type if:interface-ref; 379 description 380 "Next hop out going interface."; 381 } 382 leaf protect-nexthop-id { 383 type uint32; 384 description 385 "Nexthop protection id."; 386 } 387 leaf weight { 388 type uint32; 389 description 390 "weight for weighted load balancing"; 391 } 393 choice label { 394 list outgoing-replication-sid { 395 key index; 396 uses sid-list-key; 397 description 398 "Outgoing replication label for this nexthop."; 399 } 400 list outgoing-sr-policy-sid-list { 401 key index; 402 uses sr-policy-sid-key; 403 description 404 "Outgoing sr-policy sid for this nexthop."; 405 } 406 leaf outgoing-sr-policy { 407 type string; 408 description 409 "SR policy name to be referrenced"; 410 } 411 } 412 } 413 } 414 } 415 } 417 // -------------------------- GROUPINGS --------------------------- 418 grouping p2mp-policy-key { 420 leaf p2mp-policy-name { 421 type string; 422 description 423 "P2MP policy name to be referrenced by mvpn pmsi."; 424 } 425 } 426 grouping replication-policy-key { 428 leaf replication-policy-name { 429 type string; 430 description 431 "Replication policy name to be referrenced by mvpn pmsi."; 432 } 433 } 435 grouping leaf-list-key { 436 leaf leaf-address{ 437 type inet:ipv4-address; 438 description 439 "leaf address of the this p2mp-tree"; 440 } 441 } 442 grouping candidate-path-key { 444 leaf candidate-path-name { 445 type string; 446 description 447 "A candidate path name equivalent to a LSP."; 448 } 450 leaf origin { 451 type enumeration { 452 enum pcep { value 10; } 453 enum bgp-sr-policy { value 20; } 454 enum configuration { value 30; } 456 } 457 description 458 "Protocol-Origin of a candidate path is an 8-bit value 459 which identifies the component or protocol that originates 460 or signals the candidate path."; 461 } 463 leaf originator-asn { 464 type uint32; 465 description 466 "represented as a 4 byte number"; 467 } 469 leaf originator-node-address { 470 type inet:ipv4-address; 471 description 472 "128 bit value, IPv4 address are encoded in lower 32 bit."; 473 } 475 leaf descriminator { 476 type uint32; 477 description 478 "The Discriminator is a 32 bit value associated with a candidate 479 path that uniquely identifies it within the context of an SR 480 Policy from a specific Protocol-Origin"; 481 } 482 } 484 grouping next-hop-id-key { 485 leaf next-hop-id { 486 type uint32; 487 description 488 "Nexthop group index"; 489 } 490 } 492 grouping sid-list-key { 493 leaf index { 494 type uint32 { 495 range 1..2; 496 } 497 } 498 } 500 grouping sr-policy-sid-key { 501 leaf index { 502 type uint32 { 503 range 1..12; 504 } 505 description 506 "Index for push-label."; 507 } 508 } 509 } 510 512 6. IANA Considerations 514 This document contains no actions for IANA. 516 7. Security Considerations 518 TBD 520 8. References 522 8.1. Normative References 524 8.2. Informative References 526 [sr-p2mp-policy] D. Yoyer, Ed., C. Hassen, K. Gillis, C. Filsfils, R. 527 Parekh, H.Bidgoli, "SR Replication Policy for P2MP Service Delivery", 528 draft-voyer-spring-sr-p2mp-policy-01, April 2019. 530 7. Acknowledgments 532 Authors' Addresses 533 Hooman Bidgoli 534 Nokia 535 600 March Rd. 536 Ottawa, Ontario K2K 2E6 537 Canada 539 Email: hooman.bidgoli@nokia.com 541 Daniel Voyer 542 Bell Canada 543 Montreal 544 CA 546 Email: daniel.voyer@bell.ca 548 Tanmoy kundu 549 nokia 550 Montain View 551 US 553 Email: tanmoy.kundu@nokia.com 555 Jayant Kotalwar 556 nokia 557 Montain View 558 US 560 Email: jayant.kotalwar@nokia.com 562 Rishabh Parekh 563 Cisco Systems, Inc. 564 San Jose 565 US 567 Email: riparekh@cisco.com 569 Tarek Saad 570 Juniper Networks 572 Email: tssad@juniper.net