draft-ietf-idr-bgp-prefix-sid-22.txt   draft-ietf-idr-bgp-prefix-sid-23.txt 
IDR S. Previdi, Ed. IDR S. Previdi, Ed.
Internet-Draft C. Filsfils Internet-Draft C. Filsfils
Intended status: Standards Track A. Lindem, Ed. Intended status: Standards Track A. Lindem, Ed.
Expires: December 15, 2018 Cisco Systems Expires: December 16, 2018 Cisco Systems
A. Sreekantiah A. Sreekantiah
H. Gredler H. Gredler
RtBrick Inc. RtBrick Inc.
June 13, 2018 June 14, 2018
Segment Routing Prefix SID extensions for BGP Segment Routing Prefix SID extensions for BGP
draft-ietf-idr-bgp-prefix-sid-22 draft-ietf-idr-bgp-prefix-sid-23
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. An SR domain maintained only on the ingress node of the SR domain. An SR domain
is defined as a single administrative domain for global SID is defined as a single administrative domain for global SID
skipping to change at page 2, line 10 skipping to change at page 2, line 10
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 December 15, 2018. This Internet-Draft will expire on December 16, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 34 skipping to change at page 2, line 34
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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4 2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4
3. BGP Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 3. BGP Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5
3.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 3.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6
3.2. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 3.2. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 6
4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 8 4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 8
4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 8 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 8
5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 10 5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 9
5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10
6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 11 6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 10
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
8. Manageability Considerations . . . . . . . . . . . . . . . . 12 8. Manageability Considerations . . . . . . . . . . . . . . . . 12
9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
12.1. Normative References . . . . . . . . . . . . . . . . . . 14 12.1. Normative References . . . . . . . . . . . . . . . . . . 14
12.2. Informative References . . . . . . . . . . . . . . . . . 15 12.2. Informative References . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
The Segment Routing (SR) architecture leverages the source routing The 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
skipping to change at page 3, line 31 skipping to change at page 3, line 31
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. SID consists of a label.
[I-D.ietf-spring-segment-routing] also describes how segment routing [I-D.ietf-spring-segment-routing] also describes how segment routing
can be applied to an IPv6 dataplane (SRv6) using an IPv6 routing can be applied to an IPv6 dataplane (SRv6) using an IPv6 routing
header containing a stack of SR SIDs encoded as IPv6 addresses header containing a stack of SR SIDs encoded as IPv6 addresses
[I-D.ietf-6man-segment-routing-header]. The applicability and [I-D.ietf-6man-segment-routing-header]. The applicability and
support for Segment Routing over IPv6 is beyond the scope of this support for Segment Routing over IPv6 is beyond the scope of this
document. document.
A BGP-Prefix Segment (and its BGP Prefix-SID) is a BGP segment A BGP-Prefix Segment is a BGP prefix with a Prefix-SID attached. A
attached to a BGP prefix. A BGP Prefix-SID is always a global SID 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 domain (i.e., the
the set of Autonomous Systems under a common administration and set of Autonomous Systems under a common administration and control
control and where SR is used) and identifies an instruction to and where SR is used) and identifies an instruction to forward the
forward the packet over the Equal-Cost Multi-Path (ECMP) best-path packet over the Equal-Cost Multi-Path (ECMP) best-path computed by
computed by BGP to the related prefix. The BGP Prefix-SID is the BGP to the related prefix. The BGP Prefix-SID is the identifier of
identifier of the BGP prefix segment. In this document, we always the BGP prefix segment. In this document, we always refer to the BGP
refer to the BGP segment by the BGP Prefix-SID. segment 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 Multiprotocol BGP labeled IPv4/IPv6 Unicast to prefixes from Multiprotocol BGP IPv4/IPv6 Labeled Unicast
([RFC4760], [RFC8277]). Usage of the BGP Prefix-SID attribute for ([RFC4760], [RFC8277]). Usage of the BGP Prefix-SID attribute for
other Address Family Identifier (AFI)/ Subsequent Address Family other Address Family Identifier (AFI)/ Subsequent Address Family
Identifier (SAFI) combinations is not defined herein but may be Identifier (SAFI) combinations is not defined herein but may be
specified in future specifications. specified in future specifications.
[I-D.ietf-spring-segment-routing-msdc] describes example use cases [I-D.ietf-spring-segment-routing-msdc] describes example use cases
where the BGP Prefix-SID is used for the above AFI/SAFI combinations. where the BGP Prefix-SID is used for the above AFI/SAFI combinations.
It should be noted that: It should be noted that:
o A BGP Prefix-SID MAY be global between domains when the o A BGP Prefix-SID MAY be global across ASes when the interconnected
interconnected domains agree on the SID allocation scheme. ASes agree on the SID allocation scheme. Alternatively, when
Alternatively, when interconnecting domains, the ASBRs of each interconnecting ASes, the ASBRs of each domain will have to handle
domain will have to handle the advertisement of unique SIDs. The the advertisement of unique SIDs. The mechanisms for such
mechanisms for such interconnection are outside the scope of the interconnection are outside the scope of the protocol extensions
protocol extensions defined in this document. defined in this document.
o A BGP Prefix-SID MAY be attached to a prefix. In addition, each o A BGP Prefix-SID MAY be attached to a prefix. This implies that
prefix will likely have a different AS_PATH attribute. This each prefix is advertised individually, reducing the ability to
implies that each prefix is advertised individually, reducing the pack BGP advertisements (when sharing common attributes).
ability to pack BGP advertisements (when sharing common
attributes).
2. BGP-Prefix-SID 2. BGP-Prefix-SID
The BGP Prefix-SID advertised for BGP prefix P indicates that the The BGP Prefix-SID advertised for BGP prefix P indicates that the
segment routed path should be used (as described below) if the BGP segment routed path should be used (as described below) if the BGP
best path selects the corresponding Network Layer Reachability best path selects the corresponding Network Layer Reachability
Information (NLRI). Information (NLRI).
2.1. MPLS BGP Prefix SID 2.1. MPLS BGP Prefix SID
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 originated prefix of a BGP speaker N which is advertised
all other BGP speakers in the SR domain. to 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
using the same SRGB across all the nodes within the SR domain, the using the same SRGB across all the nodes within the SR domain, 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].
skipping to change at page 5, line 22 skipping to change at page 5, line 21
This document assumes that BGP-LS is the preferred method for This document 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
[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 SIDs, hence without without the topology nor the peer SIDs, hence without
applicability for TE, the Originator SRGB TLV of the BGP Prefix- applicability for TE, the Originator SRGB TLV of the BGP Prefix-
SID attribute is specified in Section 3.2 of this document. SID attribute is specified in Section 3.2 of this document.
As defined in [I-D.ietf-spring-segment-routing], the label index A BGP speaker will derive its local MPLS label L from the label
L_I is an offset into the SRGB. Each BGP speaker derives its index L_I and its local SRGB as described in
local MPLS label, L, by adding L_I to the start value of its own [I-D.ietf-spring-segment-routing-mpls]. The BGP speaker then
SRGB, and programs L in its MPLS dataplane as its incoming/local programs the MPLS label L in its MPLS dataplane as its incoming/
label for the prefix. It should be noted that while SRGBs and local label for the prefix. See Section 4.1 for more details.
SIDs are advertised using 32-bit values, the derived label is
advertised in the 20 right-most bits. See Section 4.1 for more
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 IPv4/IPv6 Labeled Unicast prefix advertisement
as defined in [RFC8277]. The label index L_I is only used as a as defined in [RFC8277]. The label index L_I is only used as a
hint to derive the local/incoming label. hint to derive the local/incoming label.
Section 3.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 for a given prefix. label index for a given prefix.
In order to advertise the label index of a given prefix P and,
optionally, the SRGB, an extension to BGP is needed: the BGP Prefix-
SID attribute. This extension is described in subsequent sections.
3. BGP Prefix-SID Attribute 3. BGP Prefix-SID Attribute
The BGP Prefix-SID attribute is an optional, transitive BGP path The BGP Prefix-SID attribute is an optional, transitive BGP path
attribute. The attribute type code 40 has been assigned by IANA (see attribute. The attribute type code 40 has been assigned by IANA (see
Section 7). Section 7).
The BGP Prefix-SID attribute is defined here to be a set of elements The BGP Prefix-SID attribute is defined here to be a set of elements
encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). All BGP encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). All BGP
Prefix-SID attribute TLVs will start with a 1-octet type and a Prefix-SID attribute TLVs will start with a 1-octet type and a
2-octet length. The following TLVs are defined in this document: 2-octet length. The following TLVs are defined in this document:
skipping to change at page 6, line 10 skipping to change at page 6, line 4
Section 7). Section 7).
The BGP Prefix-SID attribute is defined here to be a set of elements The BGP Prefix-SID attribute is defined here to be a set of elements
encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). All BGP encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). All BGP
Prefix-SID attribute TLVs will start with a 1-octet type and a Prefix-SID attribute TLVs will start with a 1-octet type and a
2-octet length. The following TLVs are defined in this document: 2-octet length. The following TLVs are defined in this document:
o Label-Index TLV o Label-Index 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.
For future extensibility, unknown TLVs MUST be ignored and propagated For future extensibility, 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 MUST attached to IPv4/IPv6 Labeled 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 41 skipping to change at page 7, line 36
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 + (non-zero multiple of 6). TLV: 2 + (non-zero 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 specifying the first label in the range followed by
3 octets specifying the number of labels in the 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 that appears multiple times, the SRGB consists of multiple ranges that
are concatenated. are concatenated.
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. It
is used to build segment routing policies when different SRGBs are
The originator SRGB describes the SRGB of the node where the BGP used in the fabric, for example
Prefix SID is attached. It is used to build segment routing policies
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 receiving routers concatenate the ranges and build the Segment Examples of how the receiving routers concatenate the ranges and
Routing Global Block (SRGB) as follows: build their neighbor's Segment Routing Global Block (SRGB) are
included in [I-D.ietf-spring-segment-routing-mpls]).
SRGB = [100, 199]
[1000, 1099]
[500, 599]
The indexes span multiple ranges:
index=0 means label 100
...
index 99 means label 199
index 100 means label 1000
index 199 means label 1099
...
index 200 means label 500
...
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 MUST attached to IPv4/IPv6 Labeled Unicast prefixes ([RFC8277]). It MUST
be ignored when received for other BGP AFI/SAFI combinations. Since be ignored when received for other BGP AFI/SAFI combinations. Since
the Label-Index TLV is required for IPv4/IPv6 prefix applicability, the Label-Index TLV is required for IPv4/IPv6 prefix applicability,
the originator SRGB will be ignored if it is not specified consistent the originator SRGB will be ignored if it is not specified consistent
with Section 6. with Section 6.
4. Receiving BGP Prefix-SID Attribute 4. Receiving BGP Prefix-SID Attribute
A BGP speaker receiving a BGP Prefix-SID attribute from an External A BGP speaker receiving a BGP Prefix-SID attribute from an External
BGP (EBGP) neighbor residing outside the boundaries of the SR domain BGP (EBGP) neighbor residing outside the boundaries of the SR domain
MUST discard the attribute unless it is configured to accept the MUST discard the attribute unless it is configured to accept the
attribute from the EBGP neighbor. A BGP speaker SHOULD log an error attribute from the EBGP neighbor. A BGP speaker SHOULD log an error
for further analysis when discarding an attribute. for further analysis when discarding an attribute.
4.1. MPLS Dataplane: Labeled Unicast 4.1. MPLS Dataplane: Labeled Unicast
A BGP session supporting the Multiprotocol BGP labeled IPv4 or IPv6 A BGP session supporting the Multiprotocol BGP labeled IPv4 or IPv6
Unicast ([RFC8277]) AFI/SAFI is required. Unicast ([RFC8277]) AFI/SAFI is required.
The BGP Prefix-SID attribute MUST contain the Label-Index TLV and MAY When the BGP Prefix-SID attribute is attached to a BGP labeled IPv4
contain the Originator SRGB TLV. A BGP Prefix-SID attribute received or IPv6 Unicast [RFC8277] AFI/SAFI, it MUST contain the Label-Index
without a Label-Index TLV MUST be considered as "invalid" by the TLV and MAY contain the Originator SRGB TLV. A BGP Prefix-SID
receiving speaker. attribute received without a Label-Index TLV MUST be considered as
"invalid" by the receiving speaker.
The label index provides the receiving BGP speaker with guidance as The label index provides guidance to the receiving BGP speaker as to
to the incoming label that SHOULD be assigned by that BGP speaker. the incoming label that SHOULD be allocated to the prefix.
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.
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
skipping to change at page 9, line 44 skipping to change at page 9, line 21
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 (e.g., local policy disables the is unable to process it (e.g., local policy disables the
functionality), it MUST ignore the BGP Prefix-SID attribute. For the functionality), it MUST ignore the BGP Prefix-SID attribute. For the
purposes of label allocation, a BGP speaker MUST assign a local (also purposes of label allocation, a BGP speaker MUST assign a local (also
called dynamic) label (non-SRGB) for such a prefix as per classic called dynamic) label (non-SRGB) for such a prefix as per classic
Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]) operation. Multiprotocol BGP IPv4/IPv6 Labeled Unicast ([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 the error handling rules specified in Section 6. A BGP MUST follow the error handling rules specified in Section 6. A BGP
speaker SHOULD log an error for further analysis. In the case of a speaker SHOULD log an error for further analysis. In the case of a
"conflicting" BGP Prefix-SID attribute, a BGP speaker SHOULD NOT "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
"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 label indices corresponding to these newly "acceptable" BGP the label indices corresponding to these newly "acceptable" BGP
Prefix-SID attributes. Prefix-SID attributes.
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 ([RFC8277]) operation. Specifically, a BGP IPv4/IPv6 Labeled Unicast ([RFC8277]) operation. Specifically, a
BGP speaker receiving a prefix with a BGP Prefix-SID attribute and a BGP speaker receiving a prefix with a BGP Prefix-SID attribute and a
label NLRI field of Implicit NULL [RFC3032] from a neighbor MUST label NLRI field of Implicit NULL [RFC3032] from a neighbor MUST
adhere to standard behavior and program its MPLS dataplane to pop the adhere to standard behavior and program its MPLS dataplane to pop the
top label when forwarding traffic to the prefix. The label NLRI top label when forwarding traffic to the prefix. The label NLRI
defines the outbound label that MUST be used by the receiving node. defines the outbound label that MUST be used by the receiving node.
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 BGP IPv4/IPv6 Label
(IPv4/IPv6) [RFC8277]. In order to prevent distribution of the BGP Unicast prefixes [RFC8277]. In order to prevent distribution of the
Prefix-SID attribute beyond its intended scope of applicability, BGP Prefix-SID attribute beyond its intended scope of applicability,
attribute filtering SHOULD be deployed to remove the BGP Prefix-SID attribute filtering SHOULD be deployed to remove the BGP Prefix-SID
attribute at the administrative boundary of the segment routing attribute at the administrative boundary of the segment routing
domain. domain.
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 BGP Prefix-SID received with the path neighbors SHOULD advertise the BGP Prefix-SID received with the path
without modification, as long as the BGP Prefix-SID was acceptable. without modification, as long as the BGP Prefix-SID was acceptable.
If the path did not come with a BGP Prefix-SID attribute, the speaker If the path did not come with a BGP Prefix-SID attribute, the speaker
MAY attach a BGP Prefix-SID to the path if configured to do so. The MAY attach a BGP Prefix-SID to the path if configured to do so. The
content of the TLVs present in the BGP Prefix-SID is determined by content of the TLVs present in the BGP Prefix-SID is determined by
the configuration. the configuration.
5.1. MPLS Dataplane: Labeled Unicast 5.1. MPLS Dataplane: Labeled Unicast
A BGP speaker that originates a prefix attaches the BGP Prefix-SID A BGP speaker that originates a prefix attaches the BGP 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 ([RFC8277]). The value Multiprotocol BGP IPv4/IPv6 Labeled Unicast ([RFC8277]). The value
of 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 BGP Prefix-SID attribute MAY A BGP speaker that originates a BGP Prefix-SID attribute MAY
optionally announce the Originator SRGB TLV along with the mandatory optionally announce the Originator SRGB TLV along with the mandatory
Label-Index TLV. The content of the Originator SRGB TLV is Label-Index TLV. The content of the Originator SRGB TLV is
determined by configuration. determined by 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
skipping to change at page 11, line 17 skipping to change at page 10, line 43
In all cases, the label field of the advertised NLRI ([RFC8277], In all cases, the label field of the advertised NLRI ([RFC8277],
[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 speaker's interfaces, this is the associated with one of the BGP speaker's interfaces, this is the
usual MPLS label (such as the Implicit or Explicit NULL label usual MPLS label (such as the Implicit or Explicit NULL label
[RFC3032]). [RFC3032]).
6. 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 or invalid BGP Prefix-SID attribute attached to a Labeled malformed or invalid BGP Prefix-SID attribute attached to a IPv4/IPv6
IPv4/IPv6 unicast prefix [RFC8277], it MUST ignore the received BGP Labeled Unicast prefix [RFC8277], it MUST ignore the received BGP
Prefix-SID attributes and not advertise it to other BGP peers. In Prefix-SID attributes and not advertise it to other BGP peers. In
this context, a malformed BGP Prefix-SID attribute is one that cannot this context, a malformed BGP Prefix-SID attribute is one that cannot
be parsed due to not meeting the minimum attribute length be parsed due to not meeting the minimum attribute length
requirement, contains a TLV length that doesn't conform to the length requirement, contains a TLV length that doesn't conform to the length
constraints for the TLV, or a contains TLV length that would extend constraints for the TLV, or a contains TLV length that would extend
beyond the end of the attribute (as defined by the attribute length). beyond the end of the attribute (as defined by the attribute length).
This is equivalent to the "Attribute discard" action specified in This is equivalent to the "Attribute discard" action specified in
[RFC7606]. When discarding an attribute, a BGP speaker SHOULD log an [RFC7606]. When discarding an attribute, a BGP speaker SHOULD log an
error for further analysis. error for further analysis.
Consistent with [RFC7606], only the first occurrence of the BGP As per with [RFC7606], if the BGP Prefix-SID attribute appears more
Prefix-SID attribute will be considered and subsequent occurrences than once in an UPDATE message, then all the occurrences of the
will be discarded. Similarly, only the first occurrence of a BGP attribute other than the first one SHALL be discarded and the UPDATE
Prefix-SID attribute TLV of a given TLV type will be considered message will continue to be processed. Similarly, if a recognized
unless the specification of that TLV type allows for multiple TLV appears more than once in an BGP Prefix-SID attribute while the
occurrences. specification only allows for a single occurrence, then all the
occurrences of the TLV other than the first one SHALL be discarded
and the Prefix-SID attribute will continue to be processed.
For future extensibility, unknown TLVs MUST be ignored and propagated For future extensibility, unknown TLVs MUST be ignored and 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) to the BGP Prefix-SID attribute from code type (suggested value: 40) to the BGP Prefix-SID attribute from
the BGP Path Attributes registry. the BGP Path Attributes registry.
skipping to change at page 12, line 25 skipping to change at page 11, line 52
0 Reserved this document 0 Reserved this document
1 Label-Index this document 1 Label-Index this document
2 Deprecated this document 2 Deprecated 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 requests creation of the "BGP Prefix-SID Label- This document also requests creation of the "BGP Prefix-SID Label-
Index TLV Flags" registry under the "Border Gateway Protocol (BGP) Index TLV Flags" registry under the "Border Gateway Protocol (BGP)
Parameters" registry, Reference: draft-ietf-idr-bgp-prefix-sid. Parameters" registry, Reference: draft-ietf-idr-bgp-prefix-sid.
Initially, this 16 bit flags registry will be empty. Flag bits will Initially, this 16-bit flags registry will be empty. Flag bits will
be allocated First Come First Served (FCFS) consistent with the BGP be allocated First Come First Served (FCFS) consistent with the BGP
Prefix-SID TLV Types registry. Prefix-SID TLV Types registry.
Finally, this document requests creation of the "BGP Prefix-SID Finally, this document requests creation of the "BGP Prefix-SID
Originator SRGB TLV Flags" registry under the "Border Gateway Originator SRGB TLV Flags" registry under the "Border Gateway
Protocol (BGP) Parameters" registry, Reference: draft-ietf-idr-bgp- Protocol (BGP) Parameters" registry, Reference: draft-ietf-idr-bgp-
prefix-sid. Initially, this 16 bit flags registry will be empty. prefix-sid. Initially, this 16-bit flags registry will be empty.
Flag bits will be allocated First Come First Served (FCFS) consistent Flag bits will be allocated First Come First Served (FCFS) consistent
with the BGP Prefix-SID TLV Types registry. with the BGP Prefix-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:
skipping to change at page 13, line 36 skipping to change at page 13, line 15
doesn't want to leak any information related to internal prefixes and doesn't want to leak any information related to internal prefixes and
topology outside of the administrative domain. The internal topology outside of the administrative domain. The internal
information includes the BGP Prefix-SID. In order to prevent such information includes the BGP Prefix-SID. In order to prevent such
leaking, the common BGP mechanisms (filters) are applied at the leaking, the common BGP mechanisms (filters) are applied at the
boundary of the SR/administrative domain. Local BGP attribute boundary of the SR/administrative domain. Local BGP attribute
filtering policies and mechanisms are not standardized and, filtering policies and mechanisms are not standardized and,
consequently, beyond the scope of this document. consequently, beyond the scope of this document.
To prevent a Denial-of-Service (DoS) or Distributed-Denial-of-Service To prevent a Denial-of-Service (DoS) or Distributed-Denial-of-Service
(DDoS) attack due to excessive BGP updates with an invalid or (DDoS) attack due to excessive BGP updates with an invalid or
conflicting BGP Prefix-SID attribute, message rate-limiting as well conflicting BGP Prefix-SID attribute, error log message rate-limiting
as suppression of duplicate messages SHOULD be deployed. as well as suppression of duplicate error log messages SHOULD be
deployed.
10. Contributors 10. Contributors
Keyur Patel Keyur Patel
Arrcus, Inc. Arrcus, Inc.
US US
Email: Keyur@arrcus.com Email: Keyur@arrcus.com
Saikat Ray Saikat Ray
skipping to change at page 14, line 13 skipping to change at page 13, line 41
Email: raysaikat@gmail.com Email: raysaikat@gmail.com
11. Acknowledgements 11. Acknowledgements
The authors would like to thank Satya Mohanty for his contribution to The authors would like to thank Satya Mohanty for his contribution to
this document. this document.
The authors would like to thank Alvaro Retana for substantive The authors would like to thank Alvaro Retana for substantive
comments as part of the Routing AD review. comments as part of the Routing AD review.
The authors would like to thank Bruno Decraene for substantive
comments and suggested text as part of the Routing Directorate
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 Robert Raszuk for comments and The authors would like to thank Robert Raszuk for comments and
suggestions regarding the MPLS data plane behavior. suggestions regarding the MPLS data plane behavior.
The authors would like to thank Krishna Deevi, Juan Alcaide, Howard The authors would like to thank Krishna Deevi, Juan Alcaide, Howard
Yang, and Jakob Heitz for discussions on conflicting BGP Prefix-SID Yang, and Jakob Heitz for discussions on conflicting BGP Prefix-SID
label indices and BGP add paths. label indices and BGP add paths.
 End of changes. 36 change blocks. 
95 lines changed or deleted 79 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/