<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?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 category="std"
     docName="draft-chen-savnet-lsr-intra-02"
     ipr="trust200902">
  <front>
    <title abbrev="IGP for Intra SAV">IGP Extensions for Intra-Domain SAV</title>

     <author initials="H" surname="Chen" fullname="Huaimo Chen">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street></street>
          <city>Boston, MA</city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>hchen.ietf@gmail.com</email>
      </address>
    </author>

    <author initials="W" fullname="Weiqiang Cheng" 
            surname="Cheng">
      <organization> China Mobile </organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
     </author>

<!--
    <author fullname="Donald E. Eastlake 3rd" initials="D" surname="Eastlake">
      <organization>Futurewei</organization>
      <address>
        <postal>
          <street>2386 Panoramic Circle</street>
          <city>Apopka, FL</city>
          <region></region>
          <code>32703</code>
          <country>USA</country>
        </postal>
        <phone>+1-508-333-2270</phone>
        <email>d3e3e3@gmail.com</email>
      </address>
    </author>
-->
     <author initials="A" fullname="Aijun Wang" 
            surname="Wang">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>
          <city>Beijing</city>
          <region> </region>
          <code>102209</code>
          <country>China</country>
        </postal>
        <email>wangaj3@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Gyan S. Mishra" initials="G" surname="Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <postal>
          <street>13101 Columbia Pike</street>
          <city>Silver Spring</city>
          <code>MD 20904</code>
          <country>USA</country>
        </postal>
        <phone> 301 502-1347</phone>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>

<!--
  <author fullname="Yisong Liu" initials="Y" surname="Liu">
   <organization>China Mobile</organization>
   <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country></country>
        </postal>
    <email>liuyisong@chinamobile.com</email>
   </address>
  </author>
-->
   <author initials="Y" fullname="Yanhe Fan" 
            surname="Fan">
      <organization>Casa Systems</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>yfan@casa-systems.com</email>
      </address>
    </author>
<!--
   <author initials="L" fullname="Lei Liu" 
            surname="Liu">
      <organization>Fujitsu</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region></region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>liulei.kddi@gmail.com</email>
      </address>
    </author>
-->
   <author initials="X" fullname="Xufeng Liu" 
            surname="Liu">
      <organization>Alef Edge</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code></code>
          <country>USA</country>
        </postal>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2024"/>

    <abstract>
      <t>This document specifies extensions to OSPF and IS-IS for 
         Source Address Validation in Intra-domain.
      </t>
    </abstract>

    <note title="Requirements Language">
      <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"/> <xref target="RFC8174"/> 
      when, and only when, they appear in all capitals, as shown here.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
     <t>Requirements for intra-domain Source Address Validation 
        (SAV) Mechanisms are
        described in
        <xref target="I-D.ietf-savnet-intra-domain-problem-statement"/>.
        The most important requirements include:
        <list style="symbols">
          <t>Accurate Validation, </t>
          <t>Fast Convergence of SAV table/rules on dynamic routing 
             changes, and</t>
          <t>Backward Compatible (i.e., Working in 
             Incremental/Partial Deployment).</t>
        </list>
     </t>

     <t>This document proposes IGP (i.e., OSPF and IS-IS) extensions 
        for Intra-Domain SAV to meet these requirements.</t>
<!--
    <section title="Terminology">
      <t>
      <list style="hanging" hangIndent="6">
       <t hangText="LSA:">Link State Advertisement.</t>
       <t hangText="OSPF:">Open Shortest Path First.</t>
       <t hangText="LSP:">Link State Protocol data unit.</t>
       <t hangText="IS-IS:">Intermediate System to Intermediate System.</t>
       <t hangText="MT:">Multi-Topology.</t>
      </list></t>
    </section>
-->
 <!-- Terminology -->
    </section> 
<!-- Introduction -->


   <section title="Overview of Intra-Domain SAV">     
       <t>This section briefs SAV table and its usage, 
          and then introduces one area (i.e., intra-area) SAV and 
          multiple areas (i.e., inter-area) SAV.</t>

   <section anchor="sav-table" 
            title="SAV Table and its Usage">
    <t>Every node (i.e., IGP control plane on the node) 
       in a Autonomous System (AS) 
       builds and maintains its own Source Address Validation (SAV) 
       Table based on its Link-State Database (LSDB).
 
       The format of a SAV table is shown in
       <xref target="sav-table-fib"/>.
 
           <figure anchor="sav-table-fib" 
           title="Format of SAV Table and FIB">
  <artwork> <![CDATA[   +==========+============+     +===========+================+
    |Source    |Incoming    |     |Destination|Outgoing        | 
    |Prefix    |Interface   |     |Prefix     |Interface       |
    +==========+============+     +===========+================+
    |S-prefix-1|Interface-a |     |D-prefix-1 |Out-interface-a |
    +----------+------------+     +-----------+----------------+
==> |S-prefix-2|Interface-b | ==> |D-prefix-2 |Out-interface-b | ==>
 ^  +----------+------------+  ^  +-----------+----------------+  ^
 |     ...                     |      ...                         |
 |  +----------+------------+  |  +-----------+----------------+  |
 |  |S-prefix-n|Interface-x |  |  |D-prefix-n |Out-interface-x |  |
 |  +----------+------------+  |  +-----------+----------------+  |
 |   Format of SAV Table       |             FIB                  |
 |                             |                                  |
Packet in                  forward Packet                  Packet out
               if source address and receiving interface
               of Packet in SAV Table]]></artwork>
</figure>
</t>

   <t>When there is a shortest path from source prefix S-prefix-i 
      to a destination through node N and 
      interface Interface-j of node N,
      the SAV table of node N has a row containing
      S-prefix-i as Source Prefix and 
      Interface-j as Incoming Interface.
      For example, the first row in the SAV table of node N contains 
      S-prefix-1 as Source Address and Interface-a as Incoming Interface.
      This row indicates that there is a shortest path from S-prefix-1
      to a destination through node N and Interface-a of node N.
      </t>

   <t>The SAV table is sent to the data plane and used to
      validate the source address of a packet. 
      When receiving a packet from an interface, 
      the node validates the packet using its SAV table.</t>

   <t>If the source address of the packet and the receiving/incoming 
      interface are in the SAV table 
      (i.e., there is one row in the SAV table containing 
      the source address and the receiving/incoming interface), 
      the packet is forwarded according to the FIB and 
      destination address of the packet as shown
      in the figure; 
      otherwise (i.e., there is no row in the SAV table containing 
      the source address and the receiving/incoming interface), 
      the packet is blocked or dropped. 
   </t>

   </section>
<!-- SAV Table and its Usage -->


   <section anchor="intra-area-sav-intro" 
            title="Intra-Area SAV"> 
   <t>This section introduces a method for a node to build 
      its SAV table in a special case where 
      an AS has only one area or SAV is for only one area.</t>

   <t>When every routing/forwarding path in an AS is symmetric
      (i.e., every path has the same cost in both directions), 
      every node in the AS builds and maintains its SAV table
      using its RIB/FIB.
      The node can determine whether every path is symmetric
      by checking its LSDB. 
      If every link in its LSDB is symmetric (i.e., 
      has the same metric or cost 
      in both directions), then every path is symmetric;
      otherwise (i.e., there is an asymmetric link, 
      its metric/cost in one direction is different from the one in 
      the other/reverse direction), 
      there are some asymmetric paths.</t>

   <t>The node builds its SAV table using the RIB/FIB by  
      including a row in its SAV table 
      for each prefix with a next hop interface in its RIB/FIB. 
      The row contains the prefix and the interface 
      in the Source Prefix and Incoming Interface columns respectively.
   </t>

   <t>When there is a routing/forwarding path which is not symmetric,
      every node X builds its SAV table in the following steps: 
      <list style="numbers">
        <t>Builds reverse shortest path tree (RSPT).
           Node X computes/builds a shortest path tree from node X to 
           the other nodes using the link metric or cost of each link 
           in the reverse direction.
         </t>
         <t>Builds reverse routing table (RRT) using RSPT.
            When node X finds a shortest path from node X 
            to node Y with a next hop interface in its RSPT, 
            node X adds an entry for each prefix attached to Y 
            into its RRT. 
            The entry has the prefix as the destination and 
            the next hop interface as the next hop.
         </t>
         <t>Builds SAV table using RRT.
            Node X includes a row in its SAV table for each prefix 
            with a next hop interface in its RRT. 
            The row contains the prefix and the interface in the 
            Source Prefix and Incoming Interface columns respectively.
          </t>
      </list>
   </t>

   <t>There are a few options below for the scope of the prefixes to be 
      validated. 
      <list style="hanging" hangIndent="8">
       <t hangText="Option 1:">The prefixes attached to every node.</t>
       <t hangText="Option 2:">The prefixes attached to each ASBR and ABR.</t>
       <t hangText="Option 3:">The prefixes indicated/configured on any node.</t>
      </list>
   </t>

   <t>The method above builds the SAV table for option 1.</t>

   <t>For option 2, we consider only ASBR and ABR Y in step 2.
      Thus the RRT contains only the prefixes attached to ASBRs and ABRs.
      So does the SAV table.</t>

   <t>For option 3,
      we consider only the prefixes attached to node Y and 
      indicated/configured by node Y in step 2.
      Thus the RRT contains only these prefixes.
      So does the SAV table.</t>

   </section> 
<!-- Intra-Area SAV -->

   <section anchor="inter-area-sav-intro"
            title="Inter-Area SAV"> 
   <t>This section introduces a method for a node to build 
      its SAV table in a general case where 
      an AS has multiple areas and SAV is for all the areas.
      The method is based on the one described in
      <xref target="intra-area-sav-intro"/>.</t>

   <t>For any area A, every node X in A builds its SAV table 
      using the following steps:
      <list style="numbers">
        <t>Gets area shortest path tree (ASPT).
           The ASPT is a tree from node X as root to all the other 
           nodes in area A. 
           If every link in area A is symmetric, 
           the ASPT is the SPT built by node X for its RIB, which is reused;
           otherwise (i.e., there is asymmetric link in area A), 
           the ASPT is a RSPT from node X as root to all the other 
           nodes in area A. 
           Node X computes/builds the RSPT as described in
           <xref target="intra-area-sav-intro"/>.
         </t>
         <t>Extends ASPT.
            For each leaf node L of ASPT, node X attaches node L of ASPT 
            every prefix of node L if the cost from the prefix to L is 
            minimal. 

            If every link in area A is symmetric and 
            every path between any ABR and a summary prefix/address 
            from the ABR is symmetric,
            the extended ASPT is the SPT with the prefixes of each node 
            in area A built by node X for its RIB,
            which is reused.
<!--
            If every link in area A is symmetric, 
            node X may have the extended ASPT based on 
            the SPT with the prefixes of each node 
            in area A built by node X for its RIB.
            For an ABR advertsing summary prefixes/addresses for anotehr area,
            if the paths between the ABR and the prefixes are symmetric,
            the prefixes attached to the ABR on the SPT is reused; 
            otherwise (i.e., there is an asymmetric path),
            the prefixes attached to the ABR on the SPT are updated
            according to the cost from each of the prefixes to the ABR.
-->
         </t>
         <t>Builds reverse routing table (RRT) using extended ASPT.
            When node X finds a shortest path from node X 
            to node Y with a next hop interface in its extended ASPT, 
            node X adds an entry for each prefix attached to Y 
            into its RRT. 
            The entry has the prefix as the destination and 
            the next hop interface as the next hop.
         </t>
         <t>Builds SAV table using RRT.
            Node X includes a row in its SAV table for each prefix 
            with a next hop interface in its RRT. 
            The row contains the prefix and the interface in the 
            Source Prefix and Incoming Interface columns respectively.
          </t>
      </list>
   </t>

   <t>The method above builds the SAV table for option 1.</t>

   <t>For option 2, we consider only ASBR and ABR Y in step 3.
      Thus the RRT contains only the prefixes attached to ASBRs and ABRs.
      So does the SAV table.</t>

   <t>For option 3,
      we consider only the prefixes attached to node Y and 
      indicated/configured by node Y in step 3.
      Thus the RRT contains only these prefixes.
      So does the SAV table.</t>
   </section> 
<!-- Inter-Area SAV -->

   </section> 
<!-- Overview of Intra-Domain SAV -->


   <section title="Extensions to IGP">
    <t>This section describes extensions to OSPFv2, OSPFv3 
       and IS-IS for SAV. The extensions include:
      <list style="symbols">
        <t>A new S-Flag (SAV Prefix Flag) of 1 bit indicating a prefix 
       to be validated when 
       option 3 described in <xref target="intra-area-sav-intro"/>
       is selected.</t>

       <t>A new Sub-TLV, called Reverse Cost to Prefix Sub-TLV, for 
       ABR to advertise the cost of the shortest path from the prefix 
       to the ABR
       when the path between the ABR and the prefix is not symmetric
      (i.e., the cost of the shortest path from the ABR to the prefix is
       different from that of the path from the prefix to the ABR).</t>
      </list>
    </t>

   <section title="Extensions to OSPFv2">

   <section title="Indicating Prefixes to be Validated">


     <t><xref target="RFC7684"/> defines the OSPFv2 Extended Prefix TLV
        to advertise additional attributes associated with the prefix.
<!--
        Multiple OSPFv2 Extended Prefix TLVs MAY be advertised in 
        each OSPFv2 Extended Prefix Opaque LSA.

        The OSPFv2 Extended Prefix TLV has the following format: 

           <figure anchor="ospfv2-prefix-tlv" 
           title="OSPFv2 Extended Prefix 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 (1)          |      Length (Variable)        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Route Type  | Prefix Length |       AF      |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Address Prefix (variable)                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sub-TLVs (variable)                    |
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>

    All the fields in the OSPFv2 Extended Prefix TLV are defined in 
    <xref target="RFC7684"/> Section 2.1. OSPFv2 Extended Prefix TLV. 
</t>
-->
    A new flag of one bit in Flags field of the TLV is defined below:
      <list style="hanging" hangIndent="7">
       <t hangText="0x20 - S-Flag (SAV Prefix Flag):">Set when the prefix is 
         configured
        for SAV (i.e., to be validated as a Source Address of a packet).</t>
      </list>
    </t>

   </section> 
<!-- Indicating Prefixes to be Validated -->

   <section title="Path Cost from Prefix to ABR">
<!--
    <t>For a summary prefix advertised by an ABR,
       when the cost of the shortest path from the ABR to the prefix is
       different from that of the path from the prefix to the ABR,
       the ABR advertises the cost of the path from the prefix to the ABR.
    </t>
-->
    <t><xref target="RFC7684"/> defines the OSPFv2 Extended Prefix TLV.
       A new OSPFv2 Reverse Cost to Prefix Sub-TLV is defined to be
       included in this TLV with Route Type 3 (Inter-Area).

       It has the following format:
           <figure anchor="ospfv2-reverse-cost-to-prefix-sub-tlv" 
           title="OSPFv2 Reverse Cost to Prefix 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 (TBD1)       |          Length (4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Cost from Prefix to ABR                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
    </t>
   </section> 
<!-- Path Cost from Prefix to ABR -->

   </section> 
<!--  Extensions to OSPFv2 -->


   <section title="Extensions to OSPFv3">

   <section title="Indicating Prefixes to be Validated">
     <t><xref target="RFC8362"/> defines Intra-Area-Prefix TLV 
        and External-Prefix TLV
        to advertise additional attributes associated with the prefix.
<!--
    A new option of one bit in PrefixOptions field of the TLV is defined below:
      <list style="hanging" hangIndent="7">
       <t hangText="0x40 - S-bit (SAV prefix option):">Set when the prefix is 
         configured
        for SAV (i.e., to be validated as a Source Address of a packet).</t>
      </list>
    </t>

    <t>
-->
       A new Sub-TLV called Prefix Attribute Flags Sub-TLV is defined
       to be included in these two TLVs.
       It has the following format:
           <figure anchor="ospfv3-prefix-flags-sub-tlv" 
            title="OSPFv3 Prefix Attribute Flags 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 (TBD2)       |          Length (4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Prefix Attribute Flags                 |S|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>

    One flag of 1-bit in Prefix Attribute Flags field is defined below:
      <list style="hanging" hangIndent="7">
       <t hangText="0x01 - S-Flag (SAV Prefix Flag):">Set when the prefix is 
         configured
        for SAV (i.e., to be validated as a Source Address of a packet).</t>
      </list>
    </t>

   </section> 
<!-- Indicating Prefixes to be Validated -->

   <section title="Path Cost from Prefix to ABR">
<!--
    <t>For a summary prefix advertised by an ABR,
       when the cost of the shortest path from the ABR to the prefix is
       different from that of the path from the prefix to the ABR,
       the ABR advertises the cost of the path from the prefix to the ABR.
    </t>
-->
    <t><xref target="RFC8362"/> defines the Intra-Area-Prefix TLV.
       A new OSPFv3 Reverse Cost to Prefix Sub-TLV is defined
       to be included in this TLV.
<!--
       This Sub-TLV is used by an ABR to advertise 
       the cost of the path from the prefix to the ABR
       when the cost of the shortest path from the ABR to the prefix is
       different from that of the path from the prefix to the ABR. 
-->
       It has the following format:
           <figure anchor="ospfv3-reverse-cost-to-prefix-sub-tlv" 
            title="OSPFv3 Reverse Cost to Prefix 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 (4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Cost from Prefix to ABR                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
    </t>
   </section> 
<!-- Path Cost from Prefix to ABR -->

    </section>
<!--  Extensions to OSPFv3 -->



   <section title="Extensions to IS-IS">

   <section title="Indicating Prefixes to be Validated">
     <t><xref target="RFC7794"/> defines the Prefix Attribute Flags 
        Sub-TLV to advertise additional IPv4 and IPv6 prefix attributes 
        in TLV 135 (Extended IP Reachability), 
        235 (MT IP Reach), 236 (IPv6 IP Reach) and 237 (MT IPv6 IP Reach).
        

    A new one bit flag in the Sub-TLV is defined below:
      <list style="hanging" hangIndent="7">
       <t hangText="Bit 5 - SAV Prefix Flag (S-flag):">Set when the prefix is 
         configured
        for SAV (i.e., to be validated as a Source Address of a packet).</t>
      </list>
    </t>

   </section> 
<!-- Indicating Prefixes to be Validated -->

   <section title="Path Cost from Prefix to ABR">
    <t>A new IS-IS Reverse Cost to Prefix Sub-TLV is defined
       for an ABR (i. e., level 2/1 router) to include it in 
       TLV 135, 235, 236 and 237 for the prefix.
<!--
       This Sub-TLV is used by a level 2/1 router to advertise 
       the cost of the path from the prefix to the router
       when the path between the router and the prefix is not symmetric. 
-->
       It has the following format:
           <figure anchor="isis-reverse-cost-to-prefix-sub-tlv" 
            title="IS-IS Reverse Cost to Prefix 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 (TBD4)  |   Length (4)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Cost from Prefix to ABR                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
    </t>
   </section> 
<!-- Path Cost from Prefix to Router -->
   </section>  
<!--  Extensions to IS-IS -->
   </section> 
<!--  Extensions to IG --> 


    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
    <section anchor="ospf2-iana" title="OSPFv2">
      <t>Under "OSPFv2 Extended Prefix TLV Flags registry", 
         IANA is
         requested to assign a codepoint for 
         SAV Prefix Flag as follows:
<figure>
  <artwork>+=======+==========================+=============+
| Value | Description              |Reference    |
+=======+==========================+=============+
| 0x10  | S-Flag (SAV Prefix Flag) |This document|
+-------+--------------------------+-------------+
  </artwork>
</figure>
      </t>

      <t>Under "OSPFv2 Extended Prefix TLV Sub-TLVs registry" as defined
         in <xref target="RFC7684"/>, IANA is
         requested to assign a registry value for 
         Link Number Sub-TLV as follows:

<figure>
  <artwork>+===========+=========================+==================+
|  Value    | Description             | Reference        |
+===========+=========================+==================+
|  TBD1     | Reverse Cost to Prefix  | This document    |
+-----------+-------------------------+------------------+
  </artwork>
</figure>
</t>
</section>

    <section anchor="ospf3-iana" title="OSPFv3">
      <t>Under "OSPFv3 Extended-LSA Sub-TLVs registry" as defined
         in <xref target="RFC8362"/>, IANA is
         requested to assign a registry value for 
         Reverse Cost to Prefix Sub-TLV as follows:

<figure>
  <artwork>+===========+=========================+==================+
|  Value    | Description             | Reference        |
+===========+=========================+==================+
|  TBD2     | Prefix Attribute Flags  | This document    |
+-----------+-------------------------+------------------+
|  TBD3     | Reverse Cost to Prefix  | This document    |
+-----------+-------------------------+------------------+
</artwork>
</figure>
</t>
</section>

    <section anchor="is-is-iana" title="IS-IS">
      <t>Under "IS-IS Bit Values for Prefix Attribute Flags Sub-TLV", 
         IANA is
         requested to assign a codepoint for 
         SAV Prefix Flag as follows:
<figure>
  <artwork>+=====+========================+=============+
|Bit #|Name                    |Reference    |
+=====+========================+=============+
|  5  |SAV Prefix Flag (S-flag)|This document|
+-----+------------------------+-------------+
  </artwork>
</figure>
      </t>

      <t>Under "IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability", 
         IANA is
         requested to assign a codepoint for 
         Reverse Cost to Prefix Sub-TLV as follows:

<figure>
  <artwork>+===========================+==+===+===+===+===+===+===+=============+
|Type|Description           |27|126|127|135|235|236|237|reference    |
+====+======================+==+===+===+===+===+===+===+=============+
|TBD3|Reverse Cost to Prefix|n | n | n | y | y | y | y |This document|
+----+----------------------+--+---+---+---+---+---+---+-------------+
  </artwork>
</figure>
</t>
    </section>
    </section>


    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Joel Halpern for the valuable
   comments and suggestions on this draft..</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.8174"?>
      <?rfc include="reference.RFC.5226"?>

      <?rfc include="reference.RFC.7684"?>
      <?rfc include="reference.RFC.8362"?>
      <?rfc include="reference.RFC.2328"?>

      <?rfc include="reference.RFC.5305"?>
      <?rfc include="reference.RFC.7794"?>
      <?rfc include="reference.RFC.5120"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.I-D.ietf-savnet-intra-domain-problem-statement"?>
      <?rfc include="reference.RFC.5250"?>
    </references>

  </back>

</rfc>
