<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-garg-l2vpn-over-srv6-01"
     ipr="trust200902"
     submissionType="independent"
     xml:lang="en"
     version="3">

  <front>
    <title abbrev="L2VPN over SRv6">
      Method to enable signaling of L2VPN services using SRv6 extensions
    </title>

    <seriesInfo name="Internet-Draft" value="draft-garg-l2vpn-over-srv6-01"/>

    <author fullname="Abhishek Garg" initials="Abhishek" surname="Garg" asciiFullname="Abhishek Garg">
      <organization>Ciena</organization>
      <address>
        <email>abhishekgarg.vip@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="August" day="31"/>

    <area>Routing</area>
    <workgroup>Individual Submission</workgroup>

    <keyword>L2VPN</keyword>
    <keyword>SRv6</keyword>
    <keyword>pseudowire</keyword>
    <keyword>IS-IS</keyword>
    <keyword>End.DX2</keyword>
    <keyword>End.DT2U</keyword>

    <abstract>
      <t>
        This document describes a mechanism to provide L2VPN services using
        Segment Routing over IPv6 (SRv6), eliminating the need for a separate
        signaling protocol for VPN label distribution.  In current deployments,
        L2VPN services rely on dedicated protocols such as the Label Distribution
        Protocol (LDP) or Border Gateway Protocol (BGP) for service label
        signaling, which adds control-plane complexity.  The proposed mechanism
        introduces an SRv6-based extension that enables L2VPN service
        identification within the SRv6 framework, reducing control-plane overhead
        and providing a simplified and efficient solution for L2VPN service
        delivery.
      </t>
    </abstract>
  </front>

  <middle>

    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>
        Layer 2 Virtual Private Network (L2VPN) services are widely deployed
        across service provider (SP) and data center (DC) networks to provide
        connectivity between geographically distributed sites.
      </t>
      <t>
        These services typically rely on two separate mechanisms for transport
        and service signaling.  The transport layer is provided by protocols
        such as MPLS or IP, while the service label (or pseudowire identifier)
        is distributed using dedicated control-plane protocols such as LDP or BGP.
      </t>
      <t>
        With the evolution of networking technologies, Segment Routing over IPv6
        (SRv6) has emerged as a flexible and scalable approach for traffic
        engineering and service delivery, as described in <xref target="RFC8402"/>
        and <xref target="RFC8986"/>.
      </t>
      <t>
        In parallel, network environments continue to include a mix of modern and
        legacy devices with varying capabilities and scalability constraints.  In
        many deployments, lightweight L2VPN services are needed for use cases such
        as management traffic or small-scale data center interconnect (DCI), where
        existing BGP-based solutions may be overly complex.
      </t>
      <t>
        This document focuses on improving L2VPN services by introducing an SRv6
        extension that carries L2VPN service identification natively, without
        requiring a separate service signaling protocol.
      </t>
    </section>

    <section numbered="true" toc="default">
      <name>Requirements Language</name>
      <t>
        The key words <bcp14>MUST</bcp14>, <bcp14>MUST NOT</bcp14>,
        <bcp14>REQUIRED</bcp14>, <bcp14>SHALL</bcp14>, <bcp14>SHALL NOT</bcp14>,
        <bcp14>SHOULD</bcp14>, <bcp14>SHOULD NOT</bcp14>,
        <bcp14>RECOMMENDED</bcp14>, <bcp14>NOT RECOMMENDED</bcp14>,
        <bcp14>MAY</bcp14>, and <bcp14>OPTIONAL</bcp14> in this document are to
        be interpreted as described in BCP 14 <xref target="RFC2119"/>
        <xref target="RFC8174"/> when, and only when, they appear in all
        capitals, as shown here.
      </t>
    </section>

    <section numbered="true" toc="default">
      <name>Problem Statement</name>
      <t>
        L2VPN services are widely deployed across SP and DC networks.  Existing
        solutions typically require separate mechanisms for transport and service
        identification, resulting in additional label overhead and dependency on
        multiple control-plane protocols.  These protocols must remain
        synchronized for correct operation, which increases operational complexity
        and may lead to service issues in case of inconsistency.
      </t>
      <t>
        Current approaches, such as Ethernet VPN (EVPN) over SRv6, reduce
        data-plane complexity but rely heavily on BGP, which can introduce
        scalability challenges, particularly on resource-constrained devices.
      </t>
      <t>
        In many deployments, lightweight L2VPN services are required for use
        cases such as management traffic or small-scale DCI, where existing
        solutions may be overly complex.
      </t>
      <t>
        Therefore, there is a need for a simplified and scalable L2VPN mechanism
        with reduced control-plane overhead and improved operational efficiency.
      </t>
    </section>

    <section numbered="true" toc="default">
      <name>Proposed Solution</name>
      <t>
        This document proposes a simplified L2VPN mechanism based on SRv6,
        eliminating the need for separate signaling protocols for transport and
        service identification.
      </t>
      <t>
        In the proposed approach, SRv6 is used for both transport and pseudowire
        (PW) signaling, thereby reducing the dependency on multiple control-plane
        protocols.  This unification simplifies service provisioning and reduces
        operational overhead.
      </t>
      <t>
        In a typical SRv6 deployment, an Endpoint SID (End SID) derived from an
        SRv6 locator is used to provide end-to-end transport connectivity.  This
        document extends the same concept to L2VPN services by introducing an
        SRv6 endpoint function that represents the L2VPN service.  This function,
        referred to as End.DX2 or End.DT2U depending on the L2VPN service type
        (E-LINE or ELAN), enables both service identification and forwarding
        behavior within the SRv6 framework.
      </t>
      <t>
        By leveraging SRv6 for both transport and service layers, the proposed
        mechanism reduces control-plane complexity and avoids the need for
        maintaining separate label spaces or signaling protocols.
      </t>
    </section>

    <section numbered="true" toc="default">
      <name>Detailed Mechanism</name>
      <t>
        Throughout this document, the term "End.L2VPN SID" is used as a generic
        reference to the SRv6 L2VPN endpoint SID.  It refers to either End.DX2
        or End.DT2U depending on the service type indicated by the Service-Type
        field in the L2VPN SRv6 Service TLV (see <xref target="sec-signaling"/>).
        Readers <bcp14>SHOULD</bcp14> interpret End.L2VPN SID accordingly
        wherever it appears in this document.
      </t>

      <section numbered="true" toc="default">
        <name>End.L2VPN SID: End.DX2 and End.DT2U</name>
        <t>
          The SRv6 endpoint behavior assigned to the L2VPN SID depends on the
          L2VPN service type, as follows:
        </t>
        <ul spacing="normal">
          <li>
            <t>
              End.DX2 (Endpoint with decapsulation and Layer-2 cross-connect),
              as defined in Section 4.8 of <xref target="RFC8986"/>:
              Used for E-LINE (point-to-point) services.  The receiving PE
              decapsulates the SRv6 header and forwards the L2 payload directly
              to the attachment circuit associated with the specific pseudowire.
              This behavior is applicable when there is a single, known next-hop
              L2 destination.
            </t>
          </li>
          <li>
            <t>
              End.DT2U (Endpoint with decapsulation and unicast MAC L2 table
              lookup), as defined in Section 4.10 of <xref target="RFC8986"/>:
              Used for ELAN (multipoint) services.  The receiving PE decapsulates
              the SRv6 header and performs a unicast MAC address lookup in the L2
              forwarding table associated with the VPN instance.  This behavior is
              applicable when the destination MAC needs to be resolved from a
              shared L2 forwarding table.
            </t>
          </li>
        </ul>
        <t>
          The Service-Type field in the L2VPN SRv6 Service TLV signals which
          endpoint behavior is in use, allowing the receiving PE to correctly
          interpret and install the forwarding state.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>SID Generation</name>
        <t>
          A PW-ID that is unique within an L2VPN instance is used to generate an
          End.L2VPN SID.  One implementation model is to derive the
          service-specific portion of the SID (the function value) from the PW-ID.
        </t>
        <t>
          For example, if a PE has PW 11 configured, the decimal value 11 is
          converted to hexadecimal (0xB) and encoded as the function value within
          the local SRv6 locator structure to form the End.L2VPN SID.  The
          resulting SID is then advertised via the mechanism described in
          <xref target="sec-signaling"/>.
        </t>
      </section>

      <section anchor="sec-signaling" numbered="true" toc="default">
        <name>Signaling of L2VPN</name>
        <t>
          To signal L2VPN services, this document introduces a new IGP TLV that
          carries L2VPN pseudowire information.  In the example described here,
          the signaling is carried in IS-IS.  Equivalent advertisement in other
          IGPs is outside the scope of this document.
        </t>
        <t>
          An IS-IS LSP carries the L2VPN information in a new TLV, defined as the
          L2VPN SRv6 Service TLV.  The TLV format is as follows:
        </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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |    Length     |     Flags     |   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            PW-ID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|             Neighbor IP Address (128 bits)                    |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Encap-Type   |  Service-Type |          Layer-2 MTU          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~          SRv6 Service Data Sub-TLV (variable)                ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~        PW Interface Parameters Sub-TLV (optional)            ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~              PW Status Sub-TLV (optional)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ]]></artwork>
        <dl newline="true" spacing="normal">
          <dt>Type (8 bits):</dt>
          <dd>The IS-IS TLV type codepoint assigned by IANA (TBD; see
          <xref target="sec-iana"/>).</dd>

          <dt>Length (8 bits):</dt>
          <dd>The total length of the TLV value field in octets, not including
          the Type and Length fields.</dd>

          <dt>Flags (8 bits):</dt>
          <dd>
            <t>Bit 7 (C): Control Word.  When set to 1, indicates that the
            control word is enabled for this pseudowire.  Both PEs
            <bcp14>MUST</bcp14> agree on the value of this bit before the
            pseudowire can be placed in service.</t>
            <t>Bits 6-0 (Reserved): <bcp14>MUST</bcp14> be set to zero on
            transmission and <bcp14>MUST</bcp14> be ignored on receipt.</t>
          </dd>

          <dt>Reserved (8 bits):</dt>
          <dd><bcp14>MUST</bcp14> be set to zero on transmission and
          <bcp14>MUST</bcp14> be ignored on receipt.</dd>

          <dt>PW-ID (32 bits):</dt>
          <dd>A 32-bit unsigned integer that uniquely identifies the pseudowire
          instance within the L2VPN domain.  The value <bcp14>MUST</bcp14> be
          non-zero.  A receiving PE <bcp14>MUST</bcp14> verify that this value
          matches a locally configured PW before installing any forwarding
          state.</dd>

          <dt>Neighbor IP Address (128 bits):</dt>
          <dd>The IPv6 loopback address of the advertising PE.  A receiving PE
          <bcp14>MUST</bcp14> verify that this address matches the expected peer
          address of the locally configured pseudowire before installing
          forwarding state.</dd>

          <dt>Encap-Type (8 bits):</dt>
          <dd>
            <t>Indicates the pseudowire encapsulation type.  Values are
            consistent with the IANA "Pseudowire Types" registry
            <xref target="RFC4446"/>.  Common values include:</t>
            <ul>
              <li>0x01: Ethernet (port mode)</li>
              <li>0x04: Ethernet VLAN</li>
            </ul>
          </dd>

          <dt>Service-Type (8 bits):</dt>
          <dd>
            <t>Indicates the L2VPN service type and determines the SRv6 endpoint
            behavior used for this pseudowire:</t>
            <ul>
              <li>0x01: E-LINE (point-to-point).  The End.L2VPN SID uses
              End.DX2 behavior as defined in <xref target="RFC8986"/>.</li>
              <li>0x02: ELAN (multipoint).  The End.L2VPN SID uses End.DT2U
              behavior as defined in <xref target="RFC8986"/>.</li>
            </ul>
            <t>Other values are reserved and <bcp14>MUST NOT</bcp14> be used.</t>
          </dd>

          <dt>Layer-2 MTU (16 bits):</dt>
          <dd>The maximum transmission unit of the attachment circuit in bytes.
          A receiving PE <bcp14>SHOULD</bcp14> verify that this value matches
          its locally configured MTU before installing forwarding state.</dd>

          <dt>SRv6 Service Data Sub-TLV:</dt>
          <dd>A mandatory sub-TLV carrying the End.L2VPN SID and associated
          SRv6 service parameters.  Format is defined in
          <xref target="sec-subtlv"/>.</dd>

          <dt>PW Interface Parameters Sub-TLV (optional):</dt>
          <dd>An optional sub-TLV carrying legacy pseudowire interface
          parameters, encoded using the format defined in
          <xref target="RFC4446"/>.</dd>

          <dt>PW Status Sub-TLV (optional):</dt>
          <dd>An optional sub-TLV that carries pseudowire operational state,
          indicating whether the pseudowire is forwarding and whether
          attachment-circuit or PSN-facing faults have been detected.</dd>
        </dl>
        <t>
          A receiving PE <bcp14>MUST</bcp14> verify that PW-ID, Neighbor IP
          Address, Service-Type, Encap-Type, Layer-2 MTU, and Control Word flag
          are consistent with the locally configured service before installing
          forwarding state for the remote End.L2VPN SID.
        </t>

        <section anchor="sec-subtlv" numbered="true" toc="default">
          <name>SRv6 Service Data Sub-TLV</name>
          <t>
            The SRv6 Service Data Sub-TLV carries the End.L2VPN SID value and
            its associated SID structure.  The format is as follows:
          </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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Sub-TLV Type |    Length     |      Endpoint Behavior        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                   SRv6 SID Value (128 bits)                   |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Loc-Block-Len | Loc-Node-Len  |   Func-Len    |   Arg-Len     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          ]]></artwork>
          <dl newline="true" spacing="normal">
            <dt>Sub-TLV Type (8 bits):</dt>
            <dd>The sub-TLV type codepoint (TBD; see
            <xref target="sec-iana"/>).</dd>

            <dt>Length (8 bits):</dt>
            <dd>The total length of the sub-TLV value field in octets, not
            including the Sub-TLV Type and Length fields.</dd>

            <dt>Endpoint Behavior (16 bits):</dt>
            <dd>
              <t>The SRv6 endpoint behavior code for the advertised SID, taken
              from the IANA "SRv6 Endpoint Behaviors" registry as defined in
              <xref target="RFC8986"/>.  The value <bcp14>MUST</bcp14> be
              consistent with the Service-Type in the enclosing L2VPN SRv6
              Service TLV:</t>
              <ul>
                <li>End.DX2: for E-LINE service (Service-Type 0x01)</li>
                <li>End.DT2U: for ELAN service (Service-Type 0x02)</li>
              </ul>
            </dd>

            <dt>SRv6 SID Value (128 bits):</dt>
            <dd>The SRv6 SID representing the End.L2VPN endpoint function on
            the advertising PE for the associated pseudowire.  The function
            portion of the SID is derived from the PW-ID as described in
            <xref target="sec-signaling"/>.</dd>

            <dt>Loc-Block-Len (8 bits):</dt>
            <dd>Length in bits of the locator block portion of the SID.</dd>

            <dt>Loc-Node-Len (8 bits):</dt>
            <dd>Length in bits of the locator node ID portion of the SID.</dd>

            <dt>Func-Len (8 bits):</dt>
            <dd>Length in bits of the function portion of the SID.  This portion
            encodes the PW-ID value.</dd>

            <dt>Arg-Len (8 bits):</dt>
            <dd>Length in bits of the argument portion of the SID.  Set to zero
            if no argument is present.</dd>
          </dl>
        </section>
      </section>
    </section>

    <section numbered="true" toc="default">
      <name>Example</name>
      <t>
        Consider a topology with three PE devices (PE1, PE2, PE3) connected
        through one P device.  IS-IS and SRv6 are configured on all nodes, and
        PW configuration is present on the PE devices.
      </t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
                   +--------+
                   |  PE1   |
                   +--------+
                        |
                        |
                   +--------+
                   |   P    |
                   +--------+
                    /       \
                   /         \
                  /           \
            +--------+    +--------+
            |  PE2   |    |  PE3   |
            +--------+    +--------+
      ]]></artwork>
      <t>IS-IS IPv6 and SRv6 are configured on all nodes:</t>
      <ul spacing="normal">
        <li>PW 10 is configured between PE1 and PE2 (E-LINE, End.DX2)</li>
        <li>PW 11 is configured between PE1 and PE3 (E-LINE, End.DX2)</li>
        <li>PW 12 is configured between PE3 and PE2 (E-LINE, End.DX2)</li>
      </ul>
      <t>Node addressing:</t>
      <ul spacing="normal">
        <li>PE1 loopback: 1::1/128,   End SID locator: 2001:db8:bbbb:A::/64</li>
        <li>PE2 loopback: 2::2/128,   End SID locator: 2001:db8:bbbb:B::/64</li>
        <li>PE3 loopback: 3::3/128,   End SID locator: 2001:db8:bbbb:C::/64</li>
      </ul>
      <t>The example below focuses on PW 11 (E-LINE) between PE1 and PE3.</t>
      <t>PE1 configuration:</t>
      <artwork><![CDATA[
   #L2VPN-srv6  pw-id 11 neighbor 3::3 service-type eline
      ]]></artwork>
      <t>PE3 configuration:</t>
      <artwork><![CDATA[
   #L2VPN-srv6  pw-id 11 neighbor 1::1 service-type eline
      ]]></artwork>
      <t>SID derivation:</t>
      <ul spacing="normal">
        <li>PE1 End.DX2 SID for PW 11: 2001:db8:bbbb:A::B/64
        (locator 2001:db8:bbbb:A::/64, function = 0xB = decimal 11)</li>
        <li>PE3 End.DX2 SID for PW 11: 2001:db8:bbbb:C::B/64
        (locator 2001:db8:bbbb:C::/64, function = 0xB = decimal 11)</li>
      </ul>

      <section numbered="true" toc="default">
        <name>Control Plane</name>
        <t>
          After pseudowire configuration, each PE advertises an IS-IS LSP
          containing an L2VPN SRv6 Service TLV for the configured PW.
        </t>
        <t>
          When PE1 receives the IS-IS update from PE3, it examines the L2VPN
          SRv6 Service TLV and verifies the following parameters against its
          local configuration:
        </t>
        <ul spacing="normal">
          <li>PW-ID matches a locally configured pseudowire (PW 11)</li>
          <li>Neighbor IP Address matches the expected peer (3::3 for PE1,
          1::1 for PE3)</li>
          <li>Service-Type, Encap-Type, Layer-2 MTU, and Control Word flag are
          consistent with the local service parameters</li>
        </ul>
        <t>
          If all parameters are consistent, PE1 installs PE3's End.DX2 SID
          2001:db8:bbbb:C::B/64 in its SRv6 forwarding table, mapped to the
          PW 11 attachment circuit.
        </t>
        <t>
          The same process occurs on PE3 when it receives the matching
          advertisement from PE1: PE3 installs 2001:db8:bbbb:A::B/64 in its
          SRv6 forwarding table.
        </t>
      </section>

      <section numbered="true" toc="default">
        <name>Data Plane</name>
        <t>
          When PE1 detects traffic on the attachment circuit for PW 11, it looks
          up PW 11 in its SRv6 forwarding table, retrieves PE3's End.DX2 SID
          2001:db8:bbbb:C::B, and creates an IPv6 packet with that destination
          address.  The L2VPN payload is encapsulated as the IPv6 payload.
        </t>
        <t>
          When the P device receives the IPv6 packet, it performs a
          longest-prefix match on the destination SID.  Because the SRv6 locator
          for PE3, 2001:db8:bbbb:C::/64, is present in the forwarding table, the
          packet is forwarded toward PE3.
        </t>
        <t>
          When PE3 receives the packet, it matches the destination address
          2001:db8:bbbb:C::B against its End.DX2 SID for PW 11, decapsulates the
          IPv6 header, and forwards the L2 payload toward the PW 11 attachment
          circuit.
        </t>
      </section>
    </section>

    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
        This document introduces a new signaling element that can influence
        pseudowire forwarding state.  Incorrect, spoofed, or unauthorized L2VPN
        SRv6 Service TLV advertisements could redirect traffic, blackhole
        traffic, or cause unintended pseudowire bindings to be installed.
      </t>
      <t>
        A receiving PE <bcp14>MUST</bcp14> validate that the advertised PW-ID,
        Neighbor IP Address, Service-Type, Encap-Type, Layer-2 MTU, and Control
        Word flag match locally provisioned state before installing any forwarding
        state derived from the received advertisement.
      </t>
      <t>
        Implementations and deployments <bcp14>SHOULD</bcp14> use the
        authentication and integrity mechanisms available for the underlying IGP
        carrying this information (e.g., IS-IS authentication as described in
        <xref target="RFC5304"/>).
      </t>
      <t>
        Operators <bcp14>SHOULD</bcp14> also consider the impact of stale
        advertisements, replayed information, and excessive service advertisements
        on nodes with constrained resources.
      </t>
    </section>

    <section anchor="sec-iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
        This document requests the following allocations from IANA.
      </t>

      <section numbered="true" toc="default">
        <name>IS-IS TLV Codepoints Registry</name>
        <t>
          This document requests one new codepoint from the "IS-IS TLV
          Codepoints" registry:
        </t>
        <table align="left">
          <thead>
            <tr>
              <th>Value</th>
              <th>Name</th>
              <th>IIH</th>
              <th>LSP</th>
              <th>SNP</th>
              <th>Purge</th>
              <th>Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>TBD</td>
              <td>L2VPN SRv6 Service TLV</td>
              <td>No</td>
              <td>Yes</td>
              <td>No</td>
              <td>No</td>
              <td>This document</td>
            </tr>
          </tbody>
        </table>
        <t>
          The TLV carries L2VPN pseudowire service information for an SRv6-based
          L2VPN signaling mechanism, including PW-ID, Neighbor IP Address,
          End.L2VPN SID, Encap-Type, Service-Type, Layer-2 MTU, Control Word
          flag, and optional sub-TLVs.
        </t>
        <t>
          This document does not request any sub-TLV codepoint assignment.  Such
          allocations <bcp14>MAY</bcp14> be defined by future documents if needed.
        </t>
      </section>
    </section>

  </middle>

  <back>
    <references>
      <name>References</name>

      <references>
        <name>Normative References</name>

        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>

        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
          </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">
          <front>
            <title>Segment Routing Architecture</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi" role="editor">
              <organization/>
            </author>
            <author initials="L." surname="Ginsberg" fullname="L. Ginsberg">
              <organization/>
            </author>
            <author initials="B." surname="Decraene" fullname="B. Decraene">
              <organization/>
            </author>
            <author initials="S." surname="Litkowski" fullname="S. Litkowski">
              <organization/>
            </author>
            <author initials="R." surname="Shakir" fullname="R. Shakir">
              <organization/>
            </author>
            <date year="2018" month="July"/>
          </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">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author initials="C." surname="Filsfils" fullname="C. Filsfils" role="editor">
              <organization/>
            </author>
            <author initials="P." surname="Camarillo" fullname="P. Camarillo" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Leddy" fullname="J. Leddy">
              <organization/>
            </author>
            <author initials="D." surname="Voyer" fullname="D. Voyer">
              <organization/>
            </author>
            <author initials="S." surname="Matsushima" fullname="S. Matsushima">
              <organization/>
            </author>
            <author initials="Z." surname="Li" fullname="Z. Li">
              <organization/>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>

      </references>

      <references>
        <name>Informative References</name>

        <reference anchor="RFC4446" target="https://www.rfc-editor.org/info/rfc4446">
          <front>
            <title>IANA Allocations for Pseudowire Edge to Edge Emulation (PWE3)</title>
            <author initials="L." surname="Martini" fullname="L. Martini">
              <organization/>
            </author>
            <date year="2006" month="April"/>
          </front>
          <seriesInfo name="BCP" value="116"/>
          <seriesInfo name="RFC" value="4446"/>
          <seriesInfo name="DOI" value="10.17487/RFC4446"/>
        </reference>

        <reference anchor="RFC5304" target="https://www.rfc-editor.org/info/rfc5304">
          <front>
            <title>IS-IS Cryptographic Authentication</title>
            <author initials="T." surname="Li" fullname="T. Li">
              <organization/>
            </author>
            <author initials="R." surname="Atkinson" fullname="R. Atkinson">
              <organization/>
            </author>
            <date year="2008" month="October"/>
          </front>
          <seriesInfo name="RFC" value="5304"/>
          <seriesInfo name="DOI" value="10.17487/RFC5304"/>
        </reference>

      </references>
    </references>

  </back>
</rfc>
