<?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-24"
     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="24" month="December" 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 Virtual Private Network (VPN) Prefix ORF. The VPN Prefix ORF
      mechanism is applicable when VPN routes from different Virtual Routing
      and Forwarding (VRF) instances are exchanged through a single shared
      Border Gateway Protocol (BGP) session.The purpose of VPN Prefix ORF
      mechanism is to control the overload of VPN routes based on RT. With
      this mechanism, the overload can be limited within the minimum
      range.</t>
    </abstract>
  </front>

  <middle>
    <section 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 processing of VPN routes in other VRFs, which
      consequently affects the route processing performance of other VRFs
      (such as route dropping, processing delays, and abnormal customer
      services). Therefore, it is desirable that the excessive VPN routes
      advertisement be controlled individually for each VRF in such a shared
      BGP session.</t>

      <t>There are several solutions that 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>Covering Prefixes Outbound Route Filter (CP-ORF) mechanism as
          defined in <xref target="RFC7543"/></t>

          <t>Provider Edge (PE) - Customer Edge (CE) edge peer Maximum
          Prefix</t>

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

      <t>However, each existing solution has its own limitation as described
      in Section 4.</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 (Route
      Distinguisher (RD), Route Target (RT), source PE, etc.) of the overload
      VPN routes in this VRF and send a VPN Prefix ORF message to its BGP
      peer, who announced these overload routes. Upon receiving a VPN Prefix
      ORF entry from its BGP peer, the BGP speaker will filter and withdraw
      any overload VPN routes that was announced to its peer.</t>

      <t>The purpose of this mechanism is to control the overload 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 title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in BCP
        14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>
    </section>

    <section title="Terminology">
      <t>The following terms are used in this draft:<list style="symbols">
          <t>AFI: Address Family Identifier, defined in <xref
          target="RFC4760"/></t>

          <t>ASBR: Autonomous System Border Router.</t>

          <t>BGP: Border Gateway Protocol, defined in <xref
          target="RFC4271"/></t>

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

          <t>MPLS: Multi-Protocol Label Switching.</t>

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

          <t>Quota: A threshold to limit the number of VPN routes under
          specific granularities (such as &lt;PE&gt;, &lt;RD, Source
          AS&gt;).</t>

          <t>RD: Route Distinguisher, defined in <xref target="RFC4364"/></t>

          <t>RIB: Routing Information Base.</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>RT: Route Target, defined in <xref target="RFC4364"/></t>

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

          <t>VPN: Virtual Private Networks, defined in <xref
          target="RFC4364"/></t>

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

      <t/>
    </section>

    <section title="Existing Solutions">
      <section title="Route Target Constraint (RTC)">
        <t>RTC can only filter the VPN routes from any uninterested VRFs, if
        the route overload comes from an interested VRF, the RTC mechanism
        can't filter them.</t>
      </section>

      <section title="Address Prefix ORF">
        <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>
      </section>

      <section title="CP-ORF Mechanism">
        <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 BGP/MPLS Ethernet VPN (EVPN) <xref
        target="RFC7432"/> networks, but its primary function is to retrieve
        interested VPN prefixes and it cannot be used to filter overload of
        VPN prefixes dynamically.</t>
      </section>

      <section title="PE-CE edge peer Maximum Prefix">
        <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 drop overloading routes or 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 overloading VPN routes will be
        dropped, or BGP session will be shut down, which will affect the
        operation of other VPN routes transmitted via this BGP session.</t>

        <t>If Maximum Prefix is configured on every PE-CE link, it can prevent
        VPN route overflow. However, reliance solely on the sender side for
        protection is insufficient; if the sender has not configured Maximum
        Prefix, the VPN Prefix ORF mechanism can still prevent VPN route
        overflow from occurring.</t>
      </section>

      <section title="Configuring the Maximum Prefix for each VRF on edge nodes">
        <t>When a VRF overflows, some implementations may stops the import of
        routes. Any additional VPN routes are held into its Routing
        Information Base (RIB). However, PEs still need to parse the incoming
        BGP messages. This will cost CPU cycles and further burden the
        overflowed PE.</t>

        <t>The VPN Prefix ORF mechanism improves upon this by enabling the
        overloaded PE to signal the specific offending routes back to the
        sender, which can then suppress them at the source&mdash;eliminating
        wasted processing and preserving resources for healthy VRFs.</t>
      </section>
    </section>

    <section anchor="Encodings" title="VPN Prefix ORF Encoding">
      <t>In this section, we describe the encoding of VPN Prefix ORF entries.
      The VPN Prefix 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 format of a ROUTE-REFRESH message
      which carries VPN Prefix ORF entries are as follows:</t>

      <t><list style="symbols">
          <t>AFI (2 octets). The AFI MUST be set to IPv4, IPv6, or Layer 2 VPN
          (L2VPN).</t>

          <t>SAFI (1 octet). If the AFI is set to IPv4 or IPv6, the SAFI MUST
          be set to MPLS-labeled VPN address. If the AFI is set to L2VPN, the
          SAFI MUST be set to BGP EVPN. It is applicable for all types of EVPN
          routes as mentioned in <xref target="RFC7432"/>.</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 encoding of the common part is shown in Figure 4.<figure>
          <artwork align="center"><![CDATA[ +-----------------------------------------+
 |                                         |
 |            Action (2 bits)          |
 |                                         |
 +-----------------------------------------+
 |                                         |
 |             Match (1 bits)           |
 |                                         |
 +-----------------------------------------+
 |                                         |
 |      Overload VPN routes process        |
 |             method (1 bit)              |
 |                                         |
 +-----------------------------------------+
 |                                         |
 |            Reserved (4 bits)            |
 |                                         |
 +-----------------------------------------+
 
   Figure 5: VPN Prefix ORF type-specific encoding
]]></artwork>
        </figure><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>Overload VPN routes process method (1 bit): if the value is set
          to 0, it means all overload 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 overload
          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 unrecognized, the whole
          VPN Prefix ORF entry SHOULD be removed.<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 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
          Prefixes 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 capability to the peer by using the Outbound Route
      Filtering Capability defined in <xref target="RFC5291"/>.</t>

      <section title="Source PE TLV (including 3 types)">
        <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 on the VPN route being matched. 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, all MUST be
        ignored.</t>

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

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

            <t>Source PE identifier TLV: Type = 3, 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. It is only required in inter-domain scenario.</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 follows:<list style="empty">
            <t>Type = 4, 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 overload 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.</t>

        <t>If this TLV contains only one RT but multiple RTs are configured on
        the VPN route, the device should check whether the RT included in this
        TLV exists among the multiple RTs configured on the VPN route. If it
        exists, the device should filter out the VPN route.</t>

        <t>The Route Target TLV contains the following types:<list
            style="empty">
            <t>Type = 5, Length = 8*n (n is the number of RTs that the
            overload VPN routes attached) octets, value = the RT of the
            overload VPN routes. If multiple RTs are included, there MUST be
            an exact match.</t>
          </list></t>
      </section>
    </section>

    <section title="The general procedures of VPN Prefix ORF mechanism">
      <section title="Process 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 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 newly
        added VPN routes has caused the total number of 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 exceeded, the
        receiving BGP peer will send a VPN Prefix ORF message to the sending
        BGP peer, indicating that it should stop sending the corresponding VPN
        routes which are identified by the VPN instance identification
        information.</t>

        <t>Before originating a VPN Prefix ORF message, the device SHOULD
        compare the list of RTs carried by VPN routes with those imported by
        other VRFs on the device. If the route's RT is included in the import
        rules of other VRFs, the VPN Prefix ORF message MUST NOT be
        originated.</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 to pass the filter. The "default" entry should be
        installed in advance in the VPN Prefixes ORF table, with the overload
        VPN routes process method set to 0, sequence set to 0xFFFFFFFF, length
        set to 8, and Route Distinguisher set to 0.</t>

        <t>The receiving BGP peer and the sending BGP peer are iBGP peers
        within the same Autonomous System (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 sent from the receiving BGP peer
        includes the following information:<list style="symbols">
            <t>The ORF entries that are included in the ROUTE-REFRESH
            message.</t>

            <t>The Action field in the ORF entries is set to a value that
            instructs the sending BGP peer to add the corresponding filter
            condition to its outbound route filter.</t>

            <t>The Match field in the ORF entries is set to a value that
            instructs the sending BGP peer to deny 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 are 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>When the VPN Prefix ORF mechanism is triggered, the device SHOULD
        send an alarm information to network operators.</t>

        <t>The procedures for senders of VPN Prefix ORF entries are described
        below:</t>

        <figure>
          <artwork><![CDATA[S01. For each VRF v that receives updated VPN routes {
S02.     If (the total number of prefixes in VRF v exceeds its 
         configured prefix limit) {
S03.         RT_set = the set of Route Targets imported by VRF v.
S04.         overload_RD_source_pairs = all <RD, Source PE> 
             tuples from the newly received routes that belong 
             to VRF v.

             // Check if any RT in RT_set is also imported by 
                another VRF that has NOT exceeded its limit
S05.         conflict_exists = FALSE;
S06.         For each RT r in RT_set {
S07.             For each other VRF u on this device {
S08.                 If (r is in the import RT list of VRF u) 
                     AND (prefix count of VRF u <= its prefix
                     limit) {
S09.                     conflict_exists = TRUE;
S10.                 }
S11.             }
S12.         }

S13.         If (conflict_exists == TRUE) {
S14.             // Cannot send ORF: would block routes needed
                    by healthy VRFs
S15.             Send warning message to the operator.
S16.         }

S17.         // Safe to send ORF entries
S18.         For each <RD_x, PE_y> in overload_RD_source_pairs {
S19.             Collect all RTs carried by routes with RD=RD_x 
                 from source PE_y that are imported into 
                 VRF v ? RT_list.

S20.             Construct a VPN Prefix ORF entry with:
S21.                 Action = ADD,
S22.                 Match = DENY,
S23.                 Overload VPN routes process method = 0,
S24.                 Sequence = generate unique sequence number,
S25.                 Route Distinguisher = RD_x,
S26.                 Optional TLVs include:
S27.                     Source PE TLV = PE_y,
S28.                     Route Target TLV = RT_list.

S29.             Send a BGP ROUTE-REFRESH message containing this 
                 ORF entry to the upstream BGP peer (e.g., RR).
S30.             Send an alarm message to the operator indicating 
                 VRF v overflow and ORF transmission.
S31.         }
S32.     } Else {
S33.         // No overflow in this VRF; no ORF triggered
S34.         Continue normal route processing.
S35.     }
S36. }]]></artwork>
        </figure>

        <t/>

        <section title="Intra-domain Scenarios and Solutions">
          <t>For intra-AS VPN deployment, there are two scenarios:<list
              style="symbols">
              <t>unique RD (per VPN, per PE).</t>

              <t>the same RD (per VPN, same on all PEs)</t>
            </list></t>

          <t>The detailed descriptions about the above solutions are in
          Appendix B.</t>
        </section>
      </section>

      <section title="Protocol 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 MUST
        check first whether the "Match" bit is "DENY" or not.</t>

        <t>If the "Match" bit is "PERMIT", and is the "default" entry (the
        overload 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 MUST be discarded and a warning MUST 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 checks 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 if (Action is ADD) {
S05.         Overwrite the old VPN Prefix ORF entry with the new
             one.
S06. } else if (Action is REMOVE) {
S07.         The corresponding VPN Prefix ORF entries should be 
             removed from the ORF-Policy table.
S07. } else {
                Remove all VPN Prefix ORF entries SHOULD be 
                removed from the ORF-Policy table. 
S08. }
]]></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 MUST use NEXT_HOP or ORIGINATOR_ID as the
        originator 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 "Overload 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.
S07.     } else {
S08.         The receiver withdraws 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.
S09. }
]]></artwork>
          </figure></t>

        <t>The procedure above can be used for route refresh processing after
        getting the ORF update and the usual VPN route propagation. A change
        to the ORF prefixes will trigger a re-scan of the relevant routing
        information, followed by a route refresh; in contrast, regular
        individual VPN route updates are subject only to matching against the
        existing ORF rules.</t>
      </section>
    </section>

    <section title="Source PE Extended Community">
      <t>Next hop does not always identify the source as 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 Autonomous System Boundary Router (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 the 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>This section extends route reflection behaviours, which means if
      someone wants this new feature extension, then the RR needs to do
      something additional as above.</t>
    </section>

    <section title="Operational Considerations">
      <section title="Quota value calculation">
        <t>The VPN Prefix ORF mechanism is designed for intra-domain BGP/MPLS
        IP VPN <xref target="RFC4364"/> and BGP/MPLS Ethernet VPN (EVPN) <xref
        target="RFC7432"/> deployments where multiple VRFs on a Provider Edge
        (PE) router exchange VPN routes via a single shared iBGP session
        (typically with a Route Reflector).</t>

        <t>This mechanism operates in two modes:<list style="symbols">
            <t>Basic mode: Triggered solely by VRF-level prefix limits. No
            per-source quota configuration is required. In this mode, the PE
            sends a VPN Prefix ORF only when all VRFs that import the same
            Route Target(s) have exceeded their respective prefix limits.</t>

            <t>Granular mode (optional): Enabled when operators configure
            per-&lt;Route Distinguisher, Source PE&gt; quotas via their
            Network Management System (NMS) or CLI. This allows finer-grained
            control, enabling ORF triggering even if only one VRF exceeds its
            limit while others sharing the same RT remain
            healthy&mdash;provided the offending routes originate from a
            specific source.</t>
          </list></t>

        <t>Quota is a threshold to limit the number of VPN routes under
        specific granularities (such as &lt;PE&gt;, &lt;RD, Source AS&gt;). In
        deployment, quota values SHOULD be set and delivered by the Network
        Management System (NMS).</t>

        <t>When the granular mode is enabled, an operator may configure a
        quota for each &lt;RD, Source PE&gt; tuple imported into a VRF. This
        quota represents the maximum number of prefixes allowed from that
        specific source for the given RD.</t>

        <t>The quota value can be derived based on historical traffic
        patterns, service level agreements (SLAs), or static provisioning via
        NMS/CLI. It is not a prerequisite for the VPN Prefix ORF mechanism to
        operate; the mechanism defaults to VRF-level prefix limit enforcement
        if no per-source quotas are configured.</t>

        <t>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="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 need to be withdrawn and
        manually trigger the withdraw process.</t>

        <t>The withdrawal of the VPN Prefix ORF mechanism is manually
        triggered, and its activation requires two conditions: <list
            style="numbers">
            <t>Network operation and maintenance personnel have confirmed
            through device alarms that the issue of "overload routes", which
            originally caused the VRF route count to exceed the limit --- has
            been resolved;</t>

            <t>Operation and maintenance personnel have located the target ORF
            entry to be withdrawn. Devices record the VPN Prefix ORF entries
            sent by each VRF, providing a basis for personnel to locate the
            target of the withdrawal.</t>
          </list></t>

        <t>Operation and maintenance personnel manually configure withdrawal
        commands on the device that triggered the ORF (typically the original
        ORF sender, such as a PE with an exceeded route limit). The commands
        MUST include the unique identification information of the target ORF
        entry, and set the "Action" field of the ORF entry to "REMOVE" (for
        removing a single entry) or "REMOVE-ALL" (for removing all entries of
        the same type).</t>

        <t>The withdrawal of ORF entries relies on manual intervention from a
        management entity (e.g., NMS), and there is no automatic withdrawal
        mechanism. This is to prevent route disruptions caused by
        misoperations.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>This draft adds no new security considerations beyond those of <xref
      target="RFC5291"/>.</t>
    </section>

    <section title="IANA Considerations">
      <section anchor="iana" title="VPN Prefix Outbound Route Filter">
        <t>This document defines a new Outbound Route Filter type - VPN Prefix
        Outbound Route Filter (VPN Prefix ORF). This new ORF type SHOULD be
        registered under "BGP Outbound Route Filtering (ORF) Types", value 66
        has been allocated to this new ORF type by IANA.</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
]]></artwork>
        </figure>

        <t/>
      </section>

      <section title="VPN Prefix ORF TLV types">
        <t>This document 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 | 3(suggested)|ORIGINATOR_ID in Source PE |
 |TLV                  |             |Extended Community for     |
 |                     |             |source PE                  |
 +---------------------+-------------+---------------------------+
 |Source AS TLV        | 4(suggested)|Source AS for source PE    |
 +---------------------+-------------+---------------------------+
 |Route Target TLV     | 5(suggested)|Route Target of the        |
 |                     |             |overload VPN routes        |
 +---------------------+-------------+---------------------------+
]]></artwork>
          </figure></t>

        <t/>
      </section>

      <section title="Source PE Extended Community">
        <t>This document also requests a new Transitive Extended Community
        Type. The new Transitive Extended Community Type name SHALL be "Source
        PE Extended Community".<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="Commen part of ORF entry">
        <t>This document defines the encoding of the common part of ORF
        entries as follows:<figure align="left">
            <artwork><![CDATA[ 0 1 2 3 4 5 6 7 
+-+-+-+-+-+-+-+-+
| A |M|O|R|R|R|R|
+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t>A (2 bits): specifies the Action of this entry.</t>

        <t>M (1 bit): specifies the Match method of this entry.</t>

        <t>O (1 bit): specifies the overload VPN routes process method.</t>

        <t>R (4 bits): reserved.</t>
      </section>
    </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.7543'?>

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

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

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

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

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

      <?rfc include='reference.RFC.8174'?>
    </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 overload
          routes in intra-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>Since all existing standards defining new ORF types are under the
      standard track, the authors of this draft would like to inquire whether
      this document can be reclassified into the standard track.</t>

      <t/>
    </section>

    <section title="Intra-domain Scenarios and Solutions">
      <section title="Scenario 1: unique RD (per VPN, per PE)">
        <t>In this scenario, PE1-PE4 and RR are iBGP peers. RD is allocated
        per VPN per PE. The overload VPN routes only carry one RT. We assume
        that the network topology is shown in Figure 1.<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>

        <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 overload VPN
        routes will influence performance of VRFs on PEs. PEs and RR need to
        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 cannot 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 cannot 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 overload VPN routes
             according to the value of "Overload
             VPN routes process method".
S06.     }
S07. }
]]></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. 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 overload VPN routes
             and controls the number of VPN routes according to 
             the value of "Overload VPN routes process method".
S04.     } else {
S05.         PE2 cannot 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 cannot be triggered.
S04.     } else {
S05.         If (the prefix limit of VPN2 VRF is not exceeded) {
S06.             PE2 cannot 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 overload VPN 
                 routes according to the value of "Overload VPN
                 routes process method".
S09.         }
S10.     }
S11. }
]]></artwork>
          </figure></t>

        <t/>
      </section>

      <section title="Scenario 2: the same RD (per VPN, same on all PEs)">
        <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 2.<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 2 Network Topology of Scenario 2
]]></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 overload 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
        Scenario 1, which is modified as follows:<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 "Overload VPN routes process method".
]]></artwork>
          </figure></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 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 overload VPN 
                 routes according to the value of "Overload 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 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 "Overload VPN 
         routes process method".
]]></artwork>
          </figure></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 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 "Overload VPN routes process method".
]]></artwork>
          </figure></t>

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

    <section title="Applicability">
      <t>Using the scenario 1 in Appendix B, 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 needs to 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>Overload 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/>

      <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>Overload 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>
  </back>
</rfc>
