<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.28 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-mackenzie-bess-evpn-l3mh-proto-00" category="std">

  <front>
    <title abbrev="EVPN L3MH">EVPN multi-homing support for L3 services</title>

    <author initials="M." surname="MacKenzie" fullname="Michael MacKenzie" role="editor">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>
        <email>mimacken@cisco.com</email>
      </address>
    </author>
    <author initials="P." surname="Brissette" fullname="Patrice Brissette">
      <organization abbrev="Cisco">Cisco Systems</organization>
      <address>

        <email>pbrisset@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Matsushima" fullname="Satoru Matsushima">
      <organization abbrev="Softbank">Softbank</organization>
      <address>
        <email>satoru.matsushima@g.softbank.co.jp</email>
      </address>
    </author>

    <date year="2021"/>

    <area>Routing</area>
    <workgroup>BESS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>
<t>This document brings the machinery and solution providing higher network
availability and load balancing benefits of EVPN Multi-Chassis Link Aggregation
Group (MC-LAG) to various L3 services delivered by EVPN.</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">RFC 2119</xref>
      and <xref target="RFC8174">RFC 8174</xref>.
      </t>
    </note>
  </front>

  <middle>


<section anchor="problems" title="Introduction">

<t>Resilient L3VPN service to a CE requires multiple service PEs to run a
MC-LAG mechanism, which previously required a proprietary ICL control
plane link between them.</t>

<t>This proposed extension to <xref target="RFC7432"/> brings EVPN based MC-LAG
all-active multi-homing load-balancing to various services (L2 and L3) delivered
by EVPN.
Although this solution is also applicable to some L2 service use cases,
(example Centralized Gateway) this document will focus on
the L3VPN <xref target="RFC4364"/> use case to provide examples.</t>

<t>EVPN MC-LAG is completely transparent to a CE device,
and provides link and node level redundancy with load-balancing using the
existing BGP control plane required by the L3 services.</t>

<t>For example, the L3VPN service can be MPLS, VxLAN or SRv6 based, and does not
require EVPN signaling to remote neighbors.
The EVPN signaling will be limited to the redundant service PEs sharing
a Ethernet Segment Identifier (ESI).
This will be used to synchronize ARP/ND, multicast Join/Leave, and IGP routes
replacing need for ICL link.</t>

<figure title="EVPN MC-LAG Topology" anchor="fig-mclag-bundle"><artwork><![CDATA[
                    +-----+
                    | PE3 |
                    +-----+
                 +-----------+
                 |  MPLS/IP  |
                 |  CORE     |
                 +-----------+
               +-----+   +-----+
               | PE1 |   | PE2 |
               +-----+   +-----+
                  |         |
                  I1       I2
                    \     /
                     \   /
                     +---+
                     |CE1|
                     +---+
]]></artwork></figure>

<t>Figure 1 shows a MC-LAG multi-homing topology where PE1 and PE2 are
part of the same redundancy group providing multi-homing to CE1 via
interfaces I1 and I2.
Interfaces I1 and I2 are Bundle-Ethernet interfaces running LACP protocol.
The CE device can be a layer-2 or layer-3 device connecting to the redundant
PEs over a single LACP LAG port.  In the case of a layer-3 CE device, this
document looks to solve the case of an IGP adjacency between PEs and CE, but
further study is needed to support BGP PE to CE protocols.
The core, shown as IP or MPLS enabled, provides wide range of L3 services.
MC-LAG multi-homing functionality is decoupled from those services in
the core and it focuses on providing multi-homing to CE.</t>

<t>To deliver resilient layer-3 services and provide traffic load-balancing towards
the access, the two service PEs will advertise layer-3
reach-ability towards the layer-3 core and will both be eligible to receive
traffic and forward towards the Access.</t>

<section anchor="problem-unicast" title="Problems with unicast load-balancing from core to CE">
<t>The layer-2 hashing performed by CE over its LAG port means that its possible
for only one service PE to populate its ARP/ND cache.
Take for example PE1 and PE2 from <xref target="fig-mclag-bundle"/>.  If CE1 ARP/ND response
happens to always hash over I1 towards PE1, then PE2 ARP/ND table will be empty.
Since unicast traffic from remote PEs can be received by either service PE,
traffic that reaches the service PE2 will not find an ARP entry matching
the host IP address and traffic will drop until ARP/ND resolves the adjacency.</t>

<t>If the CEs hash implementation always calculates the ARP/ND response towards
PE1, the resolution on PE2 will never happen and traffic load balanced to
PE2 will black-hole.</t>

<t>The route sync solution is described in <xref target="solution-route-sync"/></t>

</section>
<section anchor="problem-multicast" title="Problems with multicast from core to CE">
<t>Similar to the unicast behavior above, multicast IGMP join messages
from CE to LAG link may always hash to a single PE.</t>

<t>When PIM runs on both redundant layer-3 PEs that both service
multicast for the same access segment, PIM elects only one of the PEs as a
PIM Designated Router (DR) using PIM DR election algorithm <xref target="RFC7761"/>. The
PIM DR is responsible for tracking local multicast listeners and forwarding
traffic to those listeners. The PIM DR is also responsible for sending local
Join/Prune messages towards the RP or source.</t>

<t>For example, if in <xref target="fig-mclag-bundle"/> PE2 is designated PIM-RP, but CE IGMP
join messages are hashed to I1 towards PE1, then multicast traffic will not be
attracted to this service pair as PE2 will not send PIM Join on behalf of CE.</t>

<t>In order to ensure that the PIM DR always has all the MCAST route(s) and able to
forward PIM Join/Prune message towards RP, BGP-EVPN multicast route-sync will
be leveraged to synchronize MCAST route(s) learned to the DR.</t>

<t>When a fail-over occurs, multicast states would be pre-programmed on the newly
elected DR service PE and assumes responsibility for the routing and forwarding of
all the traffic.</t>

<t>The multicast route sync solution is described in <xref target="solution-igmp-route-sync"/></t>

</section>
<section anchor="problem-adj" title="Problems with IGP adjacencies over the LAG port">

<t>A layer-3 CE device/router that connects to the redundant PEs may
establish an IGP adjacency on the bundle port. In this case, the adjacency will
be formed to one of the PEs and IGP customer route(s) will only be present on
that PE.</t>

<t>This prevents the load-balancing benefits of redundant PEs from supporting this
use case, as only one PE will be aware and advertising the customer routes
to the core.</t>

<figure title="IGP Adjacency over LAG Port" anchor="fig-igp-adjacency"><artwork><![CDATA[
                  <---------+
                            | IGP Adj
    +-------+               |
    |       | 1.1.1.1/24    |
    | PE1   +-----------+   |
    |       |           |   |
    |       |           |   +
    +-------+           |
                        |
        +               |  +------+
  RT5   |             L |  | CE   +------>H1
  Sync  |             A +->+      |
        v             G |  |      |
                        |  |      +------>R1
    +-------+           |  +------+
    |       |           |    1.1.1.2/2
    | PE2   +-----------+
    |       | 1.1.1.1/24
    |       |
    +-------+

]]></artwork></figure>

<t><xref target="fig-igp-adjacency"/> provides an example of this use case, where CE forms
an IGP adjacency with PE1 (example: ISIS or OSPF),
and advertises its H1 and R1 routes into the IP-VRF
of PE1.   PE1 may then redistribute this IGP route into the core as an L3
service.   Any remote PEs will only be aware of the service from PE1, and cannot
load balance through PE2 as well.</t>

<t>Further study is required in order to support the case of BGP PE to CE
protocols.</t>

<t>A solution to this is described in <xref target="solution-subnet-sync"/></t>

</section>
<section anchor="problem-ac-aware" title="Problems with supporting multiple subnets on same ES in all active mode">
<t>In the case where the L3 service is L3VPN such as <xref target="RFC4364"></xref>, it is likely
the CE device could be a layer-2 switch supporting multiple subnets through
the use of VLANs. In addition, each VLAN may be associated with a different
customer VRF.</t>

<t>When ARP/ND routes are synchronized between the PEs for ARP proxy support using
RT-2, a similar problem is encountered as described by Section 1.1
of <xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>.  The PE receiving RT-2 is
unable to determine which sub-interface the ARP/ND entry is associated with.</t>

<t>When IGMP routes are synchronized between the PEs using RT-7 and RT-8, a similar
problem is encountered as described by Section 1.2
of <xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>.  The PE receiving RT-7 and RT-8
is unable to determine which sub-interface the IGMP join is associated with.</t>

<t>This document proposes to use the solution defined by Section 4
of <xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/> to solve both these cases.
All route sync messages (RT-2, RT-5, RT-7, RT-8) will carry an Attachment Circuit
Identifier Extended Community to signal which sub-interface the routes
were learnt on.</t>

</section>
<section anchor="acronyms" title="Acronyms">

<t><list style="hanging">
  <t hangText="BD:">
  Broadcast Domain.  As per <xref target="RFC7432"></xref>, an EVI consists of a single or
 multiple BDs.  In case of VLAN-bundle and VLAN-aware bundle service model,
 an EVI contains multiple BDs.</t>
  <t hangText="DF:">
  Designated Forwarder</t>
  <t hangText="DR:">
  Designated Router</t>
  <t hangText="EC:">
  BGP Extended Community</t>
  <t hangText="ES:">
  Ethernet Segment. When a customer site (device or network) is connected to
 one or more PEs via a set of Ethernet links, then that set of links is
 referred to as an ‘Ethernet Segment’.</t>
  <t hangText="ESI:">
  Ethernet Segment Identifier.
 A unique non-zero identifier that identifies an Ethernet Segment is
 called an ‘Ethernet Segment Identifier’.</t>
  <t hangText="ETAG:">
  Ethernet Tag. An Ethernet tag identifies a particular broadcast domain, e.g., a VLAN.
 An EVPN instance consists of one or more broadcast domains.</t>
  <t hangText="EVI:">
  An EVPN instance spanning the Provider Edge (PE) devices
 participating in that EVPN</t>
  <t hangText="ICL:">
  Inter Chassis Link</t>
  <t hangText="IGMP:">
  Internet Group Management Protocol</t>
  <t hangText="IP-VRF:">
  A VPN Routing and Forwarding table for IP routes on an PE.
 The IP routes could be populated by EVPN and IP-VPN address
 families.  An IP-VRF is also an instantiation of a layer 3 VPN in an PE.</t>
  <t hangText="L3AA">
  All-Active Redundancy Mode for Layer 3 services.
 When all PEs attached to an Ethernet segment are allowed to forward known
 unicast traffic to/from that Ethernet segment for a given VLAN,
 then the Ethernet segment is defined to be operating in All-Active redundancy mode.</t>
  <t hangText="MAC-VRF:">
  A Virtual Routing and Forwarding table for Media Access Control (MAC)
 addresses on a PE. A MAC-VRF is also an instantiation of an EVI in a PE</t>
  <t hangText="MC-LAG:">
  Multi-Chassis Link Aggregation Group (MC-LAG).</t>
  <t hangText="PE:">
  Provider Edge.</t>
  <t hangText="PIM:">
  Protocol Independent Multicast</t>
  <t hangText="RT-2:">
  EVPN route type 2, i.e., MAC/IP advertisement route, as defined
in <xref target="RFC7432"/>.</t>
  <t hangText="RT-5:">
  EVPN route type 5, i.e., IP Prefix route, as defined in
Section 3 of <xref target="I-D.ietf-bess-evpn-prefix-advertisement"/></t>
  <t hangText="RT-7:">
  EVPN route type 7, i.e., Multicast Join Synch Route, as defined in
Section 9.2 of <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/></t>
  <t hangText="RT-8:">
  EVPN route type 8, i.e., Multicast Leave Synch Route, as defined in
Section 9.3 of <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/></t>
</list></t>

</section>
<section anchor="requirements" title="Requirements">

<t><list style="numbers">
  <t>The multi-homing solution MUST support Layer-3 access interface</t>
  <t>The multi-homing solution MUST support Layer-3 access sub-interface</t>
  <t>The solution MUST support unicast and multicast VPN services</t>
  <t>The solution SHOULD support igp synchronization</t>
  <t>The solution SHOULD support unicast and multicast GRT services</t>
  <t>The solution MUST support all-active load-balancing mode</t>
  <t>The solution MAY support single-active load-balancing mode</t>
  <t>The solution MUST support port-active load-balancing mode</t>
</list></t>

</section>
</section>
<section anchor="solution" title="Solution">

<figure title="ARP/ND MAC-IP route-sync over different VRF(s)" anchor="fig-esi-to-vrf"><artwork><![CDATA[
+------
|     +-------+ .1 10.0.0.1/24
| PE1 || BE1  +---------------------------------+
|     || ESI-1|                                 |
|     ||      | .2 10.0.0.1/24                  |
|     ||      +-------------------------+       |
|     +-------+                         |       |
|     |                                 |       |
|     +-------+ 10.0.1.1/24             |       |
|     || BE2  +------------------+      |       |
|     || ESI-2|                  |      |       |
|     ||      |                 +v----+ |       |
|     ||      |                 |CE1  | |       |
|     +-------+                 |.2   | |       |
+------                         |CUST1| |       |
                                +^----+ |       |
+------                          |     +v-----+-v----+
|     +-------+ 10.0.1.1/24      |     |SW1   |      +-->H1(.2)
| PE2 || BE2  +------------------+     |CUST2 |CUST1 |
|     || ESI-2|                        +^-----+-^----+
|     ||      |                         |       |
|     ||      |                         |       |
|     +-------+                         |       |
|     |                                 |       |
|     +-------+ .2 10.0.0.1/24          |       |
|     || BE1  +-------------------------+       |
|     || ESI-1|                                 |
|     ||      | .1 10.0.0.1/24                  |
|     ||      +---------------------------------+
|     +-------+
+------

PE(1,2):
CUST1-VRF: EVI 1
CUST2-VRF: EVI 2

SW1:
CUST1-Subnet1: 10.0.0.2/24 (VLAN 1)
CUST2-Subnet1: 10.0.0.2/24 (VLAN 2)

CE1:
CUST1-Subnet2 10.0.1.2/24


]]></artwork></figure>

<t>Consider the <xref target="fig-esi-to-vrf"/> topology, where 2 AC aware bundling service
interfaces are supported.
On first bundling interface BE1, PE1 and PE2 share a LAG interface with
switch 1 (SW1) and have 2 separate (but overlapping) customer 1 and customer 2
subnets.  CUST1 Subnet 1 is resolving over sub-interface VLAN 1 (.1),
and CUST2 Subnet 1 is resolving over sub-interface VLAN 2 (.2).</t>

<t>On second bundling interface BE2, both PEs share a LAG interface with Customer
Edge device 1 (CE1) and only a single Customer (CUST1) subnet on native VLAN.</t>

<t>Main interface BE1 on PE1 and PE2 is shared by customer 1 and 2, and represented
by ESI-1.</t>

<t>Main interface BE2 on PE1 and PE2 is only used by customer 1, and represented
by ESI-2.</t>

<t>If we focus on CUST1 for now, there are 2 cases visible.</t>

<t>Case 1:
For CE 1, if its ARP responses hash towards PE2, then PE1 will be
unaware of its presence.   For PE2 to synchronize this information to PE1,
in addition to CE1 IP address (10.0.1.2) and MAC address (m1), 2 additional
unique identifiers are needed.
1. IP-VRF.  CUST 1 VRF is represented by EVI ID 1
2. Interface.  BE2 Interface is represented by ESI-2</t>

<t>Case 2:
For Host 1 (H1), if its ARP responses hash towards PE2, then PE1 will be
unaware of its presence.  For PE2 to synchronize this information to PE1, then
in addition to H1 IP address (10.0.0.2) and MAC address (m2), 3 additional
unique identifiers are required.
1. IP-VRF.  CUST 1 VRF is represented by EVI ID 1
2. Main Interface.  BE1 Interface is represented by ESI-1
3. Sub-Interface.  Subnet/VLAN 1 is represented by Attachment Circuit ID 1.</t>

<section anchor="mapping-of-l3vrf-to-evpn-evi" title="Mapping of L3VRF to EVPN EVI">
<t>A separate EVPN instance will be configured to each layer-3 VRF and be
marked for route-sync only.  Each L3-VRF will have a unique
associated EVI ID.  The multi-homed peer PEs MUST have the same configured
EVI to layer-3 VRF mapping.
This mapping also extends to the GRT, where a unique EVI ID can be assigned to
support non VPN layer-3 services.
Mis-configuration detection across peering PEs are left for further study.</t>

<t>When an EVPN instance is created as route-sync only, a MAC-VRF table is created
to store all advertised routes.  Local MAC learning may be disabled as
this feature does not require MAC-only RT-2 advertisements.</t>

<t>This EVI is applicable to the multi-homed peer PEs only</t>

<t>The EVPN instance will be responsible for populating the following
layer-3 VRF tables from remotely synced routes from peer PE</t>

<t><list style="symbols">
  <t>ARP/ND</t>
  <t>IGMP</t>
  <t>IP (for customer subnets learned from IGP adjacency)</t>
</list></t>

<t>In the example <xref target="fig-esi-to-vrf"/>, route-syncs from VRF CUST1 will
have EVI-RT BGP Extended Community (EC) with EVI 1, and VRF CUST2 will have EVI 2.</t>

</section>
<section anchor="mapping-for-l3-interface-to-esi" title="Mapping for L3 Interface to ESI">
<t>The ESI represents the L3 LAG interface between PE and CEs.
This ESI is signalled using RT-4 with the ES-Import Route Target as described
in Section 8.1.1 of <xref target="RFC7432"/> so that the service PE peers can discover each
others common ES.</t>

<t>In the example <xref target="fig-esi-to-vrf"/>, route-syncs from interface BE1
have ES-Import RT EC with ESI 1</t>

</section>
<section anchor="mapping-for-l3-sub-interface-to-attachment-circuit-id" title="Mapping for L3 Sub-Interface to Attachment Circuit ID">
<t>The Attachment Circuit ID represens the sub-interface subnet on the L3
LAG interface between PE and CEs.
The AC-ID is signalled using RT-2, RT-5, RT-7 and RT-8 by attaching
Attachment Circuit ID Extended community as described in Section 6.1 of
<xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>.</t>

<t>In the example <xref target="fig-esi-to-vrf"/>, route-syncs from sub-interface BE1.1 (VLAN1)
have Attachment-Circuit-ID EC with ID 1</t>

</section>
<section anchor="solution-route-sync" title="Route sync for ARP/ND">
<t>This document proposes solving the issue described in <xref target="problem-unicast"/>
using RT-2 IP/MAC route sync as described in Section 10 of <xref target="RFC7432"/> with a
modification described below.</t>

<section anchor="local-adjacency-arpnd-learning" title="Local adjacency (ARP/ND) learning">
<t>Local ARP/ND learning will trigger a RT-2 route sync to any peer PE.
There is no need for local MAC learning or sync over the L3 interface, only
adjacencies. The MAC-only RT-2 route SHOULD not be advertised to peer PE.</t>

<t>Section 9.1 of <xref target="RFC7432"/> describes different mechanisms to learn adjacency
routes locally.</t>

<t><list style="symbols">
  <t>An ARP/ND Sync route MUST carry exactly one ES-Import Route Target extended
community, the one that corresponds to the ES on which the ARP or ND was
received.</t>
  <t>It MUST also carry exactly one EVI-RT EC, the one that corresponds to the EVI
on which the ARP or ND was received.  The EVI maps the layer-3 VRF
See Section 9.5 of <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/> for details on how to
encode and construct the EVI-RT EC.</t>
  <t>If the case where PE supports AC aware bundling, it MUST also carry one
Attachment Circuit ID Extended Community.   The circuit ID maps the 
sub-interface (or subnet) this route was received. For details on how to
encode and construct this Extended Community, see section 6.1 of
<xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>.</t>
</list></t>

</section>
<section anchor="remote-arpnd-learning" title="Remote ARP/ND learning">

<t>When consuming a remote layer-3 RT-2 sync route:</t>

<t><list style="symbols">
  <t>BGP only imports layer-3 sync route(s) when both ES-Import and EVI-RT
extended communities match those locally configured</t>
  <t>The layer-3 VRF is derived from the matching EVI</t>
  <t>The main interface is derived from the ESI</t>
  <t>The VLAN / sub-interface is derived from the AC-ID provided in the
  Attachment-Circuit-ID extended community</t>
  <t>The combination of  ES Import and EVI RT will allow BGP to import layer-3 sync
  route(s) to only PE(s) that have are attached to the same ESI and have the
  respective EVI.</t>
</list></t>

</section>
</section>
<section anchor="solution-igmp-route-sync" title="Route sync for IGMP">
<t>This document proposes solving the issue described in <xref target="problem-multicast"/>
using RT-7 and RT-8 route sync as described by <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/>.</t>

<t>Local IGMP join and leave will trigger a RT-7/8 route sync to peer PE.</t>

<section anchor="local-igmp-joinleave-learning" title="Local IGMP Join/Leave learning">
<t>An IGP Join or Leave will trigger a RT-7/8 route sync to any peer PE.</t>

<t>Section 9.1 of <xref target="RFC7432"/> describes different mechanisms to learn adjacency
routes locally.</t>

<t><list style="symbols">
  <t>An Multicast Join or Leave Sync route MUST carry exactly one ES-Import Route
  Target extended community, the one that corresponds to the ES on which the IGMP
  Join or Leave was received.</t>
  <t>It MUST also carry exactly one EVI-RT EC, the one that corresponds to the EVI
  on which the IGMP Join or Leave was received.  The EVI maps the layer-3 VRF
  See Section 9.5 of <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/> for details on how to
  encode and construct the EVI-RT EC.</t>
  <t>If the case where PE supports AC aware bundling, it MUST also carry one
  Attachment Circuit ID Extended Community.   The circuit ID maps the
  sub-interface (or subnet) this route was received. For details on how to
  encode and construct this Extended Community, see section 6.1 of
  <xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>.</t>
  <t>The combination of  ES Import and EVI RT will allow BGP to import Multicast
  Join and Leave synch route(s) to only PE(s) that have are attached to the
  same ESI and have the respective EVI.</t>
</list></t>

</section>
<section anchor="remote-igmp-joinleave-learning" title="Remote IGMP Join/Leave learning">

<t>When consuming a remote multicast RT-7 or RT-8 sync route:</t>

<t><list style="symbols">
  <t>BGP only imports multicast sync route(s) when both ES-Import and EVI-RT
extended communities match those locally configured</t>
  <t>The layer-3 VRF is derived from the matching EVI</t>
  <t>The main interface is derived from the ESI</t>
  <t>The VLAN / sub-interface is derived from the AC-ID provided in the
  Attachment-Circuit-ID extended community</t>
</list></t>

</section>
</section>
<section anchor="solution-subnet-sync" title="Customer Subnet Route sync using Route-type(5)">

<t>Section 3 of <xref target="I-D.ietf-bess-evpn-prefix-advertisement"/> provides a mechanism
to synchronize layer-3 customer subnets between the PEs in order to solve
problem described in <xref target="problem-adj"/>.</t>

<t>Using <xref target="fig-igp-adjacency"/> as example, if PE1 forms the IGP adjacency
with CE, it will be the only PE with knowledge of the customer subnet R1.
BGP on PE1 will then advertise R1 to remote PEs using L3-VPN signalling.</t>

<t>Although PE2 has the same ES connection to the CE, and could provide load
balancing to remote PEs, due to it not having formed an IGP adjacency with CE
it is not aware of the customer subnet R1.</t>

<t>This can be solved by PE1 signaling R1 to PE2 using a RT-5 synch route.
BGP on PE2 can then advertise this customer subnet R1 towards the core
is if it was locally learned through IGP, and provide load-balancing from
the remote PEs.</t>

<t>The route-type(5) will carry the ESI as well as the gateway address GW
(prefix next-hop address).</t>

<t>The same mapping mechanism will be used as for Route and IGMP sync, where
EVI will determine the L3-VRF, ESI carried with route-type(5) will provide
the main interface, and the gateway address will provide the nexthop.</t>

</section>
<section anchor="mapping-for-vlan-to-etag" title="Mapping for VLAN to ETAG">

<t>Another possible signalling of VLAN/sub-interface between service PE peers is
to use the Ethernet Tag (ETAG) ID value in RT-2, RT-5, RT-7 and RT-8 as
apposed to the Attachment Circuit Extended Community.</t>

<t>This will not work with vlan-aware bundling mode, but as that is a layer2
mode this should not prevent ETAGs use for L3 services.</t>

</section>
</section>
<section anchor="extensions-to-rt-2-rt-5-rt-7-and-rt-8" title="Extensions to RT-2, RT-5, RT-7 and RT-8">
<t>This document proposes extending the usecase of Extended communities
already defined in other drafts for the route types
RT-2, RT-5, RT-7 and RT-8.</t>

<t><list style="symbols">
  <t>EVI-RT Extended Community as defined in Section 9.5 of
<xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/>.</t>
  <t>Attachment Circuit ID Extended Community as defined in Section 6.1 of
<xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>.</t>
</list></t>

</section>
<section anchor="convergence-considerations" title="Convergence Considerations">

</section>
<section anchor="overall-advantages" title="Overall Advantages">

<t>The use of EVPN MC-LAG all active multi-homing brings the following benefits
to L3 BGP services:</t>

<t><list style="symbols">
  <t>Open standards based per interface all-active redundancy
mechanism that eliminates the need to run ICCP and LDP.</t>
  <t>Agnostic of underlay technology (MPLS, VXLAN, SRv6) and
associated services (L3, L3-VPN)</t>
  <t>Replaces legacy MC-LAG ICCP-based solution, and offers following
additional benefits:
  <list style="symbols">
      <t>Fast convergence with mass-withdraw is possible with EVPN, no
  equivalent in ICCP</t>
    </list></t>
  <t>Requires signalling already defined in existing EVPN RFCs
  <xref target="RFC7432"/> and drafts <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/>,
  <xref target="I-D.sajassi-bess-evpn-ac-aware-bundling"/>, and
  <xref target="I-D.ietf-bess-evpn-prefix-advertisement"/></t>
  <t>Removes the burden of having the need for ICL link</t>
</list></t>

</section>
<section anchor="security-considerations" title="Security Considerations">
<t>The same Security Considerations described in <xref target="RFC7432"/> are valid for this
document.</t>

</section>
<!--
<section anchor="acknowledgments" title="Acknowledgments">
<t>Authors would like to thank .. <spanx style="strong">@TODO</spanx></t>

</section>
-->
<section anchor="iana-considerations" title="IANA Considerations">
<t>There are no IANA considerations.</t>

</section>

  </middle>

  <back>

    <references title='Normative References'>

<?rfc include='reference.I-D.draft-ietf-bess-evpn-igmp-mld-proxy-09.xml'?>
<?rfc include='reference.I-D.draft-sajassi-bess-evpn-ac-aware-bundling-03.xml'?>
<?rfc include='reference.I-D.draft-ietf-bess-evpn-prefix-advertisement-11.xml'?>
<?rfc include='reference.RFC.2119.xml'?>
<?rfc include='reference.RFC.8174.xml'?>
   </references>
    <references title='Informative References'>

<?rfc include='reference.RFC.7432.xml'?>
<?rfc include='reference.RFC.4364.xml'?>
<?rfc include='reference.RFC.7761.xml'?>


    </references>



  </back>

</rfc>

