<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="exp" docName="draft-ietf-idr-vpn-prefix-orf-18"
     ipr="trust200902">
  <front>
    <title abbrev="RD-ORF">VPN Prefix Outbound Route Filter (VPN Prefix ORF)
    for BGP-4</title>

    <author fullname="Wei Wang" initials="W" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

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

        <email>weiwang94@foxmail.com</email>
      </address>
    </author>

    <author fullname="Aijun Wang" initials="A" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

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

        <email>wangaj3@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Haibo Wang" initials="H" surname="Wang">
      <organization>Huawei Technologies</organization>

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

          <city>Beijing</city>

          <region>Beijing</region>

          <code>100095</code>

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

        <phone/>

        <facsimile/>

        <email>rainsword.wang@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Gyan S. Mishra" initials="G" surname="Mishra">
      <organization>Verizon Inc.</organization>

      <address>
        <postal>
          <street>13101 Columbia Pike</street>

          <city>Silver Spring</city>

          <region/>

          <code>MD 20904</code>

          <country>United States of America</country>
        </postal>

        <facsimile/>

        <email>gyan.s.mishra@verizon.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Jie Dong" initials="J" surname="Dong">
      <organization>Huawei Technologies</organization>

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

          <city>Beijing</city>

          <region>Beijing</region>

          <code>100095</code>

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

        <phone/>

        <facsimile/>

        <email>jie.dong@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="22" month="July" year="2025"/>

    <area>RTG Area</area>

    <workgroup>IDR Working Group</workgroup>

    <keyword>RFC</keyword>

    <abstract>
      <t>This draft defines a new type of Outbound Route Filter (ORF), known
      as the VPN Prefix ORF. The VPN Prefix ORF mechanism is applicable when
      VPN routes from different VRFs are exchanged through a single shared BGP
      session.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>BGP Maximum Prefix feature <xref target="RFC4486"/> is often used at
      the network boundary to control the number of prefixes to be injected
      into the network. But for some scenarios when the VPN routes from
      several VRFs are advertised via one shared BGP session, there is lack of
      appropriate methods to control the flooding of VPN routes within one VRF
      to avoid overwhelming the process of VPN routes in other VRFs, which
      consequently affects the route processing performance of other normal
      VRFs (such as route dropping, processing delays, and abnormal customer
      services). That is to say, the excessive VPN routes advertisement should
      be controlled individually for each VRF in such shared BGP session.</t>

      <t>There are several solutions can be used to alleviate this
      problem:<list style="symbols">
          <t>Route Target Constraint (RTC) as defined in <xref
          target="RFC4684"/></t>

          <t>Address Prefix ORF as defined in <xref target="RFC5292"/></t>

          <t>CP-ORF mechanism as defined in <xref target="RFC7543"/></t>

          <t>PE-CE edge peer Maximum Prefix</t>

          <t>Configure the Maximum Prefix for each VRF on edge nodes</t>
        </list></t>

      <t>However, there are limitations to existing solutions:</t>

      <t>1) Route Target Constraint</t>

      <t>RTC can only filter the VPN routes from any uninterested VRFs, if the
      &ldquo;offending routes (prefixes)&rdquo; come from an interested VRF,
      RTC mechanism can't filter them.</t>

      <t>2) Address Prefix ORF</t>

      <t>Using Address Prefix ORF to filter VPN routes requires a
      pre-configuration, but it is impossible to know in advance which prefix
      may exceed the predefined threshold.</t>

      <t>3) CP-ORF Mechanism</t>

      <t><xref target="RFC7543"/> defines the Covering Prefixes ORF (CP-ORF).
      A BGP speaker sends a CP-ORF to a peer in order to pull routes that
      cover a specified host address. A prefix covers a host address if it can
      be used to forward traffic towards that host address.</t>

      <t>CP-ORF is applicable in Virtual Hub-and-Spoke<xref target="RFC7024"/>
      VPN and also the BGP/MPLS Ethernet VPN (EVPN)<xref target="RFC7432"/>
      networks, but its main aim is get any interested VPN prefixes and can't
      be used to filter the overwhelmed VPN prefixes dynamically.</t>

      <t>4) PE-CE edge peer Maximum Prefix</t>

      <t>The BGP Maximum-Prefix feature is used to control how many prefixes
      can be received from a neighbor. By default, this feature allows a
      router to bring down a peer when the number of received prefixes from
      that peer exceeds the configured Maximum-Prefix limit. This feature is
      commonly used for external BGP peers. If it is applied to internal BGP
      peers, for example the VPN scenarios, all the VPN routes from different
      VRFs will share the common fate. If the number of VPN routes of a
      certain VPN exceeds the configured Maximum-Prefix limit, the BGP session
      will be shut down, which will effect the operation of other VPN routes
      transmitted via this BGP session.</t>

      <t>5) Configure the Maximum Prefix for each VRF on edge nodes</t>

      <t>When a VRF overflows, it stops the import of routes. Any additional
      VPN routes are held into its RIB. However, PEs still need to parse the
      incoming BGP. This will cost CPU cycles and further burden the
      overflowed PE.</t>

      <t>This draft defines a new type of Outbound Route Filter (ORF), called
      the VPN Prefix ORF. This ORF mechanism is event-driven and does not
      require pre-configuration. When the number of VPN routes in a VRF
      exceeds the prefix limit, the router will identify the VPN prefix (RD,
      RT, source PE, etc.) of the offending VPN routes in this VRF and send a
      VPN Prefix ORF message to its BGP peer, who announced these offending
      routes. The BGP speaker upon receiving a VPN Prefix ORF entry from its
      BGP peer will filter and withdraw any offending VPN routes that was
      announced to its peer.</t>

      <t>The purpose of this mechanism is to control the outage within the
      minimum range and avoid route churn effects when a VRF on a device in
      the network overflows.</t>

      <t>VPN Prefix ORF is applicable when the VPN routes from different VRFs
      are exchanged via one shared BGP session.</t>
    </section>

    <section title="Conventions used in this document">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref target="RFC2119"/>
      .</t>
    </section>

    <section title="Terminology">
      <t>The following terms are used in this draft:<list style="symbols">
          <t>RD: Route Distinguisher, defined in <xref target="RFC4364"/></t>

          <t>ORF: Outbound Route Filter, defined in <xref
          target="RFC5291"/></t>

          <t>AFI: Address Family Identifier, defined in <xref
          target="RFC4760"/></t>

          <t>SAFI: Subsequent Address Family Identifier, defined in <xref
          target="RFC4760"/></t>

          <t>EVPN: BGP/MPLS Ethernet VPN, defined in <xref
          target="RFC7432"/></t>

          <t>RR: Route Reflector, provides a simple solution to the problem of
          IBGP full mesh connection in large-scale IBGP implementation <xref
          target="RFC4456"/>.</t>

          <t>VRF: Virtual Routing Forwarding, a virtual routing table based on
          VPN instance.</t>
        </list></t>

      <t/>
    </section>

    <section title="The general procedures of VPN Prefix ORF mechanism on sender">
      <t>The operation of VPN Prefix ORF mechanism on each device is
      independent, each of them makes a local judgment to determine whether it
      needs to send a VPN Prefix ORF message to its upstream peer. Operators
      can configure the algorithms in the devices according to their own
      circumstances.</t>

      <t>This section describes the procedures for the receiving BGP peer to
      receive VPN route information from the sending BGP peer. The VPN
      information includes the updated VPN routes and their corresponding VPN
      instance identification information. Based on the VPN instance
      identification information, the receiving BGP peer determines the newly
      added VPN routes. It then checks whether the number of the newly added
      VPN routes has caused the number of total VPN routes to exceed the
      maximum route limit for the associated VPN instance.</t>

      <t>If the route limit of the VPN instance, which is identified by the
      VPN instance identification information, is reached or is exceeded, it
      will send a VPN Prefix ORF message to the sending BGP peer, indicating
      that the sending BGP peer stop sending the corresponding VPN routes
      which are identified by the VPN instance identification information.</t>

      <t>Before sending a VPN Prefix ORF entry, A sender SHOULD send a
      "default" entry to the VPN Prefix ORF receiver, to allow other allowed
      VPN prefixes pass the filter. The "default" entry should be installed in
      advance in the VPN Pefixes ORF table, with the offending VPN routes
      process method equal to 0, sequence equal to 0xFFFFFFFF, length is equal
      to 8, and Route Distinguisher is equal to 0.</t>

      <t>The receiving BGP peer and the sending BGP peer are iBGP peers within
      the same AS. The VPN instance identification information is RD and the
      instruction information is sent using ORF in the ROUTE-REFRESH
      message.</t>

      <t>The instruction information that sends from the receiving BGP peer
      includes the followings information:<list style="symbols">
          <t>The ORF entries that are included in the route-refresh
          message.</t>

          <t>Set the Action field in the ORF entries to the value that
          instructs adding the corresponding filter condition to the outbound
          route filter of the sending BGP peer.</t>

          <t>Set the Match field in the ORF entries to the value that
          instructs denying the VPN routes updates that match the
          corresponding ORF entries.</t>

          <t>The RD value that identifies the above mentioned VPN instance is
          added to the type-specific part of the ORF entries.</t>
        </list></t>

      <t>When multiple VRFs on a PE is receiving VPN routes with a specific
      RD, if one VRF exceeds its limit upon receiving routes with that RD,
      then the PE sends a VPN Prefix ORF message, which will prevent other
      VRFs that have not exceeded their limits from receiving VPN routes
      containing that RD, thereby avoiding any communication disruptions
      between these VRFs and the rejected VPN routes. In order to more finely
      control VPN routing, when not all VRFs on a PE that are interested in
      VPN routes with a specific RD exceed the limit, the PE MUST not send a
      VPN Prefix ORF entry.</t>

      <t/>

      <t>When the VPN Prefix ORF mechanism is triggered, the device SHOULD
      send an alarm information to network operators. The detail procedures
      for different scenarios are described below:</t>

      <section title="Intra-domain Scenarios and Solutions">
        <t>For intra-AS VPN deployment, there are three scenarios:<list
            style="symbols">
            <t>RD is allocated per VPN per PE, each VRF only import one RT
            (see <xref target="scenario-1"/>).</t>

            <t>RD is allocated per VPN per PE. Multiple RTs are associated
            with such VPN routes, and are imported into different VRFs in
            other devices(see <xref target="scenario-2"/>).</t>

            <t>RD is allocated per VPN, each VRF imports one/multiple RTs(see
            <xref target="scenario-3"/>).</t>
          </list></t>

        <t>The following sections will describe solutions to the above
        scenarios in detail.</t>

        <section anchor="scenario-1"
                 title="Scenario-1 and Solution (Unique RD, One RT)">
          <t>In this scenario, PE1-PE4 and RR are iBGP peers. RD is allocated
          per VPN per PE. The offending VPN routes only carry one RT. We
          assume that the network topology is shown in Figure 1.</t>

          <figure>
            <artwork><![CDATA[ +------------------------------------------------------------------------+
 |                                                                        |
 |                                                                        |
 |        +-------+                                       +-------+       |
 |        |  PE1  +----------------+    +-----------------+  PE4  |       |
 |        +-------+                |    |                 +-------+       |
 |     VPN1(RD11,RT1)              |    |              VPN2(RD12,RT2)     |
 |     VPN2(RD12,RT2)              |    |                                 |
 |                               +-+----+-+                               |
 |                               |   RR   |                               |
 |                               +-+----+-+                               |
 |                                 |    |                                 |
 |                                 |    |                                 |
 |        +-------+                |    |                 +-------+       |
 |        |  PE2  +----------------+    +-----------------+  PE3  |       |
 |        +-------+                                       +-------+       |
 |     VPN1(RD21,RT1)                                  VPN1(RD31,RT1)     |
 |     VPN2(RD22,RT2,RT1)                              VPN2(RD32,RT2)     |
 |                                                                        |
 |                                 AS 100                                 |
 |                                                                        |
 +------------------------------------------------------------------------+
                 Figure 1 Network Topology of Scenario-1
]]></artwork>
          </figure>

          <t>When PE3 sends an excessive number of VPN routes with RT1, and
          both PE1 and PE2 import VPN routes with RT1, the process of
          offending VPN routes will influence performance of VRFs on PEs. PEs
          and RR should have appropriate mechanisms to identify and control
          the advertising of offending VPN routes.</t>

          <t>a) PE1</t>

          <t>If quota value is not set on PE1, and each VRF has a prefix limit
          on PE1. When the PE1 receives VPN routes from its BGP peer, it does
          the following:<figure>
              <artwork><![CDATA[   S01. If (the prefix limit for VPN1 VRF is exceeded) {
   S02.     PE1 sends a VPN Prefix ORF message to the RR and a warning 
            message to the operator. The VPN Prefix ORF message will 
            carry the RD is set to RD31, the RT value is set to RT1, 
            the source PE is PE3. RR handles the offending VPN routes
            and controls the number of VPN routes according to the 
            value of "Offending VPN routes process method".
   S03. } else {
   S04.         PE1 should not trigger the VPN Prefix ORF mechanism, 
                and only performs VPN route filtering for the target
                VRF.
   S05. }
]]></artwork>
            </figure></t>

          <t>NOTE: When the prefix limit for VPN1 VRF is exceeded, there are
          no other VRFs on PE1 that need the VPN routes with RT1. PE1 sends a
          VPN Prefix ORF message to the RR and a warning message to the
          operator.</t>

          <t>If each &lt;RD31, source PE3&gt; tuple imported into a VRF has a
          quota, and each VRF has a prefix limit. When the PE1 receives VPN
          routes from its BGP peer, it does the following:<figure>
              <artwork><![CDATA[   S01. If (VPN routes associated with <RD31, PE3> tuple exceed the quota) {
   S02.     If (the prefix limit of VPN1 VRF is not exceeded) {
   S03.         PE1 sends a warning message to the operator, and the VPN 
                Prefix ORF mechanism should not be triggered.
   S04.     } else {
   S05.         PE1 generates a BGP ROUTE-REFRESH message containing a VPN 
                Prefix ORF entry with (RD31, source PE is PE3, RT is RT1), 
                and send the entry to RR. RR handles the offending VPN routes
                according to the value of "Offending VPN routes process method".
   S06.     }
   S07. }
]]></artwork>
            </figure></t>

          <t/>

          <t>b) PE2</t>

          <t>If quota value is not set on PE2, and each VRF has a prefix limit
          on PE2. When the PE2 receives VPN routes from its BGP peer, it does
          the following:<figure>
              <artwork><![CDATA[   S01. If (the prefix limit for VPN1 VRF is exceeded) {
   S02.     If (the prefix limit for VPN2 VRF is exceeded) {
   S03.         PE2 sends a VPN Prefix ORF message to the RR and a warning 
                message to the operator. The VPN Prefix ORF message will 
                indicate the RD set to RD31, the RT value set to RT1. RR 
                handles the offending VPN routes and controls the number
                of VPN routes according to the value of "Offending VPN 
                routes process method".
   S04.     } else {
   S05.         PE2 should not trigger the VPN Prefix ORF mechanism, and only 
                performs VPN route filtering for the target VRF.
   S06.     }
   S07. }
]]></artwork>
            </figure></t>

          <t>NOTE: PE2 cannot directly trigger the VPN Prefix ORF mechanism
          when the prefix limit of VPN1 VRF is exceeded, because VPN2 VRF
          requires the VPN routes with RT1. PE2 triggers the mechanism only
          when the prefix limits for both the VPN1 and VPN2 VRFs have been
          exceeded.</t>

          <t>If each &lt;RD31, source PE3&gt; tuple imported into a VRF has a
          quota, and each VRF has a prefix limit. When the PE2 receives VPN
          routes from its BGP peer, it does the following:<figure>
              <artwork><![CDATA[   S01. If (VPN routes associated with <RD31, PE3> tuple exceed the quota) {
   S02.     If (the prefix limit of VPN1 VRF is not exceeded) {
   S03.         PE2 sends a warning message to the operator, and the VPN 
                Prefix ORF mechanism should not be triggered.
   S04.     } else {
   S05.         If (the prefix limit of VPN2 VRF is not exceeded) {
   S06.             PE2 should not trigger the VPN Prefix ORF mechanism, and 
                    only performs VPN route filtering for the target VPN1 
                    VRF, stopping the import of VPN routes with <RD31, PE3>.
   S07.         } else {
   S08.             PE2 generates a BGP ROUTE-REFRESH message containing a 
                    VPN Prefix ORF entry with (RD31, source PE is PE3,
                    RTs are RT1 and RT2), and send the entry to RR. RR 
                    handles the offending VPN routes according to the 
                    value of "Offending VPN routes process method".
   S09.         }
   S10.     }
   S11. }
]]></artwork>
            </figure></t>

          <t/>

          <t/>
        </section>

        <section anchor="scenario-2"
                 title="Scenario-2 and Solution (Unique RD, Multiple RTs)">
          <t>In this scenario, PE1-PE4 and RR are iBGP peers. RDs are
          allocated per VPN per PE. Multiple RTs are associated with the
          offending VPN routes and are imported into different VRFs on other
          devices. We assume the network topology is depicted in Figure
          2.<figure align="center">
              <artwork><![CDATA[ +------------------------------------------------------------------------+
 |                                                                        |
 |                                                                        |
 |        +-------+                                       +-------+       |
 |        |  PE1  +----------------+    +-----------------+  PE4  |       |
 |        +-------+                |    |                 +-------+       |
 |     VPN1(RD11,RT1)              |    |              VPN2(RD42,RT2)     |
 |     VPN2(RD12,RT2)              |    |                                 |
 |                               +-+----+-+                               |
 |                               |   RR   |                               |
 |                               +-+----+-+                               |
 |                                 |    |                                 |
 |                                 |    |                                 |
 |        +-------+                |    |                 +-------+       |
 |        |  PE2  +----------------+    +-----------------+  PE3  |       |
 |        +-------+                                       +-------+       |
 |     VPN1(RD21,RT1)                                  VPN1(RD31,RT1,RT2) |
 |                                                     VPN2(RD32,RT2)     |
 |                                                                        |
 |                                 AS 100                                 |
 |                                                                        |
 +------------------------------------------------------------------------+
                Figure 2 Network Topology of Scenario-2
]]></artwork>
            </figure></t>

          <t>When PE3 sends an excessive number of VPN routes with RT1 and
          RT2, while both PE1 and PE2 import VPN routes with RT1, and PE1 also
          imports VPN routes with RT2.</t>

          <t>a) PE1</t>

          <t>If quota value is not set on PE1, and each VRF has a prefix limit
          on PE1. Since VPN2 VRF requires the VPN routes with RT1, PE1 cannot
          directly trigger VPN Prefix ORF mechanism when the prefix limit of
          VPN1 VRF is exceeded. This case is similar to PE2 without quota in
          <xref target="scenario-1"/>, which is modified as follows:</t>

          <t><figure>
              <artwork><![CDATA[   S03.         PE1 sends a VPN Prefix ORF message to the RR and a warning 
                message to the operator. The VPN Prefix ORF message will 
                indicate the RD set to RD31, the RT value set to RT1 and 
                RT2, source PE identified as PE3. RR handles the offending
                VPN routes and controls the number of VPN routes according
                to the value of "Offending VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>

          <t>If each &lt;RD31, source PE3&gt; tuple imported into a VRF has a
          quota, and each VRF has a prefix limit. This case is similar to PE2
          with quota in <xref target="scenario-1"/>, which is modified as
          follows:<figure>
              <artwork><![CDATA[   S08.             PE1 generates a BGP ROUTE-REFRESH message containing a 
                    VPN Prefix ORF entry with (RD31, source PE is PE3, RTs
                    are RT1 and RT2), and send the entry to RR. RR handles 
                    the offending VPN routes according to the value of 
                    "Offending VPN routes process method".
]]></artwork>
            </figure></t>

          <t>b) PE2</t>

          <t>If quota value is not set on PE2, and each VRF has a prefix limit
          on PE2. Since only VPN1 VRF needs to import VPN routes with RT1,
          this case is similar to PE1 without quota in <xref
          target="scenario-1"/>, which is modified as follows:<figure>
              <artwork><![CDATA[   S02.     PE2 sends a VPN Prefix ORF message to the RR and a warning 
            message to the operator. The VPN Prefix ORF message will 
            indicate the RD set to RD31, the RT value set to RT1 and 
            RT2,source PE identified as PE3. RR handles the offending
            VPN routes and controls the number of VPN routes according
            to the value of "Offending VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>

          <t>If each &lt;RD31, source PE3&gt; tuple imported into a VRF has a
          quota, and each VRF has a prefix limit. This case is similar to PE1
          with quota in <xref target="scenario-1"/>, which is modified as
          follows:<figure>
              <artwork><![CDATA[   S05.         PE2 generates a BGP ROUTE-REFRESH message containing a VPN 
                Prefix ORF entry with (RD31, source PE is PE3, RTs are RT1
                and RT2), and send the entry to RR. RR handles the 
                offending VPN routes according to the value of "Offending
                VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>
        </section>

        <section anchor="scenario-3"
                 title="Scenario-3 and Solution (Universal RD)">
          <t>In this scenario, PE1-PE4 and RR are iBGP peers. RD is allocated
          per VPN. One/Multiple RTs are associated with the offending VPN
          routes and are imported into different VRFs on other devices. We
          assume the network topology is shown in Figure 3.<figure>
              <artwork align="center"><![CDATA[ +------------------------------------------------------------------------+
 |                                                                        |
 |                                                                        |
 |        +-------+                                       +-------+       |
 |        |  PE1  +----------------+    +-----------------+  PE4  |       |
 |        +-------+                |    |                 +-------+       |
 |     VPN1(RD1,RT1)               |    |              VPN2(RD12,RT2)     |
 |     VPN2(RD12,RT2)              |    |                                 |
 |                               +-+----+-+                               |
 |                               |   RR   |                               |
 |                               +-+----+-+                               |
 |                                 |    |                                 |
 |                                 |    |                                 |
 |        +-------+                |    |                 +-------+       |
 |        |  PE2  +----------------+    +-----------------+  PE3  |       |
 |        +-------+                                       +-------+       |
 |     VPN1(RD1,RT1)                                   VPN1(RD1,RT1,RT2)  |
 |                                                     VPN2(RD32,RT2)     |
 |                                                                        |
 |                                 AS 100                                 |
 |                                                                        |
 +------------------------------------------------------------------------+
                  Figure 3 Network Topology of Scenario-3
]]></artwork>
            </figure></t>

          <t>When PE3 sends an excessive number of VPN routes associated with
          RD1, RT1 and RT2, and both PE1 and PE2 import VPN routes with RT1,
          the process of offending VPN routes can affect the performance of
          the VRFs on PEs.</t>

          <t>a) PE1</t>

          <t>If quota value is not set on PE1, and each VRF has a prefix limit
          on PE1. Since VPN2 VRF requires the VPN routes with RT2, PE1 cannot
          trigger VPN Prefix ORF mechanism directly when the prefix limit of
          VPN1 VRF is exceeded. This case is similar to PE2 without quota in
          <xref target="scenario-1"/>, which is modified as follows:</t>

          <t><figure>
              <artwork><![CDATA[   S03.         PE1 sends a VPN Prefix ORF message to the RR and a warning 
                message to the operator. The VPN Prefix ORF message will 
                indicate the RD set to RD1, the RT value set to RT1 and RT2,
                source PE identified as PE3. RR handles the offending VPN 
                routes and controls the number of VPN routes according to 
                the value of "Offending VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>

          <t>If each &lt;RD1, source PE3&gt; tuple imported into a VRF has a
          quota, and each VRF has a prefix limit. This case is similar to PE2
          with quota in <xref target="scenario-1"/>, which is modified as
          follows:<figure>
              <artwork><![CDATA[   S08.             PE1 generates a BGP ROUTE-REFRESH message containing a 
                    VPN Prefix ORF entry with (RD1, source PE is PE3, RTs 
                    are RT1 and RT2), and send the entry to RR. RR handles 
                    the offending VPN routes according to the value of 
                    "Offending VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>

          <t>b) PE2</t>

          <t>If quota value is not set on PE2, and each VRF has a prefix limit
          on PE2. Since only VPN1 VRF needs to import VPN routes with RT1,
          this case is similar to PE1 without quota in <xref
          target="scenario-1"/>, which is modified as follows:<figure>
              <artwork><![CDATA[   S02.     PE2 sends a VPN Prefix ORF message to the RR and a warning 
            message to the operator. The VPN Prefix ORF message will 
            indicate the RD set to RD1, the RT value set to RT1 and RT2, 
            source PE identified as PE3. RR handles the offending VPN
            routes and controls the number of VPN routes according 
            to the value of "Offending VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>

          <t>If each &lt;RD31, source PE3&gt; tuple imported into a VRF has a
          quota, and each VRF has a prefix limit. This case is similar to PE1
          with quota in <xref target="scenario-1"/>, which is modified as
          follows:<figure>
              <artwork><![CDATA[   S05.         PE2 generates a BGP ROUTE-REFRESH message containing a VPN 
                Prefix ORF entry with (RD1, source PE is PE3, RTs are RT1 
                and RT2), and send the entry to RR. RR handles the 
                offending VPN routes according to the value of "Offending 
                VPN routes process method".
]]></artwork>
            </figure></t>

          <t/>
        </section>
      </section>
    </section>

    <section title="Source PE Extended Community">
      <t>We usually use next hop to identify the source, but it may not be
      useful in the following scenarios:<list style="symbols">
          <t>a PE may have multiple addresses so that its BGP peer may receive
          several different next hop addresses from the same source.</t>

          <t>In Option B inter-domain scenario, the ASBR will change the next
          hop.</t>
        </list></t>

      <t>ORIGINATOR_ID is a non-transitive attribute generated by RR to
      identify the source, but ORIGINATOR_ID cannot be advertised outside the
      local AS. To address the above scenarios, we have defined a new Extended
      Community: Source PE Extended Community (SPE EC), which is designed to
      transmit the identifier of source. The value of SPE EC can be set by
      source PE, RR or ASBR. Once set and attached to the BGP UPDATE message,
      its value should not be altered along the advertisement path.</t>

      <t>The AS number of source PE can be conveyed by Source AS Extended
      Community, as defined in <xref target="RFC6514"/></t>

      <t>The format of SPE EC is shown as Figure 4. <figure>
          <artwork align="center"><![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 (TBD)        |          ORIGINATOR_ID        :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      :     ORIGINATOR_ID (cont.)     |            Reserved           :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 4 The format of SPE EC
]]></artwork>
        </figure></t>

      <t>Where:<list style="symbols">
          <t>Type: specifies the type value assigned by IANA, now it is
          TBD.</t>

          <t>ORIGINATOR_ID: specifies the identifier of source.</t>

          <t>Reserved: MUST be zero on transmit.</t>
        </list></t>

      <t>For the RR/ASBR, it should perform as following:<list style="symbols">
          <t>Check the existence of the SPE EC. If it exists, does not change
          it.</t>

          <t>If SPE EC does not exist, check the existence of ORIGINATOR_ID.
          If it exists, put it into SPE EC.</t>

          <t>If ORIGINATOR_ID does not exist, put the router-id of source PE
          into SPE EC.</t>
        </list></t>

      <t>The SPE EC SHOULD be attached by source PE, or else the RR SHOULD
      attach it, with the value set as the router-id of source PE. When none
      of them attach the SPE EC, the ASBR SHOULD attach it when the packet
      leaves the source AS, with the value set as the ORIGINATOR_ID.</t>

      <t>This section updates route reflection procedures, which means <xref
      target="RFC4456"/> need to be updated.</t>
    </section>

    <section anchor="Encoding" title="VPN Prefix ORF Encoding">
      <t>In this section, we defined a new ORF type called VPN Prefix Outbound
      Route Filter (VPN Prefix ORF). The ORF entries are carried in the BGP
      ROUTE-REFRESH message as defined in <xref target="RFC5291"/>. A BGP
      ROUTE-REFRESH message can carry one or more ORF entries. The
      ROUTE-REFRESH message which carries ORF entries contains the following
      fields:<list style="symbols">
          <t>AFI (2 octets)</t>

          <t>SAFI (1 octet)</t>

          <t>When-to-refresh (1 octet): the value is IMMEDIATE or DEFER</t>

          <t>ORF Type (1 octet): The type of VPN Prefix ORF is 66.</t>

          <t>Length of ORF entries (2 octets)</t>
        </list>A VPN Prefix ORF entry contains a common part and type-specific
      part. The common part is encoded as follows:<list style="symbols">
          <t>Action (2 bits): the value is ADD, REMOVE or REMOVE-ALL</t>

          <t>Match (1 bit): the value is PERMIT or DENY</t>

          <t>Offending VPN routes process method (1 bit): if the value is set
          to 0, it means all offending VPN routes on the sender of VPN Prefix
          ORF message should be withdrawn; if the value is set to 1, it means
          the sender of VPN Prefix ORF message refuse to receive new offending
          VPN routes. The default value is 0.</t>

          <t>Reserved (4 bits)</t>
        </list>VPN Prefix ORF also contains type-specific part. The encoding
      of the type-specific part is shown in Figure 5.</t>

      <t><figure>
          <artwork align="center"><![CDATA[ +-----------------------------------------+
 |                                         |
 |            Sequence (4 octets)          |
 |                                         |
 +-----------------------------------------+
 |                                         |
 |             Length (2 octets)           |
 |                                         |
 +-----------------------------------------+
 |                                         |
 |      Route Distinguisher (8 octets)     |
 |                                         |
 +-----------------------------------------+
 |                                         |
 |        Optional TLVs (variable)         |
 |                                         |
 +-----------------------------------------+
 
   Figure 5: VPN Prefix ORF type-specific encoding
]]></artwork>
        </figure><list style="symbols">
          <t>Sequence: identifying the order in which VPN Prefix ORF is
          generated and evaluated. It can uniquely identify a VPN Prefix ORF
          entry together with AFI/SAFI, ORF-Type, and Route Distinguisher. The
          sequence numbers SHOULD be discontinuous to facilitate the insertion
          of new rules at a later stage.</t>

          <t>Length: identifying the length of this VPN Prefix ORF entry.</t>

          <t>Route Distinguisher: distinguish the different user routes. The
          VPN Prefix ORF filters the VPN routes it tends to send based on
          Route Distinguisher. If RD is equal to 0, it means all VPN
          prefixes.</t>

          <t>Optional TLVs: carry the potential additional information to give
          the extensibility of the VPN Prefix ORF mechanism. Its format is
          shown in Figure 6. If one or more TLV(s) are not well formed, they
          should be ignored.<figure>
              <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     |      Length   |       value (variable)        :
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  Figure 6 The format of optional TLV(s)]]></artwork>
            </figure></t>
        </list>Note that if the Action component of an ORF entry specifies
      REMOVE-ALL, the ORF entry does not include the type-specific part.</t>

      <t>When the BGP ROUTE-REFRESH message carries VPN Prefix ORF entries, it
      must be set as follows:</t>

      <t><list style="symbols">
          <t>The ORF-Type MUST be set to 66 (VPN Prefix ORF).</t>

          <t>The AFI MUST be set to IPv4, IPv6, or Layer 2 VPN (L2VPN).</t>

          <t>If the AFI is set to IPv4 or IPv6, the SAFI MUST be set to
          MPLS-labeled VPN address.</t>

          <t>If the AFI is set to L2VPN, the SAFI MUST be set to BGP EVPN.</t>

          <t>The purpose of VPN Prefix ORF is to block unwanted VPN prefixes,
          then the "action" of one valid entry should be set to "DENY". In
          order to allow other allowed VPN prefixes pass the filter, one
          default, last resort entry should be installed in advance in the VPN
          Pefixes ORF table, with the RD is set to 0 and the corresponding
          Sequence are set to 0xFFFFFFFF.</t>
        </list></t>

      <t>According to <xref target="RFC5291"/>, if any of the fields of a VPN
      Prefix ORF entry in the message contains an unrecognized value, the
      whole specified ORF previously received is removed.</t>

      <t>A BGP speaker that is willing to receive ORF entries from its peer,
      or a BGP speaker that would like to send ORF entries to its peer,
      advertises this to the peer by using the Outbound Route Filtering
      Capability defined in <xref target="RFC5291"/>.</t>

      <section title="Source PE TLV">
        <t>Source PE TLV is defined to identify the source of the VPN routes.
        For the sender of VPN Prefix ORF, it will check the existence of SPE
        EC. If it exists, the sender will put it into Source PE TLV.
        Otherwise, the value of Source PE TLV should be set to next hop
        address.</t>

        <t>The Source PE TLV SHOULD only appear once within an individual ORF
        entry. If one ORF entry contains multiple Source PE TLVs, it SHOULD be
        ignored.</t>

        <t>The source PE TLV contains the following types:<list
            style="symbols">
            <t>IPv4 Source PE TLV: Type = 1 (suggested), Length = 4 octets,
            value = next hop address in IPv4 format.</t>

            <t>IPv6 Source PE TLV: Type = 2 (suggested), Length = 16 octets,
            value = next hop address in IPv6 format.</t>

            <t>Source PE identifier TLV: Type = 3 (suggested), Length = 4
            octets, value = the value of ORIGINATOR_ID in Source PE Extended
            Community.</t>
          </list></t>
      </section>

      <section title="Source AS TLV">
        <t>Source AS TLV is defined to identify the source AS number of source
        PE.</t>

        <t>The Source AS TLV SHOULD only appear once within an individual ORF
        entry. If one ORF entry contains multiple Source AS TLVs, it SHOULD be
        ignored.</t>

        <t>The encoding of Source AS TLV is as follow:<list style="empty">
            <t>Type = 4 (suggested), Length = 4 octets, value = the value of
            Source AS in Source AS Extended Community as defined in <xref
            target="RFC6514"/>.</t>
          </list></t>
      </section>

      <section title="Route Target TLV">
        <t>Route Target TLV is defined to identify the RT of the offending VPN
        routes. RT and RD can be used together to filter VPN routes when the
        source VRF contains multiple RTs, and the VPN routes with different
        RTs may be assigned to different VRFs on the receiver. The Route
        Target TLV contains the following types:<list style="empty">
            <t>Type = 5 (suggested), Length = 8*n (n is the number of RTs that
            the offending VPN routes attached) octets, value = the RT of the
            offending VPN routes. If multiple RTs are included, there MUST be
            an exact match.</t>
          </list></t>
      </section>
    </section>

    <section title="Operation process of VPN Prefix ORF mechanism on receiver">
      <t>The VPN Prefix ORF is used mainly to block the unwanted BGP updates.
      When the receiver receives VPN Prefix ORF entry, it should check first
      whether the "Match" bit is "DENY" or not.</t>

      <t>If the "Match" bit is "PERMIT", and is the "default" entry (the
      offending VPN routes process method equal to 0, sequence equal to
      0xFFFFFFFF, length is equal to 8, and Route Distinguisher is equal to
      0), the entry SHOULD be installed. Otherwise, if the "Match" bit is
      "PERMIT", the entry should be discarded and a warning should be sent to
      the operator.</t>

      <t>The following procedures will only be evaluated when the "Match" bit
      is "DENY".</t>

      <t>The receiver of VPN Prefix ORF entries, which may be a RR, ASBR or
      PE, when receives VPN Prefix ORF entry from its BGP peer, it does the
      following:<figure>
          <artwork><![CDATA[   S01. The receiver check the combination of <AFI/SAFI, ORF-Type, Sequence, 
        Route Distinguisher> of the received VPN Prefix ORF entry.
   S02. If (the combination does not already exist in the ORF-Policy table) {
   S03.     The receiver adds the VPN Prefix ORF entry to the ORF-Policy 
            table.
   S04. } else {
   S05.     If (Action is ADD) {
   S06.         Overwrite the old VPN Prefix ORF entry with the new one.
   S07.     else {
                Remove the corresponding VPN Prefix ORF entry. 
   S06. }
]]></artwork>
        </figure></t>

      <t>The filtering conditions for the stored VPN Prefix ORF entries
      contain the RD and RT of the source PE.</t>

      <t>If the SPE EC is not attached to the BGP Update message of the VPN
      prefixes, the receiver should use NEXT_HOP or ORIGINATOR_ID as the
      orignator of VPN Prefix to match against the VPN Prefix ORF entry.</t>

      <t>After installing the filter entries for the outbound VPN prefixes,
      the RR or ASBR does the following before sending VPN routes:<figure>
          <artwork><![CDATA[   S01. RR or ASBR check if there are matching filtering conditions in the 
        ORF-Policy table for the VPN routes. 
   S02. If (matching filtering conditions does not exist) {
   S03.     The RR/ASBR sends the VPN routes.
   S04. } else {
   S05.     If (the "Offending VPN routes process method" bit is set to 0) {
   S06.         The RR/ASBR withdraws all the VPN routes identified by RD, RT 
                and any relevant information in the optional TLVs within the 
                entry, and stop sending the corresponding VPN routes to the 
                sender of the VPN Prefix ORF entry.
   S06.     } else {
   S07.         The receiver withdraw the extra VPN routes according to the 
                value of RD, RT and any relevant information in optional 
                TLVs within the entry, and stop sending the corresponding 
                VPN routes to the sender of the VPN Prefix ORF entry.
   S06. }
]]></artwork>
        </figure></t>

      <t/>
    </section>

    <section title="Withdraw of VPN Prefix ORF entries">
      <t>When the VPN Prefix ORF mechanism is triggered, a warning message
      will be generated and sent to the network operators. Operators should
      manually configure the network to resume normal operation. Since devices
      can record the VPN Prefix ORF entries sent by each VRF, operators can
      identify the entries that are needed to be withdrawn and manually
      trigger the withdraw process as described in <xref
      target="RFC5291"/>.</t>
    </section>

    <section title="Applicability">
      <t>Using the scenario in <xref target="scenario-1"/>, we demonstrate how
      to determine each field when the sender generates a VPN Prefix ORF
      entry. Assuming it is an IPv4 network, after PE1-PE4 and RR have
      advertised the Outbound Route Filtering Capability, each of PE1-PE4
      should send a VPN Prefix ORF entry that means "PERMIT-ALL" as
      follows:<list style="symbols">
          <t>AFI is equal to IPv4</t>

          <t>SAFI is equal to MPLS-labeled VPN address</t>

          <t>When-to-refresh is equal to IMMEDIATE</t>

          <t>ORF Type is equal to VPN Prefix ORF</t>

          <t>Length of ORF entries is equal to 22</t>

          <t>Action is equal to ADD</t>

          <t>Match is equal to PERMIT</t>

          <t>Offending VPN routes process method is equal to 0</t>

          <t>Sequence is equal to 0xFFFFFFFF</t>

          <t>Length is equal to 8</t>

          <t>Route Distinguisher is equal to 0</t>
        </list></t>

      <t>When the VPN Prefix ORF mechanism is triggered on PE1, PE1 generates
      a VPN Prefix ORF entry contains the following information:<list
          style="symbols">
          <t>AFI is equal to IPv4</t>

          <t>SAFI is equal to MPLS-labeled VPN address</t>

          <t>When-to-refresh is equal to IMMEDIATE</t>

          <t>ORF Type is equal to VPN Prefix ORF</t>

          <t>Length of ORF entries is equal to 45</t>

          <t>Action is equal to ADD</t>

          <t>Match is equal to DENY</t>

          <t>Offending VPN routes process method is equal to 0</t>

          <t>Sequence is equal to 1</t>

          <t>Length is equal to 31</t>

          <t>Route Distinguisher is equal to RD31</t>

          <t>Optional TLV:<list style="symbols">
              <t>Type is equal to 1 (Source PE TLV)</t>

              <t>Length is equal to 4</t>

              <t>value is equal to PE3's IPv4 address</t>

              <t>Type is equal to 4 (Source AS TLV)</t>

              <t>Length is equal to 4</t>

              <t>value is equal to PE3's source AS number</t>

              <t>Type is equal to 5 (Route Target TLV)</t>

              <t>Length is equal to 8</t>

              <t>value is equal to RT1</t>
            </list></t>
        </list></t>
    </section>

    <section title="Implementation Considerations">
      <t>This draft is experimental to determine whether the proposed
      mechanism can block the offending routes as expected and whether it
      could cause potential network failures. The first subsection describes
      implementation considerations for the mechanism. The second subsection
      gives a brief description of implementation status. The third subsection
      provides a short summary of the experimental topology.</t>

      <section title="Implementation Considerations">
        <t>Before originating a VPN Prefix ORF message, the device should
        compare the list of RDs and RTs carried by VPN routes to those are
        imported by other VRFs on the device. If there is an intersection, the
        VPN Prefix ORF message MUST NOT be originated.</t>

        <t>In deployment, the quota value can be set with different
        granularity, such as by &lt;PE&gt;, &lt;RD, Source AS&gt;, etc. If the
        quota value is set to (VRF prefix limit/the number of PEs), whenever a
        new PE access to the network, the quota value should be re-evaluated
        or adjusted accordingly.</t>

        <t>To avoid frequent changes to the quota value, the value SHOULD be
        set based on the following formula:</t>

        <t>Quota=MIN[(Margins coefficient)*&lt;PE,CE limit&gt;*&lt;Number of
        PEs within the VPN, includes the possibility expansion in futures&gt;,
        VRF Prefixes Limit]</t>

        <t>It should be noted that the above formula is only an example, the
        operators can use different formulas based on actual needs in
        management plane.</t>

        <t/>
      </section>

      <section title="Implementation status">
        <t>Currently, H3C has implemented VPN Prefix ORF mechanism related
        functions as follows:</t>

        <t><list style="symbols">
            <t>By configuring quota, achieve the use of RD and Source PE to
            control VPN routing.</t>

            <t>Generating, transmitting and processing Type 1 and Type 2
            Source PE TLV.</t>

            <t>Using the Offending VPN routes process method to revoke all
            routes.</t>
          </list>Besides, we also implemented the following functions based on
        the open-source BGP implementation (FRR):</t>

        <t><list style="symbols">
            <t>VPN Prefix ORF mechanism triggered based on VRF limit in
            intra-domain and inter-domain scenarios.</t>

            <t>RD based VPN routing filtering in intra-domain and inter-domain
            scenarios.</t>
          </list></t>

        <t/>
      </section>

      <section title="Experimental topology">
        <t>The experiments will test whether the VPN Prefix ORF blocks the
        offending routes in the following scenarios:<list style="symbols">
            <t>Intra-domain as a standalone mechanism,</t>

            <t>Inter-domain as a standalone mechanisms,</t>

            <t>Adding the VPN Prefix ORF to existing mechanisms for
            intra-domain VPNs,</t>

            <t>Adding the VPN Prefix ORF to existing mechanisms for
            intra-domain VPNs.</t>
          </list></t>

        <t/>
      </section>
    </section>

    <section title="Security Considerations">
      <t>This draft does build upon <xref target="RFC5291"/>. A BGP speaker
      will maintain the VPN Prefix ORF entries in an ORF-Policy table, this
      behavior consumes its memory and compute resources. To avoid the
      excessive consumption of resources, <xref target="RFC5291"/> specifies
      that a BGP speaker can only accept ORF entries transmitted by its
      interested peers.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>This document defines a new Outbound Route Filter type - VPN Prefix
      Outbound Route Filter (VPN Prefix ORF).</t>

      <t>We would want to refer to the text from <xref target="RFC5291"/>:
      This new ORF is exchanged using outbound route filtering capability
      defined in <xref target="RFC5291"/> (for the sake of completeness).</t>

      <figure align="center">
        <artwork><![CDATA[under "BGP Outbound Route Filtering (ORF) Types"
Registry: "VPN Prefix Outbound Route Filter (VPN Prefix ORF)"
Registration Procedure(s): First Come, First Served
Value: 66 
]]></artwork>
      </figure>

      <t>This document also define a VPN Prefix ORF TLV type under "Border
      Gateway Protocol (BGP) Parameters", four TLV types are defined:<figure
          align="center">
          <artwork><![CDATA[under "Border Gateway Protocol (BGP) Parameters"
Registry: "VPN Prefix ORF TLV"
 +==========+=========================+
 | Range    | Registration Procedures |            |
 +====================================+
 | 0-127    | IETF Review             |
 +----------+-------------------------+
 | 128-255  | First Come First Served |
 +----------+-------------------------+

 +===========================+=============+===========================+
 | Registry                  |     Type    |       Meaning             |
 +===========================+=============+===========================+
 |Reserved                   | 0(suggested)|Reserved                   |
 +---------------------------+-------------+---------------------------+
 |IPv4 Source PE TLV         | 1(suggested)|IPv4 address for source PE.|
 +---------------------------+-------------+---------------------------+
 |IPv6 Source PE TLV         | 2(suggested)|IPv6 address for source PE.|
 +---------------------------+-------------+---------------------------+
 |Source PE Identifier TLV   | 3(suggested)|ORIGINATOR_ID in Source PE |
 |                           |             |Extended Community for     |
 |                           |             |source PE                  |
 +---------------------------+-------------+---------------------------+
 |Source AS TLV              | 4(suggested)|Source AS for source PE    |
 +---------------------------+-------------+---------------------------+
 |Route Target TLV           | 5(suggested)|Route Target of the        |
 |                           |             |offending VPN routes       |
 +---------------------------+-------------+---------------------------+
]]></artwork>
        </figure></t>

      <t>This document also requests a new Transitive Extended Community Type.
      The new Transitive Extended Community Type name shall be "Source PE
      Extended Community".</t>

      <t><figure align="left">
          <artwork><![CDATA[        Under "BGP Transitive Extended Community Types:"
        Registry: "Source PE Extended Community" type
         0x0d(suggested)         Source PE Extended Community
]]></artwork>
        </figure></t>
    </section>

    <section title="Contributor">
      <t>Shunwan Zhuang</t>

      <t>Huawei Technologies</t>

      <t>Huawei Building, No.156 Beiqing Rd.</t>

      <t>Beijing</t>

      <t>Beijing, 100095 China</t>
    </section>

    <section title="Acknowledgement">
      <t>Thanks Jeffrey Haas, Robert Raszuk, Jim Uttaro, Jakob Heitz, Jeff
      Tantsura, Rajiv Asati, John E Drake, Gert Doering, Shuanglong Chen, Enke
      Chen, Srihari Sangli and Igor Malyushkin for their valuable comments on
      this draft.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.4364"?>

      <?rfc include="reference.RFC.7432"?>

      <?rfc include="reference.RFC.5291"?>

      <?rfc include='reference.RFC.4760'?>

      <?rfc include='reference.RFC.4684'?>

      <?rfc include='reference.RFC.5292'?>

      <?rfc include='reference.RFC.4360'?>

      <?rfc include='reference.RFC.7543'?>

      <?rfc include='reference.RFC.7024'
?>

      <?rfc include='reference.RFC.6514'?>

      <?rfc include='reference.RFC.4456'?>

      <?rfc include='reference.RFC.4486'?>

      <?rfc ?>
    </references>

    <section anchor="topology" title="Experimental topology">
      <t>The experimental topology is shown in Figure 6.<figure align="center">
          <artwork><![CDATA[+--------------------------+             +--------------------------+
|                          |             |                          |
|                          |             |                          |
|   +---------+            |             |            +---------+   |
|   |   PE1   |            |             |            |   PE3   |   |
|   +---------+            |             |            +---------+   |
|              \           |             |           /              |
|                \+---------+    EBGP   +---------+/                |
|                 |         |           |         |                 |
|                 |  ASBR1  |-----------|  ASBR2  |                 |
|                 |         |           |         |                 |
|                 +---------+           +---------+                 |
|                /         |             |         \                |
|   +---------+/           |             |           \+---------+   |
|   |   PE2   |            |             |            |   PE4   |   |
|   +---------+            |             |            +---------+   |
|                          |             |                          |
|           AS1            |             |           AS2            |
+--------------------------+             +--------------------------+
                 Figure 6 The experimental topology
]]></artwork>
        </figure></t>

      <t>This topology can be used to verify as follows:<list style="symbols">
          <t>whether the VPN Prefix ORF mechanism could block the offending
          routes in intra-domain scenario.</t>

          <t>whether the VPN Prefix ORF mechanism could block the offending
          routes in inter-domain scenario.</t>

          <t>whether the VPN Prefix ORF mechanism conflicts with the existing
          mechanism and cause failure.</t>

          <t>whether the quota value leads to flapping.</t>
        </list></t>

      <t/>

      <t/>
    </section>
  </back>
</rfc>
