<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-fu-bess-evpn-umr-application-01"
     ipr="trust200902">
  <front>
    <title abbrev="UMR application in Ethernet VPN(EVPN)">UMR application in
    Ethernet VPN(EVPN)</title>

    <author fullname="Zheng Fu" initials="Z." surname="Fu">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No.101 Software Avenue, Yuhuatai District</street>

          <city>Nanjing</city>

          <code>210012</code>

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

        <email>fuzheng7@huawei.com</email>
      </address>
    </author>

    <author fullname="Tong Zhu" initials="T." surname="Zhu">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No.101 Software Avenue, Yuhuatai District.</street>

          <city>Nanjing</city>

          <code>210012</code>

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

        <email>zhu.tong@huawei.com</email>
      </address>
    </author>

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

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

          <city>Beijing</city>

          <code>100095</code>

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

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

    <author fullname="Jian Dai" initials="J." surname="Dai">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No.101 Software Avenue, Yuhuatai District</street>

          <city>Nanjing</city>

          <code>210012</code>

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

        <email>daijian2@huawei.com</email>
      </address>
    </author>

    <author fullname="Dawei Wang" initials="D." surname="Wang">
      <organization>Huawei Technologies</organization>

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

          <city>Beijing</city>

          <code>100095</code>

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

        <email>wang.dawei@huawei.com</email>
      </address>
    </author>

    <date day="17" month="November" year="2023"/>

    <abstract>
      <t>This document describes an application scenario that how unknown
      MAC-route(UMR) is used in the EVPN network. In particular, this document
      describes how MAC address route and UMR route are advertised on DC's GW
      or NVE. This document also describes the soloution that MAC mobility
      issue due to the lack of advertisement of specific MAC routes. However,
      some incremental work is required, which will be covered in a separate
      document.</t>
    </abstract>

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

  <middle>
    <section title="Introduction">
      <t>In DCI scenario, if multiple DCs are interconnected into a single
      EVI, each DC will have to import all of the MAC addresses from each of
      the other DCs. <xref target="RFC9014"/>. In addition, in user
      authentication scenario, a large number of users send authentication
      packets to the aggregation device through the access device, as a
      result, there are large scale of MAC addresses on RRs and aggregation
      devices. This document describes the use of the Unknown MAC-route(UMR).
      The solution advertises an unknown MAC-route (UMR) route<xref
      target="RFC9014"> </xref> instead of advertising all specific MAC routes
      and reducing the MAC scale.</t>
      <t>However, since the solution only sends UMR routes instead of
      advertising specific MAC routes, the MAC mobility function of EVPN
      cannot take effect normally. In particular, this document describes
      a MAC mobility procedure in UMR scenario.</t>
      <t>Also, This document discusses how the functional requirements for
      E-Tree service<xref target="RFC8317"> </xref> can be met with a
      solution based on UMR application in EVPN. The details of this
      function are described in Section 5.</t>
    </section>

    <section title="Terminology">
      <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 BCP14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>

      <t>"GW": Gateway or Data Center Gateway</t>

      <t>"DC": Data Center</t>

      <t>"NVE": Network Virtualization Edge</t>

      <t>"UMR": Unknown MAC Route</t>

      <t>"E-Tree": Ethernet-Tree</t>

      <t>"I-ES and I-ESI": Interconnect Ethernet Segment and Interconnect
      Ethernet Segment Identifier. An I-ES is defined on the GWs for
      multihoming to/from the WAN.</t>
    </section>

    <section title="The procedure of UMR">
      <t><figure>
          <artwork align="center"><![CDATA[              +----------+                
              |          |                
              |    GW    |                
              |          |                
              +----,-----+                
                  /   `.                  
                .'      ',                
               .`         .               
              /            `,             
            EVPN           EVPN           
           ,'                 `.          
          /                     ',        
         `                        .       
       ,'                          `,     
   +------+                      +---'--+ 
   |      |                      |      | 
   |  NVE1|                      |  NVE2| 
   |      |                      |      | 
   +------+                      +------+ 
  |---DC1---|                    |--DC2--|

  Figure 1
]]></artwork>
        </figure></t>

      <t>1. All the MAC addresses are learned on NVE1/NVE2 within DC should
      advertised to DC's GW device accrording EVPN MAC/IP routes in the
      control plane.</t>

      <t>2. All the MAC addresses are learned on NVE within DC should
      advertised to the other NVE that in the same DC, so that the NVE to NVE
      that in the same DC communication is always direct and does not go
      through the GW<xref target="RFC7543"/>.</t>

      <t>3. The MAC addresses are learned on NVE should not advertised to the
      other NVE that in the different DC.</t>

      <t>4. The DC's GW advertise UMR route to NVE1/NVE2 instead of
      advertising the specific MAC in order to reduce the device's routes
      pressure. The UMR route is defined in <xref target="RFC7543"/> <xref
      target="RFC9014"/>and is a regular EVPN MAC/IP advertisement route in
      which the MAC address length is set to 48, the MAC address is set to 0,
      and the ESI field is set to DC's GW I-ES.</t>

      <t>5. NVE1/NVE2 need to understand and process the UMR route, send frame
      to GW. Then GW will forward the packet to correct NVE.</t>
    </section>

    <section title="MAC Mobility for UMR">
      <t>As shown above, since GW only sends UMR routes to NVE devices, NVE
      will not import the MAC addresses of NVEs in different DCs. When the MAC
      of DC1 migrates from NVE1 to DC2's NVE2, NVE1 will not perceive
      this migration and keep learning the MAC that has migrated to NVE2. As a
      result, the frame traffic to MAC from GW may go to wrong site.</t>

      <section title="MAC Mobility Issue">
        <t>Step1: The user first goes online from NVE1, NVE1 learns the user's
        MAC1, and advertise EVPN MAC1 route to GW.</t>

        <t>Step2: The GW receives the MAC1 route from NVE1, installs MAC1 to
        the local MAC-VRF table which the next hop of MAC1 is NVE1. Since it
        only sends UMR routes to NVE, it will not send EVPN MAC1 route to
        NVE2.</t>

        <t>Step3: The user migrates to NVE2 and goes online. NVE2 learns the
        user's MAC1 and advertise EVPN MAC1 route to GW.</t>

        <t>Step4: The GW receives the MAC1 route from NVE2, which has the same
        prefix as the MAC1 route from NVE1, as a result, the GW will form load
        balancing MAC-VRF table.</t>

        <t>Step5: As a result, the frame traffic sent to MAC1 via the GW may
        be sent to NVE1 by mistake until MAC1 on NVE1 ages out.</t>
      </section>

      <section title="MAC Mobility Solution">
        <t>In order to solve this mac migration issue, the GW SHOULD advertise
        the MAC route to the NVE when the GW detect the MAC has been migrated.
        There are two scenarios as follows.</t>

        <t>1. One of the scenario:</t>

        <t>Step1: When the GW receives MAC routes that have the same prefix,
        rather than different next hop and different ESI, the following
        conclusion can be drawn, which the MAC has been migrated. At the same
        time, the GW only send UMR route.</t>

        <t>Step2: If MAC route from NVE1 is selected as the best, the GW
        advertise MAC1 route to NVE2 with a MAC mobility extended
        community<xref target="RFC7432"/>, that carrying the increased seq
        number.</t>

        <t>Step3: The NVE2 receives the MAC1 route with MAC mobility extended
        community, and will select the MAC1 from the GW as the best, and
        withdraw the MAC1 originally sent to the GW.</t>

        <t>Step4: The traffic from user will re-triggers NVE2 to learn the
        local MAC1, which resulting in migration, and the NVE2 will advertise
        MAC1 route with MAC mobility extended community that carrying the seq
        + 1.</t>

        <t>Step5: When the GW receives the MAC1 route with MAC mobility
        extended community that carrying seq + 1, the GW will select the MAC1
        from NVE2 as best, and send MAC1 route with seq + 1 to NVE1.</t>

        <t>Step6: After receiving the MAC1 route with MAC mobility extended
        community that carrying seq + 1, the NVE1 will select the MAC1 from
        the GW as the best, and withdraw the MAC1 originally sent to the
        GW.</t>

        <t>2. The other scenario:</t>

        <t>Step1: When the GW receives MAC routes that have the same prefix,
        rather than different next hop and different ESI, the following
        conclusion can be drawn, which the MAC has been migrated. At the same
        time, the GW only send UMR route.</t>

        <t>Step2: If MAC route from NVE2 is selected as the best, the GW
        advertise MAC1 route to NVE1 with a MAC mobility extended community,
        that carrying the increased seq number.</t>

        <t>Step3: After receiving the MAC1 route with MAC mobility extended
        community that carrying seq + 1, the NVE1 will select the MAC1 from
        the GW as the best, and withdraw the MAC1 originally sent to the
        GW.</t>
      </section>
    </section>

    <section title="E-tree for UMR">
      <t>In this scenario, since PE only sends UMR routes to remote PE devices
      instead of advertising the specific MAC, In this case, it is not
      possible to identify whether the UMR routes originates from Root
      ACs or Leaf ACs. In this way, unicast traffic isolation between
      Leafs cannot be achieved.</t>

        <section title="Scenario 1: Leaf or Root Site(s) per EVI">
          <t>In this scenario, a given EVPN Instance (EVI) on PE device is
          either associated with Root(s) or Leaf(s), but not both. PE may
          receive traffic from either Root ACs or Leaf ACs for a given
          MAC-VRF/bridge table with UMR route. So the UMR route to Leaf ACs
          or Root ACs of a given EVPN Instance need to be colored with a Root
          or Leaf-Indication before advertising to remote PE. E-Tree Extended
          Community<xref target="RFC8317"> </xref> can be used for such
          coloring. The leaf-indication indicates the UMR route has a leaf
          attribute. When the E-Tree extended community is advertised with
          the UMR advertisement route, the Leaf-Indication flag MUST be
          set to one and the Leaf label SHOULD be set to zero.</t>

          <t><figure>
          <artwork align="center"><![CDATA[
                   +---------+            +---------+
                   |   PE1   |            |   PE2   |
    +---+          |  +---+  |            |  +---+  |            +---+
    |CE1+---AC1----+--+   |  |            |  |   +--+----AC3-----+CE3|
    +---+  (Leaf)  |  |MAC|  | ---EVPN--- |  |MAC|  |   (Leaf)   +---+
                   |  |VRF|  |            |  |VRF|  |
    +---+          |  |   |  |            |  |   |  |
    |CE2+---AC2----+--|   |  |            |  |   |  |
    +---+  (Leaf)  |  +---+  |            |  +---+  |
                   +---------+            +---------+
  Figure 2
]]></artwork>
            </figure></t>
        </section>

        <section title="Scenario 2: Leaf or Root Site(s) per AC">
          <t>In this scenario, a given EVPN Instance (EVI) on PE device can be
          associated with both Root(s) and Leaf(s). For example, in the figure
          below, PE for an EVPN Instance (EVI) has both Leaf and Root ACs.
          In this scenario, ingress filtering for known unicast traffic is
          not performed just like scenario-1 and thus need to receive the unicast
          traffic and perform egress filtering.</t>

          <t>In order to perform egress filtering for unicast traffic received
          at the egress PE, the ingress PE need to color the unicast traffic
          in data-plane to indicate if the traffic is coming from a Root or Leaf AC.
          E-Tree Extended Community<xref target="RFC8317"> </xref> also can be used
          for such scenario. When the E-Tree extended community is advertised with
          the UMR advertisement route for such scenario, the Leaf-Indication flag
          MUST be set to zero and the Leaf label MUST be valid.</t>

          <t><figure>
          <artwork align="center"><![CDATA[
                   +---------+            +---------+
                   |   PE1   |            |   PE2   |
    +---+          |  +---+  |            |  +---+  |            +---+
    |CE1+---AC1----+--+   |  |            |  |   +--+----AC3-----+CE3|
    +---+  (Leaf)  |  |MAC|  | ---EVPN--- |  |MAC|  |   (Leaf)   +---+
                   |  |VRF|  |            |  |VRF|  |
    +---+          |  |   |  |            |  |   |  |            +---+
    |CE2+---AC2----+--|   |  |            |  |   +--+----AC4-----+CE4|
    +---+  (Root)  |  +---+  |            |  +---+  |   (Root)   +---+
                   +---------+            +---------+
  Figure 3
]]></artwork>
            </figure></t>
        </section>

        <section title="Known Unicast Traffic For Leaf or Root Site(s) per EVI">
          <t>To provide the ingress filtering for known unicast traffic, a PE
          MUST indicate to other PEs what kind of sites (Root or Leaf) its UMR
          MAC address are associated with. This is done by advertising a Leaf-Indication
          flag via E-Tree extended community <xref target="RFC8317"> </xref>
          along with its UMR MAC/IP Advertisement routes learned from a Leaf site.
          This E-Tree extended community MUST be advertised with UMR MAC/IP
          Advertisement routes learned from a Leaf site. The lack of such a flag
          indicates that the UMR MAC address is associated with a Root site.
          This scheme applies to scenario-1 (Leaf or Root Site(s) per EVI)
          described in Section 5.</t>

          <t>Tagging UMR MAC address with a Leaf-Indication enables remote PEs to
          perform ingress filtering for known unicast traffic. After receiving the UMR,
          PE2 generates a default MAC address entry comprising a full zero MAC address
          and the a leaf-indication. So, on the ingress PE, the MAC destination address
          lookup yields (in addition to the UMR forwarding adjacency) a flag than
          indicates whether or not the target UMR MAC is associated with a Leaf site.
          The ingress PE(e.g. PE2) cross-checks this flag with the status of the
          originating AC, and if both are Leafs, then the packet is dropped. Otherwise,
          if both are not leafs, then the packet is forwarded.</t>
        </section>

        <section title="Known Unicast Traffic For Leaf or Root Site(s) per AC">
          <t>This section specifies the procedure for egress filtering of known
          unicast traffic with MPLS encapsulation. To support scenario-2 efficiently,
          egress filtering of known unicast traffic is required as described below.
          In order to apply the proper egress filtering, which varies based on whether
          a packet is sent from a Leaf AC or a Root AC, the MPLS-encapsulated frames
          MUST be tagged with an indication of when they originated from a Leaf AC.
          This Leaf label allows for disposition PE (e.g., egress PE) to perform
          the necessary egress filtering function in a data plane similar to the MPLS
          label1 in [RFC7432].</t>

          <t>If a PE receive UMR route with E-Tree extended community that has both
          Root-Indication and Leaf-Indication set along with a valid Leaf label, then
          the receiving PE (Root-only, Root-and-Leaf, or Leaf-only) add both MPLS
          label1 <xref target="RFC7432"> </xref> and Leaf label to MAC-VRF/bridge table.</t>

          <t>The ingress PE cross-checks this flag with the status of the originating AC.
          If the originating AC is Leaf, then the packet is encapsulated in the
          EVPN Leaf label advertised by the remote PE, for that MAC address, and in the
          MPLS LSP label stack to reach the remote PE<xref target="RFC7432"> </xref>.
          Accroding to receiving the packet with Leaf label, the egress PE checks the
          MAC-VRF/bridge table according to the destination MAC and filtering the Leaf
          AC before forwarding. If the originating AC is Root, then the packet is
          encapsulated in the EVPN MPLS label addvertised by the remote PE, for that
          MAC address, and in the MPLS LSP label stack to reach the remote PE. If the
          top MPLS label ends up being an EVPN label that was advertised in the unicast
          MAC advertisements, then the PE either forwards the packet based on CE next-hop
          forwarding information associated with the label or does a destination MAC
          address lookup to forward the packet to a CE<xref target="RFC7432"> </xref>.</t>
        </section>
    </section>

    <section title="IANA considerations">
      <t>TBD</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD</t>
    </section>
  </middle>

  <back>
    <references title="References">
      <references title="Normative References">
        <?rfc ?>
        <?rfc include="reference.RFC.2119"?>
        <?rfc include="reference.RFC.8174"?>
        <?rfc include="reference.RFC.7432"?>
        <?rfc include="reference.RFC.7543"?>
        <?rfc include="reference.RFC.9014"?>
        <?rfc include="reference.RFC.8317"?>
      </references>
      
      <references title="Informative References">
      </references>
    </references>
  </back>
</rfc>
