| < draft-ietf-idr-bgp-prefix-sid-09.txt | draft-ietf-idr-bgp-prefix-sid-10.txt > | |||
|---|---|---|---|---|
| IDR S. Previdi, Ed. | IDR S. Previdi, Ed. | |||
| Internet-Draft C. Filsfils | Internet-Draft C. Filsfils | |||
| Intended status: Standards Track A. Lindem | Intended status: Standards Track A. Lindem | |||
| Expires: July 9, 2018 Cisco Systems | Expires: July 20, 2018 Cisco Systems | |||
| A. Sreekantiah | A. Sreekantiah | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| January 5, 2018 | January 16, 2018 | |||
| Segment Routing Prefix SID extensions for BGP | Segment Routing Prefix SID extensions for BGP | |||
| draft-ietf-idr-bgp-prefix-sid-09 | draft-ietf-idr-bgp-prefix-sid-10 | |||
| Abstract | Abstract | |||
| Segment Routing (SR) architecture allows a node to steer a packet | Segment Routing (SR) architecture allows a node to steer a packet | |||
| flow through any topological path and service chain by leveraging | flow through any topological path and service chain by leveraging | |||
| source routing. The ingress node prepends an SR header to a packet | source routing. The ingress node prepends an SR header to a packet | |||
| containing a set of segment identifiers (SID). Each SID represents a | containing a set of segment identifiers (SID). Each SID represents a | |||
| topological or a service-based instruction. Per-flow state is | topological or a service-based instruction. Per-flow state is | |||
| maintained only on the ingress node of the SR domain. | maintained only on the ingress node of the SR domain. | |||
| skipping to change at page 2, line 7 ¶ | skipping to change at page 2, line 7 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 9, 2018. | This Internet-Draft will expire on July 20, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 42 ¶ | skipping to change at page 2, line 42 ¶ | |||
| 3.2. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.2. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 | 3.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 9 | 4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 9 | |||
| 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9 | 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9 | |||
| 4.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 10 | 4.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 10 | 5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 10 | |||
| 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 11 | 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 11 | |||
| 5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11 | 5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 11 | 6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 11 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 8. Manageability Considerations . . . . . . . . . . . . . . . . 12 | 8. Manageability Considerations . . . . . . . . . . . . . . . . 13 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 15 | 12.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 1. Introduction | 1. Introduction | |||
| Segment Routing (SR) architecture leverages the source routing | Segment Routing (SR) architecture leverages the source routing | |||
| paradigm. A group of inter-connected nodes that use SR forms an SR | paradigm. A group of inter-connected nodes that use SR forms an SR | |||
| domain. A segment represents either a topological instruction such | domain. A segment represents either a topological instruction such | |||
| as "go to prefix P following shortest path" or a service instruction | as "go to prefix P following shortest path" or a service instruction | |||
| (e.g.: "pass through deep packet inspection"). Other types of | (e.g.: "pass through deep packet inspection"). Other types of | |||
| segments may be defined in the future. | segments may be defined in the future. | |||
| skipping to change at page 5, line 48 ¶ | skipping to change at page 5, line 48 ¶ | |||
| When SR is used over an IPv6 dataplane, the BGP Prefix-SID consists | When SR is used over an IPv6 dataplane, the BGP Prefix-SID consists | |||
| of an IPv6 address assigned to the BGP speaker. | of an IPv6 address assigned to the BGP speaker. | |||
| 3. BGP Prefix-SID Attribute | 3. BGP Prefix-SID Attribute | |||
| The BGP Prefix-SID attribute is an optional, transitive BGP path | The BGP Prefix-SID attribute is an optional, transitive BGP path | |||
| attribute. The attribute type code 40 has been assigned by IANA (see | attribute. The attribute type code 40 has been assigned by IANA (see | |||
| Section 7). | Section 7). | |||
| The BGP Prefix-SID attribute is defined here to be a set of elements | The BGP Prefix-SID attribute is defined here to be a set of elements | |||
| encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). The | encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). All BGP | |||
| following TLVs are defined: | Prefix-SID attribute TLVs will start with a 1-octet type and a | |||
| 2-octet length. The following TLVs are defined in this document: | ||||
| o Label-Index TLV | o Label-Index TLV | |||
| o IPv6 SID TLV | o IPv6 SID TLV | |||
| o Originator SRGB TLV | o Originator SRGB TLV | |||
| The Label-Index and Originator SRGB TLVs are used only when SR is | The Label-Index and Originator SRGB TLVs are used only when SR is | |||
| applied to the MPLS dataplane. | applied to the MPLS dataplane. | |||
| The IPv6 SID TLV is used only when SR is applied to the IPv6 | The IPv6 SID TLV is used only when SR is applied to the IPv6 | |||
| dataplane. | dataplane. | |||
| For future extendibility, unknown TLVs are ignored and propagated | ||||
| unmodified. | ||||
| 3.1. Label-Index TLV | 3.1. Label-Index TLV | |||
| The Label-Index TLV MUST be present in the BGP Prefix-SID attribute | The Label-Index TLV MUST be present in the BGP Prefix-SID attribute | |||
| attached to Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It will | attached to Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It will | |||
| be ignored when received for other BGP AFI/SAFI combinations. The | be ignored when received for other BGP AFI/SAFI combinations. The | |||
| Label-Index TLV has the following format: | Label-Index TLV has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 10, line 30 ¶ | skipping to change at page 10, line 30 ¶ | |||
| which local/incoming label the BGP speaker SHOULD assign. | which local/incoming label the BGP speaker SHOULD assign. | |||
| 4.2. IPv6 Dataplane | 4.2. IPv6 Dataplane | |||
| When an SR IPv6 BGP speaker receives an IPv6 Unicast BGP Update with | When an SR IPv6 BGP speaker receives an IPv6 Unicast BGP Update with | |||
| a prefix having the BGP Prefix-SID attribute attached, it checks | a prefix having the BGP Prefix-SID attribute attached, it checks | |||
| whether the IPv6 SID TLV is present. If present and the chosen as | whether the IPv6 SID TLV is present. If present and the chosen as | |||
| the best path, the prefix is installed into the Segment Routing IPv6 | the best path, the prefix is installed into the Segment Routing IPv6 | |||
| dataplane as described in [I-D.ietf-spring-segment-routing]. | dataplane as described in [I-D.ietf-spring-segment-routing]. | |||
| The Originator SRGB MUST be ignored on reception. | The Label-Index and Originator SRGB TLVs MUST be ignored on | |||
| reception. For future extendibility, no TLVs are required for the | ||||
| BGP IPv6 unicast address family. However, a BGP Prefix-SID attribute | ||||
| corresponding to the BGP IPv6 address family without an IPv6 SID TLV | ||||
| will be ignored. | ||||
| 5. Advertising BGP Prefix-SID Attribute | 5. Advertising BGP Prefix-SID Attribute | |||
| The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes | The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes | |||
| (IPv4/IPv6) [RFC8277] or to IPv6 unicast prefixes [RFC4760]. In | (IPv4/IPv6) [RFC8277] or to IPv6 unicast prefixes [RFC4760]. In | |||
| order to prevent distribution of the BGP Prefix-SID attribute beyond | order to prevent distribution of the BGP Prefix-SID attribute beyond | |||
| its intended scope of applicability, attribute filtering SHOULD be | its intended scope of applicability, attribute filtering SHOULD be | |||
| deployed. | deployed. | |||
| A BGP speaker that advertises a path received from one of its | A BGP speaker that advertises a path received from one of its | |||
| skipping to change at page 12, line 7 ¶ | skipping to change at page 12, line 7 ¶ | |||
| unlabeled IPv6 unicast prefix [RFC4760], it MUST treat the | unlabeled IPv6 unicast prefix [RFC4760], it MUST treat the | |||
| advertisement as a withdrawal. This is equivalent to the "Treat-as- | advertisement as a withdrawal. This is equivalent to the "Treat-as- | |||
| withdraw" action specified in [RFC7606]. This action is required | withdraw" action specified in [RFC7606]. This action is required | |||
| since simply ignoring the BGP Prefix-SID attribute would modify the | since simply ignoring the BGP Prefix-SID attribute would modify the | |||
| installed path and the "Attribute discard" option is not applicable | installed path and the "Attribute discard" option is not applicable | |||
| in this case [RFC7606]. When withdrawing the prefix, a BGP speaker | in this case [RFC7606]. When withdrawing the prefix, a BGP speaker | |||
| SHOULD log an error for further analysis. | SHOULD log an error for further analysis. | |||
| Consistent with [RFC7606], only the first occurrence of the BGP | Consistent with [RFC7606], only the first occurrence of the BGP | |||
| Prefix-SID attribute will be considered and subsequent occurrences | Prefix-SID attribute will be considered and subsequent occurrences | |||
| will be discarded. | will be discarded. Similarily, only the first occurrence of a BGP | |||
| Prefix-SID attribute TLV of a given TLV type will be considered | ||||
| unless the specification of that TLV type allows for multiple | ||||
| occurrences. | ||||
| For future extendibility, unknown TLVs should be ignored and | ||||
| propagated unmodified. | ||||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document defines a BGP path attribute known as the BGP Prefix- | This document defines a BGP path attribute known as the BGP Prefix- | |||
| SID attribute. This document requests IANA to assign an attribute | SID attribute. This document requests IANA to assign an attribute | |||
| code type (suggested value: 40) the BGP Prefix-SID attribute from the | code type (suggested value: 40) the BGP Prefix-SID attribute from the | |||
| BGP Path Attributes registry. | BGP Path Attributes registry. | |||
| Currently, IANA temporarily assigned the following: | Currently, IANA temporarily assigned the following: | |||
| skipping to change at page 14, line 18 ¶ | skipping to change at page 14, line 18 ¶ | |||
| Email: raysaikat@gmail.com | Email: raysaikat@gmail.com | |||
| 11. Acknowledgements | 11. Acknowledgements | |||
| The authors would like to thank Satya Mohanty for his contribution to | The authors would like to thank Satya Mohanty for his contribution to | |||
| this document. | this document. | |||
| The authors would like to thank Alvaro Retana for substantive | The authors would like to thank Alvaro Retana for substantive | |||
| comments as part of the Routing AD review. | comments as part of the Routing AD review. | |||
| The authors would like to thank Shyam Sethuram for comments and | ||||
| discussion of TLV processing and validation. | ||||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [I-D.ietf-spring-segment-routing] | [I-D.ietf-spring-segment-routing] | |||
| Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | |||
| Litkowski, S., and R. Shakir, "Segment Routing | Litkowski, S., and R. Shakir, "Segment Routing | |||
| Architecture", draft-ietf-spring-segment-routing-14 (work | Architecture", draft-ietf-spring-segment-routing-14 (work | |||
| in progress), December 2017. | in progress), December 2017. | |||
| End of changes. 11 change blocks. | ||||
| 10 lines changed or deleted | 27 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||