idnits 2.17.1 draft-dhjain-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 25 instances of too long lines in the document, the longest one being 68 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 286 has weird spacing: '...rgb-min rt-...' == Line 287 has weird spacing: '...rgb-max rt-...' == Line 298 has weird spacing: '...rgb-min rt-...' == Line 299 has weird spacing: '...rgb-max rt-...' == Line 321 has weird spacing: '...address ine...' == (6 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 (Jun 26, 2018) is 2130 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: 'I-D.ietf-spring-segment-routing-central-epe' is mentioned on line 182, but not defined == Missing Reference: 'I-D.draft-dawra-idr-srv6-vpn' is mentioned on line 254, but not defined == Unused Reference: 'I-D.dawra-idr-srv6-vpn' is defined on line 1314, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-6man-segment-routing-header' is defined on line 1331, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-rtgwg-ni-model' is defined on line 1360, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-rtgwg-routing-types' is defined on line 1365, but no explicit reference was found in the text == Unused Reference: 'I-D.raza-spring-srv6-yang' is defined on line 1382, but no explicit reference was found in the text == Outdated reference: A later version (-05) exists of draft-dawra-idr-srv6-vpn-03 == Outdated reference: A later version (-07) exists of draft-filsfils-spring-srv6-network-programming-04 == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-13 == Outdated reference: A later version (-17) exists of draft-ietf-idr-bgp-model-02 == Outdated reference: A later version (-27) exists of draft-ietf-idr-bgp-prefix-sid-18 == Outdated reference: A later version (-26) exists of draft-ietf-idr-segment-routing-te-policy-03 == Outdated reference: A later version (-12) exists of draft-ietf-rtgwg-ni-model-04 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-policy-01 == Outdated reference: A later version (-06) exists of draft-raza-spring-srv6-yang-01 Summary: 1 error (**), 0 flaws (~~), 24 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Spring Working Group D. Jain 3 Internet-Draft K. Raza 4 Intended status: Standards Track Cisco 5 Expires: December 28, 2018 B. Decraene 6 Orange 7 Z. Jiang 8 Tencent 9 Jun 26, 2018 11 YANG data model for BGP Segment Routing Extensions 12 draft-dhjain-spring-bgp-sr-yang-00.txt 14 Abstract 16 This document defines a YANG data model that can be used to configure 17 and manage Segment Routing extensions in BGP. 19 Status of This Memo 21 This Internet-Draft is submitted in full conformance with the 22 provisions of BCP 78 and BCP 79. 24 Internet-Drafts are working documents of the Internet Engineering 25 Task Force (IETF). Note that other groups may also distribute 26 working documents as Internet-Drafts. The list of current Internet- 27 Drafts is at https://datatracker.ietf.org/drafts/current/. 29 Internet-Drafts are draft documents valid for a maximum of six months 30 and may be updated, replaced, or obsoleted by other documents at any 31 time. It is inappropriate to use Internet-Drafts as reference 32 material or to cite them other than as "work in progress." 34 This Internet-Draft will expire on December 28, 2018. 36 Copyright Notice 38 Copyright (c) 2018 IETF Trust and the persons identified as the 39 document authors. All rights reserved. 41 This document is subject to BCP 78 and the IETF Trust's Legal 42 Provisions Relating to IETF Documents 43 (https://trustee.ietf.org/license-info) in effect on the date of 44 publication of this document. Please review these documents 45 carefully, as they describe your rights and restrictions with respect 46 to this document. Code Components extracted from this document must 47 include Simplified BSD License text as described in Section 4.e of 48 the Trust Legal Provisions and are provided without warranty as 49 described in the Simplified BSD License. 51 This document may contain material from IETF Documents or IETF 52 Contributions published or made publicly available before November 53 10, 2008. The person(s) controlling the copyright in some of this 54 material may not have granted the IETF Trust the right to allow 55 modifications of such material outside the IETF Standards Process. 56 Without obtaining an adequate license from the person(s) controlling 57 the copyright in such materials, this document may not be modified 58 outside the IETF Standards Process, and derivative works of it may 59 not be created outside the IETF Standards Process, except to format 60 it for publication as an RFC or to translate it into languages other 61 than English. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 66 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 67 2. BGP Segment Routing Yang model . . . . . . . . . . . . . . . 3 68 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 69 2.2. SR Prefix SID (SR MPLS) . . . . . . . . . . . . . . . . . 4 70 2.3. Egress Peer Engineering . . . . . . . . . . . . . . . . . 4 71 2.4. SR Policy . . . . . . . . . . . . . . . . . . . . . . . . 5 72 2.5. Automatic Steering . . . . . . . . . . . . . . . . . . . 5 73 2.6. SRv6 SIDs . . . . . . . . . . . . . . . . . . . . . . . . 6 74 3. Yang Tree . . . . . . . . . . . . . . . . . . . . . . . . . . 6 75 3.1. SR Prefix Sid (SR MPLS) . . . . . . . . . . . . . . . . . 6 76 3.2. Egress Peer Engineering . . . . . . . . . . . . . . . . . 7 77 3.3. SR Policy . . . . . . . . . . . . . . . . . . . . . . . . 8 78 3.4. Automatic Steering . . . . . . . . . . . . . . . . . . . 10 79 3.5. SRv6 SIDs . . . . . . . . . . . . . . . . . . . . . . . . 11 80 4. Yang Module . . . . . . . . . . . . . . . . . . . . . . . . . 12 81 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 82 6. Security Considerations . . . . . . . . . . . . . . . . . . . 30 83 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 84 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 85 8.1. Normative References . . . . . . . . . . . . . . . . . . 30 86 8.2. Informative References . . . . . . . . . . . . . . . . . 32 87 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 89 1. Introduction 91 YANG [RFC6020] is a data definition language that was introduced to 92 define the contents of a conceptual data store that allows networked 93 devices to be managed using NETCONF [RFC6241]. YANG is proving 94 relevant beyond its initial confines, as bindings to other interfaces 95 (e.g. ReST) [RFC8040] and encodings other than XML (e.g. JSON) 97 [RFC7951] are being defined. Furthermore, YANG data models can be 98 used as the basis of implementation for other interfaces, such as CLI 99 and programmatic APIs. 101 This document defines the YANG model for Segment Routing specific 102 extensions in BGP. 104 1.1. Requirements Language 106 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 107 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 108 "OPTIONAL" in this document are to be interpreted as described in BCP 109 14 [RFC2119] [RFC8174] when, and only when, they appear in all 110 capitals, as shown here. 112 2. BGP Segment Routing Yang model 114 2.1. Overview 116 Segment Routing (SR), as defined in 117 [I-D.ietf-spring-segment-routing], leverages the source routing 118 paradigm where a node steers a packet through an ordered list of 119 instructions, called segments. SR, thus, allows enforcing a flow 120 through any topological path and/or service chain while maintaining 121 per-flow state only at the ingress nodes to the SR domain. 123 When applied to ipv6 data-plane (i.e. SRv6), the ordered set of 124 instructions are realized via SRv6 SIDs. The various functions and 125 behaviors corresponding to network programming using SRv6 are 126 specified in [I-D.filsfils-spring-srv6-network-programming]. 128 This document defines Yang model for the Segment Routing extensions 129 applicable for BGP as following: 131 o Prefix sid extensions in the context of SR MPLS, as described in 132 [I-D.ietf-idr-bgp-prefix-sid]. 134 o Egress Peer Engineering (EPE) as described in [I-D.ietf-spring- 135 segment-routing-central-epe]. 137 o BGP signaled SR Policy as described in 138 [I-D.ietf-idr-segment-routing-te-policy]. 140 o Automatic Steering as described in 141 [I-D.ietf-spring-segment-routing-policy] and 142 [I-D.ietf-idr-segment-routing-te-policy]. 144 o SRv6 VPN extensions as described in [I-D.draft-dawra-idr- 145 srv6-vpn]. 147 The Yang extensions proposed in this model augment the base BGP model 148 defined in [I-D.ietf-idr-bgp-model]. 150 Note: Base BGP model does not have a common structure for BGP RIB. 151 The placeholder containers defined in this model can be removed once 152 base BGP model has the BGP RIB structure. 154 The modeling in this document complies with the Network Management 155 Datastore Architecture (NMDA) [RFC8342]. The operational state data 156 is combined with the associated configuration data in the same 157 hierarchy [I-D.ietf-netmod-rfc6087bis]. When protocol states are 158 retrieved from the NMDA operational state datastore, the returned 159 states cover all "config true" (rw) and "config false" (ro) nodes 160 defined in the schema. 162 2.2. SR Prefix SID (SR MPLS) 164 Prefix SID attribute in BGP in the context of SR MPLS, carries the 165 label index and SRGB block information. 167 o The configuration to attach the label index is modeled as a new 168 route-policy set action. BGP policy actions from the BGP policy 169 module defined in base BGP yang model [I-D.ietf-idr-bgp-model] are 170 augmented for this purpose. 172 o The configuration related to SR Mapping Server in the context of 173 BGP prefix SID, is TBD. 175 o Prefix SID attribute received with the BGP route is modeled under 176 BGP AF mode for select address families. This information is 177 applicable per route. 179 2.3. Egress Peer Engineering 181 Egress Peer Engineering (EPE) in the context of Segment Routing is 182 described in [I-D.ietf-spring-segment-routing-central-epe]. EPE is 183 enabled in the context of BGP neighbor session. Three different 184 types of EPE SIDs namely, Peer node SID, Peer adjacency SID and Peer 185 set SID correspond to the segments required for source routed inter 186 domain paths. EPE SID(s) for each type above, can be statically 187 configured or dynamically allocated by the node. Further, FRR backup 188 policy and backup SID can be specified per EPE. The configuration 189 and state for the EPE parameters is modeled by augmenting the 190 neighbor container defined in the base BGP model 192 [I-D.ietf-idr-bgp-model]. The configuration and the applied config 193 state are applicable for neighbor-groups as well. 195 2.4. SR Policy 197 Architecture for SR Policies is described in 198 [I-D.ietf-spring-segment-routing-policy]. BGP Signaled SR Policies 199 are described in the [I-D.ietf-idr-segment-routing-te-policy]. 200 Following Yang extensions for SR Policy configuration and state data 201 are applicable: 203 o Addition of identies extending the BGP-AFI-SAFI base identity. 204 This is to add two new address families namely IPv4 SR-policy and 205 IPv6 SR-policy, as described in 206 [I-D.ietf-idr-segment-routing-te-policy]. 208 o BGP Signaled SR Policy candidate paths. These refer to the 209 explicit candidate paths signaled via BGP as SAFI NLRIs, state of 210 which is applicable in the context of BGP speaker process. This 211 is modeled by adding SR Policy address family specific container 212 under generic BGP afi-safi list entry defined in the base BGP 213 model [I-D.ietf-idr-bgp-model]. 215 o On Demand SR Policy candidate paths. These refer to the dynamic 216 candidate paths as described in 217 [I-D.ietf-spring-segment-routing-policy]. There are two parts to 218 this in the context of BGP. A set of authorized SR Policy colors 219 for on demand policy triggers, and the actual instantiated 220 candidate paths per BGP next-hop. New containers and lists are 221 added under BGP global mode to model this information. 223 o SR Policy state in the context of BGP speaker. This represents 224 the state SR Policies (regardless of method of instantiation per 225 candidate path). The SR Policy state is maintained in the context 226 of BGP speaker process to realize the Automatic Steering of 227 overlay routes. Automatic Steering extensions are described in 228 the next section. 230 Note: The common parameters and datatypes for the SR Policy, 231 currently defined in this model, should be imported from SR Policy 232 Manager model, once available. 234 2.5. Automatic Steering 236 Automatic Steering (AS) refers to the ability to forward traffic over 237 a SR Policy on the head-end, as described in 238 [I-D.ietf-spring-segment-routing-policy]. When a BGP route is 239 received with the color extended community and if the color value 240 matches the color of an authorized SR Policy installed on the head- 241 end, the route is programmed to resolve over SR Policy in forwarding. 242 Automatic Steering information associated with the BGP routes is 243 modeled as state information per route. 245 TBD: The configuration parameters for Automatic Steering are yet to 246 be added as an augmentation to the BGP route policy model. Such as, 247 extensions for opaque color extended community in BGP policy model, 248 and the Color Only (CO) flags controlling the Automatic Steering 249 behavior as described in [I-D.ietf-idr-segment-routing-te-policy]. 251 2.6. SRv6 SIDs 253 SRv6 extensions defined here are correspond to the VPN programming 254 via SRv6 as described in [I-D.draft-dawra-idr-srv6-vpn]. SRv6 sid 255 allocation mode is applicable in the context of ipv4 unicast and ipv6 256 unicast SAFI under VPN context. This is modeled by adding new 257 containers under the respective AFI/SAFIs from the base BGP model 258 [I-D.ietf-idr-bgp-model]. 260 The common data types for SRv6 are imported form [I-D.draft-raza- 261 spring-srv6-yang]. 263 TBD: Base BGP model [I-D.ietf-idr-bgp-model], in its current form is 264 not scoped within the context of a Network Instance. Therefore, the 265 context of a VRF is not fully realized. The extensions done in this 266 model should fall within the scope of a VRF, once the top BGP 267 container is linked under Network Instance. 269 3. Yang Tree 271 3.1. SR Prefix Sid (SR MPLS) 272 module: ietf-bgp-sr 273 augment /rpol:routing-policy/rpol:policy-definitions/rpol:policy-definition/rpol:statements/rpol:statement/rpol:actions/bgp-pol:bgp-actions: 274 +--rw set-label-index? uint32 276 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast: 277 +--ro routes 278 +--ro route* [prefix neighbor add-path-id] 279 +--ro prefix inet:ip-prefix 280 +--ro neighbor inet:ip-address 281 +--ro add-path-id uint32 282 +--ro prefix-sid 283 | +--ro label-index? uint32 284 | +--ro originator-srgb 285 | +--ro srgb-ranges* [srgb-min srgb-max] 286 | +--ro srgb-min rt-types:mpls-label 287 | +--ro srgb-max rt-types:mpls-label 288 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast: 289 +--ro routes 290 +--ro route* [prefix neighbor add-path-id] 291 +--ro prefix inet:ip-prefix 292 +--ro neighbor inet:ip-address 293 +--ro add-path-id uint32 294 +--ro prefix-sid 295 | +--ro label-index? uint32 296 | +--ro originator-srgb 297 | +--ro srgb-ranges* [srgb-min srgb-max] 298 | +--ro srgb-min rt-types:mpls-label 299 | +--ro srgb-max rt-types:mpls-label 301 ... 303 3.2. Egress Peer Engineering 305 Egress Peer Engineering Yang Tree applicable to neighbor and peer- 306 group containers 307 module: ietf-bgp-sr 309 augment /bgp:bgp/bgp:neighbors/bgp:neighbor: 310 +--rw egress-peer-engineering 311 +--rw sid-allocation-type? enumeration 312 +--rw explicit-sid? sid-type 313 +--ro allocated-sid? sid-type 314 +--rw peer-set-name? string 315 +--rw backup 316 | +--ro active? boolean 317 | +--rw backup-type? enumeration 318 | +--rw backup-peer? inet:ip-address 319 | +--rw backup-sid? sid-type 320 +--rw peer-adjacency* [first-hop-ipaddress] 321 +--rw first-hop-ipaddress inet:ip-address 322 +--ro first-hop-interface? string 323 +--rw sid-allocation-type? enumeration 324 +--rw explicit-sid? sid-type 325 +--ro allocated-sid? sid-type 326 +--rw backup 327 +--ro active? boolean 328 +--rw backup-type? enumeration 329 +--rw backup-peer? inet:ip-address 330 +--rw backup-sid? sid-type 331 ... 333 3.3. SR Policy 335 On Demand Nexthop (ODN) policies triggered by BGP 336 augment /bgp:bgp/bgp:global: 337 +--rw segment-routing 338 +--rw on-demand-policies 339 | +--ro authorized-colors 340 | | +--ro colors* [color] 341 | | +--ro color uint32 342 | +--ro installed-policies 343 | +--ro sr-policy* [color end-point] 344 | +--ro color uint32 345 | +--ro end-point inet:ip-address 346 +--ro policy-state 347 +--ro sr-policy* [color end-point] 348 +--ro color uint32 349 +--ro end-point inet:ip-address 350 +--ro policy-state? enumeration 351 +--ro binding-sid? sid-type 352 +--ro steering-disabled? empty 353 +--ro ref-count? uint32 355 BGP Signaled Explicit SR Policies under ipv4 and ipv6 SR-Policy SAFI 356 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi: 357 +--rw ipv4-srpolicy 358 +--ro explicit-policies 359 +--ro sr-policy* [distinguisher color endpoint] 360 +--ro distinguisher uint32 361 +--ro color uint32 362 +--ro endpoint inet:ip-address 363 +--ro preference? uint32 364 +--ro explicit-binding-sid 365 | +--ro binding-sid? sid-type 366 | +--ro strict? boolean 367 | +--ro drop-on-invalid? boolean 368 +--ro usable? boolean 369 +--ro registered? boolean 371 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi: 372 +--rw ipv6-srpolicy 373 +--ro explicit-policies 374 +--ro sr-policy* [distinguisher color endpoint] 375 +--ro distinguisher uint32 376 +--ro color uint32 377 +--ro endpoint inet:ip-address 378 +--ro preference? uint32 379 +--ro explicit-binding-sid 380 | +--ro binding-sid? sid-type 381 | +--ro strict? boolean 382 | +--ro drop-on-invalid? boolean 383 +--ro usable? boolean 384 +--ro registered? boolean 386 3.4. Automatic Steering 388 Yang Tree for Automatic Steering with example of ipv4-unicast SAFI 390 module: ietf-bgp-sr 391 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast: 392 +--ro routes 393 +--ro route* [prefix neighbor add-path-id] 394 +--ro prefix union 395 +--ro neighbor inet:ip-address 396 +--ro add-path-id uint32 397 +--ro automatic-steering 398 | +--ro color? -> /bgp:bgp/global/bgp-sr:segment-routing/policy-state/sr-policy/color 399 | +--ro end-point? -> /bgp:bgp/global/bgp-sr:segment-routing/policy-state/sr-policy/end-point 400 | +--ro co-flag? enumeration 401 | +--ro binding-sid? -> /bgp:bgp/global/bgp-sr:segment-routing/policy-state/sr-policy/binding-sid 403 ... 405 3.5. SRv6 SIDs 407 SRv6 SID allocation mode in the context of select AFs 409 module: ietf-bgp-sr 410 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast: 411 +--rw segment-routing 412 +--rw srv6 413 +--rw sid-alloc-mode? enumeration 414 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-unicast: 415 +--rw segment-routing 416 +--rw srv6 417 +--rw sid-alloc-mode? enumeration 419 ... 421 SRv6 Received and local SID tree 423 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv4-unicast: 424 +--ro routes 425 +--ro route* [rd prefix neighbor add-path-id] 426 +--ro rd rt-types:route-distinguisher 427 +--ro prefix union 428 +--ro neighbor inet:ip-address 429 +--ro add-path-id uint32 430 +--ro srv6 431 +--ro received-sids* [received-sid] 432 | +--ro received-sid srv6-types:srv6-sid 433 +--ro local-sids* [local-sid] 434 +--ro local-sid srv6-types:srv6-sid 435 +--ro locator? string 436 augment /bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv6-unicast: 437 +--ro routes 438 +--ro route* [rd prefix neighbor add-path-id] 439 +--ro rd rt-types:route-distinguisher 440 +--ro prefix union 441 +--ro neighbor inet:ip-address 442 +--ro add-path-id uint32 443 +--ro srv6 444 +--ro received-sids* [received-sid] 445 | +--ro received-sid srv6-types:srv6-sid 446 +--ro local-sids* [local-sid] 447 +--ro local-sid srv6-types:srv6-sid 448 +--ro locator? string 450 ... 452 4. Yang Module 454 file "ietf-bgp-sr@2018-06-26.yang" 456 module ietf-bgp-sr { 457 yang-version 1.1; 458 namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-sr"; 459 // replace with IANA namespace when assigned 460 prefix bgp-sr ; 462 import ietf-routing-types { 463 prefix rt-types; 464 } 466 import ietf-inet-types { 467 prefix inet; 468 } 469 import ietf-routing-policy { 470 prefix rpol; 471 } 473 import ietf-bgp { 474 prefix bgp; 475 } 477 import ietf-bgp-policy { 478 prefix bgp-pol; 479 } 481 import ietf-bgp-types { 482 prefix bgp-types; 483 } 485 import ietf-srv6-types { 486 prefix srv6-types; 487 } 489 organization 490 "IETF Spring Working Group"; 492 contact 493 "Spring working group - spring@ietf.org"; 495 description 496 "This YANG module defines a data model to configure and 497 manage segment routing extensions in BGP. 499 Terms and Acronyms 501 AF : Address Family 503 BGP (bgp) : Border Gateway Protocol 505 EPE : Egress Peer Engineering 507 EVPN: Ethernet VPN 509 SR : Segment Routing 511 SID : Segment Identifier 513 SRv6 : Segment Routing with IPv6 Data plane 515 VPN : Virtual Private Network 516 VRF : Virtual Routing and Forwarding 518 "; 520 revision 2018-06-26 { 521 description 522 "Initial revision" ; 523 reference ""; 524 } 526 // 527 // New identities and typedefs for SR extensions 528 // 530 // SR Policy SAFI identities 531 identity IPV4_SRPOLICY { 532 base bgp-types:AFI_SAFI_TYPE; 533 description 534 "IPv4 SR Policy (AFI,SAFI = 1,73)"; 535 reference "TBD"; 536 } 538 identity IPV6_SRPOLICY { 539 base bgp-types:AFI_SAFI_TYPE; 540 description 541 "IPv6 SR Policy (AFI,SAFI = 2,73)"; 542 reference "TBD"; 543 } 545 // Sid type union 546 typedef sid-type { 547 type union { 548 type rt-types:mpls-label; 549 type srv6-types:srv6-sid; 550 } 551 description "Type definition for Segment Identifier. This is 552 a union type which can be either a SR MPLS SID in the 553 form of a label, or a SRv6 SID in the form of 554 an IPv6 address."; 555 reference "TBD"; 556 } 558 // 559 // SR Prefix SID related groupings 560 // 562 // Prefix SID attribute state in a route 563 grouping sr-route-prefix-sid { 564 description "SR Prefix SID attribute associated with BGP Route"; 565 container prefix-sid { 566 description "Prefix SID attribute"; 567 leaf label-index { 568 type uint32; 569 description "Label Index TLV carried with Prefix SID"; 570 } 571 container originator-srgb { 572 description "SRGB info of the originating node, 573 as signaled in the originator SRGB TLV"; 574 list srgb-ranges { 575 key "srgb-min srgb-max"; 576 description "Concatenated ranges building the SRGB block"; 578 leaf srgb-min { 579 type rt-types:mpls-label; 580 description "Range min"; 581 } 582 leaf srgb-max { 583 type rt-types:mpls-label; 584 description "Range max"; 585 } 586 } 587 } 588 } 589 } 591 // 592 // SR Egress Peer Engineering (EPE) related groupings 593 // 594 grouping epe-sid-alloc-mode { 595 description "Common grouping for EPE mode and SID"; 596 leaf sid-allocation-type { 597 type enumeration { 598 enum EXPLICIT { 599 description "EPE SID is configured"; 600 } 601 enum DYNAMIC { 602 description "EPE SID is generated by node"; 603 } 604 } 605 default "DYNAMIC"; 606 description "SID allocation mode specifies whether the EPE SID 607 is explicitly configured value, or a dynamically allocated 608 value by the node. This applicable for EPE peer SID, EPE peer 609 adjacency SID and Peer set SID, depending on the context 610 it is configured."; 611 } 612 leaf explicit-sid { 613 when "../mode = 'EXPLICIT'"; 614 type sid-type; 615 description "Explicitly configured EPE SID value, when the sid-allocation-type 616 is EXPLICIT"; 617 } 619 leaf allocated-sid { 620 type sid-type; 621 config false; 622 description "EPE SID value allocated by the node. When the sid allocation type 623 is DYNAMIC, this would be a SID allocated by the node. In the case 624 of EXPLICIT allocation type, this would typically be the explicit sid 625 value configured by the user"; 626 } 627 } 629 grouping epe-backup-info { 630 description "Parameters for EPE backup SID selection"; 631 container backup { 632 description "Backup policy for this EPE"; 633 leaf active { 634 type boolean; 635 config false; 636 description 637 "Boolean indicating if the backup as per requested policy is 638 active for this EPE. Typically when EPE Peer, Link or Set is 639 down, backup SID as per backup policy, would become active"; 640 } 641 leaf backup-type { 642 type enumeration { 643 enum PeerNodeSid { 644 description "Backup via another Peer Node SID to the 645 same AS. A Peer identifier is also 646 required when this backup-type is 647 selected"; 648 } 649 enum PeerAdjSid { 650 description "Backup via remaining Peer Adjacencies to the 651 same peer"; 652 } 653 enum PeerSetSid { 654 description "Backup via Remaining PeerNode SIDs in the 655 same PeerSet"; 656 } 657 enum IGP { 658 description "Pop the EPE SID and perform IP lookup"; 659 } 661 } 662 default "IGP"; 663 description "Type of the backup for this EPE"; 664 reference "TBD"; 665 } 667 leaf backup-peer { 668 when "../backup-type = 'PeerNodeSid'"; 669 type inet:ip-address; 670 description "Peer identifier for the case when backup 671 type is PeerNodeSid"; 672 } 674 leaf backup-sid { 675 type sid-type; 676 description 677 "Backup SID (of a EPE Peer, Peer Adjacency or Peer-Set) to be 678 used as backup for this EPE"; 679 } 680 } 681 } 683 grouping epe-config { 684 description "Egress Peer Engineering (EPE) config grouping"; 685 container egress-peer-engineering { 686 description "Egress Peer Engineering (EPE) config under BGP Peer"; 688 uses epe-sid-alloc-mode; 690 leaf peer-set-name { 691 type string; 692 description "Make this EPE peer a member of the named 693 Peer Set."; 694 } 696 uses epe-backup-info; 698 list peer-adjacency { 699 key first-hop-ipaddress; 700 description "EPE parameters for the adjacency links 701 over which multi-hop peering is setup"; 703 leaf first-hop-ipaddress { 704 type inet:ip-address; 705 description "First hop IP address of the link"; 706 } 708 leaf first-hop-interface { 709 type string; 710 config false; 711 description "The interface corresponding to the link"; 712 } 714 uses epe-sid-alloc-mode; 715 uses epe-backup-info; 716 } 717 } 718 } 720 // 721 // SR Policy Related Groupings 722 // 723 //Color and Endpoint of the SR Policy 724 grouping sr-policy-color-endpoint { 725 description "Common grouping for SR Policy Color and 726 Endpoint"; 727 leaf color { 728 type uint32; 729 description "Color of the policy"; 730 } 732 leaf end-point { 733 type inet:ip-address; 734 description "Endpoint of the policy"; 735 } 736 } 737 // Authorized colors for On Demand SR Policy programming 738 grouping sr-odn-auth-colors { 739 description 740 "Authorized colors for On Demand (dynamic) SR Policies 741 towards BGP nexthops"; 742 container authorized-colors { 743 config false; 744 description 745 "Authorized colors for On Demand (dynamic) SR policies 746 towards BGP nexthops"; 747 list colors { 748 key "color"; 749 description "List of SR Policy Colors"; 750 leaf color { 751 type uint32; 752 description "Color value"; 753 } 754 } 755 } 756 } 757 grouping sr-policy-cmn-state { 758 description "Common state parameters applicable to 759 SR Policies"; 760 leaf policy-state { 761 type enumeration { 762 enum UP { 763 description "SR Policy state UP"; 764 } 765 enum DOWN { 766 description "SR Policy state DOWN"; 767 } 768 } 769 description "SR Policy forwarding state"; 770 } 772 leaf binding-sid { 773 type sid-type; 774 description "Binding SID of the SR Policy"; 775 } 777 leaf steering-disabled { 778 type empty; 779 description "This attribute is set if steering 780 is disabled on this SR policy"; 781 } 783 leaf ref-count { 784 type uint32; 785 description "Count of routes steering over this policy"; 786 } 787 } 789 // 790 // SR Policy State grouping 791 // 792 grouping sr-policy-state { 793 description "SR Policy State"; 794 container policy-state { 795 config false; 796 description "SR Policy State"; 797 list sr-policy { 798 key "color end-point"; 799 description "List of SR Policies"; 801 uses sr-policy-color-endpoint; 803 // State of the SR Policy in BGP 804 uses sr-policy-cmn-state; 805 } 806 } 807 } 809 grouping sr-exp-policy-cp-state { 810 description "State of BGP signaled SR Policy (explicit) 811 candidate paths"; 812 container explicit-policies { 813 config false; 814 description "BGP signaled explicit SR Policies"; 815 list sr-policy { 816 key "distinguisher color end-point"; 817 description "List of BGP signaled explicit SR Policies"; 818 leaf distinguisher { 819 type uint32; 820 description "Distinguisher of the SR Policy 821 candidate path"; 822 } 824 uses sr-policy-color-endpoint; 826 leaf preference { 827 type uint32; 828 description "Preference of the SR Policy candidate path"; 829 } 831 container explicit-binding-sid { 832 description "Explicitly supplied Binding SID 833 for this policy"; 834 leaf binding-sid { 835 type sid-type; 836 description "Binding SID value"; 837 } 838 leaf strict { 839 type boolean; 840 description "Boolean indicating that the node 841 must use only the supplied Binding SID 842 for this SR Policy. 843 reference: TBD"; 844 } 845 leaf drop-on-invalid { 846 type boolean; 847 description "Boolean to indicate drop upon invalid 848 policy, behavior. This overwrites the 849 default behavior of fallback to IGP path 850 , when SR Policy is (or becomes) invalid. 851 reference: TBD"; 853 } 854 } 856 leaf usable { 857 type boolean; 858 description "Boolean to indicate that the SR Policy is 859 usable on this node. 860 reference: TBD"; 861 } 863 leaf registered { 864 type boolean; 865 description "Boolean to indicate that the SR policy 866 is registered with policy manager to 867 install the corresponding forwarding entry"; 869 } 871 // TODO: Segment Lists and other parameters from SR Policy model 872 // to be imported here. 873 } 874 } 875 } 877 grouping sr-odn-policies { 878 description "SR On Demand (dynamic) SR Policies"; 879 container installed-policies { 880 config false; 881 description "BGP triggered On Demand (dynamic) SR Policies 882 corresponding to the BGP nexthops"; 883 list sr-policy { 884 key "color end-point"; 885 description "SR Policy list"; 886 uses sr-policy-color-endpoint; 887 } 888 } 889 } 891 grouping sr-policy-steering-state { 892 description "Per route Automatic Steering parameters"; 893 container automatic-steering { 894 description "Per route Automatic Steering parameters"; 895 leaf color { 896 type leafref { 897 path "/bgp:bgp/bgp:global/bgp-sr:segment-routing/" + 898 "bgp-sr:policy-state/bgp-sr:sr-policy/" + 899 "bgp-sr:color"; 900 } 901 description "Color of the SR Policy being used for 902 Automatic Steering"; 903 } 904 leaf end-point { 905 type leafref { 906 path "/bgp:bgp/bgp:global/bgp-sr:segment-routing/" + 907 "bgp-sr:policy-state/bgp-sr:sr-policy/" + 908 "bgp-sr:end-point"; 909 } 910 description "End-point of the SR Policy being used 911 for Automatic Steering"; 912 } 913 leaf co-flag { 914 type enumeration { 915 enum 00 { 916 description "Color-Only flag 00"; 917 } 918 enum 01 { 919 description "Color-Only flag 01"; 920 } 921 enum 10 { 922 description "Color-Only flag 10"; 923 } 924 } 925 default "00"; 926 description "Color-Only (CO) flags applicable for 927 Automatic Steering of this route"; 928 } 929 leaf binding-sid { 930 type leafref { 931 path "/bgp:bgp/bgp:global/bgp-sr:segment-routing/" + 932 "bgp-sr:policy-state/bgp-sr:sr-policy/" + 933 "bgp-sr:binding-sid"; 934 } 935 description "Binding SID of the SR Policy"; 936 } 937 } 938 } 940 grouping route-key-leafs { 941 description "Grouping for key leafs identifying a route"; 942 leaf prefix { 943 type union { 944 type inet:ip-prefix; 945 type string; 946 } 947 description "BGP Prefix. This is a temp definition to 948 cover ip-prefix and other NLRI formats. 950 Import the type once defined in base 951 BGP RIB model"; 952 } 953 leaf neighbor { 954 type inet:ip-address; 955 description "BGP Neighbor"; 956 } 957 leaf add-path-id { 958 type uint32; 959 description "Add-path ID"; 960 } 961 } 963 grouping common-bgp-route-grouping { 964 description "BGP route list" ; 965 container routes { 966 config false; 967 description "BGP Route in local RIB"; 968 list route { 969 key "prefix neighbor add-path-id"; 970 description "BGP route list"; 971 uses route-key-leafs; 972 } 973 } 974 } 976 grouping common-bgp-vpn-route-grouping { 977 description "BGP route list" ; 978 container routes { 979 config false; 980 description "BGP VPN Route in local RIB"; 981 list route { 982 key "rd prefix neighbor add-path-id"; 983 description "Route List"; 985 leaf rd { 986 type rt-types:route-distinguisher; 987 description "Route Distinguisher"; 988 } 989 uses route-key-leafs; 990 } 991 } 992 } 994 // 995 // SRv6 extensions related Groupings 996 // 997 // SRv6 VPN Sid allocation mode 998 grouping srv6-sid-mode { 999 description "SRv6 VPN SID allocation mode"; 1000 leaf sid-alloc-mode { 1001 type enumeration { 1002 enum per-ce { 1003 description "Allocate SRv6 SID per CE"; 1004 } 1005 enum per-route { 1006 description "Allocate SRv6 SID per prefix"; 1007 } 1008 enum per-vpn { 1009 description "Allocate SRv6 SID per VPN"; 1010 } 1011 } 1012 description "BGP SRv6 SID allocation model"; 1013 } 1014 } 1016 grouping srv6-attr-sid-info { 1017 description "SRv6 SID info per route"; 1018 container srv6 { 1019 description "Per Route SRv6 parameters"; 1020 list received-sids { 1021 key "received-sid"; 1022 description "List of received SRv6 SIDs"; 1023 leaf received-sid { 1024 type srv6-types:srv6-sid; 1025 description "Received SID"; 1026 } 1027 } 1028 list local-sids { 1029 key "local-sid"; 1030 description "List of local SRv6 SIDs"; 1031 leaf local-sid { 1032 type srv6-types:srv6-sid; 1033 description "Local SID"; 1034 } 1035 leaf locator { 1036 type string; 1037 description "SRv6 Locator"; 1038 } 1039 } 1040 } 1041 } 1043 // 1044 // BGP Specific Paramters 1045 // 1046 // Augment AF with route list 1047 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1048 "bgp:afi-safi/bgp:ipv4-unicast" { 1049 description 1050 "Augment BGP SAFI route"; 1051 uses common-bgp-route-grouping; 1052 } 1053 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1054 "bgp:afi-safi/bgp:ipv6-unicast" { 1055 description 1056 "Augment BGP SAFI route"; 1057 uses common-bgp-route-grouping; 1058 } 1059 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1060 "bgp:afi-safi/bgp:ipv4-labeled-unicast" { 1061 description 1062 "Augment BGP SAFI route"; 1063 uses common-bgp-route-grouping; 1065 } 1066 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1067 "bgp:afi-safi/bgp:ipv6-labeled-unicast" { 1068 description 1069 "Augment BGP SAFI route"; 1070 uses common-bgp-route-grouping; 1071 } 1072 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1073 "bgp:afi-safi/bgp:l3vpn-ipv4-unicast" { 1074 description 1075 "Augment BGP SAFI route"; 1076 uses common-bgp-vpn-route-grouping; 1077 } 1078 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1079 "bgp:afi-safi/bgp:l3vpn-ipv6-unicast" { 1080 description 1081 "Augment BGP SAFI route"; 1082 uses common-bgp-vpn-route-grouping; 1083 } 1084 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1085 "bgp:afi-safi/bgp:l2vpn-evpn" { 1086 description 1087 "Augment BGP SAFI route"; 1088 uses common-bgp-vpn-route-grouping; 1089 } 1091 // SR Prefix SID Related. 1092 // Prefix SID label index config via Route Policy 1093 augment "/rpol:routing-policy/" + 1094 "rpol:policy-definitions/rpol:policy-definition/" + 1095 "rpol:statements/rpol:statement/" + 1096 "rpol:actions/bgp-pol:bgp-actions" { 1097 description 1098 "BGP policy actions to set label index"; 1099 leaf set-label-index { 1100 type uint32; 1101 description "Label Index"; 1102 } 1103 } 1105 // Prefix SID label in SAFI route 1106 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1107 "bgp:afi-safi/bgp:ipv4-labeled-unicast/bgp-sr:routes/bgp-sr:route" { 1108 description 1109 "Augment BGP AF Table for SR prefix sid Labels info"; 1110 uses sr-route-prefix-sid; 1111 } 1112 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1113 "bgp:afi-safi/bgp:ipv6-labeled-unicast/bgp-sr:routes/bgp-sr:route" { 1114 description 1115 "Augment BGP AF Table for SR prefix sid Labels info"; 1116 uses sr-route-prefix-sid; 1117 } 1119 // TBD: SR Mapping server related parameters. 1121 // Egress Peer Engineering (EPE) related. 1122 // EPE config under neighbor 1123 augment "/bgp:bgp/bgp:neighbors/bgp:neighbor" { 1124 description 1125 "Egress Peer Engineering data"; 1126 uses epe-config; 1127 } 1128 augment "/bgp:bgp/bgp:peer-groups/bgp:peer-group" { 1129 description 1130 "Egress Peer Engineering data"; 1131 uses epe-config; 1132 } 1134 // SR Policy Related 1135 // On Demand authorized colors table 1136 // SR Policy state data 1137 augment "/bgp:bgp/bgp:global" { 1138 description 1139 "Segment Routing parameters in BGP global model"; 1140 container segment-routing { 1141 description "Segment Routing parameters"; 1142 container on-demand-policies { 1143 description 1144 "Segment Routing On Demand Nexthop 1145 (ODN) SR Policies"; 1146 uses sr-odn-auth-colors; 1147 uses sr-odn-policies; 1148 } 1149 uses sr-policy-state; 1150 } 1151 } 1153 // Steering state in overlay BGP routes 1154 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1155 "bgp:afi-safi/bgp:ipv4-unicast/bgp-sr:routes/bgp-sr:route" { 1156 description 1157 "Augment BGP SAFI route with steering info"; 1158 uses sr-policy-steering-state; 1159 } 1160 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1161 "bgp:afi-safi/bgp:ipv6-unicast/bgp-sr:routes/bgp-sr:route" { 1162 description 1163 "Augment BGP SAFI route with steering info"; 1164 uses sr-policy-steering-state; 1165 } 1166 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1167 "bgp:afi-safi/bgp:ipv4-labeled-unicast/bgp-sr:routes/bgp-sr:route" { 1168 description 1169 "Augment BGP SAFI route with steering info"; 1170 uses sr-policy-steering-state; 1171 } 1172 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1173 "bgp:afi-safi/bgp:ipv6-labeled-unicast/bgp-sr:routes/bgp-sr:route" { 1174 description 1175 "Augment BGP SAFI route with steering info"; 1176 uses sr-policy-steering-state; 1177 } 1178 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1179 "bgp:afi-safi/bgp:l3vpn-ipv4-unicast/bgp-sr:routes/bgp-sr:route" { 1180 description 1181 "Augment BGP SAFI route with steering info"; 1182 uses sr-policy-steering-state; 1183 } 1184 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1185 "bgp:afi-safi/bgp:l3vpn-ipv6-unicast/bgp-sr:routes/bgp-sr:route" { 1186 description 1187 "Augment BGP SAFI route with steering info"; 1188 uses sr-policy-steering-state; 1190 } 1191 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1192 "bgp:afi-safi/bgp:l2vpn-evpn/bgp-sr:routes/bgp-sr:route" { 1193 description 1194 "Augment BGP SAFI route with steering info"; 1195 uses sr-policy-steering-state; 1196 } 1198 // BGP Signaled SR Policy explicit candidate paths state 1199 augment "/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi" { 1200 description "Augment IPv4 SR Policy SAFI list entry"; 1201 container ipv4-srpolicy { 1202 when "../afi-safi-name = 'bgp-types:IPV4_SRPOLICY'" { 1203 description 1204 "Include this container for IPv4 SR Policy specific 1205 configuration"; 1206 } 1207 description "IPv4 SR Policy specific parameters"; 1208 uses sr-exp-policy-cp-state; 1209 } 1210 } 1212 augment "/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi" { 1213 description "Augment IPv6 SR Policy SAFI list entry"; 1214 container ipv6-srpolicy { 1215 when "../afi-safi-name = 'bgp-types:IPV6_SRPOLICY'" { 1216 description 1217 "Include this container for IPv6 SR Policy specific 1218 configuration"; 1219 } 1220 description "IPv6 SR Policy specific parameters"; 1221 uses sr-exp-policy-cp-state; 1222 } 1223 } 1225 // SRv6 VPN SID allocation mode configuration. 1226 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1227 "bgp:afi-safi/bgp:ipv4-unicast" { 1228 description 1229 "Augment BGP global IPv4 unicast AF mode 1230 to add SR specific parameters"; 1231 container segment-routing { 1232 description "Segment Routing specific parameters"; 1233 container srv6 { 1234 description "SRv6 specific parameters"; 1235 uses srv6-sid-mode; 1236 } 1237 } 1239 } 1241 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1242 "bgp:afi-safi/bgp:ipv6-unicast" { 1243 description 1244 "Augment BGP global IPv6 unicast AF mode 1245 to add SR specific parameters"; 1246 container segment-routing { 1247 description "Segment Routing specific parameters"; 1248 container srv6 { 1249 description "SRv6 specific parameters"; 1250 uses srv6-sid-mode; 1251 } 1252 } 1253 } 1255 // SRv6 local and remote sids per route. 1256 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1257 "bgp:afi-safi/bgp:ipv4-unicast/bgp-sr:routes/bgp-sr:route" { 1258 description 1259 "Augment AF route with SRv6 SID info"; 1260 uses srv6-attr-sid-info; 1261 } 1262 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1263 "bgp:afi-safi/bgp:ipv6-unicast/bgp-sr:routes/bgp-sr:route" { 1264 description 1265 "Augment AF route with SRv6 SID info"; 1266 uses srv6-attr-sid-info; 1267 } 1269 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1270 "bgp:afi-safi/bgp:l3vpn-ipv4-unicast/routes/route" { 1271 description 1272 "Augment AF route with SRv6 SID info"; 1273 uses srv6-attr-sid-info; 1274 } 1276 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1277 "bgp:afi-safi/bgp:l3vpn-ipv6-unicast/bgp-sr:routes/bgp-sr:route" { 1278 description 1279 "Augment AF route with SRv6 SID info"; 1280 uses srv6-attr-sid-info; 1281 } 1283 augment "/bgp:bgp/bgp:global/bgp:afi-safis/" + 1284 "bgp:afi-safi/bgp:l2vpn-evpn/bgp-sr:routes/bgp-sr:route" { 1285 description 1286 "Augment AF route with SRv6 SID info"; 1288 uses srv6-attr-sid-info; 1289 } 1290 } 1292 1294 5. IANA Considerations 1296 6. Security Considerations 1298 The transport protocol used for sending the BGP Segment Routing data 1299 MUST support authentication and SHOULD support encryption. The data- 1300 model by itself does not create any security implications. 1302 This draft does not change any underlying security issues inherent in 1303 [I-D.ietf-idr-bgp-model]. 1305 7. Acknowledgements 1307 The authors would like to thank TBD for their detail reviews and 1308 comments. 1310 8. References 1312 8.1. Normative References 1314 [I-D.dawra-idr-srv6-vpn] 1315 Dawra, G., Filsfils, C., Dukes, D., Brissette, P., 1316 Camarillo, P., Leddy, J., daniel.voyer@bell.ca, d., 1317 daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R., 1318 Decraene, B., and S. Matsushima, "BGP Signaling of IPv6- 1319 Segment-Routing-based VPN Networks", draft-dawra-idr- 1320 srv6-vpn-03 (work in progress), December 2017. 1322 [I-D.filsfils-spring-srv6-network-programming] 1323 Filsfils, C., Li, Z., Leddy, J., daniel.voyer@bell.ca, d., 1324 daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R., 1325 Matsushima, S., Lebrun, D., Decraene, B., Peirens, B., 1326 Salsano, S., Naik, G., Elmalky, H., Jonnalagadda, P., and 1327 M. Sharif, "SRv6 Network Programming", draft-filsfils- 1328 spring-srv6-network-programming-04 (work in progress), 1329 March 2018. 1331 [I-D.ietf-6man-segment-routing-header] 1332 Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and 1333 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 1334 (SRH)", draft-ietf-6man-segment-routing-header-13 (work in 1335 progress), May 2018. 1337 [I-D.ietf-idr-bgp-model] 1338 Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K., 1339 Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and 1340 X. Liu, "BGP Model for Service Provider Networks", draft- 1341 ietf-idr-bgp-model-02 (work in progress), July 2016. 1343 [I-D.ietf-idr-bgp-prefix-sid] 1344 Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A., 1345 and H. Gredler, "Segment Routing Prefix SID extensions for 1346 BGP", draft-ietf-idr-bgp-prefix-sid-18 (work in progress), 1347 March 2018. 1349 [I-D.ietf-idr-segment-routing-te-policy] 1350 Previdi, S., Filsfils, C., Jain, D., Mattes, P., Rosen, 1351 E., and S. Lin, "Advertising Segment Routing Policies in 1352 BGP", draft-ietf-idr-segment-routing-te-policy-03 (work in 1353 progress), May 2018. 1355 [I-D.ietf-netmod-rfc6087bis] 1356 Bierman, A., "Guidelines for Authors and Reviewers of YANG 1357 Data Model Documents", draft-ietf-netmod-rfc6087bis-20 1358 (work in progress), March 2018. 1360 [I-D.ietf-rtgwg-ni-model] 1361 Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. 1362 Liu, "YANG Network Instances", draft-ietf-rtgwg-ni- 1363 model-04 (work in progress), September 2017. 1365 [I-D.ietf-rtgwg-routing-types] 1366 Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger, 1367 "Routing Area Common YANG Data Types", draft-ietf-rtgwg- 1368 routing-types-17 (work in progress), October 2017. 1370 [I-D.ietf-spring-segment-routing] 1371 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 1372 Litkowski, S., and R. Shakir, "Segment Routing 1373 Architecture", draft-ietf-spring-segment-routing-15 (work 1374 in progress), January 2018. 1376 [I-D.ietf-spring-segment-routing-policy] 1377 Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., 1378 bogdanov@google.com, b., and P. Mattes, "Segment Routing 1379 Policy Architecture", draft-ietf-spring-segment-routing- 1380 policy-01 (work in progress), June 2018. 1382 [I-D.raza-spring-srv6-yang] 1383 Raza, K., Rajamanickam, J., Liu, X., Hu, Z., Hussain, I., 1384 Shah, H., daniel.voyer@bell.ca, d., Elmalky, H., 1385 Matsushima, S., Horiba, K., and A. Abdelsalam, "YANG Data 1386 Model for SRv6 Base and Static", draft-raza-spring- 1387 srv6-yang-01 (work in progress), March 2018. 1389 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1390 Requirement Levels", BCP 14, RFC 2119, 1391 DOI 10.17487/RFC2119, March 1997, 1392 . 1394 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1395 the Network Configuration Protocol (NETCONF)", RFC 6020, 1396 DOI 10.17487/RFC6020, October 2010, 1397 . 1399 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1400 and A. Bierman, Ed., "Network Configuration Protocol 1401 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1402 . 1404 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1405 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1406 May 2017, . 1408 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1409 and R. Wilton, "Network Management Datastore Architecture 1410 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1411 . 1413 8.2. Informative References 1415 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 1416 RFC 7951, DOI 10.17487/RFC7951, August 2016, 1417 . 1419 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1420 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1421 . 1423 Authors' Addresses 1425 Dhanendra Jain 1426 Cisco 1427 170 W. Tasman Drive 1428 San Jose, CA 95134 1429 USA 1431 Email: dhjain@cisco.com 1433 Kamran Raza 1434 Cisco 1435 2000 Innovation Drive 1436 Kanata, ON K2K-3E8 1437 CA 1439 Email: skraza@cisco.com 1441 Bruno Decraene 1442 Orange 1443 France 1445 Email: bruno.decraene@orange.com 1447 Zhichun Jiang 1448 Tencent 1450 Email: zcjiang@tencent.com