draft-ietf-idr-segment-routing-te-policy-03.txt   draft-ietf-idr-segment-routing-te-policy-04.txt 
Network Working Group S. Previdi, Ed. Network Working Group S. Previdi, Ed.
Internet-Draft C. Filsfils Internet-Draft Individual
Intended status: Standards Track D. Jain, Ed. Intended status: Standards Track C. Filsfils
Expires: November 19, 2018 Cisco Systems, Inc. Expires: January 3, 2019 D. Jain, Ed.
Cisco Systems, Inc.
P. Mattes P. Mattes
Microsoft Microsoft
E. Rosen E. Rosen
Juniper Networks Juniper Networks
S. Lin S. Lin
Google Google
May 18, 2018 July 2, 2018
Advertising Segment Routing Policies in BGP Advertising Segment Routing Policies in BGP
draft-ietf-idr-segment-routing-te-policy-03 draft-ietf-idr-segment-routing-te-policy-04
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 Policy (SR Policy).
An SR Policy is a set of candidate paths consisting of one or more An SR Policy is a set of candidate paths, each consisting of one or
segment lists. The headend of an SR Policy may learn multiple more 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 candidate paths. New sub-TLVs for the Tunnel
Encapsulation Attribute are defined. Encapsulation Attribute are defined.
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.
skipping to change at page 1, line 45 skipping to change at page 1, line 46
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 November 19, 2018. This Internet-Draft will expire on January 3, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
2. SR TE Policy Encoding . . . . . . . . . . . . . . . . . . . . 5 2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 5
2.1. SR TE Policy SAFI and NLRI . . . . . . . . . . . . . . . 5 2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 5
2.2. SR TE 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 TE Policy Sub-TLVs . . . . . . . . . . . . . . . . . . 9 2.4. SR Policy Sub-TLVs . . . . . . . . . . . . . . . . . . . 9
2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 9
2.4.2. SR TE Binding SID Sub-TLV . . . . . . . . . . . . . . 10 2.4.2. Binding SID Sub-TLV . . . . . . . . . . . . . . . . . 10
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 . . . . . . . . . 27
2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 28 2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 28
2.4.6. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 29 2.4.6. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 29
3. Extended Color Community . . . . . . . . . . . . . . . . . . 30 3. Extended Color Community . . . . . . . . . . . . . . . . . . 30
4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 30 4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 30
4.1. Configuration and Advertisement of SR TE Policies . . . . 30 4.1. Configuration and Advertisement of SR Policies . . . . . 30
4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 31 4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 31
4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 31 4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 31
4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 32 4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 32
4.2.3. Passing a usable SR Policy NLRI to the SRTE Process . 32 4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 32
4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 32 4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 32
4.3. Flowspec and SR Policies . . . . . . . . . . . . . . . . 33 4.3. Flowspec and SR Policies . . . . . . . . . . . . . . . . 33
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 34 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 34
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
8.1. Existing Registry: Subsequent Address Family Identifiers 8.1. Existing Registry: Subsequent Address Family Identifiers
(SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 35 (SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 35
8.2. Existing Registry: BGP Tunnel Encapsulation Attribute 8.2. Existing Registry: BGP Tunnel Encapsulation Attribute
Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 35 Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 35
skipping to change at page 3, line 26 skipping to change at page 3, line 26
Segment Routing (SR) allows a headend node to steer a packet flow Segment Routing (SR) allows a headend node to steer a packet flow
along any path. Intermediate per-flow states are eliminated thanks along any path. Intermediate per-flow states are eliminated thanks
to source routing [I-D.ietf-spring-segment-routing]. to source routing [I-D.ietf-spring-segment-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 Segment Routing
Policy (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.filsfils-spring-segment-routing-policy] details the concepts of [I-D.ietf-spring-segment-routing-policy] details the concepts of SR
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 SRv6 instantiations of segment routing.
As highlighted in section 2 of [I-D.filsfils-spring-sr-policy-considerations] describes some of the
[I-D.filsfils-spring-segment-routing-policy]: implementation aspects of the SR Policy Headend Architecture and
introduces the notion of an SR Policy Module (SRPM) that performs the
functionality as highlighted in section 2 of
[I-D.ietf-spring-segment-routing-policy]:
o an SR policy may have multiple candidate paths learned via various o The SRPM may learn multiple candidate paths for an SR Policy via
mechanisms (CLI, NetConf, PCEP or BGP); various mechanisms (CLI, NetConf, PCEP or BGP).
o the SRTE process selects the best candidate path for a Policy; o The SRPM selects the best candidate path for the SR Policy.
o the SRTE process binds a BSID to the selected path of the Policy; o The SRPM binds a BSID to the selected candidate path of the SR
Policy.
o the SRTE process installs the selected 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 SRTE process ([I-D.filsfils-spring-segment-routing-policy]) of The document identifies the functionality that resides in the BGP
the headend receives candidate paths from BGP, and possibly other process and for the functionality which is outside the scope of BGP
sources as well, and the SRTE process then determines the selected and lies within SRPM on the headend node, it refers to such, as
path of the policy. appropriate.
This document specifies a way of representing SR policies and their This document specifies a way of representing SR Policies and their
candidate paths in BGP UPDATE messages. BGP can then be used to candidate paths in BGP UPDATE messages. BGP can then be used to
propagate the SR policies and candidate paths. The usual BGP rules propagate the SR Policies and candidate paths. The usual BGP rules
for BGP propagation and "bestpath selection" are used. At the for BGP propagation and "bestpath selection" are used. At the
headend of a specific policy, this will result in one or more headend of a specific policy, this will result in one or more
candidate paths being installed into the "BGP table". These paths candidate paths being installed into the "BGP table". These paths
are then passed to the SRTE process. The SRTE process may compare are then passed to the SRPM. The SRPM may compare them to candidate
them to candidate paths learned via other mechanisms, and will choose paths learned via other mechanisms, and will choose one or more paths
one or more paths to be installed in the data plane. BGP itself does to be installed in the data plane. BGP itself does not install SR
not install SRTE candidate paths into the data plane. 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 specify candidate paths of that policy. and the attributes encode the segment lists and other details of that
SR Policy.
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
skipping to change at page 5, line 11 skipping to change at page 5, line 15
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
identifies an SR Policy. identifies an SR Policy.
o A set of new TLVs to be inserted into the Tunnel Encapsulation o A new Tunnel Type identifier for SR Policy, and a set of sub-TLVs
Attribute (as defined in [I-D.ietf-idr-tunnel-encaps]) specifying to be inserted into the Tunnel Encapsulation Attribute (as defined
candidate paths of the SR policy, as well as other information in [I-D.ietf-idr-tunnel-encaps]) specifying segment lists of the
about the SR policy. SR Policy, as well as other information about the SR Policy.
o One or more IPv4 address format route-target extended community o One or more IPv4 address format route-target extended community
([RFC4360]) attached to the SR Policy advertisement and that ([RFC4360]) attached to the SR Policy advertisement and that
indicates the intended head-end of such SR Policy advertisement. indicates the intended head-end of such SR Policy advertisement.
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.filsfils-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", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
2. SR TE Policy Encoding 2. SR Policy Encoding
2.1. SR TE 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, (codepoint 73 assigned by
IANA (see Section 8) from the "Subsequent Address Family Identifiers IANA (see Section 8) from the "Subsequent Address Family Identifiers
(SAFI) Parameters" registry). (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
+------------------+ +------------------+
skipping to change at page 6, line 29 skipping to change at page 6, line 29
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 occurrences of the
same SR Policy. 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
[I-D.filsfils-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 Payload prefixes on SR Policy as described in
([I-D.filsfils-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 (assigned by IANA from
the "Subsequent Address Family Identifiers (SAFI) Parameters" the "Subsequent Address Family Identifiers (SAFI) Parameters"
registry). 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
skipping to change at page 7, line 24 skipping to change at page 7, line 24
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 does not modify the BGP propagation or bestpath
selection rules. selection rules.
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 SRTE process as different both advertisements are passed to the SRPM as different candidate
candidate paths. In addition, the originator information paths. In addition, the originator information corresponding to the
corresponding to the each candidate path, as described in section 2.4 each candidate path, as described in section 2.4 in
([I-D.filsfils-spring-segment-routing-policy]), is passed to the SRTE [I-D.ietf-spring-segment-routing-policy], is passed to the SRPM.
process.
2.2. SR TE 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 originally defined in [I-D.ietf-idr-tunnel-encaps] using a
new Tunnel-Type TLV (codepoint is 15, assigned by IANA (see new Tunnel-Type TLV (codepoint is 15, assigned by IANA (see
Section 8) from the "BGP Tunnel Encapsulation Attribute Tunnel Types" Section 8) from the "BGP Tunnel Encapsulation Attribute Tunnel Types"
registry). 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>
skipping to change at page 9, line 10 skipping to change at page 9, line 10
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 are not used for SR Policy
encodings and therefore their value is irrelevant in the context of encodings and therefore their value is irrelevant in the context of
the SR Policy SAFI NLRI. If present, the Remote Endpoint sub-TLV and the SR Policy SAFI NLRI. If present, the Remote Endpoint sub-TLV and
the Color sub-TLV MUST be ignored by the BGP speaker. the Color sub-TLV MUST be ignored by the BGP speaker.
2.4. SR TE Policy Sub-TLVs 2.4. SR Policy Sub-TLVs
This section defines the SR Policy sub-TLVs. This section defines the SR Policy sub-TLVs.
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 sub-TLVs are assigned from the "BGP Tunnel
Encapsulation Attribute Sub-TLVs" registry. Encapsulation Attribute Sub-TLVs" registry.
Weight and Segment sub-TLVs are assigned from a new registry defined Weight and Segment sub-TLVs are assigned from a new registry defined
in this document and called: "SR Policy List Sub-TLVs". See in this document and called: "SR Policy List Sub-TLVs". See
Section 8 for the details of the registry. Section 8 for the details of the registry.
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 does not have any effect on the BGP bestpath
selection or propagation procedures. The contents of this sub-TLV selection or propagation procedures. The contents of this sub-TLV
are used by the SRTE process as described in section 2.9 in are used by the SRPM as described in section 2.7 in
([I-D.filsfils-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. If the Preference sub-TLV appears more than
once, the update is considered malformed and the "treat-as-withdraw" once, the update is considered malformed and the "treat-as-withdraw"
strategy of [RFC7606] is applied. 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
skipping to change at page 10, line 10 skipping to change at page 10, line 10
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 unset 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. SR TE 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 not used by BGP. The contents of this
sub-TLV are used by the SRTE process as described in section 6 in sub-TLV are used by the SRPM as described in section 6 in
([I-D.filsfils-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. If the Binding SID sub-TLV appears more than
once, the update is considered malformed and the "treat-as-withdraw" once, the update is considered malformed and the "treat-as-withdraw"
strategy of [RFC7606] is applied. 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
skipping to change at page 10, line 50 skipping to change at page 10, line 50
defined in this document Section 8.5): defined in this document Section 8.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 SRTE process as described in section 6.2.3 in It is used by SRPM as described in section 6.2.3 in
([I-D.filsfils-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 SRTE process as described in section 8.2 in is used by SRPM as described in section 8.2 in
([I-D.filsfils-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 unset 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.
o If length is 6 then the Binding SID contains a 4-octet SID. Below o If length is 6 then the Binding SID contains a 4-octet SID. Below
skipping to change at page 11, line 33 skipping to change at page 11, line 33
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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 IPv6 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.filsfils-spring-segment-routing-policy]). The Segment List [I-D.ietf-spring-segment-routing-policy]. The Segment List sub-TLV
sub-TLV includes the elements of the paths (i.e., segments) as well includes the elements of the paths (i.e., segments) as well as an
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. 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
skipping to change at page 12, line 30 skipping to change at page 12, line 30
o RESERVED: 1 octet of reserved bits. SHOULD be unset on o RESERVED: 1 octet of reserved bits. SHOULD be unset on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o sub-TLVs: o sub-TLVs:
* 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 SRTE process as described in section 5 completely within the scope of SRPM as described in section 5 in
in ([I-D.filsfils-spring-segment-routing-policy]). [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 The Weight sub-TLV specifies the weight associated to a given segment
candidate path (i.e., a given segment list). The contents of this list. The contents of this sub-TLV are used only by the SRPM as
sub-TLV are used only by the SRTE process as described in section described in section 2.11 in
2.11 in ([I-D.filsfils-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. If the Weight sub-TLV appears more
than once, the update is considered malformed and the "treat-as- than once, the update is considered malformed and the "treat-as-
withdraw" strategy of [RFC7606] is applied. 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
skipping to change at page 13, line 37 skipping to change at page 13, line 37
The Segment sub-TLV describes a single segment in a segment list The Segment sub-TLV describes a single segment in a segment list
(i.e., a single element of the explicit path). Multiple Segment sub- (i.e., a single element of the explicit path). Multiple Segment sub-
TLVs constitute an explicit path of the SR Policy. TLVs constitute an explicit path of the SR Policy.
The Segment sub-TLV is optional and MAY appear multiple times in the The Segment sub-TLV is optional and MAY appear multiple times in the
Segment List sub-TLV. Segment List sub-TLV.
The Segment sub-TLV does not have any effect on the BGP bestpath The Segment sub-TLV does not have any effect on the BGP bestpath
selection or propagation procedures. The contents of this sub-TLV selection or propagation procedures. The contents of this sub-TLV
are used only by the SRTE process as described in section 4 in are used only by the SRPM as described in section 4 in
([I-D.filsfils-spring-segment-routing-policy]). [I-D.ietf-spring-segment-routing-policy].
[I-D.filsfils-spring-segment-routing-policy] defines several types of [I-D.ietf-spring-segment-routing-policy] defines several types of
Segments: Segments:
Type 1: SID only, in the form of MPLS Label Type 1: SID only, in the form of MPLS Label
Type 2: SID only, in the form of IPv6 address Type 2: SID only, in the form of IPv6 address
Type 3: IPv4 Node Address with optional SID Type 3: IPv4 Node Address with optional SID
Type 4: IPv6 Node Address with optional SID for SR MPLS Type 4: IPv6 Node Address with optional SID for SR MPLS
Type 5: IPv4 Address + index with optional SID Type 5: IPv4 Address + index with optional SID
Type 6: IPv4 Local and Remote addresses 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 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 8: IPv6 Local and Remote addresses with optional SID for SR MPLS
skipping to change at page 16, line 33 skipping to change at page 16, line 33
o Type: 3 (to be assigned by IANA from the registry "SR Policy List o Type: 3 (to be assigned by IANA from the registry "SR Policy List
Sub-TLVs" defined in this document). Sub-TLVs" defined in this document).
o Length is 6 or 10. o Length is 6 or 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 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 [I-D.ietf-spring-segment-routing], when A-Flag as
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by defined in Section 2.4.3.2.12 is present. SR Algorithm is used by
SRTE process as described in section 4 in SRPM as described in section 4 in
([I-D.filsfils-spring-segment-routing-policy]). When A-Flag is [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
not encoded, this field SHOULD be unset on transmission and MUST encoded, this field SHOULD be unset on transmission and MUST be
be ignored on receipt. 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 SID: 4 octet MPLS label.
The following applies to the Type-3 Segment sub-TLV: The following applies to the Type-3 Segment sub-TLV:
o The IPv4 Node Address MUST be present. o The IPv4 Node Address MUST be present.
o The SID is optional and specifies a 4 octet MPLS SID containing o The SID is optional and specifies a 4 octet MPLS SID containing
skipping to change at page 17, line 33 skipping to change at page 17, line 33
o Type: 4 (to be assigned by IANA from the registry "SR Policy List o Type: 4 (to be assigned by IANA from the registry "SR Policy List
Sub-TLVs" defined in this document). Sub-TLVs" defined in this document).
o Length is 18 or 22. o Length is 18 or 22.
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 [I-D.ietf-spring-segment-routing], when A-Flag as
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by defined in Section 2.4.3.2.12 is present. SR Algorithm is used by
SRTE process as described in section 4 in SRPM as described in section 4 in
([I-D.filsfils-spring-segment-routing-policy]). When A-Flag is [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
not encoded, this field SHOULD be unset on transmission and MUST encoded, this field SHOULD be unset on transmission and MUST be
be ignored on receipt. 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 SID: 4 octet MPLS label.
The following applies to the Type-4 Segment sub-TLV: The following applies to the Type-4 Segment sub-TLV:
o The IPv6 Node Address MUST be present. o The IPv6 Node Address MUST be present.
o The SID is optional and specifies a 4 octet MPLS SID containing o The SID is optional and specifies a 4 octet MPLS SID containing
skipping to change at page 23, line 33 skipping to change at page 23, line 33
o Type: 10 (to be assigned by IANA from the registry "SR Policy List o Type: 10 (to be assigned by IANA from the registry "SR Policy List
Sub-TLVs" defined in this document). Sub-TLVs" defined in this document).
o Length is 18 or 34. o Length is 18 or 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 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 [I-D.ietf-spring-segment-routing], when A-Flag as
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by defined in Section 2.4.3.2.12 is present. SR Algorithm is used by
SRTE process as described in section 4 in SRPM as described in section 4 in
([I-D.filsfils-spring-segment-routing-policy]). When A-Flag is [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
not encoded, this field SHOULD be unset on transmission and MUST encoded, this field SHOULD be unset on transmission and MUST be
be ignored on receipt. 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 SID: 16 octet IPv6 address.
The following applies to the Type-9 Segment sub-TLV: The following applies to the Type-9 Segment sub-TLV:
o The IPv6 Node Address MUST be present. o The IPv6 Node Address MUST be present.
o The SID is optional and specifies a SRv6 SID in the form of 16 o The SID is optional and specifies an SRv6 SID in the form of 16
octet IPv6 address. octet IPv6 address.
o If length is 18, then only the IPv6 Node Address is present. 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 o If length is 34, then the IPv6 Node Address and the SRv6 SID are
present. present.
2.4.3.2.10. Type 10: IPv6 Address + Interface ID for local and remote 2.4.3.2.10. Type 10: IPv6 Address + Interface ID for local and remote
pair for SRv6 with optional SID pair for SRv6 with optional SID
skipping to change at page 25, line 15 skipping to change at page 25, line 15
The following applies to the Type-10 Segment sub-TLV: The following applies to the Type-10 Segment sub-TLV:
o The Local Interface ID and the Local IPv6 Node Addresses MUST be o The Local Interface ID and the Local IPv6 Node Addresses MUST be
present. present.
o The Remote Interface ID and Remote Node Address pair is optional. o The Remote Interface ID and Remote Node Address pair is optional.
If Remote Interface ID is present, the Remote Node Address MUST be If Remote Interface ID is present, the Remote Node Address MUST be
present as well. Similarly, if Remote Node Address is present, present as well. Similarly, if Remote Node Address is present,
the Remote Interface ID MUST be present as well. the Remote Interface ID MUST be present as well.
o The SID is optional and specifies a SRv6 SID in the form of 16 o The SID is optional and specifies an SRv6 SID in the form of 16
octet IPv6 address. octet IPv6 address.
o If length is 22, then the Local Interface ID, Local IPv6 Node o If length is 22, then the Local Interface ID, Local IPv6 Node
Address, are present. Address, are present.
o If length is 38, then the Local Interface ID, Local IPv6 Node o If length is 38, then the Local Interface ID, Local IPv6 Node
Address and the SRv6 SID are present. Address and the SRv6 SID are present.
o If length is 42, then the Local Interface ID, Local IPv6 Node o If length is 42, then the Local Interface ID, Local IPv6 Node
Address, Remote Interface ID, and the Remote IPv6 Node Address are Address, Remote Interface ID, and the Remote IPv6 Node Address are
skipping to change at page 26, line 27 skipping to change at page 26, line 27
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 SID: 16 octet IPv6 address.
The following applies to the Type-11 Segment sub-TLV: The following applies to the Type-11 Segment sub-TLV:
o The Local IPv6 Node Address MUST be present. o The Local IPv6 Node Address MUST be present.
o The Remote IPv6 Node Address MUST be present. o The Remote IPv6 Node Address MUST be present.
o The SID is optional and specifies a SRv6 SID in the form of 16 o The SID is optional and specifies an SRv6 SID in the form of 16
octet IPv6 address. octet IPv6 address.
o If length is 34, then the Local IPv6 Node Address and the Remote o If length is 34, then the Local IPv6 Node Address and the Remote
IPv6 Node Address are present. IPv6 Node Address are present.
o If length is 50, then the Local IPv6 Node Address, the Remote IPv6 o If length is 50, then the Local IPv6 Node Address, the Remote IPv6
Node Address and the SRv6 SID are present. Node Address and the SRv6 SID are present.
2.4.3.2.12. Segment Flags 2.4.3.2.12. Segment Flags
skipping to change at page 26, line 49 skipping to change at page 26, line 49
"Flags" field (codes to be assigned by IANA from the registry "SR "Flags" field (codes to be assigned by IANA from the registry "SR
Policy Segment Flags" defined in this document Section 8.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 encodes the "Segment Validation" behavior. It V-Flag: This flag encodes the "Segment Verification" behavior. It
is used by SRTE process as described in section 5 in is used by SRPM as described in section 5 in
([I-D.filsfils-spring-segment-routing-policy]). [I-D.ietf-spring-segment-routing-policy].
A-Flag: This flag indicates the presence of SR Algorithm id in the A-Flag: This flag indicates the presence of SR Algorithm id in the
"SR Algorithm" field applicable to various Segment Types. SR "SR Algorithm" field applicable to various Segment Types. SR
Algorithm is used by SRTE process as described in section 4 in Algorithm is used by SRPM as described in section 4 in
([I-D.filsfils-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.
The following applies to the Segment Flags: The following applies to the Segment Flags:
o V-Flag is applicable to all Segment Types. o V-Flag is applicable to all Segment Types.
o A-Flag is applicable to Segment Types 3, 4 and 9. If A-Flag o A-Flag is applicable to Segment Types 3, 4 and 9. If A-Flag
appears with any other Segment Type, it MUST be ignored. appears with any other Segment Type, it MUST be ignored.
skipping to change at page 27, line 34 skipping to change at page 27, line 34
more labels onto that stack. more labels onto that stack.
The Explicit NULL Label Policy sub-TLV is used to indicate whether an The Explicit NULL Label Policy sub-TLV is used to indicate whether an
Explicit NULL Label [RFC3032] must be pushed on an unlabeled IP Explicit NULL Label [RFC3032] must be pushed on an unlabeled IP
packet before any other labels. packet before any other labels.
If an Explicit NULL Label Policy Sub-TLV is not present, the decision If an Explicit NULL Label Policy Sub-TLV is not present, the decision
of whether to push an Explicit NULL label on a given packet is a of whether to push an Explicit NULL label on a given packet is a
matter of local policy. matter of local policy.
The contents of this sub-TLV are used by the SRTE process as The contents of this sub-TLV are used by the SRPM as described in
described in section 4.1 in section 4.1 in [I-D.ietf-spring-segment-routing-policy].
[I-D.filsfils-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:
skipping to change at page 28, line 41 skipping to change at page 28, line 41
The policy signaled in this Sub-TLV MAY be overridden by local The policy signaled in this Sub-TLV MAY be overridden by local
policy. policy.
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 Priority sub-TLV does not have any effect on the BGP bestpath The Priority sub-TLV does not have any effect on the BGP bestpath
selection or propagation procedures. The contents of this sub-TLV selection or propagation procedures. The contents of this sub-TLV
are used by the SRTE process as described in section 2.11 in are used by the SRPM as described in section 2.11 in
([I-D.filsfils-spring-segment-routing-policy]). [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. If the Priority sub-TLV appears more than
once, the update is considered malformed and the "treat-as-withdraw" once, the update is considered malformed and the "treat-as-withdraw"
strategy of [RFC7606] is applied. 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 |
skipping to change at page 29, line 30 skipping to change at page 29, line 30
RESERVED: 1 octet of reserved bits. SHOULD be unset on RESERVED: 1 octet of reserved bits. SHOULD be unset 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.filsfils-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. See Section 8 for
details of codepoints allocation. 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. If the Policy Name sub-TLV appears more
than once, the update is considered malformed and the "treat-as- than once, the update is considered malformed and the "treat-as-
withdraw" strategy of [RFC7606] is applied. 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 |
skipping to change at page 30, line 24 skipping to change at page 30, line 24
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. Extended Color 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 SRTE policy, the RESERVED field (as defined in the traffic into an SR Policy, the RESERVED field (as defined in
[I-D.ietf-idr-tunnel-encaps] is changed as follows: [I-D.ietf-idr-tunnel-encaps] is changed 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.filsfils-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 SRTE 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 a 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 outside the scope of BGP. The details of SR Policy installation and
([I-D.filsfils-spring-segment-routing-policy]). use can be referred from [I-D.ietf-spring-segment-routing-policy].
4.1. Configuration and Advertisement of SR TE Policies 4.1. Configuration and 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 configured into a
controller. controller.
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 to 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 allow their propagation
skipping to change at page 31, line 42 skipping to change at page 31, line 42
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 document 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 SRTE NO_ADVERTISE community, the update MUST NOT be sent to the SRPM.
process. Furthermore, it SHOULD be considered to be malformed, Furthermore, it SHOULD be considered to be malformed, and the
and the "treat-as-withdraw" strategy of [RFC7606] is applied. "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 is 15, assigned by IANA (see Section 8) from the "BGP codepoint is 15, assigned by IANA (see Section 8) from the "BGP
Tunnel Encapsulation Attribute Tunnel Types" registry). 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. The
route MUST NOT be passed to the SRTE process, and the "treat-as- route MUST NOT be passed to the SRPM, and the "treat-as-withdraw"
withdraw" strategy of [RFC7606] is applied. strategy of [RFC7606] is applied.
A unacceptable SR Policy update that has a valid NLRI portion with A unacceptable SR Policy update that has a valid NLRI portion with
invalid attribute portion MUST be considered as a withdraw of the SR invalid attribute portion MUST be considered as a withdraw of the SR
Policy. 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- If one or more route-targets are present, then at least one route-
target MUST match one of the BGP Identifiers of the receiver in order target MUST match one of the BGP Identifiers of the receiver in order
for the update to be considered usable. The BGP Identifier is for the update to be considered usable. The BGP Identifier is
defined in [RFC4271] as a 4 octet IPv4 address. Therefore the route- defined in [RFC4271] as a 4 octet IPv4 address. Therefore the route-
target extended community MUST be of the same format. target extended community MUST be of the same format.
If one or more route-targets are present and no one matches any of If one or more route-targets are present and no one matches any of
the local BGP Identifiers, then, while the SR Policy NLRI is the local BGP Identifiers, then, while the SR Policy NLRI is
acceptable, it is not usable. It has to be noted that if the acceptable, it is not usable on the receiver node. It has to be
receiver has been explicitly configured to do so, it MAY propagate noted that if the receiver has been explicitly configured to do so,
the SR Policy NLRI to its neighbors as defined in Section 4.2.4. it MAY propagate the SR Policy NLRI to its neighbors as defined in
Section 4.2.4.
Usable SR Policy NLRIs are sent to the Segment Routing Traffic The SR Policy candidate paths encoded by the usable SR Policy NLRIs
Engineering (SRTE) process. The description of the SRTE process is are sent to the SRPM.
outside the scope of this document and it's described in
[I-D.filsfils-spring-segment-routing-policy].
4.2.3. Passing a usable SR Policy NLRI to the SRTE Process 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 has determined that the SR Policy NLRI is usable, BGP passes
the path to the SRTE process described in the SR Policy candidate path to the SRPM. Note that, along with the
([I-D.filsfils-spring-segment-routing-policy]). Note that, along candidate path details, BGP also passes the originator information
with the path details, BGP also passes the originator information for for breaking ties in the path-selection process as described in
breaking ties in the path-selection process as described in section section 2.4 in [I-D.ietf-spring-segment-routing-policy].
2.4 in [I-D.filsfils-spring-segment-routing-policy].
The SRTE process applies the rules defined in section 2 The SRPM applies the rules defined in section 2 in
[I-D.filsfils-spring-segment-routing-policy] to determine whether a [I-D.ietf-spring-segment-routing-policy] to determine whether the SR
path is valid and to select the best path among the valid paths. Policy candidate path is valid and to select the best candidate path
among the valid SR Policy candidate paths.
4.2.4. Propagation of an SR Policy 4.2.4. Propagation of an SR Policy
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.
However, a node MAY be explicitly configured to advertise a received However, a node MAY be explicitly configured to advertise a received
SR Policy NLRI to neighbors according to normal BGP rules (i.e., EBGP SR Policy NLRI to neighbors according to normal BGP rules (i.e., EBGP
propagation by an ASBR or iBGP propagation by a Route-Reflector). propagation by an ASBR or iBGP propagation by a Route-Reflector).
skipping to change at page 37, line 15 skipping to change at page 37, line 15
8.6. New Registry: SR Policy Segment Flags 8.6. New Registry: SR Policy Segment Flags
This document defines a new registry called "SR Policy Segment This document defines a new registry called "SR Policy Segment
Flags". The allocation policy of this registry is "First Come First Flags". The allocation policy of this registry is "First Come First
Served (FCFS)" according to [RFC8126]. Served (FCFS)" according to [RFC8126].
Following Flags are defined: Following Flags are defined:
Bit Description Reference Bit Description Reference
--------------------------------------------------------------------------------- ---------------------------------------------------------------------------------
0 Segment Validation Flag (V-Flag) This document 0 Segment Verification Flag (V-Flag) This document
1 SR Algorithm Flag (A-Flag) This document 1 SR Algorithm Flag (A-Flag) This document
2-7 Unassigned 2-7 Unassigned
9. Security Considerations 9. Security Considerations
TBD. TBD.
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.filsfils-spring-segment-routing-policy]
Filsfils, C., Sivabalan, S., Raza, K., Liste, J., Clad,
F., Talaulikar, K., Ali, Z., Hegde, S.,
daniel.voyer@bell.ca, d., Lin, S., bogdanov@google.com,
b., Krol, P., Horneffer, M., Steinberg, D., Decraene, B.,
Litkowski, S., and P. Mattes, "Segment Routing Policy for
Traffic Engineering", draft-filsfils-spring-segment-
routing-policy-05 (work in progress), February 2018.
[I-D.ietf-idr-tunnel-encaps] [I-D.ietf-idr-tunnel-encaps]
Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel
Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-09 Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-09
(work in progress), February 2018. (work in progress), February 2018.
[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-11 (work in progress), draft-ietf-pce-segment-routing-12 (work in progress), June
November 2017. 2018.
[I-D.ietf-spring-segment-routing] [I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing Litkowski, S., and R. Shakir, "Segment Routing
Architecture", draft-ietf-spring-segment-routing-15 (work Architecture", draft-ietf-spring-segment-routing-15 (work
in progress), January 2018. in progress), January 2018.
[I-D.ietf-spring-segment-routing-policy]
Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d.,
bogdanov@google.com, b., and P. Mattes, "Segment Routing
Policy Architecture", draft-ietf-spring-segment-routing-
policy-01 (work in progress), June 2018.
[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 38, line 46 skipping to change at page 38, line 46
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>.
10.2. Informational References 10.2. Informational References
[I-D.filsfils-spring-sr-policy-considerations]
Filsfils, C., Talaulikar, K., Krol, P., Horneffer, M., and
P. Mattes, "SR Policy Implementation and Deployment
Considerations", draft-filsfils-spring-sr-policy-
considerations-01 (work in progress), June 2018.
[I-D.ietf-6man-segment-routing-header] [I-D.ietf-6man-segment-routing-header]
Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and
d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header
(SRH)", draft-ietf-6man-segment-routing-header-12 (work in (SRH)", draft-ietf-6man-segment-routing-header-14 (work in
progress), April 2018. progress), June 2018.
[I-D.ietf-idr-flowspec-redirect-ip] [I-D.ietf-idr-flowspec-redirect-ip]
Uttaro, J., Haas, J., Texier, M., Andy, A., Ray, S., Uttaro, J., Haas, J., Texier, M., Andy, A., Ray, S.,
Simpson, A., and W. Henderickx, "BGP Flow-Spec Redirect to Simpson, A., and W. Henderickx, "BGP Flow-Spec Redirect to
IP Action", draft-ietf-idr-flowspec-redirect-ip-02 (work IP Action", draft-ietf-idr-flowspec-redirect-ip-02 (work
in progress), February 2015. 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 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running
Code: The Implementation Status Section", BCP 205, Code: The Implementation Status Section", BCP 205,
RFC 7942, DOI 10.17487/RFC7942, July 2016, RFC 7942, DOI 10.17487/RFC7942, July 2016,
<https://www.rfc-editor.org/info/rfc7942>. <https://www.rfc-editor.org/info/rfc7942>.
Authors' Addresses Authors' Addresses
Stefano Previdi (editor) Stefano Previdi (editor)
Cisco Systems, Inc. Individual
IT IT
Email: stefano@previdi.net Email: stefano@previdi.net
Clarence Filsfils Clarence Filsfils
Cisco Systems, Inc. Cisco Systems, Inc.
Brussels Brussels
BE BE
Email: cfilsfil@cisco.com Email: cfilsfil@cisco.com
 End of changes. 73 change blocks. 
148 lines changed or deleted 154 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/