draft-ietf-idr-bgp-prefix-sid-16.txt   draft-ietf-idr-bgp-prefix-sid-17.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, Ed.
Expires: August 17, 2018 Cisco Systems Expires: August 24, 2018 Cisco Systems
A. Sreekantiah A. Sreekantiah
H. Gredler H. Gredler
RtBrick Inc. RtBrick Inc.
February 13, 2018 February 20, 2018
Segment Routing Prefix SID extensions for BGP Segment Routing Prefix SID extensions for BGP
draft-ietf-idr-bgp-prefix-sid-16 draft-ietf-idr-bgp-prefix-sid-17
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 17, 2018. This Internet-Draft will expire on August 24, 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
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. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 2. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4 2.1. MPLS BGP Prefix SID . . . . . . . . . . . . . . . . . . . 4
2.2. IPv6 Prefix Segment . . . . . . . . . . . . . . . . . . . 5
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. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 6
3.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 8
4. Receiving BGP Prefix-SID Attribute . . . . . . . . . . . . . 9 4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 8
4.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9 5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 10
4.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10
5. Advertising BGP Prefix-SID Attribute . . . . . . . . . . . . 12 6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 11
5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 12 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 13 8. Manageability Considerations . . . . . . . . . . . . . . . . 12
6. Error Handling of BGP Prefix-SID Attribute . . . . . . . . . 13 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 13
8. Manageability Considerations . . . . . . . . . . . . . . . . 14 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 15 12.1. Normative References . . . . . . . . . . . . . . . . . . 14
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 12.2. Informative References . . . . . . . . . . . . . . . . . 15
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
12.1. Normative References . . . . . . . . . . . . . . . . . . 16
12.2. Informative References . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
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
as "go to prefix P following shortest path" or a service instruction. as "go to prefix P following shortest path" or a service instruction.
Other types of segments may be defined in the future. Other types of segments may be defined in the future.
A segment is identified through a Segment Identifier (SID). A segment is identified through a Segment Identifier (SID).
Typically, the ingress node of the SR domain prepends an SR header Typically, the ingress node of the SR domain prepends an SR header
containing segments identifiers (SIDs) to an incoming packet. containing segments identifiers (SIDs) to an incoming packet.
As described in [I-D.ietf-spring-segment-routing], when SR is applied As described in [I-D.ietf-spring-segment-routing], when SR is applied
to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]), the to the MPLS dataplane ([I-D.ietf-spring-segment-routing-mpls]), the
SID consists of a label, while when SR is applied to the IPv6 SID consists of a label.
dataplane the SID consists of an IPv6 address.
A BGP-Prefix Segment (and its BGP Prefix-SID) is a BGP segment A BGP-Prefix Segment (and its BGP Prefix-SID) is a BGP segment
attached to a BGP prefix. A BGP Prefix-SID is always a global SID attached to a BGP prefix. A BGP Prefix-SID is always a global SID
([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e., ([I-D.ietf-spring-segment-routing]) within the SR/BGP domain (i.e.,
the set of Autonomous Systems under a common administration and the set of Autonomous Systems under a common administration and
control and where SR is used) and identifies an instruction to control and where SR is used) and identifies an instruction to
forward the packet over the ECMP-aware best-path computed by BGP to forward the packet over the ECMP-aware best-path computed by BGP to
the related prefix. The BGP Prefix-SID is the identifier of the BGP the related prefix. The BGP Prefix-SID is the identifier of the BGP
prefix segment. In this document, we always refer to the BGP segment prefix segment. In this document, we always refer to the BGP segment
by the BGP Prefix-SID. by the BGP Prefix-SID.
This document describes the BGP extension to signal the BGP Prefix- This document describes the BGP extension to signal the BGP Prefix-
SID. Specifically, this document defines a BGP attribute known as SID. Specifically, this document defines a BGP attribute known as
the BGP Prefix-SID attribute and specifies the rules to originate, the BGP Prefix-SID attribute and specifies the rules to originate,
receive, and handle error conditions for the attribute. receive, and handle error conditions for the attribute.
The BGP Prefix-SID attribute defined in this document can be attached The BGP Prefix-SID attribute defined in this document can be attached
to prefixes from Address Family Identifier (AFI)/ Subsequent Address to prefixes from Multiprotocol BGP labeled IPv4/IPv6 Unicast
Family Identifier (SAFI) combinations: ([RFC4760], [RFC8277]). Address Family Identifier (AFI)/ Subsequent
Address Family Identifier (SAFI) combinations.
Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC8277]).
Multiprotocol BGP ([RFC4760]) unlabeled IPv6 Unicast.
Usage of the BGP Prefix-SID attribute for other AFI/SAFI combinations Usage of the BGP Prefix-SID attribute for other AFI/SAFI combinations
is not defined herein but may be specified in future specifications. is not defined herein but may be 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 between domains when the
skipping to change at page 5, line 17 skipping to change at page 5, line 6
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 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 prefix-SID applicability for TE, the Originator SRGB TLV of the prefix-SID
attribute is specified in Section 3.3 of this document. attribute is specified in Section 3.2 of this document.
As defined in [I-D.ietf-spring-segment-routing], the label index As defined in [I-D.ietf-spring-segment-routing], the label index
L_I is an offset into the SRGB. Each BGP speaker derives its L_I is an offset into the SRGB. Each BGP speaker derives its
local MPLS label, L, by adding L_I to the start value of its own local MPLS label, L, by adding L_I to the start value of its own
SRGB, and programs L in its MPLS dataplane as its incoming/local SRGB, and programs L in its MPLS dataplane as its incoming/local
label for the prefix. It should be noted that while SRGBs and label for the prefix. It should be noted that while SRGBs and
SIDs are advertised using 32-bit values, the derived label is SIDs are advertised using 32-bit values, the derived label is
advertised in the 20 right-most bits. See Section 4.1 for more advertised in the 20 right-most bits. See Section 4.1 for more
details. details.
skipping to change at page 5, line 41 skipping to change at page 5, line 30
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, 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- optionally, the SRGB, an extension to BGP is needed: the BGP Prefix-
SID attribute. This extension is described in subsequent sections. SID attribute. This extension is described in subsequent sections.
2.2. IPv6 Prefix Segment
When SR is used over an IPv6 dataplane, the BGP Prefix-SID consists
of an IPv6 address assigned to the BGP speaker.
3. BGP Prefix-SID Attribute 3. BGP Prefix-SID Attribute
The BGP Prefix-SID attribute is an optional, transitive BGP path The BGP Prefix-SID attribute is an optional, transitive BGP path
attribute. The attribute type code 40 has been assigned by IANA (see attribute. The attribute type code 40 has been assigned by IANA (see
Section 7). Section 7).
The BGP Prefix-SID attribute is defined here to be a set of elements The BGP Prefix-SID attribute is defined here to be a set of elements
encoded as "Type/Length/Value" tuples (i.e., a set of TLVs). 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 IPv6 SID TLV
o Originator SRGB TLV o Originator SRGB TLV
The Label-Index and Originator SRGB TLVs are used only when SR is The Label-Index and Originator SRGB TLVs are used only when SR is
applied to the MPLS dataplane. applied to the MPLS dataplane.
The IPv6 SID TLV is used only when SR is applied to the IPv6
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 Labeled IPv4/IPv6 unicast prefixes ([RFC8277]). It MUST
be ignored when received for other BGP AFI/SAFI combinations. The be ignored when received for other BGP AFI/SAFI combinations. The
Label-Index TLV has the following format: Label-Index TLV has the following format:
skipping to change at page 7, line 12 skipping to change at page 6, line 39
o RESERVED: 8-bit field. MUST be clear on transmission and MUST be o RESERVED: 8-bit field. MUST be clear on transmission and MUST be
ignored on reception. ignored on reception.
o Flags: 16 bits of flags. None are defined by this document. The o Flags: 16 bits of flags. None are defined by this document. The
flag field MUST be clear on transmission and MUST be ignored on flag field MUST be clear on transmission and MUST be ignored on
reception. reception.
o Label Index: 32-bit value representing the index value in the SRGB o Label Index: 32-bit value representing the index value in the SRGB
space. space.
3.2. IPv6 SID 3.2. Originator SRGB TLV
The IPv6 SID TLV MAY be present in the BGP Prefix-SID attribute
attached to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]). It
MUST be ignored for other BGP AFI/SAFI combinations. The IPv6 SID
TLV has the following format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RESERVED | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| IPv6 SID (16 octets) |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type is 2.
o Length: is 19, the total length in octets of the value portion of
the TLV.
o RESERVED: 24-bit field for future use. MUST be clear on
transmission and MUST be ignored on reception.
o IPv6 SID: 16 octets.
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 10, line 15 skipping to change at page 9, 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, either all or all but one of the different prefixes MUST have index, all of the different prefixes MUST have their BGP Prefix-SID
their BGP Prefix-SID attribute considered as "conflicting". If one attribute considered as "conflicting".
of the different prefixes is considered "acceptable", it is
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 with a notable exception being when attribute SHOULD be chosen with a notable exception being when
[RFC5005] is being used to dampen route changes. [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
skipping to change at page 11, line 10 skipping to change at page 10, line 8
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 labeled IPv4/IPv6 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 from a neighbor MUST adhere to label NLRI field of Implicit NULL [IANA-MPLS-SPECIAL-LABEL] from a
standard behavior and program its MPLS dataplane to pop the top label neighbor MUST adhere to standard behavior and program its MPLS
when forwarding traffic to the prefix. The label NLRI defines the dataplane to pop the top label when forwarding traffic to the prefix.
outbound label that MUST be used by the receiving node. The label NLRI defines the outbound label that MUST be used by the
receiving node.
4.2. IPv6 Dataplane
When an SR IPv6 BGP speaker receives an IPv6 Unicast BGP Update with
a prefix having the BGP Prefix-SID attribute attached, it checks
whether the IPv6 SID TLV is present and "acceptable".
If multiple different prefixes are received with the same IPv6 SID,
either all or all but one of the different prefixes MUST have their
BGP Prefix-SID attribute considered as "conflicting". If one of the
different prefixes is considered "acceptable", it is RECOMMENDED that
the first prefix using the IPv6 SID is selected.
If multiple valid paths for the same prefix are received from
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
IPv6 SID, then the IPv6 SID from the best path BGP Prefix-SID
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
into the Segment Routing IPv6 dataplane as described in
[I-D.ietf-spring-segment-routing].
When a BGP speaker receives a path from a neighbor with an "invalid"
or "conflicting" BGP Prefix-SID attribute or when a BGP speaker
receives a path from a neighbor with a BGP Prefix-SID attribute but
is unable to process it (e.g, local policy disables the
functionality), it MUST ignore the BGP Prefix-SID attribute and
revert to [RFC2545] and [RFC4271]. Consistent with the MPLS
dataplane Section 4.1, a BGP speaker SHOULD log the condition for
further analysis.
When a BGP Prefix-SID attribute changes and transitions from
"conflicting" to "acceptable", the BGP Prefix-SID attributes for
other prefixes may also transition to "acceptable" as well.
Implementations SHOULD assure all impacted prefixes revert to using
the IPv6 SIDs corresponding to these newly "acceptable" BGP Prefix-
SID attributes.
The Label-Index and Originator SRGB TLVs MUST be ignored on
reception. For future extensibility, no TLVs are required for the
BGP IPv6 unicast address family. However, a BGP Prefix-SID attribute
corresponding to the BGP IPv6 address family without an IPv6 SID TLV
SHOULD be ignored.
5. Advertising BGP Prefix-SID Attribute 5. Advertising BGP Prefix-SID Attribute
The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes
(IPv4/IPv6) [RFC8277] or to IPv6 unicast prefixes [RFC4760]. In (IPv4/IPv6) [RFC8277]. In order to prevent distribution of the BGP
order to prevent distribution of the BGP Prefix-SID attribute beyond Prefix-SID attribute beyond its intended scope of applicability,
its intended scope of applicability, attribute filtering SHOULD be attribute filtering SHOULD be deployed to remove the BGP Prefix-SID
deployed to remove the BGP Prefix-SID attribute at the administrative attribute at the administrative boundary of the segment routing
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
skipping to change at page 13, line 5 skipping to change at page 11, line 4
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
configured to do so. configured to do so.
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
[IANA-MPLS-SPECIAL-LABEL]).
5.2. IPv6 Dataplane
A BGP speaker that originates an IPv6 prefix with the BGP Prefix-SID
attribute SHOULD include the IPv6 SID TLV.
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 Labeled
IPv4/IPv6 unicast prefix [RFC8277], it MUST ignore the received BGP IPv4/IPv6 unicast prefix [RFC8277], it MUST ignore the received BGP
Prefix-SID attributes and not advertise it to other BGP peers. This Prefix-SID attributes and not advertise it to other BGP peers. This
is equivalent to the "Attribute discard" action specified in 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.
When a BGP Speaker receives a BGP Update message containing a
malformed or invalid BGP Prefix-SID attribute attached to an
unlabeled IPv6 unicast prefix [RFC4760], it MUST treat the
advertisement as a withdrawal. This is equivalent to the "Treat-as-
withdraw" action specified in [RFC7606]. This action is required
since simply ignoring the BGP Prefix-SID attribute would modify the
installed path and the "Attribute discard" option is not applicable
in this case [RFC7606]. When withdrawing the prefix, a BGP speaker
SHOULD log an error for further analysis.
Consistent with [RFC7606], only the first occurrence of the BGP Consistent with [RFC7606], only the first occurrence of the BGP
Prefix-SID attribute will be considered and subsequent occurrences Prefix-SID attribute will be considered and subsequent occurrences
will be discarded. Similarly, only the first occurrence of a BGP will be discarded. Similarly, only the first occurrence of a BGP
Prefix-SID attribute TLV of a given TLV type will be considered Prefix-SID attribute TLV of a given TLV type will be considered
unless the specification of that TLV type allows for multiple unless the specification of that TLV type allows for multiple
occurrences. occurrences.
For future extensibility, unknown TLVs MUST be ignored and propagated For future extensibility, unknown TLVs MUST be ignored and propagated
unmodified. unmodified.
skipping to change at page 14, line 16 skipping to change at page 12, line 4
2016-09-30) [draft-ietf-idr-bgp-prefix-sid] 2016-09-30) [draft-ietf-idr-bgp-prefix-sid]
This document defines 3 TLVs for the BGP Prefix-SID attribute. These This document defines 3 TLVs for the BGP Prefix-SID attribute. These
TLVs need to be registered with IANA. We request IANA to create a TLVs need to be registered with IANA. We request IANA to create a
registry for BGP Prefix-SID Attribute TLVs as follows: registry for BGP Prefix-SID Attribute TLVs as follows:
Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP
Prefix-SID TLV Types" Reference: draft-ietf-idr-bgp-prefix-sid Prefix-SID TLV Types" Reference: draft-ietf-idr-bgp-prefix-sid
Registration Procedure(s): Values 1-254 First Come First Served Registration Procedure(s): Values 1-254 First Come First Served
(FCFS), Value 0 and 255 reserved (FCFS), Value 0 and 255 reserved
Value Type Reference Value Type Reference
0 Reserved this document 0 Reserved this document
1 Label-Index this document 1 Label-Index this document
2 IPv6 SID this document 2 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 creates a registry for the 16 bits of flags in the This document also creates a registry for the 16 bits of flags in the
Label-Index TLV. Initially, the registry will be empty. Flag bits Label-Index TLV. Initially, the registry will be empty. Flag bits
will be allocated First Come First Served (FCFS) consistent with the will be allocated First Come First Served (FCFS) consistent with the
BGP-SID TLV Types registry. BGP-SID TLV Types registry.
Finally, this document creates a registry for the 16 bits of flags in Finally, this document creates a registry for the 16 bits of flags in
skipping to change at page 16, line 17 skipping to change at page 13, line 52
The authors would like to thank Satya Mohanty for his contribution to The authors would like to thank Satya Mohanty for his contribution to
this document. this document.
The authors would like to thank Alvaro Retana for substantive The authors would like to thank Alvaro Retana for substantive
comments as part of the Routing AD review. comments as part of the Routing AD review.
The authors would like to thank Shyam Sethuram for comments and The authors would like to thank Shyam Sethuram for comments and
discussion of TLV processing and validation. discussion of TLV processing and validation.
The authors would like to thank Robert Raszuk for comments and The authors would like to thank Robert Raszuk for comments and
suggestions regarding the MPLS and IPv6 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.
The authors would like to thank Peter Yee, Tony Przygienda, Mirja The authors would like to thank Peter Yee, Tony Przygienda, Mirja
Kuehlewind, Alexey Melnikov, Eric Rescorla, Suresh Krishnan, Warren Kuehlewind, Alexey Melnikov, Eric Rescorla, Suresh Krishnan, Warren
Kumari, and Ben Campbell for IETF Last Call directorate and IESG Kumari, and Ben Campbell for IETF Last Call directorate and IESG
reviews. reviews.
skipping to change at page 16, line 49 skipping to change at page 14, line 35
Filsfils, C., Previdi, S., Bashandy, A., Decraene, B., Filsfils, C., Previdi, S., Bashandy, A., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing with MPLS Litkowski, S., and R. Shakir, "Segment Routing with MPLS
data plane", draft-ietf-spring-segment-routing-mpls-11 data plane", draft-ietf-spring-segment-routing-mpls-11
(work in progress), October 2017. (work in progress), October 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
editor.org/info/rfc2119>. editor.org/info/rfc2119>.
[RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol
Extensions for IPv6 Inter-Domain Routing", RFC 2545,
DOI 10.17487/RFC2545, March 1999, <https://www.rfc-
editor.org/info/rfc2545>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271, Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006, <https://www.rfc- DOI 10.17487/RFC4271, January 2006, <https://www.rfc-
editor.org/info/rfc4271>. editor.org/info/rfc4271>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <https://www.rfc-editor.org/info/rfc4364>. 2006, <https://www.rfc-editor.org/info/rfc4364>.
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
skipping to change at page 18, line 17 skipping to change at page 15, line 42
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.
[IANA-MPLS-SPECIAL-LABEL]
"IANA Special-Purpose Multiprotocol Label Switching (MPLS)
Label Values Registry", <https://www.iana.org/assignments/
mpls-label-values/>.
[RFC5005] Nottingham, M., "Feed Paging and Archiving", RFC 5005, [RFC5005] Nottingham, M., "Feed Paging and Archiving", RFC 5005,
DOI 10.17487/RFC5005, September 2007, <https://www.rfc- DOI 10.17487/RFC5005, September 2007, <https://www.rfc-
editor.org/info/rfc5005>. 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>.
skipping to change at page 18, line 42 skipping to change at page 16, line 26
Email: stefano@previdi.net Email: stefano@previdi.net
Clarence Filsfils Clarence Filsfils
Cisco Systems Cisco Systems
Brussels Brussels
Belgium Belgium
Email: cfilsfils@cisco.com Email: cfilsfils@cisco.com
Acee Lindem Acee Lindem (editor)
Cisco Systems Cisco Systems
301 Midenhall Way 301 Midenhall Way
Cary, NC 27513 Cary, NC 27513
USA USA
Email: acee@cisco.com Email: acee@cisco.com
Arjun Sreekantiah Arjun Sreekantiah
Email: arjunhrs@gmail.com Email: arjunhrs@gmail.com
Hannes Gredler Hannes Gredler
RtBrick Inc. RtBrick Inc.
Email: hannes@rtbrick.com Email: hannes@rtbrick.com
 End of changes. 26 change blocks. 
161 lines changed or deleted 50 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/