<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.26 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-geng-idr-bgp-savnet-00" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="BGP Extensions for SAVNET">BGP Extensions for Source Address Validation Networks (BGP SAVNET)</title>
    <seriesInfo name="Internet-Draft" value="draft-geng-idr-bgp-savnet-00"/>
    <author initials="N." surname="Geng" fullname="Nan Geng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gengnan@huawei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Tan" fullname="Zhen Tan">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>tanzhen6@huawei.com</email>
      </address>
    </author>
    <author initials="M." surname="Liu" fullname="Mingxing Liu">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>liumingxing7@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Routing</area>
    <workgroup>IDR</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Many source address validation (SAV) mechanisms have been proposed for preventing source address spoofing. However, existing SAV mechanisms are faced with the problems of inaccurate validation or high operational overhead in some cases. This paper proposes BGP SAVNET by extending BGP protocol for SAV. This protocol can propagate SAV-related information through BGP messages. The propagated information will help routers automatically generate accurate SAV rules which are for checking the validity of data packets.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sec-intro">
      <name>Introduction</name>
      <t>Source address validation (SAV) is essential for preventing source address spoofing attacks (e.g., DDoS based on source address spoofing <xref target="RFC6959"/>) and tracing back network attackers. For a network, SAV mechanisms can be deployed on edge routers or aggregation routers for validating the packets from the connected subnets or neighboring ASes <xref target="manrs-antispoofing"/>.</t>
      <t>ACL-based ingress filtering can be used for SAV, which, however, has high operational overhead problems in dynamic networks <xref target="I-D.li-savnet-intra-domain-problem-statement"/><xref target="I-D.wu-savnet-inter-domain-problem-statement"/> and also has limited capacity of rules. Many SAV mechanisms, such as strict uRPF, loose uRPF, and EFP-uRPF <xref target="RFC3704"/><xref target="RFC8704"/>, leverage routing information to automatically generate SAV rules. The rules indicate the wanted incoming directions of source addresses. The packets with specified source addresses but from unwanted directions will be considered invalid <xref target="I-D.huang-savnet-sav-table"/>. However, there may be inaccurate validation problems under asymmetric routing <xref target="I-D.li-savnet-intra-domain-problem-statement"/><xref target="I-D.wu-savnet-inter-domain-problem-statement"/>. This is because these uRPF mechanisms are "single-point" designs. They leverage the local FIB or local RIB table to determine the incoming interfaces for source addresses, which may not match the real incoming directions. That is, purely relying on the original IGP or BGP protocols to obtain routing information for SAV rule generation cannot well meet the requirement of accurate validation.</t>
      <t>This document proposes an extension of BGP protocol for SAV, i.e., BGP SAVNET. Unlike existing "single-point" mechanisms, BGP SAVNET allows coordination between the routers within the network or the ASes outside the network by propagating SAV-related information through extended BGP messages. The propagated information can provide more accurate source address information and incoming direction information than the local FIB and RIB tables. The routers with BGP SAVNET can automatically generate accurate SAV rules without introducing much overhead.</t>
      <t>The BGP SAVNET protocol is suitable to generating SAV rules for both IPv4 and IPv6 addresses. The SAV rules can be used for validating any native IP packets or IP-encapsulated packets.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>SAV: Source address validation, an approach to preventing source address spoofing.</t>
        <t>SAV Rule: The rule that indicates the valid incoming interfaces for a specific source prefix.</t>
        <t>SAV Table: The table or data structure that implements the SAV rules and is used for source address validation in the data plane.</t>
        <t>SPA: Source prefix advertisement, i.e., the process for advertising the origin source addresses/prefixes of a router or an AS.</t>
        <t>SPD: Source path discovery, i.e., the process for discovering the real incoming directions of particular source addresses/prefixes.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="sec-relat">
      <name>BGP Protocol Relationship</name>
      <t>The BGP extensions for BGP SAVNET follow a backward compatible manner without impacting existing BGP functions. New BGP SAVNET subsequent address families will be introduced under the IPv4 address family and the IPv6 address family, respectively. The BGP UPDATE message (specifically the MP_REACH_NLRI and the MP_UNREACH_NLRI attributes) and the BGP Refresh message will be extended. AFI and SAFI can be used for distinguishing the BGP SAVNET messages from other messages.</t>
      <t>A few existing path attributes such as Originator_ID and Clister_list or new defined path attributes <bcp14>MAY</bcp14> be used for BGP SAVNET. Actually, most existing path attributes are not necessarily required for BGP SAVNET. However, if the unnecessary path attributes are carried in BGP updates, they will be accepted, validated, and propagated consistent with the BGP protocol.</t>
    </section>
    <section anchor="sec-solution">
      <name>BGP SAVNET Solution</name>
      <section anchor="application-scenarios">
        <name>Application Scenarios</name>
        <t>BGP SAVNET aims to generate accurate SAV rules for most use cases including asymmetric routing. An SAV rule indicates the valid incoming interfaces for a specific source address/prefix. A router with BGP SVANET will locally maintain a SAV table storing the SAV rules. The SAV table can be used for validating data packets.</t>
        <t><xref target="fig-goal"/> shows the application scenarios where BGP SAVNET will enabling SAV in data plane:</t>
        <ul spacing="normal">
          <li>
            <t>SAV within an AS
            </t>
            <ul spacing="normal">
              <li>Edge routers connecting subnets: BGP SAVNET can be deployed at '*' for checking the validity of the packets from subnets.</li>
              <li>Aggregation routers: Aggregation routers can do validation at 'x' for any arrival packets.</li>
            </ul>
          </li>
          <li>
            <t>SAV between ASes
            </t>
            <ul spacing="normal">
              <li>Border routers connecting other ASes: BGP SAVNET can be deployed at '#' for checking the validity of the packets from other ASes.</li>
            </ul>
          </li>
        </ul>
        <figure anchor="fig-goal">
          <name>BGP SAVNET application scenarios</name>
          <artwork><![CDATA[
        +-----+           +-----+
        | AS1 |           | AS2 |
        +-----+           +-----+
             \             /
+-------------\-----------/-------------+
| AS3        +-#--+   +--#-+            |
|            | R7 |---| R8 |            |
|            +----+   +----+            |
|              |         |              |
|            +-x--+   +--x-+            |
|      ------x R5 x---x R6 x------      |
|      |     +-x--+   +--x-+     |      |
|      |       |         |       |      |
|   +----+   +----+   +----+   +----+   |
|   | R1 |   | R2 |---| R3 |   | R4 |   |
|   +--*-+   +-*--+   +--#-+   +-#--+   |
+-------\-----/-----------\-----/-------+
       +-------+          +-----+
       |Subnet1|          | AS4 |
       +-------+          +-----+

]]></artwork>
        </figure>
      </section>
      <section anchor="sav-solution-within-an-as">
        <name>SAV Solution within an AS</name>
        <t>The solution consists of two main processes: Source Address Advertisement (SPA) and Source Path Discovery (SPD). Edge routers can generate SAV rules through SPA on the interfaces connecting subnets. SPA and SPD can help aggregation routers generate SAV rules on the interfaces connecting other routers.</t>
        <section anchor="solution-for-edge-routers">
          <name>Solution for Edge Routers</name>
          <t>Edge routers aims to generate SAV rules, i.e., the source prefix allowlist at each interface connecting to a subnet. If the subnet is single-homed, the allowlist can be generated through local RIB. When the subnet is multi-homed to edge routers, asymmetric routing may exist. SPA will help the routers get accurate allowlist. Specifically, edge routers can propagate its source prefixes learned from an interface connecting to a subnet. The source prefixes with a tag will be carried in the SPA message. Other routers will receive the message. The interfaces configured with the same tag value on other routers will include the tagged source prefixes in the corresponding allowlist. More details can be found in the version-00 of <xref target="I-D.li-savnet-intra-domain-architecture"/>.</t>
        </section>
        <section anchor="solution-for-aggregation-routers">
          <name>Solution for Aggregation Routers</name>
          <t>Aggregation routers are to generate SAV rules for checking the validity of recorded source prefixes and ignore the validation of unrecorded source prefixes. Each edge router can first send SPA messages for propagating its router-id and its source prefixes that need to be validated. Aggregation routers will record the mapping from router-id to source prefixes. Then, each edge router will send an SPD messages to each neighbor router. The message carries the source router-id of the edge router and the destination router-ids whose mapped source prefixes take the neighbor router as the next forwarding hop. The neighbor router (e.g., aggregation router) receiving the message will record the incoming interface of the message, and SAV rules will be generated locally by binding the source router-id's source prefixes to the recorded incoming interface. Then neighbor router will remove its own router-id from the destination router-id list and relay the message to its neighbors according to local forwarding rules. The routers receiving the message will repeat the above process until the destination router-id list is empty. More details can be found in the version-00 of <xref target="I-D.li-savnet-intra-domain-architecture"/>.</t>
        </section>
      </section>
      <section anchor="sav-solution-between-ases">
        <name>SAV Solution between ASes</name>
        <section anchor="solution-for-border-routers">
          <name>Solution for Border Routers</name>
          <t>The solution consists of two main processes: SPA and SPD. Border routers can generate SAV rules at interfaces connecting to other ASes through SPA and SPD.</t>
          <t>Let AS X be the local AS which acts as a validation AS and generates SAV rules for other ASes. Let AS Y be one of the ASes deploying BGP SAVNET, which is named as source AS. Validation AS X will generate SAV rules for protecting the source prefixes of source AS Y.</t>
          <t>AS Y first advertise its own AS number and its own source prefixes to AS X through SPA messages. SPA is necessary because AS Y cannot learn the complete set of source prefixes of AS Y purely through BGP updates. Some hidden source prefixes that do not appear can be advertised to AS X through SPA messages.</t>
          <t>After SPA, AS Y can send SPD messages for notifying its preferred AS paths from AS Y to AS X. AS X will learn the incoming direction of AS Y's packets. Then, SAV rules can be generated. SPD can help AS X for discovering the real forwarding paths that do not match the control plane paths learned by AS X. More details can be found in the version-00 of <xref target="I-D.wu-savnet-inter-domain-architecture"/>.</t>
          <t>Note that, the SAV solutions either within an AS or between ASes are under working on. The BGP SAVNET will be updated if the solutions are revised.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-peering">
      <name>BGP SAVNET Peering Models</name>
      <t>Several BGP SAVNET solutions are introduced that can be applied in different scenarios. Depending on the solution's feature, different peering models need to be taken.</t>
      <section anchor="full-mesh-ibgp-peering">
        <name>Full-mesh IBGP Peering</name>
        <t>This peering model is required by the SAV solution within an AS so that the edge routers can generate SAV rules. In this model, routers enabling BGP SAVNET <bcp14>MUST</bcp14> establish full-mesh iBGP sessions either through direct iBGP sessions or route-reflector. The BGP SAVNET sessions can be established only when the BGP SAVNET address family has been successfully negotiated. SPA messages within an AS can be advertised through the full-mesh BGP SAVNET sessions. The extensions of BGP messages for carrying SPA messages will be introduced in <xref target="sec-extension"/>.</t>
      </section>
      <section anchor="singe-hop-ibgp-peering-between-directly-connected-routers">
        <name>Singe-hop IBGP Peering between Directly Connected Routers</name>
        <t>This peering model meets the requirement of the SAV solution within an AS so that the aggregation routers can generate SAV rules. In this model, routers enabling BGP SAVNET <bcp14>MUST</bcp14> establish single-hop iBGP sessions through direct point-to-point links. For each link, a single-hop iBGP session needs to be established, and the messages transmitted over the session <bcp14>MUST</bcp14> be carried by the corresponding link. SPD messages within an AS can be advertised through these sessions. The extensions of BGP messages for carrying SPD messages will be introduced in <xref target="sec-extension"/>.</t>
      </section>
      <section anchor="ebgp-peering-between-ases">
        <name>EBGP Peering between ASes</name>
        <t>The SAV solution between ASes requires eBGP sessions which can be single-hop or multi-hop. In this model, for the AS enabling BGP SAVNET, at least one border router in the AS <bcp14>MUST</bcp14> establish the BGP SAVNET sessions with other border routers in the neighboring or remote ASes. SPA and SPD messages between ASes will be advertised through these sessions. The extensions of BGP messages for carrying SPA and SPD messages will be introduced in <xref target="sec-extension"/>.</t>
      </section>
    </section>
    <section anchor="sec-extension">
      <name>BGP SAVNET Protocol Extension</name>
      <section anchor="bgp-savnet-safi">
        <name>BGP SAVNET SAFI</name>
        <t>In order to transmitting and exchanging data needed to generate an independent SAV table, the document introduces the BGP SAVNET SAFI. The value is TBD and requires IANA registration as specified in <xref target="sec-iana"/>. In order for two BGP SAVNET speakers to exchange BGP SAVNET NLRI (SPA message), they <bcp14>MUST</bcp14> establish a BGP SAVNET peer and <bcp14>MUST</bcp14> exchange the Multiprotocol Extensions Capability <xref target="RFC5492"/> to ensure that they are both capable of processing such NLRI properly. Two BGP SAVNET speakers <bcp14>MUST</bcp14> exchange Route Refresh Capability <xref target="RFC2918"/> to ensure that they are both capable of processing the SPD message carried in the BGP Refresh message.</t>
      </section>
      <section anchor="bgp-savnet-nlri">
        <name>BGP SAVNET NLRI</name>
        <t>The BGP SAVNET NLRI is used to transmit Source Prefix (either IPv4 or IPv6) information to form a uniform Source Prefix list within a deployment domain.</t>
        <t>The BGP SAVNET NLRI TLVs are carried in BGP UPDATE messages as (1) route advertisement carried within Multiprotocol Reachable NLRI (MP_REACH_NLRI) <xref target="RFC4760"/>, and (2) route withdraw carried within Multiprotocol Unreachable NLRI (MP_UNREACH_NLRI).</t>
        <t>While encoding an MP_REACH_NLRI attribute containing BGP SAVNET NLRI TLVs, the "Length of Next Hop Network Address" field <bcp14>SHOULD</bcp14> be set to 0 upon the sender. The "Network Address of Next Hop" field should not be encoded upon the sender, because it has a 0 length and <bcp14>MUST</bcp14> be ignored upon the receiver.</t>
        <section anchor="spa-tlvs-within-an-as">
          <name>SPA TLVs within an AS</name>
          <t>The BGP SAVNET NLRI TLV each carries a Source Prefix and related information, therefore it is called an SPA TLV. 
This type of TLVs are used in SPA process within an AS. The format is shown below:</t>
          <figure>
            <name>SPA TLV format</name>
            <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 (1)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Origin router-id (4)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  MaskLen (1)  |        IP Prefix (1~16)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Tag (32)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The meaning of these fields are as follows:</t>
          <ul spacing="normal">
            <li>Type: Type of the BGP SAVNET NLRI TLV, the value is 1 for SPA TLV within an AS.</li>
            <li>Length: The length of the BGP SAVNET NLRI value, the Type and Length fields are excluded.</li>
            <li>Origin router-id: The router ID of the originating node of the source prefix in the deployment domain.</li>
            <li>MaskLen: The mask length in bits, which also indicates the valid bits of the IP Prefix field.</li>
            <li>IP Prefix: IP address. The length ranges from 1 to 16 bytes. Format is consistent with BGP IPv4/IPv6 unicast address.</li>
            <li>Tag: Interface Tag.</li>
          </ul>
        </section>
        <section anchor="spa-tlvs-between-ases">
          <name>SPA TLVs between ASes</name>
          <t>This type of TLVs are used in SPA process between ASes.
Type value is 2 for SPA TLV between ASes.
The details are TBD.</t>
        </section>
      </section>
      <section anchor="bgp-savnet-refresh">
        <name>BGP SAVNET Refresh</name>
        <t>The SPD TLV is carried in a BGP Refresh message after the BGP Refresh message body, as follows:</t>
        <figure>
          <name>BGP-REFRESH with SPD TLV format</name>
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              AFI (2)          |  Reserved (1) |     SAFI (1)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       SPD TLV (variable)                      |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>By carrying an SPD TLV, a BGP SAVNET Refresh message <bcp14>MUST NOT</bcp14> be processed as a Route-Refresh (as a re-advertisement request) and <bcp14>SHOULD</bcp14> only be used in the SPD process. A BGP SAVNET Refresh message without an SPD TLV <bcp14>SHOULD</bcp14> be processed as a Route-Refresh as defined in Route Refresh Capability <xref target="RFC2918"/>.</t>
        <section anchor="the-spd-tlvs-within-an-as">
          <name>The SPD TLVs within an AS</name>
          <t>The SPD TLV carries the information that the Source Path Discovery process needed. 
This type of TLVs are used in SPD process within an AS. The format is shown below:</t>
          <figure>
            <name>SPD TLV format</name>
            <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)   |   SubType (1)  |            Length (2)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Sequence Number (4)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Origin router-id (4)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Optional Data Length (2)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Optional Data (variable)               |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          Dest List (variable)                 |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The meaning of these fields are as follows:</t>
          <ul spacing="normal">
            <li>Type: TLV Type, the value is 2 for SPD TLV.</li>
            <li>SubType: TLV Sub-Type, value is 1 for SPD TLV within an AS.</li>
            <li>Length: The length of the SPD TLV value, the Type, SubType and Length fields are excluded.</li>
            <li>Sequence Number: Indicates the sequence of Source Path Discovery process. The initial value is 0 and the value increases monotonically.</li>
            <li>Origin router-id: The router ID of the originating node of the Source Path Discovery process.</li>
            <li>Optional Data Length: The length of the optional data field in bytes. The value can be 0 when there is no optional data.</li>
            <li>Optional Data: In Sub-TLV format, see Section 5.3.2 for details.</li>
            <li>Dest List: List of destination router-ids, using 4-bytes route-id, indicates the destinations of this Source Path Discovery process.</li>
          </ul>
        </section>
        <section anchor="the-spd-tlvs-between-ases">
          <name>The SPD TLVs between ASes</name>
          <t>This type of TLVs are used in SPD process between ASes.
SubType value is 2 for SPD TLV between ASes.
The details are TBD.</t>
        </section>
        <section anchor="the-spd-optional-data-sub-tlvs">
          <name>The SPD Optional Data Sub-TLVs</name>
          <t>Information in the Optional Data field of the SPD TLV is encoded in Sub-TLV format.  The format is shown below and applies to all types of Sub-TLVs. Each type of Sub-TLV <bcp14>SHOULD</bcp14> appear no more than once in an SPD TLV.</t>
          <figure>
            <name>SPD Optional Data Sub-TLV format</name>
            <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 (2)   |             Length (2)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         values (variable)                     |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The meaning of these fields are as follows:</t>
          <ul spacing="normal">
            <li>Type: Sub-TLV Type. The value 1 and 2 have been taken. The sequence of values is TBD and requires IANA registration as specified in Section 9.</li>
            <li>Length: The length of the Sub-TLV value, the Type and Length fields are excluded.</li>
          </ul>
          <section anchor="sub-tlv-type-1-origin-router-id-list">
            <name>Sub-TLV Type 1: Origin Router-id List</name>
            <t>List of agent original router-ids, using 4-bytes route-id. This information is used in the SPD convergence process and can carry a maximum of 254 router-ids.</t>
          </section>
          <section anchor="sub-tlv-type-2-path-router-id-list">
            <name>Sub-TLV Type 2: Path Router-id List</name>
            <t>List of path router-ids, using 4-bytes route-id, record all the router-id of the routers that the SPD process has passed through. This information is used to prevent loops and can carry a maximum of 254 router-ids.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-dp">
      <name>Decision Process with BGP SAVNET</name>
      <t>The Decision Process described in <xref target="RFC4271"/> works to determines a degree of preference among routes with the same prefix. The Decision Process involves many BGP Path attributes, which are not necessary for BGP SAVNET SPA and SPD process, such as next-hop attributes and IGP-metric attributes. Therefore, this document introduces a simplified Decision Process for SAVNET SAFI.</t>
      <t>The purpose of SPA is to maintain a uniform Source Prefix list, which is the mapping from original router-id to IP addresses, across all routers in the deploy domain. To ensure this, it is <bcp14>RECOMMENDED</bcp14> that all routers deploy no ingress or egress route-policies.</t>
      <section anchor="bgp-savnet-nlri-selection">
        <name>BGP SAVNET NLRI Selection</name>
        <t>The Decision Process described in <xref target="RFC4271"/> no longer apply, and the Decision Process for BGP SAVNET NLRI are as follows:</t>
        <ol spacing="normal" type="1"><li>The locally imported route is preferred over the route received from a peer.</li>
          <li>The route received from a peer with the numerically larger originator is preferred.</li>
          <li>The route received from a peer with the numerically larger Peer IP Address is preferred.</li>
        </ol>
        <section anchor="self-originated-nlri">
          <name>Self-Originated NLRI</name>
          <t>BGP SAVNET NLRI with origin router-id matching the local router-id is considered self-originated. All locally imported routes should be considered self-originated by default.</t>
          <t>Since the origin router-id is part of the NLRI key, it is very unlikely that a self-originated NLRI would be received from a peer. Unless a router-id conflict occurs due to incorrect configuration. In this case, the self-originated NLRI <bcp14>MUST</bcp14> be discarded upon the receiver, and appropriate error logging is <bcp14>RECOMMENDED</bcp14>.</t>
          <t>On the other hand, besides the route learn from peers, a BGP SAVNET speaker <bcp14>MUST NOT</bcp14> advertise NLRI which is not self-originated.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-error">
      <name>Error Handling</name>
      <section anchor="process-of-bgp-savnet-nlris">
        <name>Process of BGP SAVNET NLRIs</name>
        <t>When a BGP SAVNET speaker receives a BGP Update containing a malformed MP_REACH_NLRI or MP_UNREACH_NLRI, it <bcp14>MUST</bcp14> ignore the received TLV and <bcp14>MUST NOT</bcp14> pass it to other BGP peers. When discarding a malformed TLV, a BGP SAVNET speaker <bcp14>MAY</bcp14> log a specific error.</t>
        <t>If duplicate NLRIs exist in a MP_REACH_NLRI or MP_UNREACH_NLRI attribute, only the last one <bcp14>SHOULD</bcp14> be used.</t>
      </section>
      <section anchor="process-of-bgp-savnet-spa-tlvs">
        <name>Process of BGP SAVNET SPA TLVs</name>
        <t>When a BGP SAVNET speaker receives an SPA TLV with an undefined type, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives an SPA TLV with a 0 origin router-id, or the origin router-id is the same as the local router-id, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives an SPA TLV with an invalid MaskLen field, which is out of the range 1~32 for IPv4 and 1~128 for IPv6, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives an SPA TLV with an address field, whose length in bytes do not match with the remaining data, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives a malformed SPA TLV, it <bcp14>MUST</bcp14> ignore the received TLV and <bcp14>MUST NOT</bcp14> pass it to other BGP peers. When discarding a malformed TLV, a BGP SAVNET speaker <bcp14>MAY</bcp14> log a specific error.</t>
      </section>
      <section anchor="process-of-bgp-savnet-refresh">
        <name>Process of BGP SAVNET Refresh</name>
        <t>Each BGP Refresh message <bcp14>MUST</bcp14> contain at most one SPD TLV. When a BGP SAVNET speaker receives a BGP Refresh packet with multiple SPD TLVs, only the first one <bcp14>SHOULD</bcp14> be processed.</t>
      </section>
      <section anchor="process-of-bgp-savnet-spd-tlvs">
        <name>Process of BGP SAVNET SPD TLVs</name>
        <t>When a BGP SAVNET speaker receives an SPD TLV with an undefined type or subtype, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives an SPD TLV with a 0 origin router-id, or the origin router-id is the same as the local router-id, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives an SPD TLV with an optional data sub-TLV that is an undefined type, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives an SPD TLV with a DestList field that is not a multiple of 4 in length, it <bcp14>MUST</bcp14> be considered malformed.</t>
        <t>When a BGP SAVNET speaker receives a Refresh message with a malformed SPD TLV, it <bcp14>MUST</bcp14> ignore the received message. When discarding a malformed message, a BGP SAVNET speaker <bcp14>MAY</bcp14> log a specific error.</t>
        <t>When a BGP SAVNET speaker receives an SPD TLV with a sequence number that does not match the local recorded sequence number:</t>
        <ul spacing="normal">
          <li>If the newly received sequence number is numerically larger, the local recorded sequence number <bcp14>SHOULD</bcp14> be updated to the newly received sequence number.</li>
          <li>If the newly received sequence number is numerically smaller, the local recorded sequence number <bcp14>SHOULD NOT</bcp14> be updated, and the BGP SAVNET speaker <bcp14>SHOULD</bcp14> log a specific error.</li>
        </ul>
      </section>
    </section>
    <section anchor="sec-manage">
      <name>Management Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>The BGP SAVNET SAFIs under the IPv4 address family and the IPv6 address family need to be allocated by IANA.</t>
    </section>
    <section anchor="sec-security">
      <name>Security Considerations</name>
      <t>This document does not introduce any new security considerations.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2918" target="https://www.rfc-editor.org/info/rfc2918" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2918.xml">
          <front>
            <title>Route Refresh Capability for BGP-4</title>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="September" year="2000"/>
            <abstract>
              <t>This document defines a new Border Gateway Protocol (BGP) capability termed 'Route Refresh Capability', which would allow the dynamic exchange of route refresh request between BGP speakers and subsequent re-advertisement of the respective Adj-RIB-Out. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2918"/>
          <seriesInfo name="DOI" value="10.17487/RFC2918"/>
        </reference>
        <reference anchor="RFC4760" target="https://www.rfc-editor.org/info/rfc4760" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.).  The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC5492" target="https://www.rfc-editor.org/info/rfc5492" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5492.xml">
          <front>
            <title>Capabilities Advertisement with BGP-4</title>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <date month="February" year="2009"/>
            <abstract>
              <t>This document defines an Optional Parameter, called Capabilities, that is expected to facilitate the introduction of new capabilities in the Border Gateway Protocol (BGP) by providing graceful capability advertisement without requiring that BGP peering be terminated.</t>
              <t>This document obsoletes RFC 3392. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5492"/>
          <seriesInfo name="DOI" value="10.17487/RFC5492"/>
        </reference>
        <reference anchor="I-D.li-savnet-intra-domain-architecture" target="https://datatracker.ietf.org/doc/html/draft-li-savnet-intra-domain-architecture-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.li-savnet-intra-domain-architecture.xml">
          <front>
            <title>Intra-domain Source Address Validation (SAVNET) Architecture</title>
            <author fullname="Dan Li" initials="D." surname="Li">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Jianping Wu" initials="J." surname="Wu">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Mingqing Huang" initials="M." surname="Huang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Li Chen" initials="L." surname="Chen">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <author fullname="Lancheng Qin" initials="L." surname="Qin">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Fang Gao" initials="F." surname="Gao">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <date day="12" month="March" year="2023"/>
            <abstract>
              <t>Intra-domain source address validation (SAV) plays an important role in defending against source address spoofing attacks in intra-domain networks. This document proposes an intra-domain source address validation (intra-domain SAVNET) architecture. Under the architecture, a router can automatically generate accurate SAV rules based on the SAV-related information from multiple information sources. This document does not specify protocols or protocol extensions, instead focusing on architectural components and their functionalities in an intra-domain SAVNET deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-li-savnet-intra-domain-architecture-01"/>
        </reference>
        <reference anchor="I-D.wu-savnet-inter-domain-architecture" target="https://datatracker.ietf.org/doc/html/draft-wu-savnet-inter-domain-architecture-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.wu-savnet-inter-domain-architecture.xml">
          <front>
            <title>Inter-domain Source Address Validation (SAVNET) Architecture</title>
            <author fullname="Jianping Wu" initials="J." surname="Wu">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Dan Li" initials="D." surname="Li">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Mingqing Huang" initials="M." surname="Huang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Li Chen" initials="L." surname="Chen">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <author fullname="Libin Liu" initials="L." surname="Liu">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <author fullname="Lancheng Qin" initials="L." surname="Qin">
              <organization>Tsinghua University</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>Source address validation (SAV) is critical to preventing attacks based on source IP address spoofing. The proposed inter-domain SAVNET architecture enables an AS to generate SAV rules based on SAV- related information from multiple sources. This architecture integrates existing SAV mechanisms and offers ample design space for new SAV mechanisms. The document focuses on architectural components and SAV-related information in an inter-domain SAVNET deployment, without specifying any protocols or protocol extensions.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wu-savnet-inter-domain-architecture-01"/>
        </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>
        <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC6959" target="https://www.rfc-editor.org/info/rfc6959" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6959.xml">
          <front>
            <title>Source Address Validation Improvement (SAVI) Threat Scope</title>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="J. Halpern" initials="J." surname="Halpern"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>The Source Address Validation Improvement (SAVI) effort aims to complement ingress filtering with finer-grained, standardized IP source address validation.  This document describes threats enabled by IP source address spoofing both in the global and finer-grained context, describes currently available solutions and challenges, and provides a starting point analysis for finer-grained (host granularity) anti-spoofing work.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6959"/>
          <seriesInfo name="DOI" value="10.17487/RFC6959"/>
        </reference>
        <reference anchor="RFC3704" target="https://www.rfc-editor.org/info/rfc3704" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3704.xml">
          <front>
            <title>Ingress Filtering for Multihomed Networks</title>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>BCP 38, RFC 2827, is designed to limit the impact of distributed denial of service attacks, by denying traffic with spoofed addresses access to the network, and to help ensure that traffic is traceable to its correct source network.  As a side effect of protecting the Internet against such attacks, the network implementing the solution also protects itself from this and other attacks, such as spoofed management access to networking equipment.  There are cases when this may create problems, e.g., with multihoming.  This document describes the current ingress filtering operational mechanisms, examines generic issues related to ingress filtering, and delves into the effects on multihoming in particular.  This memo updates RFC 2827.  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="84"/>
          <seriesInfo name="RFC" value="3704"/>
          <seriesInfo name="DOI" value="10.17487/RFC3704"/>
        </reference>
        <reference anchor="RFC8704" target="https://www.rfc-editor.org/info/rfc8704" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8704.xml">
          <front>
            <title>Enhanced Feasible-Path Unicast Reverse Path Forwarding</title>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <author fullname="D. Montgomery" initials="D." surname="Montgomery"/>
            <author fullname="J. Haas" initials="J." surname="Haas"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document identifies a need for and proposes improvement of the unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) for detection and mitigation of source address spoofing (see BCP 38).  Strict uRPF is inflexible about directionality, the loose uRPF is oblivious to directionality, and the current feasible-path uRPF attempts to strike a balance between the two (see RFC 3704).  However, as shown in this document, the existing feasible-path uRPF still has shortcomings.  This document describes enhanced feasible-path uRPF (EFP-uRPF) techniques that are more flexible (in a meaningful way) about directionality than the feasible-path uRPF (RFC 3704).  The proposed EFP-uRPF methods aim to significantly reduce false positives regarding invalid detection in source address validation (SAV).  Hence, they can potentially alleviate ISPs' concerns about the possibility of disrupting service for their customers and encourage greater deployment of uRPF techniques.  This document updates RFC 3704.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="84"/>
          <seriesInfo name="RFC" value="8704"/>
          <seriesInfo name="DOI" value="10.17487/RFC8704"/>
        </reference>
        <reference anchor="I-D.li-savnet-intra-domain-problem-statement" target="https://datatracker.ietf.org/doc/html/draft-li-savnet-intra-domain-problem-statement-07" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.li-savnet-intra-domain-problem-statement.xml">
          <front>
            <title>Source Address Validation in Intra-domain Networks Gap Analysis, Problem Statement, and Requirements</title>
            <author fullname="Dan Li" initials="D." surname="Li">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Jianping Wu" initials="J." surname="Wu">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Lancheng Qin" initials="L." surname="Qin">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Mingqing Huang" initials="M." surname="Huang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <date day="11" month="March" year="2023"/>
            <abstract>
              <t>This document provides the gap analysis of existing intra-domain source address validation mechanisms, describes the fundamental problems, and defines the requirements for technical improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-li-savnet-intra-domain-problem-statement-07"/>
        </reference>
        <reference anchor="I-D.wu-savnet-inter-domain-problem-statement" target="https://datatracker.ietf.org/doc/html/draft-wu-savnet-inter-domain-problem-statement-06" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.wu-savnet-inter-domain-problem-statement.xml">
          <front>
            <title>Source Address Validation in Inter-domain Networks Gap Analysis, Problem Statement, and Requirements</title>
            <author fullname="Jianping Wu" initials="J." surname="Wu">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Dan Li" initials="D." surname="Li">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Libin Liu" initials="L." surname="Liu">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <author fullname="Mingqing Huang" initials="M." surname="Huang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <date day="4" month="March" year="2023"/>
            <abstract>
              <t>This document provides the gap analysis of existing inter-domain source address validation mechanisms, describes the fundamental problems, and defines the requirements for technical improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wu-savnet-inter-domain-problem-statement-06"/>
        </reference>
        <reference anchor="I-D.huang-savnet-sav-table" target="https://datatracker.ietf.org/doc/html/draft-huang-savnet-sav-table-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.huang-savnet-sav-table.xml">
          <front>
            <title>Source Address Validation Table Abstraction and Application</title>
            <author fullname="Mingqing Huang" initials="M." surname="Huang">
              <organization>Huawei</organization>
            </author>
            <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Dan Li" initials="D." surname="Li">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <author fullname="Mingxing Liu" initials="" surname="Liu">
              <organization>Huawei</organization>
            </author>
            <author fullname="Li Chen" initials="L." surname="Chen">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <date day="6" month="March" year="2023"/>
            <abstract>
              <t>Source address validation (SAV) table consists of SAV rules that are manually configured or automatically generated. The table will take effect in data plane for checking the validity of source addresses. SAV mechanisms may enable SAV tables in data plane using different methods (e.g., ACL or FIB), and these tables are suitable for different application scenarios. This document aims to provide a systematic view of existing SAV tables, which makes it convenient for engineers or operators to improve existing SAV mechanisms or properly apply SAV on routers. The document first examines existing forms of SAV tables and provides a unified abstraction. Then, three validation modes are concluded as well as suggestions for application scenarios. Finally, diversified actions for each validity state are introduced for compliance of different operation requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huang-savnet-sav-table-01"/>
        </reference>
        <reference anchor="manrs-antispoofing" target="https://www.manrs.org/netops/guide/antispoofing">
          <front>
            <title>MANRS Implementation Guide</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="January"/>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
