rfc9830xml2.original.xml   rfc9830.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc comments="yes"?> <!DOCTYPE rfc [
<?rfc compact="yes"?> <!ENTITY nbsp "&#160;">
<?rfc inline="yes"?> <!ENTITY zwsp "&#8203;">
<?rfc sortrefs="yes"?> <!ENTITY nbhy "&#8209;">
<?rfc subcompact="no"?> <!ENTITY wj "&#8288;">
<?rfc symrefs="yes"?> ]>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie
<?rfc tocindent="yes"?> tf-idr-sr-policy-safi-13" number="9830" ipr="trust200902" consensus="true" updat
<?rfc tocompact="yes"?> es="9012" obsoletes="" submissionType="IETF" xml:lang="en" sortRefs="true" symRe
<rfc category="std" docName="draft-ietf-idr-sr-policy-safi-13" fs="true" tocInclude="true" tocDepth="3" version="3">
ipr="trust200902" updates="9012">
<front> <front>
<title abbrev="Segment Routing Policies in BGP">Advertising Segment <title abbrev="Segment Routing Policies in BGP">Advertising Segment
Routing Policies in BGP</title> Routing Policies in BGP</title>
<seriesInfo name="RFC" value="9830"/>
<author fullname="Stefano Previdi" initials="S." surname="Previdi"> <author fullname="Stefano Previdi" initials="S." surname="Previdi">
<organization>Huawei Technologies</organization> <organization>Huawei Technologies</organization>
<address> <address>
<postal> <postal>
<street/> <country>Italy</country>
<city/>
<code/>
<country>IT</country>
</postal> </postal>
<email>stefano@previdi.net</email> <email>stefano@previdi.net</email>
</address> </address>
</author> </author>
<author fullname="Clarence Filsfils" initials="C." surname="Filsfils"> <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
<organization>Cisco Systems</organization> <organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street/>
<city>Brussels</city> <city>Brussels</city>
<country>Belgium</country>
<region/>
<code/>
<country>BE</country>
</postal> </postal>
<email>cfilsfil@cisco.com</email> <email>cfilsfil@cisco.com</email>
</address> </address>
</author> </author>
<author fullname="Ketan Talaulikar" initials="K." role="editor" surname="Tal
<author fullname="Ketan Talaulikar" initials="K." role="editor" aulikar">
surname="Talaulikar">
<organization>Cisco Systems</organization> <organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street/>
<city/>
<region/>
<code/>
<country>India</country> <country>India</country>
</postal> </postal>
<email>ketant.ietf@gmail.com</email> <email>ketant.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Paul Mattes" initials="P." surname="Mattes"> <author fullname="Paul Mattes" initials="P." surname="Mattes">
<organization>Microsoft</organization> <organization>Microsoft</organization>
<address> <address>
<postal> <postal>
<street>One Microsoft Way</street> <street>One Microsoft Way</street>
<city>Redmond</city> <city>Redmond</city>
<region>WA</region> <region>WA</region>
<code>98052</code> <code>98052</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>pamattes@microsoft.com</email> <email>pamattes@microsoft.com</email>
</address> </address>
</author> </author>
<author fullname="Dhanendra Jain" initials="D." surname="Jain"> <author fullname="Dhanendra Jain" initials="D." surname="Jain">
<organization>Google</organization> <organization>Google</organization>
<address> <address>
<email>dhanendra.ietf@gmail.com</email> <email>dhanendra.ietf@gmail.com</email>
</address> </address>
</author> </author>
<date month="July" year="2025"/>
<area>RTG</area>
<workgroup>idr</workgroup>
<date/> <!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->
<keyword>example</keyword>
<abstract> <abstract>
<t>A Segment Routing (SR) Policy is an ordered list of segments (also <t>A Segment Routing (SR) Policy is an ordered list of segments (also
referred to as instructions) that define a source-routed policy. An SR referred to as "instructions") that define a source-routed policy. An SR
Policy consists of one or more candidate paths, each comprising one or Policy consists of one or more candidate paths, each comprising one or
more segment lists. A headend can be provisioned with these candidate more segment lists. A headend can be provisioned with these candidate
paths using various mechanisms, such as CLI, NETCONF, PCEP, or BGP.</t> paths using various mechanisms such as Command-Line Interface (CLI), Netwo
rk Configuration Protocol (NETCONF), Path Computation Element Communication Prot
ocol (PCEP), or BGP.</t>
<t>This document specifies how BGP can be used to distribute SR Policy <t>This document specifies how BGP can be used to distribute SR Policy
candidate paths. It introduces a BGP SAFI for advertising a candidate candidate paths. It introduces a BGP SAFI for advertising a candidate
path of an SR Policy and defines sub-TLVs for the Tunnel Encapsulation path of an SR Policy and defines sub-TLVs for the Tunnel Encapsulation
Attribute to signal information related to these candidate paths.</t> Attribute to signal information related to these candidate paths.</t>
<t>Furthermore, this document updates RFC 9012 by extending the Color
<t>Furthermore, this document updates RFC9012 by extending the Color
Extended Community to support additional steering modes over SR Extended Community to support additional steering modes over SR
Policy.</t> Policy.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="INTRO" title="Introduction"> <section anchor="INTRO" numbered="true" toc="default">
<t>Segment Routing (SR) <xref target="RFC8402"/> allows a headend node <name>Introduction</name>
<t>Segment Routing (SR) <xref target="RFC8402" format="default"/> allows a
headend node
to steer a packet flow along a specific path. Intermediate per-path to steer a packet flow along a specific path. Intermediate per-path
states are eliminated thanks to source routing.</t> states are eliminated thanks to source routing.</t>
<t>The headend node is said to steer a flow into an SR Policy <xref target
<t>The headend node is said to steer a flow into an SR Policy <xref ="RFC9256" format="default"/>.</t>
target="RFC9256"/>.</t>
<t>The packets steered into an SR Policy carry an ordered list of <t>The packets steered into an SR Policy carry an ordered list of
segments associated with that SR Policy.</t> segments associated with that SR Policy.</t>
<t><xref target="RFC9256" format="default"/> further details the concepts
<t><xref target="RFC9256"/> further details the concepts of SR Policy of SR Policy
and steering into an SR Policy. These apply equally to the SR-MPLS and and steering into an SR Policy. These apply equally to the SR-MPLS and
Segment Routing for IPv6 (SRv6) data-plane instantiations of Segment Segment Routing for IPv6 (SRv6) data plane instantiations of Segment
Routing using SR-MPLS and SRv6 Segment Identifiers (SIDs) as described Routing using SR-MPLS and SRv6 Segment Identifiers (SIDs) as described
in <xref target="RFC8402"/>. <xref target="RFC8660"/> describes the in <xref target="RFC8402" format="default"/>. <xref target="RFC8660" forma t="default"/> describes the
representation and processing of this ordered list of segments as an representation and processing of this ordered list of segments as an
MPLS label stack for SR-MPLS. While <xref target="RFC8754"/> and <xref MPLS label stack for SR-MPLS. <xref target="RFC8754" format="default"/> an
target="RFC8986"/> describe the same for SRv6 with the use of the d <xref target="RFC8986" format="default"/> describe the same for SRv6 with the
use of the
Segment Routing Header (SRH).</t> Segment Routing Header (SRH).</t>
<t>The functionality related to SR Policy described in <xref target="RFC92
<t>The SR Policy related functionality described in <xref 56" format="default"/> can be conceptually viewed as being incorporated in
target="RFC9256"/> can be conceptually viewed as being incorporated in an SR Policy Module (SRPM). The following is a reminder of the high-level
an SR Policy Module (SRPM). Following is a reminder of the high-level functionality of SRPM: </t>
functionality of SRPM: <list style="symbols"> <ul spacing="normal">
<t>Learning multiple candidate paths (CP) for an SR Policy via <li>
<t>Learning multiple candidate paths (CPs) for an SR Policy via
various mechanisms (CLI, NETCONF, PCEP, or BGP).</t> various mechanisms (CLI, NETCONF, PCEP, or BGP).</t>
</li>
<li>
<t>Selection of the best candidate path for an SR Policy.</t> <t>Selection of the best candidate path for an SR Policy.</t>
</li>
<li>
<t>Associating a Binding SID (BSID) to the selected candidate path <t>Associating a Binding SID (BSID) to the selected candidate path
of an SR Policy.</t> of an SR Policy.</t>
</li>
<li>
<t>Installation of the selected candidate path and its BSID in the <t>Installation of the selected candidate path and its BSID in the
forwarding plane.</t> forwarding plane.</t>
</list></t> </li>
</ul>
<t>This document specifies the use of BGP to distribute one or more of <t>This document specifies the use of BGP to distribute one or more of
the candidate paths of an SR Policy to the headend of that policy. The the candidate paths of an SR Policy to the headend of that SR Policy. The
document describes the functionality provided by BGP and, as document describes the functionality provided by BGP and, as
appropriate, provides references for the functionality which is outside appropriate, provides references for the functionality, which is outside
the scope of BGP (i.e. resides within SRPM on the headend node).</t> the scope of BGP (i.e., resides within SRPM on the headend node).</t>
<t>This document specifies a way of representing SR Policy candidate <t>This document specifies a way of representing SR Policy candidate
paths in BGP UPDATE messages. BGP can then be used to propagate the SR paths in BGP UPDATE messages. BGP can then be used to propagate the SR
Policy candidate paths to the headend nodes in a network. The usual BGP Policy candidate paths to the headend nodes in a network. The usual BGP
rules for BGP propagation and best-path selection are used. At the rules for BGP propagation and best-path selection are used. At the
headend of a specific policy, this will result in one or more candidate headend of a specific policy, this will result in one or more candidate
paths being installed into the "BGP table". These paths are then passed paths being installed into the "BGP table". These paths are then passed
to the SRPM. The SRPM may compare them to candidate paths learned via to the SRPM. The SRPM may compare them to candidate paths learned via
other mechanisms and will choose one or more paths to be installed in other mechanisms and will choose one or more paths to be installed in
the data plane. BGP itself does not install SR Policy candidate paths the data plane. BGP itself does not install SR Policy candidate paths
into the data plane.</t> into the data plane.</t>
<t>This document introduces a BGP Subsequent Address Family Identifier (SA
<t>This document introduces a BGP subsequent address family (SAFI) for FI) for
IPv4 and IPv6 address families. In UPDATE messages of those AFI/SAFIs, IPv4 and IPv6 address families. In UPDATE messages of those AFI/SAFIs,
the Network Layer Reachability Information (NLRI) identifies an SR the Network Layer Reachability Information (NLRI) identifies an SR
Policy Candidate Path while the attributes encode the segment lists and Policy Candidate Path while the attributes encode the segment lists and
other details of that SR Policy Candidate Path.</t> other details of that SR Policy Candidate Path.</t>
<t>While, for simplicity, the text in this document states that BGP
<t>While for simplicity the text in this document states that BGP
advertises an SR Policy, it is to be understood that BGP advertises a advertises an SR Policy, it is to be understood that BGP advertises a
candidate path of an SR policy and that this SR Policy might have candidate path of an SR policy and that this SR Policy might have
several other candidate paths provided via BGP (via an NLRI with a several other candidate paths provided via BGP (via an NLRI with a
different distinguisher as defined in <xref target="SRPOLICYSAFI"/>), different distinguisher as defined in <xref target="SRPOLICYSAFI" format=" default"/>),
PCEP, NETCONF, or local policy configuration.</t> PCEP, NETCONF, or local policy configuration.</t>
<t>Typically, an SR Policy Controller <xref target="RFC9256" format="defau
<t>Typically, a SR Policy Controller <xref target="RFC9256"/> defines lt"/> defines
the set of policies and advertises them to policy headend routers the set of policies and advertises them to policy headend routers
(typically ingress routers). These policy advertisements use the BGP (typically ingress routers). These policy advertisements use the BGP
extensions defined in this document. In most cases, the policy extensions defined in this document. In most cases, the policy
advertisement is tailored for a specific policy headend; consequently, advertisement is tailored for a specific policy headend; consequently,
it may be transmitted over a direct BGP session (i.e., without it may be transmitted over a direct BGP session (i.e., without
intermediate BGP hops) to that headend and is not propagated any intermediate BGP hops) to that headend and is not propagated any
further. In such cases, the policy advertisements will not traverse any further. In such cases, the policy advertisements will not traverse any
Route Reflector (RR, <xref target="RFC4456"/>) (see <xref Route Reflector (RR) (see <xref target="RFC4456" format="default"/> and <x
target="PROPAGATE"/>).</t> ref target="PROPAGATE" format="default"/>).</t>
<!--[rfced] Should "itself" be "themselves"? If neither of the
following capture your intended meaning, please rephrase.
Original:
Alternatively, a BGP egress router may advertise SR Policies that
represent paths terminating on itself.
Perhaps A:
Alternatively, a BGP egress router may advertise SR Policies that
represent paths terminating on themselves.
Perhaps B:
Alternatively, a BGP egress router may advertise SR Policies that
represent paths that terminate on it.
-->
<t>Alternatively, a BGP egress router may advertise SR Policies that <t>Alternatively, a BGP egress router may advertise SR Policies that
represent paths terminating on itself. In such cases, the router can represent paths terminating on itself. In such cases, the router can
send these policies directly to each headend over a dedicated BGP send these policies directly to each headend over a dedicated BGP
session, without necessitating any further propagation of the session, without necessitating any further propagation of the
policy.</t> policy.</t>
<t>In some situations, it is undesirable for a controller or BGP egress <t>In some situations, it is undesirable for a controller or BGP egress
router to have a BGP session to each policy headend. In these router to have a BGP session to each policy headend. In these
situations, BGP Route Reflectors may be used to propagate the situations, BGP Route Reflectors may be used to propagate the
advertisements. In certain other deployments, it may be necessary for advertisements. In certain other deployments, it may be necessary for
the advertisement to propagate through a sequence of one or more ASes the advertisement to propagate through a sequence of one or more Autonomou
within an SR Domain (refer to <xref target="Security"/> for the s Systems (ASes)
within an SR Domain (refer to <xref target="Security" format="default"/> f
or the
associated security considerations). To make this possible, an attribute associated security considerations). To make this possible, an attribute
needs to be attached to the advertisement that enables a BGP speaker to needs to be attached to the advertisement that enables a BGP speaker to
determine whether it is intended to be a headend for the advertised determine whether it is intended to be a headend for the advertised
policy. This is done by attaching one or more Route Target Extended policy. This is done by attaching one or more Route Target Extended
Communities to the advertisement <xref target="RFC4360"/>.</t> Communities to the advertisement <xref target="RFC4360" format="default"/>
.</t>
<t>The BGP extensions for the advertisement of SR Policies include <t>The BGP extensions for the advertisement of SR Policies include
following components: <list style="symbols"> following components: </t>
<ul spacing="normal">
<li>
<t>A Subsequent Address Family Identifier (SAFI) whose NLRIs <t>A Subsequent Address Family Identifier (SAFI) whose NLRIs
identifies an SR Policy candidate path.</t> identify an SR Policy candidate path.</t>
</li>
<t>A Tunnel Type identifier for SR Policy, and a set of sub-TLVs to <li>
<t>A Tunnel Type identifier for SR Policy and a set of sub-TLVs to
be inserted into the Tunnel Encapsulation Attribute (as defined in be inserted into the Tunnel Encapsulation Attribute (as defined in
<xref target="RFC9012"/>) specifying segment lists of the SR Policy <xref target="RFC9012" format="default"/>) specifying segment lists of
candidate path, as well as other information about the SR the SR Policy
candidate path as well as other information about the SR
Policy.</t> Policy.</t>
</li>
<li>
<t>One or more IPv4 address-specific format route target extended <t>One or more IPv4 address-specific format route target extended
community (<xref target="RFC4360"/>) attached to the SR Policy community (<xref target="RFC4360" format="default"/>) attached to the
Candidate Path advertisement and that indicates the intended headend SR Policy
Candidate Path advertisement that indicates the intended headend
of such an SR Policy Candidate Path advertisement.</t> of such an SR Policy Candidate Path advertisement.</t>
</list></t> </li>
</ul>
<t>The SR Policy SAFI route updates utilize the Tunnel Encapsulation <t>The SR Policy SAFI route updates utilize the Tunnel Encapsulation
Attribute to signal an SR Policy, which itself functions as a tunnel. Attribute to signal an SR Policy, which itself functions as a tunnel.
This usage differs notably from the approach described in <xref This usage differs notably from the approach described in <xref target="RF
target="RFC9012"/>, where the Tunnel Encapsulation Attribute is C9012" format="default"/>, where the Tunnel Encapsulation Attribute is
associated with a BGP route update (e.g., for Internet or VPN routes) to associated with a BGP route update (e.g., for Internet or VPN routes) to
specify the tunnel used for forwarding traffic. This document does not specify the tunnel used for forwarding traffic. This document does not
modify or supersede the usage of the Tunnel Encapsulation Attribute for modify or supersede the usage of the Tunnel Encapsulation Attribute for
existing AFI/SAFIs as defined in <xref target="RFC9012"/>. Details existing AFIs/SAFIs as defined in <xref target="RFC9012" format="default"/ >. Details
regarding the processing of the Tunnel Encapsulation Attribute for the regarding the processing of the Tunnel Encapsulation Attribute for the
SR Policy SAFI are provided in <xref target="ENCAPSATTR"/> and <xref SR Policy SAFI are provided in Sections <xref target="ENCAPSATTR" format="
target="ENDCOLOR"/>.</t> counter"/> and <xref target="ENDCOLOR" format="counter"/>.</t>
<t>The northbound advertisement of the operational state of the SR <t>The northbound advertisement of the operational state of the SR
Policy Candidate Paths as part of BGP-LS <xref target="RFC9552"/> Policy Candidate Paths as part of BGP - Link State (BGP-LS) <xref target="
topology information is specified in <xref RFC9552" format="default"/>
target="I-D.ietf-idr-bgp-ls-sr-policy"/>.</t> topology information is specified in <xref target="I-D.ietf-idr-bgp-ls-sr-
policy" format="default"/>.</t>
<t>The signaling of Dynamic and Composite Candidate Paths (sections 5.2 <t>The signaling of Dynamic and Composite Candidate Paths (Sections
and 5.3 respectively of <xref target="RFC9256"/>) is outside the scope <xref target="RFC9256" sectionFormat="bare" section="5.2"/> and <xref
of this document.</t> target="RFC9256" sectionFormat="bare" section="5.3"/>, respectively, of
<xref target="RFC9256" format="default"/>) is outside the scope of this
<t>The Color Extended Community (as defined in <xref target="RFC9012"/>) document.</t>
is used to steer traffic into an SR Policy, as described in section 8.8 <t>The Color Extended Community (as defined in <xref target="RFC9012"
of <xref target="RFC9256"/>. The <xref target="EXTCOLOR"/> of this format="default"/>) is used to steer traffic into an SR Policy, as
document updates <xref target="RFC9012"/> with modifications to the described in <xref target="RFC9256" sectionFormat="of"
format of the Flags field of the Color Extended Community by using the section="8.8"/>. <xref target="EXTCOLOR" format="default"/> of this
two leftmost bits of that field.</t> document updates <xref target="RFC9012" format="default"/> with
modifications to the format of the Flags field of the Color Extended
<section title="Requirements Language"> Community by using the two leftmost bits of that field.</t>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", <section numbered="true" toc="default">
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and <name>Requirements Language</name>
"OPTIONAL" in this document are to be interpreted as described in BCP <t>
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
when, they appear in all capitals, as shown here.</t> IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>
RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section> </section>
</section> </section>
<section anchor="ENCODING" numbered="true" toc="default">
<name>SR Policy Encoding</name>
<section anchor="SRPOLICYSAFI" numbered="true" toc="default">
<name>SR Policy SAFI and NLRI</name>
<t>The SR Policy SAFI with
code point 73 is introduced in this document. The AFI used <bcp14>MUST</
bcp14> be IPv4(1) or IPv6(2).</t>
<t>The SR Policy SAFI uses the NLRI format defined as follows: </t>
<section anchor="ENCODING" title="SR Policy Encoding"> <figure>
<section anchor="SRPOLICYSAFI" title="SR Policy SAFI and NLRI"> <name>SR Policy SAFI Format</name>
<t>A SAFI is introduced in this document: the SR Policy SAFI with <artwork align="left" name="" type="" alt=""><![CDATA[
codepoint 73. The AFI used MUST be IPv4(1) or IPv6(2).</t>
<t>The SR Policy SAFI uses the NLRI format defined as follows: <figure
align="center">
<artwork align="left"><![CDATA[
+------------------+ +------------------+
| 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
+------------------+ +------------------+
]]></artwork>
</figure>
Figure 1: SR Policy SAFI Format <t>Where:</t>
<dl spacing="normal">
<dt>NLRI Length:</dt><dd>1 octet indicating the length expressed in bi
ts as
defined in <xref target="RFC4760" format="default"/>. When AFI = 1,
the value <bcp14>MUST</bcp14> be 96; when AFI = 2, the value
<bcp14>MUST</bcp14> be 192.</dd>
where: ]]></artwork> <!--[rfced] The following sentence is long and difficult to parse. In
</figure><list style="symbols"> particular, what is being made unique? How may we rephrase?
<t>NLRI Length: 1 octet indicating the length expressed in bits as
defined in <xref target="RFC4760"/>. When AFI = 1 the value MUST
be 96 and when AFI = 2 the value MUST be 192.</t>
<t>Distinguisher: 4-octet value uniquely identifying the policy in Original:
the context of &lt;color, endpoint&gt; tuple. The distinguisher The distinguisher has no semantic value and is solely used by the SR
has no semantic value and is solely used by the SR Policy Policy originator to make unique (from an NLRI perspective) both for
originator to make unique (from an NLRI perspective) both for multiple candidate paths of the same SR Policy as well as candidate
multiple candidate paths of the same SR Policy as well as paths of different SR Policies (i.e. with different segment lists)
candidate paths of different SR Policies (i.e. with different with the same Color and Endpoint but meant for different headends.
segment lists) with the same Color and Endpoint but meant for
different headends. The distinguisher is the discriminator of the
SR Policy candidate path as specified in section 2.5 of <xref
target="RFC9256"/>.</t>
<t>Policy Color: 4 octets that carry an unsigned non-zero integer -->
value indicating the color of the SR Policy as specified in
section 2.1 of <xref target="RFC9256"/>. The color is used to
match the color of the destination prefixes to steer traffic into
the SR Policy as specified in section 8 of <xref
target="RFC9256"/>.</t>
<t>Endpoint: value identifies the endpoint of a policy. The <dt>Distinguisher:</dt><dd>4-octet value uniquely identifying the poli
Endpoint may represent a single node or a set of nodes (e.g., an cy in
anycast address). The Endpoint is an IPv4 (4-octet) address or an the context of &lt;color, endpoint&gt; tuple. The distinguisher has
IPv6 (16-octet) address according to the AFI of the NLRI. The no semantic value and is solely used by the SR Policy originator to
address can be either a unicast or an unspecified address (0.0.0.0 make unique (from an NLRI perspective) both for multiple candidate
for IPv4, :: for IPv6), known as null endpoint, as specified in paths of the same SR Policy as well as candidate paths of different
section 2.1 of <xref target="RFC9256"/>.</t> SR Policies (i.e., with different segment lists) with the same Color
</list></t> and Endpoint but meant for different headends. The distinguisher is
the discriminator of the SR Policy candidate path as specified in
<xref target="RFC9256" sectionFormat="of" section="2.5"/>.</dd>
<dt>Policy Color:</dt><dd>4 octets that carry an unsigned non-zero int
eger
value indicating the color of the SR Policy as specified in <xref
target="RFC9256" sectionFormat="of" section="2.1"/>. The color is
used to match the color of the destination prefixes to steer traffic
into the SR Policy as specified in <xref target="RFC9256"
sectionFormat="of" section="8"/>.</dd>
<dt>Endpoint:</dt><dd>a value that identifies the endpoint of a policy
. The
Endpoint may 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 (16-octet) address according to the AFI of the NLRI. The
address can be either unicast or an unspecified address (0.0.0.0
for IPv4, :: for IPv6), known as a null endpoint as specified in
<xref target="RFC9256" sectionFormat="of" section="2.1"/>.</dd>
</dl>
<t>The color and endpoint are used to automate the steering of BGP <t>The color and endpoint are used to automate the steering of BGP
service routes on SR Policy as described in section 8 of <xref service routes on an SR Policy as described in <xref target="RFC9256" se
target="RFC9256"/>.</t> ctionFormat="of" section="8"/>.</t>
<t>The NLRI containing an SR Policy candidate path is carried in a BGP <t>The NLRI containing an SR Policy candidate path is carried in a BGP
UPDATE message <xref target="RFC4271"/> using BGP multi-protocol UPDATE message <xref target="RFC4271" format="default"/> using BGP multi
extensions <xref target="RFC4760"/> with an AFI of 1 or 2 (IPv4 or protocol
extensions <xref target="RFC4760" format="default"/> with an AFI of 1 or
2 (IPv4 or
IPv6) and with a SAFI of 73. The fault management and error handling IPv6) and with a SAFI of 73. The fault management and error handling
in the encoding of the NLRI is specified in <xref in the encoding of the NLRI are specified in <xref target="ERROR" format
target="ERROR"/>.</t> ="default"/>.</t>
<t>An update message that carries the MP_REACH_NLRI or MP_UNREACH_NLRI <t>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 <bcp14>MUST</bcp14> also carry the BGP
attributes. In addition, the BGP update message MAY also contain any mandatory
attributes. In addition, the BGP update message <bcp14>MAY</bcp14> also
contain any
of the BGP optional attributes.</t> of the BGP optional attributes.</t>
<t>The next-hop network address field in SR Policy SAFI (73) updates <t>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, may 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 length 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 is 4, then the next-hop is an IPv4 address. If the next-hop length is
16, then it is a global IPv6 address; if the next-hop length is 32, 16, then it is a global IPv6 address. If the next-hop length is 32,
then it has a global IPv6 address followed by a link-local IPv6 then it has a global IPv6 address followed by a link-local IPv6
address. The setting of the next-hop field and its attendant address. The setting of the next-hop field and its attendant
processing is governed by standard BGP procedures as described in processing is governed by standard BGP procedures as described in
section 3 of <xref target="RFC4760"/> and section 3 of <xref <xref target="RFC4760" sectionFormat="of" section="3"/> and <xref target
target="RFC2545"/>.</t> ="RFC2545" sectionFormat="of" section="3"/>.</t>
<t>It is important to note that at any BGP speaker receiving BGP <t>It is important to note that at any BGP speaker receiving BGP
updates with SR Policy NLRIs, the SRPM processes only the best path as updates with SR Policy NLRIs, the SRPM processes only the best path as
per the BGP best-path selection algorithm. In other words, this per the BGP best-path selection algorithm. In other words, this
document leverages the existing BGP propagation and best-path document leverages the existing BGP propagation and best-path
selection rules. Details of the procedures are described in <xref selection rules. Details of the procedures are described in <xref target
target="OPERATIONS"/>.</t> ="OPERATIONS" format="default"/>.</t>
<t>It has to be noted that if several candidate paths of the same SR <t>It has to be noted that if several candidate paths of the same SR
Policy (endpoint, color) are signaled via BGP to a headend, then it is Policy (endpoint, color) are signaled via BGP to a headend, then it is
RECOMMENDED that each NLRI uses a different distinguisher. If BGP has <bcp14>RECOMMENDED</bcp14> that each NLRI use a different distinguisher. If BGP has
installed into the BGP table two advertisements whose respective NLRIs installed into the BGP table two advertisements whose respective NLRIs
have the same color and endpoint, but different distinguishers, both have the same color and endpoint, but different distinguishers, both
advertisements are passed to the SRPM as different candidate paths advertisements are passed to the SRPM as different candidate paths
along with their respective originator information (i.e., ASN and BGP along with their respective originator information (i.e., Autonomous Sys
Router-ID) as described in section 2.4 of <xref target="RFC9256"/>. tem Number (ASN) and BGP
Router-ID) as described in <xref target="RFC9256" sectionFormat="of" sec
tion="2.4"/>.
The ASN would be the ASN of the origin and the BGP Router-ID is The ASN would be the ASN of the origin and the BGP Router-ID is
determined in the following order:<list style="symbols"> determined in the following order:</t>
<t>From the Route Origin Community <xref target="RFC4360"/> if <ul spacing="normal">
<li>
<t>From the Route Origin Community <xref target="RFC4360" format="de
fault"/> if
present and carrying an IP Address, or</t> present and carrying an IP Address, or</t>
</li>
<li>
<t>As the BGP Originator ID <xref target="RFC4456"/> if present, <!-- [rfced] We note that [RFC4456] uses the term "ORIGINATOR_ID"
rather than "Originator ID". Please review and let us know if any
updates are necessary. -->
<t>As the BGP Originator ID <xref target="RFC4456" format="default"/
> if present,
or</t> or</t>
</li>
<li>
<t>As the BGP Router-ID of the peer from which the update was <t>As the BGP Router-ID of the peer from which the update was
received as a last resort.</t> received as a last resort.</t>
</list></t> </li>
</ul>
<t>The Section 2.9 of <xref target="RFC9256"/> specifies the selection <t><xref target="RFC9256" sectionFormat="of" section="2.9"/> specifies t
he selection
of the active candidate path of the SR Policy by the SRPM based on the of the active candidate path of the SR Policy by the SRPM based on the
information provided to it by BGP.</t> information provided to it by BGP.</t>
</section> </section>
<section anchor="ENCAPSATTR" numbered="true" toc="default">
<name>SR Policy and Tunnel Encapsulation Attribute</name>
<section anchor="ENCAPSATTR"
title="SR Policy and Tunnel Encapsulation Attribute">
<t>The content of the SR Policy Candidate Path is encoded in the <t>The content of the SR Policy Candidate Path is encoded in the
Tunnel Encapsulation Attribute defined in <xref target="RFC9012"/> Tunnel Encapsulation Attribute defined in <xref target="RFC9012" format=
using a Tunnel-Type called SR Policy Type with codepoint 15. The use "default"/>
of SR Policy Tunnel-type is applicable only for the AFI/SAFI pairs of using a Tunnel-Type called the "SR Policy" type with code point 15. The
use
of the SR Policy Tunnel-type is applicable only for the AFI/SAFI pairs o
f
(1/73, 2/73). This document specifies the use of the Tunnel (1/73, 2/73). This document specifies the use of the Tunnel
Encapsulation Attribute with the SR Policy Tunnel-Type and the use of Encapsulation Attribute with the SR Policy Tunnel-Type and the use of
any other Tunnel-Type with the SR Policy SAFI MUST be considered any other Tunnel-Type with the SR Policy SAFI <bcp14>MUST</bcp14> be con
malformed and handled by the "Treat-as-Withdraw" strategy <xref sidered
target="RFC7606"/>.</t> malformed and handled by the "treat-as-withdraw" strategy <xref target="
RFC7606" format="default"/>.</t>
<t>The SR Policy Encoding structure is as follows: </t>
<t>The SR Policy Encoding structure is as follows: <figure <figure>
align="center"> <name>SR Policy Encoding</name>
<artwork align="left"><![CDATA[SR Policy SAFI NLRI: <Distinguisher, <artwork align="left" name="" type="" alt=""><![CDATA[
Policy-Color, Endpoint> SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint>
Attributes: Attributes:
Tunnel Encapsulation Attribute (23) Tunnel Encapsulation Attribute (23)
Tunnel Type: SR Policy (15) Tunnel Type: SR Policy (15)
Binding SID Binding SID
Preference Preference
Priority Priority
Policy Name Policy Name
Policy Candidate Path Name Policy Candidate Path Name
Explicit NULL Label Policy (ENLP) Explicit NULL Label Policy (ENLP)
Segment List Segment List
Weight Weight
Segment Segment
Segment Segment
... ...
... ...
]]></artwork>
</figure>
Figure 2: SR Policy Encoding <t>Where:</t>
<ul spacing="normal">
where:]]></artwork> <li>
</figure><list style="symbols"> <t>The SR Policy SAFI NLRI is defined in <xref target="SRPOLICYSAFI"
<t>SR Policy SAFI NLRI is defined in <xref format="default"/>.</t>
target="SRPOLICYSAFI"/>.</t> </li>
<li>
<t>Tunnel Encapsulation Attribute is defined in <xref <t>The Tunnel Encapsulation Attribute is defined in <xref target="RF
target="RFC9012"/>.</t> C9012" format="default"/>.</t>
</li>
<t>Tunnel-Type is set to 15.</t> <li>
<t>The Tunnel-Type is set to 15.</t>
</li>
<li>
<t>Preference, Binding SID, Priority, Policy Name, Policy <t>Preference, Binding SID, Priority, Policy Name, Policy
Candidate Path Name, ENLP, Segment-List, Weight, and Segment Candidate Path Name, ENLP, Segment-List, Weight, and Segment
sub-TLVs are defined in <xref target="SRPOLICYTLV"/>.</t> sub-TLVs are defined in <xref target="SRPOLICYTLV" format="default"/
>.</t>
</li>
<li>
<t>Additional sub-TLVs may be defined in the future.</t> <t>Additional sub-TLVs may be defined in the future.</t>
</list></t> </li>
</ul>
<t>A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV
of type "SR Policy"; such updates MUST be considered malformed and
handled by the "Treat-as-Withdraw" strategy <xref
target="RFC7606"/>.</t>
<t>A Tunnel Encapsulation Attribute <bcp14>MUST NOT</bcp14> contain more
than one TLV
of type "SR Policy"; such updates <bcp14>MUST</bcp14> be considered malf
ormed and
handled by the "treat-as-withdraw" strategy <xref target="RFC7606" forma
t="default"/>.</t>
<t>BGP does not need to perform the validation of the tunnel (i.e., SR <t>BGP does not need to perform the validation of the tunnel (i.e., SR
Policy) itself as indicated in section 6 of <xref target="RFC9012"/>. Policy) itself as indicated in <xref target="RFC9012" sectionFormat="of" section="6"/>.
The validation of the SR Policy information that is advertised using The validation of the SR Policy information that is advertised using
the sub-TLVs specified in <xref target="SRPOLICYTLV"/> is performed by the sub-TLVs specified in <xref target="SRPOLICYTLV" format="default"/> is performed by
the SRPM.</t> the SRPM.</t>
</section> </section>
<section anchor="ENDCOLOR" numbered="true" toc="default">
<section anchor="ENDCOLOR" <name>Applicability of Tunnel Encapsulation Attribute Sub-TLVs</name>
title="Applicability of Tunnel Encapsulation Attribute Sub-TLVs">
<t>The Tunnel Egress Endpoint and Color sub-TLVs of the Tunnel <t>The Tunnel Egress Endpoint and Color sub-TLVs of the Tunnel
Encapsulation Attribute, as defined in <xref target="RFC9012"/>, are Encapsulation Attribute, as defined in <xref target="RFC9012" format="de fault"/>, are
not utilized for SR Policy encodings. Consequently, their values are not utilized for SR Policy encodings. Consequently, their values are
not relevant within the context of the SR Policy SAFI NLRI. If these not relevant within the context of the SR Policy SAFI NLRI. If these
sub-TLVs are present, a BGP speaker MUST ignore them and MAY remove sub-TLVs are present, a BGP speaker <bcp14>MUST</bcp14> ignore them and <bcp14>MAY</bcp14> remove
them from the Tunnel Encapsulation Attribute during propagation.</t> them from the Tunnel Encapsulation Attribute during propagation.</t>
<t>Similarly, any other sub-TLVs, including those specified in <xref tar
<t>Similarly, any other sub-TLVs, including those specified in <xref get="RFC9012" format="default"/>, that do not have explicitly defined applicabil
target="RFC9012"/>, that do not have explicitly defined applicability ity
to the SR Policy SAFI MUST be ignored by the BGP speaker and MAY be to the SR Policy SAFI <bcp14>MUST</bcp14> be ignored by the BGP speaker
and <bcp14>MAY</bcp14> be
removed from the Tunnel Encapsulation Attribute during removed from the Tunnel Encapsulation Attribute during
propagation.</t> propagation.</t>
</section> </section>
<section anchor="SRPOLICYTLV" numbered="true" toc="default">
<section anchor="SRPOLICYTLV" title="SR Policy Sub-TLVs"> <name>SR Policy Sub-TLVs</name>
<t>This section specifies the sub-TLVs defined for encoding the <t>This section specifies the sub-TLVs defined for encoding the
information about the SR Policy Candidate Path.</t> information about the SR Policy Candidate Path.</t>
<t>Preference, Binding SID, SRv6 Binding SID, Segment-List, Priority, <t>Preference, Binding SID, SRv6 Binding SID, Segment-List, Priority,
Policy Name, Policy Candidate Path Name, and Explicit NULL Label Policy Name, Policy Candidate Path Name, and Explicit NULL Label
Policy are all optional sub-TLVs introduced for the BGP Tunnel Policy are all optional sub-TLVs introduced for the BGP Tunnel
Encapsulation Attribute <xref target="RFC9012"/> being defined in this Encapsulation Attribute <xref target="RFC9012" format="default"/> being defined in this
section.</t> section.</t>
<t>Weight and Segment are sub-TLVs of the Segment-List sub-TLV <t>Weight and Segment are sub-TLVs of the Segment-List sub-TLV
mentioned above.</t> mentioned above.</t>
<t>An early draft version of this document included only the Binding SID
<t>An early version of this document included only the Binding SID
sub-TLV that could be used for both SR-MPLS and SRv6 Binding SIDs. The sub-TLV that could be used for both SR-MPLS and SRv6 Binding SIDs. The
SRv6 Binding SID TLV was introduced in later versions to support the SRv6 Binding SID TLV was introduced in later versions to support the
advertisement of additional SRv6 capabilities without affecting advertisement of additional SRv6 capabilities without affecting
backward compatibility for early implementations.</t> backward compatibility for early implementations.</t>
<t>The fault management and error handling in the encoding of the <t>The fault management and error handling in the encoding of the
sub-TLVs defined in this section are specified in <xref sub-TLVs defined in this section are specified in <xref target="ERROR" f
target="ERROR"/>. For the TLVs/sub-TLVs that are specified as single ormat="default"/>. For the TLVs/sub-TLVs that are specified as single
instance, only the first instance of that TLV/sub-TLV is used and the instance, only the first instance of that TLV/sub-TLV is used: the
other instances MUST be ignored and MUST NOT considered to be other instances <bcp14>MUST</bcp14> be ignored and <bcp14>MUST NOT</bcp1
4> considered to be
malformed.</t> malformed.</t>
<t>None of the sub-TLVs defined in the following subsections have any
<t>None of the sub-TLVs defined in the following sub-sections have any
effect on the BGP best-path selection or propagation procedures. These effect on the BGP best-path selection or propagation procedures. These
sub-TLVs are not used by the BGP path selection process and are sub-TLVs are not used by the BGP path selection process and are
instead passed on to SRPM as SR Policy Candidate Path information for instead passed on to SRPM as SR Policy Candidate Path information for
further processing described in section 2 of <xref further processing as described in <xref target="RFC9256" sectionFormat=
target="RFC9256"/>.</t> "of" section="2"/>.</t>
<t>The use of SR Policy Sub-TLVs is applicable only for the AFI/SAFI <t>The use of SR Policy Sub-TLVs is applicable only for the AFI/SAFI
pairs of (1/73, 2/73). Future documents may extend their applicability pairs of (1/73, 2/73). Future documents may extend their applicability
to other AFI/SAFI.</t> to other AFI/SAFI.</t>
<section anchor="PREFTLV" numbered="true" toc="default">
<section anchor="PREFTLV" title="Preference Sub-TLV"> <name>Preference Sub-TLV</name>
<t>The Preference sub-TLV is used to carry the Preference of an SR <t>The Preference sub-TLV is used to carry the Preference of an SR
Policy candidate path. The contents of this sub-TLV are used by the Policy candidate path. The contents of this sub-TLV are used by the
SRPM as described in section 2.7 of <xref target="RFC9256"/>.</t> SRPM as described in <xref target="RFC9256" sectionFormat="of" section
="2.7"/>.</t>
<t>The Preference sub-TLV is OPTIONAL and it MUST NOT appear more <t>The Preference sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST N
OT</bcp14> appear more
than once in the SR Policy encoding.</t> than once in the SR Policy encoding.</t>
<t>The Preference sub-TLV has the following format: </t>
<t>The Preference sub-TLV has following format: <figure <figure>
align="center"> <name>Preference Sub-TLV</name>
<artwork align="left"><![CDATA[ 0 1 <artwork align="left" name="" type="" alt=""><![CDATA[
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) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 3: Preference sub-TLV <t>Where:</t>
<dl spacing="normal">
where: ]]></artwork> <dt>Type:</dt><dd>12</dd>
</figure><list style="symbols">
<t>Type: 12</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e., n ot
including Type and Length fields) in terms of octets. The value including Type and Length fields) in terms of octets. The value
MUST be 6.</t> <bcp14>MUST</bcp14> be 6.</dd>
<t>Flags: 1 octet of flags. No flags are defined in this <dt>Flags:</dt><dd>1 octet of flags. No flags are defined in this
document. The Flags field MUST be set to zero on transmission document. The Flags field <bcp14>MUST</bcp14> be set to zero on tr
and MUST be ignored on receipt.</t> ansmission
and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
zero on transmission and MUST be ignored on receipt.</t> MUST</bcp14> be set to
zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
.</dd>
<t>Preference: a 4-octet value indicating the Preference of the <dt>Preference:</dt><dd>a 4-octet value indicating the Preference
SR Policy Candidate Path as described in section 2.7 of <xref of the
target="RFC9256"/>.</t> SR Policy Candidate Path as described in <xref target="RFC9256" se
</list></t> ctionFormat="of" section="2.7"/>.</dd>
</section>
<section anchor="BINDINGSIDTLV" title="Binding SID Sub-TLV"> </dl>
<t>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 <xref
target="RFC9256"/>.</t>
<t>The Binding SID sub-TLV is OPTIONAL and it MUST NOT appear more </section>
<section anchor="BINDINGSIDTLV" numbered="true" toc="default">
<name>Binding SID Sub-TLV</name>
<t>The Binding SID sub-TLV is used to signal the BSID-related
information of the SR Policy candidate path. The contents of this
sub-TLV are used by the SRPM as described in <xref target="RFC9256" se
ctionFormat="of" section="6"/>.</t>
<t>The Binding SID sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST
NOT</bcp14> appear more
than once in the SR Policy encoding.</t> than once in the SR Policy encoding.</t>
<t>When the Binding SID sub-TLV is used to signal an SRv6 SID, the <t>When the Binding SID sub-TLV is used to signal an SRv6 SID, the
selection of the corresponding SRv6 Endpoint Behavior <xref selection of the corresponding SRv6 Endpoint Behavior <xref target="RF
target="RFC8986"/> to be instantiated is determined by the headend C8986" format="default"/> to be instantiated is determined by the headend
node. It is RECOMMENDED that the SRv6 Binding SID sub-TLV, as node. It is <bcp14>RECOMMENDED</bcp14> that the SRv6 Binding SID sub-T
defined in Section 2.4.3, be used when signaling an SRv6 Binding SID LV, as
defined in <xref target="SRV6BINDINGSIDTLV" format="default"/>, be use
d when signaling an SRv6 Binding SID
for an SR Policy candidate path. The support for the use of this for an SR Policy candidate path. The support for the use of this
Binding SID sub-TLV for signaling of SRv6 Binding SID is retained Binding SID sub-TLV for the signaling of an SRv6 Binding SID is retain ed
primarily for backward compatibility with implementations that primarily for backward compatibility with implementations that
followed early versions of this document that had not defined the followed early draft versions of this document that had not defined th e
SRv6 Binding SID sub-TLV.</t> SRv6 Binding SID sub-TLV.</t>
<t>The Binding SID sub-TLV has the following format: </t>
<t>The Binding SID sub-TLV has the following format: <figure <figure>
align="center"> <name>Binding SID Sub-TLV</name>
<artwork align="left"><![CDATA[ 0 1 <artwork align="left" name="" type="" alt=""><![CDATA[
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) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
Figure 4: Binding SID sub-TLV </figure>
<t>Where:</t>
where: ]]></artwork> <dl spacing="normal">
</figure><list style="symbols"> <dt>Type:</dt><dd>13</dd>
<t>Type: 13</t> <dt>Length:</dt><dd>Specifies the length of the value field (i.e.,
not
<t>Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value including Type and Length fields) in terms of octets. The value
MUST be one of: 18 when a SRv6 BSID is present, 6 when a SR-MPLS <bcp14>MUST</bcp14> be 18 when a SRv6 BSID is present, 6 when an S
BSID is present, or 2 when no BSID is present.</t> R-MPLS
BSID is present, or 2 when no BSID is present.</dd>
<dt>Flags:</dt><dd><t>1 octet of flags. The following flags are de
fined in
the registry "SR Policy Binding SID Flags" as described in <xref t
arget="IANABSIDFLAGS" format="default"/>:</t>
<t>Flags: 1 octet of flags. The following flags are defined in <figure>
the registry "SR Policy Binding SID Flags" as described in <xref <name>SR Policy Binding SID Flags</name>
target="IANABSIDFLAGS"/>: <figure align="center"> <artwork align="left" name="" type="" alt=""><![CDATA[
<artwork align="left"><![CDATA[
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|S|I| | |S|I| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 5: SR Policy Binding SID Flags
]]></artwork> ]]></artwork>
</figure>where:<list> </figure>
<t>S-Flag: This flag encodes the "Specified-BSID-only" <t>Where:</t>
behavior. It is used by SRPM as described in section 6.2.3 <ul spacing="normal">
in <xref target="RFC9256"/>.</t>
<t>I-Flag: This flag encodes the "Drop Upon Invalid" <li>The S-Flag encodes the "Specified-BSID-Only"
behavior. It is used by SRPM as described in section 8.2 in behavior. It is used by SRPM as described in <xref
<xref target="RFC9256"/> to define a specific SR Policy target="RFC9256" sectionFormat="of" section="6.2.3"/>.</li>
forwarding behavior. The flag indicates that the SR Policy <li>The I-Flag encodes the "Drop Upon Invalid"
is to perform the "drop upon invalid" behavior when no valid behavior. It is used by SRPM as described in <xref
candidate path (CP) is available for this SR Policy. In this target="RFC9256" sectionFormat="of" section="8.2"/> to
situation, the CP with the highest preference amongst those define a specific SR Policy forwarding behavior. The flag
with the "drop upon invalid" config is made active to drop indicates that the SR Policy is to perform the "drop upon
traffic steered over the SR Policy.</t> invalid" behavior when no valid candidate path (CP) is
available for this SR Policy. In this situation, the CP with
the highest preference amongst those with the "drop upon
invalid" config is made active to drop traffic steered over
the SR Policy.</li>
<t>The unassigned bits in the Flag octet MUST be set to zero <li>The unassigned bits in the Flag octet <bcp14>MUST</bcp14>
upon transmission and MUST be ignored upon receipt.</t> be set to zero
</list></t> upon transmission and <bcp14>MUST</bcp14> be ignored upon rece
ipt.
</li>
</ul></dd>
<t>RESERVED: 1 octet of reserved bits. MUST be set to zero on <dt>RESERVED:</dt><dd>1 octet of reserved bits. <bcp14>MUST</bcp14
transmission and MUST be ignored on receipt.</t> > be set to zero on
transmission and <bcp14>MUST</bcp14> be ignored on receipt.
</dd>
<t>Binding SID: If the length is 2, then no Binding SID is <dt>Binding SID:</dt><dd><t>If the length is 2, then no Binding SI
present. If the length is 6 then the Binding SID is encoded in 4 D is
present. If the length is 6, then the Binding SID is encoded in 4
octets using the format below. Traffic Class (TC), S, and TTL octets using the format below. Traffic Class (TC), S, and TTL
(Total of 12 bits) are RESERVED and MUST be set to zero and MUST (Total of 12 bits) are RESERVED and <bcp14>MUST</bcp14> be set to
be ignored. <figure> zero and <bcp14>MUST</bcp14>
<artwork><![CDATA[ 0 1 be ignored.</t>
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Binding SID Label Encoding
<figure>
<name>Binding SID Label Encoding</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
</figure>The Label field is validated by the SRPM, but MUST </figure>
NOT contain the reserved MPLS label values (0-15). If the length <t>The Label field is validated by the SRPM but <bcp14>MUST
is 18 then the Binding SID contains a 16-octet SRv6 SID.</t> NOT</bcp14> contain the reserved MPLS label values (0-15). If the
</list></t> length
is 18, then the Binding SID contains a 16-octet SRv6 SID.</t>
</dd>
</dl>
</section> </section>
<section anchor="SRV6BINDINGSIDTLV" numbered="true" toc="default">
<section anchor="SRV6BINDINGSIDTLV" title="SRv6 Binding SID Sub-TLV"> <name>SRv6 Binding SID Sub-TLV</name>
<t>The SRv6 Binding SID sub-TLV is used to signal the SRv6 Binding <t>The SRv6 Binding SID sub-TLV is used to signal the SRv6 Binding
SID related information of an SR Policy candidate path. It enables SID related information of an SR Policy candidate path. It enables
the specification of the SRv6 Endpoint Behavior <xref the specification of the SRv6 Endpoint Behavior <xref
target="RFC8986"/> to be instantiated on the headend node. The target="RFC8986" format="default"/> to be instantiated on the
contents of this sub-TLV are used by the SRPM as described in headend node. The contents of this sub-TLV are used by the SRPM as
section 6 in <xref target="RFC9256"/>.</t> described in <xref target="RFC9256" sectionFormat="of"
section="6"/>.</t>
<t>The SRv6 Binding SID sub-TLV is OPTIONAL. More than one SRv6 <t>The SRv6 Binding SID sub-TLV is <bcp14>OPTIONAL</bcp14>. More than
Binding SID sub-TLVs MAY be signaled in the same SR Policy encoding one SRv6
Binding SID sub-TLV <bcp14>MAY</bcp14> be signaled in the same SR Poli
cy encoding
to indicate one or more SRv6 SIDs, each with potentially different to indicate one or more SRv6 SIDs, each with potentially different
SRv6 Endpoint Behaviors to be instantiated.</t> SRv6 Endpoint Behaviors to be instantiated.</t>
<t>The SRv6 Binding SID sub-TLV has the following format:</t>
<t>The SRv6 Binding SID sub-TLV has the following format: <figure <figure>
align="center"> <name>SRv6 Binding SID Sub-TLV</name>
<artwork align="left"><![CDATA[ 0 1 <artwork align="left" name="" type="" alt=""><![CDATA[
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 Binding SID (16 octets) | | SRv6 Binding SID (16 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure (optional) // // SRv6 Endpoint Behavior and SID Structure (optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 7: SRv6 Binding SID sub-TLV <t>Where:</t>
<dl spacing="normal">
where: ]]></artwork> <dt>Type:</dt><dd>20</dd>
</figure><list style="symbols">
<t>Type: 20</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value including Type and Length fields) in terms of octets. The value
MUST be 26 when the SRv6 Endpoint Behavior and SID Structure is <bcp14>MUST</bcp14> be 26 when the SRv6 Endpoint Behavior and SID
present else it MUST be 18.</t> Structure is
present; else, it <bcp14>MUST</bcp14> be 18.</dd>
<t>Flags: 1 octet of flags. The following flags are defined in <dt>Flags:</dt><dd><t>1 octet of flags. The following flags are de fined in
the registry "SR Policy SRv6 Binding SID Flags" as described in the registry "SR Policy SRv6 Binding SID Flags" as described in
<xref target="IANASRV6BSIDFLAGS"/>: <figure align="center"> <xref target="IANASRV6BSIDFLAGS" format="default"/>:</t>
<artwork align="left"><![CDATA[
<figure>
<name>SR Policy SRv6 Binding SID Flags</name>
<artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|S|I|B| | |S|I|B| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 8: SR Policy SRv6 Binding SID Flags
]]></artwork> ]]></artwork>
</figure> where:<list> </figure>
<t>S-Flag: This flag encodes the "Specified-BSID-only" <t>Where:</t>
behavior. It is used by SRPM as described in section 6.2.3 <ul spacing="normal">
in <xref target="RFC9256"/>.</t> <li>The S-Flag encodes the "Specified-BSID-Only"
behavior. It is used by SRPM as described
in <xref target="RFC9256" sectionFormat="of" section="6.2.3"/>
.</li>
<t>I-Flag: This flag encodes the "Drop Upon Invalid" <li>The I-Flag encodes the "Drop Upon Invalid"
behavior. It is used by SRPM as described in section 8.2 in behavior. It is used by SRPM as described in
<xref target="RFC9256"/>.</t> <xref target="RFC9256" sectionFormat="of" section="8.2"/>.</li
>
<t>B-Flag: This flag, when set, indicates the presence of <li>The B-Flag, when set, indicates the presence of
the SRv6 Endpoint Behavior and SID Structure encoding the "SRv6 Endpoint Behavior &amp; SID Structure" encoding
specified in <xref target="BEHAVIORSTRUCT"/>.</t> specified in <xref target="BEHAVIORSTRUCT" format="default"/>.
</li>
<t>The unassigned bits in the Flag octet MUST be set to zero <li>The unassigned bits in the Flag octet <bcp14>MUST</bcp14>
upon transmission and MUST be ignored upon receipt.</t> be set to zero
</list></t> upon transmission and <bcp14>MUST</bcp14> be ignored upon rece
ipt.</li>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to </ul></dd>
zero on transmission and MUST be ignored on receipt.</t>
<t>SRv6 Binding SID: Contains a 16-octet SRv6 SID. The value 0 <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
MAY be used when the controller wants to indicate the desired MUST</bcp14> be set to
zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
.</dd>
<dt>SRv6 Binding SID:</dt><dd>Contains a 16-octet SRv6 SID. The va
lue 0
<bcp14>MAY</bcp14> be used when the controller wants to indicate t
he desired
SRv6 Endpoint Behavior, SID Structure, or flags without SRv6 Endpoint Behavior, SID Structure, or flags without
specifying the BSID.</t> specifying the BSID.</dd>
<t>SRv6 Endpoint Behavior and SID Structure: Optional, as <dt>SRv6 Endpoint Behavior and SID Structure:</dt><dd>Optional, as
defined in <xref target="BEHAVIORSTRUCT"/>. The SRv6 Endpoint defined in <xref target="BEHAVIORSTRUCT" format="default"/>. The S
Behavior and SID Structure MUST NOT be included when the SRv6 Rv6 Endpoint
SID has not been included.</t> Behavior and SID Structure <bcp14>MUST NOT</bcp14> be included whe
</list></t> n the SRv6
</section> SID has not been included.</dd>
<section anchor="SLTLV" title="Segment List Sub-TLV "> </dl>
</section>
<section anchor="SLTLV" numbered="true" toc="default">
<name>Segment List Sub-TLV</name>
<t>The Segment List sub-TLV encodes a single explicit path towards <t>The Segment List sub-TLV encodes a single explicit path towards
the endpoint as described in section 5.1 of <xref the endpoint as described in <xref target="RFC9256"
target="RFC9256"/>. The Segment List sub-TLV includes the elements sectionFormat="of" section="5.1"/>. The Segment List sub-TLV
of the paths (i.e., segments) as well as an optional Weight includes the elements of the paths (i.e., segments) as well as an
sub-TLV.</t> optional Weight sub-TLV.</t>
<t>The Segment List sub-TLV may exceed 255 bytes in length due to a <t>The Segment List sub-TLV may exceed 255 bytes in length due to a
large number of segments. A 2-octet length is thus required. large number of segments. A 2-octet length is thus required.
According to section 2 of <xref target="RFC9012"/>, the sub-TLV type According to <xref target="RFC9012" sectionFormat="of" section="2"/>, the sub-TLV type
defines the size of the length field. Therefore, for the Segment defines the size of the length field. Therefore, for the Segment
List sub-TLV, a code point of 128 or higher is used.</t> List sub-TLV, a code point of 128 or higher is used.</t>
<t>The Segment List sub-TLV is <bcp14>OPTIONAL</bcp14> and <bcp14>MAY<
<t>The Segment List sub-TLV is OPTIONAL and MAY appear multiple /bcp14> appear multiple
times in the SR Policy encoding. The ordering of Segment List times in the SR Policy encoding. The ordering of Segment List
sub-TLVs does not matter since each sub-TLV encodes a Segment sub-TLVs does not matter since each sub-TLV encodes a Segment
List.</t> List.</t>
<t>The Segment List sub-TLV contains zero or more Segment sub-TLVs <t>The Segment List sub-TLV contains zero or more Segment sub-TLVs
and MAY contain a Weight sub-TLV.</t> and <bcp14>MAY</bcp14> contain a Weight sub-TLV.</t>
<t>The Segment List sub-TLV has the following format: </t>
<t>The Segment List sub-TLV has the following format: <figure <figure>
align="center"> <name>Segment List Sub-TLV</name>
<artwork align="left"><![CDATA[ 0 1 <artwork align="left" name="" type="" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// sub-TLVs // // sub-TLVs //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 9: Segment List sub-TLV <t>Where:</t>
<dl spacing="normal">
where:]]></artwork> <dt>Type:</dt><dd>128</dd>
</figure><list style="symbols">
<t>Type: 128.</t>
<t>Length: the total length (not including the Type and Length <dt>Length:</dt><dd>The total length (not including the Type and L ength
fields) of the sub-TLVs encoded within the Segment List sub-TLV fields) of the sub-TLVs encoded within the Segment List sub-TLV
in terms of octets.</t> in terms of octets.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to
zero on transmission and MUST be ignored on receipt.</t>
<t>sub-TLVs currently defined: <list> <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
<t>An optional single Weight sub-TLV.</t> MUST</bcp14> be set to
zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
.</dd>
<t>Zero or more Segment sub-TLVs.</t> <dt>sub-TLVs currently defined: </dt><dd>
</list></t> <ul spacing="normal">
</list></t> <li>
<t>An optional single Weight sub-TLV</t>
</li>
<li>
<t>Zero or more Segment sub-TLVs</t>
</li>
</ul>
</dd>
</dl>
<t>Validation of an explicit path encoded by the Segment List <t>Validation of an explicit path encoded by the Segment List
sub-TLV is beyond the scope of BGP and performed by the SRPM as sub-TLV is beyond the scope of BGP and performed by the SRPM as
described in section 5 of <xref target="RFC9256"/>.</t> described in <xref target="RFC9256" sectionFormat="of" section="5"/>.<
/t>
<section anchor="WEIGHTTLV" title="Weight Sub-TLV"> <section anchor="WEIGHTTLV" numbered="true" toc="default">
<name>Weight Sub-TLV</name>
<t>The Weight sub-TLV specifies the weight associated with a given <t>The Weight sub-TLV specifies the weight associated with a given
segment list. The contents of this sub-TLV are used only by the segment list. The contents of this sub-TLV are used only by the
SRPM as described in section 2.11 of <xref target="RFC9256"/>.</t> SRPM as described in <xref target="RFC9256" sectionFormat="of" secti
on="2.11"/>.</t>
<t>The Weight sub-TLV is OPTIONAL and it MUST NOT appear more than <t>The Weight sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT
</bcp14> appear more than
once inside the Segment List sub-TLV.</t> once inside the Segment List sub-TLV.</t>
<t>The Weight sub-TLV has the following format: </t>
<t>The Weight sub-TLV has the following format: <figure <figure>
align="center"> <name>Weight Sub-TLV</name>
<artwork align="left"><![CDATA[ 0 1 <artwork align="left" name="" type="" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 10: Weight sub-TLV <t>Where:</t>
<dl spacing="normal">
where:]]></artwork>
</figure></t>
<t><list style="symbols"> <dt>Type:</dt><dd>9</dd>
<t>Type: 9.</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e ., not
including Type and Length fields) in terms of octets. The including Type and Length fields) in terms of octets. The
value MUST be 6.</t> value <bcp14>MUST</bcp14> be 6.</dd>
<t>Flags: 1 octet of flags. No flags are defined in this <dt>Flags:</dt><dd>1 octet of flags. No flags are defined in thi
document. The Flags field MUST be set to zero on transmission s
and MUST be ignored on receipt.</t> document. The Flags field <bcp14>MUST</bcp14> be set to zero on
transmission
and <bcp14>MUST</bcp14> be ignored on receipt.
</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp1
to zero on transmission and MUST be ignored on receipt.</t> 4>MUST</bcp14> be set
to zero on transmission and <bcp14>MUST</bcp14> be ignored on re
ceipt.</dd>
<t>Weight: 4 octets an unsigned integer value indicating the <!--[rfced] Please review the following for how "4 octets" connects to
weight associated with a segment list as described in section the rest of the sentence (perhaps text is missing as we generally
2.11 of <xref target="RFC9256"/>. A weight value of zero is see "octets of foo" in previous descriptions)?
invalid.</t>
</list></t>
</section>
<section anchor="SEGMENTTLV" title="Segment Sub-TLVs"> Original:
Weight: 4 octets an unsigned integer value indicating the weight
associated with a segment list...
-->
<dt>Weight:</dt><dd>4 octets an unsigned integer value indicatin
g the
weight associated with a segment list as described in
<xref target="RFC9256" sectionFormat="of" section="2.11"/>. A we
ight value of zero is
invalid.</dd>
</dl>
</section>
<section anchor="SEGMENTTLV" numbered="true" toc="default">
<name>Segment Sub-TLVs</name>
<t>A Segment sub-TLV describes a single segment in a segment list <t>A Segment sub-TLV describes a single segment in a segment list
(i.e., a single element of the explicit path). One or more Segment (i.e., a single element of the explicit path). One or more Segment
sub-TLVs constitute an explicit path of the SR Policy candidate sub-TLVs constitute an explicit path of the SR Policy candidate
path. The contents of these sub-TLVs are used only by the SRPM as path. The contents of these sub-TLVs are used only by the SRPM as
described in section 4 in <xref target="RFC9256"/>.</t> described in <xref target="RFC9256" sectionFormat="of" section="4"/>
.</t>
<t>The Segment sub-TLVs are OPTIONAL and MAY appear multiple times <t>The Segment sub-TLVs are <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</
bcp14> appear multiple times
in the Segment List sub-TLV.</t> in the Segment List sub-TLV.</t>
<t><xref target="RFC9256" sectionFormat="of" section="4"/> defines s
everal Segment
Types:</t>
<dl>
<t>Section 4 of <xref target="RFC9256"/> defines several Segment <dt>Type A:</dt><dd>SR-MPLS Label</dd>
Types:<figure align="center"> <dt>Type B:</dt><dd>SRv6 SID</dd>
<artwork align="left"><![CDATA[Type A: SR-MPLS Label <dt>Type C:</dt><dd>IPv4 Prefix with optional SR Algorithm</dd>
Type B: SRv6 SID <dt>Type D:</dt><dd>IPv6 Global Prefix with optional SR Algorithm for SR-MPLS</d
Type C: IPv4 Prefix with optional SR Algorithm d>
Type D: IPv6 Global Prefix with optional SR Algorithm for SR-MPLS <dt>Type E:</dt><dd>IPv4 Prefix with Local Interface ID</dd>
Type E: IPv4 Prefix with Local Interface ID <dt>Type F:</dt><dd>IPv4 Addresses for link endpoints as Local, Remote pair</dd>
Type F: IPv4 Addresses for link endpoints as Local, Remote pair <dt>Type G:</dt><dd>IPv6 Prefix and Interface ID for link endpoints as Local, Re
Type G: IPv6 Prefix and Interface ID for link endpoints as Local, mote pair for SR-MPLS</dd>
Remote pair for SR-MPLS <dt>Type H:</dt><dd>IPv6 Addresses for link endpoints as Local, Remote pair for
Type H: IPv6 Addresses for link endpoints as Local, Remote pair SR-MPLS</dd>
for SR-MPLS <dt>Type I:</dt><dd>IPv6 Global Prefix with optional SR Algorithm for SRv6</dd>
Type I: IPv6 Global Prefix with optional SR Algorithm for SRv6 <dt>Type J:</dt><dd>IPv6 Prefix and Interface ID for link endpoints as Local, Re
Type J: IPv6 Prefix and Interface ID for link endpoints as Local, mote pair for SRv6</dd>
Remote pair for SRv6 <dt>Type K:</dt><dd>IPv6 Addresses for link endpoints as Local, Remote pair for
Type K: IPv6 Addresses for link endpoints as Local, Remote pair SRv6</dd>
for SRv6 </dl>
]]></artwork>
</figure></t>
<t>The following sub-sections specify the sub-TLVs used for <t>The following subsections specify the sub-TLVs used for
Segment Types A and B. The other segment types are specified in Segment Types A and B. The other segment types are specified in
<xref target="I-D.ietf-idr-bgp-sr-segtypes-ext"/>. As specified in <xref target="RFC9831" format="default"/>. As specified in
section 5.1 of <xref target="RFC9256"/>, a mix of SR-MPLS and SRv6 <xref target="RFC9256" sectionFormat="of" section="5.1"/>, a mix of
SR-MPLS and SRv6
segments make the segment-list invalid.</t> segments make the segment-list invalid.</t>
<section anchor="TYPEA" numbered="true" toc="default">
<section anchor="TYPEA" title="Segment Type A"> <name>Segment Type A</name>
<t>The Type A Segment Sub-TLV encodes a single SR-MPLS SID. The <t>The Type A Segment sub-TLV encodes a single SR-MPLS SID. The
format is as follows and is used to encode MPLS Label fields as format is as follows and is used to encode MPLS Label fields as
specified in <xref target="RFC3032"/> <xref target="RFC5462"/>.: specified in <xref target="RFC3032" format="default"/> and <xref t
<figure align="center"> arget="RFC5462" format="default"/>:
<artwork align="left"><![CDATA[ 0 1 </t>
2 3
<figure>
<name>Type A Segment Sub-TLV</name>
<artwork align="left" name="" type="" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 11: Type A Segment sub-TLV <t>Where:</t>
<dl spacing="normal">
where:]]></artwork> <dt>Type:</dt><dd>1</dd>
</figure><list style="symbols">
<t>Type: 1.</t>
<t>Length: Specifies the length of the value field (i.e., <dt>Length:</dt><dd>Specifies the length of the value field (i .e.,
not including Type and Length fields) in terms of octets. not including Type and Length fields) in terms of octets.
The value MUST be 6.</t> The value <bcp14>MUST</bcp14> be 6.</dd>
<t>Flags: 1 octet of flags as defined in <xref
target="SEGMENTFLAGS"/>.</t>
<t>RESERVED: 1 octet of reserved bits. This field MUST be <dt>Flags:</dt><dd>1 octet of flags as defined in <xref target
set to zero on transmission and MUST be ignored on ="SEGMENTFLAGS" format="default"/>.</dd>
receipt.</t>
<t>Label: 20 bits of label value.</t> <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bc
p14>MUST</bcp14> be
set to zero on transmission and <bcp14>MUST</bcp14> be ignored
on
receipt.</dd>
<t>TC: 3 bits of traffic class.</t> <dt>Label:</dt><dd>20 bits of label value.</dd>
<dt>TC:</dt><dd>3 bits of traffic class.</dd>
<t>S: 1 bit of bottom-of-stack.</t> <dt>S:</dt><dd>1 bit of bottom-of-stack.</dd>
<t>TTL: 1 octet of TTL.</t> <dt>TTL:</dt><dd>1 octet of TTL.</dd>
</list></t>
<t>The following applies to the Type-1 Segment sub-TLV:<list </dl>
style="symbols"> <t>The following applies to the Type-1 Segment sub-TLV:</t>
<t>The S bit MUST be zero upon transmission and MUST be <ul spacing="normal">
<li>
<t>The S bit <bcp14>MUST</bcp14> be zero upon transmission and
<bcp14>MUST</bcp14> be
ignored upon reception.</t> ignored upon reception.</t>
</li>
<li>
<t>If the originator wants the receiver to choose the TC <t>If the originator wants the receiver to choose the TC
value, it sets the TC field to zero.</t> value, it sets the TC field to zero.</t>
</li>
<li>
<t>If the originator wants the receiver to choose the TTL <t>If the originator wants the receiver to choose the TTL
value, it sets the TTL field to 255.</t> value, it sets the TTL field to 255.</t>
</li>
<li>
<t>If the originator wants to recommend a value for these <t>If the originator wants to recommend a value for these
fields, it puts those values in the TC and/or TTL fields, it puts those values in the TC and/or TTL
fields.</t> fields.</t>
</li>
<t>The receiver MAY override the originator's values for <li>
<t>The receiver <bcp14>MAY</bcp14> override the originator's v
alues for
these fields. This would be determined by local policy at these fields. This would be determined by local policy at
the receiver. One possible policy would be to override the the receiver. One possible policy would be to override the
fields only if the fields have the default values specified fields only if the fields have the default values specified
above.</t> above.</t>
</list></t> </li>
</ul>
</section> </section>
<section anchor="TYPEB" numbered="true" toc="default">
<section anchor="TYPEB" title="Segment Type B"> <name>Segment Type B</name>
<t>The Type B Segment Sub-TLV encodes a single SRv6 SID. The <t>The Type B Segment Sub-TLV encodes a single SRv6 SID. The
format is as follows: <figure align="center"> format is as follows: </t>
<artwork align="left"><![CDATA[ 0 1
2 3 <figure>
<name>Type B Segment Sub-TLV</name>
<artwork align="left" name="" type="" alt=""><![CDATA[
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) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure // // SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) // // (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 12: Type B Segment sub-TLV <t>Where:</t>
<dl spacing="normal">
where:]]></artwork> <dt>Type:</dt><dd>13</dd>
</figure><list style="symbols">
<t>Type: 13.</t>
<t>Length: Specifies the length of the value field (i.e., <dt>Length:</dt><dd>Specifies the length of the value field (i .e.,
not including Type and Length fields) in terms of octets. not including Type and Length fields) in terms of octets.
The value MUST be 26 when the SRv6 Endpoint Behavior and SID The value <bcp14>MUST</bcp14> be 26 when the SRv6 Endpoint Beh
Structure is present else it MUST be 18.</t> avior and SID
Structure is present; else, it <bcp14>MUST</bcp14> be 18.
</dd>
<t>Flags: 1 octet of flags as defined in <xref <dt>Flags:</dt><dd>1 octet of flags as defined in <xref target
target="SEGMENTFLAGS"/>.</t> ="SEGMENTFLAGS" format="default"/>.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bc
set to zero on transmission and MUST be ignored on p14>MUST</bcp14> be
receipt.</t> set to zero on transmission and <bcp14>MUST</bcp14> be ignored
on
receipt.</dd>
<t>SRv6 SID: 16 octets of IPv6 address.</t> <dt>SRv6 SID:</dt><dd>16 octets of IPv6 address.</dd>
<t>SRv6 Endpoint Behavior and SID Structure: Optional, as <dt>SRv6 Endpoint Behavior and SID Structure:</dt><dd>Optional
defined in <xref target="BEHAVIORSTRUCT"/>. The SRv6 , as
Endpoint Behavior and SID Structure MUST NOT be included defined in <xref target="BEHAVIORSTRUCT" format="default"/>. T
when the SRv6 SID has not been included.</t> he SRv6
</list></t> Endpoint Behavior and SID Structure <bcp14>MUST NOT</bcp14> be
included
when the SRv6 SID has not been included.</dd>
</dl>
<t>The Sub-TLV code point 2 defined for the advertisement of <t>The Sub-TLV code point 2 defined for the advertisement of
Segment Type B in the earlier versions of this document has been Segment Type B in the earlier draft versions of this document has been
deprecated to avoid backward compatibility issues.</t> deprecated to avoid backward compatibility issues.</t>
</section> </section>
<section anchor="SEGMENTFLAGS" numbered="true" toc="default">
<section anchor="SEGMENTFLAGS" title="SR Policy Segment Flags"> <name>SR Policy Segment Flags</name>
<t>The Segment Types sub-TLVs described above may contain the <t>The Segment Types sub-TLVs described above may contain the
following SR Policy Segment Flags in their "Flags" field. Also following SR Policy Segment Flags in their "Flags" field. Also
refer to <xref target="IANASIDFLAGS"/>: <figure align="center"> refer to <xref target="IANASIDFLAGS" format="default"/>: </t>
<artwork align="left"><![CDATA[
<figure>
<name>SR Policy Segment Flags</name>
<artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|V| |B| | |V| |B| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
<t>Where:</t>
<ul spacing="normal">
Figure 22: SR Policy Segment Flags <li> When the V-Flag is set, it is used by SRPM for "SID
verification" as described in <xref target="RFC9256" sectionFo
rmat="of" section="5.1"/>.</li>
]]></artwork> <li>When the B-Flag is set, it indicates the presence of
</figure> where:<list> the "SRv6 Endpoint Behavior &amp; SID Structure" encoding
<t>V-Flag: This flag, when set, is used by SRPM for "SID specified in <xref target="BEHAVIORSTRUCT" format="default"/>.
verification" as described in Section 5.1 of <xref </li>
target="RFC9256"/>.</t>
<t>B-Flag: This flag, when set, indicates the presence of <li>The unassigned bits in the Flag octet <bcp14>MUST</bcp14>
the SRv6 Endpoint Behavior and SID Structure encoding be set to zero
specified in <xref target="BEHAVIORSTRUCT"/>.</t> upon transmission and <bcp14>MUST</bcp14> be ignored upon rece
ipt.</li>
<t>The unassigned bits in the Flag octet MUST be set to zero </ul>
upon transmission and MUST be ignored upon receipt.</t>
</list></t>
<t>The following applies to the Segment Flags:<list <t>The following applies to the Segment Flags:</t>
style="symbols">
<t>V-Flag applies to all Segment Types.</t>
<t>B-Flag applies to Segment Type B. If B-Flag appears with <ul spacing="normal">
Segment Type A it MUST be ignored.</t> <li>
</list></t> V-Flag applies to all Segment Types.
</li>
<li>
B-Flag applies to Segment Type B. If B-Flag appears with
Segment Type A, it <bcp14>MUST</bcp14> be ignored.
</li>
</ul>
</section> </section>
<section anchor="BEHAVIORSTRUCT" numbered="true" toc="default">
<name>SRv6 SID Endpoint Behavior and Structure</name>
<t>The Segment Types sub-TLVs described above <bcp14>MAY</bcp14> c
ontain the
SRv6 Endpoint Behavior and SID Structure <xref target="RFC8986" fo
rmat="default"/> encoding as described below: </t>
<section anchor="BEHAVIORSTRUCT" <figure>
title="SRv6 SID Endpoint Behavior and Structure"> <name>SRv6 SID Endpoint Behavior and Structure</name>
<t>The Segment Types sub-TLVs described above MAY contain the <artwork align="left" name="" type="" alt=""><![CDATA[
SRv6 Endpoint Behavior and SID Structure <xref +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
target="RFC8986"/> encoding as described below: <figure
align="center">
<artwork align="left"><![CDATA[+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Endpoint Behavior | Reserved | | Endpoint Behavior | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LB Length | LN Length | Fun. Length | Arg. Length | | LB Length | LN Length | Fun. Length | Arg. Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
<t>Where:</t>
<dl spacing="normal">
Figure 23: SRv6 SID Endpoint Behavior and Structure <dt>Endpoint Behavior:</dt><dd>2 octets. It carries the SRv6 E
ndpoint
Behavior code point for this SRv6 SID as defined in <xref
target="RFC8986" sectionFormat="of" section="10.2"/>. When
set with the value 0xFFFF (i.e., Opaque), the choice of SRv6
Endpoint Behavior is left to the headend.</dd>
]]></artwork> <dt>Reserved:</dt><dd>2 octets of reserved bits. This field <b
</figure> where:<list> cp14>MUST</bcp14> be
<t>Endpoint Behavior: 2 octets. It carries the SRv6 Endpoint set to zero on transmission and <bcp14>MUST</bcp14> be ignored
Behavior code point for this SRv6 SID as defined in section on
10.2 of <xref target="RFC8986"/>. When set with the value receipt.</dd>
0xFFFF (i.e., Opaque), the choice of SRv6 Endpoint Behavior
is left to the headend.</t>
<t>Reserved: 2 octets of reserved bits. This field MUST be <dt>Locator Block Length:</dt><dd>1 octet. SRv6 SID Locator Bl
set to zero on transmission and MUST be ignored on ock
receipt.</t> length in bits.</dd>
<t>Locator Block Length: 1 octet. SRv6 SID Locator Block <dt>Locator Node Length:</dt><dd>1 octet. SRv6 SID Locator Nod
length in bits.</t> e
length in bits.</dd>
<t>Locator Node Length: 1 octet. SRv6 SID Locator Node <dt>Function Length:</dt><dd>1 octet. SRv6 SID Function length
length in bits.</t> in
bits.</dd>
<t>Function Length: 1 octet. SRv6 SID Function length in <dt>Argument Length:</dt><dd>1 octet. SRv6 SID Arguments lengt
bits.</t> h in
bits.</dd>
<t>Argument Length: 1 octet. SRv6 SID Arguments length in </dl>
bits.</t>
</list></t>
<t>The total of the locator block, locator node, function, and <t>The total of the locator block, locator node, function, and
argument lengths MUST be less than or equal to 128.</t> argument lengths <bcp14>MUST</bcp14> be less than or equal to 128. </t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="ENLPTLV" numbered="true" toc="default">
<section anchor="ENLPTLV" title="Explicit NULL Label Policy Sub-TLV"> <name>Explicit NULL Label Policy Sub-TLV</name>
<t>To steer an unlabeled IP packet into an SR policy for the MPLS <t>To steer an unlabeled IP packet into an SR policy for the MPLS
data plane, it is necessary to push a label stack of one or more data plane, it is necessary to push a label stack of one or more
labels on that packet.</t> labels on that packet.</t>
<t>The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate <t>The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate
whether an Explicit NULL Label <xref target="RFC3032"/> must be whether an Explicit NULL Label <xref target="RFC3032" format="default" /> must be
pushed on an unlabeled IP packet before any other labels.</t> pushed on an unlabeled IP packet before any other labels.</t>
<t>If an ENLP Sub-TLV is not present, the decision of whether to <t>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 push an Explicit NULL label on a given packet is a matter of local
configuration.</t> configuration.</t>
<t>The ENLP sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT</bc
<t>The ENLP sub-TLV is OPTIONAL and it MUST NOT appear more than p14> appear more than
once in the SR Policy encoding.</t> once in the SR Policy encoding.</t>
<t>The contents of this sub-TLV are used by the SRPM as described in <t>The contents of this sub-TLV are used by the SRPM as described in
section 4.1 of <xref target="RFC9256"/>.</t> <xref target="RFC9256" sectionFormat="of" section="4.1"/>.</t>
<figure align="center"> <figure>
<artwork><![CDATA[0 1 2 <name>ELNP Sub-TLV</name>
3 <artwork name="" type="" align="left" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 24: ELNP sub-TLV
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Where:</t>
<dl spacing="normal">
<t>Where:<list> <dt>Type:</dt><dd>14</dd>
<t>Type: 14.</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value including Type and Length fields) in terms of octets. The value
MUST be 3.</t> <bcp14>MUST</bcp14> be 3.</dd>
<t>Flags: 1 octet of flags. No flags are defined in this <dt>Flags:</dt><dd>1 octet of flags. No flags are defined in this
document. The Flags field MUST be set to zero on transmission document. The Flags field <bcp14>MUST</bcp14> be set to zero on tr
and MUST be ignored on receipt.</t> ansmission
and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
zero on transmission and MUST be ignored on receipt.</t> MUST</bcp14> be set to
zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
.</dd>
<t>ENLP (Explicit NULL Label Policy): Indicates whether Explicit <dt>ENLP (Explicit NULL Label Policy):</dt><dd><t>Indicates whethe r Explicit
NULL labels are to be pushed on unlabeled IP packets that are NULL labels are to be pushed on unlabeled IP packets that are
being steered into a given SR policy. The following values have being steered into a given SR policy. The following values have
been currently defined for this field:<list> been currently defined for this field:</t>
<t>1: Push an IPv4 Explicit NULL label on an unlabeled IPv4
packet, but do not push an IPv6 Explicit NULL label on an
unlabeled IPv6 packet.</t>
<t>2: Push an IPv6 Explicit NULL label on an unlabeled IPv6 <dl spacing="normal" indent="6">
packet, but do not push an IPv4 Explicit NULL label on an
unlabeled IPv4 packet.</t>
<t>3: Push an IPv4 Explicit NULL label on an unlabeled IPv4 <dt>1:</dt><dd>Push an IPv4 Explicit NULL label on an unlabele
packet, and push an IPv6 Explicit NULL label on an unlabeled d IPv4
IPv6 packet.</t> packet but do not push an IPv6 Explicit NULL label on an
unlabeled IPv6 packet.</dd>
<t>4: Do not push an Explicit NULL label.</t> <dt>2:</dt><dd>Push an IPv6 Explicit NULL label on an unlabele
</list>This field can have one of the values as specified in d IPv6
<xref target="IANAENLP"/>. The ENLP unassigned values may be packet but do not push an IPv4 Explicit NULL label on an
used for future extensions. Implementations adhering to this unlabeled IPv4 packet.</dd>
document MUST ignore the ENLP Sub-TLV with unrecognized values
(viz. other than 1 through 4). The behavior signaled in this
Sub-TLV MAY be overridden by local configuration by the network
operator based on their deployment requirements. The section 4.1
of <xref target="RFC9256"/> describes the behavior on the
headend for the handling of the explicit null label.</t>
</list></t>
</section>
<section anchor="POLICYPRIORITY" title="Policy Priority Sub-TLV"> <dt>3:</dt><dd>Push an IPv4 Explicit NULL label on an unlabele
<t>An operator MAY set the Policy Priority sub-TLV to indicate the d IPv4
order in which the SR policies are re-computed upon topological packet and push an IPv6 Explicit NULL label on an unlabeled
change. The contents of this sub-TLV are used by the SRPM as IPv6 packet.</dd>
described in section 2.12 of <xref target="RFC9256"/>.</t>
<t>The Priority sub-TLV is OPTIONAL and it MUST NOT appear more than <dt>4:</dt><dd>Do not push an Explicit NULL label.</dd></dl>
once in the SR Policy encoding.</t>
<t>The Priority sub-TLV has following format:</t> <t>This field can have one of the values as specified in <xref
target="IANAENLP" format="default"/>. The ENLP unassigned values
may be used for future extensions. Implementations adhering to
this document <bcp14>MUST</bcp14> ignore the ENLP Sub-TLV with
unrecognized values (viz. other than 1 through 4). The behavior
signaled in this Sub-TLV <bcp14>MAY</bcp14> be overridden by
local configuration by the network operator based on their
deployment requirements. <xref target="RFC9256"
sectionFormat="of" section="4.1"/> describes the behavior on the
headend for the handling of the explicit null label.</t></dd>
<figure align="center"> </dl>
<artwork><![CDATA[0 1 2 </section>
3 <section anchor="POLICYPRIORITY" numbered="true" toc="default">
<name>Policy Priority Sub-TLV</name>
<t>An operator <bcp14>MAY</bcp14> set the Policy Priority sub-TLV to i
ndicate the
order in which the SR policies are recomputed upon topological
change. The contents of this sub-TLV are used by the SRPM as
described in <xref target="RFC9256" sectionFormat="of" section="2.12"
/>.</t>
<t>The Priority sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST NOT
</bcp14> appear more than
once in the SR Policy encoding.</t>
<t>The Priority sub-TLV has the following format:</t>
<figure>
<name>Priority Sub-TLV</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 25: Priority sub-TLV
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Where:</t>
<dl spacing="normal">
<t>Where:<list> <dt>Type:</dt><dd>15</dd>
<t>Type: 15</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e.,
including Type and Length fields) in terms of octets.The value not
MUST be 2.</t> including Type and Length fields) in terms of octets. The value
<bcp14>MUST</bcp14> be 2.</dd>
<t>Priority: a 1-octet value indicating the priority as <dt>Priority:</dt><dd>A 1-octet value indicating the priority as
specified in section 2.12 of <xref target="RFC9256"/>.</t> specified in <xref target="RFC9256" sectionFormat="of" section="2.
12"/>.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
zero on transmission and MUST be ignored on receipt.</t> MUST</bcp14> be set to
</list></t> zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
</section> .</dd>
<section anchor="POLICYCPNAME" </dl>
title="Policy Candidate Path Name Sub-TLV"> </section>
<t>An operator MAY set the Policy Candidate Path Name sub-TLV to <section anchor="POLICYCPNAME" numbered="true" toc="default">
<name>Policy Candidate Path Name Sub-TLV</name>
<t>An operator <bcp14>MAY</bcp14> set the Policy Candidate Path Name s
ub-TLV to
attach a symbolic name to the SR Policy candidate path.</t> attach a symbolic name to the SR Policy candidate path.</t>
<t>Usage of the Policy Candidate Path Name sub-TLV is described in
<t>Usage of Policy Candidate Path Name sub-TLV is described in <xref target="RFC9256" sectionFormat="of" section="2.6"/>.</t>
section 2.6 of <xref target="RFC9256"/>.</t>
<t>The Policy Candidate Path Name sub-TLV may exceed 255 bytes in <t>The Policy Candidate Path Name sub-TLV may exceed 255 bytes in
length due to a long name. A 2-octet length is thus required. length due to a long name. A 2-octet length is thus required.
According to section 2 of <xref target="RFC9012"/>, the sub-TLV type According to <xref target="RFC9012" sectionFormat="of" section="2"/>, the sub-TLV type
defines the size of the length field. Therefore, for the Policy defines the size of the length field. Therefore, for the Policy
Candidate Path Name sub-TLV a code point of 128 or higher is Candidate Path Name sub-TLV, a code point of 128 or higher is
used.</t> used.</t>
<t>It is <bcp14>RECOMMENDED</bcp14> that the size of the symbolic name
<t>It is RECOMMENDED that the size of the symbolic name for the for the
candidate path is limited to 255 bytes. Implementations MAY choose candidate path be limited to 255 bytes. Implementations <bcp14>MAY</bc
p14> choose
to truncate long names to 255 bytes when signaling via BGP.</t> to truncate long names to 255 bytes when signaling via BGP.</t>
<t>The Policy Candidate Path Name sub-TLV is <bcp14>OPTIONAL</bcp14>;
it <bcp14>MUST
NOT</bcp14> appear more than once in the SR Policy encoding.</t>
<t>The Policy Candidate Path Name sub-TLV has the following format:</t
>
<t>The Policy Candidate Path Name sub-TLV is OPTIONAL and it MUST <figure>
NOT appear more than once in the SR Policy encoding.</t> <name>Policy Candidate Path Name Sub-TLV</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
<t>The Policy Candidate Path Name sub-TLV has following format:</t> 0 1 2 3
<figure align="center">
<artwork><![CDATA[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 Candidate Path Name // // Policy Candidate Path Name //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 26: Policy Candidate Path Name sub-TLV
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Where:</t>
<dl spacing="normal">
<t>Where:<list> <dt>Type:</dt><dd>129</dd>
<t>Type: 129.</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value including Type and Length fields) in terms of octets. The value
is variable.</t> is variable.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
zero on transmission and MUST be ignored on receipt.</t> MUST</bcp14> be set to
zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
.</dd>
<t>Policy Candidate Path Name: Symbolic name for the SR Policy <dt>Policy Candidate Path Name:</dt><dd>Symbolic name for the SR P olicy
candidate path without a NULL terminator with encoding as candidate path without a NULL terminator with encoding as
specified in section 2.6 of <xref target="RFC9256"/>.</t> specified in <xref target="RFC9256" sectionFormat="of" section="2.
</list></t> 6"/>.</dd>
</section>
<section anchor="POLICYNAME" title="Policy Name Sub-TLV"> </dl>
<t>An operator MAY set the Policy Name sub-TLV to associate a </section>
<section anchor="POLICYNAME" numbered="true" toc="default">
<name>Policy Name Sub-TLV</name>
<t>An operator <bcp14>MAY</bcp14> set the Policy Name sub-TLV to assoc
iate a
symbolic name with the SR Policy for which the candidate path is symbolic name with the SR Policy for which the candidate path is
being advertised via the SR Policy NLRI.</t> being advertised via the SR Policy NLRI.</t>
<t>Usage of the Policy Name sub-TLV is described in <xref target="RFC9
<t>Usage of Policy Name sub-TLV is described in section 2.1 of <xref 256" sectionFormat="of" section="2.1"/>.</t>
target="RFC9256"/>.</t>
<t>The Policy Name sub-TLV may exceed 255 bytes in length due to a <t>The Policy Name sub-TLV may exceed 255 bytes in length due to a
long policy name. A 2-octet length is thus required. According to long policy name. A 2-octet length is thus required. According to
section 2 of <xref target="RFC9012"/>, the sub-TLV type defines the <xref target="RFC9012" sectionFormat="of" section="2"/>, the sub-TLV
size of the length field. Therefore, for the Policy Name sub-TLV a type defines the size of the length field. Therefore, for the Policy
code point of 128 or higher is used.</t> Name sub-TLV, a code point of 128 or higher is used.</t>
<t>It is <bcp14>RECOMMENDED</bcp14> that the size of the symbolic name
<t>It is RECOMMENDED that the size of the symbolic name for the SR for the SR
Policy is limited to 255 bytes. Implementations MAY choose to Policy be limited to 255 bytes. Implementations <bcp14>MAY</bcp14> cho
ose to
truncate long names to 255 bytes when signaling via BGP.</t> truncate long names to 255 bytes when signaling via BGP.</t>
<t>The Policy Name sub-TLV is <bcp14>OPTIONAL</bcp14>; it <bcp14>MUST
<t>The Policy Name sub-TLV is OPTIONAL and it MUST NOT appear more NOT</bcp14> appear more
than once in the SR Policy encoding.</t> than once in the SR Policy encoding.</t>
<t>The Policy Name sub-TLV has the following format:</t>
<t>The Policy Name sub-TLV has following format:</t> <figure>
<name>Policy Name Sub-TLV</name>
<figure align="center"> <artwork name="" type="" align="left" alt=""><![CDATA[
<artwork><![CDATA[0 1 2 0 1 2 3
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 //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 27: Policy Name sub-TLV
]]></artwork> ]]></artwork>
</figure> </figure>
<t>Where:</t>
<dl spacing="normal">
<t>Where:<list> <dt>Type:</dt><dd>130</dd>
<t>Type: 130</t>
<t>Length: Specifies the length of the value field (i.e., not <dt>Length:</dt><dd>Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value including Type and Length fields) in terms of octets. The value
is variable.</t> is variable.</dd>
<t>RESERVED: 1 octet of reserved bits. This field MUST be set to <dt>RESERVED:</dt><dd>1 octet of reserved bits. This field <bcp14>
zero on transmission and MUST be ignored on receipt.</t> MUST</bcp14> be set to
zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt
.</dd>
<dt>Policy Name:</dt><dd>Symbolic name for the SR Policy without a
NULL
terminator with encoding as specified in <xref target="RFC9256" se
ctionFormat="of" section="2.1"/>.</dd>
</dl>
<t>Policy Name: Symbolic name for the SR Policy without a NULL
terminator with encoding as specified in section 2.1 of <xref
target="RFC9256"/>.</t>
</list></t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="EXTCOLOR" numbered="true" toc="default">
<section anchor="EXTCOLOR" title="Color Extended Community"> <name>Color Extended Community</name>
<t>The Color Extended Community <xref target="RFC9012"/> is used to <t>The Color Extended Community <xref target="RFC9012" format="default"/>
is used to
steer traffic corresponding to BGP routes into an SR Policy with steer traffic corresponding to BGP routes into an SR Policy with
matching color value. The Color Extended Community MAY be carried in any matching color value. The Color Extended Community <bcp14>MAY</bcp14> be c arried in any
BGP UPDATE message whose AFI/SAFI is 1/1 (IPv4 Unicast), 2/1 (IPv6 BGP UPDATE message whose AFI/SAFI is 1/1 (IPv4 Unicast), 2/1 (IPv6
Unicast), 1/4 (IPv4 Labeled Unicast), 2/4 (IPv6 Labeled Unicast), 1/128 Unicast), 1/4 (IPv4 Labeled Unicast), 2/4 (IPv6 Labeled Unicast), 1/128
(VPN-IPv4 Labeled Unicast), 2/128 (VPN-IPv6 Labeled Unicast), or 25/70 (VPN-IPv4 Labeled Unicast), 2/128 (VPN-IPv6 Labeled Unicast), or 25/70
(Ethernet VPN, usually known as EVPN). Use of the Color Extended (Ethernet VPN, usually known as EVPN). Use of the Color Extended
Community in BGP UPDATE messages of other AFI/SAFIs is not covered by Community in BGP UPDATE messages of other AFI/SAFIs is not covered by
<xref target="RFC9012"/> and is hence outside the scope of this document <xref target="RFC9012" format="default"/>; hence, it is outside the scope of this document
as well.</t> as well.</t>
<t>Two bits from the Flags field of the Color Extended Community are <t>Two bits from the Flags field of the Color Extended Community are
used as follows to support the requirements of Color-Only steering as used as follows to support the requirements of Color-Only steering as
specified in Section 8.8 of <xref target="RFC9256"/>: <figure specified in <xref target="RFC9256" sectionFormat="of" section="8.8"/>: </
align="center"> t>
<artwork><![CDATA[ 1
<figure>
<name>Color Extended Community Flags</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
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| Unassigned | |C O| Unassigned |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
Figure 28: Color Extended Community Flags <t>The C and O bits together form the Color-Only Type field, which
indicates the various matching criteria between the BGP NH and the SR Poli
cy
endpoint in addition to the matching of the color value. The following typ
es
are defined:</t>
<dl spacing="normal">
]]></artwork> <dt>Type 0 (bits 00):</dt><dd>Specific Endpoint Match. Request a match
</figure>The CO bits together form the Color-Only Type field which for the
indicates the various matching criteria between BGP NH and SR Policy endpoint that is the BGP NH.</dd>
endpoint in addition to the matching of the color value. Following types
are defined:<list style="symbols">
<t>Type 0 (bits 00): Specific Endpoint Match: Request match for the
endpoint that is the BGP NH</t>
<t>Type 1 (bits 01): Specific or Null Endpoint Match: Request match <dt>Type 1 (bits 01):</dt><dd>Specific or Null Endpoint Match. Request a match
for either the endpoint that is the BGP NH or a null endpoint (e.g., for either the endpoint that is the BGP NH or a null endpoint (e.g.,
like a default gateway)</t> a default gateway).</dd>
<t>Type 2 (bits 10): Specific, Null, or Any Endpoint Match: Request <dt>Type 2 (bits 10):</dt><dd>Specific, Null, or Any Endpoint Match. R
match for either the endpoint that is the BGP NH or with a null or equest
any endpoint</t> a match for either the endpoint that is the BGP NH or a null or
any endpoint.</dd>
<t>Type 3 (bits 11): reserved for future use and SHOULD NOT be used. <dt>Type 3 (bits 11):</dt><dd>Reserved for future use and <bcp14>SHOUL
Upon reception, an implementation MUST treat it like Type 0.</t> D NOT</bcp14> be used.
</list></t> Upon reception, an implementation <bcp14>MUST</bcp14> treat it like Ty
pe 0.</dd>
</dl>
<t>The details of the SR Policy steering mechanisms based on these <t>The details of the SR Policy steering mechanisms based on these
Color-Only types are specified in section 8.8 of <xref Color-Only types are specified in <xref target="RFC9256" sectionFormat="of
target="RFC9256"/>.</t> " section="8.8"/>.</t>
<t>One or more Color Extended Communities <bcp14>MAY</bcp14> be
<t>One or more Color Extended Communities MAY be associated with a BGP associated with a BGP route update. Sections <xref target="RFC9256"
route update. Sections 8.4.1, 8.5.1, and 8.8.2 of <xref sectionFormat="bare" section="8.4.1"/>, <xref target="RFC9256"
target="RFC9256"/> specify the steering behaviors over SR Policies when sectionFormat="bare" section="8.5.1"/>, and <xref target="RFC9256"
sectionFormat="bare" section="8.8.2"/> of <xref target="RFC9256"
format="default"/> specify the steering behaviors over SR Policies when
multiple Color Extended Communities are associated with a BGP route.</t> multiple Color Extended Communities are associated with a BGP route.</t>
</section> </section>
<section anchor="OPERATIONS" numbered="true" toc="default">
<section anchor="OPERATIONS" title="SR Policy Operations"> <name>SR Policy Operations</name>
<t>As mentioned in <xref target="INTRO"/>, BGP is not the actual <t>As mentioned in <xref target="INTRO" format="default"/>, BGP is not the
actual
consumer of an SR Policy NLRI. BGP is in charge of the origination and consumer of an SR Policy NLRI. BGP is in charge of the origination and
propagation of the SR Policy NLRI but its installation and use are propagation of the SR Policy NLRI, but its installation and use are
outside the scope of BGP. The details of SR Policy installation and use outside the scope of BGP. The details of SR Policy installation and use
are specified in <xref target="RFC9256"/>.</t> are specified in <xref target="RFC9256" format="default"/>.</t>
<section anchor="CONFIG" numbered="true" toc="default">
<section anchor="CONFIG" title="Advertisement of SR Policies"> <name>Advertisement of SR Policies</name>
<t>Typically, but not limited to, an SR Policy is computed by a <t>Typically, but not limited to, an SR Policy is computed by a
controller or a path computation engine (PCE) and originated by a BGP controller or a Path Computation Engine (PCE) and originated by a BGP
speaker on its behalf.</t> speaker on its behalf.</t>
<t>Multiple SR Policy NLRIs may be present with the same &lt;color, <t>Multiple SR Policy NLRIs may be present with the same &lt;color,
endpoint&gt; tuple but with different distinguishers when these SR endpoint&gt; tuple but with different distinguishers when these SR
policies are intended for different headends.</t> policies are intended for different headends.</t>
<t>The distinguisher of each SR Policy NLRI prevents undesired BGP <t>The distinguisher of each SR Policy NLRI prevents undesired BGP
route selection among these SR Policy NLRIs and allows their route selection among these SR Policy NLRIs and allows their
propagation across route reflectors <xref target="RFC4456"/>.</t> propagation across route reflectors <xref target="RFC4456" format="defau
lt"/>.</t>
<t>Moreover, one or more route targets SHOULD be attached to the <t>Moreover, one or more route targets <bcp14>SHOULD</bcp14> be attached
to the
advertisement, where each route target identifies one or more intended advertisement, where each route target identifies one or more intended
headends for the advertised SR Policy update.</t> headends for the advertised SR Policy update.</t>
<t>If no route target is attached to the SR Policy NLRI, then it is <t>If no route target is attached to the SR Policy NLRI, then it is
assumed that the originator sends the SR Policy update directly (e.g., assumed that the originator sends the SR Policy update directly (e.g.,
through a BGP session) to the intended receiver. In such a case, the through a BGP session) to the intended receiver. In such a case, the
NO_ADVERTISE community <xref target="RFC1997"/> MUST be attached to NO_ADVERTISE community <xref target="RFC1997" format="default"/> <bcp14>
the SR Policy update (see further details in <xref MUST</bcp14> be attached to
target="PROPAGATE"/>).</t> the SR Policy update (see further details in <xref target="PROPAGATE" fo
rmat="default"/>).</t>
</section> </section>
<section anchor="RECEPT" numbered="true" toc="default">
<section anchor="RECEPT" title="Reception of an SR Policy NLRI"> <name>Reception of an SR Policy NLRI</name>
<t>On reception of an SR Policy NLRI, a BGP speaker first determines <t>On reception of an SR Policy NLRI, a BGP speaker first determines
if it is valid as described in <xref target="ACCEPT"/> and then if it is valid as described in <xref target="ACCEPT"
performs the decision process for selection of the best route (Section format="default"/>; then, the BGP speaker performs the decision process
9.1 of <xref target="RFC4271"/>). The key difference from the base BGP for
decision process is that BGP does not download the selected best selection of the best route (<xref target="RFC4271" sectionFormat="of"
routes of SR Policy SAFI into the forwarding and instead considers section="9.1"/>). The key difference from the base BGP decision
them "usable" for passing on to the SRPM for further processing as process is that BGP does not download the selected best routes of the SR
described in <xref target="USABLE"/>. The selected best route is Policy SAFI into the forwarding; instead, it considers them "usable"
"propagated" (Section 9.1.3 of <xref target="RFC4271"/>) as described for passing on to the SRPM for further processing as described in
in <xref target="PROPAGATE"/> irrespective of its "usability" by the <xref target="USABLE" format="default"/>. The selected best route is
local router.</t> "propagated" (<xref target="RFC4271" sectionFormat="of"
section="9.1.3"/>) as described in <xref target="PROPAGATE"
<section anchor="ACCEPT" title="Validation of an SR Policy NLRI"> format="default"/>, irrespective of its "usability" by the local
<t>When a BGP speaker receives an SR Policy NLRI from a neighbor it router.</t>
MUST first perform validation based on the following rules in <section anchor="ACCEPT" numbered="true" toc="default">
addition to the validation described in <xref target="ERROR"/>: <name>Validation of an SR Policy NLRI</name>
<list style="symbols"> <t>When a BGP speaker receives an SR Policy NLRI from a neighbor, it
<t>The SR Policy NLRI MUST include a distinguisher, color, and <bcp14>MUST</bcp14> first perform validation based on the following ru
endpoint field which implies that the length of the NLRI MUST be les in
addition to the validation described in <xref target="ERROR" format="d
efault"/>:
</t>
<ul spacing="normal">
<li>
<t>The SR Policy NLRI <bcp14>MUST</bcp14> include a distinguisher,
color, and
endpoint field that implies that the length of the NLRI <bcp14>MUS
T</bcp14> 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).</t> endpoint).</t>
</li>
<t>The SR Policy update MUST have either the NO_ADVERTISE <li>
community or at least one route target extended community in <t>The SR Policy update <bcp14>MUST</bcp14> have either the NO_ADV
IPv4-address format or both. If a router supporting this ERTISE
community, at least one route target extended community in
IPv4-address format, or both. If a router supporting this
specification receives an SR Policy update with no route target specification receives an SR Policy update with no route target
extended communities and no NO_ADVERTISE community, the update extended communities and no NO_ADVERTISE community, the update
MUST be considered as malformed.</t> <bcp14>MUST</bcp14> be considered to be malformed.</t>
</li>
<t>The Tunnel Encapsulation Attribute MUST be attached to the <li>
BGP Update and MUST have a Tunnel Type TLV set to SR Policy <t>The Tunnel Encapsulation Attribute <bcp14>MUST</bcp14> be attac
(codepoint is 15).</t> hed to the
</list></t> BGP Update and <bcp14>MUST</bcp14> have a Tunnel Type TLV set to S
R Policy
(code point is 15).</t>
</li>
</ul>
<t>A router that receives an SR Policy update that is not valid <t>A router that receives an SR Policy update that is not valid
according to these criteria MUST treat the update as malformed and according to these criteria <bcp14>MUST</bcp14> treat the update as ma
the SR Policy candidate path MUST NOT be passed to the SRPM.</t> lformed, and
the SR Policy candidate path <bcp14>MUST NOT</bcp14> be passed to the
SRPM.</t>
</section> </section>
<section anchor="USABLE" numbered="true" toc="default">
<section anchor="USABLE" <name>Eligibility for Local Use of an SR Policy NLRI</name>
title="Eligibility for Local Use of an SR Policy NLRI"> <t>An SR Policy NLRI update that does not have a route target extended
<t>An SR Policy NLRI update without any route target extended community but does have the NO_ADVERTISE community is considered
community but having the NO_ADVERTISE community is considered
usable.</t> usable.</t>
<t>If one or more route targets are present, then at least one route <t>If one or more route targets are present, then at least one route
target MUST match the BGP Identifier of the receiver for the update target <bcp14>MUST</bcp14> match the BGP Identifier of the receiver fo
to be considered usable. The BGP Identifier is defined in <xref r the update
target="RFC4271"/> as a 4-octet IPv4 address and updated by <xref to be considered usable. The BGP Identifier is defined in <xref target
target="RFC6286"/> as a 4-octet, unsigned, non-zero integer. ="RFC4271" format="default"/> as a 4-octet IPv4 address and is updated by <xref
Therefore, the route target extended community MUST be of the same target="RFC6286" format="default"/> as a 4-octet, unsigned, non-zero integer.
Therefore, the route target extended community <bcp14>MUST</bcp14> be
of the same
format.</t> format.</t>
<!--[rfced] Please clarify "it" in the following text:
Original:
If one or more route targets are present and none matches the local
BGP Identifier, then, while the SR Policy NLRI is valid, it is not
usable on the receiver node.
Perhaps:
If one or more route targets are present, and none matches the
local BGP Identifier, then, while the SR Policy NLRI is valid, the
route targets are not usable on the receiver node.
-->
<t>If one or more route targets are present and none matches the <t>If one or more route targets are present and none matches the
local BGP Identifier, then, while the SR Policy NLRI is valid, it is local BGP Identifier, then, while the SR Policy NLRI is valid, it is
not usable on the receiver node.</t> not usable on the receiver node.</t>
<t>When the SR Policy tunnel type includes any sub-TLV that is <t>When the SR Policy tunnel type includes any sub-TLV that is
unrecognized or unsupported, the update SHOULD NOT be considered unrecognized or unsupported, the update <bcp14>SHOULD NOT</bcp14> be c
usable. An implementation MAY provide an option for ignoring onsidered
usable. An implementation <bcp14>MAY</bcp14> provide an option for ign
oring
unsupported sub-TLVs.</t> unsupported sub-TLVs.</t>
<t>Once BGP on the receiving node has determined that the SR Policy <t>Once BGP on the receiving node has determined that the SR Policy
NLRI is usable, it passes the SR Policy candidate path to the SRPM. NLRI is usable, it passes the SR Policy candidate path to the SRPM.
Note that, along with the candidate path details, BGP also passes Note that, along with the candidate path details, BGP also passes
the originator information for breaking ties in the candidate path the originator information for breaking ties in the candidate path
selection process as described in section 2.4 of <xref selection process as described in <xref target="RFC9256" sectionFormat
target="RFC9256"/>.</t> ="of" section="2.4"/>.</t>
<t>When an update for an SR Policy NLRI results in its becoming <t>When an update for an SR Policy NLRI results in its becoming
unusable, BGP MUST delete its corresponding SR Policy candidate path unusable, BGP <bcp14>MUST</bcp14> delete its corresponding SR Policy c andidate path
from the SRPM.</t> from the SRPM.</t>
<t>The SRPM applies the rules defined in <xref target="RFC9256"
<t>The SRPM applies the rules defined in section 2 of <xref sectionFormat="of" section="2"/> to determine whether the SR Policy
target="RFC9256"/> to determine whether the SR Policy candidate path candidate path is valid and to select the active candidate path for
is valid and to select the active candidate path for a given SR a given SR Policy.</t>
Policy.</t>
</section> </section>
<section anchor="PROPAGATE" numbered="true" toc="default">
<section anchor="PROPAGATE" title="Propagation of an SR Policy"> <name>Propagation of an SR Policy</name>
<t>SR Policy NLRIs that have the NO_ADVERTISE community attached to <t>SR Policy NLRIs that have the NO_ADVERTISE community attached to
them MUST NOT be propagated.</t> them <bcp14>MUST NOT</bcp14> be propagated.</t>
<t>By default, a BGP node receiving an SR Policy NLRI <bcp14>MUST NOT<
<t>By default, a BGP node receiving an SR Policy NLRI MUST NOT /bcp14>
propagate it to any EBGP neighbor. An implementation MAY provide an propagate it to any External BGP (EBGP) neighbor. An implementation <b
cp14>MAY</bcp14> provide an
explicit configuration to override this and enable the propagation explicit configuration to override this and enable the propagation
of valid SR Policy NLRIs to specific EBGP neighbors where the SR of valid SR Policy NLRIs to specific EBGP neighbors where the SR
domain comprises multiple-ASes within a single service provider domain comprises multiple ASes within a single service provider
domain (see <xref target="Security"/> for details).</t> domain (see <xref target="Security" format="default"/> for details).</
t>
<t>A BGP node advertises a received SR Policy NLRI to its IBGP <t>A BGP node advertises a received SR Policy NLRI to its Internal BGP
(IBGP)
neighbors according to normal IBGP propagation rules.</t> neighbors according to normal IBGP propagation rules.</t>
<t>By default, a BGP node receiving an SR Policy NLRI <bcp14>SHOULD NO
<t>By default, a BGP node receiving an SR Policy NLRI SHOULD NOT T</bcp14>
remove route target extended community before propagation. An remove the route target extended community before propagation. An
implementation MAY provide support for configuration to filter implementation <bcp14>MAY</bcp14> provide support for configuration to
and/or remove route target extended community before filter
and/or remove the route target extended community before
propagation.</t> propagation.</t>
<t>A BGP node <bcp14>MUST NOT</bcp14> alter the SR Policy information
<t>A BGP node MUST NOT alter the SR Policy information carried in carried in
the Tunnel Encapsulation Attribute during propagation.</t> the Tunnel Encapsulation Attribute during propagation.</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="ERROR" numbered="true" toc="default">
<section anchor="ERROR" title="Error Handling and Fault Management"> <name>Error Handling and Fault Management</name>
<t>This section describes the error handling actions, as described in <t>This section describes the error-handling actions, as described in
<xref target="RFC7606"/>, that are to be performed for the handling of <xref target="RFC7606" format="default"/>, that are to be performed for th
the BGP update messages for BGP SR Policy SAFI.</t> e handling of
the BGP update messages for the BGP SR Policy SAFI.</t>
<t>A BGP Speaker MUST perform the following syntactic validation of the <t>A BGP speaker <bcp14>MUST</bcp14> perform the following syntactic valid
ation of the
SR Policy NLRI to determine if it is malformed. This includes the SR Policy NLRI to determine if it is malformed. This includes the
validation of the length of each NLRI and the total length of the validation of the length of each NLRI and the total length of the
MP_REACH_NLRI and MP_UNREACH_NLRI attributes. It also includes the MP_REACH_NLRI and MP_UNREACH_NLRI attributes. It also includes the
validation of the consistency of the NLRI length with the AFI and the validation of the consistency of the NLRI length with the AFI and the
endpoint address as specified in <xref target="SRPOLICYSAFI"/>.</t> endpoint address as specified in <xref target="SRPOLICYSAFI" format="defau
lt"/>.</t>
<t>When the error determined allows for the router to skip the malformed <t>When the error determined allows for the router to skip the malformed
NLRI(s) and continue the processing of the rest of the update message, NLRI(s) and continue the processing of the rest of the update message,
then it MUST handle such malformed NLRIs as 'Treat-as-withdraw'. In then it <bcp14>MUST</bcp14> handle such malformed NLRIs as 'treat-as-withd raw'. In
other cases, where the error in the NLRI encoding results in the other cases, where the error in the NLRI encoding results in the
inability to process the BGP update message (e.g. length related inability to process the BGP update message (e.g., length-related
encoding errors), then the router SHOULD handle such malformed NLRIs as encoding errors), then the router <bcp14>SHOULD</bcp14> handle such malfor
'AFI/SAFI disable' when other AFI/SAFI besides SR Policy are being med NLRIs as
advertised over the same session. Alternately, the router MUST perform "AFI/SAFI disable" when other AFIs/SAFIs besides SR Policy are being
'session reset' when the session is only being used for SR Policy or advertised over the same session. Alternately, the router <bcp14>MUST</bcp
when it 'AFI/SAFI disable' action is not possible.</t> 14> perform
"session reset" when the session is only being used for SR Policy or
when a "AFI/SAFI disable" action is not possible.</t>
<t>The validation of the TLVs/sub-TLVs introduced in this document and <t>The validation of the TLVs/sub-TLVs introduced in this document and
defined in their respective sub-sections of <xref target="SRPOLICYTLV"/> defined in their respective subsections of <xref target="SRPOLICYTLV" form
MUST be performed to determine if they are malformed or invalid. The at="default"/>
<bcp14>MUST</bcp14> be performed to determine if they are malformed or inv
alid. The
validation of the Tunnel Encapsulation Attribute itself and the other validation of the Tunnel Encapsulation Attribute itself and the other
TLVs/sub-TLVs specified in Section 13 of <xref target="RFC9012"/> MUST TLVs/sub-TLVs specified in <xref target="RFC9012" sectionFormat="of" secti on="13"/> <bcp14>MUST</bcp14>
be done as described in that document. In case of any error detected, be done as described in that document. In case of any error detected,
either at the attribute or its TLV/sub-TLV level, the either at the attribute or its TLV/sub-TLV level, the
"treat-as-withdraw" strategy MUST be applied. This is because an SR "treat-as-withdraw" strategy <bcp14>MUST</bcp14> be applied. This is becau
Policy update without a valid Tunnel Encapsulation Attribute (comprising se an SR
Policy update without a valid Tunnel Encapsulation Attribute (comprised
of all valid TLVs/sub-TLVs) is not usable.</t> of all valid TLVs/sub-TLVs) is not usable.</t>
<t>An SR Policy update that is determined not to be valid (and, therefore,
<t>An SR Policy update that is determined to be not valid, and therefore malformed) based on the rules described in <xref target="ACCEPT" format="d
malformed, based on rules described in <xref target="ACCEPT"/> MUST be efault"/> <bcp14>MUST</bcp14> be
handled by the "treat-as-withdraw" strategy.</t> handled by the "treat-as-withdraw" strategy.</t>
<t>The validation of the individual fields of the TLVs/sub-TLVs defined <t>The validation of the individual fields of the TLVs/sub-TLVs defined
in <xref target="SRPOLICYTLV"/> are beyond the scope of BGP as they are in <xref target="SRPOLICYTLV" format="default"/> are beyond the scope of B GP as they are
handled by the SRPM as described in the individual TLV/sub-TLV handled by the SRPM as described in the individual TLV/sub-TLV
sub-sections. A BGP implementation MUST NOT perform semantic subsections. A BGP implementation <bcp14>MUST NOT</bcp14> perform semantic
verification of such fields nor consider the SR Policy update to be verification of such fields nor consider the SR Policy update to be
invalid or not usable based on such validation.</t> invalid or not usable based on such validation.</t>
<t>An implementation <bcp14>SHOULD</bcp14> log any errors found during the
<t>An implementation SHOULD log any errors found during the above above
validation for further analysis.</t> validation for further analysis.</t>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<name>IANA Considerations</name>
<!--[rfced] We note that the IANA Considerations section (Section 6)
starts with a summary of all of the actions that follow in the
subsections. We had a few questions/comments related to this use:
a) Note that we have consolidated mentions of the registry group names
in the introductory text for each type of action in order to reduce
redundancy. Please review these changes and let us know any
objections.
b) To further reduce redundancy, might it be agreeable to delete the
registry group names from the subsections that follow? They were used
inconsistently in the original, and the reader would be able to find
that information in Section 6 itself if desired.
c) Would you like to add section pointers to the corresponding
subsections where the actions are further described?
d) Please note that any changes to text that appears in any IANA
registries mentioned in this document will be communicated to IANA by
the RPC prior to publication but after the completion of AUTH48.
-->
<section anchor="IANA" title="IANA Considerations">
<t>This document uses code point allocations from the following existing <t>This document uses code point allocations from the following existing
registries:<list style="symbols"> registries in the "Subsequent Address Family Identifiers (SAFI) Parameters
<t>Subsequent Address Family Identifiers (SAFI) Parameters " registry group:</t>
registry</t> <ul spacing="normal">
<li>
<t>The "SAFI Values" registry</t>
</li>
</ul>
<t>This document uses code point allocations from the following existing r
egistries in the "Border Gateway Protocol (BGP) Tunnel Encapsulation" registry g
roup:</t>
<ul spacing="normal">
<li>
<t>The "BGP Tunnel Encapsulation Attribute Tunnel Types" registry</t>
</li>
<li>
<t>The "BGP Tunnel Encapsulation Attribute Sub-TLVs" registry</t>
</li>
<li>
<t>The "Color Extended Community Flags" registry</t>
</li>
</ul>
<t>This document creates the following new
registries in the "Border Gateway Protocol (BGP) Tunnel Encapsulation" reg
istry group: </t>
<ul spacing="normal">
<li>
<t>The "SR Policy Segment List Sub-TLVs" registry</t>
</li>
<li>
<t>The "SR Policy Binding SID Flags" registry</t>
</li>
<li>
<t>The "SR Policy SRv6 Binding SID Flags" registry</t>
</li>
<li>
<t>The "SR Policy Segment Flags" registry</t>
</li>
<li>
<t>The "Color Extended Community Color-Only Types" registry</t>
</li></ul>
<t>This document creates the following new registry in the "Segment Routin
g" registry group:</t>
<ul spacing="normal">
<li>
<t>The "SR Policy ENLP Values" registry</t>
</li>
</ul>
<t>BGP Tunnel Encapsulation Attribute Tunnel Types registry under <!--[rfced] We had a few questions regarding Section 6.1 and the BGP
the BGP Tunnel Encapsulation registry</t> SAFI Code Point:
<t>BGP Tunnel Encapsulation Attribute sub-TLVs registry under the a) We received the following note from IANA. We do not see mention of
BGP Tunnel Encapsulation registry</t> this update in the IANA Considerations section of this document.
Should anything be added?
<t>Color Extended Community Flags registry under the BGP Tunnel IANA's Note:
Encapsulation registry</t> NOTE: We've also updated the associated iana-routing-types YANG module
</list></t> to reflect the new description and enum variable.
<t>This document also requests the creation of the following new Please see
registries: <list style="symbols"> https://www.iana.org/assignments/iana-routing-types
<t>SR Policy Segment List Sub-TLVs under the BGP Tunnel
Encapsulation registry</t>
<t>SR Policy Binding SID Flags under the BGP Tunnel Encapsulation b) We don't see any mention of "BGP" in the corresponding IANA
registry</t> registry. Should the title of Table 1 be updated?
<t>SR Policy SRv6 Binding SID Flags under the BGP Tunnel Currently in the document:
Encapsulation registry</t> Table 1: BGP SAFI Code Point
<t>SR Policy Segment Flags under the BGP Tunnel Encapsulation At https://www.iana.org/assignments/safi-namespace/safi-namespace.xhtml:
registry</t> SR Policy SAFI
<t>Color Extended Community Color-Only Types registry under the BGP c) The title of this section is "Subsequent Address Family Identifiers
Tunnel Encapsulation registry</t> (SAFI) Parameters". This is the title of registry group. Subsequent
subsections in the document are titled using the subregistry. Should
the title of Section 6.1 be updated to "SAFI Values"?
<t>SR Policy ENLP Values under the Segment Routing registry</t> -->
</list></t>
<section anchor="IANASAFI" <section anchor="IANASAFI" numbered="true" toc="default">
title="Subsequent Address Family Identifiers (SAFI) Parameters"> <name>Subsequent Address Family Identifiers (SAFI) Parameters</name>
<t>This document introduces a SAFI in the registry "Subsequent Address <t>This document registers a SAFI code point in the "SAFI Values" regist
Family Identifiers (SAFI) Parameters" that has been assigned a code ry of the "Subsequent Address
point by IANA. The entry needs to be updated as follows:<figure Family Identifiers (SAFI) Parameters" registry group as follows:</t>
align="center">
<artwork align="center"><![CDATA[Code Point Description
Reference
73 SR Policy SAFI This document
Table 1: BGP SAFI Code Point <table>
<name>BGP SAFI Code Point</name>
<thead>
<tr>
<th>Value</th><th>Description</th><th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>73</td><td>SR Policy SAFI</td><td>RFC 9830</td>
</tr>
</tbody>
</table>
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANATUNNEL" numbered="true" toc="default">
<name>BGP Tunnel Encapsulation Attribute Tunnel Types</name>
<t>This document registers a Tunnel-Type code point in the "BGP Tunnel
Encapsulation Attribute Tunnel Types" registry under the "Border Gateway
Protocol (BGP) Tunnel Encapsulation" registry group.</t>
<section anchor="IANATUNNEL" <table>
title="BGP Tunnel Encapsulation Attribute Tunnel Types"> <name>Tunnel Type Code Point</name>
<t>This document introduces a Tunnel-Type in the registry "BGP Tunnel <thead>
Encapsulation Attribute Tunnel Types" that has been assigned a <tr>
codepoint by IANA. The entry needs to be updated as follows:<figure <th>Value</th><th>Description</th><th>Reference</th>
align="center"> </tr>
<artwork align="center"><![CDATA[Code Point Description </thead>
Reference <tbody>
15 SR Policy This document <tr>
<td>15</td><td>SR Policy</td><td>RFC 9830</td>
Table 2: Tunnel Type Code Point </tr>
</tbody>
</table>
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANATUNNSUBTLV" <!--[rfced] We had the following questions/comments regarding Section
title="BGP Tunnel Encapsulation Attribute sub-TLVs"> 6.3:
<t>This document defines sub-TLVs in the registry "BGP Tunnel
Encapsulation Attribute sub-TLVs" that have been assigned code points
by IANA as follows via the early allocation process which needs to be
made permanent:<figure align="center">
<artwork align="center"><![CDATA[Code Point Description
Reference
12 Preference sub-TLV This document
13 Binding SID sub-TLV This document
14 ENLP sub-TLV This document
15 Priority sub-TLV This document
20 SRv6 Binding SID sub-TLV This document
128 Segment List sub-TLV This document
129 Policy Candidate Path Name sub-TLV This document
130 Policy Name sub-TLV This document
Table 3: BGP Tunnel Encapsulation Attribute Code Points a) We note that the corresponding IANA registry
(https://www.iana.org/assignments/bgp-tunnel-encapsulation/bgp-tunnel-encapsulat
ion.xhtml#tunnel-sub-tlvs)
also has a "Change Controller" column in which some of the code points
listed by this document contain information (i.e., IETF). Should any
mention of this be made in Table 3?
b) Please review our update to the title of Table 3 and let us know
any objections.
Original:
Table 3: BGP Tunnel Encapsulation Attribute Code Points
Current:
Table 3: BGP Tunnel Encapsulation Attribute Sub-TLV Code Points
-->
<section anchor="IANATUNNSUBTLV" numbered="true" toc="default">
<name>BGP Tunnel Encapsulation Attribute Sub-TLVs</name>
<t>This document defines sub-TLVs in the "BGP Tunnel
Encapsulation Attribute Sub-TLVs" registry under the "Border Gateway Pro
tocol (BGP) Tunnel Encapsulation" registry group.</t>
<table>
<name>BGP Tunnel Encapsulation Attribute Sub-TLV Code Points</name>
<thead>
<tr>
<th>Value</th>
<th>Description</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>12</td>
<td>Preference sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>13</td>
<td>Binding SID sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>14</td>
<td>ENLP sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>15</td>
<td>Priority sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>20</td>
<td>SRv6 Binding SID sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>128</td>
<td>Segment List sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>129</td>
<td>Policy Candidate Path Name sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>130</td>
<td>Policy Name sub-TLV</td>
<td>RFC 9830</td>
</tr>
</tbody>
</table>
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANAEXTCOM" numbered="true" toc="default">
<name>Color Extended Community Flags</name>
<t>This document defines the use of 2 bits in the
"Color Extended Community Flags" registry under the "Border Gateway Prot
ocol (BGP) Tunnel Encapsulation"
registry group.</t>
<section anchor="IANAEXTCOM" title="Color Extended Community Flags"> <table>
<t>This document defines the use of 2 bits in the registry called <name>Color Extended Community Flag Bits</name>
"Color Extended Community Flags" under the "BGP Tunnel Encapsulation" <thead>
registry that have been assigned by IANA via the early allocation <tr><th>Bit Position</th><th>Description</th><th>Reference</th></tr>
process to form the Color-Only Types field which needs to be made </thead>
permanent:<figure align="center"> <tbody>
<artwork align="center"><![CDATA[ Bit <tr><td>0-1</td><td>Color-only Types Field</td><td>RFC 9830</td></tr>
Position Description Reference </tbody>
0-1 Color-only Types Field This document </table>
Table 4: Color Extended Community Flag Bits
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANASIDLIST" numbered="true" toc="default">
<name>SR Policy Segment List Sub-TLVs</name>
<t>This document creates a new registry called "SR
Policy Segment List Sub-TLVs" under the "Border Gateway Protocol (BGP) T
unnel Encapsulation"
registry group. The registration policy of this registry is "IETF Review
"
(see <xref target="RFC8126" format="default"/>).</t>
<t>The following initial sub-TLV code points are assigned by this
document:</t>
<section anchor="IANASIDLIST" title="SR Policy Segment List Sub-TLVs"> <!--[rfced] We had the following questions/comments related to Table
<t>This document requests the creation of a new registry called "SR 5:
Policy Segment List Sub-TLVs" under the "BGP Tunnel Encapsulation"
registry. The allocation policy of this registry is "IETF Review"
according to <xref target="RFC8126"/>.</t>
<t>Following initial Sub-TLV codepoints are assigned by this a) Please review our update to the title to include "Sub-TLV".
document:<figure align="center">
<artwork align="center"><![CDATA[Value Description
Reference
0 Reserved This document
1 Segment Type A sub-TLV This document
2 Deprecated This document
3-8 Unassigned
9 Weight sub-TLV This document
10 Deprecated This document
11 Deprecated This document
12 Deprecated This document
13 Segment Type B sub-TLV This document
14-255 Unassigned
Table 5: SR Policy Segment List Code Points Original:
Table 5: SR Policy Segment List Code Points
]]></artwork> Current:
</figure></t> Table 5: SR Policy Segment List Sub-TLV Code Points
</section>
<section anchor="IANABSIDFLAGS" title="SR Policy Binding SID Flags"> b) We note that Table 5 includes "Segment Type A sub-TLV". Elsewhere
<t>This document requests the creation of a new registry called "SR in the document, we see "Type A Segment Sub-TLV". Further, we see
Policy Binding SID Flags" under the "BGP Tunnel Encapsulation" Type-1 (using a hyphen while lettered types do not). Please review
registry. The allocation policy of this registry is "Standards Action" all of these differences and let us know if/how these should be made
according to <xref target="RFC8126"/>.</t> consistent.
<t>The following flags are defined:<figure align="center"> c) In the document, we see points 3-8 as "Unassigned". At
<artwork align="center"><![CDATA[ Bit Description https://www.iana.org/assignments/bgp-tunnel-encapsulation/bgp-tunnel-encapsulati
Reference on.xhtml#color-extended-community-flags,
0 Specified-BSID-Only Flag (S-Flag) This document we see Segment Type C - Type H sub-TLV. The same is true for points
1 Drop Upon Invalid Flag (I-Flag) This document 14-16 (this document includes them in the 14-255 "Unassigned").
2-7 Unassigned Please review and let us know what, if any, updates are necessary.
Table 6: SR Policy Binding SID Flags -->
<table>
<name>SR Policy Segment List Sub-TLV Code Points</name>
<thead>
<tr>
<th>Value</th>
<th>Description</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Reserved</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>1</td>
<td>Segment Type A sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>2</td>
<td>Deprecated</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>3-8</td>
<td colspan="2">Unassigned</td>
</tr>
<tr>
<td>9</td>
<td>Weight sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>10</td>
<td>Deprecated</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>11</td>
<td>Deprecated</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>12</td>
<td>Deprecated</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>13</td>
<td>Segment Type B sub-TLV</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>14-255</td>
<td colspan="2">Unassigned</td>
</tr>
</tbody>
</table>
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANABSIDFLAGS" numbered="true" toc="default">
<name>SR Policy Binding SID Flags</name>
<t>This document creates a new registry called "SR
Policy Binding SID Flags" under the "Border Gateway Protocol (BGP) Tunne
l Encapsulation"
registry group. The registration policy of this registry is "Standards A
ction"
(see <xref target="RFC8126" format="default"/>).</t>
<t>The following flags are defined:</t>
<section anchor="IANASRV6BSIDFLAGS" <table>
title="SR Policy SRv6 Binding SID Flags"> <name>SR Policy Binding SID Flags</name>
<t>This document requests the creation of a new registry called "SR <thead>
Policy SRv6 Binding SID Flags" under the "BGP Tunnel Encapsulation" <tr>
registry. The allocation policy of this registry is "Standards Action" <th>Bit</th>
according to <xref target="RFC8126"/>.</t> <th>Description</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Specified-BSID-Only Flag (S-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>1</td>
<td>Drop Upon Invalid Flag (I-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>2-7</td>
<td colspan="2">Unassigned</td>
</tr>
</tbody>
</table>
<t>The following flags are defined:<figure align="center"> </section>
<artwork align="center"><![CDATA[ Bit Description <section anchor="IANASRV6BSIDFLAGS" numbered="true" toc="default">
Reference <name>SR Policy SRv6 Binding SID Flags</name>
0 Specified-BSID-Only Flag (S-Flag) This document <t>This document creates a new registry called "SR
1 Drop Upon Invalid Flag (I-Flag) This document Policy SRv6 Binding SID Flags" under the "Border Gateway Protocol (BGP)
2 SRv6 Endpoint Behavior & Tunnel Encapsulation"
SID Structure Flag (B-Flag) This document registry group. The registration policy of this registry is "Standards A
3-7 Unassigned ction"
(see <xref target="RFC8126" format="default"/>).</t>
<t>The following flags are defined:</t>
<table>
<name>SR Policy SRv6 Binding SID Flags</name>
<thead>
<tr>
<th>Bit</th>
<th>Description</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Specified-BSID-Only Flag (S-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>1</td>
<td>Drop Upon Invalid Flag (I-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>2</td>
<td>SRv6 Endpoint Behavior &amp; SID Structure Flag (B-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>3-7</td>
<td colspan="2">Unassigned</td>
</tr>
</tbody>
</table>
Table 7: SR Policy SRv6 Binding SID Flags
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANASIDFLAGS" numbered="true" toc="default">
<name>SR Policy Segment Flags</name>
<t>This document creates a new registry called "SR
Policy Segment Flags" under the "Border Gateway Protocol (BGP) Tunnel En
capsulation" registry group.
The registration policy of this registry is "IETF Review" (see <xref tar
get="RFC8126" format="default"/>).</t>
<t>The following flags are defined:</t>
<section anchor="IANASIDFLAGS" title="SR Policy Segment Flags"> <!--[rfced] We had the following questions/comments regarding Section
<t>This document requests the creation of a new registry called "SR 6.8 and the corresponding IANA registry at https://www.iana.org/assignments
Policy Segment Flags" under the "BGP Tunnel Encapsulation" registry. /bgp-tunnel-encapsulation/bgp-tunnel-encapsulation.xhtml#sr-policy-segment-flags
The allocation policy of this registry is "IETF Review" according to :
<xref target="RFC8126"/>.</t>
<t>The following flags are defined:<figure align="center"> a) This document lists Bits 1-2 as "Unassigned" while the IANA
<artwork align="center"><![CDATA[ Bit Description registry lists entries for these values (the A-Flag and S-Flag).
Reference Please review and let us know what, if any, updates need to be made
0 Segment Verification Flag (V-Flag) This document for consistency.
1-2 Unassigned
3 SRv6 Endpoint Behavior &
SID Structure Flag (B-Flag) This document
4-7 Unassigned
Table 8: SR Policy Segment Flags -->
]]></artwork>
</figure></t>
</section>
<section anchor="IANAEXTCOMCOFIELD" <table>
title="Color Extended Community Color-Only Types"> <name>SR Policy Segment Flags</name>
<t>This document requests the creation of a new registry called "Color <thead>
Extended Community Color-Only Types" under the "BGP Tunnel <tr>
Encapsulation" registry for assignment of codepoints (values 0 through <th>Bit</th>
<th>Description</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Segment Verification Flag (V-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>1-2</td>
<td colspan="2">Unassigned</td>
</tr>
<tr>
<td>3</td>
<td>SRv6 Endpoint Behavior &amp; SID Structure Flag (B-Flag)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>4-7</td>
<td colspan="2">Unassigned</td>
</tr>
</tbody>
</table>
</section>
<section anchor="IANAEXTCOMCOFIELD" numbered="true" toc="default">
<name>Color Extended Community Color-Only Types</name>
<t>This document creates a new registry called "Color
Extended Community Color-Only Types" under the "Border Gateway Protocol
(BGP) Tunnel
Encapsulation" registry group for assignment of code points (values 0 th
rough
3) in the Color-Only Type field of the Color Extended Community Flags 3) in the Color-Only Type field of the Color Extended Community Flags
field. The allocation policy of this registry is "Standards Action" field. The registration policy of this registry is "Standards Action"
according to <xref target="RFC8126"/>.</t> (see <xref target="RFC8126" format="default"/>).</t>
<t>The following types are defined:</t>
<t>The following types are defined:<figure align="center"> <table>
<artwork align="center"><![CDATA[ Type Description <name>Color Extended Community Color-Only Types</name>
Reference <thead>
0 Specific Endpoint Match This document <tr>
1 Specific or Null Endpoint Match This document <th>Type</th>
2 Specific, Null, or Any Endpoint Match This document <th>Description</th>
3 Unassigned This document <th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Specific Endpoint Match</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>1</td>
<td>Specific or Null Endpoint Match</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>2</td>
<td>Specific, Null, or Any Endpoint Match</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>3</td>
<td>Unassigned</td>
<td>RFC 9830</td>
</tr>
</tbody>
</table>
Table 9: Color Extended Community Color-Only Types
]]></artwork>
</figure></t>
</section> </section>
<section anchor="IANAENLP" numbered="true" toc="default">
<name>SR Policy ENLP Values</name>
<t>IANA will maintain a new registry under the
"Segment Routing" registry group with the registration policy of
"Standards Action" (see <xref target="RFC8126" format="default"/>). The
new registry is
called "SR Policy ENLP Values" and contains the code points allocated
to the "ENLP" field defined in <xref target="ENLPTLV" format="default"/>
. The registry
contains the following code points:</t>
<section anchor="IANAENLP" title="SR Policy ENLP Values"> <!--[rfced] We had the following questions/comments related to Section
<t>Note to IANA (RFC editor to remove this before publication): The 6.10 and its corresponding registry at:
new registry creation request below is also present in the https://www.iana.org/assignments/segment-routing/segment-routing.xhtml#sr-p
draft-ietf-pce-segment-routing-policy-cp. IANA is requested to process olicy-enlp-values:
the registry creation via the first of these two documents to reach
publication stage and the authors of the other document would update
the IANA considerations suitably.</t>
<t>This document requests IANA to maintain a new registry under a) There is a slight difference in the Description of Code Point 0.
"Segment Routing" registry group with the allocation policy of Please let us know if/how these may be made consistent.
"Standards Action" <xref target="RFC8126"/>. The new registry is
called "SR Policy ENLP Values" and contains the codepoints allocated
to the "ENLP" field defined in <xref target="ENLPTLV"/>. The registry
contains the following codepoints, with initial values, to be assigned
by IANA with the reference set to this document:<figure>
<artwork><![CDATA[+-------+-----------------------------------+-----
----------+
| Code | | |
| Point | Description | Reference |
+-------+-----------------------------------+---------------+
| 0 | Reserved (not to be used) | This document |
| 1 | Push an IPv4 Explicit NULL label | This document |
| | on an unlabeled IPv4 packet, but | |
| | do not push an IPv6 Explicit NULL | |
| | label on an unlabeled IPv6 packet | |
| 2 | Push an IPv6 Explicit NULL label | This document |
| | on an unlabeled IPv6 packet, but | |
| | do not push an IPv4 Explicit NULL | |
| | label on an unlabeled IPv4 packet | |
| 3 | Push an IPv6 Explicit NULL label | This document |
| | on an unlabeled IPv6 packet, and | |
| | push an IPv4 Explicit NULL label | |
| | on an unlabeled IPv4 packet | |
| 4 | Do not push an Explicit NULL | This document |
| | label | |
| 5-255 | Unassigned | |
+-------+-----------------------------------+---------------+
Table 10: SR Policy ENLP Values This document:
Reserved (not to be used)
IANA registry:
Reserved
-->
<table>
<name>SR Policy ENLP Values</name>
<thead>
<tr>
<th>Code Point</th>
<th>Description</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>Reserved (not to be used)</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>1</td>
<td>Push an IPv4 Explicit NULL label on an unlabeled IPv4 packet but do no
t push an IPv6 Explicit NULL label on an unlabeled IPv6 packet</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>2</td>
<td>Push an IPv6 Explicit NULL label on an unlabeled IPv6 packet but do no
t push an IPv4 Explicit NULL label on an unlabeled IPv4 packet</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>3</td>
<td>Push an IPv6 Explicit NULL label on an unlabeled IPv6 packet and push
an IPv4 Explicit NULL label on an unlabeled IPv4 packet</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>4</td>
<td>Do not push an Explicit NULL label</td>
<td>RFC 9830</td>
</tr>
<tr>
<td>5-255</td>
<td colspan="2">Unassigned</td>
</tr>
</tbody>
</table>
]]></artwork>
</figure></t>
</section> </section>
</section> </section>
<section anchor="Security" numbered="true" toc="default">
<section anchor="Security" title="Security Considerations"> <name>Security Considerations</name>
<t>The security mechanisms of the base BGP security model apply to the <t>The security mechanisms of the base BGP security model apply to the
extensions described in this document as well. See the Security extensions described in this document as well. See the Security
Considerations section of <xref target="RFC4271"/> for a discussion of Considerations section of <xref target="RFC4271" format="default"/> for a
BGP security. Also, refer to <xref target="RFC4272"/> and <xref discussion of
target="RFC6952"/> for analysis of security issues for BGP.</t> BGP security. Also, refer to <xref target="RFC4272" format="default"/> and
<xref target="RFC6952" format="default"/> for analysis of security issues for B
GP.</t>
<!--[rfced] In the following, how may we update to correct the
connection between "address families" and "SAFI"? If our
suggested text does not correctly capture your intent, please let
us know how to rephrase.
Original:
BGP peering sessions for address-families other than SR Policy SAFI
may be set up to routers outside the SR domain.
Perhaps:
BGP peering sessions for address families other than those that use
the SR Policy SAFI may be set up to routers outside the SR domain.
-->
<t>The BGP SR Policy extensions specified in this document enable <t>The BGP SR Policy extensions specified in this document enable
traffic engineering and service programming use-cases within an SR traffic engineering and service programming use cases within an SR
domain as described in <xref target="RFC9256"/>. SR operates within a domain as described in <xref target="RFC9256" format="default"/>. SR opera
trusted SR domain <xref target="RFC8402"/> and its security tes within a
trusted SR domain <xref target="RFC8402" format="default"/>; its security
considerations also apply to BGP sessions when carrying SR Policy considerations also apply to BGP sessions when carrying SR Policy
information. The SR Policies distributed by BGP are expected to be used information. The SR Policies distributed by BGP are expected to be used
entirely within this trusted SR domain which comprises a single AS or entirely within this trusted SR domain, which comprises a single AS or
multiple ASes/domains within a single provider network. Therefore, multiple ASes / domains within a single provider network. Therefore,
precaution is necessary to ensure that the SR Policy information precaution is necessary to ensure that the SR Policy information
advertised via BGP sessions is limited to nodes in a secure manner advertised via BGP sessions is limited to nodes in a secure manner
within this trusted SR domain. BGP peering sessions for address-families within this trusted SR domain. BGP peering sessions for address families
other than SR Policy SAFI may be set up to routers outside the SR other than SR Policy SAFI may be set up to routers outside the SR
domain. The isolation of BGP SR Policy SAFI peering sessions may be used 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 to ensure that the SR Policy information is not advertised by accident
or error to an EBGP peering session outside the SR domain.</t> or in error to an EBGP peering session outside the SR domain.</t>
<t>Additionally, it may be a consideration that the export of SR Policy
<t>Additionally, it may be considered that the export of SR Policy
information, as described in this document, constitutes a risk to information, as described in this document, constitutes a risk to
confidentiality of mission-critical or commercially sensitive confidentiality of mission-critical or commercially sensitive
information about the network (more specifically endpoint/node information about the network (more specifically endpoint/node
addresses, SR SIDs, and the SR Policies deployed). BGP peerings are not addresses, SR SIDs, and the SR Policies deployed). BGP peerings are not
automatic and require configuration; thus, it is the responsibility of automatic and require configuration; thus, it is the responsibility of
the network operator to ensure that only trusted nodes (that include the network operator to ensure that only trusted nodes (that include
both routers and controller applications) within the SR domain are both routers and controller applications) within the SR domain are
configured to receive such information.</t> configured to receive such information.</t>
</section> </section>
<section anchor="Manageability" numbered="true" toc="default">
<section anchor="Manageability" title="Manageability Considerations"> <name>Manageability Considerations</name>
<t>The specification of BGP models is an ongoing work based on <xref <t>The specification of BGP models is an ongoing work based on <xref targe
target="I-D.ietf-idr-bgp-model"/> and its future extensions are expected t="I-D.ietf-idr-bgp-model" format="default"/>; its future extensions are expecte
d
to cover the SR Policy SAFI. Existing BGP operational procedures also to cover the SR Policy SAFI. Existing BGP operational procedures also
apply to the SAFI specified in this document. The management, apply to the SAFI specified in this document. The management,
operations, and monitoring of BGP speakers and the SR Policy SAFI operations, and monitoring of BGP speakers and the SR Policy SAFI
sessions between them are not very different from other BGP sessions and sessions between them are not very different from other BGP sessions and
can be managed using the same data models.</t> can be managed using the same data models.</t>
<t>The YANG data model for the operation and management of SR Policies <xr
<t>The YANG model for the operation and management of SR Policies <xref ef target="I-D.ietf-spring-sr-policy-yang" format="default"/> reports the SR Pol
target="I-D.ietf-spring-sr-policy-yang"/> reports the SR Policies icies
provisioned via BGP SR Policy SAFI along with their operational provisioned via BGP SR Policy SAFI along with their operational
states.</t> states.</t>
</section> </section>
<section title="Acknowledgments"> </middle>
<t>The authors of this document would like to thank Shyam Sethuram, John <back>
Scudder, Przemyslaw Krol, Alex Bogdanov, Nandan Saha, Bruno Decraene,
Gurusiddesh Nidasesi, Kausik Majumdar, Zafar Ali, Swadesh Agarwal, Jakob
Heitz, Viral Patel, Peng Shaofu, Cheng Li, Martin Vigoureux, John
Scudder, Vincent Roca, Brian Haberman, Mohamed Boucadair, Shunwan
Zhuang, Andrew Alston, Jeffrey (Zhaohui) Zhang, Nagendra Nainar, Rajesh
Melarcode Venkateswaran, Nat Kao, Boris Hassanov, Vincent Roca, Russ
Housley, and Dan Romascanu for their comments and review of this
document. The authors would like to thank Susan Hares for her detailed
shepherd review that helped in improving the document.</t>
</section>
<section anchor="Contributors" title="Contributors"> <displayreference target="I-D.ietf-idr-bgp-model" to="BGP-YANG-MODEL"/>
<figure> <displayreference target="I-D.ietf-idr-bgp-ls-sr-policy" to="SR-BGP-LS"/>
<artwork><![CDATA[Eric Rosen <displayreference target="I-D.ietf-spring-sr-policy-yang" to="SR-POLICY-YANG"/>
Juniper Networks <references>
US <name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1
997.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
126.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
545.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
462.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
760.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
271.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
286.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
360.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
606.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
032.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
012.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
402.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
660.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
754.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
256.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
986.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
272.xml"/>
<!-- draft-ietf-idr-bgp-model-18
IESG State: expired as of 2024-10-21. -->
Email: erosen@juniper.net]]></artwork> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.
</figure> ietf-idr-bgp-model.xml"/>
<figure> <!-- draft-ietf-idr-bgp-ls-sr-policy-14
<artwork><![CDATA[Arjun Sreekantiah In queue: EDIT*R as of 2025-06-29-->
Cisco Systems
US
Email: asreekan@cisco.com]]></artwork> <reference anchor="I-D.ietf-idr-bgp-ls-sr-policy" target="https://datatracker.ie
</figure> tf.org/doc/html/draft-ietf-idr-bgp-ls-sr-policy-16">
<front>
<title>Advertisement of Segment Routing Policies using BGP Link-State</tit
le>
<author initials="S." surname="Previdi" fullname="Stefano Previdi">
<organization>Individual</organization>
</author>
<author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" rol
e="editor">
<organization>Cisco Systems</organization>
</author>
<author initials="J." surname="Dong" fullname="Jie Dong">
<organization>Huawei Technologies</organization>
</author>
<author initials="H." surname="Gredler" fullname="Hannes Gredler">
<organization>RtBrick Inc.</organization>
</author>
<author initials="J." surname="Tantsura" fullname="Jeff Tantsura">
<organization>Nvidia</organization>
</author>
<date month="March" day="3" year="2025" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-sr-policy-16"
/>
<figure> </reference>
<artwork><![CDATA[Acee Lindem
Cisco Systems
US
Email: acee@cisco.com]]></artwork> <!-- draft-ietf-spring-sr-policy-yang-04
</figure> IESG State: I-D Exists as of 03/06/25. -->
<figure> <reference anchor="I-D.ietf-spring-sr-policy-yang" target="https://datatracker.i
<artwork><![CDATA[Siva Sivabalan etf.org/doc/html/draft-ietf-spring-sr-policy-yang-04">
Cisco Systems <front>
US <title>YANG Data Model for Segment Routing Policy</title>
<author initials="K." surname="Raza" fullname="Syed Kamran Raza" role="edi
tor">
<organization>Cisco Systems</organization>
</author>
<author initials="T." surname="Saleh" fullname="Tarik Saleh">
<organization>Cisco Systems</organization>
</author>
<author initials="Z." surname="Shunwan" fullname="Zhuang Shunwan">
<organization>Huawei Technologies</organization>
</author>
<author initials="D." surname="Voyer" fullname="Daniel Voyer">
<organization>Bell Canada</organization>
</author>
<author initials="M." surname="Durrani" fullname="Muhammad Durrani">
<organization>Equinix</organization>
</author>
<author initials="S." surname="Matsushima" fullname="Satoru Matsushima">
<organization>SoftBank</organization>
</author>
<author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
<organization>Juniper Networks</organization>
</author>
<date month="November" day="22" year="2024" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-spring-sr-policy-yang-04"
/>
Email: msiva@cisco.com]]></artwork> </reference>
</figure>
<figure> <!-- [I-D.ietf-idr-bgp-sr-segtypes-ext]
<artwork><![CDATA[Imtiyaz Mohammad draft-ietf-idr-bgp-sr-segtypes-ext-07 is a companion document moving throug
Arista Networks h the queue simultaneously -->
India
Email: imtiyaz@arista.com]]></artwork> <!--[rfced] We note that this document has an Informative Reference
</figure> entry to draft-ietf-idr-bgp-sr-segtypes-ext-07, which is moving
through the RFC Editor queue simultaneously.
<figure> We have updated this reference entry to use its RFC-to-be form as we
<artwork><![CDATA[Gaurav Dawra assume the intent is to publish them together.
Cisco Systems
US
Email: gdawra.ietf@gmail.com]]></artwork> However, since this dependency is not normative, please indicate if
</figure> your preference is not to wait if
draft-ietf-idr-bgp-sr-segtypes-ext-07 has not completed AUTH48 prior
to this document (in which case, we would revert to the I-D version of
the reference entry). -->
<figure> <reference anchor="RFC9831" target="https://www.rfc-editor.org/info/rfc9831">
<artwork><![CDATA[Peng Shaofu <front>
ZTE Corporation <title>Segment Routing Segment Types Extensions for BGP SR Policy</title>
China <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" rol
e="editor">
<organization>Cisco Systems</organization>
</author>
<author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
<organization>Cisco Systems</organization>
</author>
<author initials="S." surname="Previdi" fullname="Stefano Previdi">
<organization>Huawei Technologies</organization>
</author>
<author initials="P." surname="Mattes" fullname="Paul Mattes">
<organization>Microsoft</organization>
</author>
<author initials="D." surname="Jain" fullname="Dhanendra Jain">
<organization>Google</organization>
</author>
<date month="July" year="2025" />
</front>
<seriesInfo name="RFC" value="9831" />
<seriesInfo name='DOI' value='10.17487/RFC9831'/>
Email: peng.shaofu@zte.com.cn]]></artwork> </reference>
</figure>
<figure> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
<artwork><![CDATA[Steven Lin 456.xml"/>
Calix <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
USA 952.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
552.xml"/>
</references>
</references>
Email: steven.lin@calix.com]]></artwork> <section numbered="false" toc="default">
</figure> <name>Acknowledgments</name>
<t>The authors of this document would like to thank <contact
fullname="Shyam Sethuram"/>, <contact fullname="John Scudder"/>,
<contact fullname="Przemyslaw Krol"/>, <contact fullname="Alex
id Bogdanov"/>, <contact fullname="Nandan Saha"/>, <contact fullname="Bruno
Decraene"/>, <contact fullname="Gurusiddesh Nidasesi"/>, <contact
fullname="Kausik Majumdar"/>, <contact fullname="Zafar Ali"/>, <contact
fullname="Swadesh Agarwal"/>, <contact fullname="Jakob Heitz"/>,
<contact fullname="Viral Patel"/>, <contact fullname="Peng Shaofu"/>,
<contact fullname="Cheng Li"/>, <contact fullname="Martin Vigoureux"/>,
<contact fullname="John Scudder"/>, <contact fullname="Vincent Roca"/>,
<contact fullname="Brian Haberman"/>, <contact fullname="Mohamed
Boucadair"/>, <contact fullname="Shunwan Zhuang"/>, <contact
fullname="Andrew Alston"/>, <contact fullname="Jeffrey (Zhaohui)
Zhang"/>, <contact fullname="Nagendra Nainar"/>, <contact
fullname="Rajesh Melarcode Venkateswaran"/>, <contact fullname="Nat
Kao"/>, <contact fullname="Boris Hassanov"/>, <contact fullname="Vincent
Roca"/>, <contact fullname="Russ Housley"/>, and <contact fullname="Dan
Romascanu"/> for their comments and review of this document. The authors
would like to thank <contact fullname="Susan Hares"/> for her detailed
shepherd review that helped in improving the document.</t>
</section> </section>
</middle> <section anchor="Contributors" numbered="false" toc="default">
<name>Contributors</name>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.1997"?>
<?rfc include="reference.RFC.2119"?> <contact fullname="Eric Rosen">
<organization>Juniper Networks</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>erosen@juniper.net</email>
</address>
</contact>
<?rfc include="reference.RFC.8174"?> <contact fullname="Arjun Sreekantiah">
<organization>Cisco Systems</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>asreekan@cisco.com</email>
</address>
</contact>
<?rfc include="reference.RFC.8126"?> <contact fullname="Acee Lindem">
<organization>Cisco Systems</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>acee@cisco.com</email>
</address>
</contact>
<?rfc include="reference.RFC.2545"?> <contact fullname="Siva Sivabalan">
<organization>Cisco Systems</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>msiva@cisco.com</email>
</address>
</contact>
<?rfc include="reference.RFC.5462"?> <contact fullname="Imtiyaz Mohammad">
<organization>Arista Networks</organization>
<address>
<postal>
<country>India</country>
</postal>
<email>imtiyaz@arista.com</email>
</address>
</contact>
<?rfc include="reference.RFC.4760"?> <contact fullname="Gaurav Dawra">
<organization>Cisco Systems</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>gdawra.ietf@gmail.com</email>
</address>
</contact>
<?rfc include="reference.RFC.4271"?> <contact fullname="Peng Shaofu">
<organization>ZTE Corporation</organization>
<address>
<postal>
<country>China</country>
</postal>
<email>peng.shaofu@zte.com.cn</email>
</address>
</contact>
<?rfc include="reference.RFC.6286"?> <contact fullname="Steven Lin">
<organization>Calix</organization>
<address>
<postal>
<country>United States of America</country>
</postal>
<email>steven.lin@calix.com</email>
</address>
</contact>
<?rfc include="reference.RFC.4360"?> </section>
<?rfc include="reference.RFC.7606"?> <!-- [rfced] We had the following questions/comments related to
abbreviation use throughout the document:
<?rfc include="reference.RFC.3032"?> a) FYI - We have added expansions for abbreviations upon first use per
Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each
expansion in the document carefully to ensure correctness.
<?rfc include="reference.RFC.9012"?> b) We will update to have the abbreviation expanded upon first use and
then use the abbreviation thereafter (per the guidance at
https://www.rfc-editor.org/styleguide/part2/#exp_abbrev) *except when
in a sub-TLV name* for the following abbreviations unless we hear
objection.
<?rfc include="reference.RFC.8402"?> Segment Routing (SR)
candidate path (CP)
subsequent address family (SAFI)
Route Reflectors (RR)
Binding SID (BSID)
Explicit NULL Label Policy (ENLP)
<?rfc include="reference.RFC.8660"?> c) May we expand NH as Next Hop?
<?rfc include="reference.RFC.8754"?> -->
<?rfc include="reference.RFC.9256"?> <!--[rfced] We had the following questions related to terminology use
throughout the document.
<?rfc include="reference.RFC.8986"?> a) Should the following terms be made consistent with regard to
</references> capitalization, hyphenation, etc.? If so, please let us know how to
update.
<references title="Informational References"> SR Policy vs. SR policy vs. policy
<?rfc include="reference.RFC.4272"?> BGP UPDATE message vs. BGP update message vs. BGP Update
Route Target Extended Community vs. route target extended community
Tunnel Type vs. Tunnel-Type vs. Tunnel-type
Flags field vs. Flag octet (singular and field vs. octet)
Color vs. color
Endpoint vs. endpoint
Length field vs. length field (and simply length)
"Drop Upon Invalid" behavior vs. "drop upon invalid" config
Segment Type vs. segment type vs. Segment Types sub-TLV (plural)
Explicit NULL Label vs. Explicit NULL label
<?rfc include="reference.I-D.ietf-idr-bgp-model"?> b) We see that some field names are in double quotes. Should this be
made uniform throughout? If so, are quotation marks or no quotation
marks preferred?
<?rfc include="reference.I-D.ietf-idr-bgp-ls-sr-policy"?> "Flags" field vs. Flags field
<?rfc include="reference.I-D.ietf-spring-sr-policy-yang"?> -->
<?rfc include="reference.I-D.ietf-idr-bgp-sr-segtypes-ext"?> <!--[rfced] Please review uses of the slash character "/" in the body
of the document and consider whether "and", "or", or "and/or"
might be clearer for the reader. -->
<?rfc include="reference.RFC.4456"?> <!-- [rfced] Please review the "Inclusive Language" portion of the
online Style Guide
<https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed. Updates of this
nature typically result in more precise language, which is
helpful for readers.
<?rfc include="reference.RFC.6952"?> Note that our script did not flag any words in particular, but this
should still be reviewed as a best practice.
-->
<?rfc include="reference.RFC.9552"?>
</references>
</back> </back>
</rfc> </rfc>
 End of changes. 457 change blocks. 
1222 lines changed or deleted 2018 lines changed or added

This html diff was produced by rfcdiff 1.48.