idnits 2.17.1 draft-deevi-spring-bgp-sr-yang-02.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 36 instances of too long lines in the document, the longest one being 74 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 192 has weird spacing: '...path-id uin...' == Line 199 has weird spacing: '...path-id uin...' == Line 205 has weird spacing: '...path-id uin...' == Line 210 has weird spacing: '...rgb-min rt-...' == Line 211 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 (July 11, 2021) is 1020 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) == Unused Reference: 'I-D.ietf-idr-bgpls-segment-routing-epe' is defined on line 793, but no explicit reference was found in the text == Outdated reference: A later version (-17) exists of draft-ietf-idr-bgp-model-10 == Outdated reference: A later version (-14) exists of draft-ietf-idr-bgpls-srv6-ext-07 ** Downref: Normative reference to an Informational draft: draft-ietf-spring-segment-routing-central-epe (ref. 'I-D.ietf-spring-segment-routing-central-epe') Summary: 2 errors (**), 0 flaws (~~), 11 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Spring Working Group K. Deevi 3 Internet-Draft K. Raza 4 Intended status: Standards Track J. Rajamanickam 5 Expires: January 12, 2022 Cisco 6 K. Majumdar 7 CommScope 8 B. Decraene 9 Orange 10 W. wang 11 Huawei 12 July 11, 2021 14 YANG data model for BGP Segment Routing Extensions 15 draft-deevi-spring-bgp-sr-yang-02 17 Abstract 19 This document defines a YANG data model that can be used to configure 20 and manage Segment Routing extensions in BGP. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on January 12, 2022. 39 Copyright Notice 41 Copyright (c) 2021 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (https://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 This document may contain material from IETF Documents or IETF 55 Contributions published or made publicly available before November 56 10, 2008. The person(s) controlling the copyright in some of this 57 material may not have granted the IETF Trust the right to allow 58 modifications of such material outside the IETF Standards Process. 59 Without obtaining an adequate license from the person(s) controlling 60 the copyright in such materials, this document may not be modified 61 outside the IETF Standards Process, and derivative works of it may 62 not be created outside the IETF Standards Process, except to format 63 it for publication as an RFC or to translate it into languages other 64 than English. 66 Table of Contents 68 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 69 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 70 2. BGP Segment Routing Yang model . . . . . . . . . . . . . . . 3 71 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 72 2.2. SR Prefix SID (SR MPLS) . . . . . . . . . . . . . . . . . 4 73 2.3. Egress Peer Engineering . . . . . . . . . . . . . . . . . 4 74 3. Yang Tree . . . . . . . . . . . . . . . . . . . . . . . . . . 4 75 3.1. SR Prefix Sid (SR MPLS) . . . . . . . . . . . . . . . . . 4 76 3.2. Egress Peer Engineering . . . . . . . . . . . . . . . . . 6 77 4. Yang Module . . . . . . . . . . . . . . . . . . . . . . . . . 7 78 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 16 79 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 80 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 81 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 82 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 83 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 84 9.2. Informative References . . . . . . . . . . . . . . . . . 18 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 87 1. Introduction 89 YANG [RFC6020] is a data definition language that was introduced to 90 define the contents of a conceptual data store that allows networked 91 devices to be managed using NETCONF [RFC6241]. YANG is proving 92 relevant beyond its initial confines, as bindings to other interfaces 93 (e.g. ReST) [RFC8040] and encodings other than XML (e.g. JSON) 94 [RFC7951] are being defined. Furthermore, YANG data models can be 95 used as the basis of implementation for other interfaces, such as CLI 96 and programmatic APIs. 98 This document defines the YANG model for Segment Routing specific 99 extensions in BGP. 101 1.1. Requirements Language 103 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 104 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 105 "OPTIONAL" in this document are to be interpreted as described in BCP 106 14 [RFC2119] [RFC8174] when, and only when, they appear in all 107 capitals, as shown here. 109 2. BGP Segment Routing Yang model 111 2.1. Overview 113 Segment Routing (SR), as defined in [RFC8402], leverages the source 114 routing paradigm where a node steers a packet through an ordered list 115 of instructions, called segments. SR, thus, allows enforcing a flow 116 through any topological path and/or service chain while maintaining 117 per-flow state only at the ingress nodes to the SR domain. 119 When applied to ipv6 data-plane (i.e. SRv6), the ordered set of 120 instructions are realized via SRv6 SIDs. The various functions and 121 behaviors corresponding to network programming using SRv6 are 122 specified in [RFC8986]. 124 This document defines Yang model for the Segment Routing extensions 125 applicable for BGP as following: 127 o Prefix sid extensions in the context of SR MPLS, as described in 128 [I-D.ietf-idr-bgp-prefix-sid]. 130 o Egress Peer Engineering (EPE) as described in [I-D.ietf-spring- 131 segment-routing-central-epe], [I-D.ietf-idr-bgpls-segment-routing- 132 epe] for MPLS, [I-D.ietf-idr-bgpls-srv6-ext] for SRv6. 134 The Yang extensions proposed in this model augment the base BGP model 135 defined in [I-D.ietf-idr-bgp-model]. 137 Note: Base BGP model does not have a common structure for BGP RIB. 138 The placeholder containers defined in this model can be removed once 139 base BGP model has the BGP RIB structure. 141 The modeling in this document complies with the Network Management 142 Datastore Architecture (NMDA) [RFC8342]. The operational state data 143 is combined with the associated configuration data in the same 144 hierarchy [RFC8407]. When protocol states are retrieved from the 145 NMDA operational state datastore, the returned states cover all 146 "config true" (rw) and "config false" (ro) nodes defined in the 147 schema. 149 2.2. SR Prefix SID (SR MPLS) 151 Prefix SID attribute in BGP in the context of SR MPLS, carries the 152 label index and SRGB block information. 154 o The configuration to attach the label index is modeled as a new 155 route-policy set action. BGP policy actions from the BGP policy 156 module defined in base BGP yang model [I-D.ietf-idr-bgp-model] are 157 augmented for this purpose. 159 o The configuration related to SR Mapping Server in the context of 160 BGP prefix SID, is TBD. 162 o Prefix SID attribute received with the BGP route is modeled under 163 BGP AF mode for select address families. This information is 164 applicable per route. 166 2.3. Egress Peer Engineering 168 Egress Peer Engineering (EPE) in the context of Segment Routing is 169 described in [I-D.ietf-spring-segment-routing-central-epe], [I- 170 D.ietf-idr-bgpls-segment-routing-epe] for MPLS, [I-D.ietf-idr-bgpls- 171 srv6-ext] for SRv6. EPE is enabled in the context of BGP neighbor 172 session. Three different types of EPE SIDs namely, Peer node SID, 173 Peer adjacency SID and Peer set SID correspond to the segments 174 required for source routed inter domain paths. EPE SID(s) for each 175 type above, can be statically configured or dynamically allocated by 176 the node. Further, FRR backup policy and backup SID can be specified 177 per EPE. The configuration and state for the EPE parameters is 178 modeled by augmenting the neighbor container defined in the base BGP 179 model [I-D.ietf-idr-bgp-model]. The configuration and the applied 180 config state are applicable for neighbor-groups as well. 182 3. Yang Tree 184 3.1. SR Prefix Sid (SR MPLS) 186 module: ietf-bgp-sr 187 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-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:ipv6-unicast: 195 +--ro routes 196 +--ro route* [prefix neighbor add-path-id] 197 +--ro prefix union 198 +--ro neighbor inet:ip-address 199 +--ro add-path-id uint32 200 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: 201 +--ro routes 202 +--ro route* [prefix neighbor add-path-id] 203 +--ro prefix union 204 +--ro neighbor inet:ip-address 205 +--ro add-path-id uint32 206 +--ro prefix-sid 207 +--ro label-index? uint32 208 +--ro originator-srgb 209 +--ro srgb-ranges* [srgb-min srgb-max] 210 +--ro srgb-min rt-types:mpls-label 211 +--ro srgb-max rt-types:mpls-label 212 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: 213 +--ro routes 214 +--ro route* [prefix neighbor add-path-id] 215 +--ro prefix union 216 +--ro neighbor inet:ip-address 217 +--ro add-path-id uint32 218 +--ro prefix-sid 219 +--ro label-index? uint32 220 +--ro originator-srgb 221 +--ro srgb-ranges* [srgb-min srgb-max] 222 +--ro srgb-min rt-types:mpls-label 223 +--ro srgb-max rt-types:mpls-label 224 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: 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 /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv6-unicast: 232 +--ro routes 233 +--ro route* [rd prefix neighbor add-path-id] 234 +--ro rd rt-types:route-distinguisher 235 +--ro prefix union 236 +--ro neighbor inet:ip-address 237 +--ro add-path-id uint32 239 ... 241 3.2. Egress Peer Engineering 243 Egress Peer Engineering Yang Tree applicable to neighbor and peer- 244 group containers 246 module: ietf-bgp-sr 248 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global: 249 +--rw egress-peer-engineering-set 250 +--rw egress-peer-engineering-sets* [peer-set-name] 251 +--rw peer-set-name string 252 +--rw sid-allocation-type? enumeration 253 +--rw explicit-sid? sid-type 254 +--ro allocated-sid? sid-type 255 augment /rpol:routing-policy/rpol:policy-definitions/rpol:policy-definition/rpol:statements/rpol:statement/rpol:actions: 256 +--rw set-sr-label-index 257 +--rw sr-label-index? uint32 259 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:neighbors/bgp:neighbor: 260 +--rw egress-peer-engineering 261 +--rw sid-allocation-type? enumeration 262 +--rw explicit-sid? sid-type 263 +--ro allocated-sid? sid-type 264 +--rw peer-set-name? string 265 +--rw backup 266 | +--ro active? boolean 267 | +--rw backup-type? enumeration 268 | +--rw backup-peer? inet:ip-address 269 | +--rw backup-sid? sid-type 270 +--rw peer-adjacency* [first-hop-ipaddress] 271 +--rw first-hop-ipaddress inet:ip-address 272 +--ro first-hop-interface? string 273 +--rw sid-allocation-type? enumeration 274 +--rw explicit-sid? sid-type 275 +--ro allocated-sid? sid-type 276 +--rw backup 277 +--ro active? boolean 278 +--rw backup-type? enumeration 279 +--rw backup-peer? inet:ip-address 280 +--rw backup-sid? sid-type 281 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:peer-groups/bgp:peer-group: 282 +--rw egress-peer-engineering 283 +--rw sid-allocation-type? enumeration 284 +--rw explicit-sid? sid-type 285 +--ro allocated-sid? sid-type 286 +--rw peer-set-name? string 287 +--rw backup 288 | +--ro active? boolean 289 | +--rw backup-type? enumeration 290 | +--rw backup-peer? inet:ip-address 291 | +--rw backup-sid? sid-type 292 +--rw peer-adjacency* [first-hop-ipaddress] 293 +--rw first-hop-ipaddress inet:ip-address 294 +--ro first-hop-interface? string 295 +--rw sid-allocation-type? enumeration 296 +--rw explicit-sid? sid-type 297 +--ro allocated-sid? sid-type 298 +--rw backup 299 +--ro active? boolean 300 +--rw backup-type? enumeration 301 +--rw backup-peer? inet:ip-address 302 +--rw backup-sid? sid-type 304 ... 306 4. Yang Module 308 file "ietf-bgp-sr.yang" --> 310 module ietf-bgp-sr { 312 namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-sr"; 314 prefix ietf-bgp-sr ; 316 import ietf-routing-types { 317 prefix rt-types; 318 } 320 import ietf-routing { 321 prefix "rt"; 322 } 324 import ietf-inet-types { 325 prefix inet; 326 } 328 import ietf-routing-policy { 329 prefix rpol; 330 } 332 import ietf-bgp { 333 prefix bgp; 335 } 337 import ietf-srv6-types { 338 prefix srv6-types; 339 } 341 organization 342 "IETF Spring Working Group"; 344 contact 345 "WG Web: 346 WG List: 348 Editor: Krishna Deevi 349 350 Kamran Raza 351 352 Jaganbabu Rajamanickam 353 354 Kausik Majumdar 355 356 Bruno Decraene 357 358 Wanghaibo wang 359 "; 361 description 362 "This YANG module defines a data model to configure and 363 manage segment routing extensions in BGP. 365 Terms and Acronyms 367 AF : Address Family 369 BGP (bgp) : Border Gateway Protocol 371 EPE : Egress Peer Engineering 373 SR : Segment Routing 375 SID : Segment Identifier 377 VPN : Virtual Private Network 379 VRF : Virtual Routing and Forwarding 381 "; 383 revision 2018-06-26 { 384 description 385 "Initial revision" ; 386 reference ""; 388 } 390 // 391 // New identities and typedefs for SR extensions 392 // 394 // Sid type union 395 typedef sid-type { 396 type union { 397 type rt-types:mpls-label; 398 type srv6-types:srv6-sid; 399 } 400 description "Type definition for Segment Identifier. This is 401 a union type which can be either a SR MPLS SID in the 402 form of a label, or a SRv6 SID in the form of 403 an IPv6 address."; 404 reference "TBD"; 405 } 407 // 408 // SR Prefix SID related groupings 409 // 411 // Prefix SID attribute state in a route 412 grouping sr-route-prefix-sid { 413 description "SR Prefix SID attribute associated with BGP Route"; 414 container prefix-sid { 415 description "Prefix SID attribute"; 416 leaf label-index { 417 type uint32; 418 description "Label Index TLV carried with Prefix SID"; 419 } 420 container originator-srgb { 421 description "SRGB info of the originating node, 422 as signaled in the originator SRGB TLV"; 423 list srgb-ranges { 424 key "srgb-min srgb-max"; 425 description "Concatenated ranges building the SRGB block"; 427 leaf srgb-min { 428 type rt-types:mpls-label; 429 description "Range min"; 430 } 431 leaf srgb-max { 432 type rt-types:mpls-label; 433 description "Range max"; 434 } 435 } 436 } 437 } 438 } 440 // 441 // SR Egress Peer Engineering (EPE) related groupings 442 // 443 grouping epe-sid-alloc-mode { 444 description "Common grouping for EPE mode and SID"; 445 leaf sid-allocation-type { 446 type enumeration { 447 enum EXPLICIT { 448 description "EPE SID is configured"; 449 } 450 enum DYNAMIC { 451 description "EPE SID is generated by node"; 452 } 453 } 454 default "DYNAMIC"; 455 description "SID allocation mode specifies whether the EPE SID 456 is explicitly configured value, or a dynamically allocated 457 value by the node. This applicable for EPE peer SID, EPE peer 458 adjacency SID and Peer set SID, depending on the context 459 it is configured."; 460 } 462 leaf explicit-sid { 463 //when "../mode = 'EXPLICIT'"; 464 type sid-type; 465 description "Explicitly configured EPE SID value, when the sid-allocation-type 466 is EXPLICIT"; 467 } 469 leaf allocated-sid { 470 type sid-type; 471 config false; 472 description "EPE SID value allocated by the node. When the sid allocation type 473 is DYNAMIC, this would be a SID allocated by the node. In the case 474 of EXPLICIT allocation type, this would typically be the explicit sid 475 value configured by the user"; 476 } 477 } 478 grouping epe-backup-info { 479 description "Parameters for EPE backup SID selection"; 480 container backup { 481 description "Backup policy for this EPE"; 482 leaf active { 483 type boolean; 484 config false; 485 description 486 "Boolean indicating if the backup as per requested policy is 487 active for this EPE. Typically when EPE Peer, Link or Set is 488 down, backup SID as per backup policy, would become active"; 489 } 490 leaf backup-type { 491 type enumeration { 492 enum PeerNodeSid { 493 description "Backup via another Peer Node SID to the 494 same AS. A Peer identifier is also 495 required when this backup-type is 496 selected"; 497 } 498 enum PeerAdjSid { 499 description "Backup via remaining Peer Adjacencies to the 500 same peer"; 501 } 502 enum PeerSetSid { 503 description "Backup via Remaining PeerNode SIDs in the 504 same PeerSet"; 505 } 506 enum PeerNativePath { 507 description "Perform IP lookup"; 508 } 509 } 510 default "PeerOptimalRoutingPath"; 511 description "Type of the backup for this EPE"; 512 reference "TBD"; 513 } 515 leaf backup-peer { 516 //when "../backup-type = 'PeerNodeSid'"; 517 type inet:ip-address; 518 description "Peer identifier for the case when backup 519 type is PeerNodeSid"; 520 } 522 leaf backup-sid { 523 type sid-type; 524 description 525 "Backup SID (of a EPE Peer, Peer Adjacency or Peer-Set) to be 526 used as backup for this EPE"; 527 } 528 } 529 } 531 grouping epe-config { 532 description "Egress Peer Engineering (EPE) config grouping"; 533 container egress-peer-engineering { 534 description "Egress Peer Engineering (EPE) config under BGP Peer"; 536 uses epe-sid-alloc-mode; 538 leaf peer-set-name { 539 type string; 540 description "Make this EPE peer a member of the named 541 Peer Set."; 542 } 544 uses epe-backup-info; 546 list peer-adjacency { 547 key first-hop-ipaddress; 548 description "EPE parameters for the adjacency links 549 over which multi-hop peering is setup"; 551 leaf first-hop-ipaddress { 552 type inet:ip-address; 553 description "First hop IP address of the link"; 554 } 556 leaf first-hop-interface { 557 type string; 558 config false; 559 description "The interface corresponding to the link"; 560 } 562 uses epe-sid-alloc-mode; 563 uses epe-backup-info; 564 } 565 } 566 } 568 grouping route-key-leafs { 569 description "Grouping for key leafs identifying a route"; 570 leaf prefix { 571 type union { 572 type inet:ip-prefix; 573 type string; 575 } 576 description "BGP Prefix. This is a temp definition to 577 cover ip-prefix and other NLRI formats. 578 Import the type once defined in base 579 BGP RIB model"; 580 } 581 leaf neighbor { 582 type inet:ip-address; 583 description "BGP Neighbor"; 584 } 585 leaf add-path-id { 586 type uint32; 587 description "Add-path ID"; 588 } 589 } 591 grouping common-bgp-route-grouping { 592 description "BGP route list" ; 593 container routes { 594 config false; 595 description "BGP Route in local RIB"; 596 list route { 597 key "prefix neighbor add-path-id"; 598 description "BGP route list"; 599 uses route-key-leafs; 600 } 601 } 602 } 604 grouping common-bgp-vpn-route-grouping { 605 description "BGP route list" ; 606 container routes { 607 config false; 608 description "BGP VPN Route in local RIB"; 609 list route { 610 key "rd prefix neighbor add-path-id"; 611 description "Route List"; 613 leaf rd { 614 type rt-types:route-distinguisher; 615 description "Route Distinguisher"; 616 } 617 uses route-key-leafs; 618 } 619 } 620 } 622 // 623 // BGP Specific Paramters 624 // 625 // Augment AF with route list 627 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 628 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast" { 629 description 630 "Augment BGP SAFI route"; 631 uses common-bgp-route-grouping; 632 } 633 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 634 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-unicast" { 635 description 636 "Augment BGP SAFI route"; 637 uses common-bgp-route-grouping; 638 } 639 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 640 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast" { 641 description 642 "Augment BGP SAFI route"; 643 uses common-bgp-route-grouping; 645 } 646 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 647 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast" { 648 description 649 "Augment BGP SAFI route"; 650 uses common-bgp-route-grouping; 651 } 652 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 653 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv4-unicast" { 654 description 655 "Augment BGP SAFI route"; 656 uses common-bgp-vpn-route-grouping; 657 } 658 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 659 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv6-unicast" { 660 description 661 "Augment BGP SAFI route"; 662 uses common-bgp-vpn-route-grouping; 663 } 665 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 666 "bgp:bgp/bgp:global" { 667 description 668 "Augment BGP global to add peer-set with SR specific information"; 669 container egress-peer-engineering-set { 670 description "Egress BGP Peer Set"; 671 list egress-peer-engineering-sets { 672 key "peer-set-name"; 673 description "Egress BGP Peer Set List"; 675 leaf peer-set-name { 676 type string; 677 description "Peer Set Name"; 678 } 680 uses epe-sid-alloc-mode; 682 } 683 } 684 } 686 // SR Prefix SID Related. 687 // Prefix SID label index config via Route Policy 688 augment "/rpol:routing-policy/" + 689 "rpol:policy-definitions/rpol:policy-definition/" + 690 "rpol:statements/rpol:statement/" + 691 "rpol:actions" { 692 description 693 "BGP policy actions to set SR label index"; 695 container set-sr-label-index { 696 description 697 "Set the label index for the SRGB."; 699 leaf sr-label-index { 700 type uint32; 701 description "SR Prefix Label Index"; 702 } 703 } 704 } 706 // Prefix SID label in SAFI route 707 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 708 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast/" + 709 "ietf-bgp-sr:routes/ietf-bgp-sr:route" { 710 description 711 "Augment BGP AF Table for SR prefix sid Labels info"; 712 uses sr-route-prefix-sid; 713 } 714 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 715 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast/" + 716 "ietf-bgp-sr:routes/ietf-bgp-sr:route" { 717 description 718 "Augment BGP AF Table for SR prefix sid Labels info"; 720 uses sr-route-prefix-sid; 721 } 723 // Egress Peer Engineering (EPE) related. 724 // EPE config under neighbor 725 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 726 "bgp:bgp/bgp:neighbors/bgp:neighbor" { 727 description 728 "Egress Peer Engineering data"; 729 uses epe-config; 730 } 731 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 732 "bgp:bgp/bgp:peer-groups/bgp:peer-group" { 733 description 734 "Egress Peer Engineering data"; 735 uses epe-config; 736 } 737 } 739 741 5. Contributors 743 Dhanendra Jain 744 Google 746 Email: dhanendra.ietf@gmail.com 748 Zhichun Jiang 749 Cisco Systems 751 Email: zcjiang@tencent.com 753 Zafar Ali 754 Cisco Systems 756 Email: zali@cisco.com 758 Sharmila Palani 759 Microsoft 761 Email: sharmila.palani@microsoft.com 763 6. IANA Considerations 765 7. Security Considerations 767 The transport protocol used for sending the BGP Segment Routing data 768 MUST support authentication and SHOULD support encryption. The data- 769 model by itself does not create any security implications. 771 This draft does not change any underlying security issues inherent in 772 [I-D.ietf-idr-bgp-model]. 774 8. Acknowledgements 776 TBD. 778 9. References 780 9.1. Normative References 782 [I-D.ietf-idr-bgp-model] 783 Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP 784 YANG Model for Service Provider Networks", draft-ietf-idr- 785 bgp-model-10 (work in progress), November 2020. 787 [I-D.ietf-idr-bgp-prefix-sid] 788 Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A., 789 and H. Gredler, "Segment Routing Prefix Segment Identifier 790 Extensions for BGP", draft-ietf-idr-bgp-prefix-sid-27 791 (work in progress), June 2018. 793 [I-D.ietf-idr-bgpls-segment-routing-epe] 794 Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray, 795 S., and J. Dong, "BGP-LS extensions for Segment Routing 796 BGP Egress Peer Engineering", draft-ietf-idr-bgpls- 797 segment-routing-epe-19 (work in progress), May 2019. 799 [I-D.ietf-idr-bgpls-srv6-ext] 800 Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., 801 Bernier, D., and B. Decraene, "BGP Link State Extensions 802 for SRv6", draft-ietf-idr-bgpls-srv6-ext-07 (work in 803 progress), March 2021. 805 [I-D.ietf-spring-segment-routing-central-epe] 806 Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D. 807 Afanasiev, "Segment Routing Centralized BGP Egress Peer 808 Engineering", draft-ietf-spring-segment-routing-central- 809 epe-10 (work in progress), December 2017. 811 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 812 Requirement Levels", BCP 14, RFC 2119, 813 DOI 10.17487/RFC2119, March 1997, 814 . 816 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 817 the Network Configuration Protocol (NETCONF)", RFC 6020, 818 DOI 10.17487/RFC6020, October 2010, 819 . 821 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 822 and A. Bierman, Ed., "Network Configuration Protocol 823 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 824 . 826 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 827 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 828 May 2017, . 830 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 831 and R. Wilton, "Network Management Datastore Architecture 832 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 833 . 835 9.2. Informative References 837 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 838 RFC 7951, DOI 10.17487/RFC7951, August 2016, 839 . 841 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 842 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 843 . 845 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 846 Decraene, B., Litkowski, S., and R. Shakir, "Segment 847 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 848 July 2018, . 850 [RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of 851 Documents Containing YANG Data Models", BCP 216, RFC 8407, 852 DOI 10.17487/RFC8407, October 2018, 853 . 855 [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, 856 D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 857 (SRv6) Network Programming", RFC 8986, 858 DOI 10.17487/RFC8986, February 2021, 859 . 861 Authors' Addresses 863 Krishna Deevi 864 Cisco 865 170 W. Tasman Drive 866 San Jose, CA 95134 867 USA 869 Email: kdeevi@cisco.com 871 Kamran Raza 872 Cisco 873 2000 Innovation Drive 874 Kanata, ON K2K-3E8 875 CA 877 Email: skraza@cisco.com 879 Jaganbabu Rajamanickam 880 Cisco 881 2000 Innovation Drive 882 Kanata, ON K2K-3E8 883 CA 885 Email: jrajaman@cisco.com 887 Kausik Majumdar 888 CommScope 890 Email: kausik.majumdar@commscope.com 892 Bruno Decraene 893 Orange 894 France 896 Email: bruno.decraene@orange.com 897 Wanghaibo wang 898 Huawei 900 Email: rainsword.wang@huawei.com