| < draft-ietf-idr-bgp-prefix-sid-04.txt | draft-ietf-idr-bgp-prefix-sid-05.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: June 15, 2017 K. Patel | Expires: October 22, 2017 A. Sreekantiah | |||
| A. Sreekantiah | ||||
| Cisco Systems | Cisco Systems | |||
| S. Ray | ||||
| Unaffiliated | ||||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| December 12, 2016 | April 20, 2017 | |||
| Segment Routing Prefix SID extensions for BGP | Segment Routing Prefix SID extensions for BGP | |||
| draft-ietf-idr-bgp-prefix-sid-04 | draft-ietf-idr-bgp-prefix-sid-05 | |||
| 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 a SR header to a packet | source routing. The ingress node prepends a SR header to a packet | |||
| containing a set of "segments". Each segment 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 at the ingress node of the SR domain. | maintained only at the ingress node of the SR domain. | |||
| This document describes the BGP extension for announcing BGP Prefix | This document describes the BGP extension for announcing BGP Prefix | |||
| Segment Identifier (BGP Prefix SID) information. | Segment Identifier (BGP Prefix-SID) information. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119] | document are to be interpreted as described in RFC 2119 [RFC2119] | |||
| only when they appear in all upper case. They may also appear in | only when they appear in all upper case. They may also appear in | |||
| lower or mixed case as English words, without any normative meaning. | lower or mixed case as English words, without any normative meaning. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 2, line 6 ¶ | skipping to change at page 2, line 4 ¶ | |||
| 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 October 22, 2017. | ||||
| This Internet-Draft will expire on June 15, 2017. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Segment Routing Documents . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. MPLS Prefix Segment . . . . . . . . . . . . . . . . . . . 4 | 2.2. IPv6 Prefix Segment . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. IPv6 Prefix Segment . . . . . . . . . . . . . . . . . . . 5 | 3. BGP-Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 | |||
| 4. BGP-Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 | 3.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.2. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 8 | 4. Receiving BGP-Prefix-SID Attribute . . . . . . . . . . . . . 9 | |||
| 5. Receiving BGP-Prefix-SID Attribute . . . . . . . . . . . . . 9 | 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9 | |||
| 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9 | 4.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 10 | 5. Announcing BGP-Prefix-SID Attribute . . . . . . . . . . . . . 10 | |||
| 6. Announcing BGP-Prefix-SID Attribute . . . . . . . . . . . . . 10 | 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10 | |||
| 6.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 11 | 5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11 | 6. Error Handling of BGP-Prefix-SID Attribute . . . . . . . . . 11 | |||
| 7. Error Handling of BGP-Prefix-SID Attribute . . . . . . . . . 12 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 8. Manageability Considerations . . . . . . . . . . . . . . . . 12 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 11. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 13 | 12.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 1. Segment Routing Documents | 1. Introduction | |||
| The main references for this document are the SR architecture defined | ||||
| in [I-D.ietf-spring-segment-routing] and the related use case | ||||
| illustrated in [I-D.ietf-spring-segment-routing-msdc]. | ||||
| The Segment Routing Egress Peer Engineering architecture is described | ||||
| in [I-D.ietf-spring-segment-routing-central-epe]. | ||||
| The Segment Routing Egress Peer Engineering BGPLS extensions are | ||||
| described in [I-D.ietf-idr-bgpls-segment-routing-epe]. | ||||
| 2. 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 a SR | paradigm. A group of inter-connected nodes that use SR forms a SR | |||
| domain. The ingress node of the SR domain prepends a SR header | domain. A segment represents either a topological instruction such | |||
| containing "segments" to an incoming packet. Each segment represents | as "go to prefix P following shortest path" or a service instruction | |||
| a topological instruction such as "go to prefix P following shortest | (e.g.: "pass through deep packet inspection"). Other types of | |||
| path" or a service instruction (e.g.: "pass through deep packet | segments may be defined in the future. | |||
| inspection"). By inserting the desired sequence of instructions, the | ||||
| ingress node is able to steer a packet via any topological path and/ | ||||
| or service chain; per-flow state is maintained only at the ingress | ||||
| node of the SR domain. | ||||
| Each segment is identified by a Segment Identifier (SID). As | A segment is identified through a Segment Identifier (SID). | |||
| described in [I-D.ietf-spring-segment-routing], when SR is applied to | Typically, the ingress node of the SR domain prepends a SR header | |||
| the MPLS dataplane the SID consists of a label while when SR is | containing segments identifiers (SIDs) to an incoming packet. | |||
| applied to the IPv6 dataplane the SID consists of an IPv6 prefix (see | ||||
| [I-D.ietf-6man-segment-routing-header]). | ||||
| A BGP-Prefix Segment (aka BGP-Prefix-SID), is a BGP segment attached | As described in [I-D.ietf-spring-segment-routing], when SR is applied | |||
| to a BGP prefix. A BGP-Prefix-SID is always global within the SR/BGP | to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]) the | |||
| domain and identifies an instruction to forward the packet over the | SID consists of a label while when SR is applied to the IPv6 | |||
| ECMP-aware best-path computed by BGP to the related prefix. The BGP- | dataplane the SID consists of an IPv6 address. | |||
| Prefix-SID is the identifier of the BGP prefix segment. | ||||
| This document describes the BGP extension to signal the BGP-Prefix- | 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 | ||||
| ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., | ||||
| the set of Autonomous Systems under a common administration and | ||||
| control and where SR is used) and identifies an instruction 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 | ||||
| prefix segment. In this document we always refer to the BGP segment | ||||
| as the BGP Prefix-SID. | ||||
| This document describes the BGP extension to signal the BGP Prefix- | ||||
| SID. Specifically, this document defines a new BGP attribute known | SID. Specifically, this document defines a new BGP attribute known | |||
| as the BGP Prefix SID attribute and specifies the rules to originate, | as the BGP Prefix-SID attribute and specifies the rules to originate, | |||
| receive and handle error conditions of the new attribute. | receive and handle error conditions of the new attribute. | |||
| As described in [I-D.ietf-spring-segment-routing-msdc], the newly | As described in [I-D.ietf-spring-segment-routing-msdc], the BGP | |||
| proposed BGP Prefix-SID attribute can be attached to prefixes from | Prefix-SID attribute defined in this document can be attached to | |||
| AFI/SAFI: | prefixes from AFI/SAFI: | |||
| Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]). | Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]). | |||
| Multiprotocol BGP ([RFC4760]) unlabeled IPv6 Unicast. | Multiprotocol BGP ([RFC4760]) unlabeled IPv6 Unicast. | |||
| [I-D.ietf-spring-segment-routing-msdc] describes use cases where the | [I-D.ietf-spring-segment-routing-msdc] describes use cases where the | |||
| Prefix-SID is used for the above AFI/SAFI. | Prefix-SID is used for the above AFI/SAFI. | |||
| 3. BGP-Prefix-SID | It has to be noted that: | |||
| The BGP-Prefix-SID attached to a BGP prefix P represents the | o A BGP Prefix-SID MAY be global between domains when the | |||
| interconnected domains agree on the SID allocation scheme. | ||||
| Alternatively, when interconnecting domains, the ASBRs of each | ||||
| domain will have to handle the advertisement of unique SIDs. The | ||||
| mechanisms for such interconnection are outside the scope of the | ||||
| protocol extensions defined in this document. | ||||
| o As described in [I-D.ietf-spring-segment-routing-msdc], a BGP | ||||
| Prefix-SID MAY be attached to a prefix. In addition, each prefix | ||||
| will likely have a different as_path attribute. This implies that | ||||
| each prefix is advertised individually, reducing the ability to | ||||
| pack BGP advertisements (when sharing common attributes). | ||||
| 2. BGP-Prefix-SID | ||||
| The BGP Prefix-SID attached to a BGP prefix P represents the | ||||
| instruction "go to Prefix P" along its BGP bestpath (potentially | instruction "go to Prefix P" along its BGP bestpath (potentially | |||
| ECMP-enabled). | ECMP-enabled). | |||
| 3.1. MPLS Prefix Segment | 2.1. MPLS BGP Prefix SID | |||
| The BGP Prefix Segment is realized on the MPLS dataplane in the | The BGP Prefix-SID is realized on the MPLS dataplane | |||
| following way: | ([I-D.ietf-spring-segment-routing-mpls]) in the following way: | |||
| As described in [I-D.ietf-spring-segment-routing-msdc] the | As described in [I-D.ietf-spring-segment-routing-msdc] the | |||
| operator assigns a globally unique "index", L_I, to a locally | operator assigns a globally unique "index", L_I, to a locally | |||
| sourced prefix of a BGP speaker N which is advertised to all other | sourced prefix of a BGP speaker N which is advertised to all other | |||
| BGP speakers in the SR domain. | 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 it is recommended to use the same SRGB across | Block (SRGB). While [I-D.ietf-spring-segment-routing] recommends | |||
| all the nodes within the SR domain, the SRGB of a node is a local | to use the same SRGB across all the nodes within the SR domain, | |||
| property and could be different on different speakers. The | the SRGB of a node is a local property and could be different on | |||
| drawbacks of the use case where BGP speakers have different SRGBs | different speakers. The drawbacks of the use case where BGP | |||
| are documented in [I-D.ietf-spring-segment-routing] and | speakers have different SRGBs are documented in | |||
| [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 SID's for each of its links and peers. This informations | Peering SID's for each of its links and peers. This information | |||
| is required in order to perform the explicit path computation and | is required in order to perform the explicit path computation and | |||
| to express any explicit path into a list of segments. The | to express any explicit path into a list of SIDs. The | |||
| advertisement of topological information and Peer segments is | advertisement of topological information and Peer segments (Peer | |||
| assumed to be done through | SIDs) is assumed to be done through | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe]. | [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 topological, peer segments and SRGB information | collecting both topological, peer segments (Peer SIDs) and SRGB | |||
| through [RFC7752], [I-D.ietf-idr-bgpls-segment-routing-epe] and | information through [RFC7752], | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe] and | ||||
| [I-D.ietf-idr-bgp-ls-segment-routing-ext]. However, as an | [I-D.ietf-idr-bgp-ls-segment-routing-ext]. However, as an | |||
| optional alternative for the advertisement of the local SRGB | optional alternative for the advertisement of the local SRGB | |||
| without the topology nor the peer SID's, hence without | without the topology nor the peer SID's, hence without | |||
| applicability for TE, the Originator SRGB TLV of the prefix-SID | applicability for TE, the Originator SRGB TLV of the prefix-SID | |||
| attribute, is specified in Section 4.3 of this document. | attribute, is specified in Section 3.3 of this document. | |||
| The index L_I is a 32 bit offset in the SRGB. Each BGP speaker | As defined in [I-D.ietf-spring-segment-routing-mpls], the index | |||
| derives its local MPLS label, L, by adding L_I to the start value | L_I is an offset in the SRGB. Each BGP speaker derives its local | |||
| of its own SRGB, and programs L in its MPLS dataplane as its | MPLS label, L, by adding L_I to the start value of its own SRGB, | |||
| incoming/local label for the prefix. See Section 5.1 for more | and programs L in its MPLS dataplane as its incoming/local label | |||
| for the prefix. It has to be noted that while SRGBs and SIDs are | ||||
| advertised using 32 bit values, the derived label is to be | ||||
| considered as the 20 right-most bits. See Section 4.1 for more | ||||
| details. | details. | |||
| The outgoing label for the prefix is found in the NLRI of the | The outgoing label for the prefix is found in the NLRI of the | |||
| Multiprotocol BGP labeled IPv4/IPv6 Unicast prefix advertisement. | Multiprotocol BGP labeled IPv4/IPv6 Unicast prefix advertisement. | |||
| The index L_I is only used as a hint to derive the local/incoming | The index L_I is only used as a hint to derive the local/incoming | |||
| label. | label. | |||
| Section 4.1 of this document specifies the Label-Index TLV of the | Section 3.1 of this document specifies the Label-Index TLV of the | |||
| BGP Prefix-SID attribute; this TLV can be used to advertise the | BGP Prefix-SID attribute; this TLV can be used to advertise the | |||
| label index of a given prefix. | label index of a given prefix. | |||
| In order to advertise the label index of a given prefix P and, | In order to advertise the label index of a given prefix P and, | |||
| optionally, the SRGB, a new extension to BGP is needed: the BGP | optionally, the SRGB, a new extension to BGP is needed: the BGP | |||
| Prefix SID attribute. This extension is described in subsequent | Prefix-SID attribute. This extension is described in subsequent | |||
| sections. | sections. | |||
| 3.2. IPv6 Prefix Segment | 2.2. IPv6 Prefix Segment | |||
| As defined in [I-D.ietf-6man-segment-routing-header], and as | ||||
| illustrated in [I-D.ietf-spring-segment-routing-msdc], when SR is | ||||
| used over an IPv6 dataplane, the BGP Prefix Segment is instantiated | ||||
| by an IPv6 prefix originated by the BGP speaker. | ||||
| Each node advertises a globally unique IPv6 address representing | ||||
| itself in the domain. This prefix (e.g.: its loopback interface | ||||
| address) is advertised to all other BGP speakers in the SR domain. | ||||
| Also, each node MUST advertise its support of Segment Routing for | As illustrated in [I-D.ietf-spring-segment-routing-msdc], when SR is | |||
| IPv6 dataplane. This is realized using the flags contained in the | used over an IPv6 dataplane, the BGP Prefix-SID consists of an IPv6 | |||
| Prefix SID Attribute defined below. | address assigned to the BGP speaker. | |||
| 4. 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 is to be assigned by IANA | attribute. The attribute type code 40 has been assigned by IANA (see | |||
| (suggested value: 40). The value field of the BGP-Prefix-SID | Section 7). | |||
| attribute has the following format: | ||||
| The value field of the BGP Prefix SID attribute is defined here to be | The BGP Prefix-SID attribute is defined here to be a set of elements | |||
| a set of elements encoded as "Type/Length/Value" (i.e., a set of | encoded as "Type/Length/Value" (i.e., a set of TLVs). The following | |||
| TLVs). Following TLVs are defined: | TLVs are defined: | |||
| o Label-Index TLV | o Label-Index TLV | |||
| o IPv6 SID TLV | o IPv6 SID TLV | |||
| o Originator SRGB TLV | o Originator SRGB TLV | |||
| Label-Index and Originator SRGB TLVs are used only when SR is applied | Label-Index and Originator SRGB TLVs are used only when SR is applied | |||
| to the MPLS dataplane. | to the MPLS dataplane. | |||
| IPv6 SID TLV is used only when SR is applied to the IPv6 dataplane. | IPv6 SID TLV is used only when SR is applied to the IPv6 dataplane. | |||
| 4.1. Label-Index TLV | 3.1. Label-Index TLV | |||
| The Label-Index TLV MUST be present in the Prefix-SID attribute | The Label-Index TLV MUST be present in the Prefix-SID attribute | |||
| attached to Labeled IPv4/IPv6 unicast prefixes ([RFC3107]) and has | attached to Labeled IPv4/IPv6 unicast prefixes ([RFC3107]) and has | |||
| the following format: | 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 6, line 42 ¶ | skipping to change at page 6, line 42 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label Index | | | Label Index | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type is 1. | o Type is 1. | |||
| o Length: is 7, the total length of the value portion of the TLV. | o Length: is 7, the total length of the value portion of the TLV. | |||
| o RESERVED: 8 bit field. SHOULD be 0 on transmission and MUST be | o RESERVED: 8 bit field. MUST be clear on transmission an MUST be | |||
| ignored on reception. | ignored at reception.. | |||
| o Flags: 16 bits of flags. None are defined at this stage of the | o Flags: 16 bits of flags. None is defined by this document. The | |||
| document. The flag field SHOULD be clear on transmission and MUST | flag field MUST be clear on transmission and MUST be ignored at | |||
| be ignored at 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. | |||
| 4.2. IPv6 SID | 3.2. IPv6 SID | |||
| The IPv6-SID TLV MUST be present in the Prefix-SID attribute attached | The IPv6-SID TLV MAY be present in the Prefix-SID attribute attached | |||
| to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]) and has the | to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]) and has the | |||
| following format: | 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 | | | RESERVED | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ||||
| | | | ||||
| | IPv6 SID (16 octets) | | ||||
| | | | ||||
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type is 2. | o Type is 2. | |||
| o Length: is 3, the total length of the value portion of the TLV. | o Length: is 19, the total length of the value portion of the TLV. | |||
| o RESERVED: 8 bit field. SHOULD be 0 on transmission and MUST be | ||||
| ignored on reception. | ||||
| o Flags: 16 bits of flags defined as follow: | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |S| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * S flag: if set then it means that the BGP speaker attaching the | o RESERVED: 24 bit field for future use. MUST be clear on | |||
| Prefix-SID Attribute to a prefix is capable of processing the | transmission an MUST be ignored at reception. | |||
| IPv6 Segment Routing Header (SRH, | ||||
| [I-D.ietf-6man-segment-routing-header]) for the segment | ||||
| corresponding to the originated IPv6 prefix. The use case | ||||
| leveraging the S flag is described in | ||||
| [I-D.ietf-spring-segment-routing-msdc]. | ||||
| The other bits of the flag field SHOULD be clear on transmission | o IPv6 SID: 16 octets. | |||
| an MUST be ignored at reception. | ||||
| 4.3. Originator SRGB TLV | 3.3. Originator SRGB TLV | |||
| The Originator SRGB TLV is an optional TLV and has the following | The Originator SRGB TLV is an optional TLV and has the following | |||
| format: | 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 | Flags | | | Type | Length | Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | | | Flags | | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 8, line 32 ¶ | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type is 3. | o Type is 3. | |||
| o Length is the total length of the value portion of the TLV: 2 + | o Length is the total length of the value portion of the TLV: 2 + | |||
| multiple of 6. | multiple of 6. | |||
| o Flags: 16 bits of flags. None are defined in this document. | o Flags: 16 bits of flags. None is defined in this document. Flags | |||
| Flags SHOULD be clear on transmission an MUST be ignored at | MUST be clear on transmission an MUST be ignored at 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. The | appears multiple times, the SRGB consists of multiple ranges. | |||
| meaning of an SRGB with multiple ranges is explained in | ||||
| Section 3.2 ("SID/Label Range TLV") of | ||||
| [I-D.ietf-ospf-segment-routing-extensions]. | ||||
| The Originator SRGB TLV contains the SRGB of the router originating | The Originator SRGB TLV contains the SRGB of the node originating the | |||
| the prefix to which the BGP Prefix SID is attached and MUST be kept | prefix to which the BGP Prefix-SID is attached and MUST be kept in | |||
| in the Prefix-SID Attribute unchanged during the propagation of the | the Prefix-SID Attribute unchanged during the propagation of the BGP | |||
| BGP update. | 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 Segment end. It is used to build SRTE policies when different | Prefix SID is attached. It is used to build segment routing policies | |||
| SRGB's are used in the fabric | when different SRGB's are used in the fabric | |||
| ([I-D.ietf-spring-segment-routing-msdc]). | ([I-D.ietf-spring-segment-routing-msdc]). | |||
| The originator SRGB may only appear on Prefix-SID attribute attached | The originator SRGB may only appear on Prefix-SID attribute attached | |||
| to prefixes of SAFI 4 (labeled unicast, [RFC3107]). | to prefixes of SAFI 4 (labeled unicast, [RFC3107]). | |||
| 5. 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, SHOULD | neighbor residing outside the boundaries of the SR domain, SHOULD | |||
| 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. | |||
| 5.1. MPLS Dataplane: Labeled Unicast | 4.1. MPLS Dataplane: Labeled Unicast | |||
| A Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]) session | A Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]) session | |||
| type is required. | type is required. | |||
| A BGP speaker may be locally configured with an SRGB=[GB_S, GB_E]. | A BGP speaker MAY be locally configured with an SRGB=[SRGB_Start, | |||
| The preferred method for deriving the SRGB is a matter of local | SRGB_End]. The preferred method for deriving the SRGB is a matter of | |||
| router configuration. | local node configuration. | |||
| Given a label index L_I, we call L = L_I + GB_S as the derived label. | Given a label_index L_I, we call L = L_I + SRGB_Start as the derived | |||
| A BGP Prefix-SID attribute is called "unacceptable" for a speaker M | label. A BGP Prefix-SID attribute is called "unacceptable" for a | |||
| if the derived label value L lies outside the SRGB configured on M. | speaker M if the derived label value L lies outside the SRGB | |||
| Otherwise the Label Index attribute is called "acceptable" to speaker | configured on M. Otherwise the Label Index attribute is called | |||
| M. | "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 | |||
| router originating the prefix. | node originating the prefix. | |||
| The Prefix-SID attribute MUST contain the Label-Index TLV and MAY | The 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. | |||
| If multiple prefixes are received with the same label_index value, | ||||
| all these prefixes MUST have their BGP Prefix-SID attribute | ||||
| considered as "unacceptable" by the receiving speaker. | ||||
| When a BGP speaker receives a path from a neighbor with an acceptable | When a BGP speaker receives a path from a neighbor with an acceptable | |||
| BGP Prefix-SID attribute, it MUST program the derived label as the | BGP Prefix-SID attribute, it MUST program the derived label as the | |||
| local label for the prefix in its MPLS dataplane. In case of any | local label for the prefix in its MPLS dataplane. In case of any | |||
| error, a BGP speaker MUST resort to the error handling rules | error, a BGP speaker MUST resort to the error handling rules | |||
| specified in Section 7. A BGP speaker MAY log an error for further | specified in Section 6. A BGP speaker MAY log an error for further | |||
| analysis. | analysis. | |||
| When a BGP speaker receives a path from a neighbor with an | When a BGP speaker receives a path from a neighbor with an | |||
| unacceptable BGP Prefix-SID attribute or when a BGP speaker receives | unacceptable BGP Prefix-SID attribute or when a BGP speaker receives | |||
| a path from a neighbor with a BGP-Prefix-SID attribute but is unable | a path from a neighbor with a BGP Prefix-SID attribute but is unable | |||
| to process it (it does not have the capability or local policy | to process it (it does not have the capability or local policy | |||
| disables the capability), it MUST treat the path as if it came | disables the capability), it MUST treat the path as if it came | |||
| without a Prefix-SID attribute. For the purposes of local label | without a Prefix-SID attribute. For the purposes of local label | |||
| allocation, a BGP speaker MUST assign a local (also called dynamic) | allocation, a BGP speaker MUST assign a local (also called dynamic) | |||
| label (non-SRGB) for such a prefix as per classic Multiprotocol BGP | label (non-SRGB) for such a prefix as per classic Multiprotocol BGP | |||
| labeled IPv4/IPv6 Unicast ([RFC3107]) operation. A BGP speaker MAY | labeled IPv4/IPv6 Unicast ([RFC3107]) operation. A BGP speaker MAY | |||
| log an error for further analysis. | log an error for further analysis. | |||
| The outgoing label is always programmed as per classic Multiprotocol | The outgoing label is always programmed as per classic Multiprotocol | |||
| BGP labeled IPv4/IPv6 Unicast (RFC3107 [RFC3107]) operation. | BGP labeled IPv4/IPv6 Unicast (RFC3107 [RFC3107]) operation. | |||
| Specifically, a BGP speaker receiving a prefix with a Prefix-SID | Specifically, a BGP speaker receiving a prefix with a Prefix-SID | |||
| attribute and a label NLRI field of implicit-null from a neighbor | attribute and a label NLRI field of implicit-null from a neighbor | |||
| 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 a hint to the receiving node on which | node. The Label Index gives the information to the receiving node on | |||
| local/incoming label the BGP speaker SHOULD use. | which local/incoming label the BGP speaker SHOULD use. | |||
| 5.2. IPv6 Dataplane | 4.2. IPv6 Dataplane | |||
| When a SR IPv6 BGP speaker receives a IPv6 Unicast BGP Update with a | When an SR IPv6 BGP speaker receives a IPv6 Unicast BGP Update with a | |||
| prefix having the BGP Prefix SID attribute attached, it checks | prefix having the BGP Prefix-SID attribute attached, it checks | |||
| whether the IPv6 SID TLV is present and if the S-flag is set. If the | whether the IPv6 SID TLV is present. If present, then the receiver | |||
| IPv6 SID TLV is present and if the S-flag is not set, then the | assumes that the originator supports SR on the IPv6 dataplane. | |||
| Prefix-SID attribute MUST be considered as "unacceptable" by the | ||||
| receiving speaker. | ||||
| The Originator SRGB MUST be ignored on reception. | The Originator SRGB MUST be ignored on reception. | |||
| 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, SHOULD | neighbor residing outside the boundaries of the SR domain, SHOULD | |||
| 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. | |||
| 6. Announcing BGP-Prefix-SID Attribute | 5. Announcing 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) [RFC3107]or to IPv6 prefixes [RFC4760]. In order to | (IPv4/IPv6) [RFC3107] or to IPv6 prefixes [RFC4760]. In order to | |||
| prevent distribution of the BGP Prefix-SID attribute beyond its | prevent distribution of the BGP Prefix-SID attribute beyond its | |||
| intended scope of applicability, attribute filtering MAY be deployed. | intended scope of applicability, attribute filtering SHOULD be | |||
| deployed. | ||||
| 6.1. MPLS Dataplane: Labeled Unicast | 5.1. MPLS Dataplane: Labeled Unicast | |||
| A BGP speaker that originates a prefix attaches the Prefix-SID | A BGP speaker that originates a prefix attaches the Prefix-SID | |||
| attribute when it advertises the prefix to its neighbors via | attribute when it advertises the prefix to its neighbors via | |||
| Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107])The value of | Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]). The value | |||
| the Label-Index in the Label-Index TLV is determined by | of the Label-Index in the Label-Index TLV is determined by | |||
| configuration. | configuration. | |||
| A BGP speaker that originates a Prefix-SID attribute MAY optionally | A BGP speaker that originates a Prefix-SID attribute MAY optionally | |||
| announce Originator SRGB TLV along with the mandatory Label-Index | announce Originator SRGB TLV along with the mandatory Label-Index | |||
| TLV. The content of the Originator SRGB TLV is determined by the | TLV. The content of the Originator SRGB TLV is determined by the | |||
| configuration. | configuration. | |||
| Since the Label-index value must be unique within an SR domain, by | Since the Label-index value must be unique within an SR domain, by | |||
| default an implementation SHOULD NOT advertise the BGP Prefix-SID | default an implementation SHOULD NOT advertise the BGP Prefix-SID | |||
| attribute outside an Autonomous System unless it is explicitly | attribute outside an Autonomous System unless it is explicitly | |||
| skipping to change at page 11, line 37 ¶ | skipping to change at page 11, line 29 ¶ | |||
| the speaker MAY attach a Prefix-SID to the path if configured to do | the speaker MAY attach a Prefix-SID to the path if configured to do | |||
| so. The content of the TLVs present in the Prefix-SID is determined | so. The content of the TLVs present in the Prefix-SID is determined | |||
| by the configuration. | by the configuration. | |||
| In all cases, the label field of the advertised NLRI ([RFC3107], | In all cases, the label field of the advertised NLRI ([RFC3107], | |||
| [RFC4364]) MUST be set to the local/incoming label programmed in the | [RFC4364]) MUST be set to the local/incoming label programmed in the | |||
| MPLS dataplane for the given advertised prefix. If the prefix is | MPLS dataplane for the given advertised prefix. If the prefix is | |||
| associated with one of the BGP speakers interfaces, this label is the | associated with one of the BGP speakers interfaces, this label is the | |||
| usual MPLS label (such as the implicit or explicit NULL label). | usual MPLS label (such as the implicit or explicit NULL label). | |||
| 6.2. IPv6 Dataplane | 5.2. IPv6 Dataplane | |||
| A BGP speaker that originates a prefix attaches the Prefix-SID | A BGP speaker that originates an IPv6 prefix with the Prefix-SID | |||
| attribute when it advertises the prefix to its neighbors. The IPv6 | attribute, MAY include the IPv6 SID TLV. | |||
| SID TLV MUST be present and the S-flag MUST be set. | ||||
| A BGP speaker that advertises a path received from one of its | A BGP speaker that advertises a path received from one of its | |||
| neighbors SHOULD advertise the Prefix-SID received with the path | neighbors SHOULD advertise the Prefix-SID received with the path | |||
| without modification regardless of whether the Prefix-SID was | without modification regardless of whether the Prefix-SID was | |||
| acceptable. If the path did not come with a Prefix-SID attribute, | acceptable. If the path did not come with a Prefix-SID attribute, | |||
| the speaker MAY attach a Prefix-SID to the path if configured to do | the speaker MAY attach a Prefix-SID to the path if configured to do | |||
| so. The IPv6-SID TLV MUST be present in the Prefix-SID and with the | so. | |||
| S-flag set. | ||||
| 7. Error Handling of BGP-Prefix-SID Attribute | 6. Error Handling of BGP-Prefix-SID Attribute | |||
| When a BGP Speaker receives a BGP Update message containing a | When a BGP Speaker receives a BGP Update message containing a | |||
| malformed BGP Prefix-SID attribute, it MUST ignore the received BGP | malformed BGP Prefix-SID attribute, it MUST ignore the received BGP | |||
| Prefix-SID attributes and not pass it to other BGP peers. This is | Prefix-SID attributes and not pass it to other BGP peers. This is | |||
| equivalent to the -attribute discard- action specified in [RFC7606]. | equivalent to the -attribute discard- action specified in [RFC7606]. | |||
| When discarding an attribute, a BGP speaker MAY log an error for | When discarding an attribute, a BGP speaker MAY log an error for | |||
| further analysis. | further analysis. | |||
| If the BGP Prefix-SID attribute appears more than once in an BGP | If the BGP Prefix-SID attribute appears more than once in an BGP | |||
| Update message, then, according to [RFC7606], all the occurrences of | Update message, then, according to [RFC7606], all the occurrences of | |||
| the attribute other than the first one SHALL be discarded and the BGP | the attribute other than the first one SHALL be discarded and the BGP | |||
| Update message shall continue to be processed. | Update message SHALL continue to be processed. | |||
| When a BGP speaker receives an unacceptable Prefix-SID attribute, it | When a BGP speaker receives an unacceptable Prefix-SID attribute, it | |||
| MAY log an error for further analysis. | MAY log an error for further analysis. | |||
| 8. IANA Considerations | 7. IANA Considerations | |||
| This document defines a new BGP path attribute known as the BGP | This document defines a new BGP path attribute known as the BGP | |||
| Prefix-SID attribute. This document requests IANA to assign a new | Prefix-SID attribute. This document requests IANA to assign a new | |||
| attribute code type (suggested value: 40) for BGP the Prefix-SID | attribute code type (suggested value: 40) for BGP the Prefix-SID | |||
| attribute from the BGP Path Attributes registry. | attribute from 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 new TLVs for BGP Prefix-SID attribute. These | This document defines 3 new TLVs for 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 | |||
| new registry for BGP Prefix-SID Attribute TLVs as follows: | new 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 attribute Types" Reference: draft-ietf-idr-bgp-prefix-sid | Prefix-SID attribute 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 | 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 | |||
| 8. Manageability Considerations | ||||
| This document defines a new BGP attribute in order to address the use | ||||
| case described in [I-D.ietf-spring-segment-routing-msdc]. It i | ||||
| assumed that the new attribute (BGP Prefix-SID) advertisement is | ||||
| controlled by the operator in order to: | ||||
| o prevent undesired origination/advertisement of the BGP Prefix-SID | ||||
| attribute. By default, a BGP Prefix-SID attribute SHOULD NOT be | ||||
| originated and attached to a prefix. The operator MUST be capable | ||||
| of explicitly enabling the BGP Prefix-SID origination. | ||||
| o Prevent any undesired propagation of the BGP Prefix-SID attribute. | ||||
| By default the BGP Prefix-SID is not advertised outside the | ||||
| boundary of an AS. The propagation to other ASs MUST be | ||||
| explicitly configured. | ||||
| The deployment model described in | ||||
| [I-D.ietf-spring-segment-routing-msdc] assumes multiple Autonomous | ||||
| Systems (AS) under a common administration. The BGP Prefix-SID | ||||
| advertisement is therefore applicable to inter-AS context while it is | ||||
| confined within a single SR Domain. | ||||
| 9. Security Considerations | 9. Security Considerations | |||
| This document introduces no new security considerations above and | This document introduces a new BGP attribute (BGP Prefix-SID) which | |||
| beyond those already specified in [RFC4271] and [RFC3107]. | inherits the security considerations expressed in: [RFC4271] and | |||
| [RFC3107]. | ||||
| 10. Acknowledgements | The BGP Prefix-SID attribute addresses the requirements introduced in | |||
| [I-D.ietf-spring-segment-routing-msdc] and It has to be noted, as | ||||
| described in Section 8, that this document refer to a deployment | ||||
| model where all nodes are under the same administration. In this | ||||
| context, we assume that the operator doesn't want to leak outside of | ||||
| the domain any information related to internal prefixes and topology. | ||||
| The internal information includes the BGP Prefix-SID. In order to | ||||
| prevent such leaking, the standard BGP mechanisms (filters) are | ||||
| applied on the boundary of the domain. | ||||
| The authors would like to thanks Satya Mohanty for his contribution | 10. Contributors | |||
| to this document. | ||||
| 11. Change Log | Keyur Patel | |||
| Arrcus, Inc. | ||||
| US | ||||
| Initial Version: Sep 21 2014 | Email: Keyur@arrcus.com | |||
| Saikat Ray | ||||
| Unaffiliated | ||||
| US | ||||
| Email: raysaikat@gmail.com | ||||
| 11. Acknowledgements | ||||
| The authors would like to thanks Satya Mohanty for his contribution | ||||
| to this document. | ||||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [I-D.ietf-spring-segment-routing] | ||||
| Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., | ||||
| and R. Shakir, "Segment Routing Architecture", draft-ietf- | ||||
| spring-segment-routing-11 (work in progress), February | ||||
| 2017. | ||||
| [I-D.ietf-spring-segment-routing-mpls] | ||||
| Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., | ||||
| Litkowski, S., and R. Shakir, "Segment Routing with MPLS | ||||
| data plane", draft-ietf-spring-segment-routing-mpls-08 | ||||
| (work in progress), March 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, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in | [RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in | |||
| BGP-4", RFC 3107, DOI 10.17487/RFC3107, May 2001, | BGP-4", RFC 3107, DOI 10.17487/RFC3107, May 2001, | |||
| <http://www.rfc-editor.org/info/rfc3107>. | <http://www.rfc-editor.org/info/rfc3107>. | |||
| [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
| skipping to change at page 14, line 5 ¶ | skipping to change at page 14, line 46 ¶ | |||
| Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
| 2006, <http://www.rfc-editor.org/info/rfc4364>. | 2006, <http://www.rfc-editor.org/info/rfc4364>. | |||
| [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | |||
| Patel, "Revised Error Handling for BGP UPDATE Messages", | Patel, "Revised Error Handling for BGP UPDATE Messages", | |||
| RFC 7606, DOI 10.17487/RFC7606, August 2015, | RFC 7606, DOI 10.17487/RFC7606, August 2015, | |||
| <http://www.rfc-editor.org/info/rfc7606>. | <http://www.rfc-editor.org/info/rfc7606>. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [I-D.ietf-6man-segment-routing-header] | ||||
| Previdi, S., Filsfils, C., Field, B., Leung, I., Linkova, | ||||
| J., Aries, E., Kosugi, T., Vyncke, E., and D. Lebrun, | ||||
| "IPv6 Segment Routing Header (SRH)", draft-ietf-6man- | ||||
| segment-routing-header-02 (work in progress), September | ||||
| 2016. | ||||
| [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., Chen, | Previdi, S., Psenak, P., Filsfils, C., Gredler, H., Chen, | |||
| M., and j. jefftant@gmail.com, "BGP Link-State extensions | M., and j. jefftant@gmail.com, "BGP Link-State extensions | |||
| for Segment Routing", draft-ietf-idr-bgp-ls-segment- | for Segment Routing", draft-ietf-idr-bgp-ls-segment- | |||
| routing-ext-00 (work in progress), November 2016. | routing-ext-01 (work in progress), February 2017. | |||
| [I-D.ietf-idr-bgpls-segment-routing-epe] | [I-D.ietf-idr-bgpls-segment-routing-epe] | |||
| Previdi, S., Filsfils, C., Ray, S., Patel, K., Dong, J., | Previdi, S., Filsfils, C., Patel, K., Ray, S., Dong, J., | |||
| and M. Chen, "Segment Routing BGP Egress Peer Engineering | and M. Chen, "Segment Routing BGP Egress Peer Engineering | |||
| BGP-LS Extensions", draft-ietf-idr-bgpls-segment-routing- | BGP-LS Extensions", draft-ietf-idr-bgpls-segment-routing- | |||
| epe-06 (work in progress), November 2016. | epe-11 (work in progress), March 2017. | |||
| [I-D.ietf-ospf-segment-routing-extensions] | ||||
| Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | ||||
| Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | ||||
| Extensions for Segment Routing", draft-ietf-ospf-segment- | ||||
| routing-extensions-10 (work in progress), October 2016. | ||||
| [I-D.ietf-spring-segment-routing] | ||||
| Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., | ||||
| and R. Shakir, "Segment Routing Architecture", draft-ietf- | ||||
| spring-segment-routing-10 (work in progress), November | ||||
| 2016. | ||||
| [I-D.ietf-spring-segment-routing-central-epe] | ||||
| Filsfils, C., Previdi, S., Aries, E., and D. Afanasiev, | ||||
| "Segment Routing Centralized BGP Peer Engineering", draft- | ||||
| ietf-spring-segment-routing-central-epe-03 (work in | ||||
| progress), November 2016. | ||||
| [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 | |||
| centers", draft-ietf-spring-segment-routing-msdc-02 (work | centers", draft-ietf-spring-segment-routing-msdc-04 (work | |||
| in progress), October 2016. | in progress), March 2017. | |||
| [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | |||
| "Multiprotocol Extensions for BGP-4", RFC 4760, | "Multiprotocol Extensions for BGP-4", RFC 4760, | |||
| DOI 10.17487/RFC4760, January 2007, | DOI 10.17487/RFC4760, January 2007, | |||
| <http://www.rfc-editor.org/info/rfc4760>. | <http://www.rfc-editor.org/info/rfc4760>. | |||
| [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | |||
| S. Ray, "North-Bound Distribution of Link-State and | S. Ray, "North-Bound Distribution of Link-State and | |||
| Traffic Engineering (TE) Information Using BGP", RFC 7752, | Traffic Engineering (TE) Information Using BGP", RFC 7752, | |||
| DOI 10.17487/RFC7752, March 2016, | DOI 10.17487/RFC7752, March 2016, | |||
| skipping to change at page 15, line 27 ¶ | skipping to change at page 16, line 4 ¶ | |||
| Italy | Italy | |||
| Email: sprevidi@cisco.com | Email: sprevidi@cisco.com | |||
| Clarence Filsfils | Clarence Filsfils | |||
| Cisco Systems | Cisco Systems | |||
| Brussels | Brussels | |||
| Belgium | Belgium | |||
| Email: cfilsfils@cisco.com | Email: cfilsfils@cisco.com | |||
| Acee Lindem | Acee Lindem | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Drive | 170 W. Tasman Drive | |||
| San Jose, CA 95124 95134 | San Jose, CA 95124 95134 | |||
| USA | USA | |||
| Email: acee@cisco.com | Email: acee@cisco.com | |||
| Keyur Patel | ||||
| Cisco Systems | ||||
| 170 W. Tasman Drive | ||||
| San Jose, CA 95124 95134 | ||||
| USA | ||||
| Email: keyupate@cisco.com | ||||
| Arjun Sreekantiah | Arjun Sreekantiah | |||
| Cisco Systems | Cisco Systems | |||
| 170 W. Tasman Drive | 170 W. Tasman Drive | |||
| San Jose, CA 95124 95134 | San Jose, CA 95124 95134 | |||
| USA | USA | |||
| Email: asreekan@cisco.com | Email: asreekan@cisco.com | |||
| Saikat Ray | ||||
| Unaffiliated | ||||
| Email: raysaikat@gmail.com | ||||
| Hannes Gredler | Hannes Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| Email: hannes@rtbrick.com | Email: hannes@rtbrick.com | |||
| End of changes. 86 change blocks. | ||||
| 247 lines changed or deleted | 247 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/ | ||||