| < draft-ietf-idr-bgp-prefix-sid-10.txt | draft-ietf-idr-bgp-prefix-sid-11.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 20, 2018 Cisco Systems | Expires: August 4, 2018 Cisco Systems | |||
| A. Sreekantiah | A. Sreekantiah | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| January 16, 2018 | January 31, 2018 | |||
| Segment Routing Prefix SID extensions for BGP | Segment Routing Prefix SID extensions for BGP | |||
| draft-ietf-idr-bgp-prefix-sid-10 | draft-ietf-idr-bgp-prefix-sid-11 | |||
| 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 20, 2018. | This Internet-Draft will expire on August 4, 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 3, line 11 ¶ | skipping to change at page 3, line 11 ¶ | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 15 | 12.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 | 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. | |||
| A segment is identified through a Segment Identifier (SID). | A segment is identified through a Segment Identifier (SID). | |||
| Typically, the ingress node of the SR domain prepends an SR header | Typically, the ingress node of the SR domain prepends an SR header | |||
| containing segments identifiers (SIDs) to an incoming packet. | containing segments identifiers (SIDs) to an incoming packet. | |||
| As described in [I-D.ietf-spring-segment-routing], when SR is applied | As described in [I-D.ietf-spring-segment-routing], when SR is applied | |||
| to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]) the | to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]), the | |||
| SID consists of a label while when SR is applied to the IPv6 | SID consists of a label while when SR is applied to the IPv6 | |||
| dataplane the SID consists of an IPv6 address. | dataplane the SID consists of an IPv6 address. | |||
| A BGP-Prefix Segment (and its BGP Prefix-SID), is a BGP segment | A BGP-Prefix Segment (and its BGP Prefix-SID), is a BGP segment | |||
| attached to a BGP prefix. A BGP Prefix-SID is always a global SID | attached to a BGP prefix. A BGP Prefix-SID is always a global SID | |||
| ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., | ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., | |||
| the set of Autonomous Systems under a common administration and | the set of Autonomous Systems under a common administration and | |||
| control and where SR is used) and identifies an instruction to | control and where SR is used) and identifies an instruction to | |||
| forward the packet over the ECMP-aware best-path computed by BGP to | forward the packet over the ECMP-aware best-path computed by BGP to | |||
| the related prefix. The BGP Prefix-SID is the identifier of the BGP | the related prefix. The BGP Prefix-SID is the identifier of the BGP | |||
| prefix segment. In this document, we always refer to the BGP Segment | prefix segment. In this document, we always refer to the BGP segment | |||
| by the BGP Prefix-SID. | by the BGP Prefix-SID. | |||
| This document describes the BGP extension to signal the BGP Prefix- | This document describes the BGP extension to signal the BGP Prefix- | |||
| SID. Specifically, this document defines a BGP attribute known as | SID. Specifically, this document defines a BGP attribute known as | |||
| the BGP Prefix-SID attribute and specifies the rules to originate, | the BGP Prefix-SID attribute and specifies the rules to originate, | |||
| receive, and handle error conditions for the attribute. | receive, and handle error conditions for the attribute. | |||
| The BGP Prefix-SID attribute defined in this document can be attached | The BGP Prefix-SID attribute defined in this document can be attached | |||
| to prefixes from AFI/SAFI combinations: | to prefixes from AFI/SAFI combinations: | |||
| skipping to change at page 4, line 32 ¶ | skipping to change at page 4, line 32 ¶ | |||
| The BGP Prefix-SID is realized on the MPLS dataplane | The BGP Prefix-SID is realized on the MPLS dataplane | |||
| ([I-D.ietf-spring-segment-routing-mpls]) in the following way: | ([I-D.ietf-spring-segment-routing-mpls]) in the following way: | |||
| The operator assigns a globally unique label index, L_I, to a | The operator assigns a globally unique label index, L_I, to a | |||
| locally sourced prefix of a BGP speaker N which is advertised to | locally sourced prefix of a BGP speaker N which is advertised to | |||
| all other BGP speakers in the SR domain. | all other BGP speakers in the SR domain. | |||
| According to [I-D.ietf-spring-segment-routing], each BGP speaker | According to [I-D.ietf-spring-segment-routing], each BGP speaker | |||
| is configured with a label block called the Segment Routing Global | is configured with a label block called the Segment Routing Global | |||
| Block (SRGB). While [I-D.ietf-spring-segment-routing] recommends | Block (SRGB). While [I-D.ietf-spring-segment-routing] recommends | |||
| to use the same SRGB across all the nodes within the SR domain, | using the same SRGB across all the nodes within the SR domain, the | |||
| the SRGB of a node is a local property and could be different on | SRGB of a node is a local property and could be different on | |||
| different speakers. The drawbacks of the use case where BGP | different speakers. The drawbacks of the use case where BGP | |||
| speakers have different SRGBs are documented in | speakers have different SRGBs are documented in | |||
| [I-D.ietf-spring-segment-routing] and | [I-D.ietf-spring-segment-routing] and | |||
| [I-D.ietf-spring-segment-routing-msdc]. | [I-D.ietf-spring-segment-routing-msdc]. | |||
| If traffic-engineering within the SR domain is required, each node | If traffic-engineering within the SR domain is required, each node | |||
| may also be required to advertise topological information and | may also be required to advertise topological information and | |||
| Peering SIDs for each of its links and peers. This information is | Peering SIDs for each of its links and peers. This information is | |||
| required to perform the explicit path computation and to express | required to perform the explicit path computation and to express | |||
| an explicit path as a list of SIDs. The advertisement of | an explicit path as a list of SIDs. The advertisement of | |||
| topological information and Peer segments (Peer SIDs) is done | topological information and peer segments (Peer SIDs) is done | |||
| through [I-D.ietf-idr-bgpls-segment-routing-epe]. | through [I-D.ietf-idr-bgpls-segment-routing-epe]. | |||
| If the BGP speakers are not all configured with the same SRGB, and | If the BGP speakers are not all configured with the same SRGB, and | |||
| if traffic-engineering within the SR domain is required, each node | if traffic-engineering within the SR domain is required, each node | |||
| may be required to advertise its local SRGB in addition to the | may be required to advertise its local SRGB in addition to the | |||
| topological information. | topological information. | |||
| This documents assumes that BGP-LS is the preferred method for | This documents assumes that BGP-LS is the preferred method for | |||
| collecting both peer segments (Peer SIDs) and SRGB information | collecting both peer segments (Peer SIDs) and SRGB information | |||
| through [RFC7752], [I-D.ietf-idr-bgpls-segment-routing-epe], and | through [RFC7752], [I-D.ietf-idr-bgpls-segment-routing-epe], and | |||
| skipping to change at page 6, line 14 ¶ | skipping to change at page 6, line 14 ¶ | |||
| 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 | For future extendibility, unknown TLVs MUST be ignored and propagated | |||
| unmodified. | 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 MUST | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | RESERVED | | | Type | Length | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Label Index | | | Flags | Label Index | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 7, line 9 ¶ | skipping to change at page 7, line 9 ¶ | |||
| flag field MUST be clear on transmission and MUST be ignored on | flag field MUST be clear on transmission and MUST be ignored on | |||
| reception. | reception. | |||
| o Label Index: 32-bit value representing the index value in the SRGB | o Label Index: 32-bit value representing the index value in the SRGB | |||
| space. | space. | |||
| 3.2. IPv6 SID | 3.2. IPv6 SID | |||
| The IPv6 SID TLV MAY be present in the BGP Prefix-SID attribute | The IPv6 SID TLV MAY be present in the BGP Prefix-SID attribute | |||
| attached to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]). It | attached to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]). It | |||
| will be ignored for other BGP AFI/SAFI combinations. The IPv6 SID | MUST be ignored for other BGP AFI/SAFI combinations. The IPv6 SID | |||
| TLV has the following format: | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | RESERVED | | | Type | Length | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | RESERVED | | | | RESERVED | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | | | | |||
| skipping to change at page 8, line 30 ¶ | skipping to change at page 8, line 30 ¶ | |||
| | SRGB n (6 octets) | | | SRGB n (6 octets) | | |||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type is 3. | o Type is 3. | |||
| o Length is the total length in octets of the value portion of the | o Length is the total length in octets of the value portion of the | |||
| TLV: 2 + multiple of 6. | TLV: 2 + (multiple of 6). | |||
| o Flags: 16 bits of flags. None are defined in this document. | o Flags: 16 bits of flags. None are defined in this document. | |||
| Flags MUST be clear on transmission and MUST be ignored on | Flags MUST be clear on transmission and MUST be ignored on | |||
| reception. | reception. | |||
| o SRGB: 3 octets of base followed by 3 octets of range. Note that | o SRGB: 3 octets of base followed by 3 octets of range. Note that | |||
| the SRGB field MAY appear multiple times. If the SRGB field | the SRGB field MAY appear multiple times. If the SRGB field | |||
| appears multiple times, the SRGB consists of multiple ranges. | appears multiple times, the SRGB consists of multiple ranges. | |||
| The Originator SRGB TLV contains the SRGB of the node originating the | The Originator SRGB TLV contains the SRGB of the node originating the | |||
| prefix to which the BGP Prefix-SID is attached. The Originator SRGB | prefix to which the BGP Prefix-SID is attached. The Originator SRGB | |||
| TLV MUST NOT be changed during the propagation of the BGP update. | TLV MUST NOT be changed during the propagation of the BGP update. | |||
| The originator SRGB describes the SRGB of the node where the BGP | The originator SRGB describes the SRGB of the node where the BGP | |||
| Prefix SID is attached. It is used to build segment routing policies | Prefix SID is attached. It is used to build segment routing policies | |||
| when different SRGBs are used in the fabric, for example | when different SRGBs are used in the fabric, for example | |||
| ([I-D.ietf-spring-segment-routing-msdc]). | ([I-D.ietf-spring-segment-routing-msdc]). | |||
| The originator SRGB may only appear in a BGP Prefix-SID attribute | The originator SRGB may only appear in a BGP Prefix-SID attribute | |||
| attached to Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It will | attached to Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It MUST | |||
| be ignored when received for other BGP AFI/SAFI combinations. | be ignored when received for other BGP AFI/SAFI combinations. | |||
| 4. Receiving BGP Prefix-SID Attribute | 4. Receiving BGP Prefix-SID Attribute | |||
| A BGP speaker receiving a BGP Prefix-SID attribute from an EBGP | A BGP speaker receiving a BGP Prefix-SID attribute from an EBGP | |||
| neighbor residing outside the boundaries of the SR domain, MUST | neighbor residing outside the boundaries of the SR domain MUST | |||
| discard the attribute unless it is configured to accept the attribute | discard the attribute unless it is configured to accept the attribute | |||
| from the EBGP neighbor. A BGP speaker MAY log an error for further | from the EBGP neighbor. A BGP speaker MAY log an error for further | |||
| analysis when discarding an attribute. | analysis when discarding an attribute. | |||
| 4.1. MPLS Dataplane: Labeled Unicast | 4.1. MPLS Dataplane: Labeled Unicast | |||
| A Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]) session | A Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]) session | |||
| type is required. | type is required. | |||
| A BGP speaker may be locally configured with an SRGB=[SRGB_Start, | A BGP speaker may be locally configured with an SRGB=[SRGB_Start, | |||
| SRGB_End]. The preferred method for deriving the SRGB is a matter of | SRGB_End]. The preferred method for deriving the SRGB is a matter of | |||
| local node configuration. | local node configuration. | |||
| Given a label index L_I, we call L = L_I + SRGB_Start as the derived | Given a label index L_I, we refer to (L = L_I + SRGB_Start) as the | |||
| label. A BGP Prefix-SID attribute is designated "unacceptable" for a | derived label. A BGP Prefix-SID attribute is designated | |||
| speaker M if the derived label value L lies outside the SRGB | "unacceptable" for a speaker M if the derived label value L lies | |||
| configured on M. Otherwise the Label-Index TLV is designated | outside the SRGB configured on M. Otherwise the Label-Index TLV is | |||
| "acceptable" to speaker M. | designated "acceptable" to speaker M. | |||
| The mechanisms through which a given label index value is assigned to | The mechanisms through which a given label index value is assigned to | |||
| a given prefix are outside the scope of this document. The label- | a given prefix are outside the scope of this document. The label- | |||
| index value associated with a prefix is locally configured at the BGP | index value associated with a prefix is locally configured at the BGP | |||
| node originating the prefix. | node originating the prefix. | |||
| The BGP Prefix-SID attribute MUST contain the Label-Index TLV and MAY | The BGP Prefix-SID attribute MUST contain the Label-Index TLV and MAY | |||
| contain the Originator SRGB TLV. A BGP Prefix-SID attribute received | contain the Originator SRGB TLV. A BGP Prefix-SID attribute received | |||
| without a Label-Index TLV MUST be considered as "unacceptable" by the | without a Label-Index TLV MUST be considered as "unacceptable" by the | |||
| receiving speaker. | receiving speaker. | |||
| skipping to change at page 10, line 26 ¶ | skipping to change at page 10, line 26 ¶ | |||
| MUST adhere to standard behavior and program its MPLS dataplane to | MUST adhere to standard behavior and program its MPLS dataplane to | |||
| pop the top label when forwarding traffic to the prefix. The label | pop the top label when forwarding traffic to the prefix. The label | |||
| NLRI defines the outbound label that MUST be used by the receiving | NLRI defines the outbound label that MUST be used by the receiving | |||
| node. The label index gives the information to the receiving node on | node. The label index gives the information to the receiving node on | |||
| 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 chosen as the | |||
| the best path, the prefix is installed into the Segment Routing IPv6 | 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 Label-Index and Originator SRGB TLVs MUST be ignored on | The Label-Index and Originator SRGB TLVs MUST be ignored on | |||
| reception. For future extendibility, no TLVs are required for the | reception. For future extendibility, no TLVs are required for the | |||
| BGP IPv6 unicast address family. However, a BGP Prefix-SID attribute | BGP IPv6 unicast address family. However, a BGP Prefix-SID attribute | |||
| corresponding to the BGP IPv6 address family without an IPv6 SID TLV | corresponding to the BGP IPv6 address family without an IPv6 SID TLV | |||
| will be ignored. | MUST 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. Similarily, only the first occurrence of a BGP | will be discarded. Similarly, only the first occurrence of a BGP | |||
| Prefix-SID attribute TLV of a given TLV type will be considered | Prefix-SID attribute TLV of a given TLV type will be considered | |||
| unless the specification of that TLV type allows for multiple | unless the specification of that TLV type allows for multiple | |||
| occurrences. | occurrences. | |||
| For future extendibility, unknown TLVs should be ignored and | For future extendibility, unknown TLVs MUST be ignored and propagated | |||
| propagated unmodified. | 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) to the BGP Prefix-SID attribute from | |||
| BGP Path Attributes registry. | the BGP Path Attributes registry. | |||
| Currently, IANA temporarily assigned the following: | Currently, IANA temporarily assigned the following: | |||
| 40 BGP Prefix-SID (TEMPORARY - registered 2015-09-30, expires | 40 BGP Prefix-SID (TEMPORARY - registered 2015-09-30, expires | |||
| 2016-09-30) [draft-ietf-idr-bgp-prefix-sid] | 2016-09-30) [draft-ietf-idr-bgp-prefix-sid] | |||
| This document defines 3 TLVs for the BGP Prefix-SID attribute. These | This document defines 3 TLVs for the BGP Prefix-SID attribute. These | |||
| TLVs need to be registered with IANA. We request IANA to create a | TLVs need to be registered with IANA. We request IANA to create a | |||
| registry for BGP Prefix-SID Attribute TLVs as follows: | registry for BGP Prefix-SID Attribute TLVs as follows: | |||
| Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP | Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP | |||
| Prefix-SID TLV Types" Reference: draft-ietf-idr-bgp-prefix-sid | Prefix-SID TLV Types" Reference: draft-ietf-idr-bgp-prefix-sid | |||
| Registration Procedure(s): Values 1-254 First Come, First Served, | Registration Procedure(s): Values 1-254 First Come First Served | |||
| Value 0 and 255 reserved | (FCFS), Value 0 and 255 reserved | |||
| Value Type Reference | Value Type Reference | |||
| 0 Reserved this document | 0 Reserved this document | |||
| 1 Label-Index this document | 1 Label-Index this document | |||
| 2 IPv6 SID this document | 2 IPv6 SID this document | |||
| 3 Originator SRGB this document | 3 Originator SRGB this document | |||
| 4-254 Unassigned | 4-254 Unassigned | |||
| 255 Reserved this document | 255 Reserved this document | |||
| This document also creates a registry for the 16 bits of flags in the | This document also creates a registry for the 16 bits of flags in the | |||
| Label-Index TLV. Initially, the registry will be empty. Flag bits | Label-Index TLV. Initially, the registry will be empty. Flag bits | |||
| will be allocated First-Come, First Served consistent with the BGP- | will be allocated First Come First Served (FCFS) consistent with the | |||
| SID TLV Types registry. | BGP-SID TLV Types registry. | |||
| Finally, this document creates a registry for the 16 bits of flags in | Finally, this document creates a registry for the 16 bits of flags in | |||
| the SRGB Originator TLV. Initially, the registry will be empty. | the SRGB Originator TLV. Initially, the registry will be empty. | |||
| Flag bits will be allocated First-Come, First Served consistent with | Flag bits will be allocated First Come First Served (FCFS) consistent | |||
| the BGP-SID TLV Types registry. | with the BGP-SID TLV Types registry. | |||
| 8. Manageability Considerations | 8. Manageability Considerations | |||
| This document defines a BGP attribute to address use cases such as | This document defines a BGP attribute to address use cases such as | |||
| the one described in [I-D.ietf-spring-segment-routing-msdc]. It is | the one described in [I-D.ietf-spring-segment-routing-msdc]. It is | |||
| assumed that advertisement of the BGP Prefix-SID attribute is | assumed that advertisement of the BGP Prefix-SID attribute is | |||
| controlled by the operator in order to: | controlled by the operator in order to: | |||
| o Prevent undesired origination/advertisement of the BGP Prefix-SID | o Prevent undesired origination/advertisement of the BGP Prefix-SID | |||
| attribute. By default, a BGP Prefix-SID attribute SHOULD NOT be | attribute. By default, a BGP Prefix-SID attribute SHOULD NOT be | |||
| skipping to change at page 14, line 21 ¶ | skipping to change at page 14, line 21 ¶ | |||
| 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 | The authors would like to thank Shyam Sethuram for comments and | |||
| discussion of TLV processing and validation. | discussion of TLV processing and validation. | |||
| The authors would like to thank Peter Lee for IETF last call review. | ||||
| 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-15 (work | |||
| in progress), December 2017. | in progress), January 2018. | |||
| [I-D.ietf-spring-segment-routing-mpls] | [I-D.ietf-spring-segment-routing-mpls] | |||
| Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., | Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., | |||
| Litkowski, S., and R. Shakir, "Segment Routing with MPLS | Litkowski, S., and R. Shakir, "Segment Routing with MPLS | |||
| data plane", draft-ietf-spring-segment-routing-mpls-11 | data plane", draft-ietf-spring-segment-routing-mpls-11 | |||
| (work in progress), October 2017. | (work in progress), October 2017. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| skipping to change at page 15, line 26 ¶ | skipping to change at page 15, line 26 ¶ | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address | [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address | |||
| Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, | Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, | |||
| <https://www.rfc-editor.org/info/rfc8277>. | <https://www.rfc-editor.org/info/rfc8277>. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [I-D.ietf-idr-bgp-ls-segment-routing-ext] | [I-D.ietf-idr-bgp-ls-segment-routing-ext] | |||
| Previdi, S., Psenak, P., Filsfils, C., Gredler, H., and M. | Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., | |||
| Chen, "BGP Link-State extensions for Segment Routing", | and M. Chen, "BGP Link-State extensions for Segment | |||
| draft-ietf-idr-bgp-ls-segment-routing-ext-03 (work in | Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-04 | |||
| progress), July 2017. | (work in progress), January 2018. | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe] | [I-D.ietf-idr-bgpls-segment-routing-epe] | |||
| Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. | Previdi, S., Filsfils, C., Patel, K., Ray, S., and J. | |||
| Dong, "BGP-LS extensions for Segment Routing BGP Egress | Dong, "BGP-LS extensions for Segment Routing BGP Egress | |||
| Peer Engineering", draft-ietf-idr-bgpls-segment-routing- | Peer Engineering", draft-ietf-idr-bgpls-segment-routing- | |||
| epe-14 (work in progress), December 2017. | epe-14 (work in progress), December 2017. | |||
| [I-D.ietf-spring-segment-routing-msdc] | [I-D.ietf-spring-segment-routing-msdc] | |||
| Filsfils, C., Previdi, S., Mitchell, J., Aries, E., and P. | Filsfils, C., Previdi, S., Mitchell, J., Aries, E., and P. | |||
| Lapukhov, "BGP-Prefix Segment in large-scale data | Lapukhov, "BGP-Prefix Segment in large-scale data | |||
| End of changes. 27 change blocks. | ||||
| 41 lines changed or deleted | 43 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/ | ||||