<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-ietf-spring-dhc-distribute-srv6-locator-dhcp-12" category="std" ipr="trust200902" obsoletes="" consensus="true" updates="" xml:lang="en" symRefs="true" sortRefs="false" tocInclude="true" version="3">
  <front>
    <title>Distribute SRv6 Locator by DHCP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spring-dhc-distribute-srv6-locator-dhcp-12"/>
    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng" role="editor">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author initials="R." surname="Han" fullname="Ruibo Han">
      <organization>China Mobile</organization>
      <address>
       <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>
        <email>hanruibo@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin" role="editor">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="D." surname="Voyer" fullname="Daniel Voyer">
      <organization>Cisco System</organization>
      <address>
        <postal>
          <street/>

          <city>Montreal</city>

          <region/>

          <code/>

          <country>Canada</country>
        </postal>
        <email>davoyer@cisco.com</email>
      </address>
    </author>
    <author initials="G." surname="Zhang" fullname="Geng Zhang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <region/>

          <code/>

          <country>China</country>
        </postal>
        <email>zhanggeng@chinamobile.com</email>
      </address>
    </author>
    <date year="2025" month="December" day="12"/>
    <workgroup>SPRING</workgroup>
    <abstract>
      <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 for
   assigning SRv6 Locators to SRv6 Segment Endpoint Nodes through
   DHCPv6.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   The Segment Routing (SR) architecture <xref target="RFC8402" format="default"/> 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>
   SR can be instantiated on the IPv6 data plane through the use of the
   Segment Routing Header (SRH) defined in <xref target="RFC8754" format="default"/>.  SR instantiation
   on the IPv6 data plane is referred to as SRv6.</t>
      <t>
   The network programming paradigm for SRv6 is specified in <xref target="RFC8986" format="default"/>.
   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 for
   assigning SRv6 Locators to SRv6 Segment Endpoint Nodes through
   DHCPv6.</t>
      <section anchor="sect-1.1" numbered="true" toc="default">
        <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
   BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all
   capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Terminology</name>
      <t>
   This document leverages the terms defined in <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/> and <xref target="RFC8986" format="default"/>. The reader is assumed to be familiar with
   this terminology.</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>Motivation</name>
      <t>
   Telecom providers can use their IP Metro and Backbone networks to
   establish connectivity between access users who are located in
   different regions.</t>
      <t>
   As shown in 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 Figure 1
   are part of a single trusted SR domain. The IP network customer
   provider edge (CPE) must be managed by the operator providing
   services or by a trusted partner.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
                            Metropolitan area network
                         +---------------------------+
                         |                           |
+------+     +------+    |  +-----+        +-------+ |
|Host1 +-----+ CPE1 +----+--+BRAS1+--------+Router1| |
+------+     +------+    |  +-----+        +---+---+ |
                         |                     |     |
                         +---------------------+-----+
                                               |
                                      +--------+-------------+
                                      |                      |
                                      |   Backbone Network   |
                                      |                      |
                                      +--------+-------------+
                                               |
                         +---------------------+-----+
                         |                     |     |
+------+     +------+    |  +-----+         +--+----+|
|Host2 +-----+ CPE2 +----+--+BRAS2+---------+Router2||
+------+     +------+    |  +-----+         +-------+|
                         +---------------------------+
               Figure 1: Telecom IPv6 Network
]]></artwork>
      <t>
   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 Section 6.3 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>. The DHCPv6 server is usually enabled on or relayed
   by the BRAS(Broadband Remote Access Server).</t>
      <t>
   After the DHCPv6 server allocates PD, BRAS will add a network route
   corresponding to PD to local routing table and distribute the
   network route to the upstream routers.</t>
      <t>
   In this network, operators hope to achieve interconnection between
   access users through End-to-End 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 CPE. Other devices in the network learn the SRv6
   Locator route of the CPE.</t>
      <t>
   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 or issued through the controller, and its specific
   configuration method is out of the scope of this document.</t>
      <t>
   However, due to the following reasons, it is difficult to achieve
   these requirements currently.</t>
      <ul spacing="normal">
        <li>
          <t>The configuration is very complex.</t>
        </li>
      </ul>
      <t>
   In Metro network, the number of CPEs is very large and widely
   distributed geographically. Moreover, the mobility requirements of
   CPE are relatively high, and the access location of the same CPE
   often changes, so its IPv6 address cannot be fixed.</t>
      <t>
   At present, an SRv6 Locator can only be configured on each CPE
   through a controller or the Command Line Interface (CLI), which
   increases the configuration complexity.</t>
      <ul spacing="normal">
        <li>
          <t>SRv6 Locator routes cannot be dynamically distributed.</t>
        </li>
      </ul>
      <t>
   CPE can be connected to the BRAS of local MAN through various types
   of networks, such as leased line, optical fiber, etc. Due to the
   diversity of connections, IGP is usually only enabled within the
   MAN, that is, IGP will not be deployed between CPE and BRAS.</t>
      <t>
   As a result, the SRv6 Locator route of CPE could not be distributed
   to the BRAS node through IGP, and the static route can only be
   configured manually on the BRAS or the controller. Configuring
   routes to CPE on BRAS increases the cost and workload of
   communication and coordination.</t>
      <t>
   To solve these difficulties this document proposes a method to
   allocate SRv6 Locators to CPE through DHCPv6 and distribute SRv6
   Locator routes by using the workflow of DHCPv6.</t>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>DHCPv6 Extensions</name>
      <section anchor="sect-4.1" numbered="true" toc="default">
        <name>Identity Association for SRv6 Locator Option</name>
        <t>
   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>
   The IA_SRV6_LOCATOR option can be carried in DHCPv6 Solicit,
   Advertise, Request, Reply, Renew, and Release messages.</t>
        <dl newline="true" spacing="normal" indent="0">
          <dt>The format of the IA_SRV6_LOCATOR option is:</dt>
          <dd/>
        </dl>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     OPTION_IA_SRV6_LOCATOR    |           Option-Len          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           IAID (4 octets)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              T1                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              T2                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   .                                                               .
   .                     IA_SRV6_LOCATOR-Options                   .
   .                                                               .
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Figure 2: Identity Association for SRv6 Locator Option Format

Where:
]]></artwork>
        <ul empty="true" spacing="normal">
          <li>
            <ul spacing="normal">
              <li>
                <t>Option-Code: OPTION_IA_SRV6_LOCATOR, the option code for the
      Identity Association for SRv6 Locator. The current value early
      assigned by IANA is 149.</t>
              </li>
              <li>
                <t>Option-Len: 12 + length of IA_SRV6_LOCATOR-Options field.</t>
              </li>
              <li>
                <t>IAID: The unique identifier for this IA_SRV6_LOCATOR. The IAID
      MUST 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 (i.e.,
      IA_TA, IA_NA and IA_PD). A 4-octet field containing an unsigned
      integer.</t>
              </li>
              <li>
                <t>T1: 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.</t>
              </li>
              <li>
                <t>T2: 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.</t>
              </li>
              <li>
                <t>IA_SRV6_LOCATOR-Options: Options associated with this
      IA_SRV6_LOCATOR. A variable-length field (12 octets less than the
      value in the Option-Len field).</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>
   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"/>) carrying the SRv6 Locators
   associated with this IA_SRV6_LOCATOR are in the IA_SRV6_LOCATOR-
   Options field.</t>
        <t>
   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>
   The status of any operations involving this IA_SRV6_LOCATOR is
   indicated in a Status Code option (see Section 21.13 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>) in the IA_SRV6_LOCATOR-Options field.</t>
        <t>
   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. 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>
   In a message sent by a client to a server, the T1 and T2 fields
   SHOULD be set to 0. The server MUST ignore any values in these
   fields in messages received from a client.</t>
        <t>
   In a message sent by a server to a client, the client MUST 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>
   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 MUST follow the rules defined in
   Section 14.2 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>.</t>
        <t>
   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="default">
        <name>IA Locator Option</name>
        <t>
   The IA Locator option is used to specify an SRv6 Locator associated
   with an IA_SRV6_LOCATOR. The IA Locator option MUST be encapsulated
   in the IA_SRV6_LOCATOR-Options field of an IA_SRV6_LOCATOR option
   (see <xref target="sect-4.1" format="default"/>). The terms Locator Block and Locator Node
   correspond to the B and N parts, respectively, of the SRv6 Locator
   that is defined in Section 3.1 of <xref target="RFC8986" format="default"/>.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     OPTION_IALOCATOR          |           Option-Len          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Preferred-lifetime                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Valid-lifetime                         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    LB-Len     |    LN-Len     |   Fun-Len     |    Arg-Len    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
  .                         SRv6-Locator                          .
  .                      (up to 16 octets)                        .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  .                                                               .
  .                       IALocator-Options                       .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                 Figure 3: IA Locator Option Format

Where:
]]></artwork>
        <ul empty="true" spacing="normal">
          <li>
            <ul spacing="normal">
              <li>
                <t>Option-code: OPTION_IALOCATOR, the option code for IA_SRv6_LOCATOR
      option. The current value early assigned by IANA is 150.</t>
              </li>
              <li>
                <t>Option-Len: 28 + length of IALocator-Options field.</t>
              </li>
              <li>
                <t>Preferred-lifetime: The preferred lifetime for the SRv6 Locator in
      the option, expressed in units of seconds. A value of 0xffffffff
      represents "infinity" (see Section 7.7 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>). A 4-octet field containing an unsigned integer.</t>
              </li>
              <li>
                <t>Valid-lifetime: 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.</t>
              </li>
              <li>
                <t>LB-Len: SRv6 SID Locator Block (LB) length in bits. A 1-octet
      unsigned integer.</t>
              </li>
              <li>
                <t>LN-Len: SRv6 SID Locator Node (LN) length in bits. A 1-octet
      unsigned integer.</t>
              </li>
              <li>
                <t>Fun-Len: SRv6 SID function (FUNCT) length in bits. A 1-octet
      unsigned integer.</t>
              </li>
              <li>
                <t>Arg-Len: SRv6 SID arguments (ARG) length in bits. A 1-octet
      unsigned integer.</t>
              </li>
              <li>
                <t>SRv6-Locator: 0-16 octets. This field encodes the SRv6 Locator.
      The SRv6 Locator is encoded in the minimal number of octets for
      the given number of bits. Trailing bits MUST be set to zero and
      ignored when received.</t>
              </li>
              <li>
                <t>IALocator-Options: Options associated with this SRv6 Locator. A
      variable-length field (determined by subtracting the length of the
      SRv6-Locator from the Option-Len minus 12). The Status code
      "NoSRv6LocatorAvail" indicate the server has no locators available
      to assign to the IA_SRv6_LOCATOR(s).</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>
   The SRv6 SID Locator length (LOC-Len) is LB-Len plus LN-Len.</t>
        <t>
   The sum of LB-Len, LN-Len, Fun-Len, and Arg-Len MUST NOT exceed 128
   bits. If the sum exceeds 128 bits, the IA_SRV6_LOCATOR option MUST
   be marked as invalid, and the remainder of the message SHOULD be
   processed as if the packet did not include this option.</t>
        <t>
   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 prefix delegation in Section 18.2.10.1 of
   <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>.</t>
        <t>
   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>
   The status of any operations involving this IA_SRv6_LOCATOR option
   is indicated in a Status Code option (see Section 21.13 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>) in the IALocator-Options field.</t>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Process of Assigning SRv6 Locator</name>
      <t>
   This document assumes that a single transaction for all of the IA
   options required on an interface is used, as recommended in Section
   18.1 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>.</t>
      <section anchor="sect-5.1" numbered="true" toc="default">
        <name>Procedure of SRv6 Locator</name>
        <t>
   Consistent with Prefix Delegation mechanism <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, the CPE 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 CPE, it
   automatically adds the associated SRv6 Locator routes.</t>
        <t>
   Figure 4 illustrates the process of SRv6 Locator allocation through
   DHCPv6.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
                 CPE         DHCP 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  |               |
               Figure 4: SRv6 Locator Exchange
]]></artwork>
        <t>
   As specified in Sections 18.2.1 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, DHCP
   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>
   DHCP 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>
   As specified in Sections 18.2.2 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, upon
   receiving the Advertise message, client accepts the assigned locator
   and sends a Request message with the IA_SRV6_LOCATOR option to
   confirm the requested locator.</t>
        <t>
   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>
   As described in Sections 18.2.4 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, 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>
   As described in Sections 18.2.5 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, 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>
   If the server responds with a Reply message, the client retains its
   allocated locator.</t>
        <t>
   If no response is received, the client considers the lease expired
   and restarts the process by sending a new Solicit message.</t>
        <t>
   As described in Sections 18.2.7 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, 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>
   Upon receiving the Release message, the server MUST removes the
   lease and frees the locator, making it available for allocation to
   other clients.</t>
        <t>
   For the advertisement of SRv6 locator routes, if the DHCP Relay or
   DHCP Server device that assigns SRv6 Locators to CPEs is also a BRAS
   device, it MAY locally advertise the CPE's SRv6 Locator route via
   the IGP protocol, enabling other SRv6 nodes to obtain the CPE's SRv6
   Locator route.</t>
      </section>
      <section anchor="sect-5.2" numbered="true" toc="default">
        <name>Advertisement of SRv6 Locator Route</name>
        <t>
   This section describes the processing of SRv6 Locator routes.</t>
        <t>
   As shown in Figure 5, when a BRAS device (functioning as a DHCP
   relay or DHCP server) receives an SRv6 Locator allocation request
   from a client, it MAY assign an SRv6 Locator to the client and
   install a corresponding SRv6 Locator route locally. The next hop of
   this route SHOULD point to the requesting client. The BRAS MAY then
   advertise this route via traditional routing protocols (e.g., an
   IGP) to allow other routers to learn it.</t>
        <t>
   Upon receiving an SRv6 Locator release request from the client, the
   BRAS MUST release the allocated SRv6 Locator, remove the local SRv6
   Locator route, and withdraw the previously advertised SRv6 Locator
   route via the IGP.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
Client---------------BRAS(Relay/Server)-------------Router
Alloc Locator  -->  Add SRv6 locator route
                    Advertise SRv6 Locator route -->
Release Locator-->  Del SRv6 locator route
                    Withdraw SRv6 Locator route  -->
               Figure 5: Advertisement of SRv6 Locator Route
]]></artwork>
      </section>
      <section anchor="sect-5.3" numbered="true" toc="default">
        <name>DHCP Client Behavior</name>
        <t>
   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>
   A client uses Request, Renew, Rebind, Release and Decline messages
   during the normal lifecycle of SRv6 Locator assignment.</t>
        <t>
   In a message sent by a client to a server, the preferred-lifetime
   and valid-lifetime fields SHOULD be set to 0. The server MUST ignore
   any received values in these lifetime fields.</t>
        <t>
   The client SHOULD NOT send an IA_SRv6_LOCATOR option with 0 in the
   "LB-Len" and "LN-Len" fields (and an unspecified value (::) in the
   "SRv6-Locator" field). The client MAY 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"/>.</t>
        <t>
   The client MUST discard any SRv6 Locators for which the preferred
   lifetime is greater than the valid lifetime.</t>
        <t>
   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>
   Upon the receipt of a valid Reply message with IA_SRV6_LOCATOR
   option in response to a Solicit with a Rapid Commit option, Request,
   Renew, or Rebind message, the client MUST process the Reply message
   according to the requirements of Section 18.2.10 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>, and configure the assigned SRv6 Locator in the client
   device automatically.</t>
        <t>
   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. If the client uses the assigned SRv6 Locator to configure
   local SRv6 SIDs, the preferred and valid lifetimes of those SRv6
   Locators MUST NOT be longer than the remaining preferred and valid
   lifetimes respectively for the assigned SRv6 Locator at any time.</t>
        <t>
   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 IA_SRV6_LOCATOR option as
   specified in Sections 18.2.4 and 18.2.5 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>.</t>
        <t>
   If the client no longer uses the SRv6 Locator, the client can
   actively send a Release message to notify the server to reclaim SRv6
   Locator and delete the corresponding SRv6 Locator. The client MUST
   include options containing the IAs for the SRv6 Locators it is
   releasing in the IA_SRV6_LOCATOR-options of IA_SRV6_LOCATOR option.</t>
        <t>
   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>
   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 recommended 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.4" numbered="true" toc="default">
        <name>DHCP Server Behavior</name>
        <t>
   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>
   The DHCPv6 server treats the SRv6 Locator as the prefix of prefix
   pool. Upon the receipt of the IA_SRV6_LOCATOR option, the server
   searches SRv6 Locator prefix pool and allocates appropriate SRv6
   Locators for the client.</t>
        <t>
   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>
   When operating as a BRAS device, the DHCPv6 server MAY install a
   local SRv6 Locator route pointing to the CPE and advertise this
   route via an IGP upon assigning an SRv6 Locator to the CPE.</t>
        <t>
   The IA_SRV6_LOCATOR option is filled with the SRv6 Locator
   information assigned to the client. The IA_SRV6_LOCATOR option
   populates the SRv6 Locator block length, locator node length,
   function length, and arguments length.</t>
        <t>
   Upon receiving the Release message from the client or when the SRv6
   Locator lease expires, the server reclaims the SRv6 Locator prefix
   resource and deletes the SRv6 Locator binding entry. If the DHCPv6
   server functions as a BRAS device, the server also MAY delete the
   corresponding SRv6 Locator route locally.</t>
        <t>
   For any IA_SRV6_LOCATOR option in the Request message to which the
   server cannot assign any SRv6 Locators, the server MUST 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>
   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 SHOULD be consistent (e.g., "Clients and Servers SHOULD assign a single locator unless explicitly configured").</t>
      </section>
      <section anchor="sect-5.5" numbered="true" toc="default">
        <name>DHCP Relay Agent Behavior</name>
        <t>
   For the scenario described in <xref target="sect-2" format="default"/>, if an external DHCPv6
   server is deployed to allocate SRv6 Locators, the DHCPv6 relay agent
   service needs to be enabled on the layer 3 network nodes close to
   the CPE. As shown in the figure below, the DHCP relay function is
   enabled on the router directly connected to the CPE. This deployment
   assumes that all of the relevant components in Figure 6 are part of
   a single trusted SR domain.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
              Client        DHCP Relay   DHCPv6 Server
+------+     +------+       +------+     +-----------+
| Host +-----+ CPE  +-------+Router+-----+    BRAS   |
+------+     +------+       +--+---+     +-----------+
                               |
                               |
                        +------+-----+
                        |  Backbone  |
                        |  Network   |
                        +------------+
           Figure 6: CPE accessed through DHCP relay
]]></artwork>
        <t>
   When the last DHCPv6 relay agent in the return path to the client
   receives DHCPv6 Relay-Reply messages, it extracts the
   IA_SRV6_LOCATOR option from the Reply message, and obtains the SRv6
   Locator assigned by the DHCPv6 server according to IA_SRV6_LOCATOR
   option. The first DHCPv6 relay agent needs to record the SRv6
   Locator assigned by the DHCPv6 server, including SRv6 Locator
   information, lifetime, etc. If the DHCPv6 Relay is directly
   connected to the CPE device, a corresponding SRv6 Locator route MAY
   also be added locally and advertised via IGP.. The outgoing
   interface of the route is the access interface connecting the
   client.</t>
        <t>
   After receiving the DHCPv6 Release or Decline messages from the
   client, or the valid lifetime of SRv6 Locator prefix expires, If the
   DHCPv6 relay is a BRAS device, the DHCPv6 relay agent MAY delete the
   SRv6 Locator route locally.</t>
      </section>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Implementation Status</name>
      <t>
   [Note to the RFC Editor - remove this section before publication, as well as remove the reference to [RFC7942].</t>
      <t>
   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of
   this Internet-Draft, and is based on a proposal described in
   <xref target="RFC7942" format="default"/>. The description of implementations in this section is
   intended to assist the IETF in its decision processes in progressing
   drafts to RFCs.  Please note that the listing of any individual
   implementation here does not imply endorsement by the IETF.
   Furthermore, no effort has been spent to verify the information
   presented here that was supplied by IETF contributors.  This is not
   intended as, and must not be construed to be, a catalog of available
   implementations or their features.  Readers are advised to note that
   other implementations may exist.</t>
      <t>
   According to <xref target="RFC7942" format="default"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="sect-6.1" numbered="true" toc="default">
        <name>New H3C Technologies</name>
        <ul spacing="normal">
          <li>
            <t>Organization: New H3C Technologies.</t>
          </li>
          <li>
            <t>Implementation: H3C CR16000, CR19000 series routers implementation
      of Distribute SRv6 Locator by DHCP.</t>
          </li>
          <li>
            <t>Description: All sections including all the "MUST" and "SHOULD"
      clauses have been implemented in above-mentioned New H3C
      Products(running Version 7.1.099 and above).</t>
          </li>
          <li>
            <t>Maturity Level: Product</t>
          </li>
          <li>
            <t>Coverage: All sections.</t>
          </li>
          <li>
            <t>Version: Draft-04</t>
          </li>
          <li>
            <t>Licensing: N/A</t>
          </li>
          <li>
            <t>Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t>Contact: linchangwang.04414@h3c.com</t>
          </li>
          <li>
            <t>Last updated: October 22, 2024</t>
          </li>
        </ul>
      </section>
      <section anchor="sect-6.2" numbered="true" toc="default">
        <name>Raisecom Corporation</name>
        <ul spacing="normal">
          <li>
            <t>Organization: Raisecom Corporation.</t>
          </li>
          <li>
            <t>Implementation: Raisecom's RaizSec-VNF  RaizSec-VNF Series SD-WAN
      Gateway implementation of Distribute SRv6 Locator by DHCP</t>
          </li>
          <li>
            <t>Description: All sections including all the "MUST" and "SHOULD"
      clauses have been implemented in Raisecom RaizSec-VNF series SD-
      WAN Gateway.</t>
          </li>
          <li>
            <t>Maturity Level: GA</t>
          </li>
          <li>
            <t>Coverage: ALL</t>
          </li>
          <li>
            <t>Version: Draft-04</t>
          </li>
          <li>
            <t>Licensing: N/A</t>
          </li>
          <li>
            <t>Implementation experience: Nothing specific.</t>
          </li>
          <li>
            <t>Contact: jiarongbin@raisecom.com</t>
          </li>
          <li>
            <t>Last updated: October 10, 2024</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   IANA has early assigned the following new DHCPv6 Option Codes in the
   "Option Codes" registry maintained at
   <eref target="https://www.iana.org/assignments/dhcpv6-parameters"/>.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
 +=======+========================+========+===========+===========+
 | Value |      Description       | Client | Singleton | Reference |
 |       |                        | ORO    | Option    |           |
 +=======+========================+========+===========+===========+
 |  149  | OPTION_IA_SRV6_LOCATOR |  NO    |   No      | [ This    |
 |       |                        |        |           | Document ]|
 +-------+------------------------+--------+-----------+-----------+
 |  150  |  OPTION_IALOCATOR      |  NO    |   No      | [ This    |
 |       |                        |        |           | Document ]|
 +-------+------------------------+--------+-----------+-----------+
                          Table 1
]]></artwork>
      <t>
   IANA is requested to assign a value for the following new DHCPv6
   Status code in the registry maintained in
   <eref target="http://www.iana.org/assignments/dhcpv6-parameters:"/>
      </t>
      <ul spacing="normal">
        <li>
          <t>NoSRv6LocatorAvail (TBD)</t>
        </li>
      </ul>
    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   See Section 23 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/> and Section 23 of
   <xref target="RFC7227" format="default"/> for the DHCP security considerations. See <xref target="RFC8200" format="default"/> for
   the IPv6 security considerations.</t>
      <t>
   As discussed in Section 23 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>: DHCP lacks
   end-to-end encryption between clients and servers; thus, hijacking,
   tampering, and eavesdropping attacks are all possible as a result.</t>
      <t>
   In some network environments, it is possible to secure them, as
   discussed later in Section 23 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/>.</t>
      <t>
   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 would exist
   on these networks even if DHCP were not used to obtain the SRv6
   Locator.</t>
      <t>
   Server implementations SHOULD 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>
    </section>
    <section anchor="sect-9" numbered="true" toc="default">
      <name>Privacy Considerations</name>
      <t>
   See Section 24 of <xref target="I-D.ietf-dhc-rfc8415bis" format="default"/> for the DHCP privacy
   considerations.</t>
      <t>
   The SR domain is a trusted domain, as defined in <xref target="RFC8402" format="default"/>, Sections
   2 and 8.2. 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 Section 5.1 of <xref target="RFC8754" format="default"/>), 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>
   When assigning SRv6 Locators to SRv6 Segment Endpoint Nodes using
   DHCPv6 as specified in this document, CPEs and BRAS devices MUST
   operate within a single trusted SR domain.</t>
    </section>
    <section anchor="sect-10" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>
   The authors would like to thank Chongfeng Xie, Joel Halpern, Robert
   Raszuk, Aihua Liu, Cheng Li, Xuewei Wang, Hao Li, Junjie Wang,
   Mengxiao Chen, Fang Gao, Aijun Wang, Xinxin Yi, Shenchao Xu, Yisong
   Liu, Xueshun Wang, Min Xiao, Liyan Gong, Linda Dunbar, Quan Xiong,
   Adrian Farrel and Bernie Volz for their comments to this document.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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="RFC7227" target="https://www.rfc-editor.org/info/rfc7227" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7227.xml">
          <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>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="RFC7942" target="https://www.rfc-editor.org/info/rfc7942" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml">
          <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>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="RFC8168" target="https://www.rfc-editor.org/info/rfc8168" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8168.xml">
          <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>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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8402" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
          <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>
        <reference anchor="I-D.ietf-dhc-rfc8415bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-dhc-rfc8415bis-12" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dhc-rfc8415bis.xml">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="Tomek Mrugalski" initials="T." surname="Mrugalski">
              <organization>Internet Systems Consortium,
      Inc.</organization>
            </author>
            <author fullname="Bernie Volz" initials="B." surname="Volz">
              <organization>Individual Contributor</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Sheng Jiang" initials="S." surname="Jiang">
              <organization>Beijing University of Posts and Telecommunications</organization>
            </author>
            <author fullname="Timothy Winters" initials="T." surname="Winters">
              <organization>QA Cafe</organization>
            </author>
            <date day="4" month="June" year="2025"/>
            <abstract>
              <t>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). This document obsoletes RFC8415 to incorporate reported errata and to obsolete 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="Internet-Draft" value="draft-ietf-dhc-rfc8415bis-12"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
          <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>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>
      </references>
    </references>
    <section numbered="false" anchor="contributors" toc="default">
      <name>Contributors</name>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Yuanxiang Qiu
New H3C Technologies

Email: qiuyuanxiang@h3c.com
]]></artwork>
    </section>
  </back>
</rfc>
