draft-keyupate-idr-bgp-prefix-sid-04.txt   draft-keyupate-idr-bgp-prefix-sid-05.txt 
IDR K. Patel IDR K. Patel
Internet-Draft S. Previdi Internet-Draft S. Previdi
Intended status: Standards Track C. Filsfils Intended status: Standards Track C. Filsfils
Expires: January 7, 2016 A. Sreekantiah Expires: January 21, 2016 A. Sreekantiah
Cisco Systems Cisco Systems
S. Ray S. Ray
Unaffiliated Unaffiliated
H. Gredler H. Gredler
Juniper Networks Juniper Networks
July 6, 2015 July 20, 2015
Segment Routing Prefix SID extensions for BGP Segment Routing Prefix SID extensions for BGP
draft-keyupate-idr-bgp-prefix-sid-04 draft-keyupate-idr-bgp-prefix-sid-05
Abstract Abstract
Segment Routing (SR) architecture allows a node to steer a packet Segment Routing (SR) architecture allows a node to steer a packet
flow through any topological path and service chain by leveraging flow through any topological path and service chain by leveraging
source routing. The ingress node prepends a SR header to a packet source routing. The ingress node prepends a SR header to a packet
containing a set of "segments". Each segment represents a containing a set of "segments". Each segment represents a
topological or a service-based instruction. Per-flow state is topological or a service-based instruction. Per-flow state is
maintained only at the ingress node of the SR domain. maintained only at the ingress node of the SR domain.
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 January 7, 2016. This Internet-Draft will expire on January 21, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 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 33 skipping to change at page 2, line 33
Table of Contents Table of Contents
1. Segment Routing Documents . . . . . . . . . . . . . . . . . . 3 1. Segment Routing Documents . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
3. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4 3. BGP-Prefix-SID . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. MPLS Prefix Segment . . . . . . . . . . . . . . . . . . . 4 3.1. MPLS Prefix Segment . . . . . . . . . . . . . . . . . . . 4
3.2. IPv6 Prefix Segment . . . . . . . . . . . . . . . . . . . 5 3.2. IPv6 Prefix Segment . . . . . . . . . . . . . . . . . . . 5
4. BGP-Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5 4. BGP-Prefix-SID Attribute . . . . . . . . . . . . . . . . . . 5
4.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6 4.1. Label-Index TLV . . . . . . . . . . . . . . . . . . . . . 6
4.2. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7 4.2. IPv6 SID . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3. Neighbor SRGB TLV . . . . . . . . . . . . . . . . . . . . 8 4.3. Originator SRGB TLV . . . . . . . . . . . . . . . . . . . 7
5. Receiving BGP-Prefix-SID Attribute . . . . . . . . . . . . . 9 5. Receiving BGP-Prefix-SID Attribute . . . . . . . . . . . . . 9
5.1. MPLS Dataplane . . . . . . . . . . . . . . . . . . . . . 10 5.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 9
5.1.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . 10 5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 10
5.1.2. MPLS Dataplane: Unlabeled Unicast . . . . . . . . . . 10 6. Announcing BGP-Prefix-SID Attribute . . . . . . . . . . . . . 10
5.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11 6.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . . . 10
6. Announcing BGP-Prefix-SID Attribute . . . . . . . . . . . . . 11 6.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 11
6.1. MPLS Dataplane . . . . . . . . . . . . . . . . . . . . . 11 7. Error Handling of BGP-Prefix-SID Attribute . . . . . . . . . 11
6.1.1. MPLS Dataplane: Labeled Unicast . . . . . . . . . . . 12 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
6.1.2. MPLS Dataplane: Unlabeled Unicast . . . . . . . . . . 12 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12
6.2. IPv6 Dataplane . . . . . . . . . . . . . . . . . . . . . 12 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12
7. Error Handling of BGP-Prefix-SID Attribute . . . . . . . . . 13 11. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 12
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
9. Security Considerations . . . . . . . . . . . . . . . . . . . 14 12.1. Normative References . . . . . . . . . . . . . . . . . . 12
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 12.2. Informative References . . . . . . . . . . . . . . . . . 13
11. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
12.1. Normative References . . . . . . . . . . . . . . . . . . 14
12.2. Informative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Segment Routing Documents 1. Segment Routing Documents
The main references for this document are the SR architecture defined The main references for this document are the SR architecture defined
in [I-D.ietf-spring-segment-routing]and the related use case in [I-D.ietf-spring-segment-routing] and the related use case
illustrated in [I-D.filsfils-spring-segment-routing-msdc]. illustrated in [I-D.filsfils-spring-segment-routing-msdc].
The Segment Routing Egress Peer Engineering architecture is described The Segment Routing Egress Peer Engineering architecture is described
in [I-D.filsfils-spring-segment-routing-central-epe]. in [I-D.filsfils-spring-segment-routing-central-epe].
The Segment Routing Egress Peer Engineering BGPLS extensions are The Segment Routing Egress Peer Engineering BGPLS extensions are
described in [I-D.ietf-idr-bgpls-segment-routing-epe]. described in [I-D.ietf-idr-bgpls-segment-routing-epe].
2. Introduction 2. Introduction
skipping to change at page 3, line 51 skipping to change at page 3, line 49
ECMP-aware best-path computed by BGP to the related prefix. The BGP- ECMP-aware best-path computed by BGP to the related prefix. The BGP-
Prefix-SID is the identifier of the BGP prefix segment. Prefix-SID is the identifier of the BGP prefix segment.
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 new BGP attribute known SID. Specifically, this document defines a new BGP attribute known
as the BGP Prefix SID attribute and specifies the rules to originate, as the BGP Prefix SID attribute and specifies the rules to originate,
receive and handle error conditions of the new attribute. receive and handle error conditions of the new attribute.
As described in [I-D.filsfils-spring-segment-routing-msdc], the newly As described in [I-D.filsfils-spring-segment-routing-msdc], the newly
proposed BGP Prefix-SID attribute can be attached to prefixes from proposed BGP Prefix-SID attribute can be attached to prefixes from
different AFI/SAFI: AFI/SAFI:
Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]). Multiprotocol BGP labeled IPv4/IPv6 Unicast ([RFC3107]).
Multiprotocol BGP ([RFC4760]) unlabeled IPv4/IPv6 Unicast. Multiprotocol BGP ([RFC4760]) unlabeled IPv6 Unicast.
BGP4 ([RFC4271]).
[I-D.filsfils-spring-segment-routing-msdc] describes use cases where [I-D.filsfils-spring-segment-routing-msdc] describes use cases where
the Prefix-SID is used for all the above BGP flavors. the Prefix-SID is used for the above AFI/SAFI.
3. BGP-Prefix-SID 3. BGP-Prefix-SID
The BGP-Prefix-SID attached to a BGP prefix P represents the The BGP-Prefix-SID attached to a BGP prefix P represents the
instruction "go to Prefix P" along its BGP bestpath (potentially instruction "go to Prefix P" along its BGP bestpath (potentially
ECMP-enabled). ECMP-enabled).
3.1. MPLS Prefix Segment 3.1. MPLS Prefix Segment
The BGP Prefix Segment is realized on the MPLS dataplane in the The BGP Prefix Segment is realized on the MPLS dataplane in the
skipping to change at page 5, line 15 skipping to change at page 5, line 12
In order to advertise the label index of a given prefix P and, In order to advertise the label index of a given prefix P and,
optionally, the SRGB, a new extension to BGP is needed: the BGP optionally, the SRGB, a new extension to BGP is needed: the BGP
Prefix SID attribute. This extension is described in subsequent Prefix SID attribute. This extension is described in subsequent
sections. sections.
3.2. IPv6 Prefix Segment 3.2. IPv6 Prefix Segment
As defined in [I-D.previdi-6man-segment-routing-header], in SR for As defined in [I-D.previdi-6man-segment-routing-header], in SR for
the IPv6 dataplane, the SRGB consists of the set of IPv6 addresses the IPv6 dataplane, the SRGB consists of the set of IPv6 addresses
used within the SR domain (as described in used within the SR domain (as described in
[I-D.previdi-6man-segment-routing-header]), therefore the BGP speaker [I-D.previdi-6man-segment-routing-header]). Therefore the BGP
willing to process SR IPv6 packets MUST advertise an IPv6 prefix with speaker willing to process SR IPv6 packets MUST advertise an IPv6
the attached Prefix SID attribute and related SR IPv6 flag (see prefix with the attached Prefix SID attribute and related SR IPv6
subsequent section). flag (see subsequent section).
As described in [I-D.filsfils-spring-segment-routing-msdc], when SR As described in [I-D.filsfils-spring-segment-routing-msdc], when SR
is used over an IPv6 dataplane, the BGP Prefix Segment is is used over an IPv6 dataplane, the BGP Prefix Segment is
instantiated by an IPv6 prefix originated by the BGP speaker. instantiated by an IPv6 prefix originated by the BGP speaker.
Each node advertises a globally unique IPv6 address representing Each node advertises a globally unique IPv6 address representing
itself in the domain. This prefix (e.g.: its loopback interface itself in the domain. This prefix (e.g.: its loopback interface
address) is advertised to all other BGP speakers in the SR domain. address) is advertised to all other BGP speakers in the SR domain.
Also, each node MUST advertise its support of Segment Routing for Also, each node MUST advertise its support of Segment Routing for
IPv6 dataplane. This is realized using the Prefix SID Attribute IPv6 dataplane. This is realized using the Prefix SID Attribute
defined here below. defined below.
4. BGP-Prefix-SID Attribute 4. BGP-Prefix-SID Attribute
BGP Prefix SID attribute is an optional, transitive BGP path The BGP Prefix SID attribute is an optional, transitive BGP path
attribute. The attribute type code is to be assigned by IANA attribute. The attribute type code is to be assigned by IANA
(suggested value: 40). The value field of the BGP-Prefix-SID (suggested value: 40). The value field of the BGP-Prefix-SID
attribute has the following format: attribute has the following format:
The value field of the BGP Prefix SID attribute is defined here to be The value field of the BGP Prefix SID attribute is defined here to be
a set of elements encoded as "Type/Length/Value" (i.e., a set of a set of elements encoded as "Type/Length/Value" (i.e., a set of
TLVs). Following TLVs are defined: TLVs). Following TLVs are defined:
o Label-Index TLV o Label-Index TLV
o IPv6 SID TLV
o Originator SRGB TLV o Originator SRGB TLV
o Neighbor SRGB TLV Label-Index and Originator SRGB TLVs are used only when SR is applied
to the MPLS dataplane.
Originator SRGB and Neighbor SRGB TLVs are used only when SR is IPv6 SID TLV is used only when SR is applied to the IPv6 dataplane.
applied to the MPLS dataplane.
4.1. Label-Index TLV 4.1. Label-Index TLV
The Label-Index TLV MUST be present in the Prefix-SID attribute and The Label-Index TLV MUST be present in the Prefix-SID attribute
has the following format: attached to Labeled IPv4/IPv6 unicast prefixes ([RFC3107]) and 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label Index | | Label Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type is 1. o Type is 1.
o Length: is 7, the total length of the value portion of the TLV. o Length: is 7, the total length of the value portion of the TLV.
o RESERVED: 8 bit field. SHOULD be 0 on transmission and MUST be o RESERVED: 8 bit field. SHOULD be 0 on transmission and MUST be
ignored on reception. ignored on reception.
o Flags: 16 bits of flags. Following is defined: o Flags: 16 bits of flags. None are defined at this stage of the
document. The flag field SHOULD be clear on transmission and MUST
be ignored at reception.
o Label Index: 32 bit value representing the index value in the SRGB
space.
4.2. IPv6 SID
The Label-Index TLV MUST be present in the Prefix-SID attribute
attached to MP-BGP unlabeled IPv6 unicast prefixes ([RFC4760]) and
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type is 2.
o Length: is 3, the total length of the value portion of the TLV.
o RESERVED: 8 bit field. SHOULD be 0 on transmission and MUST be
ignored on reception.
o Flags: 16 bits of flags defined as follow:
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S| | |S| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
* S flag: if set then it means that the BGP speaker attaching the * S flag: if set then it means that the BGP speaker attaching the
Prefix-SID Attribute to a prefix it originates is capable of Prefix-SID Attribute to a prefix is capable of processing the
processing the IPv6 Segment Routing Header (SRH, IPv6 Segment Routing Header (SRH,
[I-D.previdi-6man-segment-routing-header]) for the segment [I-D.previdi-6man-segment-routing-header]) for the segment
corresponding to the originated IPv6 prefix. The use case corresponding to the originated IPv6 prefix. The use case
leveraging the S flag is described in leveraging the S flag is described in
[I-D.filsfils-spring-segment-routing-msdc]. [I-D.filsfils-spring-segment-routing-msdc].
The other bits of the flag field SHOULD be clear on transmission The other bits of the flag field SHOULD be clear on transmission
an MUST be ignored at reception. an MUST be ignored at reception.
o Label Index: 32 bit value representing the index value in the SRGB 4.3. Originator SRGB TLV
space. If the S flag is set, the index SHOULD be clear on
transmission an MUST be ignored at reception.
4.2. 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 7, line 32 skipping to change at page 8, line 27
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRGB n (6 octets) | | SRGB n (6 octets) |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type is 2. o Type is 3.
o Length is the total length of the value portion of the TLV: 5 + o Length is the total length of the value portion of the TLV: 2 +
multiple of 12. 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 SHOULD be clear on transmission an MUST be ignored at Flags SHOULD be clear on transmission an MUST be ignored at
reception. reception.
o SRGB: 3 octets of base followed by 3 octets of range. Note that o SRGB: 3 octets of base followed by 3 octets of range. Note that
SRGB field MAY appear multiple times. SRGB field MAY appear multiple times.
The Originator SRGB TLV contains the SRGB of the router originating The Originator SRGB TLV contains the SRGB of the router originating
the prefix to which the BGP Prefix SID is attached and MUST be kept the prefix to which the BGP Prefix SID is attached and MUST be kept
skipping to change at page 8, line 8 skipping to change at page 9, line 5
BGP update. BGP update.
The originator SRGB describes the SRGB of the node where the BGP The originator SRGB describes the SRGB of the node where the BGP
Prefix Segment end. It is used to build SRTE policies when different Prefix Segment end. It is used to build SRTE policies when different
SRGB's are used in the fabric SRGB's are used in the fabric
([I-D.filsfils-spring-segment-routing-msdc]). ([I-D.filsfils-spring-segment-routing-msdc]).
The originator SRGB may only appear on Prefix-SID attribute attached The originator SRGB may only appear on Prefix-SID attribute attached
to prefixes of SAFI 4 (labeled unicast, [RFC3107]). to prefixes of SAFI 4 (labeled unicast, [RFC3107]).
4.3. Neighbor SRGB TLV 5. Receiving BGP-Prefix-SID Attribute
The Neighbor SRGB TLV is an optional TLV and 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 | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |
+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Address (4 or 16 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRGB 1 (6 octets) |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRGB n (6 octets) |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type is 3.
o Length is the total length of the value portion of the TLV. When
the BGP Update contains an IPv4 prefix (AFI 1 or BGP4) the length
is 4 + multiple of 12. When the BGP update contains an IPv6
prefix (AFI 2) the length is 16 + multiple of 12.
o Flags: 16 bits of flags. None are defined in this document.
Flags SHOULD be clear on transmission an MUST be ignored at
reception.
o Local Address: when the BGP Update contains an IPv4 prefix (AFI 1
or BGP4) the Local Address MUST contain a 4 octet IPv4 address.
When the BGP Update contains an IPv6 prefix (AFI 2) the Local
Address MUST contain a 4 octet IPv4 address.
o SRGB: 3 octets of base followed by 3 octets of range. Note that
SRGB field MAY appear multiple times.
The Neighbor SRGB TLV contains the local SRGB of the BGP speaker
originating the Neighbor SRGB TLV.
The Neighbor SRGB TLV may only be present on Prefix-SID attribute
attached to an unlabeled prefix: BGP4 ([RFC4271]) or SAFI 1.
The BGP speaker originating the Neighbor SRGB TLV MUST specify the
local IPv4 or IPv6 address for the BGP session on which the
corresponding NLRI is being advertised.
The Neighbor SRGB TLV has a significance only for the neighbors of
the BGP speaker originating it. The Neighbor SRGB TLV MUST be
rewritten at each hop during the advertisement/propagation of the
prefix. At each hop the BGP speaker receiving a prefix with a
Prefix-SID attached to it and with a "Local Address" MUST override
the "Local Address" value.
The Neighbor SRGB TLV is only used when the dataplane is MPLS and the A BGP speaker receiving a BGP Prefix-SID attribute from an EBGP
the BGP Prefix SID is associated with an NLRI propagated by unlabeled neighbor residing outside the boundaries of the SR domain, SHOULD
BGP signaling (BGP4 or SAFI 1). It allows the receiving BGP speaker discard the attribute unless it is configured to accept the attribute
to determine the outgoing label to program in the dataplane (see from the EBGP neighbor. A BGP speaker MAY log an error for further
[I-D.filsfils-spring-segment-routing-msdc]). analysis when discarding an attribute.
In case of a labeled unicast IPv4 or IPv6 prefixes ([RFC3107]), the 5.1. MPLS Dataplane: Labeled Unicast
label value in the NLRI MUST be used as outgoing label value for the
prefix the Prefix-SID attribute is attached to and the Neighbor SRGB
TLV MUST NOT be used.
5. Receiving BGP-Prefix-SID Attribute The Prefix-SID attribute MUST contain the Label-Index TLV and MAY
contain the Originator SRGB. A BGP Prefix-SID attribute received
without a Label-Index TLV MUST be considered as "unacceptable" by the
receiving speaker.
A BGP speaker may be locally configured with an SRGB=[GB_S, GB_E]. A BGP speaker may be locally configured with an SRGB=[GB_S, GB_E].
The preferred method for deriving the SRGB is a matter of local The preferred method for deriving the SRGB is a matter of local
router configuration. router configuration.
Given a label index L_I, we call L = L_I + GB_S as the derived label. Given a label index L_I, we call L = L_I + GB_S as the derived label.
A BGP Prefix-SID attribute is called "unacceptable" for a speaker M A BGP Prefix-SID attribute is called "unacceptable" for a speaker M
if the derived label value L lies outside the SRGB configured on M. if the derived label value L lies outside the SRGB configured on M.
Otherwise the Label Index attribute is called "acceptable" to speaker Otherwise the Label Index attribute is called "acceptable" to speaker
M. M.
The mechanisms through which a given label_index value is assigned to The mechanisms through which a given label_index value is assigned to
a given prefix are outside the scope of this document. The label- a given prefix are outside the scope of this document. The label-
index value associated with a prefix is locally configured at the BGP index value associated with a prefix is locally configured at the BGP
router originating the prefix. router originating the prefix.
The Prefix-SID attribute MUST contain the Label-Index TLV and MAY The Prefix-SID attribute MUST contain the Label-Index TLV and MAY
contain the Originator SRGB and Neighbor SRGB TLVs. A BGP Prefix-SID contain the Originator SRGB TLV. A BGP Prefix-SID attribute received
attribute received without a Label-Index TLV MUST be considered as without a Label-Index TLV MUST be considered as "unacceptable" by the
"unacceptable" by the receiving speaker. receiving speaker.
When a BGP speaker receives a path from a neighbor with an acceptable When a BGP speaker receives a path from a neighbor with an acceptable
BGP Prefix-SID attribute, it SHOULD program the derived label as the BGP Prefix-SID attribute, it SHOULD program the derived label as the
local label for the prefix in its MPLS dataplane. In case of any local label for the prefix in its MPLS dataplane. In case of any
error, a BGP speaker MUST resort to the error handling rules error, a BGP speaker MUST resort to the error handling rules
specified in Section 7. A BGP speaker MAY log an error for further specified in Section 7. A BGP speaker MAY log an error for further
analysis. analysis.
A BGP speaker receiving a BGP Prefix-SID attribute from an EBGP
neighbor residing outside the boundaries of the SR domain, SHOULD
discard the attribute unless it is configured to accept the attribute
from the EBGP neighbor. A BGP speaker MAY log an error for further
analysis when discarding an attribute.
5.1. MPLS Dataplane
5.1.1. MPLS Dataplane: Labeled Unicast
When a BGP speaker receives a path from a neighbor with an When a BGP speaker receives a path from a neighbor with an
unacceptable BGP Prefix-SID attribute, for the purpose of label unacceptable BGP Prefix-SID attribute, for the purpose of label
allocation, it SHOULD treat the path as if it came without a Prefix- allocation, it SHOULD treat the path as if it came without a Prefix-
SID attribute. A BGP speaker MAY choose to assign a local (also SID attribute. A BGP speaker MAY choose to assign a local (also
called dynamic) label (non-SRGB) for such a prefix. A BGP speaker called dynamic) label (non-SRGB) for such a prefix. A BGP speaker
MAY log an error for further analysis. MAY log an error for further analysis.
A BGP speaker receiving a prefix with a Prefix-SID attribute and a A BGP speaker receiving a prefix with a Prefix-SID attribute and a
label NLRI field of implicit-null from a neighbor MUST adhere to label NLRI field of implicit-null from a neighbor MUST adhere to
standard behavior and program its MPLS dataplane to pop the top label standard behavior and program its MPLS dataplane to pop the top label
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. The Label outbound label that MUST be used by the receiving node. The Label
Index gives a hint to the receiving node on which local/incoming Index gives a hint to the receiving node on which local/incoming
label the BGP speaker SHOULD use. label the BGP speaker SHOULD use.
5.1.2. MPLS Dataplane: Unlabeled Unicast
When a BGP speaker receives a path from a neighbor with an
unacceptable BGP Prefix-SID attribute, for the purpose of label
allocation, it SHOULD treat the path as if it came without a Prefix-
SID attribute. A BGP speaker MAY choose to assign a local (also
called dynamic) label (non-SRGB) for such a prefix. A BGP speaker
MAY log an error for further analysis.
When a BGP speaker receives a path from a neighbor with an
unacceptable BGP Prefix-SID attribute, for the purpose of label
allocation, it SHOULD treat the path as if it came without a Prefix-
SID attribute and remove the Prefix-SID attribute from the prefix
prior to advertising it to its neighbors. A BGP speaker MAY choose
to assign a local (also called dynamic) label (non-SRGB) for such a
prefix. A BGP speaker MAY log an error for further analysis.
A BGP speaker receiving an unlabeled prefix (IPv4 or IPv6) with a
Prefix-SID attribute derives the outgoing label for the prefix by
applying the received index to the received Neighbor SRGB TLV. Then,
it replaces the Neighbor SRGB TLV with its own local SRGB values
(base, range) prior to advertising the prefix to its neighbors.
5.2. IPv6 Dataplane 5.2. IPv6 Dataplane
When a SR IPv6 BGP speaker receives a BGP Update with a prefix having When a SR IPv6 BGP speaker receives a IPv6 Unicast BGP Update with a
the BGP Prefix SID attribute attached, it checks whether the S flag prefix having the BGP Prefix SID attribute attached, it checks
is set in the Index TLV. If the S flag is set, then the Index value whether the IPv6 SID TLV is present and if the S-flag is set. If the
MUST be ignored. IPv6 SID TLV is not present or if the S-flag is not set, then the
Prefix-SID attribute MUST be considered as "unacceptable" by the
receiving speaker.
The Originator SRGB and Neighbor SRGB TLVs are ignored on reception. The Originator SRGB MUST be ignored on reception.
A BGP speaker receiving a BGP Prefix-SID attribute from a EBGP A BGP speaker receiving a BGP Prefix-SID attribute from an EBGP
neighbor residing outside the boundaries of the SR domain, SHOULD neighbor residing outside the boundaries of the SR domain, SHOULD
discard the attribute unless it is configured to accept the attribute discard the attribute unless it is configured to accept the attribute
from the EBGP neighbor. A BGP speaker MAY log an error for further from the EBGP neighbor. A BGP speaker MAY log an error for further
analysis when discarding an attribute. analysis when discarding an attribute.
6. Announcing BGP-Prefix-SID Attribute 6. Announcing BGP-Prefix-SID Attribute
The BGP Prefix-SID attribute MAY be announced with BGP Prefixes The BGP Prefix-SID attribute MAY be attached to labeled BGP prefixes
carried in either label and unlabeled BGP (or Multiprotocol BGP) (IPv4/IPv6) [RFC3107]or to IPv6 prefixes [RFC4760]. In order to
updates (IPv4 and IPv6). In order to prevent distribution of the BGP prevent distribution of the BGP Prefix-SID attribute beyond its
Prefix-SID attribute beyond its intended scope of applicability, intended scope of applicability, attribute filtering MAY be deployed.
attribute filtering MAY be deployed.
6.1. MPLS Dataplane 6.1. MPLS Dataplane: Labeled Unicast
A BGP speaker that originates a prefix attaches the Prefix-SID A BGP speaker that originates a prefix attaches the Prefix-SID
attribute when it advertises the prefix to its neighbors. The value attribute when it advertises the prefix to its neighbors. 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 Prefix-SID attribute MAY optionally A BGP speaker that originates a Prefix-SID attribute MAY optionally
announce Originator SRGB and Neighbor SRGB TLVs along with the announce Originator SRGB TLV along with the mandatory Label-Index
mandatory Label-Index TLV. The content of the Originator SRGB and TLV. The content of the Originator SRGB TLV is determined by the
Neighbor SRGB TLVs is determined by the configuration. configuration.
Since the Label-index value must be unique within an SR domain, by Since the Label-index value must be unique within an SR domain, by
default an implementation SHOULD NOT advertise the BGP Prefix-SID default an implementation SHOULD NOT advertise the BGP Prefix-SID
attribute outside an Autonomous System unless it is explicitly attribute outside an Autonomous System unless it is explicitly
configured to do so. configured to do so.
6.1.1. MPLS Dataplane: Labeled Unicast
A BGP speaker that advertises a path received from one of its A BGP speaker that advertises a path received from one of its
neighbors SHOULD advertise the Prefix-SID received with the path neighbors SHOULD advertise the Prefix-SID received with the path
without modification regardless of whether the Prefix-SID was without modification regardless of whether the Prefix-SID was
acceptable. If the path did not come with a Prefix-SID attribute, acceptable. If the path did not come with a Prefix-SID attribute,
the speaker MAY attach a Prefix-SID to the path if configured to do the speaker MAY attach a Prefix-SID to the path if configured to do
so. The content of the TLVs present in the Prefix-SID is determined so. The content of the TLVs present in the Prefix-SID is determined
by the configuration. by the configuration.
In all cases, the label field of the NLRI ([RFC3107], [RFC4364]) MUST In all cases, the label field of the NLRI ([RFC3107], [RFC4364]) MUST
be set to the local/incoming label programmed in the MPLS dataplane be set to the local/incoming label programmed in the MPLS dataplane
for the given prefix. If the prefix is associated with one of the for the given prefix. If the prefix is associated with one of the
BGP speakers interfaces, this label is the usual MPLS label (such as BGP speakers interfaces, this label is the usual MPLS label (such as
the implicit or explicit NULL label). the implicit or explicit NULL label).
6.1.2. MPLS Dataplane: Unlabeled Unicast
A BGP speaker that advertises a path received from one of its
neighbors SHOULD advertise the Prefix-SID received with the path
without modification only if the Prefix-SID is acceptable. If the
path did not come with a Prefix-SID attribute, the speaker MAY attach
a Prefix-SID to the path if configured to do so. The value of the
TLVs present in the Prefix-SID is determined by the configuration.
When the Prefix SID attribute is attached to an unlabeled prefix, the
BGP speaker MUST originate the Index and the Neighbor SRGB TLVs. The
Index TLV MUST contain the globally unique index value allocated to
the prefix. The Neighbor SRGB TLV MUST contain the SRGB of the
speaker in the form of base and range.
6.2. IPv6 Dataplane 6.2. IPv6 Dataplane
A BGP speaker that originates a prefix attaches the Prefix-SID A BGP speaker that originates a prefix attaches the Prefix-SID
attribute when it advertises the prefix to its neighbors. The value attribute when it advertises the prefix to its neighbors. The IPv6
of the Label-Index is set to null and the S flag is set. SID TLV MUST be present and the S-flag MUST be set.
A BGP speaker that advertises a path received from one of its A BGP speaker that advertises a path received from one of its
neighbors SHOULD advertise the Prefix-SID received with the path neighbors SHOULD advertise the Prefix-SID received with the path
without modification regardless of whether the Prefix-SID was without modification regardless of whether the Prefix-SID was
acceptable. If the path did not come with a Prefix-SID attribute, acceptable. If the path did not come with a Prefix-SID attribute,
the speaker MAY attach a Prefix-SID to the path if configured to do the speaker MAY attach a Prefix-SID to the path if configured to do
so. The value of the TLVs present in the Prefix-SID is determined by so. The IPv6-SID TLV MUST be present in the Prefix-SID and with the
the configuration. S-flag set.
7. Error Handling of BGP-Prefix-SID Attribute 7. Error Handling of BGP-Prefix-SID Attribute
When a BGP Speaker receives a BGP Update message containing a When a BGP Speaker receives a BGP Update message containing a
malformed BGP Prefix-SID attribute, it MUST ignore the received BGP malformed BGP Prefix-SID attribute, it MUST ignore the received BGP
Prefix-SID attributes and not pass it to other BGP peers. This is Prefix-SID attributes and not pass it to other BGP peers. This is
equivalent to the -attribute discard- action specified in equivalent to the -attribute discard- action specified in
[I-D.ietf-idr-error-handling]. When discarding an attribute, a BGP [I-D.ietf-idr-error-handling]. When discarding an attribute, a BGP
speaker MAY log an error for further analysis. speaker MAY log an error for further analysis.
skipping to change at page 13, line 32 skipping to change at page 12, line 12
When a BGP speaker receives an unacceptable Prefix-SID attribute, it When a BGP speaker receives an unacceptable Prefix-SID attribute, it
MAY log an error for further analysis. MAY log an error for further analysis.
8. IANA Considerations 8. IANA Considerations
This document defines a new BGP path attribute known as the BGP This document defines a new BGP path attribute known as the BGP
Prefix-SID attribute. This document requests IANA to assign a new Prefix-SID attribute. This document requests IANA to assign a new
attribute code type (suggested value: 40) for BGP the Prefix-SID attribute code type (suggested value: 40) for BGP the Prefix-SID
attribute from the BGP Path Attributes registry. attribute from the BGP Path Attributes registry.
This document defines three new TLVs for BGP Prefix-SID attribute. This document defines two new TLVs for BGP Prefix-SID attribute.
These TLVs need to be registered with IANA. We request IANA to These TLVs need to be registered with IANA. We request IANA to
create a new registry for BGP Prefix-SID Attribute TLVs as follows: create a new registry for BGP Prefix-SID Attribute TLVs as follows:
Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP Under "Border Gateway Protocol (BGP) Parameters" registry, "BGP
Prefix SID attribute Types" Reference: draft-keyupate-idr-bgp-prefix- Prefix SID attribute Types" Reference: draft-keyupate-idr-bgp-prefix-
side-03 Registration Procedure(s): Values 1-254 First Come, First side-05 Registration Procedure(s): Values 1-254 First Come, First
Served, Value 0 and 255 reserved Served, Value 0 and 255 reserved
Value Type Reference Value Type Reference
0 Reserved draft-keyupate-idr-bgp-prefix-side-03 0 Reserved draft-keyupate-idr-bgp-prefix-side-05
1 Label-Index draft-keyupate-idr-bgp-prefix-side-03 1 Label-Index draft-keyupate-idr-bgp-prefix-side-05
2 Originator SRGB draft-keyupate-idr-bgp-prefix-side-03 2 IPv6 SID draft-keyupate-idr-bgp-prefix-side-05
3 Neighbor SRGB draft-keyupate-idr-bgp-prefix-side-03 3 Originator SRGB draft-keyupate-idr-bgp-prefix-side-05
4-254 Unassigned 4-254 Unassigned
255 Reserved draft-keyupate-idr-bgp-prefix-side-03 255 Reserved draft-keyupate-idr-bgp-prefix-side-05
9. Security Considerations 9. Security Considerations
This document introduces no new security considerations above and This document introduces no new security considerations above and
beyond those already specified in [RFC4271] and [RFC3107]. beyond those already specified in [RFC4271] and [RFC3107].
10. Acknowledgements 10. Acknowledgements
The authors would like to thanks Satya Mohanty and Acee Lindem for The authors would like to thanks Satya Mohanty and Acee Lindem for
their contribution to this document. their contribution to this document.
skipping to change at page 14, line 29 skipping to change at page 13, line 6
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-idr-error-handling] [I-D.ietf-idr-error-handling]
Chen, E., Scudder, J., Mohapatra, P., and K. Patel, Chen, E., Scudder, J., Mohapatra, P., and K. Patel,
"Revised Error Handling for BGP UPDATE Messages", draft- "Revised Error Handling for BGP UPDATE Messages", draft-
ietf-idr-error-handling-19 (work in progress), April 2015. ietf-idr-error-handling-19 (work in progress), April 2015.
[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, March 1997. Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in [RFC3107] Rekhter, Y. and E. Rosen, "Carrying Label Information in
BGP-4", RFC 3107, May 2001. BGP-4", RFC 3107, DOI 10.17487/RFC3107, May 2001,
<http://www.rfc-editor.org/info/rfc3107>.
[RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Protocol 4 (BGP-4)", RFC 4271, January 2006. Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006,
<http://www.rfc-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, February 2006. Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <http://www.rfc-editor.org/info/rfc4364>.
12.2. Informative References 12.2. Informative References
[I-D.filsfils-spring-segment-routing-central-epe] [I-D.filsfils-spring-segment-routing-central-epe]
Filsfils, C., Previdi, S., Patel, K., Aries, E., Filsfils, C., Previdi, S., Patel, K., Aries, E.,
shaw@fb.com, s., Ginsburg, D., and D. Afanasiev, "Segment shaw@fb.com, s., Ginsburg, D., and D. Afanasiev, "Segment
Routing Centralized Egress Peer Engineering", draft- Routing Centralized Egress Peer Engineering", draft-
filsfils-spring-segment-routing-central-epe-03 (work in filsfils-spring-segment-routing-central-epe-04 (work in
progress), January 2015. progress), July 2015.
[I-D.filsfils-spring-segment-routing-msdc] [I-D.filsfils-spring-segment-routing-msdc]
Filsfils, C., Previdi, S., Mitchell, J., Black, B., Filsfils, C., Previdi, S., Mitchell, J., Aries, E.,
Afanasiev, D., Ray, S., and K. Patel, "BGP-Prefix Segment Lapukhov, P., Gaya, G., Afanasiev, D., Laberge, T.,
in large-scale data centers", draft-filsfils-spring- Nkposong, E., Nanduri, M., Uttaro, J., and S. Ray, "BGP-
segment-routing-msdc-01 (work in progress), April 2015. Prefix Segment in large-scale data centers", draft-
filsfils-spring-segment-routing-msdc-02 (work in
progress), July 2015.
[I-D.ietf-idr-bgpls-segment-routing-epe] [I-D.ietf-idr-bgpls-segment-routing-epe]
Previdi, S., Filsfils, C., Ray, S., Patel, K., Dong, J., Previdi, S., Filsfils, C., Ray, S., Patel, K., Dong, J.,
and M. Chen, "Segment Routing Egress Peer Engineering BGP- and M. Chen, "Segment Routing Egress Peer Engineering BGP-
LS Extensions", draft-ietf-idr-bgpls-segment-routing- LS Extensions", draft-ietf-idr-bgpls-segment-routing-
epe-00 (work in progress), June 2015. epe-00 (work in progress), June 2015.
[I-D.ietf-spring-segment-routing] [I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Decraene, B., Litkowski, S., Filsfils, C., Previdi, S., Decraene, B., Litkowski, S.,
and R. Shakir, "Segment Routing Architecture", draft-ietf- and R. Shakir, "Segment Routing Architecture", draft-ietf-
spring-segment-routing-03 (work in progress), May 2015. spring-segment-routing-03 (work in progress), May 2015.
[I-D.previdi-6man-segment-routing-header] [I-D.previdi-6man-segment-routing-header]
Previdi, S., Filsfils, C., Field, B., and I. Leung, "IPv6 Previdi, S., Filsfils, C., Field, B., and I. Leung, "IPv6
Segment Routing Header (SRH)", draft-previdi-6man-segment- Segment Routing Header (SRH)", draft-previdi-6man-segment-
routing-header-06 (work in progress), May 2015. routing-header-06 (work in progress), May 2015.
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
"Multiprotocol Extensions for BGP-4", RFC 4760, January "Multiprotocol Extensions for BGP-4", RFC 4760,
2007. DOI 10.17487/RFC4760, January 2007,
<http://www.rfc-editor.org/info/rfc4760>.
Authors' Addresses Authors' Addresses
Keyur Patel Keyur Patel
Cisco Systems Cisco Systems
170 W. Tasman Drive 170 W. Tasman Drive
San Jose, CA 95124 95134 San Jose, CA 95124 95134
USA USA
Email: keyupate@cisco.com Email: keyupate@cisco.com
 End of changes. 50 change blocks. 
221 lines changed or deleted 138 lines changed or added

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