<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gong-spring-nd-advertise-srv6-locator-04" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Advertise SRv6 Locator by ND">Advertise SRv6 Locator Information by IPv6 Neighbor Discovery</title>
    <seriesInfo name="Internet-Draft" value="draft-gong-spring-nd-advertise-srv6-locator-04"/>
    <author fullname="Liyan Gong">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>gongliyan@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author fullname="Acee Lindem">
      <organization>Arrcus, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>acee.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="25"/>
    <area>General</area>
    <workgroup>SPRING</workgroup>
    <abstract>
      <?line 40?>
<t>In an SRv6 network, each SRv6 segment endpoint has at least one SRv6
 Locator. Through the SRv6 locator routes, other SRv6 segment nodes
 can steer traffic to that node. This document describes a method for an SRv6 endpoint (e.g., a host or a customer provider edge (CPE)) to advertise its SRv6 locator to a neighboring SRv6-aware router using extensions to the IPv6 Neighbor Discovery (ND) protocol. This approach eliminates the need to run a full routing protocol stack on simple endpoints, facilitating SRv6 deployment in controlled, trusted domains such as data centers and managed access networks.</t>
    </abstract>
  </front>
  <middle>
    <?line 46?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing (SR) <xref target="RFC8402"/> allows a node to steer a packet flow
   along any path. The headend is a node where the instructions for
   source routing (i.e., segments) are written into the packet.It
   hence becomes the starting node for a specific segment routing path.
   Intermediate per-path states are eliminated thanks to source
   routing. A Segment Routing Policy (SR Policy) <xref target="RFC8402"/> is an
   ordered list of segments (i.e., instructions) that represent a
   source-routed policy. The headend node is said to steer a flow into
   an SR Policy. The packets steered into an SR Policy have an ordered
   list of segments associated with that SR Policy written into them.</t>
      <t><xref target="RFC8402"/> defines an SRv6 Segment Identifier (SID) as an IPv6
   address explicitly associated with the segment. When an SRv6 SID is
   in the Destination Address field of an IPv6 header of a packet, it
   is routed through transit nodes in an IPv6 network as an IPv6
   address.</t>
      <t>The network programming paradigm for SRv6 is specified in <xref target="RFC8986"/>.
   It describes how any behavior can be bound to a SID and how any
   network program can be expressed as a combination of SIDs. It also
   describes several well-known behaviors that can be bound to SRv6
   SIDs.</t>
      <t>In an SRv6 network, each SRv6 Segment Endpoint Node must be assigned
   an SRv6 Locator, and segment IDs are generated within the address
   space of this SRv6 Locator. This document describes a method of
   advertising SRv6 locator to neighboring SRv6 Segment Endpoint nodes
   through IPv6 Neighbor Discovery protocol.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
<xref target="RFC2119"/> (Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997) and <xref target="RFC8174"/> (Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017).</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document leverages the terms defined in <xref target="RFC4861"/> and
   <xref target="RFC8986"/>. The reader is assumed to be familiar with this
   terminology.</t>
      </section>
    </section>
    <section anchor="motivation-and-applicability">
      <name>Motivation and Applicability</name>
      <t>The SRv6 locator is typically distributed within a network domain using IGP or BGP protocols, enabling other nodes to steer traffic towards the endpoint. However, there are deployment scenarios where an SRv6 segment endpoint (e.g., a server host, a lightweight CPE device) cannot or should not run a complex routing protocol suite. Manually configuring static routes for each such endpoint on the network side is operationally burdensome and does not scale. The following two typical scenarios illustrate this challenge:</t>
      <ul spacing="normal">
        <li>
          <t>Scenario 1: Deploying SRv6 on Hosts in a Data Center</t>
        </li>
      </ul>
      <artwork><![CDATA[
        +----+     +------+ IGP +------+BGP +------+
        |Host+-----+Access+-----+ Spine+----+ Core +
        +----+     +------+     +------+    +------+
                        Figure 1 
]]></artwork>
      <t>As shown in Figure 1, the SRv6 network comprises Host, Access, Spine,
   and Core segments. Information is exchanged between Access and Spine
   through IGP, and between Spine and Core using BGP.</t>
      <t>The SRv6 Locator information is transmitted between Access and Spine
   using the IGP protocol, and between Spine and Core using the BGP
   protocol. However, since Hosts generally do not support complex
   routing protocols, they cannot automatically transmit their SRv6
   Locator information to the devices.This limitation complicates the
   deployment of SRv6 networks.</t>
      <ul spacing="normal">
        <li>
          <t>Scenario 2: Static Manual Configuration at Customer Edges</t>
        </li>
      </ul>
      <artwork><![CDATA[
                               Metropolitan area network
                            +---------------------------+
                            |                           |
   +------+     +------+    |  +-----+        +------+  |
   |Host1 +-----+ CPE1 +----+--+BRAS1+--------+  CR1 |  |
   +------+     +------+    |  +-----+        +---+--+  |
                            |                     |     |
                            +---------------------+-----+
                                                  |
                                         +--------+-------------+
                                         |                      |
                                         |   Backbone Network   |
                                         |                      |
                                         +--------+-------------+
                                                  |
                            +---------------------+-----+
                            |                     |     |
   +------+     +------+    |  +-----+         +--+---+ |
   |Host2 +-----+ CPE2 +----+--+BRAS2+---------+  CR2 | |
   +------+     +------+    |  +-----+         +------+ |
                            +---------------------------+
                            Figure 2
]]></artwork>
      <t>In IP networks, customer provider edge (CPE) devices often do not
   support an IGP protocol, which makes it impossible to advertise SRv6
   locator routes for SRv6 Segment Endpoint Nodes through IGP. As shown
   in Figure 2, SIDs can only be configured manually on CPEs, and SRv6
   Locator routes can only be statically distributed, leading to operational overhead.</t>
      <t>This document addresses this gap by specifying a lightweight method for SRv6 locator advertisement using the IPv6 Neighbor Discovery protocol.The key advantages are:</t>
      <t>o Zero Additional Protocol Stack: Leverages the existing, mandatory IPv6 ND stack present on all IPv6 nodes, imposing no new protocol implementation burden on simple endpoints.</t>
      <t>o Operational Simplicity: Allows network operators to bring SRv6 endpoints into the routing domain without configuring routing protocols or numerous static routes on the access router.</t>
      <t>o Scalable Signaling: ND provides an efficient, link-local signaling mechanism suitable for a large number of endpoints on a shared segment.</t>
      <t>Applicability Scope: The mechanism defined in this document is designed for use within a single, trusted, and administratively controlled SR domain, as illustrated in the scenarios above. Primary use cases include:</t>
      <t>o Data center networks (Figure 1) where servers (hosts) are under the control of the same operator as the network fabric.</t>
      <t>o Managed access or enterprise networks (Figure 2) where CPE devices are provisioned and secured by the network operator.</t>
      <t>It is NOT RECOMMENDED for use in environments where attached nodes are untrusted (e.g., general public Internet access).</t>
    </section>
    <section anchor="process-of-advertising-srv6-locator-by-ipv6-nd">
      <name>Process of Advertising SRv6 Locator by IPv6 ND</name>
      <t>By extending the Neighbor Solicit (NS) and Neighbor Advertisement
   (NA) packets of the IPv6 Neighbor Discovery protocol to carry SRv6
   locator information, SRv6 segment endpoint nodes can advertise their
   own SRv6 locator information to neighboring SRv6 nodes, and can also
   obtain the SRv6 locator information of neighboring SRv6 nodes,
   thereby achieving the exchange of SRv6 locator information and
   facilitating the deployment of SRv6.</t>
      <t>Taking the scenario of deploying SRv6 on a host in Section 1 as an
   example, illustrate the process flow of exchanging SRv6 Locator
   information through IPv6 ND.</t>
      <t>By extending the IPv6 ND protocol to carry SRv6 Locator information,
   Hosts and Access devices can exchange all SRv6 Locator information
   within an SRv6 network, facilitating the deployment of SRv6.</t>
      <t>The SRv6 locators are advertised in IPv6 ND NS and NA packets between
   the host and access, and are advertised via IGP within the domain.
   This information is collected by the controller using NETCONF or
   BGP-LS.</t>
      <artwork><![CDATA[
                    +----------+      BGP-LS
                    |Controller|<-----------------+
                    +----------+                  |
                        ^  ^                      |
                NETCONF |  | NETCONF              |
                        |  +----------+           |
                        |             |           |
      FC00:0:11::/48    |             |           |
           +----+     +------+ IGP +------+BGP +------+
           |Host+-----+Access+-----+ Spine +---+ Core +
           +----+     +------+     +------+    +------+
              ^           ^
              |           |
              +---- ND ---+
               SRv6 Locator
                              Figure 3
]]></artwork>
      <t>The process, illustrated in Figure 3, is as follows:
   (1)An SRv6 locator is configured on the Host.</t>
      <t>(2)The Host advertises its SRv6 locator(FC00:0:11::/48) and capability in IPv6 ND packets (NS/NA) to the Access router.</t>
      <t>(3)The Access router receives the ND packets, extracts and validates the SRv6 locator information(FC00:0:11::/48).</t>
      <t>(4)Using IGP, the Access router re-advertises the learned SRv6 locator to the Spine device.To enhance scalability in deployments with a large number of endpoints, the Access router MAY aggregate multiple fine-grained locators (e.g., into a shorter prefix) before advertising.This design ensures that the fine-grained locator information from many endpoints is contained at the edge, while the core routing infrastructure deals only with aggregated prefixes.</t>
      <t>(5)The Spine device learns the SRv6 locator (FC00:0:11::/48) route through IGP.</t>
      <t>(6)A BGP neighbor relationship is established between the Spine and Core devices, and the learned SRv6 locator (FC00:0:11::/48) is sent to the Core using BGP-LS routes.</t>
      <t>(7)The Core device learns the SRv6 locator (FC00:0:11::/48) via BGP-LS.</t>
      <t>(8)A BGP neighbor relationship is established between the Core device and the controller, and the SRv6 locator (FC00:0:11::/48) is sent to the controller via BGP-LS routes.</t>
    </section>
    <section anchor="extension-of-ipv6-neighbor-discovery-options">
      <name>Extension of IPv6 Neighbor Discovery Options</name>
      <section anchor="source-srv6-locator-information-option">
        <name>Source SRv6 Locator Information Option</name>
        <t>The Source SRv6 Locator Information (SSLI) option is used to
   advertise the SRv6 locator information of the sending node to IPv6
   neighbor.</t>
        <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |R|R|R|R|      MTID             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             Metric                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Flags        | Algorithm     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  LOC Size     |   Locator (variable)                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Sub-TLVs (variable)                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>Type: 8 bits, identifier of the type of option. The value is TBA
by IANA.</t>
          </li>
          <li>
            <t>Length: 8 bits, unsigned integer. The length of the option
(including the type and length fields) in units of 8 octets.  The
value 0 is invalid.  Nodes MUST silently discard an ND packet that
contains an option with length zero.</t>
          </li>
          <li>
            <t>R: 4 bits, reserved field. It MUST be initialized to zero by the
sender and MUST be ignored by the receiver.</t>
          </li>
          <li>
            <t>MTID: 12 bits, Multi-Topology Identifier.</t>
          </li>
          <li>
            <t>Metric: 32 bits, Cost.</t>
          </li>
          <li>
            <t>Flags: 8 bits, Reserved.</t>
          </li>
          <li>
            <t>Algorithm: 8 bits Algorithm:</t>
          </li>
          <li>
            <ul spacing="normal">
              <li>
                <t>0: Shortest Path First (SPF).</t>
              </li>
            </ul>
          </li>
          <li>
            <ul spacing="normal">
              <li>
                <t>1: Strict Shortest Path First (Strict SPF).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>LOC Size: 8 bits, Locator Length.</t>
          </li>
          <li>
            <t>Locator (variable): Variable length, indicates the advertised SRv6
Locator.</t>
          </li>
          <li>
            <t>Sub-TLVs (variable): Variable length, contains Sub-TLVs such as
SRv6 End SID Sub-TLV.</t>
          </li>
        </ul>
        <t>The option only may appear in Neighbor Solicit message and Neighbor
   Advertisement message.</t>
        <t>Neighbor Solicit message and Neighbor Advertisement message can
   include zero or more Source SRv6 Locator Information options.If
   multiple SRv6 Locators need to be advertised, multiple Source SRv6
   Locator Information options MUST be encapsulated in the same
   Neighbor Discovery message.The Source SRv6 Locator Information</t>
        <t>Option should be padded when necessary to ensure that it end on its
   natural 64-bit boundary.</t>
        <t>Receivers MUST silently ignore the option if they can't recognize
   and continue processing the message.</t>
      </section>
      <section anchor="source-srv6-capability-option">
        <name>Source SRv6 Capability Option</name>
        <t>To support the SRv6 functionality, the source node also needs to
   advertise SRv6-related capabilities through IPv6 ND packets.The
   Source SRv6 Capability (SSC) option is used to advertise the SRv6
   capability information of the sending node to IPv6 neighbor.</t>
        <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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Type     |   Length      |             Flags             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Sub-TLVs (optional)                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>Type: 8 bits, identifier of the type of option. The value is TBA
by IANA.</t>
          </li>
          <li>
            <t>Length: 8 bit, unsigned integer. The length of the option
(including the type and length fields) in units of 8 octets.  The
value 0 is invalid.  Nodes MUST silently discard an ND packet that
contains an option with length zero.</t>
          </li>
          <li>
            <t>Flags: 8 bits, Reserved.</t>
          </li>
          <li>
            <t>Sub-TLVs: Variable length, contains Sub-TLVs such as MSD sub-TLV.</t>
          </li>
        </ul>
        <artwork><![CDATA[
For optional MSD sub-sub-TLVs, the format is as follows: 
]]></artwork>
        <artwork><![CDATA[
           0                   1
           0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |    sub-Type   |   Length      |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |  MSD-Type     |   MSD-Value   |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |              ...              |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |  MSD-Type     |   MSD-Value   |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>sub-Type: 8 bits, The sub-TLV Type value for MSD is TBA.</t>
          </li>
          <li>
            <t>Length: 8 bits, variable.</t>
          </li>
          <li>
            <t>MSD-Type: 8 bits.</t>
          </li>
          <li>
            <t>MSD-Value: 8 bits.</t>
          </li>
        </ul>
        <t>The option only may appear in Neighbor Solicit message and Neighbor
   Advertisement message.</t>
        <t>Neighbor Solicit message and Neighbor Advertisement message can only
   include a maximum of one Source SRv6 Capability option. The Source
   SRv6 Capability Option should be padded when necessary to ensure
   that it end on its natural 64-bit boundary.</t>
        <t>Receivers MUST silently ignore the option if they can't recognize
   and continue processing the message.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to assign a new value for the "IPv6 Neighbor Discovery
   Option Formats" registry under the heading "Internet Control Message
   Protocol version 6 (ICMPv6) Parameters", as follows:</t>
      <artwork><![CDATA[
   +========+========================================+===============+
   | Value  |         Description                    |  Reference    |
   +--------+----------------------------------------+---------------+
   | TBA    | Source SRv6 Locator Information Option | This document |
   +--------+----------------------------------------+---------------+
   | TBA    | Source SRv6 Capability Option          | This document |
   +--------+----------------------------------------+---------------+
                                Table 1
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of IPv6 Neighbor Discovery <xref target="RFC4861"/> fully apply. This specification introduces new ND options that carry routing information (SRv6 locators), and therefore MUST be used within a well-defined trust boundary.
The mechanism defined in this document is designed for use within a single, trusted, and administratively controlled SRv6 domain. This domain is a network segment or realm where:</t>
      <t>o All nodes (including hosts or CPEs that advertise SRv6 locators) are under the control of a single administrative authority.</t>
      <t>o The software and configuration of these endpoints are authorized and managed by the network operator (e.g., they are considered managed network edge devices, not untrusted end-user devices).</t>
      <t>o Access to the link layer is controlled to prevent unauthorized nodes from attaching.</t>
      <t>Primary applicable scenarios include operator-controlled data centers (Scenario 1 in Section 2) and managed access networks (Scenario 2 in Section 2).It is NOT RECOMMENDED for use in environments where attached nodes are not trusted (e.g., general Internet access points).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC4861">
        <front>
          <title>Neighbor Discovery for IP version 6 (IPv6)</title>
          <author fullname="T. Narten" initials="T." surname="Narten"/>
          <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
          <author fullname="W. Simpson" initials="W." surname="Simpson"/>
          <author fullname="H. Soliman" initials="H." surname="Soliman"/>
          <date month="September" year="2007"/>
          <abstract>
            <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4861"/>
        <seriesInfo name="DOI" value="10.17487/RFC4861"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC8402">
        <front>
          <title>Segment Routing Architecture</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
          <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
          <author fullname="B. Decraene" initials="B." surname="Decraene"/>
          <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
          <author fullname="R. Shakir" initials="R." surname="Shakir"/>
          <date month="July" year="2018"/>
          <abstract>
            <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
            <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
            <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8402"/>
        <seriesInfo name="DOI" value="10.17487/RFC8402"/>
      </reference>
      <reference anchor="RFC8986">
        <front>
          <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
          <author fullname="J. Leddy" initials="J." surname="Leddy"/>
          <author fullname="D. Voyer" initials="D." surname="Voyer"/>
          <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
          <author fullname="Z. Li" initials="Z." surname="Li"/>
          <date month="February" year="2021"/>
          <abstract>
            <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
            <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
            <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8986"/>
        <seriesInfo name="DOI" value="10.17487/RFC8986"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
