<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4448 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4448.xml">
<!ENTITY RFC4664 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4664.xml">
<!ENTITY RFC4684 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4684.xml">
<!ENTITY RFC8214 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8214.xml">
<!ENTITY RFC6074 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6074.xml">
<!ENTITY RFC6624 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6624.xml">
<!ENTITY RFC8077 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8077.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-brissette-bess-evpn-vpws-seamless-02" ipr="trust200902">
 <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="Abbreviated Title">EVPN-VPWS Seamless Integration with Legacy VPWS</title>

   <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

   <author fullname="Patrice Brissette" initials="P." role="editor"
           surname="Brissette">
     <organization>Cisco Systems</organization>

     <address>
       <postal>
         <street></street>
         <city>Ottawa</city>
         <region>ON</region>
         <country>Canada</country>
       </postal>
       <phone></phone>
       <email>pbrisset@cisco.com</email>
     </address>
   </author>

  <author fullname="Ali Sajassi" initials="A." 
           surname="Sajassi">
     <organization>Cisco Systems</organization>
     <address>
       <postal>
         <street></street>
         <city></city>
         <region></region>
         <code></code>
         <country>USA</country>
       </postal>
       <email>sajassi@cisco.com</email>
     </address>
   </author>

  <author fullname="Luc Andre Burdet" initials="LA." 
           surname="Burdet">
     <organization>Cisco Systems</organization>

     <address>
       <postal>
         <street></street>
         <city>Ottawa</city>
         <region>ON</region>
         <code></code>
         <country>Canada</country>
       </postal>
       <email>lburdet@cisco.com</email>
     </address>
   </author>

  <author fullname="James Uttaro" initials="J." 
           surname="Uttaro">
     <organization>ATT</organization>

     <address>
       <postal>
         <street></street>
         <city></city>
         <region></region>
         <code></code>
         <country>USA</country>
       </postal>
       <email>uttaro@att.com</email>
     </address>
   </author>

  <author fullname="Daniel Voyer" initials="D." 
           surname="Voyer">
     <organization>Bell Canada</organization>

     <address>
       <postal>
         <street></street>
         <city>Montreal</city>
         <region>QC</region>
         <code></code>
         <country>Canada</country>
       </postal>
       <email>daniel.voyer@bell.ca</email>
     </address>
   </author>

 <author fullname="Iman Ghamari" initials="I." 
           surname="Ghamari">
     <organization>LinkedIn</organization>

     <address>
       <postal>
         <street></street>
         <city></city>
         <region></region>
         <code></code>
         <country>USA</country>
       </postal>
       <email>ighamari@linkedin.com</email>
     </address>
   </author>
 
    <author fullname="Edward Leyton" initials="E." 
           surname="Leyton">
     <organization>Verizon Wireless</organization>

     <address>
       <postal>
         <street></street>
         <city></city>
         <region></region>
         <code></code>
         <country>USA</country>
       </postal>
       <email>edward.leyton@verizonwireless.com</email>
     </address>
   </author>
   
   <date year="2021" />

   <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>Routing</area>

   <workgroup>BESS Working Group</workgroup>

   <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>EVPN-VPWS</keyword>
   <keyword>EVPN</keyword>
   <keyword>VPWS</keyword>
   <keyword>Interoperability</keyword>

   <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

   <abstract>
     <t> This document specifies mechanisms for backward compatibility of
     Ethernet VPN Virtual Private Wire Service (EVPN-VPWS)
     solutions with legacy Virtual Private Wire Service (VPWS).
     It provides mechanisms for seamless integration in the same MPLS/IP network on a per-pseudowire
     or per flexible-crossconnect service basis.  Implementation of this document enables
     service providers to introduce EVPN-VPWS PEs in their brown-field deployments of
     legacy VPWS networks.  This document specifies control-plane and forwarding behaviour
     needed for auto-discovery of a pseudowire in order to enable seamless
     integration between EVPN-VPWS and VPWS PEs.</t>
   </abstract>
 </front>

 <middle>
   <section title="Introduction">
     <t>Virtual Private Wire Service (VPWS) is a widely-deployed Layer-2 VPN (L2VPN) technology.
     Many service providers, who are looking at adopting Ethernet VPN Virtual Private Wire Service
     (EVPN-VPWS), want to preserve their investment in the VPWS networks. Hence,
     they require mechanisms by which EVPN-VPWS can be introduced into their brown-field legacy VPWS networks
     without requiring any upgrades (software or hardware) to these networks.
     This document specifies control-plane and forwarding behaviour needed for auto-discovery of a pseudowire
     in order to enable seamless integration between EVPN-VPWS Provider Edge(PE) devices and PEs
     running legacy VPWS services in the same MPLS/IP network.</t>

     <figure align="center" anchor="Seamless">
       <artwork align="left"><![CDATA[
                 
                  MPLS/IP Core              
               +---------------+    
      +---+    |               |   +---+
      |PE1|----|----- PW1 -----|---|PE2| Legacy VPWS
      |   |----|---+           |   +---+
      +---+    |   |           |   
   EVPN-VPWS & |   +--PW2---+  |   +---+  
   Legacy VPWS |            +--|---|PE3| EVPN-VPWS
    (hybrid)   |               |   +---+
               +---------------+
           ]]></artwork>
      <postamble>Seamless Integration of EVPN-VPWS.</postamble>
     </figure>

     <t> <xref target="Seamless"/> shows a simple network where PE1 runs in hybrid mode (EVPN-VPWS and
     legacy VPWS). It provides a pseudowire (PW1) with PE2 running legacy VPWS. It also provides a
     pseudowire (PW2) with PE3 running EVPN-VPWS. PE2 may be upgraded to EVPN-VPWS seamlessly. Legacy PEs may
     be setting up PWs per <xref target="RFC8077"/> or may be setting up a VPWS service by first
     auto-discovering VPN members using <xref target="RFC6074"/> and then setting up the PWs
     using <xref target="RFC8077"/> or <xref target="RFC6624"/>.</t>

     <t> The seamless integration solution described in this document has the
     following attributes:</t>

     <t>- It is backward compatible with <xref target="RFC8214"/> and EVPN Flexible
     crossconnect Service <xref target="evpn_fxc"/> document.</t>

     <t>- New PEs can leverage the multi-homing mechanisms and provisioning simplifications
     of EVPN Ethernet-Segment:</t>    
     <t><list style="letters">
      <t>Auto-sensing of MHN / MHD </t>
      <t>Auto-discovery of redundancy group </t>
      <t>Auto-election of Designated Forwarder and VLAN carving </t>
      <t>Support of various load-balancing mode such as port-active, single-active and all-active</t>
     </list></t>
     
     <t> <xref target="SeamlessMigration"/> illustrates how legacy VPWS brown-field network migration to EVPN-VPWS is achieved.
     For example, let say PE1 and PE2 have a legacy PW established between them. First, network
     operator may upgrade PE2 to support EVPN-VPWS. Once upgraded, PE2
     which now have the EVPN-VPWS capability still runs legacy VPWS PW
     with PE1. Later on, network operator may decide to upgrade PE1 to
     support EVPN-VPWS. As soon as the upgrade is completed, EVPN-VPWS
     service takes high-precedence over legacy VPWS network. The network
     operator can safely remove any legacy configuration related to that
     PW from PE1 and PE2 nodes. PW remains established as an EVPN-VPWS
     service.</t>

     <figure align="center" anchor="SeamlessMigration">
       <artwork align="left"><![CDATA[               
                  MPLS/IP Core              
               +---------------+    
      +---+    |               |   +---+
      |PE1|----|----- PW1 -----|---|PE2|
      +---+    |    Legacy     |   +---+
      Legacy   |               |   Legacy
      VPWS     +---------------+   VPWS 
                     ....                     
               +---------------+    
      +---+    |               |   +---+
      |PE1|----|----- PW1 -----|---|PE2|
      +---+    |    Legacy     |   +---+
      Legacy   |               |   Legacy VPWS 
      VPWS     +---------------+   + EVPN-VPWS
                     ....                     
               +---------------+    
      +---+    |               |   +---+
      |PE1|----|----- PW1 -----|---|PE2|
      +---+    |   EVPN-VPWS   |   +---+
   Legacy VPWS |               |   Legacy VPWS
   + EVPN-VPWS +---------------+   + EVPN-VPWS
                     ....                     
               +---------------+    
      +---+    |               |   +---+
      |PE1|----|----- PW1 -----|---|PE2|
      +---+    |   EVPN-VPWS   |   +---+
     EVPN-VPWS |               |   EVPN-VPWS
               +---------------+ 
           ]]></artwork>
      <postamble>Migration from Legacy to EVPN-VPWS.</postamble>
     </figure>

     
     <section 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>
     </section>
   </section>

   <section title="Terms and Abbreviations">
     <t><list style="symbols">
       <t>CE:  A Customer Edge device, e.g., a host, router, or switch.</t>

       <t>DF:  EVPN Ethernet Segment Designated Forwarder.</t>
       
       <t>NDF: EVPN Ethernet Segment Non-Designated Forwarder.</t>

       <t>Ethernet Segment (ES): Refers to the set of Ethernet links that connects a customer site
       (device or network) to one or more PEs.</t>

       <t>Ethernet Tag: An Ethernet Tag identifies a particular pseudowire, e.g. a PW-ID as
       per <xref target="RFC8214"/>.</t>

       <t>FEC: Forwarding Equivalence Class.</t>

       <t>LDP-LM: LDP Label Mapping Message.</t>

       <t>LDP-LW: LDP Label Withdraw Message.</t>

       <t>LSP: Label Switched Path.</t>

       <t>MHD: Multi-Homed Device.</t>

       <t>MHN: Multi-Homed Network.</t>

       <t>P2P: Point to Point - a P2P LSP typically refers to a LSP for Layer2 pseudowire.</t>

       <t>PE: Provider Edge device.</t>

       <t>VPWS: Virtual Private Wire Service. It refers to legacy VPWS circuit where pseudowires
       are signalled using LDP or BGP-AD protocol. The latter is referred as VPWS A-D.</t>

       <t>EVPN-VPWS: Ethernet-VPN Virtual Private Wire Service. It refers to EVPN-VPWS circuit
       where pseudowires are signalled via BGP-EVPN. It can also refer to <xref target="evpn_fxc"/>.</t>

       <t>EVPN-FXC: Ethernet-VPN Flexible Cross-connect Service <xref target="evpn_fxc"/>. </t>

       <t>Port-Active Redundancy Mode: When only a single PE, among all the PEs attached to an
       Ethernet segment, is allowed to forward traffic to/from that Ethernet segment for a given
       interface, then the Ethernet Segment is defined to be operating in Port-Active redundancy mode.</t>

       <t>Single-Active Redundancy Mode: When only a single PE, among all the PEs attached
       to an Ethernet segment, is allowed to forward traffic to/from that Ethernet segment
       for a given VLAN, then the Ethernet Segment is defined to be operating in Single-Active
       redundancy mode.</t>

       <t>All-Active Redundancy Mode: When all PEs attached to an Ethernet Segment are allowed
       to forward 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>VPWS A-D: refers to Virtual Private Wire Services with BGP-based Auto Discovery as in
       <xref target="RFC6074"/>.</t>

       <t>PW: Pseudowire</t>
     </list></t>
   </section>

   <section title="Solution Requirements">       
     <t> Following are the key requirements for backward compatibility between EVPN-VPWS and VPWS: </t>

     <t><list style="symbols">

       <t>The solution MUST allow for staged migration towards EVPN-VPWS on a site-by-site
       basis - e.g., new EVPN-VPWS sites to be provisioned on EVPN-VPWS Provider
       Edge devices (PEs).  Migration SHOULD be possible on a per-pseudowire basis.</t>

       <t>The solution MUST NOT require any changes to existing Legacy VPWS or PEs,
       unless it is to upgrade them to EVPN-VPWS.</t>

       <t>The solution MUST allow for the co-existence of PE devices running
       EVPN-VPWS and VPWS for the same single-homed and/or multi-homed
       segments.</t>

       <t>The solution MUST support port-active redundancy of multi-homed
       networks and multi-homed devices for EVPN-VPWS PEs.</t>
   
       <t>The solution MUST support single-active redundancy of multi-homed
       networks and multi-homed devices for EVPN-VPWS PEs.</t>

       <t>The solution SHOULD support all-active redundancy of multi-homed Ethernet Segments
       for EVPN-VPWS PEs.</t>
     </list></t>
     <t>These requirements collectively allow for the seamless insertion of
     the EVPN-VPWS technology into brown-field VPWS deployments. </t>
   </section>

   <section title="Seamless Integration">
     <t>In order to support seamless integration with Legacy PEs, this document may require Legacy PEs
     to setup PWs per <xref target="RFC8077"/> or may require Legacy PEs to setup VPWS service by
     auto-discovering VPN members using <xref target="RFC6074"/> and then setting up the PWs
     using <xref target="RFC8077"/> or <xref target="RFC6624"/>. Furthermore, EVPN-VPWS PEs must
     support BGP EVPN routes per <xref target="RFC8214"/> and one of
     method of legacy VPWS technologies. All the logic for seamless integration
     SHALL reside on the EVPN-VPWS PEs.</t>
   </section>

   <section title="Capability Discovery">
     <t>The EVPN-VPWS PEs MUST advertise both BGP VPWS Auto-Discovery (VPWS A-D) 
     route or LDP-LM message as well as the BGP EVPN Ethernet-AD per EVI 
     route for a given pseudowire.</t>

     <t>In the case of VPWS PEs running VPWS A-D, they may advertise the BGP
     VPWS A-D route, per the procedures specified in <xref target="RFC4664"/>
     and <xref target="RFC6074"/>. The operator may decide to use the same BGP Route Target
     (RT) to identify a pseudowire on both EVPN-VPWS and VPWS networks. In this case,
     when a VPWS PE receives the EVPN Ethernet-AD per EVI route, it MUST ignore it on the
     basis that it belongs to an unknown SAFI. However, the operator may
     choose to use two RTs - one to identify the pseudowire on VPWS network and
     another for EVPN-VPWS network and employ RT-constrained <xref target="RFC4684"/> in order
     to prevent BGP EVPN routes from reaching the VPWS PEs.</t>

     <t>When an EVPN-VPWS PE receives both a VPWS A-D route or a LDP-LM message as well as
     an EVPN-VPWS Ethernet-AD per EVI route from a given remote PE for the same pseudowire, it MUST
     give preference to the EVPN-VPWS route for the purpose of discovery. This
     ensures that, at the end of the route exchange, all EVPN-VPWS capable PEs
     discover other EVPN-VPWS capable PEs. Furthermore, all the VPWS-only PEs discover
     the EVPN-VPWS PEs as if they are standard VPWS PEs. In other words, when
     the discovery phase is completed, the EVPN-VPWS PEs have discovered
     the remote PE per pseudowire along with their associated
     capability (EVPN-VPWS or VPWS-only), whereas the VPWS PE have
     discovered the remote PE per pseudowire as if it is VPWS-only PEs.</t>     
   </section>
   
   <section title="Forwarding and Control Plane Operations">

     <t><xref target="VPWS_SH"/> demonstrates a typical brown-field deployment where PE2 is a
     legacy PE and PE1 is an EVPN-VPWS PE.</t>
     

     <figure align="center" anchor="VPWS_SH">
       <artwork align="left"><![CDATA[
                       
       EVPN-VPWS &      MPLS/IP   
       Legacy VPWS       Core        Legacy VPWS
                   +---------------+    
          +---+    |               |   +---+
          |PE1|----|----- PW1 -----|---|PE2| 
          +---+    |               |   +---+
                   +---------------+
               
   VPWS A-D route  ]  TX       TX  [ VPWS A-D route
        or         ] --->     <--- [      or
 LDP Label Mapping ]               [ LDP Label Mapping
       
       AND
                      TX
  EVPN per EVI/EAD ] --->
   
           ]]></artwork>
      <postamble>EVPN-VPWS Single-Homed</postamble>
     </figure>

     <t>The forwarding state setup procedures over VPWS PEs are per <xref target="RFC8077"/>, <xref target="RFC4761"/> and
     <xref target="RFC4762"/>. </t>
     
     <t>The EVPN-VPWS PE procedures are as follow:</t>
   
     <t><list style="symbols"> 
       <t>The EVPN-VPWS PE MUST establish a PW to each remote PE from which it has
       received only a VPWS A-D route or a LDP-LM message for the corresponding pseudowire,
       and MUST set up the label stack corresponding to the PW FEC.</t>

       <t>If an EVPN-VPWS PE receives a VPWS A-D route or a LDP-LM message from a given PE,
       it sets up a Legacy VPWS PW to that PE. If it then receives an EVPN Ethernet-AD per EVI route for that PW
       from the same PE, then the EVPN-VPWS PE may bring the Legacy PW operationally down and MUST
       forward traffic using the label information from the EVPN Ethernet-AD per EVI route.</t>

       <t>If an EVPN-VPWS PE receives an EVPN Ethernet-AD per EVI route followed by a VPWS A-D
       route or a LDP-LM message from the same PE, then the EVPN-VPWS PE will setup the EVPN-VPWS PW. It may
       keep the Legacy VPWS PW operationally down and MUST forward traffic using the reachability information
       from that EVPN Ethernet-AD per EVI route.</t>

       <t>For VPWS PEs not using VPWS A-D or LDP signalling, the EVPN-VPWS PEs need to
       be provisioned manually with PWs to those remote VPWS PEs for each
       pseudowire. In that case, if an EVPN-VPWS PE receives an EVPN Ethernet-AD per EVI route
       from a PE to which a PW exists,  it may keep VPWS PW operationally down and MUST forward
       traffic using the reachability information from that EVPN Ethernet-AD per EVI route.</t>
     </list></t>

     <section title="Multi-homed Operations">
       <t><xref target="VPWS_MH" /> below demonstrates multi-homing scenarios. CE1 is connected to
       PE1 and PE2 where PE1 is the designated forwarder while PE2 is the non designated forwarder.</t>

       <figure align="center" anchor="VPWS_MH">
	 <artwork align="left"><![CDATA[
                               
       EVPN-VPWS &   MPLS/IP   
       Legacy VPWS    Core       Legacy VPWS
                   +---------+    
      DF  +---+    |         |   +---+   +---+
       +--|PE1|----|---------|---|PE3|---|CE2| 
 +---+/   +---+    |   PW1  /|   +---+   +---+
 |CE1|             |       / |   
 +---+\   +---+    |      /  |
       +--|PE2|----|-----+   | 
     NDF  +---+    |         |
                   +---------+
               
           ]]></artwork>
	 <postamble>EVPN-VPWS Port-Active Redundancy</postamble>
       </figure>
	      
       <section title="Operations with Port-Active MH PEs">
	 <t>In <xref target="VPWS_MH" />, PE1 and PE2 are configured in port-active load-balancing mode.
	 Both PEs are advertising EVPN Ethernet-AD per ES route with the single-active bit set as described in
	 EVPN port-active document <xref target="evpn_pa"/>. In this example PE1 is DF elected
         for the shared Ethernet Segment identifier. </t>
       <t><list style="symbols">
          <t>Only PE1, as DF, advertises the VPWS A-D route or LDP-LM message towards remote PE3.</t>
          <t>PE1 advertises the EVPN Ethernet-AD per EVI route for PW1 towards remote PE3.
          The P-bit in L2 Attributes Extended Community is set for PE1 as per
          <xref target="RFC8214"/>. The purpose is to have all required EVPN-VPWS routes on remote PE so
	  during an upgrade from Legacy VPWS to EVPN-VPWS, those remote nodes are immediately upgraded.</t>
          <t>PE2, as NDF, only advertises its EVPN Ethernet AD per EVI route
          corresponding to that same PW1.
          The B-bit in L2 Attributes Extended Community is set for PE2 as per
          <xref target="RFC8214"/></t>
       </list></t>
       <t>Upon link failure between CE1 and PE1, PE1 and PE2 follows EVPN Ethernet Segment DF Election
       procedures described in <xref target="RFC8214"/> for EVPN-VPWS. Furthermore, PE1 withdraws its VPWS A-D
       route or sends LDP-LW message to remote PE3 to teardown the Legacy PW. Finally, PE2 advertises
       corresponding VPWS A-D route or LDP-LM message for that PW1 and re-establish Legacy PW with new PE2
       destination.</t>

       <t>If PE3 is running 2-way pseudowire redundancy and PW-status is enabled, PE2 may leverage the existence
       of standby/backup PW with PE3.
       In this particular scenario, PE2 may advertise VPWS A-D route or LDP-LM
       message along with PW-status message. </t>
	 
       <t>Once PE3 is upgraded and supports EVPN-VPWS, seamless integration procedures are applied. Higher
       precedence of EVPN-VPWS over VPWS allow all PEs to avoid the usage of legacy circuit. At that point
       in time, non-preferred legacy VPWS protocols and configuration may be removed from all PEs.</t>
       </section>
     
       <section title="Operation with Single-Active MH PEs">
	 <t>Single-active operation is similar to Port-active load-balancing mode described above but
	 at the VLAN level instead being of at the port/interface level.</t>
	 <t> The main difference resides on the support of Legacy PW VC-type 4 vs PW VC-Type 5 mode
	 on the EVPN-VPWS PE as per <xref target="RFC4448"/>. While services running in port-active
	 load-balancing mode require raw mode, services running single-active load-balancing mode
	 use tagged mode.</t>
       </section>
     
       <section title="Operation with All-Active MH PEs">
	 <t>In EVPN-VPWS all-active load-balancing mode, all PEs participating in a redundancy group
	 forward traffic bidirectionally, reducing the importance of DF and NDF PE. However PEs
	 running Legacy VPWS do NOT support all-active peering PEs as remote endpoint.</t>

	 <section title="Falling back to port-active">
	   <t>EVPN-VPWS PE discovering remote PE running VPWS PW MAY fallback into port-active load-balancing mode.
	   In that case, following rules are applied:</t>
	   <t><list style="symbols">
	     <t>Peering PEs advertise EVPN Ethernet-AD per ES route with the single-active bit set. They also
	     advertise EVPN Ethernet-AD per EVI route towards PE3 with P/B bit set accordingly as
	     per <xref target="RFC8214"/>.
	     </t>
	     <t>DF PE advertises VPWS AD routes or LDP-LM message and EVPN Ethernet AD per EVI route per PW.</t>
	     <t>NDF PE advertises only EVPN Ethernet AD per EVI route per PW.</t>
	     <t>If PE3 is running 2-ways pseudowire redundancy, PE2 may leverage the existence of
	     standby/backup PW with PE3. PE2 may advertise VPWS AD route or LDP-LM message with
	     proper PW-status message.</t>
	   </list> </t>
	 </section>

	 <section title="Asymmetric forwarding">

	   <t>One privilege option is the asymmetric forwarding while peering PEs run in all-active
	   load-balancing mode. In the example of Figure 3, traffic from CE1 going to PE1 is forwarded to
	   PE3 using the VPN label learned from VPWS AD route or LDP-LM message received from PE3.
	   Traffic from CE1 going to PE2 should get forwarded to PE3 using that same VPN label.
	   Traffic coming from CE3 to PE3 gets forwarded only over the primary PW towards PE1; the DF PE.</t>

	   <t> Supporting asymmetric forwarding with purely LDP as per <xref target="RFC8077"/> requires
	   extensions to EVPN-VPWS MH procedures.  
	   These procedures are NOT restricted only to LDP and may be applied to VPWS A-D.</t>
	   
	   <t>Following rules are applied to achieve expected behaviour:</t>
	   
	   <t><list style="symbols">
	     <t>Peering PEs advertise EVPN Ethernet-AD per ES route with the single-active bit unset.
	     That is to get the network ready when remote legacy PE are upgraded to EVPN-VPWS.</t>
	     <t>DF PE advertises VPWS AD routes or LDP-LM message and EVPN Ethernet AD per EVI route per PW.</t>
	     <t>NDF PE advertises only EVPN Ethernet AD per EVI route per PW.</t> 
	     <t>If PE3 is running 2-ways pseudowire redundancy, PE2 may leverage the existence of
	     standby/backup PW with PE3. PE2 may advertise VPWS AD route or LDP-LM message with
	     proper PW-status message.</t>
	     <t>The tunnel encapsulation
	     attribute <xref target="tun_encap"/> is used to synchronize alias PW label between peering PEs.
	     The tunnel encapsulation attribute, specifying the alias PW label and tunnel endpoint (nexthop)
	     of the remote PE (PE3), is transmitted along with EVPN Ethernet-AD per EVI route. The NDF PEs
	     uses the same VPN label per Legacy PW as DF PE when transmitting
	     traffic coming from CE (CE1) towards remote PE(PE3).</t>
	   </list></t>
	  
	   <!-- PATRICE - cover different VLAN procedure -->
	   <!-- PATRICE - cover PWR interop - may open a dawm can of worms -->
	 </section> 
       </section>       
     </section>
   </section>
   
   <!-- Possibly a 'Contributors' section ... -->

   <section anchor="IANA" title="IANA Considerations">
     <t>This document has no actions for IANA.</t>
   </section>

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

   <section title ="Acknowledgements">
     <t>The authors would like to acknowledge Sylvain Masse for his feedback and
     contribution to this document.</t>
   </section>
 </middle>

 <!--  *****BACK MATTER ***** -->

 <back>
   <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references title="Normative References">
     <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
     &RFC2119;
     &RFC6074;
     &RFC6624;
     &RFC8214;
     &RFC8077;

   </references>

   <references title="Informative References">
     <reference anchor="evpn_fxc">
       <!-- the following is the minimum to make xml2rfc happy -->

       <front>
         <title>draft-ietf-bess-evpn-vpws-fxc</title>

         <author initials="A.S." surname="Sajassi">
           <organization>Cisco Systems</organization>
         </author>

         <author initials="P.B." surname="Brissette">
           <organization>Cisco Systems</organization>
         </author>

         <date year="2019" />
       </front>
     </reference>

     <reference anchor="evpn_pa">
       <!-- the following is the minimum to make xml2rfc happy -->

       <front>
         <title>draft-brissette-bess-evpn-mh-pa</title>
	 
         <author initials="P.B." surname="Brissette">
           <organization>Cisco Systems</organization>
         </author>
	 
         <author initials="A.S." surname="Sajassi">
           <organization>Cisco Systems</organization>
         </author>

         <date year="2019" />
       </front>
     </reference>

     <reference anchor="tun_encap">
       <!-- the following is the minimum to make xml2rfc happy -->

       <front>
         <title>draft-ietf-idr-tunnel-encaps</title>
	 
         <author initials="K.P." surname="Patel">
           <organization>Arrcus inc.</organization>
         </author>
	 
         <author initials="G.V." surname="Van de Velde">
           <organization>Nokia</organization>
         </author>

         <author initials="S.S." surname="Sangli">
           <organization>Juniper</organization>
         </author>
	 <date year="2019" />
       </front>
     </reference>


     <!-- Here we use entities that we defined at the beginning. -->
     &RFC4664;
     &RFC4684;
     &RFC4448;
     
     <reference anchor="vpls_AA">
       <!-- the following is the minimum to make xml2rfc happy -->

       <front>
         <title>draft-sajassi-bess-evpn-vpls-all-active</title>
	 
         <author initials="A.S." surname="Sajassi">
           <organization>Cisco Systems</organization>
         </author>
	 
         <author initials="S.S." surname="Salam">
           <organization>Cisco Systems</organization>
         </author>

         <author initials="P.B." surname="Brissette">
           <organization>Cisco Systems</organization>
         </author>

         <author initials="L.J." surname="Jalil">
           <organization>Verizon</organization>
         </author>
	 <date year="2017" />
       </front>
     </reference>

     <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4761.xml"?>
     <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4762.xml"?>

     <!-- A reference written by by an organization not a person. -->

    </references>

<!-- Change Log

v00 2019-10-28  PB   Initial version

-->
 </back>
</rfc>
