<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" submissionType="IETF" docName="draft-ietf-spring-dhc-distribute-srv6-locator-dhcp-16" number="10038" category="std" ipr="trust200902" obsoletes="" consensus="true" updates="" xml:lang="en" symRefs="true" sortRefs="true" tocInclude="true" prepTime="2026-08-28T18:26:18" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-spring-dhc-distribute-srv6-locator-dhcp-16" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc10038" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Distribute SRv6 Locator by DHCP">Distributing the Segment Routing over IPv6 (SRv6) Locator Using DHCPv6</title>
    <seriesInfo name="RFC" value="10038" stream="IETF"/>
    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng" role="editor">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author initials="R." surname="Han" fullname="Ruibo Han">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>hanruibo@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin" role="editor">
      <organization showOnFrontPage="true">New H3C Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="D." surname="Voyer" fullname="Daniel Voyer">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <city>Montreal</city>
          <country>Canada</country>
        </postal>
        <email>davoyer@cisco.com</email>
      </address>
    </author>
    <author initials="G." surname="Zhang" fullname="Geng Zhang">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhanggeng@chinamobile.com</email>
      </address>
    </author>
    <date month="08" year="2026"/>
    <area>RTG</area>
    <workgroup>spring</workgroup>
    <keyword>SRv6 Locator</keyword>
    <keyword>IA_SRV6_LOCATOR</keyword>
    <keyword>OPTION_IA_SRV6_LOCATOR</keyword>
    <keyword>OPTION_IALOCATOR</keyword>
    <keyword>IA Locator</keyword>
    <keyword>IA_PD</keyword>
    <keyword>NoSRv6LocatorAvail</keyword>
    <keyword>BRAS</keyword>
    <keyword>CPE</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
   In an SRv6 network, each SRv6 Segment Endpoint Node must be assigned
   an SRv6 Locator, and segment identifiers (SIDs) are generated within the address
   space of this SRv6 Locator. This document describes a method for
   assigning SRv6 Locators to SRv6 Segment Endpoint Nodes through
   the Dynamic Host Configuration Protocol for IPv6 (DHCPv6).</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc10038" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2026 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-motivation">Motivation</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-extensions">DHCPv6 Extensions</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-identity-association-for-sr">Identity Association for SRv6 Locator Option</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ia-locator-option">IA Locator Option</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-process-of-assigning-the-sr">Process of Assigning the SRv6 Locator</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-procedure-of-the-srv6-locat">Procedure of the SRv6 Locator</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-client-behavior">DHCPv6 Client Behavior</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-server-behavior">DHCPv6 Server Behavior</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-relay-agent-behavior">DHCPv6 Relay Agent Behavior</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.5">
                <t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-advertisement-of-the-srv6-l">Advertisement of the SRv6 Locator Route</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
   The Segment Routing (SR) architecture <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/> specifies how a node
   can steer a packet using an ordered list of instructions called
   "segments".  These segments are identified using segment identifiers
   (SIDs).</t>
      <t indent="0" pn="section-1-2">
   SR can be instantiated on the IPv6 data plane using either 
   the Segment Routing Header (SRH) defined in <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="RFC8754"/> 
   or compressed segment lists defined in <xref target="RFC9800" format="default" sectionFormat="of" derivedContent="RFC9800"/>. 
   SR instantiation on the IPv6 data plane is referred to as SRv6.</t>
      <t indent="0" pn="section-1-3">
   <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/> introduces the SRv6 Network Programming concept
   and specifies the base set of SRv6 behaviors.
      </t>
      <t indent="0" pn="section-1-4">
   In an SRv6 network, each SRv6 Segment Endpoint Node must be assigned
   an SRv6 Locator, and SIDs are generated within the address
   space of this SRv6 Locator. This document describes a method for
   assigning SRv6 Locators to SRv6 Segment Endpoint Nodes through
   the Dynamic Host Configuration Protocol for IPv6 (DHCPv6).</t>
      <section anchor="sect-1.1" numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    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 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">
   This document leverages the terms defined in <xref target="RFC9915" format="default" sectionFormat="of" derivedContent="RFC9915"/> and <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/>. The reader is assumed to be familiar with
   this terminology.</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-motivation">Motivation</name>
      <t indent="0" pn="section-3-1">
   As shown in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>, in the IP backbone network, access network
   devices are deployed for access users in different regions. This
   deployment assumes that all of the relevant components in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>
   are part of a single trusted SR domain. The Customer Premises Equipment (CPE) 
   must be managed by the operator providing services or by a trusted partner. 
   If the CPE is located within the customer premises, it must ensure that 
   the device itself and its ports are under the same operator's administrative domain; 
   otherwise, security risks may arise.</t>
      <t indent="0" pn="section-3-2">
   CPEs for access users are connected to the local metropolitan area
   network (MAN) in various ways. CPEs are responsible for assigning
   addresses to access users by requesting DHCPv6 Prefix Delegation
   (PD) from a DHCPv6 server, as specified in <xref section="6.3" target="RFC9915" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-6.3" derivedContent="RFC9915"/>. 
   <xref target="RFC7084" format="default" sectionFormat="of" derivedContent="RFC7084"/> and <xref target="RFC7368" format="default" sectionFormat="of" derivedContent="RFC7368"/> describe such use in detail.
   The DHCPv6 server is usually enabled on or relayed
   by the Broadband Remote Access Server (BRAS).</t>
      <t indent="0" pn="section-3-3">
   After the DHCPv6 server allocates any delegated prefix, the BRAS will add a
   network route corresponding to the delegated prefix to a local routing
   table and distribute the network route to the upstream routers.</t>
      <figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-telecom-ipv6-network">Telecom IPv6 Network</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-4.1">
                            Metropolitan Area Network
                         +---------------------------+
                         |                           |
+------+     +------+    |  +-----+        +-------+ |
|Host1 +-----+ CPE1 +----+--+BRAS1+--------+Router1| |
+------+     +------+    |  +-----+        +---+---+ |
                         |                     |     |
                         +---------------------+-----+
                                               |
                                      +--------+-------------+
                                      |                      |
                                      |   Backbone Network   |
                                      |                      |
                                      +--------+-------------+
                                               |
                         +---------------------+-----+
                         |                     |     |
+------+     +------+    |  +-----+         +--+----+|
|Host2 +-----+ CPE2 +----+--+BRAS2+---------+Router2||
+------+     +------+    |  +-----+         +-------+|
                         +---------------------------+</artwork>
      </figure>
      <t indent="0" pn="section-3-5">
   In this network, operators hope to achieve interconnection between
   access users through CPE-to-CPE SRv6 tunnels. Taking the service
   traffic from Host1 to Host2 as an example, CPE1 is the SRv6 ingress
   node and CPE2 is the SRv6 egress node. The SRv6 Locator should be
   configured on the CPEs. Other devices within the operator's network
   learn the SRv6 Locator routes of the CPEs.</t>
      <t indent="0" pn="section-3-6">
   At the same time, SRv6 policies need to be configured on CPEs to
   steer the service traffic between CPEs to the specified SRv6
   forwarding path. The SRv6 policy can be manually configured statically
   (via command-line interface (CLI), the Network Configuration Protocol (NETCONF), YANG, APIs, etc.).</t>
      <t indent="0" pn="section-3-7">
   This document proposes a method for allocating SRv6 Locators to CPE
   via DHCPv6 and distributing SRv6 Locator routes using the DHCPv6 workflow. 
   This approach simplifies network operation and maintains consistency with 
   existing IPv6 address allocation mechanisms already deployed in such networks.
      </t>
    </section>
    <section anchor="sect-4" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-dhcpv6-extensions">DHCPv6 Extensions</name>
      <section anchor="sect-4.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-identity-association-for-sr">Identity Association for SRv6 Locator Option</name>
        <t indent="0" pn="section-4.1-1">
   The Identity Association for SRv6 Locator (IA_SRV6_LOCATOR) option
   is used to carry an IA_SRV6_LOCATOR, the parameters associated with
   the IA_SRV6_LOCATOR, and the SRv6 Locator associated with the
   IA_SRV6_LOCATOR.</t>
        <t indent="0" pn="section-4.1-2">
   The IA_SRV6_LOCATOR option can be carried in DHCPv6 Solicit,
   Advertise, Request, Reply, Renew, Release, and Rebind messages.</t>
        <dl newline="true" spacing="normal" indent="0" pn="section-4.1-3">
          <dt pn="section-4.1-3.1">The format of the IA_SRV6_LOCATOR option is:</dt>
          <dd pn="section-4.1-3.2"/>
        </dl>
        <figure anchor="fig2" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-identity-association-for-srv">Identity Association for SRv6 Locator Option Format</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.1-4.1">
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     OPTION_IA_SRV6_LOCATOR    |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           IAID (4 octets)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              T1                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              T2                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                     IA_SRV6_LOCATOR-Options                   .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
        </figure>
        <t indent="0" pn="section-4.1-5">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-4.1-6">
          <dt pn="section-4.1-6.1">Option-Code:</dt>
          <dd pn="section-4.1-6.2">OPTION_IA_SRV6_LOCATOR (149), the option code for the
  Identity Association for SRv6 Locator option.</dd>
          <dt pn="section-4.1-6.3">Option-Len:</dt>
          <dd pn="section-4.1-6.4">12 + the length of the IA_SRV6_LOCATOR-Options field in
  octets.</dd>
          <dt pn="section-4.1-6.5">IAID:</dt>
          <dd pn="section-4.1-6.6">The unique identifier for this IA_SRV6_LOCATOR. The IAID
  <bcp14>MUST</bcp14> be unique among the identifiers for all of this client's
  IA_SRV6_LOCATORs. The number space for IA_SRV6_LOCATOR IAIDs is separate
  from the number space for other IA option types. A 4-octet field containing
  an unsigned integer.</dd>
          <dt pn="section-4.1-6.7">T1:</dt>
          <dd pn="section-4.1-6.8">The time interval after which the client should contact the
  server from which the SRv6 Locators in the IA_SRV6_LOCATOR were obtained to
  extend the lifetimes of the SRv6 Locators to the IA_SRV6_LOCATOR. T1 is a
  time duration relative to the message reception time expressed in units of
  seconds. A 4-octet field containing an unsigned integer.</dd>
          <dt pn="section-4.1-6.9">T2:</dt>
          <dd pn="section-4.1-6.10">The time interval after which the client should contact any
  available server to extend the lifetimes of the SRv6 Locators assigned to
  the IA_SRV6_LOCATOR. T2 is a time duration relative to the message reception
  time expressed in units of seconds. A 4-octet field containing an unsigned
  integer.</dd>
          <dt pn="section-4.1-6.11">IA_SRV6_LOCATOR-Options:</dt>
          <dd pn="section-4.1-6.12">Options associated with this
  IA_SRV6_LOCATOR. A variable-length field (12 octets less than the value in
  the Option-Len field).</dd>
        </dl>
        <t indent="0" pn="section-4.1-7">
   The IA_SRV6_LOCATOR-Options field encapsulates those options that
   are specific to this IA_SRV6_LOCATOR.  For example, all of the IA
   Locator options (see <xref target="sect-4.2" format="default" sectionFormat="of" derivedContent="Section 4.2"/>) carrying the SRv6 Locators
   associated with this IA_SRV6_LOCATOR are in the IA_SRV6_LOCATOR-Options
   field.</t>
        <t indent="0" pn="section-4.1-8">
   An IA_SRV6_LOCATOR option may only appear in the options area of a
   DHCP message. A DHCP message may contain multiple IA_SRV6_LOCATOR
   options (though each must have a unique IAID).</t>
        <t indent="0" pn="section-4.1-9">
   The status of any operations involving this IA_SRV6_LOCATOR is
   indicated in a Status Code option (see <xref section="21.13" target="RFC9915" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-21.13" derivedContent="RFC9915"/>) in the IA_SRV6_LOCATOR-Options field.</t>
        <t indent="0" pn="section-4.1-10">
   Note that an IA_SRV6_LOCATOR has no explicit "lifetime" or "lease length" of its own. When the valid lifetimes of all of the SRv6
   Locators in an IA_SRV6_LOCATOR have expired, the IA_SRV6_LOCATOR can
   be considered as having expired. The T1 and T2 fields are included to
   give the server explicit control over when a client should contact
   the server about a specific IA_SRV6_LOCATOR.</t>
        <t indent="0" pn="section-4.1-11">
   In a message sent by a client to a server, the T1 and T2 fields
   <bcp14>SHOULD</bcp14> be set to 0. The server <bcp14>MUST</bcp14> ignore any values in these
   fields in messages received from a client.</t>
        <t indent="0" pn="section-4.1-12">
   In a message sent by a server to a client, the client <bcp14>MUST</bcp14> use the
   values in the T1 and T2 fields for the T1 and T2 timers, unless
   values in those fields are 0. The values in the T1 and T2 fields are
   the number of seconds until T1 and T2.</t>
        <t indent="0" pn="section-4.1-13">
   The server selects the T1 and T2 times to allow the client to extend
   the lifetimes of any SRv6 Locators in the IA_SRV6_LOCATOR before the
   lifetimes expire, even if the server is unavailable for some short
   period of time. Recommended values for T1 and T2 are 0.5 and 0.8
   times the shortest preferred lifetime of the SRv6 Locators in the
   IA_SRV6_LOCATOR that the server is willing to extend, respectively.
   If the time at which the SRv6 Locators in an IA_SRV6_LOCATOR are to
   be renewed is to be left to the discretion of the client, the server
   sets T1 and T2 to 0. The client <bcp14>MUST</bcp14> follow the rules defined in
   <xref target="RFC9915" section="14.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-14.2" derivedContent="RFC9915"/>.</t>
        <t indent="0" pn="section-4.1-14">
   If a client receives an IA_SRV6_LOCATOR with T1 greater than T2 and
   both T1 and T2 are greater than 0, the client discards the
   IA_SRV6_LOCATOR option and processes the remainder of the message as
   though the server had not included the IA_SRV6_LOCATOR option.</t>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-ia-locator-option">IA Locator Option</name>
        <t indent="0" pn="section-4.2-1">
   The IA Locator option is used to specify an SRv6 Locator associated
   with an IA_SRV6_LOCATOR. The IA Locator option <bcp14>MUST</bcp14> be encapsulated
   in the IA_SRV6_LOCATOR-Options field of an IA_SRV6_LOCATOR option
   (see <xref target="sect-4.1" format="default" sectionFormat="of" derivedContent="Section 4.1"/>). 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" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8986#section-3.1" derivedContent="RFC8986"/>.</t>
        <figure anchor="fig3" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-ia-locator-option-format">IA Locator Option Format</name>
          <artwork name="" type="" align="left" alt="" pn="section-4.2-2.1">
   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     OPTION_IALOCATOR          |           Option-Len          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Preferred-lifetime                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Valid-lifetime                         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Algorithm    |                  Reserved                     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
  |    LB-Len     |    LN-Len     |   Fun-Len     |    Arg-Len    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
  .                         SRv6-Locator                          .
  .                      (up to 16 octets)                        .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  .                                                               .
  .                       IALocator-Options                       .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
        </figure>
        <t indent="0" pn="section-4.2-3">Where:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-4.2-4">
          <dt pn="section-4.2-4.1">Option-Code:</dt>
          <dd pn="section-4.2-4.2">OPTION_IALOCATOR (150), the option code for
  the IA Locator option.</dd>
          <dt pn="section-4.2-4.3">Option-Len:</dt>
          <dd pn="section-4.2-4.4">16 + the length of SRv6-Locator + the length of
  the IALocator-Options field in octets.</dd>
          <dt pn="section-4.2-4.5">Preferred-lifetime:</dt>
          <dd pn="section-4.2-4.6">The preferred lifetime for the SRv6 Locator
  in the option, expressed in units of seconds. A value of 0xffffffff
  represents "infinity" (see <xref target="RFC9915" section="7.7" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-7.7" derivedContent="RFC9915"/>). A
  4-octet field containing an unsigned integer.</dd>
          <dt pn="section-4.2-4.7">Valid-lifetime:</dt>
          <dd pn="section-4.2-4.8">The valid lifetime for the SRv6 Locator in the
  option, expressed in units of seconds. A value of 0xffffffff represents
  "infinity". A 4-octet field containing an unsigned integer.</dd>
          <dt pn="section-4.2-4.9">Algorithm:</dt>
          <dd pn="section-4.2-4.10">A 1-octet unsigned integer. The algorithm associated
  with the SRv6 Locator from which the SID is allocated.  Algorithm values are
  defined in the "IGP Algorithm Types" registry <xref target="RFC8665" format="default" sectionFormat="of" derivedContent="RFC8665"/>. See also <xref target="RFC9350" format="default" sectionFormat="of" derivedContent="RFC9350"/>.</dd>
          <dt pn="section-4.2-4.11">Reserved:</dt>
          <dd pn="section-4.2-4.12">A 3-octet unsigned integer. <bcp14>MUST</bcp14> be set to zero and ignored when received.</dd>
          <dt pn="section-4.2-4.13">LB-Len:</dt>
          <dd pn="section-4.2-4.14">SRv6 SID Locator Block (LB) length in bits. A 1-octet
  unsigned integer.</dd>
          <dt pn="section-4.2-4.15">LN-Len:</dt>
          <dd pn="section-4.2-4.16">SRv6 SID Locator Node (LN) length in bits. A 1-octet
  unsigned integer.</dd>
          <dt pn="section-4.2-4.17">Fun-Len:</dt>
          <dd pn="section-4.2-4.18">SRv6 SID function (FUNCT) length in bits. A 1-octet
  unsigned integer.</dd>
          <dt pn="section-4.2-4.19">Arg-Len:</dt>
          <dd pn="section-4.2-4.20">SRv6 SID arguments (ARG) length in bits. A 1-octet
  unsigned integer.</dd>
          <dt pn="section-4.2-4.21">SRv6-Locator:</dt>
          <dd pn="section-4.2-4.22">0-16 octets. This field encodes the SRv6 Locator.
  The SRv6 Locator is encoded in the minimal number of octets for the SRv6 SID
  Locator length that is LB-Len plus LN-Len. Trailing bits <bcp14>MUST</bcp14>
  be set to zero and ignored when received.</dd>
          <dt pn="section-4.2-4.23">IALocator-Options:</dt>
          <dd pn="section-4.2-4.24">Options associated with this SRv6 Locator. A
  variable-length field (determined by subtracting the length of
  SRv6-Locator from Option-Len minus 12). The status code
  NoSRv6LocatorAvail indicates the server has no locators available to assign
  to the IA_SRV6_LOCATOR(s).</dd>
        </dl>
        <t indent="0" pn="section-4.2-5">
   The SRv6 SID Locator length (LOC-Len) is LB-Len plus LN-Len.
        </t>
        <t indent="0" pn="section-4.2-6">
   The sum of LB-Len, LN-Len, Fun-Len, and Arg-Len <bcp14>MUST NOT</bcp14> exceed 128 bits. 
   The sum of LB-Len and LN-Len <bcp14>MUST NOT</bcp14> be zero. If either of these conditions are violated, 
   the IA_SRV6_LOCATOR option <bcp14>MUST</bcp14> be marked as invalid, and the remainder of 
   the message <bcp14>SHOULD</bcp14> be processed as if the packet did not include this option.</t>
        <t indent="0" pn="section-4.2-7">
   The values in the Preferred-lifetime and Valid-lifetime fields are
   the number of seconds remaining in each lifetime. The value of
   0xffffffff for the preferred lifetime or the valid lifetime is taken
   to mean "infinity" and should be used carefully. The details about
   the use of lifetime values for assigned SRv6 Locators are the same
   as the ones specified for PD in 
   <xref target="RFC9915" section="18.2.10.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.10.1" derivedContent="RFC9915"/>.</t>
        <t indent="0" pn="section-4.2-8">
   An IA Locator option may appear only in an IA_SRV6_LOCATOR option.
   More than one IA Locator option can appear in a single
   IA_SRV6_LOCATOR option.</t>
        <t indent="0" pn="section-4.2-9">
   The status of any operations involving this IA_SRV6_LOCATOR option
   is indicated in a Status Code option (see <xref target="RFC9915" section="21.13" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-21.13" derivedContent="RFC9915"/>) in the IALocator-Options field.</t>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-process-of-assigning-the-sr">Process of Assigning the SRv6 Locator</name>
      <section anchor="sect-5.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-procedure-of-the-srv6-locat">Procedure of the SRv6 Locator</name>
        <t indent="0" pn="section-5.1-1">
   Consistent with the PD mechanism <xref target="RFC9915" format="default" sectionFormat="of" derivedContent="RFC9915"/>, 
   the DHCPv6 client obtains an SRv6 Locator via DHCPv6. The key
   message exchanges involved are Solicit, Request, Advertise, and
   Reply. Once the DHCPv6 server assigns an SRv6 Locator to the DHCPv6 client, it
   automatically adds the associated SRv6 Locator routes.</t>
        <t indent="0" pn="section-5.1-2">
   <xref target="fig4" format="default" sectionFormat="of" derivedContent="Figure 4"/> illustrates the process of SRv6 Locator allocation through
   DHCPv6.</t>
        <figure anchor="fig4" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-srv6-locator-exchange">SRv6 Locator Exchange</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.1-3.1">
            DHCPv6 Client    DHCPv6 Server
                  v               v
                  |               |
                  |               |
     ____________ |\              |
     ____________ | +-----------+ |
                  |   Solicit    \|
                  | EmptyIALocator|
                  |               |
                  |              /|
                  |  +----------+ |
                  | /  Advertise  |
                  |/   IALocator  |
                  |               |
                  |\              |
                  | +-----------+ |
                  |    Request   \|
                  |    IALocator  |
                  |              /|
                  |  +----------+ |
                  | /  Reply      |
                  |/  IALocator   |
     End of       |               |
     4-message    |               |
     exchange     |               |  Issue Locator route locally
  Use Locator to  |               |  Distribute Locator route
  alloc SRv6 SID  |               |</artwork>
        </figure>
        <t indent="0" pn="section-5.1-4">
   As specified in <xref target="RFC9915" section="18.2.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.1" derivedContent="RFC9915"/>, the DHCPv6
   client sends a Solicit message containing an IA_SRV6_LOCATOR option
   to request a locator. The client may include its preferred locator
   value within the IA_SRV6_LOCATOR option.</t>
        <t indent="0" pn="section-5.1-5">
   The DHCPv6 server processes the Solicit message, assigns a locator to the
   client, and returns the allocated locator in an Advertise message
   with the IA_SRV6_LOCATOR option.</t>
        <t indent="0" pn="section-5.1-6">
   As specified in <xref target="RFC9915" section="18.2.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.2" derivedContent="RFC9915"/>, upon
   receiving the Advertise message, the client accepts the assigned locator
   and sends a Request message with the IA_SRV6_LOCATOR option to
   confirm the requested locator.</t>
        <t indent="0" pn="section-5.1-7">
   The server processes the Request message, confirms the locator
   assignment, and responds with a Reply message containing the
   IA_SRV6_LOCATOR option with the allocated locator.</t>
        <t indent="0" pn="section-5.1-8">
   As described in <xref target="RFC9915" section="18.2.4" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.4" derivedContent="RFC9915"/>, the client
   periodically sends a Renew message with the IA_SRV6_LOCATOR option
   to refresh the lease. The server processes the Renew message,
   updates the lease, and replies with a Reply message containing the
   IA_SRV6_LOCATOR option.</t>
        <t indent="0" pn="section-5.1-9">
   As described in <xref target="RFC9915" section="18.2.5" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.5" derivedContent="RFC9915"/>, if the
   client does not receive a Reply message before the T2 timer expires,
   it sends a Rebind message with the IA_SRV6_LOCATOR option to attempt
   lease renewal.</t>
        <t indent="0" pn="section-5.1-10">
   If the server responds with a Reply message, the client retains its
   allocated locator.</t>
        <t indent="0" pn="section-5.1-11">
   If no response is received, the client considers the lease expired
   and restarts the process by sending a new Solicit message.</t>
        <t indent="0" pn="section-5.1-12">
   As described in <xref target="RFC9915" section="18.2.7" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.7" derivedContent="RFC9915"/>, if the
   client is about to go offline, it sends a Release message with the
   IA_SRV6_LOCATOR option to relinquish the locator.</t>
        <t indent="0" pn="section-5.1-13">
   Upon receiving a valid Release message, and when the SRv6 Locator in the message is valid, 
   the server <bcp14>MUST</bcp14> remove the lease and free the locator, making it available for allocation 
   to other clients. For detailed processing procedures, refer to 
   <xref target="RFC9915" section="18.3.7" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.3.7" derivedContent="RFC9915"/>.</t>
      </section>
      <section anchor="sect-5.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-dhcpv6-client-behavior">DHCPv6 Client Behavior</name>
        <t indent="0" pn="section-5.2-1">
   A client uses the Solicit message to discover DHCPv6 servers
   configured to assign leases or return other configuration parameters
   on the link to which the client is attached.</t>
        <t indent="0" pn="section-5.2-2">
   A client uses Request, Renew, Rebind, Release, and Decline messages
   during the normal lifecycle of SRv6 Locator assignment.</t>
        <t indent="0" pn="section-5.2-3">
   In a message sent by a client to a server, the Preferred-lifetime
   and Valid-lifetime fields <bcp14>SHOULD</bcp14> be set to 0. The server <bcp14>MUST</bcp14> ignore
   any received values in these lifetime fields.</t>
        <t indent="0" pn="section-5.2-4">
   The client <bcp14>MUST NOT</bcp14> send an IA_SRV6_LOCATOR option with 0 in the
   LB-Len or LN-Len fields. The client <bcp14>MAY</bcp14> send non-zero values in
   the LB-Len and LN-Len fields and the unspecified value (::) in
   the SRv6-Locator field to indicate a preference for the size of
   the SRv6 Locator to be assigned. The LOC-Len (LB-Len + LN-Len) hint
   provided by a client is similar to the prefix-length hint in an
   IA_PD. Clients and servers are expected to follow the guidance
   provided in <xref target="RFC8168" format="default" sectionFormat="of" derivedContent="RFC8168"/>.</t>
        <t indent="0" pn="section-5.2-5">
   The client <bcp14>MUST</bcp14> discard any SRv6 Locators for which the preferred
   lifetime is greater than the valid lifetime.</t>
        <t indent="0" pn="section-5.2-6">
   The process of requesting an SRv6 Locator is the same as that of
   requesting prefixes. When requesting an SRv6 Locator, the DHCPv6
   client sends a Request message carrying the IA_SRV6_LOCATOR option
   to the DHCPv6 server.</t>
        <t indent="0" pn="section-5.2-7">
   Upon the receipt of a valid Reply message with the IA_SRV6_LOCATOR
   option in response to a Solicit with a Rapid Commit option, Request,
   Renew, or Rebind message, the client <bcp14>MUST</bcp14> process the Reply message
   according to the requirements of <xref target="RFC9915" section="18.2.10" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.10" derivedContent="RFC9915"/>
   and configure the assigned SRv6 Locator in the client
   device automatically.</t>
        <t indent="0" pn="section-5.2-8">DHCP allows a client to obtain multiple addresses as specified in
        <xref target="RFC9915" section="6.5" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-6.5" derivedContent="RFC9915"/>. The same
        principle applies to SRv6 Locator assignment. In scenarios requiring
        multiple allocations (e.g., when multiple SRv6 Locators are needed for
        distinct services, such as best-effort and low-latency traffic, each
        with a different algorithm), the allocation policy between the DHCPv6
        client and DHCPv6 server <bcp14>MUST</bcp14> remain consistent. After obtaining the
        SRv6 Locator assigned by the DHCPv6 server, how to assign local SRv6
        SIDs based on this SRv6 Locator, how to use multiple assigned SRv6
        Locators, and how to advertise these SRv6 SIDs to the rest of the
        network are not within the scope of this document. However, and
        consistent with the guidance in <xref section="16" target="RFC7227" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7227#section-16" derivedContent="RFC7227"/>, the client <bcp14>MUST NOT</bcp14> make any assumption about
        the ordering of locators or infer any service logic from these locators. </t>
        <t indent="0" pn="section-5.2-9">
   The client uses the SRv6 Locators and associated information from 
   any IAs that do not contain a Status Code option with the 
   NoSRv6LocatorAvail status code. The client <bcp14>MAY</bcp14> include the IAs for which it received the 
   NoSRv6LocatorAvail status code, with no SRv6 Locators, in subsequent Renew 
   and Rebind messages sent to the server, to retry obtaining the SRv6 Locators for these IAs.
        </t>
        <t indent="0" pn="section-5.2-10">
   To extend the preferred and valid lifetimes for the assigned SRv6
   Locators or obtain new assigned SRv6 Locators, the client sends a
   Renew/Rebind message to the server with the IA_SRV6_LOCATOR option as
   specified in Sections <xref target="RFC9915" sectionFormat="bare" section="18.2.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.4" derivedContent="RFC9915"/> and <xref target="RFC9915" sectionFormat="bare" section="18.2.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-18.2.5" derivedContent="RFC9915"/> of <xref target="RFC9915" format="default" sectionFormat="of" derivedContent="RFC9915"/>.</t>
        <t indent="0" pn="section-5.2-11">
   If the client no longer uses the SRv6 Locator, the client can
   actively send a Release message to notify the server to reclaim the SRv6
   Locator and delete the corresponding SRv6 Locator. The client <bcp14>MUST</bcp14>
   include options containing the IAs for the SRv6 Locators it is
   releasing in the IA_SRV6_LOCATOR-Options field of the IA_SRV6_LOCATOR option.</t>
        <t indent="0" pn="section-5.2-12">
   A client can explicitly request multiple SRv6 Locator prefixes by
   sending multiple IA_SRV6_LOCATOR options. A client can send multiple
   IA_SRV6_LOCATOR options in its initial transmissions.
   Alternatively, it can send an extra Request message with additional
   new IA_SRV6_LOCATOR options (or include them in a Renew message).</t>
        <t indent="0" pn="section-5.2-13">
   DHCP allows a client to request new SRv6 Locators to be assigned by
   sending additional new IA_SRV6_LOCATOR options. However, a typical
   operator usually prefers to assign a single, larger prefix. In most
   deployments, it is <bcp14>RECOMMENDED</bcp14> that the client request a larger SRv6
   Locator in its initial transmissions rather than request additional
   SRv6 Locators later on.</t>
      </section>
      <section anchor="sect-5.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-dhcpv6-server-behavior">DHCPv6 Server Behavior</name>
        <t indent="0" pn="section-5.3-1">
   When the server receives a valid Request message or a valid Solicit
   message with a Rapid Commit option, the server creates the bindings
   for that client according to the server's policy and configuration
   information and records the IAs and other information requested by
   the client.</t>
        <t indent="0" pn="section-5.3-2">
   The DHCPv6 server treats the SRv6 Locator as the prefix of the prefix
   pool. Upon the receipt of the IA_SRV6_LOCATOR option, the server
   searches the SRv6 Locator prefix pool and allocates appropriate SRv6
   Locators for the client.</t>
        <t indent="0" pn="section-5.3-3">
   If there is an assignable SRv6 Locator, the server creates the SRv6
   Locator binding entry for that client according to the server's
   policy and configuration information and constructs a Reply message
   that includes an IA_SRV6_LOCATOR option with the SRv6 Locator
   information (including LB-Len, LN-Len, Fun-Len, and Arg-Len)
   assigned to the client.</t>
        <t indent="0" pn="section-5.3-4">
   The IA_SRV6_LOCATOR option is filled with the SRv6 Locator
   information assigned to the client. The IA_SRV6_LOCATOR option
   populates the LB-Len, LN-Len, Fun-Len, and Arg-Len fields.</t>
        <t indent="0" pn="section-5.3-5">
   Upon receiving a Release message from the client or when the SRv6
   Locator lease expires, the server reclaims the SRv6 Locator prefix
   resource and deletes the corresponding binding entry.</t>
        <t indent="0" pn="section-5.3-6">
   For any IA_SRV6_LOCATOR option in the Request message to which the
   server cannot assign any SRv6 Locators, the server <bcp14>MUST</bcp14> return the
   IA_SRV6_LOCATOR option in the Reply message with no SRv6 Locator
   prefixes in the IA_SRV6_LOCATOR and with a Status Code option
   containing status code NoSRv6LocatorAvail in the IA_SRV6_LOCATOR.</t>
        <t indent="0" pn="section-5.3-7">
   After receiving a DHCP message with multiple IA_SRV6_LOCATOR options
   at the same time, whether the server can assign multiple SRv6
   Locators to the client depends on the server policy, which is out of
   scope for this document. Note that the configuration behavior of the
   server and client <bcp14>SHOULD</bcp14> be consistent (e.g., "clients and servers
   assign a single locator unless explicitly configured").</t>
      </section>
      <section anchor="sect-5.4" numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
        <name slugifiedName="name-dhcpv6-relay-agent-behavior">DHCPv6 Relay Agent Behavior</name>
        <t indent="0" pn="section-5.4-1">
   The allocation of SRv6 Locators to clients that reside on a different 
   link from the server requires a DHCPv6 relay agent. A DHCPv6 relay agent 
   forwards messages containing IA_SRV6_LOCATOR options in the same way as 
   it would relay addresses (i.e., per Sections <xref target="RFC9915" sectionFormat="bare" section="19.1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-19.1.1" derivedContent="RFC9915"/> and <xref target="RFC9915" sectionFormat="bare" section="19.1.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-19.1.2" derivedContent="RFC9915"/> of 
   <xref target="RFC9915" format="default" sectionFormat="of" derivedContent="RFC9915"/>).</t>
        <figure anchor="fig5" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-srv6-locator-exchange-throu">SRv6 Locator Exchange Through DHCPv6 Relay</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.4-2.1">
     +-------------+       +------------+       +-------------+
     +DHCPv6 Client+-------+DHCPv6 Relay+-------+DHCPv6 Server|
     +-------------+       +------+-----+       +-------------+
                                  |
                                  |
                           +------+-----+
                           |  Backbone  |
                           |  Network   |
                           +------------+</artwork>
        </figure>
      </section>
      <section anchor="sect-5.5" numbered="true" toc="include" removeInRFC="false" pn="section-5.5">
        <name slugifiedName="name-advertisement-of-the-srv6-l">Advertisement of the SRv6 Locator Route</name>
        <t indent="0" pn="section-5.5-1">
   This section describes the processing of SRv6 Locator routes.</t>
        <t indent="0" pn="section-5.5-2">
   As shown in <xref target="fig5" format="default" sectionFormat="of" derivedContent="Figure 5"/>, when a DHCPv6 Relay or DHCPv6 server receives 
   an SRv6 Locator allocation request from a client, it <bcp14>MAY</bcp14> assign an 
   SRv6 Locator to the client and install a corresponding SRv6 Locator route locally. 
   The next hop of this route <bcp14>SHOULD</bcp14> point to the requesting client. 
   Through this route, the DHCPv6 Relay or DHCPv6 server can access the Host under the DHCPv6 client, 
   while the DHCPv6 Relay or DHCPv6 server <bcp14>MAY</bcp14> then advertise this route via traditional routing protocols
   (e.g., an IGP) to allow other routers to learn it.</t>
        <t indent="0" pn="section-5.5-3">SRv6 Locators with an Algorithm value of zero can be advertised 
   as normal IP prefix reachability information. Conversely, SRv6 Locators with a non-zero 
   Algorithm value <bcp14>MUST</bcp14> be advertised using the Locators TLV as defined in <xref target="RFC9352" format="default" sectionFormat="of" derivedContent="RFC9352"/> 
   and <xref target="RFC9513" format="default" sectionFormat="of" derivedContent="RFC9513"/>.
        </t>
        <t indent="0" pn="section-5.5-4">
   Upon receiving an SRv6 Locator release request from the client,
   the DHCPv6 Relay or DHCPv6 server <bcp14>MUST</bcp14> release the allocated SRv6 Locator, remove the local SRv6
   Locator route, and withdraw the previously advertised SRv6 Locator
   route via traditional routing protocols.</t>
        <figure anchor="fig6" align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-advertisement-of-the-srv6-lo">Advertisement of the SRv6 Locator Route</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.5-5.1">
DHCPv6 Client-------(DHCPv6 Relay/DHCPv6 Server)-------------Router
Alloc Locator  --&gt;  Add SRv6 Locator route
                    Advertise SRv6 Locator route --&gt;
Release Locator--&gt;  Del SRv6 Locator route
                    Withdraw SRv6 Locator route  --&gt;</artwork>
        </figure>
      </section>
    </section>
    <section anchor="sect-6" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t indent="0" pn="section-6-1">This section outlines some operational considerations for assigning SRv6 Locators through DHCPv6.</t>
      <t indent="0" pn="section-6-2">The SRv6 Locator can be used to allocate SIDs with SR Endpoint Behaviors 
         as defined in <xref target="RFC8986" format="default" sectionFormat="of" derivedContent="RFC8986"/> and also to allocate 
        SIDs with the NEXT and REPLACE flavors defined in <xref target="RFC9800" format="default" sectionFormat="of" derivedContent="RFC9800"/>. 
		Operators can allocate corresponding SIDs based on the LB and LN lengths of the 
		SRv6 Locator, as well as local policies. </t>
      <t indent="0" pn="section-6-3">When processing the SRv6 Locator defined in this document, if an error occurs in packet processing, 
	  SRv6 Locator allocation fails, or lease aging is handled, the DHCPv6 client and DHCPv6 server 
	  <bcp14>SHOULD</bcp14> log or record these SRv6 Locators as required by local policy.
      </t>
      <t indent="0" pn="section-6-4"><xref target="RFC8987" section="4.4" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8987#section-4.4" derivedContent="RFC8987"/> provides necessary functional
        requirements for operating DHCPv6 relays with PD. 
		These requirements also apply to the allocation of SRv6 Locators in DHCPv6 Relay scenarios.</t>
      <t indent="0" pn="section-6-5">Routing Stability is an additional operational consideration. Network operators may advertise an aggregated route rather than individual 
	  prefixes in certain deployments to optimize Routing Information Base (RIB) performance. 
	  The withdrawal of specific routes triggered by address releases may lead to a reduction 
	  in advertised routes. An alternative approach is to implement a policy that governs 
	  this behavior. In such cases, delegating routers will discard packets destined for 
	  specific prefixes that are not "delegated" on the customer-facing interface.</t>
    </section>
    <section anchor="sect-8" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-7-1">
   IANA has assigned the following DHCPv6 option codes in the
   "Option Codes" registry at
   <eref brackets="angle" target="https://www.iana.org/assignments/dhcpv6-parameters"/>:</t>
      <table align="center" pn="table-1">
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">Client ORO</th>
            <th align="left" colspan="1" rowspan="1">Singleton Option</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">149</td>
            <td align="left" colspan="1" rowspan="1">OPTION_IA_SRV6_LOCATOR</td>
            <td align="left" colspan="1" rowspan="1">No</td>
            <td align="left" colspan="1" rowspan="1">No</td>
            <td align="left" colspan="1" rowspan="1">RFC 10038</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">150</td>
            <td align="left" colspan="1" rowspan="1">OPTION_IALOCATOR</td>
            <td align="left" colspan="1" rowspan="1">No</td>
            <td align="left" colspan="1" rowspan="1">No</td>
            <td align="left" colspan="1" rowspan="1">RFC 10038</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-7-3">
   IANA has also assigned the following DHCPv6
   status code in the "Status Codes" registry at <eref brackets="angle" target="http://www.iana.org/assignments/dhcpv6-parameters"/>:</t>
      <table align="center" pn="table-2">
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Code</th>
            <th align="left" colspan="1" rowspan="1">Name</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">23</td>
            <td align="left" colspan="1" rowspan="1">NoSRv6LocatorAvail</td>
            <td align="left" colspan="1" rowspan="1">RFC 10038</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sect-9" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">
   See <xref target="RFC9915" section="22" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-22" derivedContent="RFC9915"/> and
   <xref target="RFC7227" section="23" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7227#section-23" derivedContent="RFC7227"/> for the DHCP security considerations. 
   See <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/> for
   the IPv6 security considerations.</t>
      <t indent="0" pn="section-8-2">
   As discussed in <xref target="RFC9915" section="22" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-22" derivedContent="RFC9915"/>, "DHCP lacks
   end-to-end encryption between clients and servers; thus, hijacking,
   tampering, and eavesdropping attacks are all possible as a result."</t>
      <t indent="0" pn="section-8-3">
	In some network environments, it is possible to secure the communication
	between clients and servers, as
   discussed in <xref target="RFC9915" section="22" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9915#section-22" derivedContent="RFC9915"/>.</t>
      <t indent="0" pn="section-8-4">
   If not all parties use this mechanism to obtain an SRv6 Locator from
   the DHCPv6 server, there is the possibility of the same SRv6 Locator
   being used by more than one device. Note that this issue could exist
   on these networks even if DHCP were not used to obtain the SRv6
   Locator. A potential mitigation is to partition the available
   address prefixes, ensuring that different allocation mechanisms draw
   from non-overlapping pools.</t>
      <t indent="0" pn="section-8-5">
   Server implementations <bcp14>SHOULD</bcp14> consider configuration options to
   limit the maximum number of SRv6 Locators to allocate (both in a
   single request and in total) to a client.  However, note that this
   does not prevent a bad client actor from pretending to be many
   different clients and consuming all available SRv6 Locators.</t>
      <t indent="0" pn="section-8-6">
   The SR domain is a trusted domain, as defined in Sections
   <xref target="RFC8402" sectionFormat="bare" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-2" derivedContent="RFC8402"/> and <xref target="RFC8402" sectionFormat="bare" section="8.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8402#section-8.2" derivedContent="RFC8402"/> of <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/>. Having such a well-defined trust boundary is necessary in
   order to operate SRv6-based services for internal traffic while
   preventing any external traffic from accessing or exploiting the
   SRv6-based services. Care and rigor in IPv6 address allocation for
   use for SRv6 SID allocations and network infrastructure addresses,
   as distinct from IPv6 addresses allocated for end users and systems
   (as illustrated in <xref target="RFC8754" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8754#section-5.1" derivedContent="RFC8754"/>), 
   can provide the clear distinction between internal and external address space that is
   required to maintain the integrity and security of the SRv6 domain.</t>
      <t indent="0" pn="section-8-7">
   When assigning SRv6 Locators to SRv6 Segment Endpoint Nodes using
   DHCPv6 as specified in this document, DHCPv6 clients and DHCPv6 servers <bcp14>MUST</bcp14>
   operate within a single trusted SR domain. As a border node device, a DHCPv6 client 
   may reside in customer premises, while the DHCPv6 server is located within the provider network. 
   Although they belong to the same trusted SR domain, the DHCPv6 client <bcp14>MUST</bcp14> implement 
   appropriate traffic filtering capabilities on both its internal and external interfaces, 
   as required by <xref target="RFC8754" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8754#section-5.1" derivedContent="RFC8754"/>.</t>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC7227" target="https://www.rfc-editor.org/info/rfc7227" quoteTitle="true" derivedAnchor="RFC7227">
          <front>
            <title>Guidelines for Creating New DHCPv6 Options</title>
            <author fullname="D. Hankins" initials="D." surname="Hankins"/>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <date month="May" year="2014"/>
            <abstract>
              <t indent="0">This document provides guidance to prospective DHCPv6 option developers to help them create option formats that are easily adoptable by existing DHCPv6 software. It also provides guidelines for expert reviewers to evaluate new registrations. This document updates RFC 3315.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="187"/>
          <seriesInfo name="RFC" value="7227"/>
          <seriesInfo name="DOI" value="10.17487/RFC7227"/>
        </reference>
        <reference anchor="RFC8168" target="https://www.rfc-editor.org/info/rfc8168" quoteTitle="true" derivedAnchor="RFC8168">
          <front>
            <title>DHCPv6 Prefix-Length Hint Issues</title>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="C. Liu" initials="C." surname="Liu"/>
            <author fullname="Y. Cui" initials="Y." surname="Cui"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">DHCPv6 Prefix Delegation allows a client to include a prefix-length hint value in the IA_PD option to indicate a preference for the size of the prefix to be delegated, but it is unclear about how the client and server should act in different situations involving the prefix-length hint. This document provides a summary of the existing problems with the prefix-length hint and guidance on what the client and server could do in different situations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8168"/>
          <seriesInfo name="DOI" value="10.17487/RFC8168"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" quoteTitle="true" derivedAnchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t indent="0">This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">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 indent="0">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="RFC8665" target="https://www.rfc-editor.org/info/rfc8665" quoteTitle="true" derivedAnchor="RFC8665">
          <front>
            <title>OSPF Extensions for Segment Routing</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">Segment Routing (SR) allows a flexible definition of end-to-end paths within IGP topologies by encoding paths as sequences of topological subpaths called "segments". These segments are advertised by the link-state routing protocols (IS-IS and OSPF).</t>
              <t indent="0">This document describes the OSPFv2 extensions required for Segment Routing.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8665"/>
          <seriesInfo name="DOI" value="10.17487/RFC8665"/>
        </reference>
        <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" quoteTitle="true" derivedAnchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <abstract>
              <t indent="0">Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="RFC8986" target="https://www.rfc-editor.org/info/rfc8986" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
              <t indent="0">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>
        <reference anchor="RFC8987" target="https://www.rfc-editor.org/info/rfc8987" quoteTitle="true" derivedAnchor="RFC8987">
          <front>
            <title>DHCPv6 Prefix Delegating Relay Requirements</title>
            <author fullname="I. Farrer" initials="I." surname="Farrer"/>
            <author fullname="N. Kottapalli" initials="N." surname="Kottapalli"/>
            <author fullname="M. Hunek" initials="M." surname="Hunek"/>
            <author fullname="R. Patterson" initials="R." surname="Patterson"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">This document describes operational problems that are known to occur when using DHCPv6 relays with prefix delegation. These problems can prevent successful delegation and result in routing failures. To address these problems, this document provides necessary functional requirements for operating DHCPv6 relays with prefix delegation.</t>
              <t indent="0">It is recommended that any network operator using DHCPv6 prefix delegation with relays ensure that these requirements are followed on their networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8987"/>
          <seriesInfo name="DOI" value="10.17487/RFC8987"/>
        </reference>
        <reference anchor="RFC9350" target="https://www.rfc-editor.org/info/rfc9350" quoteTitle="true" derivedAnchor="RFC9350">
          <front>
            <title>IGP Flexible Algorithm</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="S. Hegde" initials="S." surname="Hegde"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." surname="Talaulikar"/>
            <author fullname="A. Gulko" initials="A." surname="Gulko"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">IGP protocols historically compute the best paths over the network based on the IGP metric assigned to the links. Many network deployments use RSVP-TE or Segment Routing - Traffic Engineering (SR-TE) to steer traffic over a path that is computed using different metrics or constraints than the shortest IGP path. This document specifies a solution that allows IGPs themselves to compute constraint-based paths over the network. This document also specifies a way of using Segment Routing (SR) Prefix-SIDs and SRv6 locators to steer packets along the constraint-based paths.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9350"/>
          <seriesInfo name="DOI" value="10.17487/RFC9350"/>
        </reference>
        <reference anchor="RFC9352" target="https://www.rfc-editor.org/info/rfc9352" quoteTitle="true" derivedAnchor="RFC9352">
          <front>
            <title>IS-IS Extensions to Support Segment Routing over the IPv6 Data Plane</title>
            <author fullname="P. Psenak" initials="P." role="editor" surname="Psenak"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <date month="February" year="2023"/>
            <abstract>
              <t indent="0">The Segment Routing (SR) architecture allows a flexible definition of the end-to-end path by encoding it as a sequence of topological elements called "segments". It can be implemented over the MPLS or the IPv6 data plane. This document describes the IS-IS extensions required to support SR over the IPv6 data plane.</t>
              <t indent="0">This document updates RFC 7370 by modifying an existing registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9352"/>
          <seriesInfo name="DOI" value="10.17487/RFC9352"/>
        </reference>
        <reference anchor="RFC9513" target="https://www.rfc-editor.org/info/rfc9513" quoteTitle="true" derivedAnchor="RFC9513">
          <front>
            <title>OSPFv3 Extensions for Segment Routing over IPv6 (SRv6)</title>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <author fullname="Z. Hu" initials="Z." surname="Hu"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="P. Psenak" initials="P." surname="Psenak"/>
            <date month="December" year="2023"/>
            <abstract>
              <t indent="0">The Segment Routing (SR) architecture allows a flexible definition of the end-to-end path by encoding it as a sequence of topological elements called segments. It can be implemented over an MPLS or IPv6 data plane. This document describes the OSPFv3 extensions required to support SR over the IPv6 data plane.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9513"/>
          <seriesInfo name="DOI" value="10.17487/RFC9513"/>
        </reference>
        <reference anchor="RFC9800" target="https://www.rfc-editor.org/info/rfc9800" quoteTitle="true" derivedAnchor="RFC9800">
          <front>
            <title>Compressed SRv6 Segment List Encoding</title>
            <author fullname="W. Cheng" initials="W." role="editor" surname="Cheng"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="F. Clad" initials="F." role="editor" surname="Clad"/>
            <date month="June" year="2025"/>
            <abstract>
              <t indent="0">Segment Routing over IPv6 (SRv6) is the instantiation of Segment Routing (SR) on the IPv6 data plane. This document specifies new flavors for the SRv6 endpoint behaviors defined in RFC 8986, which enable the compression of an SRv6 segment list. Such compression significantly reduces the size of the SRv6 encapsulation needed to steer packets over long segment lists.</t>
              <t indent="0">This document updates RFC 8754 by allowing a Segment List entry in the Segment Routing Header (SRH) to be either an IPv6 address, as specified in RFC 8754, or a REPLACE-CSID container in packed format, as specified in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9800"/>
          <seriesInfo name="DOI" value="10.17487/RFC9800"/>
        </reference>
        <reference anchor="RFC9915" target="https://www.rfc-editor.org/info/rfc9915" quoteTitle="true" derivedAnchor="RFC9915">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="January" year="2026"/>
            <abstract>
              <t indent="0">This document specifies the Dynamic Host Configuration Protocol for IPv6 (DHCPv6), an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t indent="0">This document obsoletes RFC 8415. It incorporates verified errata and obsoletes the assignment of temporary addresses (the IA_TA option) and the server unicast capability (the Server Unicast option and UseMulticast status code).</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="102"/>
          <seriesInfo name="RFC" value="9915"/>
          <seriesInfo name="DOI" value="10.17487/RFC9915"/>
        </reference>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC7084" target="https://www.rfc-editor.org/info/rfc7084" quoteTitle="true" derivedAnchor="RFC7084">
          <front>
            <title>Basic Requirements for IPv6 Customer Edge Routers</title>
            <author fullname="H. Singh" initials="H." surname="Singh"/>
            <author fullname="W. Beebee" initials="W." surname="Beebee"/>
            <author fullname="C. Donley" initials="C." surname="Donley"/>
            <author fullname="B. Stark" initials="B." surname="Stark"/>
            <date month="November" year="2013"/>
            <abstract>
              <t indent="0">This document specifies requirements for an IPv6 Customer Edge (CE) router. Specifically, the current version of this document focuses on the basic provisioning of an IPv6 CE router and the provisioning of IPv6 hosts attached to it. The document also covers IP transition technologies. Two transition technologies in RFC 5969's IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) and RFC 6333's Dual-Stack Lite (DS-Lite) are covered in the document. The document obsoletes RFC 6204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7084"/>
          <seriesInfo name="DOI" value="10.17487/RFC7084"/>
        </reference>
        <reference anchor="RFC7368" target="https://www.rfc-editor.org/info/rfc7368" quoteTitle="true" derivedAnchor="RFC7368">
          <front>
            <title>IPv6 Home Networking Architecture Principles</title>
            <author fullname="T. Chown" initials="T." role="editor" surname="Chown"/>
            <author fullname="J. Arkko" initials="J." surname="Arkko"/>
            <author fullname="A. Brandt" initials="A." surname="Brandt"/>
            <author fullname="O. Troan" initials="O." surname="Troan"/>
            <author fullname="J. Weil" initials="J." surname="Weil"/>
            <date month="October" year="2014"/>
            <abstract>
              <t indent="0">This text describes evolving networking technology within residential home networks with increasing numbers of devices and a trend towards increased internal routing. The goal of this document is to define a general architecture for IPv6-based home networking, describing the associated principles, considerations, and requirements. The text briefly highlights specific implications of the introduction of IPv6 for home networking, discusses the elements of the architecture, and suggests how standard IPv6 mechanisms and addressing can be employed in home networking. The architecture describes the need for specific protocol extensions for certain additional functionality. It is assumed that the IPv6 home network is not actively managed and runs as an IPv6-only or dual-stack network. There are no recommendations in this text for the IPv4 part of the network.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7368"/>
          <seriesInfo name="DOI" value="10.17487/RFC7368"/>
        </reference>
      </references>
    </references>
    <section anchor="sect-10" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">
   The authors would like to thank <contact fullname="Gunter Van de Velde"/>,
   <contact fullname="Ketan Talaulikar"/>, <contact fullname="Mohamed    Boucadair"/>, <contact fullname="Chongfeng Xie"/>, <contact fullname="Joel    Halpern"/>, <contact fullname="Robert Raszuk"/>, <contact fullname="Aihua    Liu"/>, <contact fullname="Cheng Li"/>, <contact fullname="Xuewei Wang"/>,
   <contact fullname="Hao Li"/>, <contact fullname="Junjie Wang"/>, <contact fullname="Mengxiao Chen"/>, <contact fullname="Fang Gao"/>, <contact fullname="Aijun Wang"/>, <contact fullname="Xinxin Yi"/>, <contact fullname="Shenchao Xu"/>, <contact fullname="Yisong Liu"/>, <contact fullname="Xueshun Wang"/>, <contact fullname="Min Xiao"/>, <contact fullname="Liyan Gong"/>, <contact fullname="Linda Dunbar"/>, <contact fullname="Quan Xiong"/>, <contact fullname="Adrian Farrel"/>, and <contact fullname="Bernie Volz"/> for their comments on this document.</t>
    </section>
    <section numbered="false" anchor="contributors" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact fullname="Yuanxiang Qiu">
        <organization showOnFrontPage="true">New H3C Technologies</organization>
        <address>
          <email>qiuyuanxiang@h3c.com</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="W." surname="Cheng" fullname="Weiqiang Cheng" role="editor">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>chengweiqiang@chinamobile.com</email>
        </address>
      </author>
      <author initials="R." surname="Han" fullname="Ruibo Han">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>hanruibo@chinamobile.com</email>
        </address>
      </author>
      <author initials="C." surname="Lin" fullname="Changwang Lin" role="editor">
        <organization showOnFrontPage="true">New H3C Technologies</organization>
        <address>
          <postal>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>linchangwang.04414@h3c.com</email>
        </address>
      </author>
      <author initials="D." surname="Voyer" fullname="Daniel Voyer">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <city>Montreal</city>
            <country>Canada</country>
          </postal>
          <email>davoyer@cisco.com</email>
        </address>
      </author>
      <author initials="G." surname="Zhang" fullname="Geng Zhang">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <city>Beijing</city>
            <country>China</country>
          </postal>
          <email>zhanggeng@chinamobile.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
