| < draft-ietf-idr-bgp-prefix-sid-15.txt | draft-ietf-idr-bgp-prefix-sid-16.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: August 16, 2018 Cisco Systems | Expires: August 17, 2018 Cisco Systems | |||
| A. Sreekantiah | A. Sreekantiah | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| February 12, 2018 | February 13, 2018 | |||
| Segment Routing Prefix SID extensions for BGP | Segment Routing Prefix SID extensions for BGP | |||
| draft-ietf-idr-bgp-prefix-sid-15 | draft-ietf-idr-bgp-prefix-sid-16 | |||
| Abstract | Abstract | |||
| The Segment Routing (SR) architecture allows a node to steer a packet | The 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 August 16, 2018. | This Internet-Draft will expire on August 17, 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 10, line 15 ¶ | skipping to change at page 10, line 15 ¶ | |||
| 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. | a given prefix are outside the scope of this document. | |||
| Given a label index L_I, we refer to (L = L_I + SRGB_Start) as the | Given a label index L_I, we refer to (L = L_I + SRGB_Start) as the | |||
| derived label. A BGP Prefix-SID attribute is designated | derived label. A BGP Prefix-SID attribute is designated | |||
| "conflicting" for a speaker M if the derived label value L lies | "conflicting" for a speaker M if the derived label value L lies | |||
| outside the SRGB configured on M. Otherwise the Label-Index TLV is | outside the SRGB configured on M. Otherwise the Label-Index TLV is | |||
| designated "acceptable" to speaker M. | designated "acceptable" to speaker M. | |||
| If multiple different prefixes are received with the same label | If multiple different prefixes are received with the same label | |||
| index, all these but one of these different prefixes MUST have their | index, either all or all but one of the different prefixes MUST have | |||
| BGP Prefix-SID attribute considered as "conflicting" by the receiving | their BGP Prefix-SID attribute considered as "conflicting". If one | |||
| speaker. Alternately, all the different prefixes with the same label | of the different prefixes is considered "acceptable", it is | |||
| index MAY be considered "conflicting". | RECOMMENDED that the first prefix using the label index is selected. | |||
| If multiple valid paths for the same prefix are received from | If multiple valid paths for the same prefix are received from | |||
| multiple BGP speakers or, in the case of [RFC7911], from the same BGP | multiple BGP speakers or, in the case of [RFC7911], from the same BGP | |||
| speaker, and the BGP Prefix-SID attributes do not contain the same | speaker, and the BGP Prefix-SID attributes do not contain the same | |||
| label index, then the label index from the best path BGP Prefix-SID | label index, then the label index from the best path BGP Prefix-SID | |||
| attribute SHOULD be chosen. | attribute SHOULD be chosen with a notable exception being when | |||
| [RFC5005] is being used to dampen route changes. | ||||
| When a BGP speaker receives a path from a neighbor with an | When a BGP speaker receives a path from a neighbor with an | |||
| "acceptable" BGP Prefix-SID attribute and that path is selected as | "acceptable" BGP Prefix-SID attribute and that path is selected as | |||
| the best path, it SHOULD program the derived label as the label for | the best path, it SHOULD program the derived label as the label for | |||
| the prefix in its local MPLS dataplane. | the prefix in its local MPLS dataplane. | |||
| When a BGP speaker receives a path from a neighbor with an "invalid" | When a BGP speaker receives a path from a neighbor with an "invalid" | |||
| or "conflicting" BGP Prefix-SID attribute or when a BGP speaker | or "conflicting" BGP Prefix-SID attribute or when a BGP speaker | |||
| receives a path from a neighbor with a BGP Prefix-SID attribute but | receives 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 | is unable to process it (e.g., local policy disables the | |||
| policy disables the capability), it MUST ignore the BGP Prefix-SID | functionality), it MUST ignore the BGP Prefix-SID attribute. For the | |||
| attribute. For the purposes of label allocation, a BGP speaker MUST | purposes of label allocation, a BGP speaker MUST assign a local (also | |||
| assign a local (also called dynamic) label (non-SRGB) for such a | called dynamic) label (non-SRGB) for such a prefix as per classic | |||
| prefix as per classic Multiprotocol BGP labeled IPv4/IPv6 Unicast | Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]) operation. | |||
| ([RFC8277]) operation. | ||||
| In the case of an "invalid" BGP Prefix-SID attribute, a BGP speaker | In the case of an "invalid" BGP Prefix-SID attribute, a BGP speaker | |||
| MUST follow to the error handling rules specified in Section 6. A | MUST follow to the error handling rules specified in Section 6. A | |||
| BGP speaker SHOULD log an error for further analysis. In the case of | BGP speaker SHOULD log an error for further analysis. In the case of | |||
| a "conflicting" BGP Prefix-SID attribute, a BGP speaker SHOULD NOT | a "conflicting" BGP Prefix-SID attribute, a BGP speaker SHOULD NOT | |||
| treat it as error and SHOULD propagate the attribute unchanged. A | treat it as error and SHOULD propagate the attribute unchanged. A | |||
| BGP Speaker SHOULD log a warning for further analysis, i.e., in the | BGP Speaker SHOULD log a warning for further analysis, i.e., in the | |||
| case the conflict is not due to a label index transition. | case the conflict is not due to a label index transition. | |||
| When a BGP Prefix-SID attribute changes and transitions from | When a BGP Prefix-SID attribute changes and transitions from | |||
| skipping to change at page 11, line 22 ¶ | skipping to change at page 11, line 22 ¶ | |||
| when forwarding traffic to the prefix. The label NLRI defines the | when forwarding traffic to the prefix. The label NLRI defines the | |||
| outbound label that MUST be used by the receiving node. | outbound label that MUST be used by the receiving node. | |||
| 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 and "acceptable". | whether the IPv6 SID TLV is present and "acceptable". | |||
| If multiple different prefixes are received with the same IPv6 SID, | If multiple different prefixes are received with the same IPv6 SID, | |||
| all these but one of these different prefixes MUST have their BGP | either all or all but one of the different prefixes MUST have their | |||
| Prefix-SID attribute considered as "conflicting" by the receiving | BGP Prefix-SID attribute considered as "conflicting". If one of the | |||
| speaker. Alternately, all the different prefixes with the same IPv6 | different prefixes is considered "acceptable", it is RECOMMENDED that | |||
| SID MAY be considered "conflicting". | the first prefix using the IPv6 SID is selected. | |||
| If multiple valid paths for the same prefix are received from | If multiple valid paths for the same prefix are received from | |||
| multiple BGP speakers or, in the case of [RFC7911], from the same BGP | multiple BGP speakers or, in the case of [RFC7911], from the same BGP | |||
| speaker, and the BGP Prefix-SID attributes do not contain the same | speaker, and the BGP Prefix-SID attributes do not contain the same | |||
| IPv6 SID, then the IPv6 SID from the best path BGP Prefix-SID | IPv6 SID, then the IPv6 SID from the best path BGP Prefix-SID | |||
| attributes SHOULD be chosen. | attribute SHOULD be chosen with a notable exception being when | |||
| [RFC5005] is being used to dampen route changes. | ||||
| If "acceptable" and chosen as the best path, the prefix is installed | If "acceptable" and chosen as the best path, the prefix is installed | |||
| into the Segment Routing IPv6 dataplane as described in | into the Segment Routing IPv6 dataplane as described in | |||
| [I-D.ietf-spring-segment-routing]. | [I-D.ietf-spring-segment-routing]. | |||
| When a BGP speaker receives a path from a neighbor with an "invalid" | When a BGP speaker receives a path from a neighbor with an "invalid" | |||
| or "conflicting" BGP Prefix-SID attribute or when a BGP speaker | or "conflicting" BGP Prefix-SID attribute or when a BGP speaker | |||
| receives a path from a neighbor with a BGP Prefix-SID attribute but | receives 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 | is unable to process it (e.g, local policy disables the | |||
| policy disables the capability), it MUST ignore the BGP Prefix-SID | functionality), it MUST ignore the BGP Prefix-SID attribute and | |||
| attribute and revert to [RFC2545] and [RFC4271]. Consistent with the | revert to [RFC2545] and [RFC4271]. Consistent with the MPLS | |||
| MPLS dataplane Section 4.1, a BGP speaker SHOULD log the condition | dataplane Section 4.1, a BGP speaker SHOULD log the condition for | |||
| for further analysis. | further analysis. | |||
| When a BGP Prefix-SID attribute changes and transitions from | When a BGP Prefix-SID attribute changes and transitions from | |||
| "conflicting" to "acceptable", the BGP Prefix-SID attributes for | "conflicting" to "acceptable", the BGP Prefix-SID attributes for | |||
| other prefixes may also transition to "acceptable" as well. | other prefixes may also transition to "acceptable" as well. | |||
| Implementations SHOULD assure all impacted prefixes revert to using | Implementations SHOULD assure all impacted prefixes revert to using | |||
| the IPv6 SIDs corresponding to these newly "acceptable" BGP Prefix- | the IPv6 SIDs corresponding to these newly "acceptable" BGP Prefix- | |||
| SID attributes. | SID attributes. | |||
| 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 extensibility, no TLVs are required for the | reception. For future extensibility, no TLVs are required for the | |||
| skipping to change at page 18, line 17 ¶ | skipping to change at page 18, line 17 ¶ | |||
| 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 | |||
| centers", draft-ietf-spring-segment-routing-msdc-08 (work | centers", draft-ietf-spring-segment-routing-msdc-08 (work | |||
| in progress), December 2017. | in progress), December 2017. | |||
| [RFC5005] Nottingham, M., "Feed Paging and Archiving", RFC 5005, | ||||
| DOI 10.17487/RFC5005, September 2007, <https://www.rfc- | ||||
| editor.org/info/rfc5005>. | ||||
| [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, <https://www.rfc- | DOI 10.17487/RFC7752, March 2016, <https://www.rfc- | |||
| editor.org/info/rfc7752>. | editor.org/info/rfc7752>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Stefano Previdi (editor) | Stefano Previdi (editor) | |||
| Cisco Systems | Cisco Systems | |||
| End of changes. 11 change blocks. | ||||
| 25 lines changed or deleted | 30 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/ | ||||