<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?Pub Inc?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-rtgwg-srv6-egress-protection-23" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Egress Protection">SRv6 Path Egress Protection</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rtgwg-srv6-egress-protection-23"/>
    <author fullname="Tao He" initials="T" surname="He">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <street>No.9 South Shouti Road</street>
          <city>Beijing</city>
          <code>100048</code>
          <country>China</country>
        </postal>
        <email>het21@chinaunicom.cn</email>
      </address>
    </author>
    <author fullname="Zhibo Hu" initials="Z. " surname="Hu">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>
          <city>Beijing</city>
          <code>100095</code>
          <country>China</country>
        </postal>
        <email>huzhibo@huawei.com</email>
      </address>
    </author>
    <author fullname="Huaimo Chen" initials="H" surname="Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street/>
          <city>Boston, MA</city>
          <region/>
          <code/>
          <country>USA</country>
        </postal>
        <email>hchen.ietf@gmail.com</email>
      </address>
    </author>
    <!--
    <author fullname="Huanan Chen" initials="H. " surname="Chen">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>109, West Zhongshan Road, Tianhe District</street>

          <city>Guangzhou</city>

          <code>510000</code>

          <country>China</country>
        </postal>

        <email>chenhn8.gd@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Peng Wu" initials="P. " surname="Wu">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>Huawei Bld., No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>baggio.wupeng@huawei.com</email>
      </address>
    </author>
-->
    <author fullname="Mehmet Toy" initials="M" surname="Toy">
      <organization>Verizon</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <country>USA</country>
        </postal>
        <email>mehmet.toy@verizon.com</email>
      </address>
    </author>
    <author fullname="Chang Cao" initials="C" surname="Cao">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <street>No.9 South Shouti Road</street>
          <city>Beijing</city>
          <code>100048</code>
          <country>China</country>
        </postal>
        <email>caoc15@chinaunicom.cn</email>
      </address>
    </author>
    <!--
    <author fullname="Lei Liu" initials="L" surname="Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country>USA</country>
        </postal>

        <email>liulei.kddi@gmail.com</email>
      </address>
    </author>

   <author initials="X" fullname="Xufeng Liu" 
            surname="Liu">
      <organization>IBM Corporation</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

    <author fullname="Chris Bowers" initials="C. " surname="Bowers">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1194 N. Mathilda Ave.</street>
          <city>Sunnyvale, CA</city>
          <code>94089</code>
          <country>USA</country>
        </postal>
        <email>cbowers@juniper.net</email>
      </address>
    </author>
-->

    <date year="2026"/>
    <abstract>
      <t>TI-LFA specifies fast protections for transit nodes and links of an
      SR path. However, it does not present any fast protections for  
      the egress node of the SR path.
      This document describes protocol extensions for fast protecting 
      the egress node and link of a Segment Routing for IPv6 (SRv6) path.
      The solution uses IGP extensions and a Mirror SID (End.M) behavior to 
      steer traffic to a protector egress upon failure of the primary egress.</t>
      <t>This document operates within a single link-state IGP area/level and 
      uses IS-IS/OSPFv3 to advertise a Mirror SID and the protected locators 
      for egress node/link protection. While the mechanism can protect traffic 
      whose active segment at the egress is a Service SID (e.g., VPN SID), it 
      is not suitable for large-scale deployments with a high cardinality of 
      VPN/service instances or random multi-homing patterns, because the amount
       of egress-protection information to be flooded in the IGP increases and 
       may impact convergence and control-plane load.</t>
    </abstract>
    <note>
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/>
      when, and only when, they appear in all
      capitals, as shown here.</t>
    </note>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <!-- <xref target="I-D.hu-rtgwg-sr-proxy-forwarding"/>. -->

      <t><xref target="RFC9855" format="default"/>
      specifies fast protections 
      for nodes and links that are within a link-state IGP area.
      In other words, it specifies fast protections for transit nodes 
      and links of an SR path, but does not describe any fast 
      protections for the egress node or link of an SR path. 
      While TI-LFA provides fast protection for transit nodes and links
      within an IGP area, it does not address egress node protection because
      the egress node is the endpoint of the SR path. TI-LFA relies on 
      pre-computed backup paths that bypass failed nodes or links while 
      maintaining the same destination. However, when the egress node itself
      fails, the destination becomes unreachable through the primary path.
      This document addresses this gap by introducing a Mirror SID mechanism
      that allows a backup egress node to take over the forwarding behavior
      of the failed egress node, effectively extending protection to the 
     network edge.</t>
      <t><xref target="RFC8400" format="default"/> and <xref target="RFC8679" format="default"/> 
      specify fast protections for egress node(s) and link(s) of an
      MPLS TE LSP tunnel including P2P TE LSP tunnel and P2MP TE LSP tunnel in
      details. However, these documents do not discuss any fast protection for
      the egress node and link of a Segment Routing for IPv6 (SRv6) path or tunnel.</t>
      <t>For an SRv6 path from an ingress node to an egress node, 
      the fast protection for the egress node and link of the path can be 
      achieved through using 1 + 1 global protection. This solution
      uses more network resources and makes operation complex. 
      A backup SRv6 path from the ingress node to a backup egress node
      is set up. A CE is dual-homed to the egress node and
      the backup egress node. A SID of the egress node
      is used to forward the traffic to the CE. This same SID is
      configured on the backup egress node to forward the traffic
      to the same CE. Both paths transmit the traffic to the same
      CE, which selects one. The CE selects the traffic from the 
      egress node if the egress node and link work well;
      otherwise (i.e., the egress node or link failed), the CE
      selects the traffic from the backup egress node.</t>
      <!--
      <t>This document fills that void and presents protocol extensions for
      the fast protection of the egress node of an SRv6 path or tunnel.</t>
-->
      <t>
      This document presents a solution which provides fast protections 
      for the egress node and link  
      of an SRv6 path through extending IGP and using Mirror SID.
      Compared to 1 + 1 global protection, 
      this solution is more efficient 
      and the operation on it is simpler. 
      </t>
      <t>The solution is scoped to a single link-state IGP area/level. It relies
       on IGP to distribute the tuple &lt;PEB, PEA, Mirror SID&gt; with the protected
        locators. The forwarding behavior for Service SIDs anchored on PEA may 
        be obtained by the protector via existing means (e.g., <xref target="RFC9252" format="default"/>) 
        or configuration, but this document does not introduce any 
        per-service signaling in the IGP. Furthermore, the approach is 
        applicable to modest numbers of protected services; large-scale 
        deployments with many VPN/service instances or random multi-homing 
        are not recommended due to IGP scaling considerations.</t>
      <!--
      <t>There are a number of topics related to the egress protection, which
      include the detection of egress node failure, the relation between
      egress protection and global repair, and so on. These are discussed in
      details in <xref target="RFC8679"/>.</t>
-->
    </section>
    <!-- Introduction -->

    <section numbered="true" toc="default">
      <name>Terminologies</name>
      <t>The following terminologies are used in this document. </t>
      <dl newline="false" spacing="normal">
        <dt>BFD:</dt>
        <dd>Bidirectional Forwarding Detection</dd>
        <dt>BGP:</dt>
        <dd>Border Gateway Protocol</dd>
        <dt>CE:</dt>
        <dd>Customer Edge</dd>
        <dt>DA:</dt>
        <dd>Destination Address</dd>
        <dt>Egress link:</dt>
        <dd>A link from an egress node to another 
             domain <xref target="RFC8679" format="default"/></dd>
        <dt>Egress node:</dt>
        <dd>A domain exit node on an SRv6 path</dd>
        <dt>FIB:</dt>
        <dd>Forwarding Information Base</dd>
        <dt>IGP:</dt>
        <dd>Interior Gateway Protocol</dd>
        <dt>IS-IS:</dt>
        <dd>Intermediate System to Intermediate System</dd>
        <dt>L3VPN:</dt>
        <dd>Layer 3 VPN</dd>
        <dt>LFA:</dt>
        <dd>Loop-Free Alternate</dd>
        <dt>LS:</dt>
        <dd>Link State, which is LSA in OSPF/OSPFv3 or LSP in
             IS-IS</dd>
        <dt>LSA:</dt>
        <dd>Link State Advertisement in OSPF/OSPFv3</dd>
        <dt>LSP:</dt>
        <dd>Label Switched Path in MPLS or Link State
             Protocol PDU in IS-IS</dd>
        <dt>OSPF:</dt>
        <dd>Open Shortest Path First</dd>
        <dt>OSPFv3:</dt>
        <dd>Open Shortest Path First version 3</dd>
        <dt>P2MP:</dt>
        <dd>Point-to-MultiPoint</dd>
        <dt>P2P:</dt>
        <dd>Point-to-Point</dd>
        <dt>PDU:</dt>
        <dd>Protocol Data Unit</dd>
        <dt>PE:</dt>
        <dd>Provider Edge</dd>
        <dt>PLR:</dt>
        <dd>Point of Local Repair</dd>
        <dt>RL:</dt>
        <dd>Repair List</dd>
        <dt>SA:</dt>
        <dd>Source Address</dd>
        <dt>SID:</dt>
        <dd>Segment Identifier</dd>
        <dt>SR:</dt>
        <dd>Segment Routing</dd>
        <dt>SR path:</dt>
        <dd>An SR path in this document is the
             active path of an SR Policy 
             <xref target="RFC9256" format="default"/></dd>
        <dt>SRv6:</dt>
        <dd>SR for IPv6</dd>
        <dt>SRv6 path:</dt>
        <dd>An SRv6 path in this document is the
             active path of an SR Policy with SRv6 SIDs 
             <xref target="RFC9256" format="default"/></dd>
        <dt>TE:</dt>
        <dd>Traffic Engineering</dd>
        <dt>TI-LFA:</dt>
        <dd>Topology Independent LFA</dd>
        <dt>VPN:</dt>
        <dd>Virtual Private Network</dd>
      </dl>
    </section>
    <!-- Terminologies -->

    <section numbered="true" toc="default">
      <name>SRv6 Path Egress Protection</name>
      <t>This section describes the mechanism of SRv6 path egress protection and
      illustrates it through an example.</t>
      <t>All advertisements and computations in this section are confined to a 
      single link-state IGP area/level for SRv6.</t>
      <section numbered="true" toc="default">
        <name>Mechanism</name>
        <t><xref target="SR-Protect-Egress-A" format="default"/> is used to explain the
        mechanism of SRv6 path egress node and egress link protection. </t>
        <figure anchor="SR-Protect-Egress-A">
          <name>PEB Protects Egress PEA of SRv6 Path</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[                                    
            *******  *******SIDa
        [PE1]-----[P1]-----[PEA]---[CE2]    PEA Egress
        / |        |&        | \   /        PEB Backup Egress
       /  |        |&        |  \ /         CEx Customer Edge
  [CE1]   |        |&        |   X          Px  Non-Provider Edge
       \  |        |&        |  / \         *** SRv6 Path
        \ |        |& &&&&&  | /   \        &&& Backup Path
        [PE2]-----[P2]-----[PEB]---[CE3]                                                                       
                        Mirror SID]]></artwork>
        </figure>
        <section numbered="true" toc="default">
          <name>Egress Node Protection</name>
          <t>Desired Pathways in <xref target="SR-Protect-Egress-A" format="default"/>:</t>
          <t>
        Node PEA in <xref target="SR-Protect-Egress-A" format="default"/> 
        is the egress node (aka egress) 
        of the SRv6 path from PE1 to
        PEA and has SIDa which is the active segment in the packet from the
        SR path at PEA. Node PEB is the backup egress node (aka protector or
        backup egress) to
        provide the fast protection for the egress node 
        (aka primary egress node) PEA. Node P1
        is the direct previous/upstream endpoint of egress node PEA and 
        acts as PLR 
        (refer to <xref target="RFC9855" format="default"/>)
        to support the fast protection for PEA.</t>
          <t>Steps in Creating the Pathways:</t>
          <t>Step 1: Normal Pathway Set-up</t>
          <t>Normal path set-up establishes 
          the SR path from ingress PE1 to egress PEA via P1. 
          Ingress PE1 imports the traffic from CE1 into the SR path and
          egress PEA delivers the traffic from the SRv6 path to CE2.</t>
          <t>Step 2: Backup Pathway Set-up</t>
          <t>Step 2a: PEB Announces to Protect PEA</t>
          <t>When PEB is selected as a backup egress node 
        to protect the egress node PEA,
        a SRv6 Mirror SID (refer to Section 5.1 of <xref target="RFC8402" format="default"/>) is
        configured on PEB to protect PEA. PEB MUST advertise this information
        through IGP, which includes the Mirror SID and the egress PEA. The
        information is represented by &lt;PEB, PEA, Mirror SID&gt;, together 
        with the protected locators. This IGP signaling does not enumerate 
        per-service entries.</t>
          <t>Step 2b: PEB Gets Forwarding Behavior of PEA</t>
          <t>After PEA receives the information &lt;PEB, PEA, Mirror SID&gt;, it 
        may provide to PEB the forwarding behavior for the active SRv6 segment SIDa 
        at PEA by existing means. When SIDa is a Service SID (e.g., a VPN SID) 
        anchored on PEA, PEB may learn its forwarding behavior via the BGP-based 
        overlay as per <xref target="RFC9252" format="default"/> or by configuration; this document does not 
        introduce per-service signaling in IGP. This enables PEB to reproduce 
        the egress behavior for packets whose active segment at PEA is a Service
         SID, without requiring IGP to flood per-service state.</t>
          <t>Step 2c: PEB Creates FIB for PEA</t>
          <t>When PEB gets the forwarding behavior of SIDa of PEA, it MUST add a 
        forwarding entry for SIDa into the forwarding table identified by the 
        Mirror SID (the PEA context). This supports Service SID semantics at 
        the protector. However, for large numbers of Service SIDs, operators 
        SHOULD avoid deployments where protection requires fine-grained 
        per-service modeling in IGP, as it may increase IGP flooding and 
        affect convergence.</t>
          <t>Step 2d: P1 as PLR Prepares to Protect PEA by PEB</t>
          <t>After P1 as PLR receives the information &lt;PEB, PEA, Mirror
        SID&gt; and knows that PEB wants to protect SIDa of PEA, it computes
        an LFA for PEA assuming that PEA and PEB have the same anycast address.
        A Repair List RL (or say backup path) is obtained based on the LFA.
        It is one of the following: </t>
          <dl newline="false" spacing="normal">
            <dt>o</dt>
            <dd>RL = &lt;Mirror SID&gt; if the LFA is the next 
               hop node to PEB along the shortest path to PEB; or</dd>
            <dt>o</dt>
            <dd>RL = &lt;S1, ..., Sn, Mirror SID&gt; if the LFA is
            a TI-LFA, where &lt;S1, ..., Sn&gt; is the TI-LFA Repair
            List to PEB computed by P1.</dd>
          </dl>
          <t>Step 3: Backup Path Is Engaged upon PEA Failure</t>
          <t>Step 3a: P1 Detects PEA Failure via BFD or Other Mechanisms</t>
          <t>Step 3b: P1 Sends Packet with SIDa to Backup Egress PEB</t>
          <t>When egress node PEA fails, 
        P1 as PLR sends the packet with SIDa carried by the
        SR path to backup egress node PEB, 
        but MUST encapsulate the packet before sending it by
        executing H.Encaps with the Repair List RL and a Source Address T.</t>
          <t>P1 as PLR needs to
   retain the route to PEA for a period of time 
   after its IGP converges on the failure of PEA.  Thus the backup path
   for PEA will be used when the other nodes (such as PE1) still send
   the packet to PEA via P1 since their IGPs do not converge on the
   failure.
</t>
          <t>Suppose that the packet received by P1 is represented by Pkt = (S,
        SID-P1)(SIDa,SID-P1; SL=1)Pkt0, 
        where SA = S and DA = SID-P1 (i.e., SID of P1), 
        and Pkt0 is the rest of the packet.
        P1 sets DA to SIDa, updates SL and executes H.Encaps.</t>
          <t>The execution of H.Encaps pushes an IPv6 header to Pkt and sets
        some fields in the outer and inner IPv6 header to produce an
        encapsulated packet Pkt'. Pkt' will be one of the following: </t>
          <dl newline="false" spacing="normal">
            <dt>o</dt>
            <dd>Pkt' = (T, Mirror SID) (S, SIDa)Pkt0 if RL =
            &lt;Mirror SID&gt;; or</dd>
            <dt>o</dt>
            <dd>Pkt' = (T, S1)(Mirror SID, Sn, ..., S1; SL=n) (S,
            SIDa)Pkt0 if RL = &lt;S1, ..., Sn, Mirror SID&gt;.</dd>
          </dl>
          <t>Step 3c: PEB Decapsulates Packet and Forwards It</t>
          <t>When PEB receives the re-routed packet, which is (T, Mirror SID)
        (S, SIDa)Pkt0, it decapsulates the packet and forwards the
        decapsulated packet using the FIB table Tm identified by the Mirror SID
        as a variant of End.DT6 SID. The Mirror SID
        is called End.M.</t>
        <t>When a node processes a packet with an End.M SID as the destination,
         it MUST perform the following steps in order:
         1. Verify that the End.M SID is locally instantiated. If not, 
            process according to Section 4.1.1 of <xref target="RFC8986" format="default"/>.
         2. Remove the outer IPv6 header with all its extension headers.
         3. Identify the FIB table associated with the End.M SID context.
         4. Submit the inner packet to the identified FIB table for 
            forwarding.
         If any of these steps fail, the packet MUST be dropped and an 
         appropriate error counter SHOULD be incremented.</t>
          <t>The behavior of Mirror SID (End.M for short) is a variant of
           the End.DT6 behavior (refer to Section 4.6 of 
           <xref target="RFC8986" format="default"/>). 
           The End.M SID MUST be the last segment in an SR path, 
           and a SID instance is associated with an IPv6 FIB table Tm.</t>
          
        </section>
        <!-- "Egress Node Protection" -->

     <section numbered="true" toc="default">
          <name>Egress Link Protection</name>
          <t>Egress link protection is similar to egress node protection for SRv6
        <xref target="RFC8679" format="default"/>.
        When the egress link from egress node PEA to CE2 fails,
        PEA acting as a PLR reroutes the traffic to 
        backup egress node PEB via a backup path. 
        Specifically, PEA as a PLR pre-computes a Repair List RL 
        (or say backup path) toward PEB after 
        receiving &lt;PEB, PEA, Mirror SID&gt; and
        knowing that PEB wants to protect SIDa of PEA. 
        When the link fails, PEA as PLR sends the packet with SIDa
        by executing H.Encaps with the Repair List RL. All operations occur 
        within the same IGP flooding scope; no per-service signaling is 
        introduced in IGP.</t>
        </section>
        <!-- "Egress Link Protection" -->
      </section>
      <!-- Mechanism -->

      <section numbered="true" toc="default">
        <name>Example</name>
        <t><xref target="SR-Protect-Egress-PE3" format="default"/> shows an example of
        fast protecting egress node PE3 of an SRv6 path, 
        which is from ingress node PE1 to
        egress node PE3. </t>
        <figure anchor="SR-Protect-Egress-PE3">
          <name>PE4 Protects Egress PE3 of SR Path</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[            SID-P1: A5:1::A100  Locator: A3:1::/64
              *******  *******   VPN SID: A3:1::B100
          [PE1]-----[P1]-----[PE3]---[CE2]      PE3 Egress
          / |        |&        | \   /          PE4 Backup Egress
         /  |        |&        |  \ /           CEx Customer Edge
    [CE1]   |        |&        |   X            Px  Non-Provider Edge
         \  |        |&        |  / \           *** SR Path
          \ |        |& &&&&&  | /   \          &&& Backup Path
          [PE2]-----[P2]-----[PE4]---[CE3]
                                Locator: A4:1::/64
                                VPN SID: A4:1::B100
                             Mirror SID: A4:1::3, protect A3:1::/64]]></artwork>
        </figure>
        <t>Desired Pathways in <xref target="SR-Protect-Egress-PE3" format="default"/>:</t>
        <t>Node P1's pre-computed backup path for PE3 is from
        P1 to PE4 via P2. In normal operations, after receiving a packet with SRv6
        destination PE3, P1 forwards the packet to PE3 according to its FIB.
        When PE3 receives the packet, it sends the packet to CE2.</t>
        <t>When PE3 fails, P1 as PLR detects the failure through using a
        failure detection mechanism such as BFD and forwards the packet to PE4
        via the backup path. When PE4 receives the packet, it sends the packet
        to the same CE2.</t>
        <t>When P1's IGP converges on the failure of PE3, P1 as PLR needs to
        retain the route to PE3 for a period of time. 
        Thus the backup path for PE3 will be used when the other nodes 
        (such as PE1) still send the packet to PE3 via P1 since their IGPs
        do not converge on the failure.</t>
        <t>In <xref target="SR-Protect-Egress-PE3" format="default"/>, Both CE2 
        and CE3 are dual-homed to PE3 and PE4. PE3 has a locator A3:1::/64 and a 
        VPN SID A3:1::B100. 
        PE4 has a locator A4:1::/64 and VPN SID A4:1::B100. A Mirror SID A4:1::3
        is configured on PE4 for protecting PE3 with locator A3:1::/64. P1 has 
        SID-P1 = A5:1::A100.</t>
        <t>Steps in Creating the Pathways:</t>
        <t>Step 1: Normal Pathway Set-up [PEB is PE4, PEA is PE3]</t>
        <t>Step 2: Backup Pathway Set-up</t>
        <t>Step 2a: PE4 (aka PEB) Announces to Protect PE3 (aka PEA)</t>
        <t>After the configuration, PE4 advertises this information through an
        IGP LS (i.e., LSA in OSPFv3 or LSP in IS-IS), which includes PE3's
        locator and Mirror SID A4:1::3. Every node in the SR domain will
        receive this IGP LS, which indicates that PE4 wants to protect PE3 
        (indicated by PE3's locator) with Mirror SID A4:1::3.</t>
        <t>Step 2b: PE4 (aka PEB) Gets Forwarding Behavior of PE3 (aka PEA)</t>
        <t>When PE4 (e.g., BGP on PE4) receives a prefix whose VPN SID belongs
        to PE3 that is protected by PE4 through Mirror SID A4:1::3, it finds
        PE4's VPN SID corresponding to PE3's VPN SID. For example, local PE4
        has Prefix 1.1.1.1 with VPN SID A4:1::B100, when PE4 receives prefix
        1.1.1.1 with remote PE3's VPN SID A3:1::B100, it knows that they are
        for the same VPN.</t>
        <t>The forwarding behaviors for these two VPN SIDs are the same from
        function's point of view. If the behavior for PE3's VPN SID in PE3
        forwards the packet with it to CE2, then the behavior for PE4's VPN
        SID in PE4 forwards the packet to the same CE2; and vice versa. </t>
        <t>Step 2c: PE4 (aka PEB) Creates FIB for PE3 (aka PEA)</t>
        <t>PE4
        creates a forwarding entry for PE3's VPN SID A3:1::B100 in the FIB
        table identified by Mirror SID A4:1::3 according to the forwarding
        behavior for PE4's VPN SID A4:1::B100.</t>
        <!--
    <t>(Note: alternatively, the entry created may map PE3's VPN SID A3:1::B100 
    to PE4's VPN SID A4:1::B100. PE4 uses its VPN SID to forward the packet
    in its forwarding table. This is a local decision.)</t> 
-->

     <t>Step 2d: P1 Prepares to Protect PE3 (aka PEA) by PE4 (aka PEB)</t>
        <t>Node P1's pre-computed backup path for destination PE3 is
        from P1 to PE4 having mirror SID A4:1::3. When P1 receives a packet
        destined to PE3's VPN SID A3:1::B100, in normal operations, it
        forwards the packet with source A1:1:: and destination PE3's VPN SID
        A3:1::B100 according to the FIB using the destination PE3's VPN SID
        A3:1::B100.</t>
        <t>Step 3: Backup Path Is Engaged upon PE3 (aka PEA) Failure</t>
        <t>Step 3a: P1 Detects PE3 (aka PEA) Failure via BFD</t>
        <t>Step 3b: P1 Sends Packet with SIDa to Backup Egress PE4 (aka PEB)</t>
        <t>When PE3 fails, P1 as PLR sends the packet to PE4 via the backup
        path pre-computed. P1 encapsulates the packet using H.Encaps before
        sending it to PE4.</t>
        <t>Suppose that the packet received by P1 is represented by 
        Pkt = (SA=A1:1::,DA=A5:1::A100)(SIDa=A3:1::B100,SID-P1=A5:1::A100;SL=1)
        Pkt0,
        where DA = A5:1::A100 is P1's SID, A3:1::B100 is PE3's VPN
        SID, and Pkt0 is the rest of the packet. 
        P1 sets DA to A3:1::B100, updates SL, and encapsulates the packet.

        The encapsulated packet Pkt'
        will be one of the following: </t>
        <dl newline="false" spacing="normal">
          <dt>o</dt>
          <dd>Pkt' = (T, Mirror SID A4:1::3) (A1:1::,
            A3:1::B100)Pkt0 if the LFA is the next hop node to PE4 along the
      shortest path to PE4; or (otherwise)</dd>
          <dt>o</dt>
          <dd>Pkt' = (T, S1)(Mirror SID A4:1::3, Sn, ..., S1;
            SL=n) (A1:1::, A3:1::B100)Pkt0.</dd>
        </dl>
        <t> where T is a Source Address, &lt;S1, ..., Sn&gt; is the
        TI-LFA Repair List to PE4 computed by P1.</t>
        <t>Step 3c: PE4 (aka PEB) Decapsulates Packet and Forwards It</t>
        <t>When PE4 receives the re-routed packet, it decapsulates the packet
        and forwards the decapsulated packet by executing the behavior of
        End.M for the Mirror SID
        that is associated with the IPv6 FIB table for PE3. The packet
        received by PE4 is (T, Mirror SID A4:1::3) (A1:1::, PE3's VPN SID
        A3:1::B100)Pkt0.</t>
        <t>PE4 obtains Mirror SID A4:1::3 in the outer IPv6 header of the
        packet, removes this outer IPv6 header, and then processes the inner
        IPv6 packet (A1:1::, A3:1::B100)Pkt0. It finds the FIB table for PE3
        using Mirror SID A4:1::3 as the context ID, gets the forwarding entry
        for PE3's VPN SID A3:1::B100 from the table, and forwards the packet
        to CE2 using the entry.</t>
        <t>Note:This example demonstrates that a Service SID 
        (e.g., a VPN SID) can be preserved at the protector via the Mirror-SID 
        context. However, at large scale (many VPN/service instances and/or 
        random multi-homing of services across multiple protectors), the amount 
        of egress-protection information to be flooded in IGP increases and may
         affect convergence; such deployments are not recommended for this 
         IGP-based mechanism. Operators SHOULD consolidate protectors per 
         egress and limit per-service granularity in IGP.</t>
      </section>
      <!-- Example -->
      
      <section numbered="true" toc="default">
        <name>Operational Guidelines</name>
        <t>Protector Consolidation: Prefer a single protector PEB per PEA within 
        the IGP area/level to minimize the number of SRv6 &lt;PEB, PEA, Mirror SID&gt; 
        advertisements.</t>
        <t>Limit Granularity in IGP: Do not attempt to enumerate per-service 
        entries in IGP; use locator-level protection only.</t>
        <t>Service Behavior Acquisition: Learning Service-SID behaviors at the 
        protector (e.g., via BGP per <xref target="RFC9352" format="default"/> or configuration) 
        is an implementation choice and does not alter the IGP flooding scope.</t>
        <t>Applicability Thresholds: When the protected service count per egress
         or the number of protection relationships grows large-especially with 
         random multi-homing-the IGP control-plane load and convergence may be 
         adversely affected; such deployments are not recommended for this 
         mechanism.</t>
      </section>
    </section>
    <!-- SRv6 Path Egress Protection -->

    <section numbered="true" toc="default">
      <name>Extensions to IGP for Egress Protection</name>
      <t>This section describes extensions to IS-IS and OSPFv3 for advertising
      the information about SRv6 path egress protection.</t>
      <section numbered="true" toc="default">
        <name>Extensions to IS-IS</name>
        <t>A new sub-TLV, called IS-IS SRv6 Mirror SID sub-TLV, is defined. It
        is used in the SRv6 Locator TLV defined in <xref target="RFC9352" format="default"/> to advertise SRv6 Mirror
        SID and the locators of the nodes to be protected. The SRv6 Mirror SID
        inherits the topology/algorithm from the parent locator. The format of
        the sub-TLV is illustrated below.</t>
        <figure anchor="isis-srv6-mirror-sid-sub-tlv">
          <name>IS-IS SRv6 Mirror SID sub-TLV</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[  
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Type (TBD1)   |    Length     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   Reserved    |    SRv6 Endpoint Function     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       |
 :                                                               :
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         sub-sub-TLVs                          |
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>
        <dl newline="false" spacing="normal">
          <dt>Type:</dt>
          <dd>TBD1 (suggested value 8) is to be assigned by
            IANA.</dd>
          <dt>Length:</dt>
          <dd>1 octet. Its value MUST NOT be less than 23.
<!--
               and less than 38.
-->
               23 is 19 (i.e., the size of Reserved, SRv6 Endpoint Function and SID) 
               plus 4 (i.e., the minimum size of a IS-IS protected locators sub-sub-TLV).
<!--
               38 is 19 plus 19 (i.e., the maximum size of a IS-IS protected 
               locator sub-sub-TLV).
-->
               The entire IS-IS SRv6 Mirror SID sub-TLV MUST be ignored 
               if the length is less than 23.
               </dd>
          <dt>Reserved:</dt>
          <dd>1 octet. This octet MUST be set to zero 
               on transmit, and ignored on receipt.</dd>
          <dt>SRv6 Endpoint Function:</dt>
          <dd>2 octets. It MUST contain the endpoint
               function 74 for Mirror SID. 
               The entire IS-IS SRv6 Mirror SID sub-TLV MUST be ignored 
               if it does not contain the endpoint function 74.</dd>
          <dt>SID:</dt>
          <dd>16 octets. This field contains the SRv6 Mirror
               SID to be advertised. It MUST NOT be zero (0). 
               The entire IS-IS SRv6 Mirror SID sub-TLV MUST be ignored 
               if it contains zero (0).
            </dd>
        </dl>
        <!--
        <t>Two sub-sub-TLVs are defined. One is the protected locators sub-sub-TLV, and
        the other is the protected SIDs sub-sub-TLV.</t>
-->
        <t>A protected locators sub-sub-TLV is defined and used to carry 
        the Locators of the egress node to be
        protected by the SRv6 mirror SID. 
        The IS-IS SRv6 Mirror SID sub-TLV MUST include one 
        IS-IS protected locators sub-sub-TLV. 
        It has the following format.</t>
        <figure anchor="isis-protected-node-sub-tlv">
          <name>IS-IS Protected Locators sub-sub-TLV</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[  
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Type (TBD2)  |    Length     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  |        Locator (variable)                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  |        Locator (variable)                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>
        <dl newline="false" spacing="normal">
          <dt>Type:</dt>
          <dd>TBD2 (suggested value 1) is to be assigned by
            IANA.</dd>
          <dt>Length:</dt>
          <dd>1 octet. Its value MUST NOT be less than 2.
               The entire IS-IS SRv6 Mirror SID sub-TLV MUST be ignored 
               if the length is less than 2.
<!-- 
               and less than 17.
-->
            </dd>
          <dt>Locator-Size:</dt>
          <dd>1 octet. Number of bits in
            the Locator field, which MUST be from the range (1-128).
            The entire IS-IS SRv6 Mirror SID sub-TLV MUST be ignored 
            if the Locator-Size is outside this range.</dd>
          <dt>Locator:</dt>
          <dd>1-16 octets. This field encodes an SRv6
            Locator of an egress node to be protected by the SRv6 mirror SID. 
            The 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.</dd>
        </dl>
        <!--
        <t>A protected SIDs sub-sub-TLV is used to carry the SIDs to be protected
        by the SRv6 Mirror SID. It has the following format. <figure
            anchor="isis-protected-sids-sub-tlv"
            title="IS-IS Protected SIDs sub-sub-TLV">
            <artwork><![CDATA[  
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Type (TBD3)  |    Length     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   SID-Size    |        Locator (variable)                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   SID-Size    |        Locator (variable)                     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
          </figure> <list style="hanging">
            <t hangText="Type:">TBD3 (suggested value 2) is to be assigned by
            IANA.</t>

            <t hangText="Length:">variable.</t>

            <t hangText="SID-Size:">1 octet. Number of bits in the SID field.
            It is from 1 to 128. When it is less than 128, the SID field is a
            locator. When it is 128, the SID field is an SRv6 SID.</t>

            <t hangText="SID:">1-16 octets. This field encodes an SRv6 SID 
            to be protected. The SID 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>
          </list></t>
-->
        <t>When node B advertises that B wants to protect node A
        with a Mirror SID through an LSP, the LSP MUST have 
        an SRv6 Locator TLV containing an IS-IS SRv6
        Mirror SID sub-TLV, which includes the Mirror SID and node A's
        locators in an IS-IS Protected locators sub-sub-TLV. </t>
        <t>Note:The IS-IS SRv6 Mirror SID sub-TLV MUST include exactly one "Protected 
        Locators" sub-sub-TLV and MUST NOT carry per-service (e.g., VPN/Service-SID)
         enumerations. This document does not define any IGP encoding to list 
         individual services; attempting to do so at large scale is not suitable 
         due to IGP flooding and convergence considerations.</t>
        <!--
        <t>Note: the IS-IS extensions for SR MPLS is described in <xref
        target="RFC8667"/>. It says that the SID/Label Binding TLV may also be
        used to advertise a Mirror SID. For B to protect egress A of SR MPLS
        path, B may also use this TLV to advertise the node A's ID and a
        specific set of SIDs of A to be protected. An IS-IS SR MPLS Mirror SID
        sub-TLV may be obtained from an IS-IS SRv6 Mirror SID sub-TLV by
        replacing each SID field in the latter with an SID/Label sub-TLV. B
        may advertise a SID/Label Binding TLV including this IS-IS SR MPLS
        Mirror SID sub-TLV.</t>

        <t>Alternatively, an IS-IS SR MPLS Mirror Supplement sub-TLV is
        defined from an IS-IS SRv6 Mirror SID sub-TLV by removing the SID
        field in the top level and replacing each other SID field with an
        SID/Label sub-TLV. That is that an IS-IS SR MPLS Mirror Supplement
        sub-TLV just contains a Protected Node sub-TLV and a Protected SIDs
        sub-TLV, which includes SID/Label sub-TLVs. When the SID/Label Binding
        TLV contains an SID/Label sub-TLV for the Mirror SID, it includes an
        IS-IS SR MPLS Mirror Supplement sub-TLV.</t>
-->
      </section>
      <!-- Extensions to IS-IS -->

      <section numbered="true" toc="default">
        <name>Extensions to OSPFv3</name>
        <t>Similarly, a new sub-TLV, called OSPFv3 Mirror SID sub-TLV, is
        defined. It is used in the SRv6 Locator TLV defined in 
        <xref target="RFC9513" format="default"/>
        to advertise SRv6 Mirror SID and the locators of
        the nodes to be protected. Its format is illustrated below.</t>
        <figure anchor="ospfv3-srv6-mirror-sid-sub-tlv">
          <name>OSPFv3 SRv6 Mirror SID sub-TLV</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[  
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type (TBD3)           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |             Reserved          |    SRv6 Endpoint Function     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                         SID (16 octets)                       |
 :                                                               :
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                            sub-TLVs                           |
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>
        <dl newline="false" spacing="normal">
          <dt>Type:</dt>
          <dd>TBD3 (suggested value 8) is to be assigned by
            IANA.</dd>
          <dt>Length:</dt>
          <dd>2 octets. Its value MUST NOT be less than 26.
<!--
               and less than 41.
-->
               26 is 20 (i.e., the size of Reserved, SRv6 Endpoint Function and SID) 
               plus 6 (i.e., the minimum size of a OSPFv3 protected locators sub-TLV).
<!--
               41 is 20 plus 21 (i.e., the maximum size of a OSPF protected 
               locator sub-TLV).
-->
               The entire OSPFv3 SRv6 Mirror SID sub-TLV MUST be ignored 
               if the length is less than 26.
            </dd>
          <dt>Reserved:</dt>
          <dd>2 octets. It MUST be set to zero 
               for transmission and ignored on reception.</dd>
          <dt>SRv6 Endpoint Function:</dt>
          <dd>2 octets. 
               It MUST contain the endpoint
               function 74 for End.M SID.
               The entire OSPFv3 SRv6 Mirror SID sub-TLV MUST be ignored if
               it does not contain the endpoint function 74.</dd>
          <dt>SID:</dt>
          <dd>16 octets. This field contains the SRv6 Mirror
               SID to be advertised.
               It MUST NOT be zero (0).  
               The entire OSPFv3 SRv6 Mirror SID sub-TLV MUST be
               ignored if it contains zero (0).</dd>
        </dl>
        <!--
        <t>Two sub-TLVs are defined. One is the protected locators sub-TLV, and
        the other is the protected SIDs sub-TLV.</t>
-->
        <t>A protected locators sub-TLV is defined and used to carry the 
           locators of the
        node to be protected by the SRv6 Mirror SID. 
        The OSPFv3 SRv6 Mirror SID sub-TLV MUST include one 
        OSPFv3 protected locators sub-TLV. 
        It has the following
        format.</t>
        <figure anchor="ospfv3-protected-node-sub-tlv">
          <name>OSPFv3 Protected Locators sub-TLV</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[  
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type (TBD4)           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  |           Locator (variable)                  ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Locator-Size  |           Locator (variable)                  ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>
        <dl newline="false" spacing="normal">
          <dt>Type:</dt>
          <dd>TBD4 (suggested value 1) is to be assigned by
            IANA.</dd>
          <dt>Length:</dt>
          <dd>2 octets. Its value MUST NOT be less than 2.
<!-- 
               and less than 17.
-->
               The entire OSPFv3 SRv6 Mirror SID sub-TLV MUST be ignored
               if the Length is less than 2.
            </dd>
          <dt>Locator-Size:</dt>
          <dd>1 octet. Number of bits (1 - 128) in
            the Locator field.
               Number of bits in the Locator field, which
               MUST be from the range (1-128). 
               The entire OSPFv3 SRv6 Mirror SID sub-TLV MUST be ignored if
               the Locator-Size is outside this range.</dd>
          <dt>Locator:</dt>
          <dd>1-16 octets. This field encodes an SRv6
               Locator of an egress node to be protected by the SRv6 mirror SID. 
               The 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.</dd>
        </dl>
        <t>When node B advertises that B wants to protect node A
        with a Mirror SID through an LSA, the LSA MUST have 
        an SRv6 Locator TLV containing an OSPFv3 SRv6
        Mirror SID sub-TLV, which includes the Mirror SID and node A's
        locators in an OSPFv3 Protected Locators sub-TLV. </t>
        <t>Note:The OSPFv3 SRv6 Mirror SID sub-TLV MUST include exactly one "Protected 
        Locators" sub-TLV and MUST NOT carry per-service (e.g., VPN/Service-SID)
         enumerations for the same reasons as above.</t>
        <!--
        <t>A protected SIDs sub-TLV is used to carry the SIDs to be protected
        by the SRv6 Mirror SID. It has the following format. <figure
            anchor="ospf-protected-sids-sub-tlv"
            title="OSPF Protected SIDs sub-TLV">
            <artwork><![CDATA[  
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |         Type (TBD6)           |             Length            |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   SID-Size    |         SID (variable)                        ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 :                                                               :
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   SID-Size    |         SID (variable)                        ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
          </figure></t>

        <t><list style="hanging">
            <t hangText="Type:">TBD6 (suggested value 2) is to be assigned by
            IANA.</t>

            <t hangText="Length:">variable.</t>

            <t hangText="SID-Size:">1 octet. Number of bits in the SID field.
            It is from 1 to 128. When it is less than 128, the SID field is a
            locator. When it is 128, the SID field is an SRv6 SID.</t>

            <t hangText="SID:">1-16 octets. This field encodes an SRv6 SID
            to be protected. The SID 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>
          </list></t>
-->
      </section>
      <!-- Extensions to OSPFv3 -->
    </section>
    <!-- Extensions to IGP -->

    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The egress protection specified in this document involves
      rerouting traffic around an egress node or link failure, 
      via a backup path from a PLR to a backup egress node. 
      The forwarding performed by the nodes in the data plane is 
      anticipated, as part of the planning of egress protection.
      </t>
      <t>The extensions to control plane protocol IS-IS or OSPFv3
      are used to support the egress protection on the nodes in 
      an OSPFv3 or IS-IS area. 
      The area is in a single administrative domain.</t>
      <t>In addition, the PLR and backup egress node are located 
      close to the egress node, which is in the same 
      administrative domain. 
      </t>
      <t>Security concerns for IS-IS are addressed in
<xref target="ISO10589" format="default"/>,
<xref target="RFC5304" format="default"/> and <xref target="RFC5310" format="default"/>. 
While IS-IS is
deployed under a single administrative domain, there can be deployments 
where potential
attackers have access to one or more networks in the IS-IS routing domain. 
In these deployments,
the stronger authentication mechanisms defined in the aforementioned 
documents SHOULD be
used.
      </t>
      <t>Security concerns for OSPFv3 are described in
<xref target="RFC5340" format="default"/> and <xref target="RFC8362" format="default"/>. 
While OSPFv3 is under a single
   administrative domain, there can be deployments where potential
   attackers have access to one or more networks in the OSPFv3 routing
   domain.  In these deployments, stronger authentication mechanisms
   such as those specified in 
<xref target="RFC4552" format="default"/> and <xref target="RFC7166" format="default"/>
SHOULD be used.
</t>

    <t>SRv6-Specific Security Considerations:The Mirror SID mechanism 
        introduces the following SRv6-specific security considerations:</t>
   
   <t>- Mirror SID Authentication: Since the Mirror SID is advertised 
     through IGP, it is essential that IGP advertisements are 
     authenticated to prevent malicious nodes from advertising 
     counterfeit Mirror SIDs. Implementations SHOULD support the 
     cryptographic authentication mechanisms specified in <xref target="RFC5304" format="default"/>
     for IS-IS and <xref target="RFC4552" format="default"/> for OSPFv3.</t>
   
   <t>- Context Isolation: The FIB table identified by the Mirror SID 
     MUST be properly isolated to prevent traffic from one protected 
     egress node from being forwarded using the context of another 
     egress node. Implementations MUST ensure that the context 
     identified by a Mirror SID is only used for packets explicitly 
     addressed to that Mirror SID. </t>

      <t>Security attacks may sometimes come from a customer domain. 
      Such attacks are not introduced by the egress protection 
      in this document and may occur regardless of the existence of 
      egress protection. 
      In one possible case, the egress link between an egress node 
      and a CE could become a point of attack.
      An attacker that gains control of the CE might use it to 
      simulate link failures and trigger constant and cascading 
      activities in the network. 
      If egress link protection is in place,
      egress link protection activities may also be triggered. 
      As a general solution to defeat the attack, a
      damping mechanism SHOULD be used by the egress node to promptly 
      suppress the services associated with the link or CE.
      The egress node would stop delivering the services to CE, 
      essentially detaching them from the network and eliminating 
      the effect of the simulated link failures.
      All protocol extensions operate within a single link-state IGP 
      area/level; no per-service signaling is introduced in IGP, and
      references to BGP concern only how a protector may learn 
      forwarding behavior.When a protector learns per-service 
      forwarding behavior via mechanisms outside the IGP (e.g., BGP 
      as per <xref target="RFC9252" format="default"/> or local configuration), it SHOULD validate 
      that the behavior is authorized and consistent with the 
      protected egress node's capabilities advertised through those 
      same external mechanisms. This document does not introduce 
      per-service signaling in the IGP for this validation.
      </t>
 
   <t>The following threats are addressed by corresponding mechanisms:</t>
   
   <t>-- Unauthorized Rerouting: An attacker could attempt to trigger 
     unnecessary rerouting by advertising false failure information. 
     This is mitigated by:</t>
     <t>* Using BFD or other reliable failure detection mechanisms.</t>
     <t>* Authenticating IGP advertisements.</t>
     <t>* Implementing damping mechanisms to prevent flapping.</t>
   
   <t>-- Traffic Interception: An attacker could attempt to become a 
     protector to intercept traffic. This is mitigated by:</t>
     <t>* Limiting protector selection to trusted nodes within the same
       administrative domain.</t>
     <t>* Authenticating IGP advertisements of Mirror SIDs.</t>
     <t>* Monitoring for unexpected protector advertisements.</t>
   
   <t>-- Denial of Service: An attacker could attempt to overwhelm the 
     protector with traffic. This is mitigated by:</t>
     <t>* Implementing rate limiting at the protector.</t>
     <t>* Using proper FIB table isolation.</t>
     <t>* Monitoring traffic patterns.</t>
     
    <t>-- Control Plane Overload: An attacker could attempt to flood the IGP 
    with excessive protection advertisements, causing control plane overload 
    and convergence issues.This is mitigated by:</t>
     <t>* Limit the number of protection relationships per node.</t>
     <t>* Implement IGP flooding rate limiting.</t>
     <t>* Use the operational guidelines in Section 3.3 to limit the scale
     of deployments.</t>
     <t>* Monitor IGP database size and convergence times.</t>     
    </section>
    
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="SRv6-End" numbered="true" toc="default">
        <name>SRv6 Endpoint Behaviors</name>
        <t>Under registry "SRv6 Endpoint Behaviors" <xref target="RFC8986" format="default"/>, IANA has assigned the following
        for End.M Endpoint Behavior: </t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +==============+========+=====================+===============+
  | Value        | Hex    | Endpoint behavior   | Reference     |
  +==============+========+=====================+===============+
  |   74         | 0x004A | End.M (Mirror SID)  | This document |
  +--------------+--------+---------------------+---------------+
  ]]></artwork>
      </section>
      <section anchor="IS-IS" numbered="true" toc="default">
        <name>IS-IS</name>
        <t>Under 
"IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability registry", 
IANA is requested to add
        the following new Sub-TLV: </t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +==============+=========================+===============+
  |     Type     | Description             | Reference     |
  +==============+=========================+===============+
  |     TBD      | SRv6 Mirror SID         | This document |
  +--------------+-------------------------+---------------+ 
  ]]></artwork>
        <t>IANA is requested to create and maintain a new registry for
        sub-sub-TLVs of the SRv6 Mirror SID Sub-TLV. The suggested registry
        name is </t>
        <dl newline="false" spacing="normal">
          <dt> o</dt>
          <dd>Sub-Sub-TLVs for SRv6 Mirror SID Sub-TLV</dd>
        </dl>
        <t> Initial suggested values for the registry are given below. The future
        assignments are to be made through IETF Review <xref target="RFC5226" format="default"/>. </t>
        <artwork name="" type="" align="left" alt=""><![CDATA[ 
  Value    Sub-Sub-TLV Name                 Definition
  -----   -----------------------          -------------
  0       Reserved
  1       Protected Locators Sub-Sub-TLV   This Document
  2-255   Unassigned
 ]]></artwork>
      </section>
      <!-- IS-IS -->

      <section anchor="OSPFv3" numbered="true" toc="default">
        <name>OSPFv3</name>
        <t>Under registry "OSPFv3 SRv6 Locator LSA Sub-TLVs" <xref target="RFC9513" format="default"/>, IANA is requested to
        assign the following new Sub-TLVs: </t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +==============+============================+===============+
  | Sub-TLV Type | Sub-TLV Name               | Reference     |
  +==============+============================+===============+
  |     TBD      | SRv6 Mirror SID Sub-TLV    | This document |
  +--------------+----------------------------+---------------+
  |     TBD      | Protected Locators Sub-TLV | This document |
  +--------------+----------------------------+---------------+ ]]></artwork>
      </section>
      <!-- OSPFv3 -->
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ISO10589">
          <front>
            <title>
	   Intermediate System to Intermediate System
	   Intra-Domain Routing Exchange Protocol for use in Conjunction
	   with the Protocol for Providing the Connectionless-mode Network
	   Service (ISO 8473)
            </title>
            <author>
              <organization abbrev="ISO">
	     International Organization for Standardization
              </organization>
            </author>
            <date year="2002" month="November"/>
          </front>
          <seriesInfo name="ISO/IEC" value="10589:2002"/>
        </reference>
        <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>
        <!-- <?rfc include="reference.RFC.7356"?> -->
<!-- <?rfc include="reference.RFC.7490"?> -->
      <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="RFC8400" target="https://www.rfc-editor.org/info/rfc8400" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8400.xml">
          <front>
            <title>Extensions to RSVP-TE for Label Switched Path (LSP) Egress Protection</title>
            <author fullname="H. Chen" initials="H." surname="Chen"/>
            <author fullname="A. Liu" initials="A." surname="Liu"/>
            <author fullname="T. Saad" initials="T." surname="Saad"/>
            <author fullname="F. Xu" initials="F." surname="Xu"/>
            <author fullname="L. Huang" initials="L." surname="Huang"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This document describes extensions to Resource Reservation Protocol - Traffic Engineering (RSVP-TE) for locally protecting the egress node(s) of a Point-to-Point (P2P) or Point-to-Multipoint (P2MP) Traffic Engineered (TE) Label Switched Path (LSP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8400"/>
          <seriesInfo name="DOI" value="10.17487/RFC8400"/>
        </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>
        <!--  <?rfc include="reference.RFC.8665"?> -->

      <reference anchor="RFC8667" target="https://www.rfc-editor.org/info/rfc8667" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8667.xml">
          <front>
            <title>IS-IS Extensions for Segment Routing</title>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." role="editor" surname="Ginsberg"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="A. Bashandy" initials="A." surname="Bashandy"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <date month="December" year="2019"/>
            <abstract>
              <t>Segment Routing (SR) allows for a flexible definition of end-to-end paths within IGP topologies by encoding paths as sequences of topological sub-paths, called "segments". These segments are advertised by the link-state routing protocols (IS-IS and OSPFv3).</t>
              <t>This document describes the IS-IS extensions that need to be introduced for Segment Routing operating on an MPLS data plane.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8667"/>
          <seriesInfo name="DOI" value="10.17487/RFC8667"/>
        </reference>
        <reference anchor="RFC8679" target="https://www.rfc-editor.org/info/rfc8679" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8679.xml">
          <front>
            <title>MPLS Egress Protection Framework</title>
            <author fullname="Y. Shen" initials="Y." surname="Shen"/>
            <author fullname="M. Jeganathan" initials="M." surname="Jeganathan"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="H. Gredler" initials="H." surname="Gredler"/>
            <author fullname="C. Michel" initials="C." surname="Michel"/>
            <author fullname="H. Chen" initials="H." surname="Chen"/>
            <date month="December" year="2019"/>
            <abstract>
              <t>This document specifies a fast reroute framework for protecting IP/MPLS services and MPLS transport tunnels against egress node and egress link failures. For each type of egress failure, it defines the roles of Point of Local Repair (PLR), protector, and backup egress router and the procedures of establishing a bypass tunnel from a PLR to a protector. It describes the behaviors of these routers in handling an egress failure, including local repair on the PLR and context-based forwarding on the protector. The framework can be used to develop egress protection mechanisms to reduce traffic loss before global repair reacts to an egress failure and control-plane protocols converge on the topology changes due to the egress failure.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8679"/>
          <seriesInfo name="DOI" value="10.17487/RFC8679"/>
        </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="RFC9256" target="https://www.rfc-editor.org/info/rfc9256" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
            <author fullname="P. Mattes" initials="P." surname="Mattes"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
        <reference anchor="RFC9352" target="https://www.rfc-editor.org/info/rfc9352" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9352.xml">
          <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>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>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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9513.xml">
          <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>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="RFC5304" target="https://www.rfc-editor.org/info/rfc5304" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5304.xml">
          <front>
            <title>IS-IS Cryptographic Authentication</title>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document describes the authentication of Intermediate System to Intermediate System (IS-IS) Protocol Data Units (PDUs) using the Hashed Message Authentication Codes - Message Digest 5 (HMAC-MD5) algorithm as found in RFC 2104. IS-IS is specified in International Standards Organization (ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) described in RFC 1195. The base specification includes an authentication mechanism that allows for multiple authentication algorithms. The base specification only specifies the algorithm for cleartext passwords. This document replaces RFC 3567.</t>
              <t>This document proposes an extension to that specification that allows the use of the HMAC-MD5 authentication algorithm to be used in conjunction with the existing authentication mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5304"/>
          <seriesInfo name="DOI" value="10.17487/RFC5304"/>
        </reference>
        <reference anchor="RFC5310" target="https://www.rfc-editor.org/info/rfc5310" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5310.xml">
          <front>
            <title>IS-IS Generic Cryptographic Authentication</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <author fullname="R. White" initials="R." surname="White"/>
            <author fullname="M. Fanto" initials="M." surname="Fanto"/>
            <date month="February" year="2009"/>
            <abstract>
              <t>This document proposes an extension to Intermediate System to Intermediate System (IS-IS) to allow the use of any cryptographic authentication algorithm in addition to the already-documented authentication schemes, described in the base specification and RFC 5304. IS-IS is specified in International Standards Organization (ISO) 10589, with extensions to support Internet Protocol version 4 (IPv4) described in RFC 1195.</t>
              <t>Although this document has been written specifically for using the Hashed Message Authentication Code (HMAC) construct along with the Secure Hash Algorithm (SHA) family of cryptographic hash functions, the method described in this document is generic and can be used to extend IS-IS to support any cryptographic hash function in the future. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5310"/>
          <seriesInfo name="DOI" value="10.17487/RFC5310"/>
        </reference>
        <reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5340" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5340.xml">
          <front>
            <title>OSPF for IPv6</title>
            <author fullname="R. Coltun" initials="R." surname="Coltun"/>
            <author fullname="D. Ferguson" initials="D." surname="Ferguson"/>
            <author fullname="J. Moy" initials="J." surname="Moy"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="July" year="2008"/>
            <abstract>
              <t>This document describes the modifications to OSPF to support version 6 of the Internet Protocol (IPv6). The fundamental mechanisms of OSPF (flooding, Designated Router (DR) election, area support, Short Path First (SPF) calculations, etc.) remain unchanged. However, some changes have been necessary, either due to changes in protocol semantics between IPv4 and IPv6, or simply to handle the increased address size of IPv6. These modifications will necessitate incrementing the protocol version from version 2 to version 3. OSPF for IPv6 is also referred to as OSPF version 3 (OSPFv3).</t>
              <t>Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as described herein include the following. Addressing semantics have been removed from OSPF packets and the basic Link State Advertisements (LSAs). New LSAs have been created to carry IPv6 addresses and prefixes. OSPF now runs on a per-link basis rather than on a per-IP-subnet basis. Flooding scope for LSAs has been generalized. Authentication has been removed from the OSPF protocol and instead relies on IPv6's Authentication Header and Encapsulating Security Payload (ESP).</t>
              <t>Even with larger IPv6 addresses, most packets in OSPF for IPv6 are almost as compact as those in OSPF for IPv4. Most fields and packet- size limitations present in OSPF for IPv4 have been relaxed. In addition, option handling has been made more flexible.</t>
              <t>All of OSPF for IPv4's optional capabilities, including demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported in OSPF for IPv6. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5340"/>
          <seriesInfo name="DOI" value="10.17487/RFC5340"/>
        </reference>
        <reference anchor="RFC8362" target="https://www.rfc-editor.org/info/rfc8362" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8362.xml">
          <front>
            <title>OSPFv3 Link State Advertisement (LSA) Extensibility</title>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="A. Roy" initials="A." surname="Roy"/>
            <author fullname="D. Goethals" initials="D." surname="Goethals"/>
            <author fullname="V. Reddy Vallem" initials="V." surname="Reddy Vallem"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <date month="April" year="2018"/>
            <abstract>
              <t>OSPFv3 requires functional extension beyond what can readily be done with the fixed-format Link State Advertisement (LSA) as described in RFC 5340. Without LSA extension, attributes associated with OSPFv3 links and advertised IPv6 prefixes must be advertised in separate LSAs and correlated to the fixed-format LSAs. This document extends the LSA format by encoding the existing OSPFv3 LSA information in Type-Length-Value (TLV) tuples and allowing advertisement of additional information with additional TLVs. Backward-compatibility mechanisms are also described.</t>
              <t>This document updates RFC 5340, "OSPF for IPv6", and RFC 5838, "Support of Address Families in OSPFv3", by providing TLV-based encodings for the base OSPFv3 unicast support and OSPFv3 address family support.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8362"/>
          <seriesInfo name="DOI" value="10.17487/RFC8362"/>
        </reference>
        <reference anchor="RFC4552" target="https://www.rfc-editor.org/info/rfc4552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4552.xml">
          <front>
            <title>Authentication/Confidentiality for OSPFv3</title>
            <author fullname="M. Gupta" initials="M." surname="Gupta"/>
            <author fullname="N. Melam" initials="N." surname="Melam"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>This document describes means and mechanisms to provide authentication/confidentiality to OSPFv3 using an IPv6 Authentication Header/Encapsulating Security Payload (AH/ESP) extension header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4552"/>
          <seriesInfo name="DOI" value="10.17487/RFC4552"/>
        </reference>
        <reference anchor="RFC7166" target="https://www.rfc-editor.org/info/rfc7166" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7166.xml">
          <front>
            <title>Supporting Authentication Trailer for OSPFv3</title>
            <author fullname="M. Bhatia" initials="M." surname="Bhatia"/>
            <author fullname="V. Manral" initials="V." surname="Manral"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>Currently, OSPF for IPv6 (OSPFv3) uses IPsec as the only mechanism for authenticating protocol packets. This behavior is different from authentication mechanisms present in other routing protocols (OSPFv2, Intermediate System to Intermediate System (IS-IS), RIP, and Routing Information Protocol Next Generation (RIPng)). In some environments, it has been found that IPsec is difficult to configure and maintain and thus cannot be used. This document defines an alternative mechanism to authenticate OSPFv3 protocol packets so that OSPFv3 does not depend only upon IPsec for authentication.</t>
              <t>The OSPFv3 Authentication Trailer was originally defined in RFC 6506. This document obsoletes RFC 6506 by providing a revised definition, including clarifications and refinements of the procedures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7166"/>
          <seriesInfo name="DOI" value="10.17487/RFC7166"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <!--  <?rfc include="reference.I-D.ietf-spring-segment-routing-policy"?> -->

      <reference anchor="RFC3107" target="https://www.rfc-editor.org/info/rfc3107" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3107.xml">
          <front>
            <title>Carrying Label Information in BGP-4</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <date month="May" year="2001"/>
            <abstract>
              <t>This document specifies the way in which the label mapping information for a particular route is piggybacked in the same Border Gateway Protocol (BGP) Update message that is used to distribute the route itself. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3107"/>
          <seriesInfo name="DOI" value="10.17487/RFC3107"/>
        </reference>
        
        <reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4364" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        
        <reference anchor="RFC5226" target="https://www.rfc-editor.org/info/rfc5226" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5226.xml">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).</t>
              <t>In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.</t>
              <t>This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5226"/>
          <seriesInfo name="DOI" value="10.17487/RFC5226"/>
        </reference>
        
        <reference anchor="RFC9252" target="https://www.rfc-editor.org/info/rfc9252" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9252.xml">
          <front>
            <title>BGP Overlay Services Based on Segment Routing over IPv6 (SRv6)</title>
            <author fullname="G. Dawra" initials="G." role="editor" surname="Dawra"/>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
            <author fullname="R. Raszuk" initials="R." surname="Raszuk"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Zhuang" initials="S." surname="Zhuang"/>
            <author fullname="J. Rabadan" initials="J." surname="Rabadan"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document defines procedures and messages for SRv6-based BGP services, including Layer 3 Virtual Private Network (L3VPN), Ethernet VPN (EVPN), and Internet services. It builds on "BGP/MPLS IP Virtual Private Networks (VPNs)" (RFC 4364) and "BGP MPLS-Based Ethernet VPN" (RFC 7432).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9252"/>
          <seriesInfo name="DOI" value="10.17487/RFC9252"/>
        </reference>
        
        <reference anchor="RFC9855" target="https://www.rfc-editor.org/info/rfc9855" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9855.xml">
          <front>
            <title>Topology Independent Fast Reroute using Segment Routing</title>
            <author fullname="Ahmed Bashandy" initials="A." surname="Bashandy">
              <organization>Individual</organization>
            </author>
            <author fullname="Stephane Litkowski" initials="S." surname="Litkowski">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization>INSA Lyon</organization>
            </author>
            <author fullname="Bruno Decraene" initials="B." surname="Decraene">
              <organization>Orange</organization>
            </author>
            <author fullname="Daniel Voyer" initials="D." surname="Voyer">
              <organization>Bell Canada</organization>
            </author>
            <date month="October" year="2025"/>
            <abstract>
              <t>This document presents Topology Independent Loop-free Alternate Fast Reroute (TI-LFA), aimed at providing protection of node and adjacency segments within the Segment Routing (SR) framework. This Fast Reroute (FRR) behavior builds on proven IP Fast Reroute concepts being LFAs, remote LFAs (RLFA), and remote LFAs with directed forwarding (DLFA). It extends these concepts to provide guaranteed coverage in any two-connected networks using a link-state IGP. An important aspect of TI-LFA is the FRR path selection approach establishing protection over the expected post-convergence paths from the point of local repair, reducing the operational need to control the tie-breaks among various FRR options.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9855"/>
          <seriesInfo name="DOI" value="10.17487/RFC9855"/>
        </reference>
  </references>
</references>

    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t>The authors would like to thank Acee Lindem, Peter Psenak, Yimin Shen,
       Jie Dong, Zhenqiang Li, 
       Alexander Vainshtein, Greg Mirsky, Bruno Decraene, Jeff Tantsura,
       Chris Bowers, Ketan Talaulikar, Bob Halley, Tal Mizrahi, 
       Yingzhen Qu and Susan Hares
       for their comments to this work.</t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors' Addresses</name>
      <artwork name="" type="" align="left" alt=""><![CDATA[Huanan Chen
China Telecom
109, West Zhongshan Road, Tianhe District
Guangzhou
510000
China
Email: chenhn8.gd@chinatelecom.cn

Peng Wu
Huawei
Huawei Bld., No.156 Beiqing Rd.
Beijing
100095
China
Email: baggio.wupeng@huawei.com

Lei Liu
Fujitsu
United States of America
Email: liulei.kddi@gmail.com

Xufeng Liu
Alef Edge
United States of America
Email: xufeng.liu.ietf@gmail.com]]></artwork>
    </section>
  </back>
</rfc>
