<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-bess-srv6-services-15" number="9252" submissionType="IETF" category="std" consensus="true" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

  <!-- xml2rfc v2v3 conversion 3.12.2 -->

  <front>
    <title abbrev="SRv6-Based BGP Overlay Services">BGP Overlay Services Based on Segment Routing over IPv6 (SRv6)</title>
    <seriesInfo name="RFC" value="9252"/>
    <author fullname="Gaurav Dawra" initials="G" role="editor" surname="Dawra">
      <organization>LinkedIn</organization>
      <address>
        <postal>
          <street/>
          <country>United States of America</country>
        </postal>
        <email>gdawra.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Ketan Talaulikar" initials="K" role="editor" surname="Talaulikar">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <street/>
          <country>India</country>
        </postal>
        <email>ketant.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Robert Raszuk" initials="R" surname="Raszuk">
      <organization>NTT Network Innovations</organization>
      <address>
        <postal>
          <street>940 Stewart Dr.</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94085</code>
          <country>United States of America</country>
        </postal>
        <email>robert@raszuk.net</email>
      </address>
    </author>
    <author fullname="Bruno Decraene" initials="B" surname="Decraene">
      <organization>Orange</organization>
      <address>
        <postal>
          <street/>
          <country>France</country>
        </postal>
        <email>bruno.decraene@orange.com</email>
      </address>
    </author>
    <author fullname="Shunwan Zhuang" initials="S" surname="Zhuang">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street/>
          <country>China</country>
        </postal>
        <email>zhuangshunwan@huawei.com</email>
      </address>
    </author>
    <author fullname="Jorge Rabadan" initials="J" surname="Rabadan">
      <organization>Nokia</organization>
      <address>
        <postal>
          <street/>
          <country>United States of America</country>
        </postal>
        <email>jorge.rabadan@nokia.com</email>
      </address>
    </author>
<date year="2022" month="July"/>
    <area>RTG</area>
    <workgroup>BESS</workgroup>
    <keyword>BGP</keyword>
    <keyword>SRv6</keyword>
    <abstract>

      <t>This document defines procedures and messages for SRv6-based BGP
      services, including Layer 3 Virtual Private Network (L3VPN),
      Ethernet VPN (EVPN), and Internet services. It builds on
      "BGP/MPLS IP Virtual Private Networks (VPNs)" (RFC 4364) and
      "BGP MPLS-Based Ethernet VPN" (RFC 7432).</t>
    </abstract>
  </front>
  <middle>
    <section anchor="INTRO" numbered="true" toc="default">
      <name>Introduction</name>
      <t>SRv6 refers to Segment Routing instantiated on the IPv6 data plane
      <xref target="RFC8402" format="default"/>.</t>
      <t>BGP is used to advertise the reachability of prefixes of a particular
      service from an egress Provider Edge (PE) to ingress PE nodes.</t>
      <t>SRv6-based BGP services refer to the Layer 3 (L3) and Layer 2 (L2) overlay
      services with BGP as the control plane and SRv6 as the data plane. This document
      defines procedures and messages for SRv6-based BGP services, including
      L3VPN, EVPN, and Internet services. It builds on "BGP/MPLS IP Virtual
      Private Networks (VPNs)" <xref target="RFC4364" format="default"/> and
      "BGP MPLS-Based Ethernet VPN" <xref target="RFC7432" format="default"/>.</t>
      <t>SRv6 SID refers to an SRv6 Segment Identifier, as defined in <xref
      target="RFC8402" format="default"/>.</t>  
      
      <t>SRv6 Service SID refers to an SRv6 SID associated with one of the
      service-specific SRv6 Endpoint Behaviors on the advertising
      PE router, such as (but not limited to) End.DT (look up in the
      Virtual Routing and Forwarding (VRF) table) or End.DX (cross-connect to a
      next hop) behaviors in the case of
      L3VPN service, as defined in <xref
      target="RFC8986" format="default"/>. This document describes how existing
      BGP messages between PEs may carry SRv6 Service SIDs to interconnect PEs
      and form VPNs.</t>
      <t>To provide SRv6 service with best-effort connectivity, the egress PE
      signals an SRv6 Service SID with the BGP overlay service route. The
      ingress PE encapsulates the payload in an outer IPv6 header where the
      destination address is the SRv6 Service SID provided by the egress
      PE. The underlay between the PEs only needs to support
      plain IPv6 forwarding <xref target="RFC8200" format="default"/>.</t>
      <t>To provide SRv6 service in conjunction with an underlay Service Level Agreement (SLA) from the
      ingress PE to the egress PE, the egress PE colors the overlay service
      route with a Color Extended Community <xref target="RFC9012" format="default"/> for steering flows
      for those routes, as specified in <xref target="I-D.ietf-spring-segment-routing-policy" section="8" sectionFormat="of" format="default"/>. The ingress PE
      encapsulates the payload packet in an outer IPv6 header with the 
      SR Policy segment list associated with the related SLA along with the SRv6
      Service SID associated with the route using the Segment Routing Header
      (SRH) <xref target="RFC8754" format="default"/>. The underlay nodes whose SRv6
      SIDs are part of the SRH segment list <bcp14>MUST</bcp14> support the SRv6 data
      plane.</t>
      <section anchor="REQ" numbered="true" toc="default">
        <name>Requirements Language</name>
	        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</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 anchor="SIDTLV" numbered="true" toc="default">
      <name>SRv6 Services TLVs</name>
      <t>This document extends the use of the BGP Prefix-SID attribute <xref target="RFC8669" format="default"/> to carry SRv6 SIDs and their associated information
      with the BGP address families that are listed further in this
      section.</t>
      <t>The SRv6 Service TLVs are defined as two new TLVs of the BGP
      Prefix-SID attribute to achieve signaling of SRv6 SIDs for L3 and L2
      services.</t>
      <dl newline="true" spacing="normal">
        <dt>SRv6 L3 Service TLV:</dt>
	<dd>This TLV encodes Service SID information for
          SRv6-based L3 services. It corresponds to the equivalent
          functionality provided by an MPLS label when received with a Layer 3
          service route, as defined in <xref target="RFC4364" format="default"/>, <xref target="RFC4659" format="default"/>, <xref target="RFC8950" format="default"/>, and <xref target="RFC9136" format="default"/>. Some SRv6 Endpoint Behaviors that may be
          encoded are, but not limited to, End.DX4, End.DT4, End.DX6, End.DT6,
          and End.DT46.</dd>
          <dt>SRv6 L2 Service TLV:</dt>
	  <dd>This TLV encodes Service SID information for
          SRv6-based L2 services. It corresponds to the equivalent
          functionality provided by an MPLS label for Ethernet VPN (EVPN)
          Route Types for Layer 2 services, as defined in <xref
	  target="RFC7432" format="default"/>. Some SRv6
          Endpoint Behaviors that may be encoded are, but not limited to,
          End.DX2, End.DX2V, End.DT2U, and End.DT2M.</dd>
      </dl>
      <t>When an egress PE is enabled for BGP Services over the SRv6 data plane,
      it signals one or more SRv6 Service SIDs enclosed in an SRv6 Service TLV(s)
      within the BGP Prefix-SID attribute attached to Multiprotocol BGP (MP-BGP) Network Layer Reachability Information (NLRI) defined in
      <xref target="RFC4760" format="default"/>, <xref target="RFC4659" format="default"/>, <xref target="RFC8950" format="default"/>, <xref target="RFC7432" format="default"/>, <xref target="RFC4364" format="default"/>, and 
        <xref target="RFC9136" format="default"/>, where applicable, as described in Sections <xref target="L3BGP" format="counter"/> and <xref target="EVPNBGP" format="counter"/>.</t>
      <t>The support for BGP Multicast VPN (MVPN) Services <xref target="RFC6513" format="default"/> with SRv6 is outside the scope of this document.</t>
      <t>The following depicts the SRv6 Service TLVs encoded in the BGP
      Prefix-SID attribute:</t>
      <figure anchor="SRV6SVCTLV">
        <name>SRv6 Service TLVs</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   TLV Type    |         TLV Length            |   RESERVED    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   SRv6 Service Sub-TLVs                                      //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <dl newline="true" spacing="normal">
        <dt>TLV Type (1 octet):</dt>
	<dd>This field is assigned a value from IANA's
          "BGP Prefix-SID TLV Types" subregistry. It is set to 5 for the SRv6 L3
          Service TLV. It is set to 6 for the SRv6 L2 Service TLV.</dd>
          <dt>TLV Length (2 octets):</dt>
	  <dd>This field specifies the total length, in octets, of
          the TLV Value.</dd>
          <dt>RESERVED (1 octet):</dt>
	  <dd>This field is reserved; it <bcp14>MUST</bcp14> be set to 0
          by the sender and ignored by the receiver.</dd>
          <dt>SRv6 Service Sub-TLVs (variable):</dt>
	  <dd>This field contains SRv6
          service-related information and is encoded as an unordered list of
          Sub-TLVs whose format is described below.</dd>
      </dl>
      <t>A BGP speaker receiving a route containing the BGP Prefix-SID attribute
      with one or more SRv6 Service TLVs observes the following rules when
      advertising the received route to other peers:</t>
      <ul spacing="normal">
        <li>If the BGP next hop is unchanged during the advertisement, the SRv6
          Service TLVs, including any unrecognized Types of Sub-TLV and
          Sub-Sub-TLV, <bcp14>SHOULD</bcp14> be propagated further. In addition, all Reserved
          fields in the TLV, Sub-TLV, or Sub-Sub-TLV <bcp14>MUST</bcp14> be propagated
          unchanged.</li>
        <li>If the BGP next hop is changed, the TLVs, Sub-TLVs, and Sub-Sub-TLVs
          <bcp14>SHOULD</bcp14> be updated with the locally allocated SRv6 SID information.
          Any received Sub-TLVs and Sub-Sub-TLVs that are unrecognized <bcp14>MUST</bcp14> be
          removed.</li>
      </ul>
    </section>
    <section anchor="SRv6-TLV" numbered="true" toc="default">
      <name>SRv6 Service Sub-TLVs</name>
      <t>The format of a single SRv6 Service Sub-TLV is depicted below:</t>
      <figure anchor="SRV6SVCSTLV">
        <name>SRv6 Service Sub-TLVs</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRv6 Service  |    SRv6 Service               | SRv6 Service //
| Sub-TLV       |    Sub-TLV                    | Sub-TLV      //
| Type          |    Length                     | Value        //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <dl newline="true" spacing="normal">
        <dt>SRv6 Service Sub-TLV Type (1 octet):</dt>
	<dd>This field identifies the type of SRv6
          service information. It is assigned a value from IANA's
          "SRv6 Service Sub-TLV Types" subregistry.</dd>
          <dt>SRv6 Service Sub-TLV Length (2 octets):</dt>
	  <dd>This field specifies the total
          length, in octets, of the Sub-TLV Value field.</dd>
          <dt>SRv6 Service Sub-TLV Value (variable):</dt>
	  <dd>This field contains data specific to
          the Sub-TLV Type. In addition to fixed-length data, it contains
          other properties of the SRv6 service encoded as a set of SRv6
          Service Data Sub-Sub-TLVs whose format is described in <xref
	  target="SID-SERVICE-DATA-TLV" format="default"/> below.</dd>
      </dl>
      <section anchor="SRv6-SID-INFO" numbered="true" toc="default">
        <name>SRv6 SID Information Sub-TLV</name>
        <t>SRv6 Service Sub-TLV Type 1 is assigned for the SRv6 SID Information
        Sub-TLV. This Sub-TLV contains a single SRv6 SID along with its
        properties. Its encoding is depicted below:</t>
        <figure anchor="SRV6SIDINFO">
          <name>SRv6 SID Information 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRv6 Service  |    SRv6 Service               |               |
| Sub-TLV       |    Sub-TLV                    |               |
| Type=1        |    Length                     |  RESERVED1    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SRv6 SID Value (16 octets)                                  //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Svc SID Flags |   SRv6 Endpoint Behavior      |   RESERVED2   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  SRv6 Service Data Sub-Sub-TLVs                              //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <dl newline="true" spacing="normal">
          <dt>SRv6 Service Sub-TLV Type (1 octet):</dt>
	  <dd>This field is set to 1 to
            represent the SRv6 SID Information Sub-TLV.</dd>
            <dt>SRv6 Service Sub-TLV Length (2 octets):</dt>
	    <dd>This field contains the
            total length, in octets, of the Value field of the Sub-TLV.</dd>
            <dt>RESERVED1 (1 octet):</dt>
	    <dd>This field <bcp14>MUST</bcp14> be set to 0 by the sender and ignored
            by the receiver.</dd>
            <dt>SRv6 SID Value (16 octets):</dt>
	    <dd>This field encodes an SRv6 SID, as defined in
            <xref target="RFC8986" format="default"/>.</dd>
            <dt>SRv6 Service SID Flags (1 octet):</dt>
	    <dd>This field encodes SRv6 Service SID
            Flags -- none are currently defined. It <bcp14>MUST</bcp14> be set to 0 by the
            sender and any unknown flags <bcp14>MUST</bcp14> be ignored by the receiver.</dd>
            <dt>SRv6 Endpoint Behavior (2 octets):</dt>
	    <dd>This field encodes the SRv6 Endpoint
            Behavior codepoint value that is associated with the SRv6 SID. The
            codepoints used are from IANA's "SRv6 Endpoint Behaviors" subregistry
            under the "Segment Routing" registry that was
            introduced by <xref target="RFC8986" format="default"/>. The opaque SRv6 Endpoint
            Behavior (i.e., value 0xFFFF) <bcp14>MAY</bcp14> be used when the advertising
            router wishes to abstract the actual behavior of its locally
            instantiated SRv6 SID.</dd>
            <dt>RESERVED2 (1 octet):</dt>
	    <dd>This field <bcp14>MUST</bcp14> be set to 0 by the sender and ignored
            by the receiver.</dd>
            <dt>SRv6 Service Data Sub-Sub-TLV Value (variable):</dt>
	    <dd>This field is used to
            advertise properties of the SRv6 SID. It is encoded as a set of
            SRv6 Service Data Sub-Sub-TLVs.</dd>
        </dl>
        <t>The choice of SRv6 Endpoint Behavior of the SRv6 SID is entirely up
        to the originator of the advertisement. While Sections <xref target="L3BGP"
	format="counter"/> and <xref target="EVPNBGP" format="counter"/> list the
	SRv6 Endpoint Behaviors that are
        normally expected to be used by the specific route advertisements, the
        reception of other SRv6 Endpoint Behaviors (e.g., new behaviors that
        may be introduced in the future) is not considered an error. An
        unrecognized SRv6 Endpoint Behavior <bcp14>MUST NOT</bcp14> be considered invalid by the
        receiver, except for behaviors that involve the use of arguments (refer
        to <xref target="SRv6-SID-STRUCTURE" format="default"/> for details on argument
        validation). An implementation <bcp14>MAY</bcp14> log a rate-limited warning when it
        receives an unexpected behavior.</t>
        <t>When multiple SRv6 SID Information Sub-TLVs are present, the
        ingress PE <bcp14>SHOULD</bcp14> use the SRv6 SID from the first instance of the
        Sub-TLV. An implementation <bcp14>MAY</bcp14> provide a local policy to override this
        selection.</t>
      </section>
      <section anchor="SID-SERVICE-DATA-TLV" numbered="true" toc="default">
        <name>SRv6 Service Data Sub-Sub-TLVs</name>
        <t>The format of the SRv6 Service Data Sub-Sub-TLV is depicted
        below:</t>
        <figure anchor="SRV6SVCDATASTLV">
          <name>SRv6 Service Data Sub-Sub-TLVs</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Service Data |  Sub-Sub-TLV Length               |Sub-Sub TLV //
| Sub-Sub-TLV  |                                   |  Value     //
| Type         |                                   |            //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <dl newline="true" spacing="normal">
          <dt>SRv6 Service Data Sub-Sub-TLV Type (1 octet):</dt>
	  <dd>This field identifies the
            type of Sub-Sub-TLV. It is assigned a value from IANA's
            "SRv6 Service Data Sub-Sub-TLV Types" subregistry.</dd>
            <dt>SRv6 Service Data Sub-Sub-TLV Length (2 octets):</dt>
	    <dd>This field specifies the
            total length, in octets, of the Sub-Sub-TLV Value field.</dd>
            <dt>SRv6 Service Data Sub-Sub-TLV Value (variable):</dt>
	    <dd>This field contains data
            specific to the Sub-Sub-TLV Type.</dd>
        </dl>
        <section anchor="SRv6-SID-STRUCTURE" numbered="true" toc="default">
          <name>SRv6 SID Structure Sub-Sub-TLV</name>
          <t>SRv6 Service Data Sub-Sub-TLV Type 1 is assigned for the SRv6 SID
          Structure Sub-Sub-TLV. The SRv6 SID Structure Sub-Sub-TLV is used to
          advertise the lengths of the individual parts of the SRv6 SID, as
          defined in <xref target="RFC8986" format="default"/>. The terms Locator Block and
          Locator Node correspond to the B and N parts, respectively, of the
          SRv6 Locator that is defined in <xref target="RFC8986"
	  section="3.1" sectionFormat="of" format="default"/>. It is
	  carried as Sub-Sub-TLV in the SRv6 SID Information Sub-TLV.</t>
          <figure anchor="SRV6SIDSTRUCT">
            <name>SRv6 SID Structure Sub-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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRv6 Service  |    SRv6 Service               | Locator Block |
| Data Sub-Sub  |    Data Sub-Sub-TLV           | Length        |
| -TLV Type=1   |    Length                     |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Locator Node  | Function      | Argument      | Transposition |
| Length        | Length        | Length        | Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transposition |
| Offset        |
+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <dl newline="true" spacing="normal">
            <dt>SRv6 Service Data Sub-Sub-TLV Type (1 octet):</dt>
	    <dd>This field is set to 1 to represent the SRv6 SID Structure Sub-Sub-TLV.</dd>
            <dt>SRv6 Service Data Sub-Sub-TLV Length (2 octets):</dt>
	    <dd>This field contains a total length of 6 octets.</dd>
            <dt>Locator Block Length (1 octet):</dt>
	    <dd>This field contains the length of the SRv6 SID Locator Block in bits.</dd>
            <dt>Locator Node Length (1 octet):</dt>
	    <dd>This field contains the length of the SRv6 SID Locator Node in bits.</dd>
            <dt>Function Length (1 octet):</dt>
	    <dd>This field contains the length of the SRv6 SID Function in bits.</dd>
            <dt>Argument Length (1 octet):</dt>
	    <dd>This field contains the length of the SRv6 SID Argument in bits.</dd>
            <dt>Transposition Length (1 octet):</dt>
	    <dd>This field is the size in bits for the part of the
            SID that has been transposed (or shifted) into an MPLS Label
            field.</dd>
            <dt>Transposition Offset (1 octet):</dt>
	    <dd>This field is the offset position in bits
              for the part of the SID that has been transposed (or shifted) into an
              MPLS Label field.</dd>
          </dl>
          <t><xref target="SIDENCODE" format="default"/> describes mechanisms for the signaling of
          the SRv6 Service SID by transposing a variable part of the SRv6 SID
          value and carrying this variable part in existing MPLS Label fields to achieve
          more efficient packing of those service prefix NLRIs in BGP update
          messages. The SRv6 SID Structure Sub-Sub-TLV contains appropriate
          length fields when the SRv6 Service SID is signaled in split parts
          to enable the receiver to put together the SID accurately.</t>
          <t>Transposition Offset indicates the bit position, and Transposition
          Length indicates the number of bits that are being taken out of the
          SRv6 SID value and encoded in the MPLS Label field. The
          bits that have been shifted out <bcp14>MUST</bcp14> be set to 0 in the SID
          value.</t>
          <t>A Transposition Length of 0 indicates nothing is transposed and
          that the entire SRv6 SID value is encoded in the SID Information
          Sub-TLV. In this case, the Transposition Offset <bcp14>MUST</bcp14> be set to
          0.</t>
          <t>The size of the MPLS Label field limits the bits transposed from
          the SRv6 SID value into it. For example, the size of the MPLS Label field is 20 bits in
          <xref target="RFC4364" format="default"/> and <xref target="RFC8277"
	  format="default"/>, and the size is 24 bits in <xref target="RFC7432" format="default"/>.</t>
          <t>As defined in <xref target="RFC8986" format="default"/>, the sum of the Locator
          Block Length (LBL), Locator Node Length (LNL), Function Length (FL),
          and Argument Length (AL) fields <bcp14>MUST</bcp14> be less than or equal to 128
          and greater than the sum of Transposition Offset and Transposition
          Length.</t>
          <t>As an example, consider that the sum of the Locator Block and the
          Locator Node parts is 64. For an SRv6 SID where the entire Function
          part of size 16 bits is transposed, the transposition offset is
          set to 64 and the transposition length is set to 16. While for an
          SRv6 SID for which the FL is 24 bits and only the lower
          order 20 bits are transposed (e.g., due to the limit of the MPLS
          Label field size), the transposition offset is set to 68 and
          the transposition length is set to 20.</t>
          <t>BGP speakers that do not support this specification may
          misinterpret, on the reception of an SRv6-based BGP service route
          update, the part of the SRv6 SID encoded in an MPLS Label field(s) as
          MPLS label values for MPLS-based services. Implementations
          supporting this specification <bcp14>MUST</bcp14> provide a mechanism to control
          the advertisement of SRv6-based BGP service routes on a per-neighbor
          and per-service basis. The details of deployment designs and
          implementation options are outside the scope of this document.</t>
          <t>Arguments may be generally applicable for SIDs of only specific
          SRv6 Endpoint Behaviors (e.g., End.DT2M); therefore, the AL
          <bcp14>MUST</bcp14> be set to 0 for SIDs where the Argument is not
          applicable. A receiver is unable to validate the applicability of
          arguments for SRv6 Endpoint Behaviors that are unknown to it and
          hence <bcp14>MUST</bcp14> ignore SRv6 SIDs with arguments (indicated by a non-zero
          AL) with unknown SRv6 Endpoint Behaviors. For SIDs
          corresponding to an SRv6 Endpoint Behavior that is known, a receiver <bcp14>MUST</bcp14>
          validate that the consistency of the AL with the
          specific SRv6 Endpoint Behavior definition.</t>
        </section>
      </section>
    </section>
    <section anchor="SIDENCODE" numbered="true" toc="default">
      <name>Encoding SRv6 SID Information</name>
      <t>The SRv6 Service SID(s) for a BGP service prefix is carried in the
      SRv6 Services TLVs of the BGP Prefix-SID attribute.</t>
      <t>For certain types of BGP Services, like L3VPN where a per-VRF SID
      allocation is used (i.e., End.DT4 or End.DT6 behaviors), the same SID is
      shared across multiple NLRIs, thus providing efficient packing. However,
      for certain other types of BGP Services, like EVPN Virtual Private Wire
      Service (VPWS) where a per-PW
      SID allocation is required (i.e., End.DX2 behavior), each NLRI would
      have its own unique SID, thereby resulting in inefficient packing.</t>
      <t> To achieve efficient packing, this document allows either 1) the
      encoding of the SRv6 Service SID as a whole in the SRv6 Services
      TLVs or 2) the encoding of only the common part of the SRv6 SID (e.g.,
      Locator) in the SRv6 Services TLVs and the encoding of the variable
      (e.g., Function or Argument parts) in the existing label fields
      specific to that service encoding.
      This later form of encoding is referred to as the Transposition Scheme,
      where the SRv6 SID Structure Sub-Sub-TLV describes the sizes of the
      parts of the SRv6 SID and also indicates the offset of the variable part
      along with its length in the SRv6 SID value. The use of the Transposition
      Scheme is <bcp14>RECOMMENDED</bcp14> for the specific service encodings that allow it,
      as described further in Sections <xref target="L3BGP" format="counter"/> and <xref target="EVPNBGP" format="counter"/>.</t>
      <t>As an example, for the EVPN VPWS service prefix described further in
      <xref target="PEREVI" format="default"/>, the Function part of the SRv6 SID is encoded in
      the MPLS Label field of the NLRI, and the SID value in the SRv6 Services
      TLV carries only the Locator part with the SRv6 SID Structure
      Sub-Sub-TLV. The SRv6 SID Structure Sub-Sub-TLV defines the lengths of
      Locator Block, Locator Node, and Function parts (Arguments are not
      applicable for the End.DX2 behavior). Transposition Offset indicates the
      bit position, and Transposition Length indicates the number of bits that
      are being taken out of the SID and put into the label field.</t>
      <t>In yet another example, for the EVPN Ethernet Auto-Discovery (A-D) per Ethernet
      Segment (ES) route described further in <xref target="PERES" format="default"/>, only the
      Argument of the SID needs to be signaled. This Argument part of the SRv6
      SID <bcp14>MAY</bcp14> be transposed in the Ethernet Segment Identifier (ESI) Label
      field of the ESI Label extended community, and the SID value in the SRv6
      Services TLV is set to 0 along with the inclusion of the SRv6 SID Structure
      Sub-Sub-TLV. The SRv6 SID Structure Sub-Sub-TLV defines the lengths of
      Locator Block, Locator Node, Function, and Argument parts. The offset and
      length of the Argument part SID value moved to the label field is set in
      transposition offset and length of the SID Structure TLV. The receiving
      router is then able to put together the entire SRv6 Service SID (e.g.,
      for the End.DT2M behavior), placing the label value received in the ESI
      Label field of the Ethernet A-D per ES route into the correct
      transposition offset and length in the SRv6 SID with the End.DT2M
      behavior received for an EVPN Route Type 3 value.</t>
    </section>
    <section anchor="L3BGP" numbered="true" toc="default">
      <name>BGP-Based L3 Service over SRv6</name>
      <t>BGP egress nodes (egress PEs) advertise a set of reachable prefixes.
      Standard BGP update propagation schemes <xref target="RFC4271" format="default"/>, which
      may make use of route reflectors <xref target="RFC4456" format="default"/>, are used to
      propagate these prefixes. BGP ingress nodes (ingress PEs) receive these
      advertisements and may add the prefix to the RIB in an appropriate
      VRF.</t>
      <t>Egress PEs that support SRv6-based L3 services advertise overlay
      service prefixes along with a Service SID enclosed in an SRv6 L3 Service
      TLV within the BGP Prefix-SID attribute. This TLV serves two purposes --
      first, it indicates that the egress PE supports SRv6 overlay, and the BGP
      ingress PE receiving this route <bcp14>MUST</bcp14> perform IPv6 encapsulation and
      insert an SRH <xref target="RFC8754" format="default"/> when required; second, it
      indicates the value of the Service SID to be used in the
      encapsulation.</t>
      <t>Thus, the Service SID signaled only has local significance at the
      egress PE, where it may be allocated or configured on a per-Customer-Edge (CE) or
      per-VRF basis. In practice, the SID may encode a cross-connect to a
      specific address family table (End.DT) or next hop / interface (End.DX), as
      defined in <xref target="RFC8986" format="default"/>.</t>
      <t>The SRv6 Service SID <bcp14>SHOULD</bcp14> be routable (refer to <xref target="RFC8986" section="3.3" sectionFormat="of" format="default"/>) within the Autonomous System (AS) of the egress PE and serves the dual
      purpose of providing reachability between ingress PE and egress PE while
      also encoding the SRv6 Endpoint Behavior.</t>
      <t>When steering for SRv6 services is based on shortest path forwarding
      (e.g., best effort or IGP Flexible Algorithm <xref target="I-D.ietf-lsr-flex-algo" format="default"/>) to the egress PE, the ingress PE
      encapsulates the IPv4 or IPv6 customer packet in an outer IPv6 header
      (using H.Encaps or H.Encaps.Red flavors specified in <xref target="RFC8986" format="default"/>), where the destination address is the SRv6 Service
      SID associated with the related BGP route update. Therefore, the ingress
      PE <bcp14>MUST</bcp14> perform a resolvability check for the SRv6 Service SID before
      considering the received prefix for the BGP best path computation. The
      resolvability is evaluated as per <xref target="RFC4271" format="default"/>. If the SRv6
      SID is reachable via more than one forwarding table, local policy is
      used to determine which table to use. The result of an SRv6 Service SID
      resolvability (e.g., when provided via IGP Flexible Algorithm) can be
      ignored if the ingress PE has a local policy that allows an alternate
      steering mechanism to reach the egress PE. The details of such steering
      mechanisms are outside the scope of this document.</t>
      <t>For service over SRv6 core, the egress PE sets the BGP next hop to one of
      its IPv6 addresses. Such an address <bcp14>MAY</bcp14> be covered by the SRv6 Locator
      from which the SRv6 Service SID is allocated. The BGP next hop is used for
      tracking the reachability of the egress PE based on existing BGP
      procedures.</t>
      <t>When the BGP route received at an ingress PE is colored with a
      Color Extended Community and a valid SRv6 Policy is available, the
      steering for service flows is performed as described in <xref target="I-D.ietf-spring-segment-routing-policy" section="8" sectionFormat="of" format="default"/>. When the
      ingress PE determines (with the help of the SRv6 SID Structure) that the
      Service SID belongs to the same SRv6 Locator as the last SRv6 SID (of
      the egress PE) in the SR Policy segment list, it <bcp14>MAY</bcp14> exclude that last
      SRv6 SID when steering the service flow. For example, the effective
      segment list of the SRv6 Policy associated with SID list &lt;S1, S2,
      S3&gt; would be &lt;S1, S2, S3-Service-SID&gt;.</t>
      <section anchor="L3BGPVPNv4" numbered="true" toc="default">
        <name>IPv4 VPN over SRv6 Core</name>
	<t>The MP_REACH_NLRI over SRv6 core is encoded according to IPv4 VPN
   unicast over IPv6 core defined in <xref target="RFC8950" format="default"/>.</t>
        <t>The label field of IPv4-VPN NLRI is encoded as specified in <xref target="RFC8277" format="default"/> with the 20-bit Label Value set to the whole or a
        portion of the Function part of the SRv6 SID when the Transposition
        Scheme of encoding (<xref target="SIDENCODE" format="default"/>) is used; otherwise,
        it is set to Implicit NULL. When using the Transposition Scheme, the
        Transposition Length <bcp14>MUST</bcp14> be less than or equal to 20 and less than or
        equal to the FL.</t>
        <t>The SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The
        SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DX4, End.DT4, or
        End.DT46.</t>
      </section>
      <section anchor="L3BGPVPNv6" numbered="true" toc="default">
        <name>IPv6 VPN over SRv6 Core</name>
        <t>The MP_REACH_NLRI over SRv6 core is encoded according to IPv6 VPN
        over IPv6 core, as defined in <xref target="RFC4659" format="default"/>.</t>
        <t>The label field of the IPv6-VPN NLRI is encoded as specified in <xref target="RFC8277" format="default"/> with the 20-bit Label Value set to the whole or a
        portion of the Function part of the SRv6 SID when the Transposition
        Scheme of encoding (<xref target="SIDENCODE" format="default"/>) is used; otherwise,
        it is set to Implicit NULL. When using the Transposition Scheme, the
        Transposition Length <bcp14>MUST</bcp14> be less than or equal to 20 and less than or
        equal to the FL.</t>
        <t>The SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The
        SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DX6, End.DT6, or
        End.DT46.</t>
      </section>
      <section anchor="L3BGPINTv4" numbered="true" toc="default">
        <name>Global IPv4 over SRv6 Core</name>
        <t>The MP_REACH_NLRI over SRv6 core is encoded according to IPv4 over
        IPv6 core, as defined in <xref target="RFC8950" format="default"/>.</t>
        <t>SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The
        SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DX4, End.DT4, or
        End.DT46.</t>
      </section>
      <section anchor="L3BGPINTv6" numbered="true" toc="default">
        <name>Global IPv6 over SRv6 Core</name>
        <t>The MP_REACH_NLRI over SRv6 core is encoded according to <xref target="RFC2545" format="default"> </xref>.</t>
        <t>The SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The
        SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DX6, End.DT6, or
        End.DT46.</t>
      </section>
    </section>
    <section anchor="EVPNBGP" numbered="true" toc="default">
      <name>BGP-Based Ethernet VPN (EVPN) over SRv6</name>
      <t><xref target="RFC7432" format="default"/> provides an extendable method of building an
      EVPN overlay. It primarily focuses on MPLS-based EVPNs,
      and <xref target="RFC8365" format="default"/> extends to IP-based EVPN overlays. <xref target="RFC7432" format="default"/> defines Route Types 1, 2, and 3, which carry prefixes
      and MPLS Label fields; the Label fields have a specific use for MPLS
      encapsulation of EVPN traffic. Route Type 5 carrying MPLS label
      information (and thus encapsulation information) for an EVPN is defined in
      <xref target="RFC9136" format="default"/>. Route Types 6, 7, and 8 are defined in <xref target="RFC9251" format="default"/>.</t>
      <ul spacing="normal">
        <li>Ethernet Auto-Discovery (A-D) route (Route Type 1)</li>
        <li>MAC/IP Advertisement route (Route Type 2)</li>
        <li>Inclusive Multicast Ethernet Tag route (Route Type 3)</li>
        <li>Ethernet Segment route (Route Type 4)</li>
        <li>IP Prefix route (Route Type 5)</li>
        <li>Selective Multicast Ethernet Tag route (Route Type 6)</li>
        <li>Multicast Membership Report Synch route (Route Type 7)</li>
        <li>Multicast Leave Synch route (Route Type 8)</li>
      </ul>
      <t>The specifications for other EVPN Route Types are outside the scope
      of this document.</t>
      <t>To support SRv6-based EVPN overlays, one or more SRv6 Service SIDs
      are advertised with Route Types 1, 2, 3, and 5. The SRv6 Service SID(s)
      per Route Type is advertised in SRv6 L3/L2 Service TLVs within the BGP
      Prefix-SID attribute. Signaling of the SRv6 Service SID(s) serves two
      purposes -- first, it indicates that the BGP egress device supports SRv6
      overlay, and the BGP ingress device receiving this route <bcp14>MUST</bcp14> perform
      IPv6 encapsulation and insert an SRH <xref target="RFC8754" format="default"/> when
      required; second, it indicates the value of the Service SID(s) to be
      used in the encapsulation.</t>
      <t>The SRv6 Service SID <bcp14>SHOULD</bcp14> be routable (refer to <xref target="RFC8986" section="3.3" sectionFormat="of" format="default"/>) within the AS of the egress PE and serves the dual
      purpose of providing reachability between the ingress PE and egress PE while
      also encoding the SRv6 Endpoint Behavior.</t>
      <t>When steering for SRv6 services is based on shortest path forwarding
      (e.g., best effort or IGP Flexible Algorithm <xref target="I-D.ietf-lsr-flex-algo" format="default"/>) to the egress PE, the ingress PE
      encapsulates the customer Layer 2 Ethernet packet in an outer IPv6
      header (using H.Encaps.L2 or H.Encaps.L2.Red flavors specified in <xref target="RFC8986" format="default"/>) where the destination address is the SRv6 Service
      SID associated with the related BGP route update. Therefore, the ingress
      PE <bcp14>MUST</bcp14> perform a resolvability check for the SRv6 Service SID before
      considering the received prefix for the BGP best path computation. The
      resolvability is evaluated as per <xref target="RFC4271" format="default"/>. If the SRv6
      SID is reachable via more than one forwarding table, local policy is
      used to determine which table to use. The result of an SRv6 Service SID
      resolvability (e.g., when provided via IGP Flexible Algorithm) can be
      ignored if the ingress PE has a local policy that allows an alternate
      steering mechanism to reach the egress PE. The details of such steering
      mechanisms are outside the scope of this document.</t>
      <t>For service over SRv6 core, the egress PE sets the BGP next hop to one
      of its IPv6 addresses. Such an address <bcp14>MAY</bcp14> be covered by
      the SRv6 Locator
      from which the SRv6 Service SID is allocated. The BGP next hop is used for
      tracking the reachability of the egress PE based on existing BGP
      procedures.</t>
      <t>When the BGP route received at an ingress PE is colored with a
      Color Extended Community and a valid SRv6 Policy is available, the
      steering for service flows is performed as described in <xref target="I-D.ietf-spring-segment-routing-policy" section="8" sectionFormat="of" format="default"/>. When the
      ingress PE determines (with the help of the SRv6 SID Structure) that the
      Service SID belongs to the same SRv6 Locator as the last SRv6 SID (of
      the egress PE) in the SR Policy segment list, it <bcp14>MAY</bcp14> exclude that last
      SRv6 SID when steering the service flow. For example, the effective
      segment list of the SRv6 Policy associated with SID list &lt;S1, S2,
      S3&gt; would be &lt;S1, S2, S3-Service-SID&gt;.</t>
      <section anchor="RT1" numbered="true" toc="default">
        <name>Ethernet Auto-Discovery Route over SRv6 Core</name>
        <t>Ethernet A-D routes are Route Type 1, as defined in
        <xref target="RFC7432" format="default"/>, and may be used to achieve
	split-horizon filtering, fast convergence, and aliasing.
        EVPN Route Type 1 is also used in EVPN-VPWS as well as in EVPN-flexible
	cross-connect, mainly to advertise point-to-point service IDs.</t>
        <t>As a reminder, EVPN Route Type 1 is encoded as follows:</t>
        <figure anchor="EVPNRT1">
          <name>EVPN Route Type 1</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
                +-----------------------------------------+
                |  RD (8 octets)                          |
                +-----------------------------------------+
                |  Ethernet Segment Identifier (10 octets)|
                +-----------------------------------------+
                |  Ethernet Tag ID (4 octets)             |
                +-----------------------------------------+
                |  MPLS label (3 octets)                  |
                +-----------------------------------------+
]]></artwork>
        </figure>
        <section anchor="PERES" numbered="true" toc="default">
          <name>Ethernet A-D per ES Route</name>
          <t>Ethernet A-D per ES route NLRI encoding over SRv6 core is as per
          <xref target="RFC7432" format="default"/>.</t>
          <t>The 24-bit ESI Label field of the ESI Label extended community
          carries the whole or a portion of the Argument part of the SRv6 SID
          when the ESI filtering approach is used along with the Transposition
          Scheme of encoding (<xref target="SIDENCODE" format="default"/>);
	  otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When
          using the Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14> be
          less than or equal to 24 and less than or equal to the AL.</t>
          <t>A Service SID enclosed in an SRv6 L2 Service TLV within the BGP
          Prefix-SID attribute is advertised along with the A-D route. The
          SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be End.DT2M. When the ESI filtering
          approach is used, the Service SID is used to signal the Arg.FE2 SID
          Argument for applicable End.DT2M behavior <xref target="RFC8986" format="default"/>.
          When the local-bias approach <xref target="RFC8365" format="default"/> is used, the
          Service SID <bcp14>MAY</bcp14> be of value 0.</t>
        </section>
        <section anchor="PEREVI" numbered="true" toc="default">
          <name>Ethernet A-D per EVI Route</name>
          <t>Ethernet A-D per EVPN Instance (EVI) route NLRI encoding over SRv6 core is
          similar to what is described in <xref target="RFC7432" format="default"/> and <xref target="RFC8214" format="default"/>
          with the following change:</t>
          <dl newline="true" spacing="normal">
            <dt>MPLS Label:</dt>
	    <dd>The 24-bit field carries the whole or a portion of
              the Function part of the SRv6 SID when the Transposition Scheme
              of encoding (<xref target="SIDENCODE" format="default"/>) is used;
	      otherwise,  it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When using the Transposition Scheme, the
              Transposition Length <bcp14>MUST</bcp14> be less than or equal to 24 and less
              than or equal to the FL.</dd>
          </dl>
          <t>A Service SID enclosed in an SRv6 L2 Service TLV within the BGP
          Prefix-SID attribute is advertised along with the A-D route. The
          SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DX2, End.DX2V, or
          End.DT2U.</t>
        </section>
      </section>
      <section anchor="RT2" numbered="true" toc="default">
        <name>MAC/IP Advertisement Route over SRv6 Core</name>
        <t>EVPN Route Type 2 is used to advertise unicast traffic Media Access Control (MAC)
	+ IP address reachability through MP-BGP to all other PEs in a given EVPN
        instance.</t>
        <t>As a reminder, EVPN Route Type 2 is encoded as follows:</t>
        <figure anchor="EVPNRT2">
          <name>EVPN Route Type 2</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
                +-----------------------------------------+
                |  RD (8 octets)                          |
                +-----------------------------------------+
                |  Ethernet Segment Identifier (10 octets)|
                +-----------------------------------------+
                |  Ethernet Tag ID (4 octets)             |
                +-----------------------------------------+
                |  MAC Address Length (1 octet)           |
                +-----------------------------------------+
                |  MAC Address (6 octets)                 |
                +-----------------------------------------+
                |  IP Address Length (1 octet)            |
                +-----------------------------------------+
                |  IP Address (0, 4, or 16 octets)        |
                +-----------------------------------------+
                |  MPLS Label1 (3 octets)                 |
                +-----------------------------------------+
                |  MPLS Label2 (0 or 3 octets)            |
                +-----------------------------------------+
]]></artwork>
        </figure>
        <t>NLRI encoding over SRv6 core is similar to what is described in <xref target="RFC7432"
	format="default"/> with the following changes:</t>
        <dl newline="true" spacing="normal">
          <dt>MPLS Label1:</dt>
	  <dd>This is associated with the SRv6 L2 Service TLV. This
            24-bit field carries the whole or a portion of the Function part
            of the SRv6 SID when the Transposition Scheme of encoding (<xref target="SIDENCODE" format="default"/>) is used; otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When using the
            Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14> be less than
            or equal to 24 and less than or equal to the FL.</dd>
            <dt>MPLS Label2:</dt>
	    <dd>This is associated with the SRv6 L3 Service TLV. This
            24-bit field carries the whole or a portion of the Function part
            of the SRv6 SID when the Transposition Scheme of encoding (<xref target="SIDENCODE" format="default"/>) is used; otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When using the
            Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14> be less than
            or equal to 24 and less than or equal to the FL.</dd>
        </dl>
        <t>Service SIDs enclosed in the SRv6 L2 Service TLV and optionally in the SRv6
        L3 Service TLV within the BGP Prefix-SID attribute are advertised along
        with the MAC/IP Advertisement route.</t>
        <t>Described below are different types of Route Type 2
        advertisements.</t>
        <section numbered="true" toc="default">
          <name>MAC/IP Advertisement Route with MAC Only</name>
          <dl newline="true" spacing="normal">
            <dt>MPLS Label1:</dt>
	    <dd>This is associated with the SRv6 L2 Service TLV. This
              24-bit field carries the whole or a portion of the Function part
              of the SRv6 SID when the Transposition Scheme of encoding (<xref target="SIDENCODE" format="default"/>) is used; otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When
              using the Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14> be
              less than or equal to 24 and less than or equal to the FL.</dd>
          </dl>
          <t>A Service SID enclosed in an SRv6 L2 Service TLV within the BGP
          Prefix-SID attribute is advertised along with the route. The SRv6
          Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DX2 or End.DT2U.</t>
        </section>
        <section numbered="true" toc="default">
          <name>MAC/IP Advertisement Route with MAC+IP</name>
          <dl newline="true" spacing="normal">
            <dt>MPLS Label1:</dt>
	    <dd>This is associated with the SRv6 L2 Service TLV. This
              24-bit field carries the whole or a portion of the Function part
              of the SRv6 SID when the Transposition Scheme of encoding (<xref
	      target="SIDENCODE" format="default"/>) is used; otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When
              using the Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14> be
              less than or equal to 24 and less than or equal to the FL.</dd>
              <dt>MPLS Label2:</dt>
	      <dd>This is associated with the SRv6 L3 Service TLV. This
              24-bit field carries the whole or a portion of the Function part
              of the SRv6 SID when the Transposition Scheme of encoding (<xref
	      target="SIDENCODE" format="default"/>) is used; otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits. When
              using the Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14> be
              less than or equal to 24 and less than or equal to the FL.</dd>
          </dl>
          <t>An L2 Service SID enclosed in an SRv6 L2 Service TLV within the
          BGP Prefix-SID attribute is advertised along with the route. In
          addition, an L3 Service SID enclosed in an SRv6 L3 Service TLV
          within the BGP Prefix-SID attribute <bcp14>MAY</bcp14> also be advertised along
          with the route. The SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these:
          for the L2 Service SID, End.DX2 or End.DT2U and for the L3 Service SID,
          End.DT46, End.DT4, End.DT6, End.DX4, or End.DX6.</t>
        </section>
      </section>
      <section anchor="RT3" numbered="true" toc="default">
        <name>Inclusive Multicast Ethernet Tag Route over SRv6 Core</name>
        <t>EVPN Route Type 3 is used to advertise multicast traffic
        reachability information through MP-BGP to all other PEs in a given
        EVPN instance.</t>
        <t>As a reminder, EVPN Route Type 3 is encoded as follows:</t>
        <figure anchor="EVPNRT3">
          <name>EVPN Route Type 3</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
               +---------------------------------------+
               |  RD (8 octets)                        |
               +---------------------------------------+
               |  Ethernet Tag ID (4 octets)           |
               +---------------------------------------+
               |  IP Address Length (1 octet)          |
               +---------------------------------------+
               |  Originating Router's IP Address      |
               |          (4 or 16 octets)             |
               +---------------------------------------+
]]></artwork>
        </figure>
        <t>NLRI encoding over SRv6 core is similar to what is described in <xref target="RFC7432" format="default"/>.</t>
        <t>The P-Multicast Service Interface (PMSI) Tunnel Attribute <xref target="RFC6514" format="default"/> is used to identify
        the Provider tunnel (P-tunnel) used for sending Broadcast, Unknown Unicast, or Multicast
        (BUM) traffic. The format of the PMSI Tunnel Attribute is encoded as
        follows over SRv6 core: </t>
        <figure anchor="PMSITA">
          <name>PMSI Tunnel Attribute</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
	       +---------------------------------------+
               |  Flag (1 octet)                       |
               +---------------------------------------+
               |  Tunnel Type (1 octet)                |
               +---------------------------------------+
               |  MPLS label (3 octets)                 |
               +---------------------------------------+
               |  Tunnel Identifier (variable)         |
               +---------------------------------------+
]]></artwork>
        </figure>
        <dl newline="true" spacing="normal">
          <dt>Flag:</dt>
	  <dd>This field has a value of 0, as defined per <xref target="RFC7432"
	  format="default"/>.</dd>
          <dt>Tunnel Type:</dt>
	  <dd>This field is defined per <xref target="RFC6514" format="default"/>.</dd>
          <dt>MPLS label:</dt>
	  <dd>This 24-bit field carries the whole or a portion of
            the Function part of the SRv6 SID when ingress replication is used
            and the Transposition Scheme of encoding (<xref target="SIDENCODE"
	    format="default"/>) is used; otherwise, it is set as defined
            in <xref target="RFC6514" format="default"/>. When using the Transposition Scheme,
            the Transposition Length <bcp14>MUST</bcp14> be less than or equal to 24 and less
            than or equal to the FL.</dd>
            <dt>Tunnel Identifier:</dt>
	    <dd>This field is the IP address of egress PE.</dd>
        </dl>
        <t>A Service SID enclosed in an SRv6 L2 Service TLV within the
        BGP Prefix-SID attribute is advertised along with the route. The SRv6
        Endpoint Behavior <bcp14>SHOULD</bcp14> be End.DT2M.</t>
        <ul spacing="normal">
	     
          <li>When ESI-based filtering is used for multihoming or Ethernet Tree (E-Tree)
            procedures, the ESI Filtering Argument (the Arg.FE2 notation
            introduced in <xref target="RFC8986" format="default"/>) of the Service SID carried
            along with EVPN Route Type 1 <bcp14>SHOULD</bcp14> be merged with the
            applicable End.DT2M SID of Route Type 3 advertised by the remote PE by
            doing a bitwise logical-OR operation to create a single SID on
            the ingress PE. Details of split-horizon, ESI-based filtering
            mechanisms for multihoming are described in <xref target="RFC7432" format="default"/>. Details of filtering mechanisms for
            Leaf-originated BUM traffic in EVPN E-Tree services are provided
            in <xref target="RFC8317" format="default"/>.</li>
          <li>When "local-bias" is used as the multihoming
            split-horizon method, the ESI Filtering Argument <bcp14>SHOULD NOT</bcp14> be
            merged with the corresponding End.DT2M SID on the ingress PE.
            Details of the local-bias procedures are described
            in <xref target="RFC8365" format="default"/>.</li>
        </ul>
        <t>Usage of multicast trees as P-tunnels is outside the scope of this
        document.</t>
      </section>
      <section anchor="RT4" numbered="true" toc="default">
        <name>Ethernet Segment Route over SRv6 Core</name>
        <t>As a reminder, an Ethernet Segment route (i.e., EVPN Route Type 4)
        is encoded as follows: </t>
        <figure anchor="EVPNRT4">
          <name>EVPN Route Type 4</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
               +---------------------------------------+
               |  RD (8 octets)                        |
               +---------------------------------------+
               |  Ethernet Tag ID (4 octets)           |
               +---------------------------------------+
               |  IP Address Length (1 octet)          |
               +---------------------------------------+
               |  Originating Router's IP Address      |
               |          (4 or 16 octets)             |
               +---------------------------------------+
]]></artwork>
        </figure>
        <t>NLRI encoding over SRv6 core is similar to what is described in <xref target="RFC7432" format="default"/>.</t>
        <t>SRv6 Service TLVs within the BGP Prefix-SID attribute are not
        advertised along with this route. The processing of the route has not
        changed -- it remains as described in <xref target="RFC7432" format="default"/>.</t>
      </section>
      <section anchor="RT5" numbered="true" toc="default">
        <name>IP Prefix Route over SRv6 Core</name>
        <t>EVPN Route Type 5 is used to advertise IP address reachability
        through MP-BGP to all other PEs in a given EVPN instance. The IP
        address may include a host IP prefix or any specific subnet.</t>
        <t>As a reminder, EVPN Route Type 5 is encoded as follows: </t>
        <figure anchor="EVPNRT5">
          <name>EVPN Route Type 5</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
               +-----------------------------------------+
               |  RD (8 octets)                          |
               +-----------------------------------------+
               |  Ethernet Segment Identifier (10 octets)|
               +-----------------------------------------+
               |  Ethernet Tag ID (4 octets)             |
               +-----------------------------------------+
               |  IP Prefix Length (1 octet)             |
               +-----------------------------------------+
               |  IP Prefix (4 or 16 octets)             |
               +-----------------------------------------+
               |  GW IP Address (4 or 16 octets)         |
               +-----------------------------------------+
               |  MPLS Label (3 octets)                  |
               +-----------------------------------------+
]]></artwork>
        </figure>
        <t>NLRI encoding over SRv6 core is similar to what is described in <xref target="RFC9136" format="default"/>
        with the following change:</t>
        <dl newline="true" spacing="normal">
          <dt>MPLS Label:</dt>
	  <dd>This 24-bit field carries the whole or a portion of
            the Function part of the SRv6 SID when the Transposition Scheme of
            encoding (<xref target="SIDENCODE" format="default"/>) is used;
	    otherwise, it is set to Implicit NULL in the higher-order 20 bits (i.e., as 0x000030). In either case, the value is set in the 24 bits.
            When using the Transposition Scheme, the Transposition Length <bcp14>MUST</bcp14>
            be less than or equal to 24 and less than or equal to the FL.</dd>
        </dl>
        <t>The SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The
        SRv6 Endpoint Behavior <bcp14>SHOULD</bcp14> be one of these: End.DT4, End.DT6,
        End.DT46, End.DX4, or End.DX6.</t>
      </section>
      <section anchor="RT678" numbered="true" toc="default">
        <name>EVPN Multicast Routes (Route Types 6, 7, and 8) over SRv6 Core</name>
        <t>These routes do not require the advertisement of SRv6 Service TLVs
        along with them. Similar to EVPN Route Type 4, the BGP next hop is
        equal to the IPv6 address of egress PE.</t>
      </section>
    </section>
    <section anchor="ERROR" numbered="true" toc="default">
      <name>Error Handling</name>
      <t>In case of any errors encountered while processing SRv6 Service TLVs,
      the details of the error <bcp14>SHOULD</bcp14> be logged for further analysis.</t>
      <t>If multiple instances of the SRv6 L3 Service TLV are encountered, all but
      the first instance <bcp14>MUST</bcp14> be ignored.</t>
      <t>If multiple instances of the SRv6 L2 Service TLV are encountered, all but
      the first instance <bcp14>MUST</bcp14> be ignored.</t>
      <t>An SRv6 Service TLV is considered malformed in the following cases:</t>
      <ul spacing="normal">
        <li>The TLV Length is less than 1.</li>
        <li>The TLV Length is inconsistent with the length of the BGP Prefix-SID
          attribute.</li>
        <li>At least one of the constituent Sub-TLVs is malformed.</li>
      </ul>
      <t>An SRv6 Service Sub-TLV is considered malformed in the following
      case:</t>
      <ul spacing="normal">
        <li>The Sub-TLV Length is inconsistent with the length of the
          enclosing SRv6 Service TLV.</li>
      </ul>
      <t>An SRv6 SID Information Sub-TLV is considered malformed in the
      following cases:</t>
          <ul spacing="normal">
            <li>The Sub-TLV Length is less than 21.</li>
            <li>The Sub-TLV Length is inconsistent with the length of the
              enclosing SRv6 Service TLV.</li>
            <li>At least one of the constituent Sub-Sub-TLVs is malformed.</li>
          </ul>
      <t>An SRv6 Service Data Sub-Sub-TLV is considered malformed in the
      following case:</t>
      <ul spacing="normal">
        <li>The Sub-Sub-TLV Length is inconsistent with the length of the
          enclosing SRv6 service Sub-TLV.</li>
      </ul>
      <t>Any TLV, Sub-TLV, or Sub-Sub-TLV is not considered malformed because
      its Type is unrecognized.</t>
      <t>Any TLV, Sub-TLV, or Sub-Sub-TLV is not considered malformed because
      of failing any semantic validation of its Value field.</t>
      <t>The SRv6 overlay service requires the Service SID for forwarding. The
      treat-as-withdraw action <xref target="RFC7606" format="default"/> <bcp14>MUST</bcp14> be performed when
      at least one malformed SRv6 Service TLV is present in the BGP Prefix-SID
      attribute.</t>
      <t>The SRv6 SID value in the SRv6 SID Information Sub-TLV is invalid when the SID
      Structure Sub-Sub-TLV transposition length is greater than the number of
      bits of the label field or if any of the conditions for the fields of
      the Sub-Sub-TLV, as specified in <xref target="SRv6-SID-STRUCTURE" format="default"/>, is
      not met. The transposition offset and length <bcp14>MUST</bcp14> be 0 when the
      Sub-Sub-TLV is advertised along with routes where the Transposition Scheme
      is not applicable (e.g., for global IPv6 service <xref target="RFC2545" format="default"/> where there is no label field). The path having any such
      Prefix-SID attribute without any valid SRv6 SID information <bcp14>MUST</bcp14> be
      considered ineligible during the selection of the best path for the
      corresponding prefix.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section numbered="true" toc="default">
    <name>BGP Prefix-SID TLV Types Registry</name>
        <t>This document introduces two new TLV Types of the BGP Prefix-SID
        attribute. IANA has assigned Type values in the "BGP
        Prefix-SID TLV Types" subregistry as follows: </t>
        <table anchor="IANAPFXSIDTYPES" align="center">
          <name>BGP Prefix-SID TLV Types Subregistry</name>
	  <thead>
	    <tr>
	      <th>Value</th>
	      <th>Type</th>
              <th>Reference</th>
	    </tr>
	  </thead>
	  <tbody>
	    <tr>
	      <td>4</td>
	      <td>Deprecated</td>
              <td>RFC 9252</td>
	    </tr>
	    <tr>
	      <td>5</td>
	      <td>SRv6 L3 Service TLV</td>
	      <td>RFC 9252</td>
	    </tr>
	    <tr>
	      <td>6</td>
	      <td>SRv6 L2 Service TLV</td>
	      <td>RFC 9252</td>
	    </tr>
	  </tbody>
        </table>
        <t>Value 4 previously corresponded to the SRv6-VPN SID TLV, which
        was specified in earlier draft versions of this document and used by early
        implementations of this specification. It was deprecated and replaced
        by the SRv6 L3 Service and SRv6 L2 Service TLVs.</t>
      </section>
      <section numbered="true" toc="default">
        <name>SRv6 Service Sub-TLV Types Registry</name>
        <t>IANA has created and now maintains a new subregistry called
        "SRv6 Service Sub-TLV Types" under the "Border Gateway Protocol (BGP)
        Parameters" registry. The registration procedures, per <xref target="RFC8126"/>, for this subregistry are according to <xref target="IANASRV6SVCTYPESAP"/>.
        </t>
        <table anchor="IANASRV6SVCTYPESAP" align="center">
          <name>SRv6 Service Sub-TLV Types Subregistry Registration Procedures</name>
	  <thead>
	    <tr>
	      <th>Range</th>
	      <th>Registration Procedures</th>
	    </tr>
	  </thead>
	  <tbody>
	    <tr>
	      <td>1-127</td>
	      <td>IETF Review</td>
	    </tr>
	    <tr>
	      <td>128-254</td>
	      <td>First Come First Served</td>
	    </tr>
	    <tr>
	      <td>255</td>
	      <td>IETF Review</td>
	    </tr>
	  </tbody>
	</table>
        <t>IANA has populated this subregistry as follows. Note that the SRv6 SID Information Sub-TLV
	is defined in this document: </t>
        <table anchor="IANASRV6DATATYPES" align="center">
          <name>SRv6 Service Sub-TLV Types Subregistry Initial Contents</name>
	  <thead>
	    <tr>
	      <th>Value</th>
	      <th>Type</th>
              <th>Reference</th>
	    </tr>
	  </thead>
	  <tbody>
	    <tr>
	      <td>0</td>
              <td>Reserved</td>
	      <td>RFC 9252</td>
	    </tr>
	    <tr>
	      <td>1</td>
              <td>SRv6 SID Information Sub-TLV</td>
	      <td>RFC 9252</td>
	    </tr>
            <tr>
	      <td>255</td>
              <td>Reserved</td>
	      <td>RFC 9252</td>
	    </tr>
	  </tbody>
	</table>
      </section>
      <section numbered="true" toc="default">
        <name>SRv6 Service Data Sub-Sub-TLV Types Registry</name>
        <t>IANA has created and now maintains a new subregistry called
        "SRv6 Service Data Sub-Sub-TLV Types" under the "Border Gateway
        Protocol (BGP) Parameters" registry. The registration procedures for this
        subregistry are according to <xref target="IANASRV6DATASSTYPESAP"/>. </t>
        <table anchor="IANASRV6DATASSTYPESAP" align="center">
          <name>SRv6 Service Data Sub-Sub-TLV Types Subregistry Registration Procedures</name>
	  <thead>
	    <tr>
	      <th>Range</th>
	      <th>Registration Procedure</th>
	    </tr>
	  </thead>
	  <tbody>
	    <tr>
	      <td>1-127</td>
	      <td>IETF Review</td>
	    </tr>
	    <tr>
	      <td>128-254</td>
	      <td>First Come First Served</td>
	    </tr>
	    <tr>
	      <td>255</td>
	      <td>IETF Review</td>
	    </tr>
	  </tbody>
	</table>
        <t>The following Sub-Sub-TLV Type is defined in this document: </t>
        <table anchor="IANASRV6DATASSTYPES" align="center">
          <name>SRv6 Service Data Sub-Sub-TLV Types Subregistry Initial Contents</name>
	  <thead>
	    <tr>
	      <th>Value</th>
	      <th>Type</th>
              <th>Reference</th>
	    </tr>
	  </thead>
	  <tbody>
	      <tr>
	      <td>0</td>
              <td>Reserved</td>
	      <td>RFC 9252</td>
	    </tr>
	    <tr>
	      <td>1</td>
              <td>SRv6 SID Structure Sub-Sub-TLV</td>
	      <td>RFC 9252</td>
	    </tr>
	    <tr>
	      <td>255</td>
              <td>Reserved</td>
	      <td>RFC 9252</td>
	    </tr>
	  </tbody>
        </table>
      </section>
      <section numbered="true" toc="default">
        <name>BGP SRv6 Service SID Flags Registry</name>
        <t>IANA has created and now maintains a new subregistry called "BGP
        SRv6 Service SID Flags" under the "Border Gateway Protocol (BGP)
        Parameters" registry. The registration procedure for this subregistry is IETF
        Review, and all 8-bit positions of the flags are currently
        unassigned.</t>
      </section>
      <section numbered="true" toc="default">
        <name>SAFI Values Registry</name> 	
        <t>IANA has added this document as a reference for value 128 
   ("MPLS-labeled VPN address") in the "SAFI Values" subregistry 
   under the "Subsequent Address Family Identifiers 
   (SAFI) Parameters" registry.</t>
      </section>
    </section>
    <section anchor="SEC" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document specifies extensions to the BGP protocol for the signaling
      of services for SRv6. These specifications leverage existing BGP
      protocol mechanisms for the signaling of various types of services. It
      also builds upon existing elements of the SR architecture (more
      specifically, SRv6). As such, this section largely provides pointers (as
      a reminder) to the security considerations of those existing
      specifications while also covering certain, newer security aspects for
      the specifications newly introduced by this document.</t>
      <section anchor="SECSESS" numbered="true" toc="default">
        <name>Considerations Related to BGP Sessions</name>
        <t>Techniques related to authentication of BGP sessions for securing
        messages between BGP peers, as discussed in the BGP specification <xref target="RFC4271" format="default"/> and in the security analysis for BGP <xref target="RFC4272" format="default"/>, apply. The discussion of the use of the TCP
        Authentication Option to protect BGP sessions is found in <xref target="RFC5925" format="default"/>, while <xref target="RFC6952" format="default"/> includes an
        analysis of BGP keying and authentication issues. This document does
        not introduce any additional BGP session security considerations.</t>
      </section>
      <section anchor="SECSVC" numbered="true" toc="default">
        <name>Considerations Related to BGP Services</name>
        <t>This document does not introduce new services or BGP NLRI types but
        extends the signaling of existing ones for SRv6. Therefore, the
        security considerations for the respective BGP services, such as <xref target="RFC8950" format="default">BGP IPv4 over IPv6 NH</xref>, <xref target="RFC4659" format="default">BGP IPv6 L3VPN</xref>, <xref target="RFC2545" format="default">BGP
        IPv6</xref>, <xref target="RFC7432" format="default">BGP EVPN</xref>, and <xref target="RFC9136" format="default">IP EVPN</xref>, apply as discussed in their respective
        documents.
	<xref target="RFC8669" format="default"/> discusses mechanisms to prevent
        the leaking of the BGP Prefix-SID attribute, which carries SR information,
        outside the SR domain.</t>
        <t>As a reminder, several of the BGP services (i.e., the AFI/SAFI used
        for their signaling) were initially introduced for one encapsulation
        mechanism and later extended for others, e.g., EVPN MPLS <xref target="RFC7432" format="default"/> was extended for Virtual eXtensible Local Area Network (VXLAN) encapsulation and Network Virtualization Using Generic Routing Encapsulation (NVGRE) <xref target="RFC8365" format="default"/>. <xref target="RFC9012" format="default"/> enables the use of
        various IP encapsulation mechanisms along with different BGP SAFIs for
        their respective services. The existing filtering mechanisms for
        preventing the leak of the encapsulation information (carried in BGP
        attributes) and preventing the advertisement of prefixes from the
        provider's internal address space (especially the SRv6 Block, as
        discussed in <xref target="RFC8986" format="default"/>) to external peers (or into the
        Internet) also apply in the case of SRv6.</t>
        <t>Specific to SRv6, a misconfiguration or error in the BGP
        filtering mechanisms mentioned above may result in exposing information, such as SRv6
        Service SIDs to external peers or other unauthorized entities.
        However, an attempt to exploit this information or to raise an attack
        by injecting packets into the network (e.g., customer networks in case
        of VPN services) is mitigated by the existing SRv6 data plane security
        mechanisms, as described in the next section.</t>
      </section>
      <section anchor="SECSRV6" numbered="true" toc="default">
        <name>Considerations Related to SR over IPv6 Data Plane</name>
        <t>This section provides a brief reminder and an overview of the
        security considerations related to SRv6 with pointers to existing
        specifications. This document introduces no new security
        considerations of its own from the SRv6 data plane perspective.</t>
        <t>SRv6 operates within a trusted SR domain. The data packets
        corresponding to service flows between PE routers are encapsulated
        (using SRv6 SIDs advertised via BGP) and carried within this trusted
        SR domain (e.g., within a single AS or between multiple ASes within a
        single provider network).</t>
        <t>The security considerations of the SR architecture are
        covered by <xref target="RFC8402" format="default"/>. More detailed security
        considerations, specifically of SRv6 and SRH, are covered by <xref target="RFC8754" format="default"/> as they relate to SR Attacks (Section <xref target="RFC8754" section="7.1" sectionFormat="bare"/>), Service
        Theft (Section <xref target="RFC8754" section="7.2" sectionFormat="bare"/>), and Topology Disclosure (Section <xref target="RFC8754" section="7.3" sectionFormat="bare"/>).


	As such, an
        operator deploying SRv6 <bcp14>MUST</bcp14> follow the considerations described in
        <xref target="RFC8754" section="7" sectionFormat="of" format="default"/> to implement the infrastructure
        Access Control Lists (ACLs) and the recommendations described in <xref target="RFC2827" format="default">BCP 38</xref> and <xref target="RFC3704" format="default">BCP 84</xref>.</t>
        <t>The SRv6 deployment and SID allocation guidelines, as described in
        <xref target="RFC8986" format="default"/>, simplify the deployment of the ACL filters
        (e.g., a single ACL corresponding to the SRv6 Block applied to the
        external interfaces on border nodes is sufficient to block packets
        destined to any SRv6 SID in the domain from external/unauthorized
        networks). While there is an assumed trust model within an SR domain,
        such that any node sending a packet to an SRv6 SID is assumed to be
        allowed to do so, there is also the option of using an SRH Hashed Message Authentication
	Code (HMAC) TLV <xref target="RFC8754" format="default"/>, as described in <xref
	target="RFC8986" format="default"/>, for validation.</t>
        <t>   The SRv6 Endpoint Behaviors implementing the services signaled
   in this document are defined in <xref target="RFC8986" format="default"/>; hence, the security
   considerations of that document apply. These considerations
        are independent of the protocol used for service deployment, i.e.,
        independent of BGP signaling of SRv6 services.</t>
        <t>These considerations help protect transit traffic as well as
        services, such as VPNs, to avoid service theft or injection of traffic
        into customer VPNs.</t>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-spring-segment-routing-policy" to="SEGMENT-ROUTING-POLICY"/>
    <displayreference target="I-D.ietf-lsr-flex-algo" to="IGP-FLEX-ALGO"/>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7432.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7606.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6514.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4456.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8669.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9136.xml"/>
	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9251.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8950.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8365.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2545.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4659.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8317.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8214.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8277.xml"/>
      </references>
      <references>
        <name>Informative References</name>

<reference anchor="I-D.ietf-spring-segment-routing-policy">
   <front>
      <title>Segment Routing Policy Architecture</title>
      <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
         <organization>Cisco Systems</organization>
      </author>
      <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" role="editor">
         <organization>Cisco Systems</organization>
      </author>
      <author initials="D." surname="Voyer" fullname="Daniel Voyer">
         <organization>Bell Canada</organization>
      </author>
      <author initials="A." surname="Bogdanov" fullname="Alex Bogdanov">
         <organization>British Telecom</organization>
      </author>
      <author initials="P." surname="Mattes" fullname="Paul Mattes">
         <organization>Microsoft</organization>
      </author>
      <date month="March" day="22" year="2022" />
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-spring-segment-routing-policy-22" />
</reference>

<reference anchor="I-D.ietf-lsr-flex-algo">
   <front>
      <title>IGP Flexible Algorithm</title>
      <author initials="P" surname="Psenak" fullname="Peter Psenak" role="editor">
	 <organization>Cisco Systems</organization>
      </author>
      <author initials="S" surname="Hegde" fullname="Shraddha Hegde">
	 <organization>Juniper Networks</organization>
      </author>
      <author initials="C" surname="Filsfils" fullname="Clarence Filsfils">
	 <organization>Cisco Systems</organization>
      </author>
      <author initials="K" surname="Talaulikar" fullname="Ketan Talaulikar">
	 <organization>Arrcus, Inc</organization>
      </author>
      <author initials="A" surname="Gulko" fullname="Arkadiy Gulko">
	 <organization>Edward Jones</organization>
      </author>
      <date month="May" day="18" year="2022" />
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lsr-flex-algo-20"/>
</reference>

        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2827.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3704.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4272.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6952.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6513.xml"/>
	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
      </references>
    </references>
        <section anchor="ACK" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>The authors of this document would like to thank <contact fullname="Stephane
      Litkowski"/>, <contact fullname="Rishabh Parekh"/>, <contact fullname="Xiejingrong"/>,
      <contact fullname="Rajesh M."/>, <contact fullname="Mustapha Aissaoui"/>,
      <contact fullname="Alexander Vainshtein"/>, <contact fullname="Eduard Metz"/>,
      <contact fullname="Shraddha Hegde"/>, <contact fullname="Eduard Vasilenko"/>,
      <contact fullname="Ron Bonica"/>, and <contact fullname="Joel Halpern"/>
      for their comments and review of this document. The
      authors would also like to thank Document Shepherd <contact fullname="Matthew Bocci"/> for his review and AD <contact fullname="Martin Vigoureux"/> for his review that
      resulted in helpful comments for improving this document.</t>
    </section>
    <section numbered="false" toc="default">
      <name>Contributors</name>
      <contact fullname="Clarence Filsfils">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>cfilsfil@cisco.com</email>
	</address>
      </contact>

      <contact fullname="Satoru Matsushima">
	<organization>SoftBank</organization>
	<address>
	  <postal/>
	  <email>satoru.matsushima@g.softbank.co.jp</email>
	</address>
      </contact>

      <contact fullname="Dirk Steinberg">
	<organization>Steinberg Consulting</organization>
	<address>
	  <postal/>
	  <email>dirk@lapishills.com</email>
	</address>
      </contact>
      
      <contact fullname="Daniel Bernier">
	<organization>Bell Canada</organization>
	<address>
	  <postal/>
	  <email>daniel.bernier@bell.ca</email>
	</address>
      </contact>

      <contact fullname="Daniel Voyer">
	<organization>Bell Canada</organization>
	<address>
	  <postal/>
	  <email> daniel.voyer@bell.ca</email>
	</address>
      </contact>

      <contact fullname="Jonn Leddy">
	<organization>Individual</organization>
	<address>
	  <postal/>
	  <email>john@leddy.net</email>
	</address>
      </contact>

      <contact fullname="Swadesh Agrawal">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>swaagraw@cisco.com</email>
	</address>
      </contact>

      <contact fullname="Patrice Brissette">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>pbrisset@cisco.com</email>
	</address>
      </contact>

      <contact fullname="Ali Sajassi">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>sajassi@cisco.com</email>
	</address>
      </contact>

      <contact fullname="Bart Peirens">
	<organization>Proximus</organization>
	<address>
	  <postal>
	    <country>Belgium</country>
	  </postal>
	  <email>bart.peirens@proximus.com</email>
	</address>
      </contact>
      
      <contact fullname="Darren Dukes">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>ddukes@cisco.com</email>
	</address>
      </contact>

      <contact fullname="Pablo Camarilo">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>pcamaril@cisco.com</email>
	</address>
      </contact>

      <contact fullname="Shyam Sethuram">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>shyam.ioml@gmail.com</email>
	</address>
      </contact>

      <contact fullname="Zafar Ali">
	<organization>Cisco</organization>
	<address>
	  <postal/>
	  <email>zali@cisco.com</email>
	</address>
      </contact>
    </section>
  </back>  
</rfc>
