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