draft-ietf-idr-segment-routing-te-policy-07.txt   draft-ietf-idr-segment-routing-te-policy-08.txt 
Network Working Group S. Previdi Network Working Group S. Previdi
Internet-Draft Individual Internet-Draft Individual
Intended status: Standards Track C. Filsfils Intended status: Standards Track C. Filsfils
Expires: January 6, 2020 Cisco Systems, Inc. Expires: May 21, 2020 K. Talaulikar, Ed.
Cisco Systems
P. Mattes P. Mattes
Microsoft Microsoft
E. Rosen E. Rosen
Juniper Networks Juniper Networks
D. Jain D. Jain
S. Lin S. Lin
Google Google
July 5, 2019 November 18, 2019
Advertising Segment Routing Policies in BGP Advertising Segment Routing Policies in BGP
draft-ietf-idr-segment-routing-te-policy-07 draft-ietf-idr-segment-routing-te-policy-08
Abstract Abstract
This document defines a new BGP SAFI with a new NLRI in order to This document defines a new BGP SAFI with a new NLRI in order to
advertise a candidate path of a Segment Routing Policy (SR Policy). advertise a candidate path of a Segment Routing (SR) Policy. An SR
An SR Policy is a set of candidate paths, each consisting of one or Policy is a set of candidate paths, each consisting of one or more
more segment lists. The headend of an SR Policy may learn multiple segment lists. The headend of an SR Policy may learn multiple
candidate paths for an SR Policy. Candidate paths may be learned via candidate paths for an SR Policy. Candidate paths may be learned via
a number of different mechanisms, e.g., CLI, NetConf, PCEP, or BGP. a number of different mechanisms, e.g., CLI, NetConf, PCEP, or BGP.
This document specifies the way in which BGP may be used to This document specifies the way in which BGP may be used to
distribute candidate paths. New sub-TLVs for the Tunnel distribute SR Policy candidate paths. New sub-TLVs for the Tunnel
Encapsulation Attribute are defined. Encapsulation Attribute are defined for signaling information about
these candidate paths.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 6, 2020. This Internet-Draft will expire on May 21, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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 28 skipping to change at page 2, line 28
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 5 2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 5
2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 5 2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 5
2.2. SR Policy and Tunnel Encapsulation Attribute . . . . . . 7 2.2. SR Policy and Tunnel Encapsulation Attribute . . . . . . 7
2.3. Remote Endpoint and Color . . . . . . . . . . . . . . . . 8 2.3. Remote Endpoint and Color . . . . . . . . . . . . . . . . 8
2.4. SR Policy Sub-TLVs . . . . . . . . . . . . . . . . . . . 9 2.4. SR Policy Sub-TLVs . . . . . . . . . . . . . . . . . . . 8
2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 9
2.4.2. Binding SID Sub-TLV . . . . . . . . . . . . . . . . . 10 2.4.2. Binding SID Sub-TLV . . . . . . . . . . . . . . . . . 9
2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 11 2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 11
2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 27 2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 24
2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 29 2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 25
2.4.6. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 29 2.4.6. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 26
3. Extended Color Community . . . . . . . . . . . . . . . . . . 30 3. Color Extended Community . . . . . . . . . . . . . . . . . . 27
4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 31 4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 27
4.1. Configuration and Advertisement of SR Policies . . . . . 31 4.1. Advertisement of SR Policies . . . . . . . . . . . . . . 27
4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 31 4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 28
4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 31 4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 28
4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 32 4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 29
4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 32 4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 29
4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 33 4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 29
4.3. Flowspec and SR Policies . . . . . . . . . . . . . . . . 33 5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 30
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 6.1. Existing Registry: Subsequent Address Family Identifiers
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 34 (SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 31
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 6.2. Existing Registry: BGP Tunnel Encapsulation Attribute
8.1. Existing Registry: Subsequent Address Family Identifiers Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 31
(SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 36 6.3. Existing Registry: BGP Tunnel Encapsulation Attribute
8.2. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 32
Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 36 6.4. New Registry: SR Policy List Sub-TLVs . . . . . . . . . . 32
8.3. Existing Registry: BGP Tunnel Encapsulation Attribute 6.5. New Registry: SR Policy Binding SID Flags . . . . . . . . 32
sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 36 6.6. New Registry: SR Policy Segment Flags . . . . . . . . . . 33
8.4. New Registry: SR Policy List Sub-TLVs . . . . . . . . . . 36 6.7. New Registry: Color Extended Community Field . . . . . . 33
8.5. New Registry: SR Policy Binding SID Flags . . . . . . . . 37 6.8. Guidance for Designated Experts . . . . . . . . . . . . . 33
8.6. New Registry: SR Policy Segment Flags . . . . . . . . . . 37 7. Security Considerations . . . . . . . . . . . . . . . . . . . 34
9. Security Considerations . . . . . . . . . . . . . . . . . . . 38 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 34
10.1. Normative References . . . . . . . . . . . . . . . . . . 38 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 35
10.2. Informational References . . . . . . . . . . . . . . . . 39 10.1. Normative References . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 10.2. Informational References . . . . . . . . . . . . . . . . 37
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37
1. Introduction 1. Introduction
Segment Routing (SR) allows a headend node to steer a packet flow Segment Routing (SR) [RFC8402] allows a headend node to steer a
along any path. Intermediate per-flow states are eliminated thanks packet flow along any path. Intermediate per-flow states are
to source routing [I-D.ietf-spring-segment-routing]. eliminated thanks to source routing.
The headend node is said to steer a flow into a Segment Routing The headend node is said to steer a flow into a SR Policy.
Policy (SR Policy).
The header of a packet steered in an SR Policy is augmented with the The header of a packet steered in an SR Policy is augmented with the
ordered list of segments associated with that SR Policy. ordered list of segments associated with that SR Policy.
[I-D.ietf-spring-segment-routing-policy] details the concepts of SR [I-D.ietf-spring-segment-routing-policy] details the concepts of SR
Policy and steering into an SR Policy. These apply equally to the Policy and steering into an SR Policy. These apply equally to the
MPLS and SRv6 instantiations of segment routing. MPLS and IPv6 (known as SRv6) data plane instantiations of Segment
Routing with their respective representations of segments as SR-MPLS
SID and SRv6 SID as described in [RFC8402].
[I-D.filsfils-spring-sr-policy-considerations] describes some of the [I-D.filsfils-spring-sr-policy-considerations] describes some of the
implementation aspects of the SR Policy Headend Architecture and implementation aspects of the SR Policy Headend Architecture and
introduces the notion of an SR Policy Module (SRPM) that performs the introduces the notion of an SR Policy Module (SRPM) that performs the
functionality as highlighted in section 2 of functionality as highlighted in section 2 of
[I-D.ietf-spring-segment-routing-policy]: [I-D.ietf-spring-segment-routing-policy]:
o The SRPM may learn multiple candidate paths for an SR Policy via o The SRPM may learn multiple candidate paths for an SR Policy via
various mechanisms (CLI, NetConf, PCEP or BGP). various mechanisms (CLI, NetConf, PCEP or BGP).
o The SRPM selects the best candidate path for the SR Policy. o The SRPM selects the best candidate path for the SR Policy.
o The SRPM binds a BSID to the selected candidate path of the SR o The SRPM binds a BSID to the selected candidate path of the SR
Policy. Policy.
o The SRPM installs the selected candidate path and its BSID in the o The SRPM installs the selected candidate path and its BSID in the
forwarding plane. forwarding plane.
This document specifies the way to use BGP to distribute one or more This document specifies the way to use BGP to distribute one or more
of the candidate paths of an SR Policy to the headend of that policy. of the candidate paths of an SR Policy to the headend of that policy.
The document identifies the functionality that resides in the BGP The document describes the functionality that resides in the BGP
process and for the functionality which is outside the scope of BGP process and, as appropriate, provides references for the
and lies within SRPM on the headend node, it refers to such, as functionality which is outside the scope of BGP (i.e. resides within
appropriate. SRPM on the headend node).
This document specifies a way of representing SR Policies and their This document specifies a way of representing SR Policy candidate
candidate paths in BGP UPDATE messages. BGP can then be used to paths in BGP UPDATE messages. BGP can then be used to propagate the
propagate the SR Policies and candidate paths. The usual BGP rules SR Policy candidate paths to the headend nodes in the network. The
for BGP propagation and "bestpath selection" are used. At the usual BGP rules for BGP propagation and "bestpath selection" are
headend of a specific policy, this will result in one or more used. At the headend of a specific policy, this will result in one
candidate paths being installed into the "BGP table". These paths or more candidate paths being installed into the "BGP table". These
are then passed to the SRPM. The SRPM may compare them to candidate paths are then passed to the SRPM. The SRPM may compare them to
paths learned via other mechanisms, and will choose one or more paths candidate paths learned via other mechanisms, and will choose one or
to be installed in the data plane. BGP itself does not install SR more paths to be installed in the data plane. BGP itself does not
Policy candidate paths into the data plane. install SR Policy candidate paths into the data plane.
This document defines a new BGP address family (SAFI). In UPDATE This document defines a new BGP address family (SAFI). In UPDATE
messages of that address family, the NLRI identifies an SR Policy, messages of that address family, the NLRI identifies an SR Policy
and the attributes encode the segment lists and other details of that Candidate Path, and the attributes encode the segment lists and other
SR Policy. details of that SR Policy Candidate Path.
While for simplicity we may write that BGP advertises an SR Policy, While for simplicity we may write that BGP advertises an SR Policy,
it has to be understood that BGP advertises a candidate path of an SR it has to be understood that BGP advertises a candidate path of an SR
policy and that this SR Policy might have several other candidate policy and that this SR Policy might have several other candidate
paths provided via BGP (via an NLRI with a different distinguisher as paths provided via BGP (via an NLRI with a different distinguisher as
defined in this document), PCEP, NETCONF or local policy defined in this document), PCEP, NETCONF or local policy
configuration. configuration.
Typically, a controller defines the set of policies and advertise Typically, a controller defines the set of policies and advertise
them to policy head-end routers (typically ingress routers). The them to policy head-end routers (typically ingress routers). The
policy advertisement uses BGP extensions defined in this document. policy advertisement uses BGP extensions defined in this document.
The policy advertisement is, in most but not all of the cases, The policy advertisement is, in most but not all of the cases,
tailored for a specific policy head-end. In this case the tailored for a specific policy head-end. In this case the
advertisement may sent on a BGP session to that head-end and not advertisement may be sent on a BGP session to that head-end and not
propagated any further. propagated any further.
Alternatively, a router (i.e., a BGP egress router) advertises SR Alternatively, a router (i.e., a BGP egress router) advertises SR
Policies representing paths to itself. In this case, it is possible Policies representing paths to itself. In this case, it is possible
to send the policy to each head-end over a BGP session to that head- to send the policy to each head-end over a BGP session to that head-
end, without requiring any further propagation of the policy. end, without requiring any further propagation of the policy.
An SR Policy intended only for the receiver will, in most cases, not An SR Policy intended only for the receiver will, in most cases, not
traverse any Route Reflector (RR, [RFC4456]). traverse any Route Reflector (RR, [RFC4456]).
In some situations, it is undesirable for a controller or BGP egress In some situations, it is undesirable for a controller or BGP egress
router to have a BGP session to each policy head-end. In these router to have a BGP session to each policy head-end. In these
situations, BGP Route Reflectors may be used to propagate the situations, BGP Route Reflectors may be used to propagate the
advertisements, or it may be necessary for the advertisement to advertisements, or it may be necessary for the advertisement to
propagate through a sequence of one or more ASes. To make this propagate through a sequence of one or more AS. To make this
possible, an attribute needs to be attached to the advertisement that possible, an attribute needs to be attached to the advertisement that
enables a BGP speaker to determine whether it is intended to be a enables a BGP speaker to determine whether it is intended to be a
head-end for the advertised policy. This is done by attaching one or head-end for the advertised policy. This is done by attaching one or
more Route Target Extended Communities to the advertisement more Route Target Extended Communities to the advertisement
([RFC4360]). ([RFC4360]).
The BGP extensions for the advertisement of SR Policies include The BGP extensions for the advertisement of SR Policies include
following components: following components:
o A new Subsequent Address Family Identifier (SAFI) whose NLRI o A new Subsequent Address Family Identifier (SAFI) whose NLRI
skipping to change at page 5, line 34 skipping to change at page 5, line 35
o The Color Extended Community (as defined in o The Color Extended Community (as defined in
[I-D.ietf-idr-tunnel-encaps]) and used in order to steer traffic [I-D.ietf-idr-tunnel-encaps]) and used in order to steer traffic
into an SR Policy, as described in section 8.4 in into an SR Policy, as described in section 8.4 in
[I-D.ietf-spring-segment-routing-policy]. This document [I-D.ietf-spring-segment-routing-policy]. This document
(Section 3) modifies the format of the Color Extended Community by (Section 3) modifies the format of the Color Extended Community by
using the two leftmost bits of the RESERVED field. using the two leftmost bits of the RESERVED field.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in RFC 2119 [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. SR Policy Encoding 2. SR Policy Encoding
2.1. SR Policy SAFI and NLRI 2.1. SR Policy SAFI and NLRI
A new SAFI is defined: the SR Policy SAFI, (codepoint 73 assigned by A new SAFI is defined: the SR Policy SAFI with codepoint 73. The AFI
IANA (see Section 8) from the "Subsequent Address Family Identifiers used MUST be IPv4(1) or IPv6(2).
(SAFI) Parameters" registry).
The SR Policy SAFI uses a new NLRI defined as follows: The SR Policy SAFI uses a new NLRI defined as follows:
+------------------+ +------------------+
| NLRI Length | 1 octet | NLRI Length | 1 octet
+------------------+ +------------------+
| Distinguisher | 4 octets | Distinguisher | 4 octets
+------------------+ +------------------+
| Policy Color | 4 octets | Policy Color | 4 octets
+------------------+ +------------------+
| Endpoint | 4 or 16 octets | Endpoint | 4 or 16 octets
+------------------+ +------------------+
where: where:
o NLRI Length: 1 octet of length expressed in bits as defined in o NLRI Length: 1 octet of length expressed in bits as defined in
[RFC4760]. [RFC4760]. When AFI = 1 value MUST be 12 and when AFI = 2 value
MUST be 24.
o Distinguisher: 4-octet value uniquely identifying the policy in o Distinguisher: 4-octet value uniquely identifying the policy in
the context of <color, endpoint> tuple. The distinguisher has no the context of <color, endpoint> tuple. The distinguisher has no
semantic value and is solely used by the SR Policy originator to semantic value and is solely used by the SR Policy originator to
make unique (from an NLRI perspective) multiple occurrences of the make unique (from an NLRI perspective) multiple candidate paths of
same SR Policy. the same SR Policy.
o Policy Color: 4-octet value identifying (with the endpoint) the o Policy Color: 4-octet value identifying (with the endpoint) the
policy. The color is used to match the color of the destination policy. The color is used to match the color of the destination
prefixes to steer traffic into the SR Policy prefixes to steer traffic into the SR Policy as specified in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
o Endpoint: identifies the endpoint of a policy. The Endpoint may o Endpoint: identifies the endpoint of a policy. The Endpoint may
represent a single node or a set of nodes (e.g., an anycast represent a single node or a set of nodes (e.g., an anycast
address). The Endpoint is an IPv4 (4-octet) address or an IPv6 address). The Endpoint is an IPv4 (4-octet) address or an IPv6
(16-octet) address according to the AFI of the NLRI. (16-octet) address according to the AFI of the NLRI.
The color and endpoint are used to automate the steering of BGP The color and endpoint are used to automate the steering of BGP
Payload prefixes on SR Policy as described in Payload prefixes on SR Policy as described in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
The NLRI containing the SR Policy is carried in a BGP UPDATE message The NLRI containing the SR Policy is carried in a BGP UPDATE message
[RFC4271] using BGP multiprotocol extensions [RFC4760] with an AFI of [RFC4271] using BGP multiprotocol extensions [RFC4760] with an AFI of
1 or 2 (IPv4 or IPv6) and with a SAFI of 73 (assigned by IANA from 1 or 2 (IPv4 or IPv6) and with a SAFI of 73.
the "Subsequent Address Family Identifiers (SAFI) Parameters"
registry).
An update message that carries the MP_REACH_NLRI or MP_UNREACH_NLRI An update message that carries the MP_REACH_NLRI or MP_UNREACH_NLRI
attribute with the SR Policy SAFI MUST also carry the BGP mandatory attribute with the SR Policy SAFI MUST also carry the BGP mandatory
attributes. In addition, the BGP update message MAY also contain any attributes. In addition, the BGP update message MAY also contain any
of the BGP optional attributes. of the BGP optional attributes.
The next-hop network address field in SR Policy SAFI (73) updates may The next-hop network address field in SR Policy SAFI (73) updates may
be either a 4 octet IPv4 address or a 16 octet IPv6 address, be either a 4 octet IPv4 address or a 16 octet IPv6 address,
independent of the SR Policy AFI. The length field of the next-hop independent of the SR Policy AFI. The length field of the next-hop
address specifies the next-hop address family. If the next-hop address specifies the next-hop address family. If the next-hop
length is 4, then the next-hop is an IPv4 address; if the next-hop length is 4, then the next-hop is an IPv4 address; if the next-hop
length is 16, then it is a global IPv6 address; and if the next-hop length is 16, then it is a global IPv6 address; and if the next-hop
length is 32, then it has a global IPv6 address followed by a link- length is 32, then it has a global IPv6 address followed by a link-
local IPv6 address. The setting of the next-hop field and its local IPv6 address. The setting of the next-hop field and its
attendant processing is governed by standard BGP procedures as attendant processing is governed by standard BGP procedures as
described in section 3 in [RFC4760]. described in section 3 in [RFC4760].
It is important to note that any BGP speaker receiving a BGP message It is important to note that any BGP speaker receiving a BGP message
with an SR Policy NLRI, will process it only if the NLRI is among the with an SR Policy NLRI, will process it only if the NLRI is among the
best paths as per the BGP best path selection algorithm. In other best paths as per the BGP best path selection algorithm. In other
words, this document does not modify the BGP propagation or bestpath words, this document leverages the existing BGP propagation and
selection rules. bestpath selection rules. Details of the procedures are described in
Section 4.
It has to be noted that if several candidate paths of the same SR It has to be noted that if several candidate paths of the same SR
Policy (endpoint, color) are signaled via BGP to a head-end, it is Policy (endpoint, color) are signaled via BGP to a head-end, it is
recommended that each NLRI use a different distinguisher. If BGP has RECOMMENDED that each NLRI use a different distinguisher. If BGP has
installed into the BGP table two advertisements whose respective installed into the BGP table two advertisements whose respective
NLRIs have the same color and endpoint, but different distinguishers, NLRIs have the same color and endpoint, but different distinguishers,
both advertisements are passed to the SRPM as different candidate both advertisements are passed to the SRPM as different candidate
paths. In addition, the originator information corresponding to the paths along with their respective originator information as described
each candidate path, as described in section 2.4 in in section 2.4 of [I-D.ietf-spring-segment-routing-policy].
[I-D.ietf-spring-segment-routing-policy], is passed to the SRPM.
2.2. SR Policy and Tunnel Encapsulation Attribute 2.2. SR Policy and Tunnel Encapsulation Attribute
The content of the SR Policy is encoded in the Tunnel Encapsulation The content of the SR Policy is encoded in the Tunnel Encapsulation
Attribute originally defined in [I-D.ietf-idr-tunnel-encaps] using a Attribute defined in [I-D.ietf-idr-tunnel-encaps] using a new Tunnel-
new Tunnel-Type TLV (codepoint is 15, assigned by IANA (see Type called SR Policy Type with codepoint 15.
Section 8) from the "BGP Tunnel Encapsulation Attribute Tunnel Types"
registry).
The SR Policy Encoding structure is as follows: The SR Policy Encoding structure is as follows:
SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint> SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
Attributes: Attributes:
Tunnel Encaps Attribute (23) Tunnel Encaps Attribute (23)
Tunnel Type: SR Policy Tunnel Type: SR Policy
Binding SID Binding SID
Preference Preference
Priority Priority
skipping to change at page 8, line 27 skipping to change at page 8, line 10
Segment Segment
... ...
... ...
where: where:
o SR Policy SAFI NLRI is defined in Section 2.1. o SR Policy SAFI NLRI is defined in Section 2.1.
o Tunnel Encapsulation Attribute is defined in o Tunnel Encapsulation Attribute is defined in
[I-D.ietf-idr-tunnel-encaps]. [I-D.ietf-idr-tunnel-encaps].
o Tunnel-Type is set to 15 (assigned by IANA from the "BGP Tunnel o Tunnel-Type is set to 15.
Encapsulation Attribute Tunnel Types" registry).
o Preference, Binding SID, Priority, Policy Name, ENLP, Segment- o Preference, Binding SID, Priority, Policy Name, ENLP, Segment-
List, Weight and Segment sub-TLVs are defined in this document. List, Weight and Segment sub-TLVs are defined in this document.
o Additional sub-TLVs may be defined in the future. o Additional sub-TLVs may be defined in the future.
A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV
of type "SR Policy". If more than one TLV of type "SR Policy" of type "SR Policy". If more than one TLV of type "SR Policy"
appears, the update is considered malformed and the "treat-as- appears, the update is considered malformed and the "treat-as-
withdraw" strategy of [RFC7606] is applied. withdraw" strategy of [RFC7606] is applied.
Multiple occurrences of "Segment List" MAY be encoded within the same
SR Policy.
Multiple occurrences of "Segment" MAY be encoded within the same
Segment List.
2.3. Remote Endpoint and Color 2.3. Remote Endpoint and Color
The Remote Endpoint and Color sub-TLVs, as defined in The Remote Endpoint and Color sub-TLVs, as defined in
[I-D.ietf-idr-tunnel-encaps], MAY also be present in the SR Policy [I-D.ietf-idr-tunnel-encaps], MAY also be present in the SR Policy
encodings. encodings.
The Remote Endpoint and Color Sub-TLVs are not used for SR Policy The Remote Endpoint and Color Sub-TLVs of the Tunnel Encapsulation
encodings and therefore their value is irrelevant in the context of Attribute are not used for SR Policy encodings and therefore their
the SR Policy SAFI NLRI. If present, the Remote Endpoint sub-TLV and value is irrelevant in the context of the SR Policy SAFI NLRI. If
the Color sub-TLV MUST be ignored by the BGP speaker. present, the Remote Endpoint sub-TLV and the Color sub-TLV MUST be
ignored by the BGP speaker.
2.4. SR Policy Sub-TLVs 2.4. SR Policy Sub-TLVs
This section defines the SR Policy sub-TLVs. This section specifies the sub-TLVs defined for encoding the
information about the SR Policy.
Preference, Binding SID, Segment-List, Priority, Policy Name and Preference, Binding SID, Segment-List, Priority, Policy Name and
Explicit NULL Label Policy sub-TLVs are assigned from the "BGP Tunnel Explicit NULL Label Policy are the new sub-TLVs of the BGP Tunnel
Encapsulation Attribute Sub-TLVs" registry. Encapsulation Attribute [I-D.ietf-idr-tunnel-encaps] being defined in
this section.
Weight and Segment sub-TLVs are assigned from a new registry defined Weight and Segment are sub-TLVs of the new Segment-List sub-TLV
in this document and called: "SR Policy List Sub-TLVs". See mentioned above.
Section 8 for the details of the registry.
None of the sub-TLVs defined in the following sub-sections have any
effect on the BGP bestpath selection or propagation procedures.
These sub-TLVs are not used by BGP and are instead passed on to SRPM
as SR Policy Candidate Path information for further processing
described in [I-D.ietf-spring-segment-routing-policy] .
2.4.1. Preference Sub-TLV 2.4.1. Preference Sub-TLV
The Preference sub-TLV does not have any effect on the BGP bestpath The Preference sub-TLV is used to carry the preference of the SR
selection or propagation procedures. The contents of this sub-TLV Policy candidate path. The contents of this sub-TLV are used by the
are used by the SRPM as described in section 2.7 in SRPM as described in section 2.7 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
The Preference sub-TLV is optional and it MUST NOT appear more than The Preference sub-TLV is optional and it MUST NOT appear more than
once in the SR Policy. If the Preference sub-TLV appears more than once in the SR Policy.
once, the update is considered malformed and the "treat-as-withdraw"
strategy of [RFC7606] is applied.
The Preference sub-TLV has following format: The Preference sub-TLV has 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 | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference (4 octets) | | Preference (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 10, line 5 skipping to change at page 9, line 35
where: where:
o Type: 12 o Type: 12
o Length: 6. o Length: 6.
o Flags: 1 octet of flags. None are defined at this stage. Flags o Flags: 1 octet of flags. None are defined at this stage. Flags
SHOULD be set to zero on transmission and MUST be ignored on SHOULD be set to zero on transmission and MUST be ignored on
receipt. receipt.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Preference: a 4-octet value. o Preference: a 4-octet value.
2.4.2. Binding SID Sub-TLV 2.4.2. Binding SID Sub-TLV
The Binding SID sub-TLV is not used by BGP. The contents of this The Binding SID sub-TLV is used to signal the binding SID related
information of the SR Policy candidate path. The contents of this
sub-TLV are used by the SRPM as described in section 6 in sub-TLV are used by the SRPM as described in section 6 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
The Binding SID sub-TLV is optional and it MUST NOT appear more than The Binding SID sub-TLV is optional and it MUST NOT appear more than
once in the SR Policy. If the Binding SID sub-TLV appears more than once in the SR Policy.
once, the update is considered malformed and the "treat-as-withdraw"
strategy of [RFC7606] is applied.
The Binding SID sub-TLV has the following format: The Binding SID sub-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 | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Binding SID (variable, optional) | | Binding SID (variable, optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 13 o Type: 13
o Length: specifies the length of the value field not including Type o Length: specifies the length of the value field not including Type
and Length fields. Can be 2 or 6 or 18. and Length fields. Can be 2 or 6 or 18.
o Flags: 1 octet of flags. Following flags are defined (to be o Flags: 1 octet of flags. Following flags are defined in the new
assigned by IANA from the registry "SR Policy Binding SID Flags" registry "SR Policy Binding SID Flags" as described in
defined in this document Section 8.5): Section 6.5:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|S|I| | |S|I| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where: where:
* S-Flag: This flag encodes the "Specified-BSID-only" behavior. * S-Flag: This flag encodes the "Specified-BSID-only" behavior.
It is used by SRPM as described in section 6.2.3 in It is used by SRPM as described in section 6.2.3 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
* I-Flag: This flag encodes the "Drop Upon Invalid" behavior. It * I-Flag: This flag encodes the "Drop Upon Invalid" behavior. It
is used by SRPM as described in section 8.2 in is used by SRPM as described in section 8.2 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
* Unused bits in the Flag octet SHOULD be set to zero upon * Unused bits in the Flag octet SHOULD be set to zero upon
transmission and MUST be ignored upon receipt. transmission and MUST be ignored upon receipt.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Binding SID: if length is 2, then no Binding SID is present. o Binding SID: if length is 2, then no Binding SID is present. If
length is 6 then the Binding SID is encoded in 4 octets using the
o If length is 6 then the Binding SID contains a 4-octet SID. Below format below. TC, S, TTL (Total of 12 bits) are RESERVED and
format is used to encode the SID. TC, S, TTL(Total of 12bits) are SHOULD be set to zero and MUST be ignored.
RESERVED and SHOULD be set to Zero and MUST be ignored.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
If length is 18 then the Binding SID contains a 16-octet IPv6 SID. If length is 18 then the Binding SID contains a 16-octet SRv6 SID.
2.4.3. Segment List Sub-TLV 2.4.3. Segment List Sub-TLV
The Segment List sub-TLV encodes a single explicit path towards the The Segment List sub-TLV encodes a single explicit path towards the
endpoint as described in section 5.1 in endpoint as described in section 5.1 in
[I-D.ietf-spring-segment-routing-policy]. The Segment List sub-TLV [I-D.ietf-spring-segment-routing-policy]. The Segment List sub-TLV
includes the elements of the paths (i.e., segments) as well as an includes the elements of the paths (i.e., segments) as well as an
optional Weight sub-TLV. optional Weight sub-TLV.
The Segment List sub-TLV may exceed 255 bytes length due to large The Segment List sub-TLV may exceed 255 bytes length due to large
number of segments. Therefore a 2-octet length is required. number of segments. Therefore a 2-octet length is required.
According to [I-D.ietf-idr-tunnel-encaps], the first bit of the sub- According to [I-D.ietf-idr-tunnel-encaps], the first bit of the sub-
TLV codepoint defines the size of the length field. Therefore, for TLV codepoint defines the size of the length field. Therefore, for
the Segment List sub-TLV a code point of 128 (or higher) is used. the Segment List sub-TLV a code point of 128 or higher is used.
See Section 8 for details of codepoints allocation.
The Segment List sub-TLV is optional and MAY appear multiple times in The Segment List sub-TLV is optional and MAY appear multiple times in
the SR Policy. The ordering of Segment List sub-TLVs, each sub-TLV the SR Policy. The ordering of Segment List sub-TLVs, each sub-TLV
encoding a Segment List, does not matter. encoding a Segment List, does not matter.
The Segment List sub-TLV contains zero or more Segment sub-TLVs and The Segment List sub-TLV contains zero or more Segment sub-TLVs and
MAY contain a Weight sub-TLV. MAY contain a Weight sub-TLV.
The Segment List sub-TLV has the following format: The Segment List sub-TLV has the following format:
skipping to change at page 12, line 20 skipping to change at page 11, line 51
// sub-TLVs // // sub-TLVs //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 128. o Type: 128.
o Length: the total length (not including the Type and Length o Length: the total length (not including the Type and Length
fields) of the sub-TLVs encoded within the Segment List sub-TLV. fields) of the sub-TLVs encoded within the Segment List sub-TLV.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o sub-TLVs: o sub-TLVs currently defined:
* An optional single Weight sub-TLV. * An optional single Weight sub-TLV.
* Zero or more Segment sub-TLVs. * Zero or more Segment sub-TLVs.
Validation of an explicit path encoded by the Segment List sub-TLV is Validation of an explicit path encoded by the Segment List sub-TLV is
completely within the scope of SRPM as described in section 5 in beyond the scope of BGP and performed by the SRPM as described in
[I-D.ietf-spring-segment-routing-policy]. section 5 in [I-D.ietf-spring-segment-routing-policy].
2.4.3.1. Weight Sub-TLV 2.4.3.1. Weight Sub-TLV
The Weight sub-TLV specifies the weight associated to a given segment The Weight sub-TLV specifies the weight associated to a given segment
list. The contents of this sub-TLV are used only by the SRPM as list. The contents of this sub-TLV are used only by the SRPM as
described in section 2.11 in described in section 2.11 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
The Weight sub-TLV is optional and it MUST NOT appear more than once The Weight sub-TLV is optional and it MUST NOT appear more than once
inside the Segment List sub-TLV. If the Weight sub-TLV appears more inside the Segment List sub-TLV.
than once, the update is considered malformed and the "treat-as-
withdraw" strategy of [RFC7606] is applied.
The Weight sub-TLV has the following format: The Weight sub-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 | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Weight | | Weight |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: 9 (to be assigned by IANA from the registry "SR Policy List o Type: 9.
Sub-TLVs" defined in this document).
Length: 6. o Length: 6
Flags: 1 octet of flags. None are defined at this stage. Flags o Flags: 1 octet of flags. None are defined at this stage. Flags
SHOULD be set to zero on transmission and MUST be ignored on receipt. SHOULD be set to zero on transmission and MUST be ignored on
receipt.
RESERVED: 1 octet of reserved bits. SHOULD be unset on transmission o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
2.4.3.2. Segment Sub-TLV 2.4.3.2. Segment Sub-TLVs
The Segment sub-TLV describes a single segment in a segment list A Segment sub-TLV describes a single segment in a segment list (i.e.,
(i.e., a single element of the explicit path). Multiple Segment sub- a single element of the explicit path). One or more Segment sub-TLVs
TLVs constitute an explicit path of the SR Policy. constitute an explicit path of the SR Policy. The contents of these
sub-TLVs are used only by the SRPM as described in section 4 in
[I-D.ietf-spring-segment-routing-policy].
The Segment sub-TLV is optional and MAY appear multiple times in the The Segment sub-TLVs are optional and MAY appear multiple times in
Segment List sub-TLV. the Segment List sub-TLV.
The Segment sub-TLV does not have any effect on the BGP bestpath [I-D.ietf-spring-segment-routing-policy] defines several Segment
selection or propagation procedures. The contents of this sub-TLV Types:
are used only by the SRPM as described in section 4 in
[I-D.ietf-spring-segment-routing-policy].
[I-D.ietf-spring-segment-routing-policy] defines several types of Type A: SID only, in the form of MPLS Label
Segments: Type B: SID only, in the form of IPv6 address
Type C: IPv4 Node Address with optional SID
Type D: IPv6 Node Address with optional SID for SR MPLS
Type E: IPv4 Address and index with optional SID
Type F: IPv4 Local and Remote addresses with optional SID
Type G: IPv6 Address and index for local and remote pair with optional
SID for SR MPLS
Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS
Type I: IPv6 Node Address with optional SID for SRv6
Type J: IPv6 Address and index for local and remote pair with optional
SID for SRv6
Type K: IPv6 Local and Remote addresses for SRv6
Type 1: SID only, in the form of MPLS Label The follow sub-sections specify the sub-TLV used for encoding each of
Type 2: SID only, in the form of IPv6 address these Segment Types.
Type 3: IPv4 Node Address with optional SID
Type 4: IPv6 Node Address with optional SID for SR MPLS
Type 5: IPv4 Address + index with optional SID
Type 6: IPv4 Local and Remote addresses with optional SID
Type 7: IPv6 Address + index for local and remote pair with optional SID for SR MPLS
Type 8: IPv6 Local and Remote addresses with optional SID for SR MPLS
Type 9: IPv6 Node Address with optional SID for SRv6
Type 10: IPv6 Address + index for local and remote pair with optional SID for SRv6
Type 11: IPv6 Local and Remote addresses for SRv6
2.4.3.2.1. Type 1: SID only, in the form of MPLS Label 2.4.3.2.1. Type A: SID only, in the form of MPLS Label
The Type-1 Segment Sub-TLV encodes a single SID in the form of an The Type A Segment Sub-TLV encodes a single SR-MPLS SID. The format
MPLS label. The format is as follows: is as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 1 (to be assigned by IANA from the registry "SR Policy List o Type: 1.
Sub-TLVs" defined in this document).
o Length is 6. o Length is 6.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Label: 20 bits of label value. o Label: 20 bits of label value.
o TC: 3 bits of traffic class. o TC: 3 bits of traffic class.
o S: 1 bit of bottom-of-stack. o S: 1 bit of bottom-of-stack.
o TTL: 1 octet of TTL. o TTL: 1 octet of TTL.
skipping to change at page 15, line 22 skipping to change at page 14, line 35
sets the TTL field to 255. sets the TTL field to 255.
o If the originator wants to recommend a value for these fields, it o If the originator wants to recommend a value for these fields, it
puts those values in the TC and/or TTL fields. puts those values in the TC and/or TTL fields.
o The receiver MAY override the originator's values for these o The receiver MAY override the originator's values for these
fields. This would be determined by local policy at the receiver. fields. This would be determined by local policy at the receiver.
One possible policy would be to override the fields only if the One possible policy would be to override the fields only if the
fields have the default values specified above. fields have the default values specified above.
2.4.3.2.2. Type 2: SID only, in the form of IPv6 address 2.4.3.2.2. Type B: SID only, in the form of IPv6 address
The Type-2 Segment Sub-TLV encodes a single SRv6 SID in the form of The Type B Segment Sub-TLV encodes a single SRv6 SID. The format is
an IPv6 address. The format is as follows: as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (16 octets) // // SRv6 SID (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 2 (to be assigned by IANA from the registry "SR Policy List o Type: 2.
Sub-TLVs" defined in this document).
o Length is 18. o Length is 18.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o SRv6 SID: 16 octets of IPv6 address. o SRv6 SID: 16 octets of IPv6 address.
The IPv6 Segment Identifier (SRv6 SID) is defined in 2.4.3.2.3. Type C: IPv4 Node Address with optional SID
[I-D.ietf-6man-segment-routing-header].
2.4.3.2.3. Type 3: IPv4 Node Address with optional SID
The Type-3 Segment Sub-TLV encodes an IPv4 node address, SR Algorithm The Type C Segment Sub-TLV encodes an IPv4 node address, SR Algorithm
and an optional SID in the form of an MPLS label. The format is as and an optional SR-MPLS SID. The format is as follows:
follows:
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 | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 3 (to be assigned by IANA from the registry "SR Policy List o Type: 3.
Sub-TLVs" defined in this document).
o Length is 6 or 10. o Length is 10 when the SR-MPLS SID is present else is 6.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o SR Algorithm: 1 octet specifying SR Algorithm as described in o SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [I-D.ietf-spring-segment-routing], when A-Flag as section 3.1.1 in [RFC8402], when A-Flag as defined in
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as
SRPM as described in section 4 in described in section 4 in
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
encoded, this field SHOULD be unset on transmission and MUST be encoded, this field SHOULD be set to zero on transmission and MUST
ignored on receipt. be ignored on receipt.
o IPv4 Node Address: a 4 octet IPv4 address representing a node. o IPv4 Node Address: a 4 octet IPv4 address representing a node.
o SID: 4 octet MPLS label. o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1.
The following applies to the Type-3 Segment sub-TLV:
o The IPv4 Node Address MUST be present.
o The SID is optional and specifies a 4 octet MPLS SID containing
label, TC, S and TTL as defined in Section 2.4.3.2.1.
o If length is 6, then only the IPv4 Node Address is present.
o If length is 10, then the IPv4 Node Address and the MPLS SID are
present.
2.4.3.2.4. Type 4: IPv6 Node Address with optional SID for SR MPLS 2.4.3.2.4. Type D: IPv6 Node Address with optional SID for SR MPLS
The Type-4 Segment Sub-TLV encodes an IPv6 node address, SR Algorithm The Type D Segment Sub-TLV encodes an IPv6 node address, SR Algorithm
and an optional SID in the form of an MPLS label. The format is as and an optional SR-MPLS SID. The format is as follows:
follows:
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 | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 4 (to be assigned by IANA from the registry "SR Policy List o Type: 4
Sub-TLVs" defined in this document).
o Length is 18 or 22. o Length is 22 when the SR-MPLS SID is present else is 18.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o SR Algorithm: 1 octet specifying SR Algorithm as described in o SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [I-D.ietf-spring-segment-routing], when A-Flag as section 3.1.1 in [RFC8402], when A-Flag as defined in
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as
SRPM as described in section 4 in described in section 4 in
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
encoded, this field SHOULD be unset on transmission and MUST be encoded, this field SHOULD be set to zero on transmission and MUST
ignored on receipt. be ignored on receipt.
o IPv6 Node Address: a 16 octet IPv6 address representing a node. o IPv6 Node Address: a 16 octet IPv6 address representing a node.
o SID: 4 octet MPLS label. o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1.
The following applies to the Type-4 Segment sub-TLV:
o The IPv6 Node Address MUST be present.
o The SID is optional and specifies a 4 octet MPLS SID containing
label, TC, S and TTL as defined in Section 2.4.3.2.1.
o If length is 18, then only the IPv6 Node Address is present.
o If length is 22, then the IPv6 Node Address and the MPLS SID are
present.
2.4.3.2.5. Type 5: IPv4 Address + Local Interface ID with optional SID 2.4.3.2.5. Type E: IPv4 Address + Local Interface ID with optional SID
The Type-5 Segment Sub-TLV encodes an IPv4 node address, a local The Type E Segment Sub-TLV encodes an IPv4 node address, a local
interface Identifier (Local Interface ID) and an optional SID in the interface Identifier (Local Interface ID) and an optional SR-MPLS
form of an MPLS label. The format is as follows: SID. The format is as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 5 (to be assigned by IANA from the registry "SR Policy List o Type: 5.
Sub-TLVs" defined in this document).
o Length is 10 or 14. o Length is 14 when the SR-MPLS SID is present else is 10.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Local Interface ID: 4 octets of interface index as defined in o Local Interface ID: 4 octets of interface index as defined in
[I-D.ietf-pce-segment-routing]. [I-D.ietf-pce-segment-routing].
o IPv4 Node Address: a 4 octet IPv4 address representing a node. o IPv4 Node Address: a 4 octet IPv4 address representing a node.
o SID: 4 octet MPLS label. o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1.
The following applies to the Type-5 Segment sub-TLV:
o The IPv4 Node Address MUST be present.
o The Local Interface ID MUST be present.
o The SID is optional and specifies a 4 octet MPLS SID containing
label, TC, S and TTL as defined in Section 2.4.3.2.1.
o If length is 10, then the IPv4 Node Address and Local Interface ID
are present.
o If length is 14, then the IPv4 Node Address, the Local Interface
ID and the MPLS SID are present.
2.4.3.2.6. Type 6: IPv4 Local and Remote addresses with optional SID 2.4.3.2.6. Type F: IPv4 Local and Remote addresses with optional SID
The Type-6 Segment Sub-TLV encodes an adjacency local address, an The Type F Segment Sub-TLV encodes an adjacency local address, an
adjacency remote address and an optional SID in the form of an MPLS adjacency remote address and an optional SR-MPLS SID. The format is
label. The format is as follows: as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local IPv4 Address (4 octets) | | Local IPv4 Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote IPv4 Address (4 octets) | | Remote IPv4 Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 6 (to be assigned by IANA from the registry "SR Policy List o Type: 6.
Sub-TLVs" defined in this document).
o Length is 10 or 14. o Length is 14 when the SR-MPLS SID is present else is 10.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Local IPv4 Address: a 4 octet IPv4 address. o Local IPv4 Address: a 4 octet IPv4 address.
o Remote IPv4 Address: a 4 octet IPv4 address. o Remote IPv4 Address: a 4 octet IPv4 address.
o SID: 4 octet MPLS label. o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1.
The following applies to the Type-6 Segment sub-TLV:
o The Local IPv4 Address MUST be present and represents an adjacency
local address.
o The Remote IPv4 Address MUST be present and represents the remote
end of the adjacency.
o The SID is optional and specifies a 4 octet MPLS SID containing
label, TC, S and TTL as defined in Section 2.4.3.2.1.
o If length is 10, then only the IPv4 Local and Remote addresses are
present.
o If length is 14, then the IPv4 Local address, IPv4 Remote address
and the MPLS SID are present.
2.4.3.2.7. Type 7: IPv6 Address + Interface ID for local and remote 2.4.3.2.7. Type G: IPv6 Address + Interface ID for local and remote
pair with optional SID for SR MPLS pair with optional SID for SR MPLS
The Type-7 Segment Sub-TLV encodes an IPv6 Link Local adjacency with The Type G Segment Sub-TLV encodes an IPv6 Link Local adjacency with
IPv6 local node address, a local interface identifier (Local IPv6 local node address, a local interface identifier (Local
Interface ID), IPv6 remote node address , a remote interface Interface ID), IPv6 remote node address , a remote interface
identifier (Remote Interface ID) and an optional SID in the form of identifier (Remote Interface ID) and an optional SR-MPLS SID. The
an MPLS label. The format is as follows: format is as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) // // IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) | | Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) // // IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 7 (to be assigned by IANA from the registry "SR Policy List o Type: 7
Sub-TLVs" defined in this document).
o Length is 22, 26, 42 or 46. o Length is 46 when the SR-MPLS SID is present else is 42.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Local Interface ID: 4 octets of interface index as defined in o Local Interface ID: 4 octets of interface index as defined in
[I-D.ietf-pce-segment-routing]. [I-D.ietf-pce-segment-routing].
o IPv6 Local Node Address: a 16 octet IPv6 address. o IPv6 Local Node Address: a 16 octet IPv6 address.
o Remote Interface ID: 4 octets of interface index as defined in o Remote Interface ID: 4 octets of interface index as defined in
[I-D.ietf-pce-segment-routing]. [I-D.ietf-pce-segment-routing]. The value MAY be set to zero when
the local node address and interface identifiers are sufficient to
o IPv6 Remote Node Address: a 16 octet IPv6 address. describe the link.
o SID: 4 octet MPLS label.
The following applies to the Type-7 Segment sub-TLV:
o The Local Interface ID and IPv6 Local Node Address MUST be
present.
o The Remote Interface ID and Remote Node Address pair is optional.
If Remote Interface ID is present, the Remote Node Address MUST be
present as well. Similarly, if Remote Node Address is present,
the Remote Interface ID MUST be present as well.
o The SID is optional and specifies a 4 octet MPLS SID containing
label, TC, S and TTL as defined in Section 2.4.3.2.1.
o If length is 22, then the Local Interface ID and the Local IPv6
Address are present.
o If length is 26, then the Local Interface ID, Local IPv6 Address
and the MPLS SID are present.
o If length is 42, then the Local Interface ID, Local IPv6 Node o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY
Address, Remote Interface ID, and the Remote IPv6 Node Address are be set to zero when the local node address and interface
present. identifiers are sufficient to describe the link.
o If length is 46, then the Local Interface ID, Local IPv6 Node o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
Address, Remote Interface ID, Remote IPv6 Node Address and the TTL as defined in Section 2.4.3.2.1.
MPLS SID are present.
2.4.3.2.8. Type 8: IPv6 Local and Remote addresses with optional SID 2.4.3.2.8. Type H: IPv6 Local and Remote addresses with optional SID
for SR MPLS for SR MPLS
The Type-8 Segment Sub-TLV encodes an adjacency local address, an The Type H Segment Sub-TLV encodes an adjacency local address, an
adjacency remote address and an optional SID in the form of an MPLS adjacency remote address and an optional SR-MPLS SID. The format is
label. The format is as follows: as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) // // Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) // // Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 8 (to be assigned by IANA from the registry "SR Policy List o Type: 8
Sub-TLVs" defined in this document).
o Length is 34 or 38. o Length is 38 when the SR-MPLS SID is present else is 34.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Local IPv6 Address: a 16 octet IPv6 address. o Local IPv6 Address: a 16 octet IPv6 address.
o Remote IPv6 Address: a 16 octet IPv6 address. o Remote IPv6 Address: a 16 octet IPv6 address.
o SID: 4 octet MPLS label. o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1.
The following applies to the Type-8 Segment sub-TLV:
o The Local IPv6 Address MUST be present and represents an adjacency
local address.
o The Remote IPv6 Address MUST be present and represents the remote
end of the adjacency.
o The SID is optional and specifies a 4 octet MPLS SID containing
label, TC, S and TTL as defined in Section 2.4.3.2.1.
o If length is 34, then only the IPv6 Local and Remote addresses are
present.
o If length is 38, then IPv6 Local and Remote addresses and the MPLS
SID are present.
2.4.3.2.9. Type 9: IPv6 Node Address with optional SRv6 SID 2.4.3.2.9. Type I: IPv6 Node Address with optional SRv6 SID
The Type-9 Segment Sub-TLV encodes an IPv6 node address, SR Algorithm The Type I Segment Sub-TLV encodes an IPv6 node address, SR Algorithm
and an optional SID in the form of an IPv6 address. The format is as and an optional SRv6 SID. The format is as follows:
follows:
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 | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 10 (to be assigned by IANA from the registry "SR Policy List o Type: 10
Sub-TLVs" defined in this document).
o Length is 18 or 34. o Length is 34 when the SRv6 SID is present else is 18.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o SR Algorithm: 1 octet specifying SR Algorithm as described in o SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [I-D.ietf-spring-segment-routing], when A-Flag as section 3.1.1 in [RFC8402], when A-Flag as defined in
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as
SRPM as described in section 4 in described in section 4 in
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
encoded, this field SHOULD be unset on transmission and MUST be encoded, this field SHOULD be set to zero on transmission and MUST
ignored on receipt. be ignored on receipt.
o IPv6 Node Address: a 16 octet IPv6 address. o IPv6 Node Address: a 16 octet IPv6 address.
o SID: 16 octet IPv6 address. o SRv6 SID: optional, 16 octet IPv6 address.
The following applies to the Type-9 Segment sub-TLV:
o The IPv6 Node Address MUST be present.
o The SID is optional and specifies an SRv6 SID in the form of 16
octet IPv6 address.
o If length is 18, then only the IPv6 Node Address is present.
o If length is 34, then the IPv6 Node Address and the SRv6 SID are
present.
2.4.3.2.10. Type 10: IPv6 Address + Interface ID for local and remote 2.4.3.2.10. Type J: IPv6 Address + Interface ID for local and remote
pair for SRv6 with optional SID pair for SRv6 with optional SID
The Type-10 Segment Sub-TLV encodes an IPv6 Link Local adjacency with The Type J Segment Sub-TLV encodes an IPv6 Link Local adjacency with
local node address, a local interface identifier (Local Interface local node address, a local interface identifier (Local Interface
ID), remote IPv6 node address , a remote interface identifier (Remote ID), remote IPv6 node address, a remote interface identifier (Remote
Interface ID) and an optional SID in the form of an IPv6 address. Interface ID) and an optional SRv6 SID. The format is as follows:
The format is as follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) // // IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) | | Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) // // IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 11 (to be assigned by IANA from the registry "SR Policy List o Type: 11.
Sub-TLVs" defined in this document).
o Length is 22, 38, 42 or 58. o Length is 58 when the SRv6 SID is present else is 42.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Local Interface ID: 4 octets of interface index as defined in o Local Interface ID: 4 octets of interface index as defined in
[I-D.ietf-pce-segment-routing]. [I-D.ietf-pce-segment-routing].
o IPv6 Local Node Address: a 16 octet IPv6 address. o IPv6 Local Node Address: a 16 octet IPv6 address.
o Remote Interface ID: 4 octets of interface index as defined in o Remote Interface ID: 4 octets of interface index as defined in
[I-D.ietf-pce-segment-routing]. [I-D.ietf-pce-segment-routing]. The value MAY be set to zero when
the local node address and interface identifiers are sufficient to
o IPv6 Remote Node Address: a 16 octet IPv6 address. describe the link.
o SID: 16 octet IPv6 address.
The following applies to the Type-10 Segment sub-TLV:
o The Local Interface ID and the Local IPv6 Node Addresses MUST be
present.
o The Remote Interface ID and Remote Node Address pair is optional.
If Remote Interface ID is present, the Remote Node Address MUST be
present as well. Similarly, if Remote Node Address is present,
the Remote Interface ID MUST be present as well.
o The SID is optional and specifies an SRv6 SID in the form of 16
octet IPv6 address.
o If length is 22, then the Local Interface ID, Local IPv6 Node
Address, are present.
o If length is 38, then the Local Interface ID, Local IPv6 Node
Address and the SRv6 SID are present.
o If length is 42, then the Local Interface ID, Local IPv6 Node o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY
Address, Remote Interface ID, and the Remote IPv6 Node Address are be set to zero when the local node address and interface
present. identifiers are sufficient to describe the link.
o If length is 58, then the Local Interface ID, Local IPv6 Node o SRv6 SID: optional, 16 octet IPv6 address.
Address, Remote Interface ID, Remote IPv6 Node Address and the
SRv6 SID are present.
2.4.3.2.11. Type 11: IPv6 Local and Remote addresses for SRv6 with 2.4.3.2.11. Type K: IPv6 Local and Remote addresses for SRv6 with
optional SID optional SID
The Type-11 Segment Sub-TLV encodes an adjacency local address, an The Type K Segment Sub-TLV encodes an adjacency local address, an
adjacency remote address and an optional SID in the form of IPv6 adjacency remote address and an optional SRv6 SID. The format is as
address. The format is as follows: follows:
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) // // Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) // // Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 12 (to be assigned by IANA from the registry "SR Policy List o Type: 12 .
Sub-TLVs" defined in this document).
o Length is 34 or 50. o Length is 50 when the SRv6 SID is present else is 34.
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. o Flags: 1 octet of flags as defined in Section 2.4.3.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Local IPv6 Address: a 16 octet IPv6 address. o Local IPv6 Address: a 16 octet IPv6 address.
o Remote IPv6 Address: a 16 octet IPv6 address. o Remote IPv6 Address: a 16 octet IPv6 address.
o SID: 16 octet IPv6 address. o SRv6 SID: optional, 16 octet IPv6 address.
The following applies to the Type-11 Segment sub-TLV:
o The Local IPv6 Node Address MUST be present.
o The Remote IPv6 Node Address MUST be present.
o The SID is optional and specifies an SRv6 SID in the form of 16
octet IPv6 address.
o If length is 34, then the Local IPv6 Node Address and the Remote
IPv6 Node Address are present.
o If length is 50, then the Local IPv6 Node Address, the Remote IPv6
Node Address and the SRv6 SID are present.
2.4.3.2.12. Segment Flags 2.4.3.2.12. Segment Flags
The Segment Types described above MAY contain following flags in the The Segment Types sub-TLVs described above MAY contain following
"Flags" field (codes to be assigned by IANA from the registry "SR flags in the "Flags" field defined in Section 6.6:
Policy Segment Flags" defined in this document Section 8.6):
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|V|A| | |V|A| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where: where:
V-Flag: This flag is used by SRPM for the purpose of "SID V-Flag: This flag is used by SRPM for the purpose of "SID
verification" as described in Section 5.1 in verification" as described in Section 5.1 in
skipping to change at page 27, line 35 skipping to change at page 24, line 39
The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate
whether an Explicit NULL Label [RFC3032] must be pushed on an whether an Explicit NULL Label [RFC3032] must be pushed on an
unlabeled IP packet before any other labels. unlabeled IP packet before any other labels.
If an ENLP Sub-TLV is not present, the decision of whether to push an If an ENLP Sub-TLV is not present, the decision of whether to push an
Explicit NULL label on a given packet is a matter of local Explicit NULL label on a given packet is a matter of local
configuration. configuration.
The ENLP sub-TLV is optional and it MUST NOT appear more than once in The ENLP sub-TLV is optional and it MUST NOT appear more than once in
the SR Policy. If the ENLP sub-TLV appears more than once, the the SR Policy.
update is considered malformed and the "treat-as-withdraw" strategy
of [RFC7606] is applied.
The contents of this sub-TLV are used by the SRPM as described in The contents of this sub-TLV are used by the SRPM as described in
section 4.1 in [I-D.ietf-spring-segment-routing-policy]. section 4.1 in [I-D.ietf-spring-segment-routing-policy].
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 | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ENLP | | ENLP |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Where: Where:
Type: TBD1 (to be assigned by IANA from the registry "BGP Tunnel Type: 14.
Encapsulation Attribute sub-TLVs" defined in this document
Section 8.3).
Length: 3. Length: 3.
Flags: 1 octet of flags. None are defined at this stage. Flags Flags: 1 octet of flags. None are defined at this stage. Flags
SHOULD be set to zero on transmission and MUST be ignored on SHOULD be set to zero on transmission and MUST be ignored on
receipt. receipt.
RESERVED: 1 octet of reserved bits. SHOULD be unset on RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
ENLP(Explicit NULL Label Policy): Indicates whether Explicit NULL ENLP (Explicit NULL Label Policy): Indicates whether Explicit NULL
labels are to be pushed on unlabeled IP packets that are being labels are to be pushed on unlabeled IP packets that are being
steered into a given SR policy. This field has one of the steered into a given SR policy. This field has one of the
following 4 values: following values:
0: Reserved. 0: Reserved.
1: Push an IPv4 Explicit NULL label on an unlabeled IPv4 1: Push an IPv4 Explicit NULL label on an unlabeled IPv4
packet, but do not push an IPv6 Explicit NULL label on an packet, but do not push an IPv6 Explicit NULL label on an
unlabeled IPv6 packet. unlabeled IPv6 packet.
2: Push an IPv6 Explicit NULL label on an unlabeled IPv6 2: Push an IPv6 Explicit NULL label on an unlabeled IPv6
packet, but do not push an IPv4 Explicit NULL label on an packet, but do not push an IPv4 Explicit NULL label on an
unlabeled IPv4 packet. unlabeled IPv4 packet.
skipping to change at page 28, line 43 skipping to change at page 25, line 41
3: Push an IPv4 Explicit NULL label on an unlabeled IPv4 3: Push an IPv4 Explicit NULL label on an unlabeled IPv4
packet, and push an IPv6 Explicit NULL label on an unlabeled packet, and push an IPv6 Explicit NULL label on an unlabeled
IPv6 packet. IPv6 packet.
4: Do not push an Explicit NULL label. 4: Do not push an Explicit NULL label.
5 - 255: Reserved. 5 - 255: Reserved.
The ENLP reserved values may be used for future extensions and The ENLP reserved values may be used for future extensions and
implementations SHOULD ignore the ENLP Sub-TLV with these values. implementations SHOULD ignore the ENLP Sub-TLV with these values.
The behavior signaled in this Sub-TLV MAY be overridden by local
The policy signaled in this Sub-TLV MAY be overridden by local
configuration. The section 4.1 of configuration. The section 4.1 of
[I-D.ietf-spring-segment-routing-policy] draft describes the [I-D.ietf-spring-segment-routing-policy] draft describes the
behavior on the headend for handling of explicit null label. behavior on the headend for handling of explicit null label.
2.4.5. Policy Priority Sub-TLV 2.4.5. Policy Priority Sub-TLV
An operator MAY set the Policy Priority sub-TLV to indicate the order An operator MAY set the Policy Priority sub-TLV to indicate the order
in which the SR policies are re-computed upon topological change. in which the SR policies are re-computed upon topological change.
The contents of this sub-TLV are used by the SRPM as described in
The Priority sub-TLV does not have any effect on the BGP bestpath section 2.11 in [I-D.ietf-spring-segment-routing-policy].
selection or propagation procedures. The contents of this sub-TLV
are used by the SRPM as described in section 2.11 in
[I-D.ietf-spring-segment-routing-policy].
The Priority sub-TLV is optional and it MUST NOT appear more than The Priority sub-TLV is optional and it MUST NOT appear more than
once in the SR Policy TLV. If the Priority sub-TLV appears more than once in the SR Policy TLV.
once, the update is considered malformed and the "treat-as-withdraw"
strategy of [RFC7606] is applied.
The Priority sub-TLV has following format: The Priority sub-TLV has 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 | Priority | RESERVED | | Type | Length | Priority | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
Type: TBD2 (to be assigned by IANA from the registry "BGP Tunnel Type: 15
Encapsulation Attribute sub-TLVs" defined in this document
Section 8.3).
Length: 2. Length: 2.
Priority: a 1-octet value. Priority: a 1-octet value.
RESERVED: 1 octet of reserved bits. SHOULD be unset on RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
2.4.6. Policy Name Sub-TLV 2.4.6. Policy Name Sub-TLV
An operator MAY set the Policy Name sub-TLV to attach a symbolic name An operator MAY set the Policy Name sub-TLV to attach a symbolic name
to the SR Policy candidate path. to the SR Policy candidate path.
Usage of Policy Name sub-TLV is described in section 2 in Usage of Policy Name sub-TLV is described in section 2 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
The Policy Name sub-TLV may exceed 255 bytes length due to long The Policy Name sub-TLV may exceed 255 bytes length due to long
policy name. Therefore a 2-octet length is required. According to policy name. Therefore a 2-octet length is required. According to
[I-D.ietf-idr-tunnel-encaps], the first bit of the sub-TLV codepoint [I-D.ietf-idr-tunnel-encaps], the first bit of the sub-TLV codepoint
defines the size of the length field. Therefore, for the Policy Name defines the size of the length field. Therefore, for the Policy Name
sub-TLV a code point of 128 (or higher) is used. See Section 8 for sub-TLV a code point of 128 or higher is used.
details of codepoints allocation.
The Policy Name sub-TLV is optional and it MUST NOT appear more than The Policy Name sub-TLV is optional and it MUST NOT appear more than
once in the SR Policy TLV. If the Policy Name sub-TLV appears more once in the SR Policy TLV.
than once, the update is considered malformed and the "treat-as-
withdraw" strategy of [RFC7606] is applied.
The Policy Name sub-TLV has following format: The Policy Name sub-TLV has 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Policy Name // // Policy Name //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 30, line 21 skipping to change at page 27, line 4
The Policy Name sub-TLV has following format: The Policy Name sub-TLV has 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Policy Name // // Policy Name //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
Type: TBD3 (to be assigned by IANA from the registry "BGP Tunnel Type: 129.
Encapsulation Attribute sub-TLVs" defined in this document
Section 8.3).
Length: Variable. Length: Variable.
RESERVED: 1 octet of reserved bits. SHOULD be unset on RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
Policy Name: Symbolic name for the policy. It SHOULD be a string Policy Name: Symbolic name for the policy. It SHOULD be a string
of printable ASCII characters, without a NULL terminator. of printable ASCII characters, without a NULL terminator.
3. Extended Color Community 3. Color Extended Community
The Color Extended Community as defined in The Color Extended Community as defined in
[I-D.ietf-idr-tunnel-encaps] is used to steer traffic into a policy. [I-D.ietf-idr-tunnel-encaps] is used to steer traffic into a policy.
When the Color Extended Community is used for the purpose of steering When the Color Extended Community is used for the purpose of steering
the traffic into an SR Policy, the RESERVED field (as defined in the traffic into an SR Policy, two bits from the RESERVED field (as
[I-D.ietf-idr-tunnel-encaps] is changed as follows: defined in [I-D.ietf-idr-tunnel-encaps]) is used as follows:
1 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C O| RESERVED | |C O| RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where CO bits are defined as the "Color-Only" bits. where CO bits are defined as the "Color-Only" bits.
[I-D.ietf-spring-segment-routing-policy] defines the influence of [I-D.ietf-spring-segment-routing-policy] defines the influence of
these bits on the automated steering of BGP Payload traffic onto SR these bits on the automated steering of BGP Payload traffic onto SR
Policies. Policies.
4. SR Policy Operations 4. SR Policy Operations
As described in this document, the consumer of an SR Policy NLRI is As described in this document, the consumer of an SR Policy NLRI is
not the BGP process. The BGP process is in charge of the origination not the BGP process. The BGP process is in charge of the origination
and propagation of the SR Policy NLRI but its installation and use is and propagation of the SR Policy NLRI but its installation and use is
skipping to change at page 31, line 15 skipping to change at page 27, line 42
[I-D.ietf-spring-segment-routing-policy] defines the influence of [I-D.ietf-spring-segment-routing-policy] defines the influence of
these bits on the automated steering of BGP Payload traffic onto SR these bits on the automated steering of BGP Payload traffic onto SR
Policies. Policies.
4. SR Policy Operations 4. SR Policy Operations
As described in this document, the consumer of an SR Policy NLRI is As described in this document, the consumer of an SR Policy NLRI is
not the BGP process. The BGP process is in charge of the origination not the BGP process. The BGP process is in charge of the origination
and propagation of the SR Policy NLRI but its installation and use is and propagation of the SR Policy NLRI but its installation and use is
outside the scope of BGP. The details of SR Policy installation and outside the scope of BGP. The details of SR Policy installation and
use can be referred from [I-D.ietf-spring-segment-routing-policy]. use are specified in [I-D.ietf-spring-segment-routing-policy].
4.1. Configuration and Advertisement of SR Policies 4.1. Advertisement of SR Policies
Typically, but not limited to, an SR Policy is configured into a Typically, but not limited to, an SR Policy is computed by a
controller. controller or a path computation engine (PCE) and originated by a BGP
speaker on its behalf.
Multiple SR Policy NLRIs may be present with the same <color, Multiple SR Policy NLRIs may be present with the same <color,
endpoint> tuple but with different content when these SR policies are endpoint> tuple but with different content when these SR policies are
intended to different head-ends. intended for different head-ends.
The distinguisher of each SR Policy NLRI prevents undesired BGP route The distinguisher of each SR Policy NLRI prevents undesired BGP route
selection among these SR Policy NLRIs and allow their propagation selection among these SR Policy NLRIs and allows their propagation
across route reflectors [RFC4456]. across route reflectors [RFC4456].
Moreover, one or more route-target SHOULD be attached to the Moreover, one or more route-target SHOULD be attached to the
advertisement, where each route-target identifies one or more advertisement, where each route-target identifies one or more
intended head-ends for the advertised SR policy. intended head-ends for the advertised SR policy.
If no route-target is attached to the SR Policy NLRI, then it is If no route-target is attached to the SR Policy NLRI, then it is
assumed that the originator sends the SR Policy update directly assumed that the originator sends the SR Policy update directly
(e.g., through a BGP session) to the intended receiver. In such (e.g., through a BGP session) to the intended receiver. In such
case, the NO_ADVERTISE community MUST be attached to the SR Policy case, the NO_ADVERTISE community MUST be attached to the SR Policy
update. update.
4.2. Reception of an SR Policy NLRI 4.2. Reception of an SR Policy NLRI
On reception of an SR Policy NLRI, a BGP speaker MUST determine if On reception of an SR Policy NLRI, a BGP speaker first determines if
it's first acceptable, then it determines if it is usable. it is acceptable and then if it is usable.
4.2.1. Acceptance of an SR Policy NLRI 4.2.1. Acceptance of an SR Policy NLRI
When a BGP speaker receives an SR Policy NLRI from a neighbor it has When a BGP speaker receives an SR Policy NLRI from a neighbor it MUST
to determine if it's acceptable. The following applies: first determine if it's acceptable. The following rules apply:
o The SR Policy NLRI MUST include a distinguisher, color and o The SR Policy NLRI MUST include a distinguisher, color and
endpoint field which implies that the length of the NLRI MUST be endpoint field which implies that the length of the NLRI MUST be
either 12 or 24 octets (depending on the address family of the either 12 or 24 octets (depending on the address family of the
endpoint). endpoint).
o The SR Policy update MUST have either the NO_ADVERTISE community o The SR Policy update MUST have either the NO_ADVERTISE community
or at least one route-target extended community in IPv4-address or at least one route-target extended community in IPv4-address
format. If a router supporting this document receives an SR format. If a router supporting this specification receives an SR
policy update with no route-target extended communities and no policy update with no route-target extended communities and no
NO_ADVERTISE community, the update MUST NOT be sent to the SRPM. NO_ADVERTISE community, the update MUST be considered as
Furthermore, it SHOULD be considered to be malformed, and the malformed.
"treat-as-withdraw" strategy of [RFC7606] is applied.
o The Tunnel Encapsulation Attribute MUST be attached to the BGP o The Tunnel Encapsulation Attribute MUST be attached to the BGP
Update and MUST have a Tunnel Type TLV set to SR Policy ( Update and MUST have a Tunnel Type TLV set to SR Policy (codepoint
codepoint is 15, assigned by IANA (see Section 8) from the "BGP is 15).
Tunnel Encapsulation Attribute Tunnel Types" registry).
A router that receives an SR Policy update that is not valid A router that receives an SR Policy update that is not valid
according to these criteria MUST treat the update as malformed. The according to these criteria MUST treat the update as malformed and
route MUST NOT be passed to the SRPM, and the "treat-as-withdraw" the SR Policy candidate path MUST NOT be passed to the SRPM.
strategy of [RFC7606] is applied.
A unacceptable SR Policy update that has a valid NLRI portion with
invalid attribute portion MUST be considered as a withdraw of the SR
Policy.
4.2.2. Usable SR Policy NLRI 4.2.2. Usable SR Policy NLRI
If one or more route-targets are present, then at least one route- A SR Policy update that has been determined to be acceptable is
target MUST match one of the BGP Identifiers of the receiver in order further evaluated for its usability by the receiving node.
for the update to be considered usable. The BGP Identifier is
defined in [RFC4271] as a 4 octet IPv4 address. Therefore the route-
target extended community MUST be of the same format.
If one or more route-targets are present and no one matches any of An SR Policy NLRI update without any route-target extended community
the local BGP Identifiers, then, while the SR Policy NLRI is but having the NO_ADVERTISE community is considered usable.
acceptable, it is not usable on the receiver node. It has to be
noted that if the receiver has been explicitly configured to do so,
it MAY propagate the SR Policy NLRI to its neighbors as defined in
Section 4.2.4.
The SR Policy candidate paths encoded by the usable SR Policy NLRIs If one or more route-targets are present, then at least one route-
are sent to the SRPM. target MUST match the BGP Identifier of the receiver for the update
to be considered usable. The BGP Identifier is defined in [RFC4271]
as a 4 octet IPv4 address. Therefore, the route-target extended
community MUST be of the same format.
If one or more route-targets are present and none matches the local
BGP Identifier, then, while the SR Policy NLRI is acceptable, it is
not usable on the receiver node.
4.2.3. Passing a usable SR Policy NLRI to the SRPM 4.2.3. Passing a usable SR Policy NLRI to the SRPM
Once BGP has determined that the SR Policy NLRI is usable, BGP passes Once BGP on the receiving node has determined that the SR Policy NLRI
the SR Policy candidate path to the SRPM. Note that, along with the is usable, it passes the SR Policy candidate path to the SRPM. Note
candidate path details, BGP also passes the originator information that, along with the candidate path details, BGP also passes the
for breaking ties in the path-selection process as described in originator information for breaking ties in the candidate path
section 2.4 in [I-D.ietf-spring-segment-routing-policy]. selection process as described in section 2.4 in
[I-D.ietf-spring-segment-routing-policy].
The SRPM applies the rules defined in section 2 in The SRPM applies the rules defined in section 2 in
[I-D.ietf-spring-segment-routing-policy] to determine whether the SR [I-D.ietf-spring-segment-routing-policy] to determine whether the SR
Policy candidate path is valid and to select the best candidate path Policy candidate path is valid and to select the best candidate path
among the valid SR Policy candidate paths. among the valid ones for a given SR Policy.
4.2.4. Propagation of an SR Policy 4.2.4. Propagation of an SR Policy
SR Policy NLRIs that have been determined acceptable and valid can be
evaluated for propagation, even the ones that are not usable.
SR Policy NLRIs that have the NO_ADVERTISE community attached to them
MUST NOT be propagated.
By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate
it to any EBGP neighbor. it to any EBGP neighbor. An implementation MAY provide an explicit
configuration to override this and enable propagation of acceptable
SR Policy NLRIs to specific EBGP neighbors.
However, a node MAY be explicitly configured to advertise a received A BGP node advertises a received SR Policy NLRI to its IBGP neighbors
SR Policy NLRI to neighbors according to normal BGP rules (i.e., EBGP according to normal IBGP propagation rules.
propagation by an ASBR or iBGP propagation by a Route-Reflector).
SR Policy NLRIs that have been determined acceptable and valid can be By default, a BGP node receiving an SR Policy NLRI SHOULD NOT remove
propagated, even the ones that are not usable. route-target extended community before propagation. An
implementation MAY provide support for configuration to filter and/or
remove route-target extended community before propagation.
Only SR Policy NLRIs that do not have the NO_ADVERTISE community 5. Error Handling
attached to them can be propagated.
4.3. Flowspec and SR Policies This section describes the error handling actions, as described in
[RFC7606], that are to be performed for handling of BGP update
messages for BGP SR Policy SAFI.
The SR Policy can be carried in context of a Flowspec NLRI A BGP Speaker MUST perform the following syntactic validation of the
([RFC5575]). In this case, when the redirect to IP next-hop is SR Policy NLRI to determine if it is malformed. This includes the
specified as in [I-D.ietf-idr-flowspec-redirect-ip], the tunnel to validation of length of each NLRI and the total length of the
the next-hop is specified by the segment list in the Segment List MP_REACH_NLRI and MP_UNREACH_NLRI attributes.
sub-TLVs. The Segment List (e.g., label stack or IPv6 segment list)
is imposed to flows matching the criteria in the Flowspec route to
steer them towards the next-hop as specified in the SR Policy SAFI
NLRI.
5. Contributors When the error determined allows for the router to skip the malformed
NLRI(s) and continue processing of the rest of the update message,
then it MUST handle such malformed NLRIs as 'Treat-as-withdraw'. In
other cases, where the error in the NLRI encoding results in the
inability to process the BGP update message (e.g. length related
encoding errors), then the router SHOULD handle such malformed NLRIs
as 'AFI/SAFI disable' when other AFI/SAFI besides SR Policy are being
advertised over the same session. Alternately, the router MUST
perform 'session reset' when the session is only being used for SR
Policy or when it 'AFI/SAFI disable' action is not possible.
Kausik Majumdar The validation of the TLVs/sub-TLVs introduced in this document and
Cisco Systems defined in their respective sub-sections of Section 2.4 MUST be
US performed to determine if they are malformed or invalid. The
validation of the Tunnel Encapsulation Attribute itself and the other
TLVs/sub-TLVs specified in [I-D.ietf-idr-tunnel-encaps] MUST be done
as described in that document. In case of any error detected, either
at the attribute or its TLV/sub-TLV level, the "treat-as-withdraw"
strategy of [RFC7606] MUST be applied. This is because an SR Policy
update without a valid Tunnel Encapsulation Attribute (comprising of
all valid TLVs/sub-TLVs) is not usable.
Email: kmajumda@cisco.com The validation of the individual fields of the TLVs/sub-TLVs defined
in Section 2.4 are beyond the scope of BGP as they are handled by the
SRPM as described in the individual TLV/sub-TLV sub-sections. A BGP
implementation MUST NOT perform semantic verification of such fields
nor consider the SR Policy update to be invalid or not acceptable/
usable on the basis of such a validation.
Zafar Ali An implementation SHOULD log an error for any errors found during the
Cisco Systems above validation for further analysis.
US
Email: zali@cisco.com 6. IANA Considerations
Arjun Sreekantiah
Cisco Systems
US
Email: asreekan@cisco.com This document requests codepoint allocations for new TLVs/sub-TLVs in
following existing registries:
Acee Lindem o Subsequent Address Family Identifiers (SAFI) Parameters registry
Cisco Systems
US
Email: acee@cisco.com o BGP Tunnel Encapsulation Attribute Tunnel Types registry under the
BGP Parameters registry
Siva Sivabalan o BGP Tunnel Encapsulation Attribute sub-TLVs registry under the BGP
Cisco Systems Parameters registry
US
Email: msiva@cisco.com This document also requests creation of the following new registries:
Imtiyaz Mohammad o SR Policy List Sub-TLVs under the BGP Parameters registry
Arista Networks
India
Email: imtiyaz@arista.com o SR Policy Binding SID Flags under the BGP Parameters registry
Gaurav Dawra o SR Policy Segment Flags under the BGP Parameters registry
Cisco Systems
US
Email: gdawra.ietf@gmail.com o Color Extended Community Field under the BGP Extended Communities
registry
6. Acknowledgments 6.1. Existing Registry: Subsequent Address Family Identifiers (SAFI)
Parameters
The authors of this document would like to thank Shyam Sethuram, John This document defines a new SAFI in the registry "Subsequent Address
Scudder, Przemyslaw Krol, Alex Bogdanov, Nandan Saha and Ketan Family Identifiers (SAFI) Parameters" that has been assigned a
Talaulikar for their comments and review of this document. codepoint by IANA as follows:
7. Implementation Status Codepoint Description Reference
-----------------------------------------------
73 SR Policy SAFI This document
Note to RFC Editor: Please remove this section prior to publication, 6.2. Existing Registry: BGP Tunnel Encapsulation Attribute Tunnel Types
as well as the reference to RFC 7942.
This section records the status of known implementations of the This document defines a new Tunnel-Type in the registry "BGP Tunnel
protocol defined by this specification at the time of posting of this Encapsulation Attribute Tunnel Types" that has been assigned a
Internet-Draft, and is based on a proposal described in [RFC7942]. codepoint by IANA as follows:
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.
According to [RFC7942], "this will allow reviewers and working groups Codepoint Description Reference
to assign due consideration to documents that have the benefit of --------------------------------------------------
running code, which may serve as evidence of valuable experimentation 15 SR Policy Type This document
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".
Several early implementations exist and will be reported in detail in 6.3. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs
a forthcoming version of this document. For purposes of early
interoperability testing, when no FCFS code point was available,
implementations have made use of the following values:
o Preference sub-TLV: 12 This document defines new sub-TLVs in the registry "BGP Tunnel
Encapsulation Attribute sub-TLVs" that has been assigned codepoints
by IANA as follows:
o Binding SID sub-TLV: 13 Codepoint Description Reference
------------------------------------------------------
12 Preference sub-TLV This document
13 Binding SID sub-TLV This document
128 Segment List sub-TLV This document
14 ENLP sub-TLV This document
15 Priority sub-TLV This document
129 Policy Name sub-TLV This document
o Segment List sub-TLV: 128 6.4. New Registry: SR Policy List Sub-TLVs
When IANA-assigned values are available, implementations will be This document requests creation of a new registry called "SR Policy
updated to use them. List Sub-TLVs". The allocation policy of this registry is
"Specification Required" according to [RFC8126].
8. IANA Considerations Following initial Sub-TLV codepoints are assigned by this document:
This document defines new Sub-TLVs in following existing registries: Value Description Reference
------------------------------------------------------------------------
1 Type A MPLS SID sub-TLV This document
2 Type B SRv6 SID sub-TLV This document
3 Type C IPv4 Node and SID sub-TLV This document
4 Type D IPv6 Node and SID for SR-MPLS sub-TLV This document
5 Type E IPv4 Node, index and SID sub-TLV This document
6 Type F IPv4 Local/Remote addresses and SID sub-TLV This document
7 Type G IPv6 Node, index for remote and local pair This document
and SID for SR-MPLS sub-TLV
8 Type H IPv6 Local/Remote addresses and SID sub-TLV This document
9 Weight sub-TLV This document
10 Type I IPv6 Node and SID for SRv6 sub-TLV This document
11 Type J IPv6 Node, index for remote and local pair This document
and SID for SRv6 sub-TLV
12 Type K IPv6 Local/Remote addresses and SID for This document
SRv6 sub-TLV
o Subsequent Address Family Identifiers (SAFI) Parameters 6.5. New Registry: SR Policy Binding SID Flags
o BGP Tunnel Encapsulation Attribute Tunnel Types This document requests creation of a new registry called "SR Policy
Binding SID Flags". The allocation policy of this registry is
"Specification Required" according to [RFC8126].
o BGP Tunnel Encapsulation Attribute sub-TLVs Following flags are defined:
This document also defines following new registries: Bit Description Reference
-----------------------------------------------------------------
0 Specified-BSID-Only Flag (S-Flag) This document
1 Drop Upon Invalid Flag (I-Flag) This document
2-7 Unassigned
o SR Policy List Sub-TLVs 6.6. New Registry: SR Policy Segment Flags
o SR Policy Binding SID Flags This document requests creation of a new registry called "SR Policy
Segment Flags". The allocation policy of this registry is
"Specification Required" according to [RFC8126].
o SR Policy Segment Flags Following Flags are defined:
8.1. Existing Registry: Subsequent Address Family Identifiers (SAFI) Bit Description Reference
Parameters ------------------------------------------------------------------
0 Segment Verification Flag (V-Flag) This document
1 SR Algorithm Flag (A-Flag) This document
2-7 Unassigned
This document defines a new SAFI in the registry "Subsequent Address 6.7. New Registry: Color Extended Community Field
Family Identifiers (SAFI) Parameters" that has been assigned by IANA:
Codepoint Description Reference This document requests creation of a new registry called "Color
----------------------------------------------- Extended Community Field". The allocation policy of this registry is
73 SR Policy SAFI This document "Specification Required" according to [RFC8126].
8.2. Existing Registry: BGP Tunnel Encapsulation Attribute Tunnel Types Following bits are defined in this 2 octet field:
This document defines a new Tunnel-Type in the registry "BGP Tunnel Bit Description Reference
Encapsulation Attribute Tunnel Types" that has been assigned by IANA: ------------------------------------------------------------------
0-1 Color-only bits This document
2-15 Unassigned
Codepoint Description Reference 6.8. Guidance for Designated Experts
--------------------------------------------------
15 SR Policy Type This document
8.3. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs In all cases of review by the Designated Expert (DE) described here,
the DE is expected to ascertain the existence of suitable
documentation (a specification) as described in [RFC8126]. The DE is
also expected to check the clarity of purpose and use of the
requested code points. Additionally, the DE must verify that any
request for one of these code points has been made available for
review and comment within the IETF: the DE will post the request to
the IDR Working Group mailing list (or a successor mailing list
designated by the IESG). If the request comes from within the IETF,
it should be documented in an Internet-Draft. Lastly, the DE must
ensure that any other request for a code point does not conflict with
work that is active or already published within the IETF.
This document defines new sub-TLVs in the registry "BGP Tunnel 7. Security Considerations
Encapsulation Attribute sub-TLVs" to be assigned by IANA:
Codepoint Description Reference The security mechanisms of the base BGP security model apply to the
------------------------------------------------------ extensions described in this document as well. See the Security
12 Preference sub-TLV This document Considerations section of [RFC4271] for a discussion of BGP security.
13 Binding SID sub-TLV This document Also refer to [RFC4272] and [RFC6952] for analysis of security issues
128 Segment List sub-TLV This document for BGP.
TBD1 ENLP sub-TLV This document
TBD2 Priority sub-TLV This document
TBD3 Policy Name sub-TLV This document
8.4. New Registry: SR Policy List Sub-TLVs The BGP SR Policy extensions specified in this document enable
traffic engineering and service programming use-cases within the SR
domain as described in [I-D.ietf-spring-segment-routing-policy] . SR
operates within a trusted SR domain [RFC8402] and its security
considerations also apply to BGP sessions when carrying SR Policy
information. The SR Policies distributed by BGP are expected to be
used entirely within this trusted SR domain i.e. within a single AS
or between multiple AS/domains within a single provider network.
Therefore, precaution is necessary to ensure that the SR Policy
information advertised via BGP sessions is limited to nodes in a
secure manner within this trusted SR domain. BGP peering sessions
for address-families other than SR Policy SAFI may be setup to
routers outside the SR domain. The isolation of BGP SR Policy SAFI
peering sessions may be used to ensure that the SR Policy information
is not advertised by accident or error to an EBGP peering session
outside the SR domain.
This document defines a new registry called "SR Policy List Sub- Additionally, it may be considered that the export of SR Policy
TLVs". The allocation policy of this registry is "First Come First information as described in this document constitutes a risk to
Served (FCFS)" according to [RFC8126]. confidentiality of mission-critical or commercially sensitive
information about the network (more specifically endpoint/node
addresses, SR SIDs and the SR Policies deployed). BGP peerings are
not automatic and require configuration; thus, it is the
responsibility of the network operator to ensure that only trusted
nodes (that include both routers and controller applications) within
the SR domain are configured to receive such information.
Following Sub-TLV codepoints are defined: 8. Acknowledgments
Value Description Reference The authors of this document would like to thank Shyam Sethuram, John
1 MPLS SID sub-TLV This document Scudder, Przemyslaw Krol, Alex Bogdanov, Nandan Saha, Bruno Decraene,
2 SRv6 SID sub-TLV This document Gurusiddesh Nidasesi, Kausik Majumdar, Zafar Ali, Swadesh Agarwal,
3 IPv4 Node and SID sub-TLV This document Jakob Heitz and Viral Patel for their comments and review of this
4 IPv6 Node and SID for SR-MPLS sub-TLV This document document.
5 IPv4 Node, index and SID sub-TLV This document
6 IPv4 Local/Remote addresses and SID sub-TLV This document
7 IPv6 Node, index for remote and local pair This document
and SID for SR-MPLS sub-TLV
8 IPv6 Local/Remote addresses and SID sub-TLV This document
9 Weight sub-TLV This document
10 IPv6 Node and SID for SRv6 sub-TLV This document
11 IPv6 Node, index for remote and local pair This document
and SID for SRv6 sub-TLV
12 IPv6 Local/Remote addresses and SID for This document
SRv6 sub-TLV
8.5. New Registry: SR Policy Binding SID Flags 9. Contributors
Arjun Sreekantiah
Cisco Systems
US
This document defines a new registry called "SR Policy Binding SID Email: asreekan@cisco.com
Flags". The allocation policy of this registry is "First Come First
Served (FCFS)" according to [RFC8126].
Following Flags are defined: Acee Lindem
Cisco Systems
US
Bit Description Reference Email: acee@cisco.com
0 Specified-BSID-Only Flag (S-Flag) This document
1 Drop Upon Invalid Flag (I-Flag) This document
2-7 Unassigned
8.6. New Registry: SR Policy Segment Flags Siva Sivabalan
Cisco Systems
US
This document defines a new registry called "SR Policy Segment Email: msiva@cisco.com
Flags". The allocation policy of this registry is "First Come First
Served (FCFS)" according to [RFC8126].
Following Flags are defined: Imtiyaz Mohammad
Arista Networks
India
Bit Description Reference Email: imtiyaz@arista.com
0 Segment Verification Flag (V-Flag) This document
1 SR Algorithm Flag (A-Flag) This document
2-7 Unassigned
9. Security Considerations Gaurav Dawra
Cisco Systems
US
TBD. Email: gdawra.ietf@gmail.com
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-idr-tunnel-encaps] [I-D.ietf-idr-tunnel-encaps]
Patel, K., Velde, G., Ramachandra, S., and E. Rosen, "The Patel, K., Velde, G., and S. Ramachandra, "The BGP Tunnel
BGP Tunnel Encapsulation Attribute", draft-ietf-idr- Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-14
tunnel-encaps-12 (work in progress), May 2019. (work in progress), September 2019.
[I-D.ietf-pce-segment-routing] [I-D.ietf-pce-segment-routing]
Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "PCEP Extensions for Segment Routing", and J. Hardwick, "PCEP Extensions for Segment Routing",
draft-ietf-pce-segment-routing-16 (work in progress), draft-ietf-pce-segment-routing-16 (work in progress),
March 2019. March 2019.
[I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing
Architecture", draft-ietf-spring-segment-routing-15 (work
in progress), January 2018.
[I-D.ietf-spring-segment-routing-policy] [I-D.ietf-spring-segment-routing-policy]
Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., Filsfils, C., Sivabalan, S., Voyer, D., Bogdanov, A., and
bogdanov@google.com, b., and P. Mattes, "Segment Routing P. Mattes, "Segment Routing Policy Architecture", draft-
Policy Architecture", draft-ietf-spring-segment-routing- ietf-spring-segment-routing-policy-03 (work in progress),
policy-03 (work in progress), May 2019. May 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001,
<https://www.rfc-editor.org/info/rfc3032>. <https://www.rfc-editor.org/info/rfc3032>.
skipping to change at page 39, line 14 skipping to change at page 36, line 35
[RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
Communities Attribute", RFC 4360, DOI 10.17487/RFC4360, Communities Attribute", RFC 4360, DOI 10.17487/RFC4360,
February 2006, <https://www.rfc-editor.org/info/rfc4360>. February 2006, <https://www.rfc-editor.org/info/rfc4360>.
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter,
"Multiprotocol Extensions for BGP-4", RFC 4760, "Multiprotocol Extensions for BGP-4", RFC 4760,
DOI 10.17487/RFC4760, January 2007, DOI 10.17487/RFC4760, January 2007,
<https://www.rfc-editor.org/info/rfc4760>. <https://www.rfc-editor.org/info/rfc4760>.
[RFC5575] Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J.,
and D. McPherson, "Dissemination of Flow Specification
Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009,
<https://www.rfc-editor.org/info/rfc5575>.
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
Patel, "Revised Error Handling for BGP UPDATE Messages", Patel, "Revised Error Handling for BGP UPDATE Messages",
RFC 7606, DOI 10.17487/RFC7606, August 2015, RFC 7606, DOI 10.17487/RFC7606, August 2015,
<https://www.rfc-editor.org/info/rfc7606>. <https://www.rfc-editor.org/info/rfc7606>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>.
10.2. Informational References 10.2. Informational References
[I-D.filsfils-spring-sr-policy-considerations] [I-D.filsfils-spring-sr-policy-considerations]
Filsfils, C., Talaulikar, K., Krol, P., Horneffer, M., and Filsfils, C., Talaulikar, K., Krol, P., Horneffer, M., and
P. Mattes, "SR Policy Implementation and Deployment P. Mattes, "SR Policy Implementation and Deployment
Considerations", draft-filsfils-spring-sr-policy- Considerations", draft-filsfils-spring-sr-policy-
considerations-03 (work in progress), April 2019. considerations-04 (work in progress), October 2019.
[I-D.ietf-6man-segment-routing-header]
Filsfils, C., Dukes, D., Previdi, S., Leddy, J.,
Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment
Routing Header (SRH)", draft-ietf-6man-segment-routing-
header-21 (work in progress), June 2019.
[I-D.ietf-idr-flowspec-redirect-ip] [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis",
Uttaro, J., Haas, J., Texier, M., Andy, A., Ray, S., RFC 4272, DOI 10.17487/RFC4272, January 2006,
Simpson, A., and W. Henderickx, "BGP Flow-Spec Redirect to <https://www.rfc-editor.org/info/rfc4272>.
IP Action", draft-ietf-idr-flowspec-redirect-ip-02 (work
in progress), February 2015.
[RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route
Reflection: An Alternative to Full Mesh Internal BGP Reflection: An Alternative to Full Mesh Internal BGP
(IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006,
<https://www.rfc-editor.org/info/rfc4456>. <https://www.rfc-editor.org/info/rfc4456>.
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of
Code: The Implementation Status Section", BCP 205, BGP, LDP, PCEP, and MSDP Issues According to the Keying
RFC 7942, DOI 10.17487/RFC7942, July 2016, and Authentication for Routing Protocols (KARP) Design
<https://www.rfc-editor.org/info/rfc7942>. Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013,
<https://www.rfc-editor.org/info/rfc6952>.
Authors' Addresses Authors' Addresses
Stefano Previdi Stefano Previdi
Individual Individual
IT IT
Email: stefano@previdi.net Email: stefano@previdi.net
Clarence Filsfils Clarence Filsfils
Cisco Systems, Inc. Cisco Systems
Brussels Brussels
BE BE
Email: cfilsfil@cisco.com Email: cfilsfil@cisco.com
Ketan Talaulikar (editor)
Cisco Systems
India
Email: ketant@cisco.com
Paul Mattes Paul Mattes
Microsoft Microsoft
One Microsoft Way One Microsoft Way
Redmond, WA 98052 Redmond, WA 98052
USA USA
Email: pamattes@microsoft.com Email: pamattes@microsoft.com
Eric Rosen Eric Rosen
Juniper Networks Juniper Networks
 End of changes. 246 change blocks. 
713 lines changed or deleted 586 lines changed or added

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