idnits 2.17.1 draft-deevi-spring-bgp-sr-yang-01.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 34 instances of too long lines in the document, the longest one being 72 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 186 has weird spacing: '...path-id uin...' == Line 192 has weird spacing: '...path-id uin...' == Line 198 has weird spacing: '...path-id uin...' == Line 203 has weird spacing: '...rgb-min rt-...' == Line 204 has weird spacing: '...rgb-max rt-...' == (7 more instances...) == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (January 11, 2021) is 1199 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 (-17) exists of draft-ietf-idr-bgp-model-10 Summary: 1 error (**), 0 flaws (~~), 9 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Spring Working Group K. Deevi 2 Internet-Draft K. Raza 3 Intended status: Standards Track Cisco 4 Expires: July 15, 2021 K. Majumdar 5 Comscope 6 B. Decraene 7 Orange 8 January 11, 2021 10 YANG data model for BGP Segment Routing Extensions 11 draft-deevi-spring-bgp-sr-yang-01 13 Abstract 15 This document defines a YANG data model that can be used to configure 16 and manage Segment Routing extensions in BGP. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on July 15, 2021. 35 Copyright Notice 37 Copyright (c) 2021 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (https://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 This document may contain material from IETF Documents or IETF 51 Contributions published or made publicly available before November 52 10, 2008. The person(s) controlling the copyright in some of this 53 material may not have granted the IETF Trust the right to allow 54 modifications of such material outside the IETF Standards Process. 55 Without obtaining an adequate license from the person(s) controlling 56 the copyright in such materials, this document may not be modified 57 outside the IETF Standards Process, and derivative works of it may 58 not be created outside the IETF Standards Process, except to format 59 it for publication as an RFC or to translate it into languages other 60 than English. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 65 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 66 2. BGP Segment Routing Yang model . . . . . . . . . . . . . . . 3 67 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 68 2.2. SR Prefix SID (SR MPLS) . . . . . . . . . . . . . . . . . 4 69 2.3. Egress Peer Engineering . . . . . . . . . . . . . . . . . 4 70 3. Yang Tree . . . . . . . . . . . . . . . . . . . . . . . . . . 4 71 3.1. SR Prefix Sid (SR MPLS) . . . . . . . . . . . . . . . . . 4 72 3.2. Egress Peer Engineering . . . . . . . . . . . . . . . . . 6 73 4. Yang Module . . . . . . . . . . . . . . . . . . . . . . . . . 8 74 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 16 75 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 76 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16 77 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 78 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 79 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 80 9.2. Informative References . . . . . . . . . . . . . . . . . 17 81 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 83 1. Introduction 85 YANG [RFC6020] is a data definition language that was introduced to 86 define the contents of a conceptual data store that allows networked 87 devices to be managed using NETCONF [RFC6241]. YANG is proving 88 relevant beyond its initial confines, as bindings to other interfaces 89 (e.g. ReST) [RFC8040] and encodings other than XML (e.g. JSON) 90 [RFC7951] are being defined. Furthermore, YANG data models can be 91 used as the basis of implementation for other interfaces, such as CLI 92 and programmatic APIs. 94 This document defines the YANG model for Segment Routing specific 95 extensions in BGP. 97 1.1. Requirements Language 99 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 100 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 101 "OPTIONAL" in this document are to be interpreted as described in BCP 102 14 [RFC2119] [RFC8174] when, and only when, they appear in all 103 capitals, as shown here. 105 2. BGP Segment Routing Yang model 107 2.1. Overview 109 Segment Routing (SR), as defined in [RFC8402], leverages the source 110 routing paradigm where a node steers a packet through an ordered list 111 of instructions, called segments. SR, thus, allows enforcing a flow 112 through any topological path and/or service chain while maintaining 113 per-flow state only at the ingress nodes to the SR domain. 115 When applied to ipv6 data-plane (i.e. SRv6), the ordered set of 116 instructions are realized via SRv6 SIDs. The various functions and 117 behaviors corresponding to network programming using SRv6 are 118 specified in [I-D.ietf-spring-srv6-network-programming]. 120 This document defines Yang model for the Segment Routing extensions 121 applicable for BGP as following: 123 o Prefix sid extensions in the context of SR MPLS, as described in 124 [I-D.ietf-idr-bgp-prefix-sid]. 126 o Egress Peer Engineering (EPE) as described in [I-D.ietf-spring- 127 segment-routing-central-epe]. 129 The Yang extensions proposed in this model augment the base BGP model 130 defined in [I-D.ietf-idr-bgp-model]. 132 Note: Base BGP model does not have a common structure for BGP RIB. 133 The placeholder containers defined in this model can be removed once 134 base BGP model has the BGP RIB structure. 136 The modeling in this document complies with the Network Management 137 Datastore Architecture (NMDA) [RFC8342]. The operational state data 138 is combined with the associated configuration data in the same 139 hierarchy [RFC8407]. When protocol states are retrieved from the 140 NMDA operational state datastore, the returned states cover all 141 "config true" (rw) and "config false" (ro) nodes defined in the 142 schema. 144 2.2. SR Prefix SID (SR MPLS) 146 Prefix SID attribute in BGP in the context of SR MPLS, carries the 147 label index and SRGB block information. 149 o The configuration to attach the label index is modeled as a new 150 route-policy set action. BGP policy actions from the BGP policy 151 module defined in base BGP yang model [I-D.ietf-idr-bgp-model] are 152 augmented for this purpose. 154 o The configuration related to SR Mapping Server in the context of 155 BGP prefix SID, is TBD. 157 o Prefix SID attribute received with the BGP route is modeled under 158 BGP AF mode for select address families. This information is 159 applicable per route. 161 2.3. Egress Peer Engineering 163 Egress Peer Engineering (EPE) in the context of Segment Routing is 164 described in [I-D.ietf-spring-segment-routing-central-epe]. EPE is 165 enabled in the context of BGP neighbor session. Three different 166 types of EPE SIDs namely, Peer node SID, Peer adjacency SID and Peer 167 set SID correspond to the segments required for source routed inter 168 domain paths. EPE SID(s) for each type above, can be statically 169 configured or dynamically allocated by the node. Further, FRR backup 170 policy and backup SID can be specified per EPE. The configuration 171 and state for the EPE parameters is modeled by augmenting the 172 neighbor container defined in the base BGP model 173 [I-D.ietf-idr-bgp-model]. The configuration and the applied config 174 state are applicable for neighbor-groups as well. 176 3. Yang Tree 178 3.1. SR Prefix Sid (SR MPLS) 180 module: ietf-bgp-sr 181 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast: 182 +--ro routes 183 +--ro route* [prefix neighbor add-path-id] 184 +--ro prefix union 185 +--ro neighbor inet:ip-address 186 +--ro add-path-id uint32 187 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-unicast: 188 +--ro routes 189 +--ro route* [prefix neighbor add-path-id] 190 +--ro prefix union 191 +--ro neighbor inet:ip-address 192 +--ro add-path-id uint32 193 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast: 194 +--ro routes 195 +--ro route* [prefix neighbor add-path-id] 196 +--ro prefix union 197 +--ro neighbor inet:ip-address 198 +--ro add-path-id uint32 199 +--ro prefix-sid 200 +--ro label-index? uint32 201 +--ro originator-srgb 202 +--ro srgb-ranges* [srgb-min srgb-max] 203 +--ro srgb-min rt-types:mpls-label 204 +--ro srgb-max rt-types:mpls-label 205 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast: 206 +--ro routes 207 +--ro route* [prefix neighbor add-path-id] 208 +--ro prefix union 209 +--ro neighbor inet:ip-address 210 +--ro add-path-id uint32 211 +--ro prefix-sid 212 +--ro label-index? uint32 213 +--ro originator-srgb 214 +--ro srgb-ranges* [srgb-min srgb-max] 215 +--ro srgb-min rt-types:mpls-label 216 +--ro srgb-max rt-types:mpls-label 217 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv4-unicast: 218 +--ro routes 219 +--ro route* [rd prefix neighbor add-path-id] 220 +--ro rd rt-types:route-distinguisher 221 +--ro prefix union 222 +--ro neighbor inet:ip-address 223 +--ro add-path-id uint32 224 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv6-unicast: 225 +--ro routes 226 +--ro route* [rd prefix neighbor add-path-id] 227 +--ro rd rt-types:route-distinguisher 228 +--ro prefix union 229 +--ro neighbor inet:ip-address 230 +--ro add-path-id uint32 231 augment /rpol:routing-policy/rpol:policy-definitions/rpol:policy-definition/rpol:statements/rpol:statement/rpol:actions/rpol:policy-result: 232 +--rw set-label-index? uint32 234 ... 236 3.2. Egress Peer Engineering 238 Egress Peer Engineering Yang Tree applicable to neighbor and peer- 239 group containers 241 module: ietf-bgp-sr 243 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:neighbors/bgp:neighbor: 244 +--rw egress-peer-engineering 245 +--rw sid-allocation-type? enumeration 246 +--rw explicit-sid? sid-type 247 +--ro allocated-sid? sid-type 248 +--rw peer-set-name? string 249 +--rw backup 250 | +--ro active? boolean 251 | +--rw backup-type? enumeration 252 | +--rw backup-peer? inet:ip-address 253 | +--rw backup-sid? sid-type 254 +--rw peer-adjacency* [first-hop-ipaddress] 255 +--rw first-hop-ipaddress inet:ip-address 256 +--ro first-hop-interface? string 257 +--rw sid-allocation-type? enumeration 258 +--rw explicit-sid? sid-type 259 +--ro allocated-sid? sid-type 260 +--rw backup 261 +--ro active? boolean 262 +--rw backup-type? enumeration 263 +--rw backup-peer? inet:ip-address 264 +--rw backup-sid? sid-type 265 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:peer-groups/bgp:peer-group: 266 +--rw egress-peer-engineering 267 +--rw sid-allocation-type? enumeration 268 +--rw explicit-sid? sid-type 269 +--ro allocated-sid? sid-type 270 +--rw peer-set-name? string 271 +--rw backup 272 | +--ro active? boolean 273 | +--rw backup-type? enumeration 274 | +--rw backup-peer? inet:ip-address 275 | +--rw backup-sid? sid-type 276 +--rw peer-adjacency* [first-hop-ipaddress] 277 +--rw first-hop-ipaddress inet:ip-address 278 +--ro first-hop-interface? string 279 +--rw sid-allocation-type? enumeration 280 +--rw explicit-sid? sid-type 281 +--ro allocated-sid? sid-type 282 +--rw backup 283 +--ro active? boolean 284 +--rw backup-type? enumeration 285 +--rw backup-peer? inet:ip-address 286 +--rw backup-sid? sid-type 288 ... 290 4. Yang Module 292 file "ietf-bgp-sr@2019-07-07.yang" 294 module ietf-bgp-sr { 296 namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-sr"; 298 prefix ietf-bgp-sr ; 300 import ietf-routing-types { 301 prefix rt-types; 302 } 304 import ietf-routing { 305 prefix "rt"; 306 } 308 import ietf-inet-types { 309 prefix inet; 310 } 312 import ietf-routing-policy { 313 prefix rpol; 314 } 316 import ietf-bgp { 317 prefix bgp; 318 } 320 import ietf-srv6-types { 321 prefix srv6-types; 322 } 324 organization 325 "IETF Spring Working Group"; 327 contact 328 "Spring working group - spring@ietf.org"; 330 description 331 "This YANG module defines a data model to configure and 332 manage segment routing extensions in BGP. 334 Terms and Acronyms 336 AF : Address Family 337 BGP (bgp) : Border Gateway Protocol 339 EPE : Egress Peer Engineering 341 SR : Segment Routing 343 SID : Segment Identifier 345 VPN : Virtual Private Network 347 VRF : Virtual Routing and Forwarding 349 "; 351 revision 2018-06-26 { 352 description 353 "Initial revision" ; 354 reference ""; 356 } 358 // 359 // New identities and typedefs for SR extensions 360 // 362 // Sid type union 363 typedef sid-type { 364 type union { 365 type rt-types:mpls-label; 366 type srv6-types:srv6-sid; 367 } 368 description "Type definition for Segment Identifier. This is 369 a union type which can be either a SR MPLS SID in the 370 form of a label, or a SRv6 SID in the form of 371 an IPv6 address."; 372 reference "TBD"; 373 } 375 // 376 // SR Prefix SID related groupings 377 // 379 // Prefix SID attribute state in a route 380 grouping sr-route-prefix-sid { 381 description "SR Prefix SID attribute associated with BGP Route"; 382 container prefix-sid { 383 description "Prefix SID attribute"; 384 leaf label-index { 385 type uint32; 386 description "Label Index TLV carried with Prefix SID"; 387 } 388 container originator-srgb { 389 description "SRGB info of the originating node, 390 as signaled in the originator SRGB TLV"; 391 list srgb-ranges { 392 key "srgb-min srgb-max"; 393 description "Concatenated ranges building the SRGB block"; 395 leaf srgb-min { 396 type rt-types:mpls-label; 397 description "Range min"; 398 } 399 leaf srgb-max { 400 type rt-types:mpls-label; 401 description "Range max"; 402 } 403 } 404 } 405 } 406 } 408 // 409 // SR Egress Peer Engineering (EPE) related groupings 410 // 411 grouping epe-sid-alloc-mode { 412 description "Common grouping for EPE mode and SID"; 413 leaf sid-allocation-type { 414 type enumeration { 415 enum EXPLICIT { 416 description "EPE SID is configured"; 417 } 418 enum DYNAMIC { 419 description "EPE SID is generated by node"; 420 } 421 } 422 default "DYNAMIC"; 423 description "SID allocation mode specifies whether the EPE SID 424 is explicitly configured value, or a dynamically allocated 425 value by the node. This applicable for EPE peer SID, EPE peer 426 adjacency SID and Peer set SID, depending on the context 427 it is configured."; 428 } 430 leaf explicit-sid { 431 //when "../mode = 'EXPLICIT'"; 432 type sid-type; 433 description "Explicitly configured EPE SID value, when the sid-allocation-type 434 is EXPLICIT"; 435 } 437 leaf allocated-sid { 438 type sid-type; 439 config false; 440 description "EPE SID value allocated by the node. When the sid allocation type 441 is DYNAMIC, this would be a SID allocated by the node. In the case 442 of EXPLICIT allocation type, this would typically be the explicit sid 443 value configured by the user"; 444 } 445 } 447 grouping epe-backup-info { 448 description "Parameters for EPE backup SID selection"; 449 container backup { 450 description "Backup policy for this EPE"; 451 leaf active { 452 type boolean; 453 config false; 454 description 455 "Boolean indicating if the backup as per requested policy is 456 active for this EPE. Typically when EPE Peer, Link or Set is 457 down, backup SID as per backup policy, would become active"; 458 } 459 leaf backup-type { 460 type enumeration { 461 enum PeerNodeSid { 462 description "Backup via another Peer Node SID to the 463 same AS. A Peer identifier is also 464 required when this backup-type is 465 selected"; 466 } 467 enum PeerAdjSid { 468 description "Backup via remaining Peer Adjacencies to the 469 same peer"; 470 } 471 enum PeerSetSid { 472 description "Backup via Remaining PeerNode SIDs in the 473 same PeerSet"; 474 } 475 enum IGP { 476 description "Pop the EPE SID and perform IP lookup"; 477 } 478 } 479 default "IGP"; 480 description "Type of the backup for this EPE"; 481 reference "TBD"; 482 } 484 leaf backup-peer { 485 //when "../backup-type = 'PeerNodeSid'"; 486 type inet:ip-address; 487 description "Peer identifier for the case when backup 488 type is PeerNodeSid"; 489 } 491 leaf backup-sid { 492 type sid-type; 493 description 494 "Backup SID (of a EPE Peer, Peer Adjacency or Peer-Set) to be 495 used as backup for this EPE"; 496 } 497 } 498 } 500 grouping epe-config { 501 description "Egress Peer Engineering (EPE) config grouping"; 502 container egress-peer-engineering { 503 description "Egress Peer Engineering (EPE) config under BGP Peer"; 505 uses epe-sid-alloc-mode; 507 leaf peer-set-name { 508 type string; 509 description "Make this EPE peer a member of the named 510 Peer Set."; 511 } 513 uses epe-backup-info; 515 list peer-adjacency { 516 key first-hop-ipaddress; 517 description "EPE parameters for the adjacency links 518 over which multi-hop peering is setup"; 520 leaf first-hop-ipaddress { 521 type inet:ip-address; 522 description "First hop IP address of the link"; 523 } 525 leaf first-hop-interface { 526 type string; 527 config false; 528 description "The interface corresponding to the link"; 530 } 532 uses epe-sid-alloc-mode; 533 uses epe-backup-info; 534 } 535 } 536 } 538 grouping route-key-leafs { 539 description "Grouping for key leafs identifying a route"; 540 leaf prefix { 541 type union { 542 type inet:ip-prefix; 543 type string; 544 } 545 description "BGP Prefix. This is a temp definition to 546 cover ip-prefix and other NLRI formats. 547 Import the type once defined in base 548 BGP RIB model"; 549 } 550 leaf neighbor { 551 type inet:ip-address; 552 description "BGP Neighbor"; 553 } 554 leaf add-path-id { 555 type uint32; 556 description "Add-path ID"; 557 } 558 } 560 grouping common-bgp-route-grouping { 561 description "BGP route list" ; 562 container routes { 563 config false; 564 description "BGP Route in local RIB"; 565 list route { 566 key "prefix neighbor add-path-id"; 567 description "BGP route list"; 568 uses route-key-leafs; 569 } 570 } 571 } 573 grouping common-bgp-vpn-route-grouping { 574 description "BGP route list" ; 575 container routes { 576 config false; 577 description "BGP VPN Route in local RIB"; 578 list route { 579 key "rd prefix neighbor add-path-id"; 580 description "Route List"; 582 leaf rd { 583 type rt-types:route-distinguisher; 584 description "Route Distinguisher"; 585 } 586 uses route-key-leafs; 587 } 588 } 589 } 591 // 592 // BGP Specific Paramters 593 // 594 // Augment AF with route list 596 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 597 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast" { 598 description 599 "Augment BGP SAFI route"; 600 uses common-bgp-route-grouping; 601 } 602 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 603 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-unicast" { 604 description 605 "Augment BGP SAFI route"; 606 uses common-bgp-route-grouping; 607 } 608 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 609 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast" { 610 description 611 "Augment BGP SAFI route"; 612 uses common-bgp-route-grouping; 614 } 615 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 616 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast" { 617 description 618 "Augment BGP SAFI route"; 619 uses common-bgp-route-grouping; 620 } 621 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 622 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv4-unicast" { 623 description 624 "Augment BGP SAFI route"; 625 uses common-bgp-vpn-route-grouping; 627 } 628 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 629 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv6-unicast" { 630 description 631 "Augment BGP SAFI route"; 632 uses common-bgp-vpn-route-grouping; 633 } 635 // SR Prefix SID Related. 636 // Prefix SID label index config via Route Policy 637 augment "/rpol:routing-policy/" + 638 "rpol:policy-definitions/rpol:policy-definition/" + 639 "rpol:statements/rpol:statement/" + 640 "rpol:actions/rpol:policy-result" { 641 description 642 "BGP policy actions to set label index"; 643 leaf set-label-index { 644 type uint32; 645 description "Label Index"; 646 } 647 } 649 // Prefix SID label in SAFI route 650 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 651 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast/" + 652 "ietf-bgp-sr:routes/ietf-bgp-sr:route" { 653 description 654 "Augment BGP AF Table for SR prefix sid Labels info"; 655 uses sr-route-prefix-sid; 656 } 657 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 658 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast/" + 659 "ietf-bgp-sr:routes/ietf-bgp-sr:route" { 660 description 661 "Augment BGP AF Table for SR prefix sid Labels info"; 662 uses sr-route-prefix-sid; 663 } 665 // Egress Peer Engineering (EPE) related. 666 // EPE config under neighbor 667 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 668 "bgp:bgp/bgp:neighbors/bgp:neighbor" { 669 description 670 "Egress Peer Engineering data"; 671 uses epe-config; 672 } 673 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 674 "bgp:bgp/bgp:peer-groups/bgp:peer-group" { 676 description 677 "Egress Peer Engineering data"; 678 uses epe-config; 679 } 680 } 682 684 5. Contributors 686 Dhanendra Jain 687 Cisco Systems 688 US 690 Email: dhanendra.ietf@gmail.com 692 Zhichun Jiang 693 Cisco Systems 694 US 696 Email: zcjiang@tencent.com 698 Zafar Ali 699 Cisco Systems 700 US 702 Email: zali@cisco.com 704 Sharmila Palani 705 Cisco Systems 706 US 708 Email: spalani@cisco.com 710 6. IANA Considerations 712 7. Security Considerations 714 The transport protocol used for sending the BGP Segment Routing data 715 MUST support authentication and SHOULD support encryption. The data- 716 model by itself does not create any security implications. 718 This draft does not change any underlying security issues inherent in 719 [I-D.ietf-idr-bgp-model]. 721 8. Acknowledgements 723 TBD. 725 9. References 727 9.1. Normative References 729 [I-D.ietf-idr-bgp-model] 730 Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP 731 YANG Model for Service Provider Networks", draft-ietf-idr- 732 bgp-model-10 (work in progress), November 2020. 734 [I-D.ietf-idr-bgp-prefix-sid] 735 Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A., 736 and H. Gredler, "Segment Routing Prefix SID extensions for 737 BGP", draft-ietf-idr-bgp-prefix-sid-27 (work in progress), 738 June 2018. 740 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 741 Requirement Levels", BCP 14, RFC 2119, 742 DOI 10.17487/RFC2119, March 1997, 743 . 745 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 746 the Network Configuration Protocol (NETCONF)", RFC 6020, 747 DOI 10.17487/RFC6020, October 2010, 748 . 750 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 751 and A. Bierman, Ed., "Network Configuration Protocol 752 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 753 . 755 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 756 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 757 May 2017, . 759 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 760 and R. Wilton, "Network Management Datastore Architecture 761 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 762 . 764 9.2. Informative References 766 [I-D.ietf-spring-segment-routing-central-epe] 767 Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D. 768 Afanasiev, "Segment Routing Centralized BGP Egress Peer 769 Engineering", draft-ietf-spring-segment-routing-central- 770 epe-10 (work in progress), December 2017. 772 [I-D.ietf-spring-srv6-network-programming] 773 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 774 Matsushima, S., and Z. Li, "SRv6 Network Programming", 775 draft-ietf-spring-srv6-network-programming-28 (work in 776 progress), December 2020. 778 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 779 RFC 7951, DOI 10.17487/RFC7951, August 2016, 780 . 782 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 783 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 784 . 786 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 787 Decraene, B., Litkowski, S., and R. Shakir, "Segment 788 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 789 July 2018, . 791 [RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of 792 Documents Containing YANG Data Models", BCP 216, RFC 8407, 793 DOI 10.17487/RFC8407, October 2018, 794 . 796 Authors' Addresses 798 Krishna Deevi 799 Cisco 800 170 W. Tasman Drive 801 San Jose, CA 95134 802 USA 804 Email: kdeevi@cisco.com 806 Kamran Raza 807 Cisco 808 2000 Innovation Drive 809 Kanata, ON K2K-3E8 810 CA 812 Email: skraza@cisco.com 813 Kausik Majumdar 814 Comscope 816 Email: kausik.majumdar@commscope.com 818 Bruno Decraene 819 Orange 820 France 822 Email: bruno.decraene@orange.com