idnits 2.17.1 draft-deevi-idr-bgp-srte-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 94 instances of too long lines in the document, the longest one being 102 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 215 has weird spacing: '...o color uin...' == Line 219 has weird spacing: '...d-point ine...' == 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 (September 27, 2020) is 1305 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-09 == Outdated reference: A later version (-26) exists of draft-ietf-idr-segment-routing-te-policy-09 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-policy-08 == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-16 Summary: 1 error (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Inter-Domain Routing Working Group K. Deevi 3 Internet-Draft K. Raza 4 Intended status: Standards Track Cisco 5 Expires: January 8, 2021 K. Majumdar 6 Commscope 7 B. Decraene 8 Orange 9 Z. Jiang 10 Tencent 11 September 27, 2020 13 YANG data model for BGP Segment Routing TE Extensions 14 draft-deevi-idr-bgp-srte-yang-00 16 Abstract 18 This document defines a YANG data model that can be used to configure 19 and manage Segment Routing TE extensions in BGP. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on January 8, 2021. 38 Copyright Notice 40 Copyright (c) 2020 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 This document may contain material from IETF Documents or IETF 54 Contributions published or made publicly available before November 55 10, 2008. The person(s) controlling the copyright in some of this 56 material may not have granted the IETF Trust the right to allow 57 modifications of such material outside the IETF Standards Process. 58 Without obtaining an adequate license from the person(s) controlling 59 the copyright in such materials, this document may not be modified 60 outside the IETF Standards Process, and derivative works of it may 61 not be created outside the IETF Standards Process, except to format 62 it for publication as an RFC or to translate it into languages other 63 than English. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 68 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 69 2. BGP Segment Routing Traffic Engineering Yang model . . . . . 3 70 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 71 2.2. SR Policy . . . . . . . . . . . . . . . . . . . . . . . . 4 72 2.3. Automatic Steering . . . . . . . . . . . . . . . . . . . 4 73 3. Yang Tree . . . . . . . . . . . . . . . . . . . . . . . . . . 5 74 3.1. SR Policy . . . . . . . . . . . . . . . . . . . . . . . . 5 75 3.2. Automatic Steering . . . . . . . . . . . . . . . . . . . 8 76 4. Yang Module . . . . . . . . . . . . . . . . . . . . . . . . . 9 77 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 25 78 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 79 7. Security Considerations . . . . . . . . . . . . . . . . . . . 26 80 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 81 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 82 9.1. Normative References . . . . . . . . . . . . . . . . . . 26 83 9.2. Informative References . . . . . . . . . . . . . . . . . 27 84 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 86 1. Introduction 88 YANG [RFC6020] is a data definition language that was introduced to 89 define the contents of a conceptual data store that allows networked 90 devices to be managed using NETCONF [RFC6241]. YANG is proving 91 relevant beyond its initial confines, as bindings to other interfaces 92 (e.g. ReST) [RFC8040] and encodings other than XML (e.g. JSON) 93 [RFC7951] are being defined. Furthermore, YANG data models can be 94 used as the basis of implementation for other interfaces, such as CLI 95 and programmatic APIs. 97 This document defines the YANG model for Segment Routing TE specific 98 extensions in BGP. 100 1.1. Requirements Language 102 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 103 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 104 "OPTIONAL" in this document are to be interpreted as described in BCP 105 14 [RFC2119] [RFC8174] when, and only when, they appear in all 106 capitals, as shown here. 108 2. BGP Segment Routing Traffic Engineering Yang model 110 2.1. Overview 112 Segment Routing (SR), as defined in [RFC8402], leverages the source 113 routing paradigm where a node steers a packet through an ordered list 114 of instructions, called segments. SR, thus, allows enforcing a flow 115 through any topological path and/or service chain while maintaining 116 per-flow state only at the ingress nodes to the SR domain. 118 When applied to ipv6 data-plane (i.e. SRv6), the ordered set of 119 instructions are realized via SRv6 SIDs. The various functions and 120 behaviors corresponding to network programming using SRv6 are 121 specified in [I-D.ietf-spring-srv6-network-programming]. 123 This document defines Yang model for the Segment Routing TE 124 extensions applicable for BGP as following: 126 o BGP signaled SR Policy as described in 127 [I-D.ietf-idr-segment-routing-te-policy]. 129 o Automatic Steering as described in 130 [I-D.ietf-spring-segment-routing-policy] and 131 [I-D.ietf-idr-segment-routing-te-policy]. 133 The Yang extensions proposed in this model augment the base BGP model 134 defined in [I-D.ietf-idr-bgp-model]. 136 Note: Base BGP model does not have a common structure for BGP RIB. 137 The placeholder containers defined in this model can be removed once 138 base BGP model has the BGP RIB structure. 140 The modeling in this document complies with the Network Management 141 Datastore Architecture (NMDA) [RFC8342]. The operational state data 142 is combined with the associated configuration data in the same 143 hierarchy [RFC8407]. When protocol states are retrieved from the 144 NMDA operational state datastore, the returned states cover all 145 "config true" (rw) and "config false" (ro) nodes defined in the 146 schema. 148 2.2. SR Policy 150 Architecture for SR Policies is described in 151 [I-D.ietf-spring-segment-routing-policy]. BGP Signaled SR Policies 152 are described in the [I-D.ietf-idr-segment-routing-te-policy]. 153 Following Yang extensions for SR Policy configuration and state data 154 are applicable: 156 o Addition of identies extending the BGP-AFI-SAFI base identity. 157 This is to add two new address families namely IPv4 SR-policy and 158 IPv6 SR-policy, as described in 159 [I-D.ietf-idr-segment-routing-te-policy]. 161 o BGP Signaled SR Policy candidate paths. These refer to the 162 explicit candidate paths signaled via BGP as SAFI NLRIs, state of 163 which is applicable in the context of BGP speaker process. This 164 is modeled by adding SR Policy address family specific container 165 under generic BGP afi-safi list entry defined in the base BGP 166 model [I-D.ietf-idr-bgp-model]. 168 o On Demand SR Policy candidate paths. These refer to the dynamic 169 candidate paths as described in 170 [I-D.ietf-spring-segment-routing-policy]. There are two parts to 171 this in the context of BGP. A set of authorized SR Policy colors 172 for on demand policy triggers, and the actual instantiated 173 candidate paths per BGP next-hop. New containers and lists are 174 added under BGP global mode to model this information. 176 o SR Policy state in the context of BGP speaker. This represents 177 the state SR Policies (regardless of method of instantiation per 178 candidate path). The SR Policy state is maintained in the context 179 of BGP speaker process to realize the Automatic Steering of 180 overlay routes. Automatic Steering extensions are described in 181 the next section. 183 Note: The common parameters and datatypes for the SR Policy, 184 currently defined in this model, should be imported from SR Policy 185 Manager model, once available. 187 2.3. Automatic Steering 189 Automatic Steering (AS) refers to the ability to forward traffic over 190 a SR Policy on the head-end, as described in 191 [I-D.ietf-spring-segment-routing-policy]. When a BGP route is 192 received with the color extended community and if the color value 193 matches the color of an authorized SR Policy installed on the head- 194 end, the route is programmed to resolve over SR Policy in forwarding. 195 Automatic Steering information associated with the BGP routes is 196 modeled as state information per route. 198 TBD: The configuration parameters for Automatic Steering are yet to 199 be added as an augmentation to the BGP route policy model. Such as, 200 extensions for opaque color extended community in BGP policy model, 201 and the Color Only (CO) flags controlling the Automatic Steering 202 behavior as described in [I-D.ietf-idr-segment-routing-te-policy]. 204 3. Yang Tree 206 3.1. SR Policy 208 On Demand Nexthop (ODN) policies triggered by BGP 210 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global: 211 +--rw segment-routing 212 +--rw on-demand-policies 213 | +--ro authorized-colors 214 | | +--ro colors* [color] 215 | | +--ro color uint32 216 | +--ro installed-policies 217 | +--ro sr-policy* [color end-point] 218 | +--ro color uint32 219 | +--ro end-point inet:ip-address 220 +--ro policy-state 221 +--ro sr-policy* [color end-point] 222 +--ro color uint32 223 +--ro end-point inet:ip-address 224 +--ro policy-state? enumeration 225 +--ro binding-sid? sid-type 226 +--ro steering-disabled? empty 227 +--ro ref-count? uint32 229 BGP Signaled Explicit SR Policies under ipv4 and ipv6 SR-Policy SAFI 231 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi: 232 +--rw ipv4-srpolicy 233 +--ro explicit-policies 234 +--ro sr-policy* [distinguisher color end-point] 235 +--ro distinguisher uint32 236 +--ro color uint32 237 +--ro end-point inet:ip-address 238 +--ro preference? uint32 239 +--ro explicit-binding-sid 240 | +--ro binding-sid? sid-type 241 | +--ro strict? boolean 242 | +--ro drop-on-invalid? boolean 243 +--ro usable? boolean 244 +--ro registered? boolean 245 +--ro segment-lists 246 +--ro segment-list* [weight] 247 +--ro weight uint32 248 +--ro segments 249 +--ro segment* [index] 250 +--ro index uint32 251 +--ro type? segment-type 252 +--ro segment-types 253 +--ro segment-type-1 254 | +--ro sid-value? rt-types:mpls-label 255 +--ro segment-type-2 256 | +--ro sid-value? srv6-types:srv6-sid 257 +--ro segment-type-3 258 | +--ro ipv4-address? inet:ipv4-address 259 | +--ro algorithm? uint8 260 +--ro segment-type-4 261 | +--ro ipv6-address? inet:ipv6-address 262 | +--ro algorithm? uint8 263 +--ro segment-type-5 264 | +--ro ipv4-address? inet:ipv4-address 265 | +--ro interface-identifier? uint32 266 +--ro segment-type-6 267 | +--ro local-ipv4-address? inet:ipv4-address 268 | +--ro remote-ipv4-address? inet:ipv4-address 269 +--ro segment-type-7 270 | +--ro local-ipv6-address? inet:ipv6-address 271 | +--ro local-interface-identifier? uint32 272 | +--ro remote-ipv6-address? inet:ipv6-address 273 | +--ro remote-interface-identifier? uint32 274 +--ro segment-type-8 275 | +--ro local-ipv6-address? inet:ipv6-address 276 | +--ro remote-ipv6-address? inet:ipv6-address 277 +--ro segment-type-9 278 | +--ro ipv6-address? inet:ipv6-address 279 | +--ro algorithm? uint8 280 +--ro segment-type-10 281 | +--ro local-ipv6-address? inet:ipv6-address 282 | +--ro local-interface-identifier? uint32 283 | +--ro remote-ipv6-address? inet:ipv6-address 284 | +--ro remote-interface-identifier? uint32 285 +--ro segment-type-11 286 +--ro local-ipv6-address? inet:ipv6-address 287 +--ro remote-ipv6-address? inet:ipv6-address 288 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi: 290 +--rw ipv6-srpolicy 291 +--ro explicit-policies 292 +--ro sr-policy* [distinguisher color end-point] 293 +--ro distinguisher uint32 294 +--ro color uint32 295 +--ro end-point inet:ip-address 296 +--ro preference? uint32 297 +--ro explicit-binding-sid 298 | +--ro binding-sid? sid-type 299 | +--ro strict? boolean 300 | +--ro drop-on-invalid? boolean 301 +--ro usable? boolean 302 +--ro registered? boolean 303 +--ro segment-lists 304 +--ro segment-list* [weight] 305 +--ro weight uint32 306 +--ro segments 307 +--ro segment* [index] 308 +--ro index uint32 309 +--ro type? segment-type 310 +--ro segment-types 311 +--ro segment-type-1 312 | +--ro sid-value? rt-types:mpls-label 313 +--ro segment-type-2 314 | +--ro sid-value? srv6-types:srv6-sid 315 +--ro segment-type-3 316 | +--ro ipv4-address? inet:ipv4-address 317 | +--ro algorithm? uint8 318 +--ro segment-type-4 319 | +--ro ipv6-address? inet:ipv6-address 320 | +--ro algorithm? uint8 321 +--ro segment-type-5 322 | +--ro ipv4-address? inet:ipv4-address 323 | +--ro interface-identifier? uint32 324 +--ro segment-type-6 325 | +--ro local-ipv4-address? inet:ipv4-address 326 | +--ro remote-ipv4-address? inet:ipv4-address 327 +--ro segment-type-7 328 | +--ro local-ipv6-address? inet:ipv6-address 329 | +--ro local-interface-identifier? uint32 330 | +--ro remote-ipv6-address? inet:ipv6-address 331 | +--ro remote-interface-identifier? uint32 332 +--ro segment-type-8 333 | +--ro local-ipv6-address? inet:ipv6-address 334 | +--ro remote-ipv6-address? inet:ipv6-address 335 +--ro segment-type-9 336 | +--ro ipv6-address? inet:ipv6-address 337 | +--ro algorithm? uint8 338 +--ro segment-type-10 339 | +--ro local-ipv6-address? inet:ipv6-address 340 | +--ro local-interface-identifier? uint32 341 | +--ro remote-ipv6-address? inet:ipv6-address 342 | +--ro remote-interface-identifier? uint32 343 +--ro segment-type-11 344 +--ro local-ipv6-address? inet:ipv6-address 345 +--ro remote-ipv6-address? inet:ipv6-address 347 3.2. Automatic Steering 349 Yang Tree for Automatic Steering with example of ipv4-unicast SAFI 351 module: ietf-bgp-srte 352 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast: 353 +--ro routes 354 +--ro route* [prefix neighbor add-path-id] 355 +--ro prefix union 356 +--ro neighbor inet:ip-address 357 +--ro add-path-id uint32 358 +--ro automatic-steering 359 +--ro color? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/color 360 +--ro end-point? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/end-point 361 +--ro co-flag? enumeration 362 +--ro binding-sid? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/binding-sid 363 augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-unicast: 364 +--ro routes 365 +--ro route* [prefix neighbor add-path-id] 366 +--ro prefix union 367 +--ro neighbor inet:ip-address 368 +--ro add-path-id uint32 369 +--ro automatic-steering 370 +--ro color? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/color 371 +--ro end-point? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/end-point 372 +--ro co-flag? enumeration 373 +--ro binding-sid? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/binding-sid 374 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: 375 +--ro routes 376 +--ro route* [prefix neighbor add-path-id] 377 +--ro prefix union 378 +--ro neighbor inet:ip-address 379 +--ro add-path-id uint32 380 +--ro automatic-steering 381 +--ro color? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/color 382 +--ro end-point? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/end-point 383 +--ro co-flag? enumeration 384 +--ro binding-sid? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/binding-sid 386 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: 387 +--ro routes 388 +--ro route* [prefix neighbor add-path-id] 389 +--ro prefix union 390 +--ro neighbor inet:ip-address 391 +--ro add-path-id uint32 392 +--ro automatic-steering 393 +--ro color? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/color 394 +--ro end-point? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/end-point 395 +--ro co-flag? enumeration 396 +--ro binding-sid? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/binding-sid 397 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: 398 +--ro routes 399 +--ro route* [rd prefix neighbor add-path-id] 400 +--ro rd rt-types:route-distinguisher 401 +--ro prefix union 402 +--ro neighbor inet:ip-address 403 +--ro add-path-id uint32 404 +--ro automatic-steering 405 +--ro color? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/color 406 +--ro end-point? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/end-point 407 +--ro co-flag? enumeration 408 +--ro binding-sid? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/binding-sid 409 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: 410 +--ro routes 411 +--ro route* [rd prefix neighbor add-path-id] 412 +--ro rd rt-types:route-distinguisher 413 +--ro prefix union 414 +--ro neighbor inet:ip-address 415 +--ro add-path-id uint32 416 +--ro automatic-steering 417 +--ro color? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/color 418 +--ro end-point? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/end-point 419 +--ro co-flag? enumeration 420 +--ro binding-sid? -> /rt:routing/control-plane-protocols/control-plane-protocol/bgp:bgp/global/ietf-bgp-srte:segment-routing/policy-state/sr-policy/binding-sid 422 ... 424 4. Yang Module 426 file "ietf-bgp-srte@2019-07-07.yang" 428 module ietf-bgp-srte { 430 namespace "urn:ietf:params:xml:ns:yang:ietf-bgp-srte"; 431 prefix "ietf-bgp-srte"; 433 import ietf-routing-types { 434 prefix rt-types; 435 } 437 import ietf-routing { 438 prefix "rt"; 439 } 441 import ietf-inet-types { 442 prefix inet; 443 } 445 import ietf-bgp { 446 prefix bgp; 447 } 449 import ietf-bgp-types { 450 prefix bgp-types; 451 } 453 import ietf-srv6-types { 454 prefix srv6-types; 455 } 457 organization 458 "IETF Inter-Domain Routing Working Group"; 460 contact 461 "Inter-Domain working group - idr@ietf.org"; 463 description 464 "This YANG module defines a data model to configure and 465 manage segment routing extensions in BGP. 467 Terms and Acronyms 469 AF : Address Family 471 BGP (bgp) : Border Gateway Protocol 473 SR : Segment Routing 475 SID : Segment Identifier 477 SRv6 : Segment Routing with IPv6 Data plane 478 VPN : Virtual Private Network 480 VRF : Virtual Routing and Forwarding 482 "; 484 revision 2018-06-26 { 485 description 486 "Initial revision" ; 487 reference ""; 488 } 490 // 491 // New identities and typedefs for SR extensions 492 // 494 // SR Policy SAFI identities 495 identity IPV4_SRPOLICY { 496 base bgp-types:afi-safi-type; 497 description 498 "IPv4 SR Policy (AFI,SAFI = 1,73)"; 499 reference "TBD"; 500 } 502 identity IPV6_SRPOLICY { 503 base bgp-types:afi-safi-type; 504 description 505 "IPv6 SR Policy (AFI,SAFI = 2,73)"; 506 reference "TBD"; 507 } 509 typedef segment-type { 510 type enumeration { 511 enum segment-type-1 { 512 value 1; 513 description "SR-MPLS Label"; 514 } 515 enum segment-type-2 { 516 value 2; 517 description "SRv6 SID"; 518 } 519 enum segment-type-3 { 520 value 3; 521 description "IPv4 Prefix with optional SR Algorithm"; 522 } 523 enum segment-type-4 { 524 value 4; 525 description "IPv6 Global Prefix with optional SR Algorithm for SR-MPLS"; 527 } 528 enum segment-type-5 { 529 value 5; 530 description "IPv4 Prefix with Local Interface ID"; 531 } 532 enum segment-type-6 { 533 value 6; 534 description "IPv4 Addresses for link endpoints as Local, Remote pair"; 535 } 536 enum segment-type-7 { 537 value 7; 538 description "IPv6 Prefix and Interface ID for link endpoints as Local, 539 Remote pair for SR-MPLS"; 540 } 541 enum segment-type-8 { 542 value 8; 543 description "IPv6 Addresses for link endpoints as Local, Remote pair for 544 SR-MPLS"; 545 } 546 enum segment-type-9 { 547 value 9; 548 description "IPv6 Global Prefix with optional SR Algorithm for SRv6"; 549 } 550 enum segment-type-10 { 551 value 10; 552 description "IPv6 Prefix and Interface ID for link endpoints as Local, 553 Remote pair for SRv6"; 554 } 555 enum segment-type-11 { 556 value 11; 557 description "IPv6 Addresses for link endpoints as Local, Remote pair for 558 SRv6"; 559 } 560 } 561 description "SR segment type"; 562 } 564 // Sid type union 565 typedef sid-type { 566 type union { 567 type rt-types:mpls-label; 568 type srv6-types:srv6-sid; 569 } 570 description "Type definition for Segment Identifier. This is 571 a union type which can be either a SR MPLS SID in the 572 form of a label, or a SRv6 SID in the form of 573 an IPv6 address."; 574 reference "TBD"; 576 } 578 // 579 // SR Policy Related Groupings 580 // 581 //Color and Endpoint of the SR Policy 582 grouping sr-policy-color-endpoint { 583 description "Common grouping for SR Policy Color and 584 Endpoint"; 585 leaf color { 586 type uint32; 587 description "Color of the policy"; 588 } 590 leaf end-point { 591 type inet:ip-address; 592 description "Endpoint of the policy"; 593 } 594 } 595 // Authorized colors for On Demand SR Policy programming 596 grouping sr-odn-auth-colors { 597 description 598 "Authorized colors for On Demand (dynamic) SR Policies 599 towards BGP nexthops"; 600 container authorized-colors { 601 config false; 602 description 603 "Authorized colors for On Demand (dynamic) SR policies 604 towards BGP nexthops"; 605 list colors { 606 key "color"; 607 description "List of SR Policy Colors"; 608 leaf color { 609 type uint32; 610 description "Color value"; 611 } 612 } 613 } 614 } 616 grouping sr-policy-cmn-state { 617 description "Common state parameters applicable to 618 SR Policies"; 619 leaf policy-state { 620 type enumeration { 621 enum UP { 622 description "SR Policy state UP"; 623 } 624 enum DOWN { 625 description "SR Policy state DOWN"; 626 } 627 } 628 description "SR Policy forwarding state"; 629 } 631 leaf binding-sid { 632 type sid-type; 633 description "Binding SID of the SR Policy"; 634 } 636 leaf steering-disabled { 637 type empty; 638 description "This attribute is set if steering 639 is disabled on this SR policy"; 640 } 642 leaf ref-count { 643 type uint32; 644 description "Count of routes steering over this policy"; 645 } 646 } 648 // 649 // SR Policy State grouping 650 // 651 grouping sr-policy-state { 652 description "SR Policy State"; 653 container policy-state { 654 config false; 655 description "SR Policy State"; 656 list sr-policy { 657 key "color end-point"; 658 description "List of SR Policies"; 660 uses sr-policy-color-endpoint; 662 // State of the SR Policy in BGP 663 uses sr-policy-cmn-state; 664 } 665 } 666 } 668 grouping sr-exp-policy-cp-state { 669 description "State of BGP signaled SR Policy (explicit) 670 candidate paths"; 671 container explicit-policies { 672 config false; 673 description "BGP signaled explicit SR Policies"; 674 list sr-policy { 675 key "distinguisher color end-point"; 676 description "List of BGP signaled explicit SR Policies"; 677 leaf distinguisher { 678 type uint32; 679 description "Distinguisher of the SR Policy 680 candidate path"; 681 } 683 uses sr-policy-color-endpoint; 685 leaf preference { 686 type uint32; 687 description "Preference of the SR Policy candidate path"; 688 } 690 container explicit-binding-sid { 691 description "Explicitly supplied Binding SID 692 for this policy"; 693 leaf binding-sid { 694 type sid-type; 695 description "Binding SID value"; 696 } 697 leaf strict { 698 type boolean; 699 description "Boolean indicating that the node 700 must use only the supplied Binding SID 701 for this SR Policy. 702 reference: TBD"; 703 } 704 leaf drop-on-invalid { 705 type boolean; 706 description "Boolean to indicate drop upon invalid 707 policy, behavior. This overwrites the 708 default behavior of fallback to IGP path 709 , when SR Policy is (or becomes) invalid. 710 reference: TBD"; 711 } 712 } 714 leaf usable { 715 type boolean; 716 description "Boolean to indicate that the SR Policy is 717 usable on this node. 718 reference: TBD"; 719 } 720 leaf registered { 721 type boolean; 722 description "Boolean to indicate that the SR policy 723 is registered with policy manager to 724 install the corresponding forwarding entry"; 726 } 728 uses segment-lists; 729 // TODO: Segment Lists and other parameters from SR Policy model 730 // to be imported here. 731 } 732 } 733 } 735 grouping segment-lists { 736 description 737 "Segment lists grouping"; 738 container segment-lists { 739 description "Segment-lists properties"; 741 list segment-list { 742 key "weight"; 743 description "Segment-list"; 744 leaf weight { 745 type uint32; 746 description "Segment-list weight"; 747 } 748 container segments { 749 description 750 "Segments for given segment list"; 752 list segment { 753 key "index"; 754 description "Segment/hop at the index"; 755 uses segment-properties; 756 } 757 } 758 } 759 } 760 } 762 grouping segment-properties { 763 description "Segment properties grouping"; 764 leaf index { 765 type uint32; 766 description "Segment index"; 767 } 768 leaf type { 769 type segment-type; 770 description "Segment type"; 771 } 772 container segment-types { 773 description "Types of segments"; 774 container segment-type-1 { 775 description 776 "Segment declared by MPLS label"; 777 leaf sid-value { 778 type rt-types:mpls-label; 779 description "MPLS label value"; 780 } 781 } 782 container segment-type-2 { 783 description 784 "Segment declared by SRv6 SID value"; 785 leaf sid-value { 786 type srv6-types:srv6-sid; 787 description "SRv6 SID value"; 788 } 789 } 790 container segment-type-3 { 791 description 792 "Segment declared by IPv4 Prefix with optional SR Algorithm"; 793 leaf ipv4-address { 794 type inet:ipv4-address; 795 description "Segment IPv4 address"; 796 } 797 leaf algorithm { 798 type uint8; 799 description "Prefix SID algorithm identifier"; 800 } 801 } 802 container segment-type-4 { 803 description 804 "Segment declared by IPv6 Global Prefix with optional 805 SR Algorithm for SR-MPLS"; 806 leaf ipv6-address { 807 type inet:ipv6-address; 808 description "Segment IPv6 address"; 809 } 810 leaf algorithm { 811 type uint8; 812 description "Prefix SID algorithm identifier"; 813 } 814 } 815 container segment-type-5 { 816 description 817 "Segment declared by IPv4 Prefix with Local Interface ID"; 818 leaf ipv4-address { 819 type inet:ipv4-address; 820 description "Node IPv4 address"; 821 } 822 leaf interface-identifier { 823 type uint32; 824 description "local interface identifier"; 825 } 826 } 827 container segment-type-6 { 828 description 829 "Segment declared by IPv4 Addresses for link endpoints 830 as Local, Remote pair"; 831 leaf local-ipv4-address { 832 type inet:ipv4-address; 833 description "Segment local IPv4 adjacency address"; 834 } 835 leaf remote-ipv4-address { 836 type inet:ipv4-address; 837 description "Segment remote IPv4 adjacency address"; 838 } 839 } 840 container segment-type-7 { 841 description 842 "Segment declared by IPv6 Prefix and Interface ID for 843 link endpoints as Local, Remote pair for SR-MPLS"; 844 leaf local-ipv6-address { 845 type inet:ipv6-address; 846 description "Local link IPv6 address"; 847 } 848 leaf local-interface-identifier { 849 type uint32; 850 description "Local interface identifier"; 851 } 852 leaf remote-ipv6-address { 853 type inet:ipv6-address; 854 description "Remote link IPv6 address"; 855 } 856 leaf remote-interface-identifier { 857 type uint32; 858 description "Remote interface identifier"; 859 } 860 } 861 container segment-type-8 { 862 description 863 "Segment declared by IPv6 Addresses for link endpoints as 864 Local, Remote pair for SR-MPLS"; 865 leaf local-ipv6-address { 866 type inet:ipv6-address; 867 description "Segment local IPv6 adjacency address"; 868 } 869 leaf remote-ipv6-address { 870 type inet:ipv6-address; 871 description "Segment remote IPv6 adjacency address"; 872 } 873 } 874 container segment-type-9 { 875 description 876 "Segment declared by IPv6 Global Prefix with optional 877 SR Algorithm for SRv6"; 878 leaf ipv6-address { 879 type inet:ipv6-address; 880 description "Segment IPv6 prefix"; 881 } 882 leaf algorithm { 883 type uint8; 884 description "Prefix SID algorithm identifier"; 885 } 886 } 887 container segment-type-10 { 888 description 889 "Segment declared by IPv6 Prefix and Interface ID for 890 link endpoints as Local, Remote pair for SRv6"; 891 leaf local-ipv6-address { 892 type inet:ipv6-address; 893 description "Local link IPv6 address"; 894 } 895 leaf local-interface-identifier { 896 type uint32; 897 description "Local interface identifier"; 898 } 899 leaf remote-ipv6-address { 900 type inet:ipv6-address; 901 description "Remote link IPv6 address"; 902 } 903 leaf remote-interface-identifier { 904 type uint32; 905 description "Remote interface identifier"; 906 } 907 } 908 container segment-type-11 { 909 description 910 "Segment declared by IPv6 Addresses for link endpoints as 911 Local, Remote pair for SRv6"; 913 leaf local-ipv6-address { 914 type inet:ipv6-address; 915 description "Segment local IPv6 adjacency address"; 916 } 917 leaf remote-ipv6-address { 918 type inet:ipv6-address; 919 description "Segment remote IPv6 adjacency address"; 920 } 921 } 922 } 923 } 924 grouping sr-odn-policies { 925 description "SR On Demand (dynamic) SR Policies"; 926 container installed-policies { 927 config false; 928 description "BGP triggered On Demand (dynamic) SR Policies 929 corresponding to the BGP nexthops"; 930 list sr-policy { 931 key "color end-point"; 932 description "SR Policy list"; 933 uses sr-policy-color-endpoint; 934 } 935 } 936 } 938 grouping sr-policy-steering-state { 939 description "Per route Automatic Steering parameters"; 940 container automatic-steering { 941 description "Per route Automatic Steering parameters"; 942 leaf color { 943 type leafref { 944 path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 945 "bgp:bgp/bgp:global/ietf-bgp-srte:segment-routing/" + 946 "ietf-bgp-srte:policy-state/ietf-bgp-srte:sr-policy/" + 947 "ietf-bgp-srte:color"; 948 } 949 description "Color of the SR Policy being used for 950 Automatic Steering"; 951 } 952 leaf end-point { 953 type leafref { 954 path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 955 "bgp:bgp/bgp:global/ietf-bgp-srte:segment-routing/" + 956 "ietf-bgp-srte:policy-state/ietf-bgp-srte:sr-policy/" + 957 "ietf-bgp-srte:end-point"; 958 } 959 description "End-point of the SR Policy being used 960 for Automatic Steering"; 962 } 963 leaf co-flag { 964 type enumeration { 965 enum 00 { 966 description "Color-Only flag 00"; 967 } 968 enum 01 { 969 description "Color-Only flag 01"; 970 } 971 enum 10 { 972 description "Color-Only flag 10"; 973 } 974 } 975 default "00"; 976 description "Color-Only (CO) flags applicable for 977 Automatic Steering of this route"; 978 } 979 leaf binding-sid { 980 type leafref { 981 path "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 982 "bgp:bgp/bgp:global/ietf-bgp-srte:segment-routing/" + 983 "ietf-bgp-srte:policy-state/ietf-bgp-srte:sr-policy/" + 984 "ietf-bgp-srte:binding-sid"; 985 } 986 description "Binding SID of the SR Policy"; 987 } 988 } 989 } 991 grouping route-key-leafs { 992 description "Grouping for key leafs identifying a route"; 993 leaf prefix { 994 type union { 995 type inet:ip-prefix; 996 type string; 997 } 998 description "BGP Prefix. This is a temp definition to 999 cover ip-prefix and other NLRI formats. 1000 Import the type once defined in base 1001 BGP RIB model"; 1002 } 1003 leaf neighbor { 1004 type inet:ip-address; 1005 description "BGP Neighbor"; 1006 } 1007 leaf add-path-id { 1008 type uint32; 1009 description "Add-path ID"; 1011 } 1012 } 1014 grouping common-bgp-route-grouping { 1015 description "BGP route list" ; 1016 container routes { 1017 config false; 1018 description "BGP Route in local RIB"; 1019 list route { 1020 key "prefix neighbor add-path-id"; 1021 description "BGP route list"; 1022 uses route-key-leafs; 1023 } 1024 } 1025 } 1027 grouping common-bgp-vpn-route-grouping { 1028 description "BGP route list" ; 1029 container routes { 1030 config false; 1031 description "BGP VPN Route in local RIB"; 1032 list route { 1033 key "rd prefix neighbor add-path-id"; 1034 description "Route List"; 1036 leaf rd { 1037 type rt-types:route-distinguisher; 1038 description "Route Distinguisher"; 1039 } 1040 uses route-key-leafs; 1041 } 1042 } 1043 } 1045 // 1046 // BGP Specific Paramters 1047 // 1048 // Augment AF with route list 1049 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1050 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-unicast" { 1051 description 1052 "Augment BGP SAFI route"; 1053 uses common-bgp-route-grouping; 1054 } 1055 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1056 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-unicast" { 1057 description 1058 "Augment BGP SAFI route"; 1060 uses common-bgp-route-grouping; 1061 } 1062 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1063 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv4-labeled-unicast" { 1064 description 1065 "Augment BGP SAFI route"; 1066 uses common-bgp-route-grouping; 1068 } 1069 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1070 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:ipv6-labeled-unicast" { 1071 description 1072 "Augment BGP SAFI route"; 1073 uses common-bgp-route-grouping; 1074 } 1075 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1076 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv4-unicast" { 1077 description 1078 "Augment BGP SAFI route"; 1079 uses common-bgp-vpn-route-grouping; 1080 } 1081 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1082 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi/bgp:l3vpn-ipv6-unicast" { 1083 description 1084 "Augment BGP SAFI route"; 1085 uses common-bgp-vpn-route-grouping; 1086 } 1088 // SR Policy Related 1089 // On Demand authorized colors table 1090 // SR Policy state data 1091 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1092 "bgp:bgp/bgp:global" { 1093 description 1094 "Segment Routing parameters in BGP global model"; 1095 container segment-routing { 1096 description "Segment Routing parameters"; 1097 container on-demand-policies { 1098 description 1099 "Segment Routing On Demand Nexthop 1100 (ODN) SR Policies"; 1101 uses sr-odn-auth-colors; 1102 uses sr-odn-policies; 1103 } 1104 uses sr-policy-state; 1105 } 1106 } 1107 // Steering state in overlay BGP routes 1108 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1109 "bgp:bgp/bgp:global/bgp:afi-safis/" + 1110 "bgp:afi-safi/bgp:ipv4-unicast/ietf-bgp-srte:routes/ietf-bgp-srte:route" { 1111 description 1112 "Augment BGP SAFI route with steering info"; 1113 uses sr-policy-steering-state; 1114 } 1115 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1116 "bgp:bgp/bgp:global/bgp:afi-safis/" + 1117 "bgp:afi-safi/bgp:ipv6-unicast/ietf-bgp-srte:routes/ietf-bgp-srte:route" { 1118 description 1119 "Augment BGP SAFI route with steering info"; 1120 uses sr-policy-steering-state; 1121 } 1122 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1123 "bgp:bgp/bgp:global/bgp:afi-safis/" + 1124 "bgp:afi-safi/bgp:ipv4-labeled-unicast/ietf-bgp-srte:routes/ietf-bgp-srte:route" { 1125 description 1126 "Augment BGP SAFI route with steering info"; 1127 uses sr-policy-steering-state; 1128 } 1129 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1130 "bgp:bgp/bgp:global/bgp:afi-safis/" + 1131 "bgp:afi-safi/bgp:ipv6-labeled-unicast/ietf-bgp-srte:routes/ietf-bgp-srte:route" { 1132 description 1133 "Augment BGP SAFI route with steering info"; 1134 uses sr-policy-steering-state; 1135 } 1136 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1137 "bgp:bgp/bgp:global/bgp:afi-safis/" + 1138 "bgp:afi-safi/bgp:l3vpn-ipv4-unicast/ietf-bgp-srte:routes/ietf-bgp-srte:route" { 1139 description 1140 "Augment BGP SAFI route with steering info"; 1141 uses sr-policy-steering-state; 1142 } 1143 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1144 "bgp:bgp/bgp:global/bgp:afi-safis/" + 1145 "bgp:afi-safi/bgp:l3vpn-ipv6-unicast/ietf-bgp-srte:routes/ietf-bgp-srte:route" { 1146 description 1147 "Augment BGP SAFI route with steering info"; 1148 uses sr-policy-steering-state; 1149 } 1151 // BGP Signaled SR Policy explicit candidate paths state 1152 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1153 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi" { 1154 description "Augment IPv4 SR Policy SAFI list entry"; 1155 container ipv4-srpolicy { 1156 when "../afi-safi-name = 'bgp-types:IPV4_SRPOLICY'" { 1157 description 1158 "Include this container for IPv4 SR Policy specific 1159 configuration"; 1160 } 1161 description "IPv4 SR Policy specific parameters"; 1162 uses sr-exp-policy-cp-state; 1163 } 1164 } 1166 augment "/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/" + 1167 "bgp:bgp/bgp:global/bgp:afi-safis/bgp:afi-safi" { 1168 description "Augment IPv6 SR Policy SAFI list entry"; 1169 container ipv6-srpolicy { 1170 when "../afi-safi-name = 'bgp-types:IPV6_SRPOLICY'" { 1171 description 1172 "Include this container for IPv6 SR Policy specific 1173 configuration"; 1174 } 1175 description "IPv6 SR Policy specific parameters"; 1176 uses sr-exp-policy-cp-state; 1177 } 1178 } 1179 } 1180 1182 5. Contributors 1184 Dhanendra Jain 1185 Cisco Systems 1186 US 1188 Email: dhanendra.ietf@gmail.com 1190 Zhichun Jiang 1191 Cisco Systems 1192 US 1194 Email: zcjiang@tencent.com 1196 Zafar Ali 1197 Cisco Systems 1198 US 1200 Email: zali@cisco.com 1201 Sharmila Palani 1202 Cisco Systems 1203 US 1205 Email: spalani@cisco.com 1207 6. IANA Considerations 1209 7. Security Considerations 1211 The transport protocol used for sending the BGP Segment Routing data 1212 MUST support authentication and SHOULD support encryption. The data- 1213 model by itself does not create any security implications. 1215 This draft does not change any underlying security issues inherent in 1216 [I-D.ietf-idr-bgp-model]. 1218 8. Acknowledgements 1220 TBD. 1222 9. References 1224 9.1. Normative References 1226 [I-D.ietf-idr-bgp-model] 1227 Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP 1228 YANG Model for Service Provider Networks", draft-ietf-idr- 1229 bgp-model-09 (work in progress), June 2020. 1231 [I-D.ietf-idr-segment-routing-te-policy] 1232 Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., 1233 Rosen, E., Jain, D., and S. Lin, "Advertising Segment 1234 Routing Policies in BGP", draft-ietf-idr-segment-routing- 1235 te-policy-09 (work in progress), May 2020. 1237 [I-D.ietf-spring-segment-routing-policy] 1238 Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and 1239 P. Mattes, "Segment Routing Policy Architecture", draft- 1240 ietf-spring-segment-routing-policy-08 (work in progress), 1241 July 2020. 1243 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1244 Requirement Levels", BCP 14, RFC 2119, 1245 DOI 10.17487/RFC2119, March 1997, 1246 . 1248 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1249 the Network Configuration Protocol (NETCONF)", RFC 6020, 1250 DOI 10.17487/RFC6020, October 2010, 1251 . 1253 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1254 and A. Bierman, Ed., "Network Configuration Protocol 1255 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1256 . 1258 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1259 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1260 May 2017, . 1262 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1263 and R. Wilton, "Network Management Datastore Architecture 1264 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1265 . 1267 9.2. Informative References 1269 [I-D.ietf-spring-srv6-network-programming] 1270 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 1271 Matsushima, S., and Z. Li, "SRv6 Network Programming", 1272 draft-ietf-spring-srv6-network-programming-16 (work in 1273 progress), June 2020. 1275 [RFC7951] Lhotka, L., "JSON Encoding of Data Modeled with YANG", 1276 RFC 7951, DOI 10.17487/RFC7951, August 2016, 1277 . 1279 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1280 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1281 . 1283 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 1284 Decraene, B., Litkowski, S., and R. Shakir, "Segment 1285 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 1286 July 2018, . 1288 [RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of 1289 Documents Containing YANG Data Models", BCP 216, RFC 8407, 1290 DOI 10.17487/RFC8407, October 2018, 1291 . 1293 Authors' Addresses 1295 Krishna Deevi 1296 Cisco 1297 170 W. Tasman Drive 1298 San Jose, CA 95134 1299 USA 1301 Email: kdeevi@cisco.com 1303 Kamran Raza 1304 Cisco 1305 2000 Innovation Drive 1306 Kanata, ON K2K-3E8 1307 CA 1309 Email: skraza@cisco.com 1311 Kausik Majumdar 1312 Commscope 1314 Email: kausik.majumdar@comscope.com 1316 Bruno Decraene 1317 Orange 1318 France 1320 Email: bruno.decraene@orange.com 1322 Zhichun Jiang 1323 Tencent 1325 Email: zcjiang@tencent.com