<?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.7.2 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-geng-idr-bgp-savnet-02" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <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-02"/>
    <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="Li" fullname="Zhenbin Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>lizhenbin@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>
    <author initials="D." surname="Li" fullname="Dan Li">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>tolidan@tsinghua.edu.cn</email>
      </address>
    </author>
    <author initials="F." surname="Gao" fullname="Fang Gao">
      <organization>Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gaofang@zgclab.edu.cn</email>
      </address>
    </author>
    <date year="2023" month="November" day="06"/>
    <area>Routing</area>
    <workgroup>IDR</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 83?>

<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 edge/border routers automatically generate accurate SAV rules. These rules construct a validation boundary for the network and help check the validity of incoming data packets.</t>
    </abstract>
  </front>
  <middle>
    <?line 87?>

<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.ietf-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.ietf-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 with reduced operational 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>
        <?line -18?>

</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-and-goals">
        <name>Application Scenarios and Goals</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 enable SAV in data plane. There are generally two kinds of scenarios:</t>
        <ul spacing="normal">
          <li>
            <t>SAV for protecting internal source prefixes. SAV can be deployed at '*' or '#' to prevent local customer networks (subnets or stub ASes) from generating source address spoofed packets and to block external packets with internal source addresses. SAV rules are generated without any cooperations or interactions (such as prefix advertisements) between the local AS and subnets/other ASes.</t>
          </li>
          <li>
            <t>SAV for protecting remote source prefixes. SAV can be deployed at '#' for blocking the source addresses of packets coming from unwanted directions (i.e., coming from unwanted neighbor ASes). Cooperations or interactions between the local AS and other ASes are required.</t>
          </li>
        </ul>
        <figure anchor="fig-goal">
          <name>BGP SAVNET application scenarios</name>
          <artwork><![CDATA[
        +-----+           +-----+
        | AS1 |           | AS2 |
        +-----+           +-----+
             \             /
+-------------\-----------/-------------+
| AS3        +-#--+   +--#-+            |
|            | R7 |---| R8 |            |
|            +----+   +----+            |
|              |         |              |
|            +----+   +----+            |
|      ------| R5 |---| R6 |------      |
|      |     +----+   +----+     |      |
|      |       |         |       |      |
|   +----+   +----+   +----+   +----+   |
|   | R1 |   | R2 |---| R3 |   | R4 |   |
|   +--*-+   +-*--+   +--#-+   +-#--+   |
+-------\-----/-----------\-----/-------+
       +-------+          +-----+
       |Subnet1|          | AS4 |
       +-------+          +-----+
]]></artwork>
        </figure>
      </section>
      <section anchor="sav-for-protecting-internal-source-prefixes">
        <name>SAV for Protecting Internal Source Prefixes</name>
        <t><xref target="fig-goal-edge"/> shows a comprehensive example of application scenarios which includes different kinds of external interfaces. On the edge routers that connect to customers, BGP SAVNET can be enabled at access interfaces for validating outbound packets from subnets or stub ASes. On the border router, BGP SAVENT also can be applied at the external interfaces for validating the inbound packets from the Internet.</t>
        <figure anchor="fig-goal-edge">
          <name>BGP SAVNET application scenarios</name>
          <artwork><![CDATA[
+-----------------------------------------+
|               Internet                  |
+-----------------------------------------+
              |      |                |
              |      |                |
+-------------+------+----------------+---+
| AS          |      |                |   |
|       Intf.6|      |Intf.7          |   |
|           +-*------*-+              |   |
|           | Router 3 |              |   |
|           +----------+              |   |
|              /     \                |   |
|             /       \               |   |
|            /         \              |   |
|   +----------+     +----------+     |   |
|   | Router 1 |     | Router 2 |     |   |
|   +--#-----#-+     +-#--#--*--+     |   |
|Intf.1|Intf.2\ Intf.3/   |   \Intf.5 |   |
|      |       \     /  Intf.4 \      |   |
|      |        \   /     |     \     |   |
|   Subnet1    Subnet2    |      Subnet3  |
|                         |               |
+-------------------------+---------------+
                          |
                          |
                   +-------------+
                   |   Stub AS   |
                   +-------------+

intf '#': Mode "Interface-based prefix allowlist"
intf '*': Mode "Interface-based prefix blocklist"

]]></artwork>
        </figure>
        <t>In general, there are four types of external interface:</t>
        <ul spacing="normal">
          <li>
            <t>Single-homing interface. When a customer network has only one uplink connects to the upper-layer network, the connected interface at the edge of upper-layer network can be defined as a "Sigle-homing interface", which corresponds to Intf.1 and Intf.4 in <xref target="fig-goal-edge"/>.</t>
          </li>
          <li>
            <t>Complete Multi-homing interface. When a customer network has dual or multiple uplinks that connect to a single upper-layer network with BGP SAVNET deployed, the connected interfaces at the edge router of upper-layer network are called "Complete Multi-homing interface", which corresponds to Intf.2 and Intf.3 in <xref target="fig-goal-edge"/>.</t>
          </li>
          <li>
            <t>Incomplete multi-homing interface. when a customer network has dual or multiple uplinks, all of which are not connected to a single upper-layer network, the interfaces at the edge of upper-layer network are called the "Incomplete Multi-homing interface", which corresponds to Intf.5 in <xref target="fig-goal-edge"/>. Specifically, Incomplete Multi-home interface exists in circumstances where source prefixes cannot be fully acknowledged, such as when only a portion of interfaces in upper-layer AS is BGP SAVNET enabled, or these interfaces belong to different upper-layer ASes.</t>
          </li>
          <li>
            <t>Internet interface. It’s the external interfaces that connected to the Internet on border routers. Typically, a network contains multiple internet interfaces for load balancing, which corresponds to Intf.6 and Intf.7 as shown in <xref target="fig-goal-edge"/>.</t>
          </li>
        </ul>
        <t>In order to perform accurate validation on different types of external interface, two typical modes are provided: "Interface-based prefix allowlist" and "Interface-based prefix blocklist" <xref target="I-D.huang-savnet-sav-table"/>. For interfaces that can learn all its legitimate source prefixes, the" Interface-based prefix allowlist" mode is recommended. For interfaces that cannot learn all its legitimate source prefixes, but in turns know the source prefixes that are surely not allowed, the "Interface-based prefix blocklist" mode is suitable.</t>
        <t>For the first two type of interfaces in the example scenario shown in <xref target="fig-goal-edge"/>, which are defined as "Single-homing interface" and "Complete Multi-homing interface", the "Interface-based prefix allowlist" mode is suitable. In this case, the allowlist should contain all source prefixes of the connected subnets or stub ASes. The key challenge to fulfill a complete list is to solve asymmetric routing problem in multi-homing scenarios, and the legacy uRPF approach is not sufficient.</t>
        <t>For the last two types of interfaces in the example scenario, which are defined as "Incomplete multi-homing interface" and "Internet interface", the "Interface-based prefix blocklist" mode is suitable. For a specific interface, its blocklist could contain the prefixes that are learned from other interfaces, such as "Single-homing interface" or "Complete Multi-homing interface". The key challenge in this case is how to maintain the source prefixes blocklist dynamically and efficiently.</t>
        <t>To address these two challenges mentioned above, BGP SAVNET is introduced in this document. The primary idea is to allow routers to advertise SAV-related information on the control plane, thus automatically generate accurate SAV rules on the data plane. The information advertised by BGP SAVNET requires to be concise and efficient.</t>
        <t>The main goal is to generate source prefixes allowlist/blocklist on border routers or edge routers. The corresponding solution consists of one major process, which is named Source Prefix Advertisement (SPA). During the SPA procedure, the router will advertise its local source prefixes information with the MIIG-type, MIIG-tag, and Prefix attributes:</t>
        <ul spacing="normal">
          <li>
            <t>BGP SAVNET defines the Multi-homing Interface Group Type (MIIG-Type) to indicate the exact type of each external interface, which should be one of the four types mentioned above. MIIG-type determines the local validation mode of the interface (i.e., interface-based prefix allowlist/blocklist), and also assists remote peer route in generating prefixes allowlist/blocklist.</t>
          </li>
          <li>
            <t>BGP SAVNET defines the Multi-homing Interface Group Tag (MIIG-Tag) to identify customers. It is an identifier that represents a customer subnet, a lower-layer stub AS or the internet. In the design, different customer subnets/stub ASes use different MIIG-tag values, while the internet usually takes the same MIIG-tag value.</t>
          </li>
          <li>
            <t>In BGP SAVENT, the MIIG-Type and MIIT-Tag work together to generate source prefixes list on remote peer routers. On the remote router, source prefixes in SPA message that take the same MIIG-Type and same MIIT-Tag value as one of its local interfaces, will be recognized as legitimate prefixes of that interface.</t>
          </li>
          <li>
            <t>BGP SAVNET also defines the "Prefix attribute" to indicate the "Source" and "Dest" type of a prefix. "Source" attribute represents whether all origin interfaces of the prefix are known and learned. "Dest" attribute indicates whether route for this prefix exists in local RIB of this SPA advertising router. "Prefix Attribute" values are determined by the "MIIT-Type" of the prefixes in typical cases. For example, prefixes belonging to "Single-homing interface" and "Complete Multi-homing interface" will take both "Source" type value and "Dest" type value, while prefixes of "Incomplete multi-homing interface" and "Internet interface" are only assigned "Dest" type value. However, in same special cases, the prefix attribute value needs to be specified. For example, in the direct server return (DSR) scenario <xref target="I-D.wu-savnet-inter-domain-problem-statement"/>, the hidden prefix should be a "Source" type prefix but not a "Dest" type prefix, as it’s not a reachable prefix in local routing table. Normally, the "Prefix attribute" value is set manually in this special hidden prefix scenario.</t>
          </li>
        </ul>
        <t>Routers will announce the source prefixes within the above attribute values via SPA messages. In "Single-homing interface" and "Complete Multi-homing interface" scenarios, the router should advertise all prefixes of this interface. In the other scenarios, the prefixes could be determined to be published or not on the local router.</t>
        <t>Routers with "Single-homing interface" or "Complete Multi-homing interface" will generate "Interface-based prefix allowlist", and the building approach of the allowlist is different in these two scenarios.
In the case of "Single-homing interface", the allowlist can be generated only through local routing information (local RIB), without the engagement of SPA message. The method building the allowlist is, each Dest Prefix in RIB that records this interface as an outgoing interface will be added to the" Interface-based prefix allowlist".
In the case of "Complete Multi-homing interface", in addition to collecting prefixes of the interface itself in local RIB, routers also need merge prefixes from received SPA message or other local interfaces into allowlist to construct a complete list. First, the prefixes in received SPA, which take the same "MIIG-Type" and "MIIG-Tag" values as the local interface, are added to the allowlist. Second, if there are multiple interfaces having the same "MIIG-Type" and "MIIG-Tag" values, they will share prefixes collected from local RIB into each other’s allowlist.</t>
        <t>Routers with "Incomplete Multi-homing interface" or "Internet interface" will generate "Interface-based prefix blocklist" for the interface. Generally, the interface-based blocklist contains prefixes that surely not enter this interface. To construct the blocklist, there are three types of situations need to be taken into consideration separately. First, the local prefixes of other "Single-homing interface" or "Complete Multi-homing interface" on the same router could be recorded into the blocklist. Second, the prefixes in received SPA message, which belongs to the remote "Single-homing interface" or "Complete Multi-homing interface", also could be added into the blocklist. Third, the prefixes from any scenario taking the "source" type attribute which may be manually configured or set by RTBH, also can be added into the blocklist, even if the prefixes belong to the "Incomplete Multi-homing interface" or "Internet interface".</t>
      </section>
      <section anchor="sav-for-protecting-remote-source-prefixes">
        <name>SAV for Protecting Remote Source Prefixes</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 can contain the complete set of source prefixes of AS Y or only the own source prefixes that need to be protected. Some hidden source prefixes that do not appear can also be advertised to AS X through SPA messages. Note that, there should be ROAs covering the prefixes of AS Y, and AS X should conduct ROV on AS Y's 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.</t>
        <t>Validation AS BGP SAVNET can provide services such as 1) proactive SAV for customer's prefixes, 2) reactive source address filtering for mitigating DDoS suffered by customers, 3) key source address forwarding path protection (i.e., keeping control plane and data plane paths consistent).</t>
        <t>The above solution has good deployability, i.e., any pair of ASes can upgrade and work well, and good convergence, i.e., 1) similar propagation speed to route and 2) supporting independent and incremental update (no need to wait for complete information). Besides, the trust model is simple, and the communication between source AS and validation AS can be protected by TLS.</t>
      </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/border 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="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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RouteType (1) |   Length (1)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Origin router-id (4)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  MaskLen (1)  |        IP Prefix (variable)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MIIG-Type (1) | Flags (1) |D|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         MIIG-Tag (4)                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The meaning of these fields are as follows:</t>
          <ul spacing="normal">
            <li>
              <t>RouteType(key): Type of the BGP SAVNET NLRI TLV, the value is 1 for SPA TLV within an AS.</t>
            </li>
            <li>
              <t>Length: The length of the BGP SAVNET NLRI value, the RouteType and Length fields are excluded.</t>
            </li>
            <li>
              <t>Origin router-id(key): The router ID of the originating node of the source prefix in the deployment domain.</t>
            </li>
            <li>
              <t>MaskLen(key): The mask length in bits, which also indicates the valid bits of the IP Prefix field.</t>
            </li>
            <li>
              <t>IP Prefix(key): IP address. The length ranges from 1 to 4 bytes for IPv4 and ranges from 1 to 16 bytes for IPv6. Format is consistent with BGP IPv4/IPv6 unicast address.</t>
            </li>
            <li>
              <t>MIIG-Type(non-key): Multi-homing Ingress Interface Group type, see <xref target="sec-miig-type"/> for details.</t>
            </li>
            <li>
              <t>Flags(non-key): Bitmap, indicating the attribute flag of the SPA prefix, currently taken:
              </t>
              <ul spacing="normal">
                <li>
                  <t>bit 0(S bit) : source flag, indicates that the SPA prefix can be used as a source prefix.</t>
                </li>
                <li>
                  <t>bit 1(D bit) : dest flag, indicates that the SPA prefix can be used as a destination prefix.</t>
                </li>
              </ul>
            </li>
            <li>
              <t>MIIG-Tag(non-key): Multi-homing Ingress Interface Group Tag. The value ranges from 1 to 0xFFFFFFFF. The value 0 is invalid and the value 0xFFFFFFFF is reserved.</t>
            </li>
          </ul>
          <section anchor="sec-miig-type">
            <name>Multi-homing Ingress Interface Group Type</name>
            <ul spacing="normal">
              <li>
                <t>Type value 0: Unknown. Indicates that this prefix does not come from any subnets. It can be a local prefix or a local domain prefix.</t>
              </li>
              <li>
                <t>Type value 1: Single-homed. Indicates that this prefix comes from a subnet that is single-homed to the local domain.</t>
              </li>
              <li>
                <t>Type value 2: Complete-multi-homed. Indicates that this prefix comes from a subnet that is multi-homed to the local domain, and is connected only to the local domain.</t>
              </li>
              <li>
                <t>Type value 3: Incomplete-multi-homed. Indicates that this prefix comes from a subnet that is multi-homed to the local domain and and other domains.</t>
              </li>
              <li>
                <t>Type value 4: Internet-Ingress. Indicates that this prefix comes from a interface that is connected to the Internet.</t>
              </li>
              <li>
                <t>Type value 5~255: Reserved for future use.</t>
              </li>
            </ul>
          </section>
        </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.</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RouteType (1) |   Length (1)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source AS Number (4)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  MaskLen (1)  |        IP Prefix (variable)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Flags (1)    |
+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The meaning of these fields are as follows:</t>
          <ul spacing="normal">
            <li>
              <t>RouteType(key): Type of the BGP SAVNET NLRI TLV, the value is 2 for SPA TLV between ASes.</t>
            </li>
            <li>
              <t>Length: The length of the BGP SAVNET NLRI value, the RouteType and Length fields are excluded.</t>
            </li>
            <li>
              <t>Source AS Number(key): The AS number of the originating AS of this advertised source prefix.</t>
            </li>
            <li>
              <t>MaskLen(key): The mask length in bits, which also indicates the valid bits of the IP Prefix field.</t>
            </li>
            <li>
              <t>IP Prefix(key): IP address. The length ranges from 1 to 4 bytes for IPv4 and ranges from 1 to 16 bytes for IPv6. Format is consistent with BGP IPv4/IPv6 unicast address.</t>
            </li>
            <li>
              <t>Flags(non-key): Reserved for future use.</t>
            </li>
          </ul>
        </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)          |  Subtype (1)  |     SAFI (1)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       SPD TLV (variable)                      |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>The AFI field is either 1 (IPv4) or 2 (IPv6). The SAFI field is the newly defined SAVNET SAFI. The Subtype field should be a new value assigned to SAVNET <xref target="RFC7313"/>. 
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-between-ases">
          <name>The SPD TLVs between ASes</name>
          <t>This type of TLVs are used in SPD process between ASes.</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)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source AS Number (4)                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Validation AS Number (4)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Optional Data Length (2)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Optional Data (variable)               |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Neighbor AS Number List (variable)        |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The meaning of these fields are as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Type: TLV Type, the value is 2 for SPD TLV.</t>
            </li>
            <li>
              <t>SubType: TLV Sub-Type, value is 2 for SPD TLV between an AS.</t>
            </li>
            <li>
              <t>Length: The length of the SPD TLV value, the Type, SubType and Length fields are excluded.</t>
            </li>
            <li>
              <t>Sequence Number: Indicates the sequence of Source Path Discovery process. The initial value is 0 and the value increases monotonically.</t>
            </li>
            <li>
              <t>Origin router-id: The router ID of the originating node of the Source Path Discovery process.</t>
            </li>
            <li>
              <t>Source AS Number(key): The AS number of the source AS whose source prefixes need to be validated in the validation AS.</t>
            </li>
            <li>
              <t>Validation AS Number(key): The AS number of the validation AS who conducts validation for the source prefixes of source AS.</t>
            </li>
            <li>
              <t>Optional Data Length: The length of the optional data field in bytes. The value can be 0 when there is no optional data.</t>
            </li>
            <li>
              <t>Optional Data: Reserved for future use.</t>
            </li>
            <li>
              <t>Neighbor AS Number List: List of neighbor AS, from which the validation AS will receive the data packets with the source prefixes of the source AS.</t>
            </li>
          </ul>
        </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>
            <t>The locally imported route is preferred over the route received from a peer.</t>
          </li>
          <li>
            <t>The route received from a peer with the numerically larger originator is preferred.</t>
          </li>
          <li>
            <t>The route received from a peer with the numerically larger Peer IP Address is preferred.</t>
          </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>SHOULD</bcp14> be ignored or stored without parsing.</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 an SPA TLV with an unsupported miig-type, it <bcp14>SHOULD</bcp14> be ignored or stored without parsing.</t>
        <t>When a BGP SAVNET speaker receives an SPA TLV with a miig-type 0 (Unkonwn), its miig-tag <bcp14>MUST</bcp14> also be 0, vice versa. Otherwise this SPA TLV <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>
        <t>When a BGP SAVNET speaker processes Flags in an SPA TLV, the defined bits <bcp14>MUST</bcp14> be processed and the undefined bits <bcp14>MUST</bcp14> be ignored.</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>SHOULD</bcp14> be ignored.</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 a validation AS number, 0 source AS number, AS_TRANS number (23456), or the source AS number equals the validation AS number, 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>SHOULD</bcp14> be ignored.</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>
            <t>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.</t>
          </li>
          <li>
            <t>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.</t>
          </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>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Many thanks to the comments from Zhibin Dai, Shunwan Zhuang, etc.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-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="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 anchor="sec-informative-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="RFC7313" target="https://www.rfc-editor.org/info/rfc7313" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7313.xml">
          <front>
            <title>Enhanced Route Refresh Capability for BGP-4</title>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <author fullname="B. Venkatachalapathy" initials="B." surname="Venkatachalapathy"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>In this document, we enhance the existing BGP route refresh mechanisms to provide for the demarcation of the beginning and the ending of a route refresh. The enhancement can be used to facilitate correction of BGP Routing Information Base (RIB) inconsistencies in a non-disruptive manner. This document updates RFC 2918.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7313"/>
          <seriesInfo name="DOI" value="10.17487/RFC7313"/>
        </reference>
        <reference anchor="I-D.ietf-savnet-intra-domain-problem-statement" target="https://datatracker.ietf.org/doc/html/draft-ietf-savnet-intra-domain-problem-statement-02" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-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="17" month="August" 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-ietf-savnet-intra-domain-problem-statement-02"/>
        </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-09" 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="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>USA National Institute of Standards and Technology</organization>
            </author>
            <author fullname="Lancheng Qin" initials="L." surname="Qin">
              <organization>Tsinghua University</organization>
            </author>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <date day="27" month="June" 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-09"/>
        </reference>
        <reference anchor="I-D.huang-savnet-sav-table" target="https://datatracker.ietf.org/doc/html/draft-huang-savnet-sav-table-03" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.huang-savnet-sav-table.xml">
          <front>
            <title>General Source Address Validation Capabilities</title>
            <author fullname="Mingqing Huang" initials="M." surname="Huang">
              <organization>Huawei Technologies</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 Technologies</organization>
            </author>
            <author fullname="Mingxing Liu" initials="" surname="Liu">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Li Chen" initials="L." surname="Chen">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <author fullname="Changwang Lin" initials="C." surname="Lin">
              <organization>New H3C Technologies</organization>
            </author>
            <date day="5" month="November" year="2023"/>
            <abstract>
              <t>The SAV rules of existing source address validation (SAV) mechanisms, are derived from other core data structures, e.g., FIB-based uRPF, which are not dedicatedly designed for source filtering. Therefore there are some limitations related to deployable scenarios and traffic handling policies. To overcome these limitations, this document introduces the general SAV capabilitiies from data plane perspective. How to implement the capabilities and how to generate SAV rules are not in the scope of this document.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huang-savnet-sav-table-03"/>
        </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>
    <?line 492?>



  </back>
  <!-- ##markdown-source:
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
fyiIl40XkAAA

-->

</rfc>
