<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" docName="draft-ietf-bess-evpn-mh-pa-13" number="9786" consensus="true" submissionType="IETF" ipr="trust200902" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" xml:lang="en" obsoletes="" updates="" prepTime="2025-06-27T15:21:50" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-bess-evpn-mh-pa-13" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9786" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="EVPN Port-Active Redundancy Mode">EVPN Port-Active Redundancy Mode</title>
    <seriesInfo name="RFC" value="9786" stream="IETF"/>
    <author fullname="Patrice Brissette" initials="P." surname="Brissette">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <city>Ottawa</city>
          <region>ON</region>
          <country>Canada</country>
        </postal>
        <email>pbrisset@cisco.com</email>
      </address>
    </author>
    <author fullname="Luc André Burdet" initials="LA." surname="Burdet" role="editor">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>lburdet@cisco.com</email>
      </address>
    </author>
    <author fullname="Bin Wen" initials="B." surname="Wen">
      <organization showOnFrontPage="true">Comcast</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>Bin_Wen@comcast.com</email>
      </address>
    </author>
    <author fullname="Edward Leyton" initials="E." surname="Leyton">
      <organization showOnFrontPage="true">Verizon Wireless</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>edward.leyton@verizonwireless.com</email>
      </address>
    </author>
    <author fullname="Jorge Rabadan" initials="J." surname="Rabadan">
      <organization showOnFrontPage="true">Nokia</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>jorge.rabadan@nokia.com</email>
      </address>
    </author>
    <date month="06" year="2025"/>
    <area>RTG</area>
    <workgroup>bess</workgroup>
    <keyword>Port-Active</keyword>
    <keyword>EVPN</keyword>
    <keyword>Multi-homing</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">The Multi-Chassis Link Aggregation (MC-LAG) group technology enables
   establishing a logical link-aggregation connection with a
   redundant group of independent nodes. The objective of MC-LAG is to enhance both network
   availability and bandwidth utilization through various modes of traffic load balancing. RFC 7432
   defines an EVPN-based MC-LAG with Single-Active and All-Active multihoming redundancy modes.
   This document builds on the existing redundancy mechanisms supported by EVPN and introduces
   a new active/standby redundancy mode, called 'Port-Active'.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9786" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multi-chassis-link-aggregat">Multi-Chassis Link Aggregation (MC-LAG)</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-port-active-redundancy-mode">Port-Active Redundancy Mode</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-overall-advantages">Overall Advantages</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-port-active-redundancy-proc">Port-Active Redundancy Procedures</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-designated-forwarder-algori">Designated Forwarder Algorithm to Elect per Port-Active PE</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-capability-flag">Capability Flag</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-modulo-based-algorithm">Modulo-Based Algorithm</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-highest-random-weight-algor">Highest Random Weight Algorithm</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t indent="0" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-preference-based-df-electio">Preference-Based DF Election</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.5">
                <t indent="0" pn="section-toc.1-1.3.2.5.1"><xref derivedContent="3.5" format="counter" sectionFormat="of" target="section-3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ac-influenced-df-election">AC-Influenced DF Election</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-convergence-considerations">Convergence Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-primary-backup-bits-per-eth">Primary/Backup Bits per Ethernet Segment</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-backward-compatibility">Backward Compatibility</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-applicability">Applicability</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">EVPN <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> defines the All-Active and Single-Active redundancy modes.
      All-Active redundancy provides per-flow load balancing for multihoming, while Single-Active
      redundancy ensures service carving where only one of the Provider Edge (PE) devices in a redundancy relationship is
      active per service.</t>
      <t indent="0" pn="section-1-2">Although these two multihoming scenarios are widely utilized in data center and service provider
      access networks, there are cases where active/standby multihoming at the interface level is
      beneficial and necessary. The primary consideration for this new mode of load balancing is the
      determinism of traffic forwarding through a specific interface rather than statistical per-flow
      load balancing across multiple PEs providing multihoming. This determinism is essential for certain
      QoS features to function correctly. Additionally, this mode ensures fast convergence during failure
      and recovery, which is expected by customers.</t>
      <t indent="0" pn="section-1-3">This document defines the Port-Active redundancy mode as a new type of multihoming in EVPN
      and details how this mode operates and is supported via EVPN.</t>
      <section anchor="requirements" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-1.2">
        <name slugifiedName="name-multi-chassis-link-aggregat">Multi-Chassis Link Aggregation (MC-LAG)</name>
        <t indent="0" pn="section-1.2-1">When a Customer Equipment (CE) device is multihomed to a set of PE nodes using the 
   Link Aggregation Control Protocol (LACP) <xref target="IEEE_802.1AX_2014" format="default" sectionFormat="of" derivedContent="IEEE_802.1AX_2014"/>, the PEs must function as a single LACP entity for the
   Ethernet links to form and operate as a Link Aggregation Group (LAG). To achieve this, the PEs
   connected to the same multihomed CE must synchronize LACP configuration and operational data
   among them. Historically, the Inter-Chassis Communication Protocol (ICCP) <xref target="RFC7275" format="default" sectionFormat="of" derivedContent="RFC7275"/>
   has been used for this synchronization.
   EVPN, as described in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>, covers the scenario where a CE is multihomed to
   multiple PE nodes, using a LAG to simplify the procedure significantly. However, this simplification
   comes with certain assumptions:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1.2-2">
          <li pn="section-1.2-2.1">A CE device connected to EVPN multihoming PEs <bcp14>MUST</bcp14> have a single LAG with all its links
        connected to the EVPN multihoming PEs in a redundancy group.</li>
          <li pn="section-1.2-2.2">Identical LACP parameters <bcp14>MUST</bcp14> be configured on peering PEs, including the system ID, port priority, and port key.</li>
        </ul>
        <t indent="0" pn="section-1.2-3">This document presumes proper LAG operation as specified in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>.
      Issues resulting from deviations in the aforementioned assumptions, LAG misconfiguration, and
      miswiring detection across peering PEs are considered outside the scope of this document.
        </t>
        <figure anchor="Topology" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-mc-lag-topology">MC-LAG Topology</name>
          <artwork align="left" pn="section-1.2-4.1">
                 +-----+
                 | PE3 |
                 +-----+
              +-----------+
              |  MPLS/IP  |
              |  CORE     |
              +-----------+
            +-----+   +-----+
            | PE1 |   | PE2 |
            +-----+   +-----+
               I1       I2
                \       /
                 \     /
                  \   /
                  +---+
                  |CE1|
                  +---+</artwork>
        </figure>
        <t indent="0" pn="section-1.2-5"><xref target="Topology" format="default" sectionFormat="of" derivedContent="Figure 1"/> shows an MC-LAG multihoming topology where PE1 and PE2 are
     part of the same redundancy group providing multihoming to CE1 via
     interfaces I1 and I2. Interfaces I1 and I2 are members of a LAG running LACP. The core, shown as IP or MPLS
     enabled, provides a wide range of L2 and L3 services. MC-LAG multihoming
     functionality is decoupled from those services in the core, and
     it focuses on providing multihoming to the CE. In Port-Active redundancy mode, only one of the
     two interfaces, I1 or I2,
     would be in forwarding, and the other interface would be in standby. This
     also implies that all services on the active interface operate in active
     mode and all services on the standby interface operate in standby
     mode.</t>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-port-active-redundancy-mode">Port-Active Redundancy Mode</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-overall-advantages">Overall Advantages</name>
        <t indent="0" pn="section-2.1-1">The use of Port-Active redundancy in EVPN networks provides the following benefits:</t>
        <ol spacing="normal" type="a" indent="adaptive" start="1" pn="section-2.1-2">
        <li pn="section-2.1-2.1" derivedCounter="a.">It offers open-standards-based
      active/standby redundancy at the interface level rather than VLAN granularity <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>.</li>
          <li pn="section-2.1-2.2" derivedCounter="b.">It eliminates the need for ICCP and LDP  <xref target="RFC5036" format="default" sectionFormat="of" derivedContent="RFC5036"/> (e.g.,
      Virtual eXtensible Local Area Network (VXLAN) <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/> or Segment Routing over IPv6 (SRv6) <xref target="RFC8402" format="default" sectionFormat="of" derivedContent="RFC8402"/> may be used in the network).</li>
          <li pn="section-2.1-2.3" derivedCounter="c.">This mode is agnostic of the underlying technology (MPLS, VXLAN, and SRv6) and associated services (Layer 2 (L2), Layer 3 (L3), Bridging, E-LINE, etc.)</li>
          <li pn="section-2.1-2.4" derivedCounter="d.">It enables deterministic QoS over MC-LAG attachment circuits.</li>
          <li pn="section-2.1-2.5" derivedCounter="e.">It is fully compliant with <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> and does not
        require any new protocol enhancements to existing EVPN RFCs.</li>
          <li pn="section-2.1-2.6" derivedCounter="f.">It can leverage various Designated Forwarder (DF) election algorithms, such as modulo
        <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>, Highest Random Weight (HRW) <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/>, etc.</li>
          <li pn="section-2.1-2.7" derivedCounter="g.">
            <t indent="0" pn="section-2.1-2.7.1">It replaces legacy MC-LAG ICCP-based solutions and offers the
          following additional benefits:</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.1-2.7.2">
              <li pn="section-2.1-2.7.2.1">Efficient support for 1+N redundancy mode (with EVPN using BGP Route Reflector), whereas ICCP
            requires a full mesh of LDP sessions among PEs in the redundancy group.</li>
              <li pn="section-2.1-2.7.2.2">Fast convergence with mass withdraw is possible with EVPN, which has no equivalent
            in ICCP.</li>
            </ul>
          </li>
        </ol>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-port-active-redundancy-proc">Port-Active Redundancy Procedures</name>
        <t indent="0" pn="section-2.2-1">The following steps outline the proposed procedure for supporting Port-Active redundancy
        mode with EVPN LAG:</t>
        <ol spacing="normal" type="a" indent="adaptive" start="1" pn="section-2.2-2">
        <li pn="section-2.2-2.1" derivedCounter="a.">The Ethernet Segment Identifier (ESI) <bcp14>MUST</bcp14> be assigned per access interface as described
        in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>. The ESI can be auto-derived or manually assigned, and the access
        interface <bcp14>MAY</bcp14> be an L2 or L3 interface.</li>
          <li pn="section-2.2-2.2" derivedCounter="b.">The Ethernet Segment (ES) <bcp14>MUST</bcp14> be configured in Port-Active redundancy mode on peering
        PEs for the specified access interface.</li>
          <li pn="section-2.2-2.3" derivedCounter="c.">When ESI is configured on an L3 interface, the ES route (Route
          Type-4) can be the only route exchanged by PEs in the redundancy group.</li>
          <li pn="section-2.2-2.4" derivedCounter="d.">PEs in the redundancy group leverage the DF election defined in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/>
        to determine which PE keeps the port in active mode and which PE(s) keeps it in standby
        mode. Although the DF election defined in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/> is per [ES, Ethernet Tag]
        granularity, the DF election is performed per [ES] in Port-Active redundancy mode. The
        details of this algorithm are described in <xref target="df_algo" format="default" sectionFormat="of" derivedContent="Section 3"/>.</li>
          <li pn="section-2.2-2.5" derivedCounter="e.">The DF router <bcp14>MUST</bcp14> keep the corresponding access interface in an up and forwarding
        active state for that ES.</li>
          <li pn="section-2.2-2.6" derivedCounter="f.">
            <t indent="0" pn="section-2.2-2.6.1">Non-DF routers <bcp14>SHOULD</bcp14> implement a bidirectional blocking scheme for all traffic
        comparable to the Single-Active redundancy mode described in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>,
        albeit across all VLANs.
            </t>
            <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-2.2-2.6.2">
              <li pn="section-2.2-2.6.2.1">Non-DF routers <bcp14>MAY</bcp14> bring and keep the peering access interface attached to them in
            an operational down state.</li>
              <li pn="section-2.2-2.6.2.2">If the interface is running the LACP protocol, the non-DF PE <bcp14>MAY</bcp14> set the LACP state
            to Out of Sync (OOS) instead of setting the interface to a down state. This approach
            allows for better convergence during the transition from standby to active mode.</li>
            </ul>
          </li>
          <li pn="section-2.2-2.7" derivedCounter="g.">The primary/backup bits of the EVPN Layer 2 Attributes (L2-Attr) Extended Community <xref target="RFC8214" format="default" sectionFormat="of" derivedContent="RFC8214"/> <bcp14>SHOULD</bcp14> be used to achieve better convergence, as described in <xref target="es_ead_pb" format="default" sectionFormat="of" derivedContent="Section 4.1"/>.</li>
        </ol>
      </section>
    </section>
    <section anchor="df_algo" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-designated-forwarder-algori">Designated Forwarder Algorithm to Elect per Port-Active PE</name>
      <t indent="0" pn="section-3-1">The ES routes operating in Port-Active redundancy mode are advertised with the new Port
      Mode Load-Balancing capability bit in the DF Election Extended Community as defined in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/>. Additionally, the ES associated with the port utilizes the existing
      Single-Active procedure and signals the Single-Active multihomed site redundancy mode along
      with the Ethernet A-D per-ES route (refer to <xref target="RFC7432" section="7.5" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7432#section-7.5" derivedContent="RFC7432"/>).
      Finally, The ESI label-based split-horizon procedures specified in <xref target="RFC7432" section="8.3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7432#section-8.3" derivedContent="RFC7432"/> <bcp14>SHOULD</bcp14> be employed to prevent transient echo packets when L2 circuits are
      involved.</t>
      <t indent="0" pn="section-3-2">Various algorithms for DF election are detailed in Sections <xref target="modulo" format="counter" sectionFormat="of" derivedContent="3.2"/> to <xref target="ac_df" format="counter" sectionFormat="of" derivedContent="3.5"/> for comprehensive
      understanding, although the choice of algorithm in this solution does not significantly impact
      complexity or performance compared to other redundancy modes.</t>
      <section anchor="cap_flag" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-capability-flag">Capability Flag</name>
        <t indent="0" pn="section-3.1-1"> <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/> defines a DF Election Extended Community and a bitmap (2
        octets) field to encode "DF Election Capabilities" to use with the DF election algorithm
       in the DF algorithm field: </t>
        <dl newline="false" spacing="normal" indent="10" pn="section-3.1-2">
          <dt pn="section-3.1-2.1">Bit 0:</dt>
          <dd pn="section-3.1-2.2">D bit or 'Don't Preempt' bit, as described in <xref target="RFC9785" format="default" sectionFormat="of" derivedContent="RFC9785"/>.</dd>
          <dt pn="section-3.1-2.3">Bit 1:</dt>
          <dd pn="section-3.1-2.4">AC-Influenced DF (AC-DF) election, as described in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/>.</dd>
          <dt pn="section-3.1-2.5">Bit 3:</dt>
          <dd pn="section-3.1-2.6">Time Synchronization, as described in <xref target="RFC9722" format="default" sectionFormat="of" derivedContent="RFC9722"/>.</dd>
        </dl>
        <figure anchor="bitmap" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-amended-df-election-capabil">Amended DF Election Capabilities in the DF Election Extended Community</name>
          <artwork align="left" pn="section-3.1-3.1">
                         1 1 1 1 1 1
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |D|A| |T| |P|                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
        </figure>
        <t indent="0" pn="section-3.1-4">This document defines the following value and extends the DF Election Capabilities bitmap field:</t>
        <dl newline="false" spacing="normal" indent="10" pn="section-3.1-5">
          <dt pn="section-3.1-5.1">Bit 5:</dt>
          <dd pn="section-3.1-5.2">Port Mode Designated Forwarder Election. This
            bit determines that the DF election algorithm <bcp14>SHOULD</bcp14> be modified to consider the
            port ES only and not the Ethernet Tags.</dd>
        </dl>
      </section>
      <section anchor="modulo" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-modulo-based-algorithm">Modulo-Based Algorithm</name>
        <t indent="0" pn="section-3.2-1">The default DF election algorithm, or modulo-based algorithm, as described in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> and updated by <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/>, is applied here at the
        granularity of ES only. Given that the ES-Import Route Target extended community may be
        auto-derived and directly inherits its auto-derived value from ESI bytes 1-6, many operators
        differentiate ESIs primarily within these bytes. Consequently, bytes 3-6 are utilized to
        determine the designated forwarder using the modulo-based DF assignment, achieving good
        entropy during modulo calculation across ESIs.</t>
        <t indent="0" pn="section-3.2-2">Assuming a redundancy group of N PE nodes, the PE with ordinal i is designated as the DF
        for an &lt;ES&gt; when (Es mod N) = i, where Es represents bytes 3-6 of that ESI.</t>
      </section>
      <section anchor="hrw" numbered="true" removeInRFC="false" toc="include" pn="section-3.3">
        <name slugifiedName="name-highest-random-weight-algor">Highest Random Weight Algorithm</name>
        <t indent="0" pn="section-3.3-1">
       An application of Highest Random Weight (HRW) to EVPN DF election is
       defined in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/>, and it <bcp14>MAY</bcp14>
       be used and signaled. For Port-Active, this is modified to operate at the granularity of
       &lt;ES&gt; rather than per &lt;ES, VLAN&gt;.</t>
        <t indent="0" pn="section-3.3-2"><xref target="RFC8584" section="3.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8584#section-3.2" derivedContent="RFC8584"/> describes computing a 32-bit Cyclic Redundancy Check (CRC) over the concatenation of
       Ethernet Tag (V) and ESI (Es). For Port-Active redundancy mode, the
       Ethernet Tag is omitted from the CRC computation and all references to (V, Es) are
	replaced by (Es).</t>
        <t indent="0" pn="section-3.3-3">The algorithm used to determine the DF and Backup Designated 
   Forwarder (BDF) per <xref target="RFC8584" section="3.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8584#section-3.2" derivedContent="RFC8584"/> is repeated and summarized below using only (Es) in the
       computation:</t>
        <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-3.3-4">
           <li pn="section-3.3-4.1" derivedCounter="1.">DF(Es) = Si| Weight(Es, Si) &gt;= Weight(Es, Sj), for all j.
           In the case of a tie, choose the PE whose IP address is
           numerically the least.  Note that 0 &lt;= i,j &lt; number of PEs in the
           redundancy group.</li>
          <li pn="section-3.3-4.2" derivedCounter="2.">BDF(Es) = Sk| Weight(Es, Si) &gt;= Weight(Es, Sk), and
            Weight(Es, Sk) &gt;= Weight(Es, Sj).  In the case of a tie,
            choose the PE whose IP address is numerically the least.</li>
        </ol>
        <t indent="0" pn="section-3.3-5">Where:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-3.3-6">
          <li pn="section-3.3-6.1">DF(Es) is defined to be the address Si (index i) for which
           Weight(Es, Si) is the highest; 0 &lt;= i &lt; N-1.</li>
          <li pn="section-3.3-6.2">BDF(Es) is defined as that PE with address Sk for which the
           computed Weight is the next highest after the Weight of the DF.
           j is the running index from 0 to N-1; i and k are selected values.</li>
        </ul>
      </section>
      <section anchor="pref_df" numbered="true" removeInRFC="false" toc="include" pn="section-3.4">
        <name slugifiedName="name-preference-based-df-electio">Preference-Based DF Election</name>
        <t indent="0" pn="section-3.4-1"> When the new capability 'Port Mode' is signaled, the preference-based DF election
        algorithm <xref target="RFC9785" format="default" sectionFormat="of" derivedContent="RFC9785"/> is
       modified to consider the port only and not any associated Ethernet Tags. The Port Mode
       capability is compatible with the 'Don't Preempt' bit and both may be signaled. When an interface recovers,
       a peering PE signaling the D bit enables non-revertive behavior at
       the port level. </t>
      </section>
      <section anchor="ac_df" numbered="true" removeInRFC="false" toc="include" pn="section-3.5">
        <name slugifiedName="name-ac-influenced-df-election">AC-Influenced DF Election</name>
        <t indent="0" pn="section-3.5-1">The AC-DF bit defined in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/> <bcp14>MUST</bcp14> be set to 0 when advertising Port Mode Designated Forwarder Election capability
        (P=1).
        When an AC (sub-interface) goes down, any resulting Ethernet A-D per EVI withdrawal does not influence the DF election.</t>
        <t indent="0" pn="section-3.5-2">Upon receiving the AC-DF bit set (A=1) from a remote PE, it <bcp14>MUST</bcp14> be ignored when performing
        Port Mode Designated Forwarder Election.</t>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-convergence-considerations">Convergence Considerations</name>
      <t indent="0" pn="section-4-1">To enhance convergence during failure and recovery when the Port-Active redundancy mode is
      employed, prior synchronization between peering PEs may be beneficial.</t>
      <t indent="0" pn="section-4-2">The Port-Active mode
      poses a challenge to synchronization since the "standby" port may be in a down state. Transitioning a "standby"
      port to an up state and stabilizing the network requires time. For Integrated Routing and
      Bridging (IRB) and L3 services, prior synchronization of ARP / Neighbor Discovery (ND) caches is recommended.
      Additionally, associated Virtual Routing and Forwarding (VRF) tables may need to be synchronized. For L2 services,
      synchronization of MAC tables may be considered.</t>
      <t indent="0" pn="section-4-3">Moreover, for members of a LAG running LACP, the ability to set the "standby" port to an
      "out-of-sync" state, also known as "warm-standby," can be utilized to improve convergence
      times.</t>
      <section anchor="es_ead_pb" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-primary-backup-bits-per-eth">Primary/Backup Bits per Ethernet Segment</name>
        <t indent="0" pn="section-4.1-1">The EVPN L2-Attr Extended Community defined in <xref target="RFC8214" format="default" sectionFormat="of" derivedContent="RFC8214"/> <bcp14>SHOULD</bcp14> be advertised in the Ethernet A-D per ES route to enable fast
        convergence.</t>
        <t indent="0" pn="section-4.1-2">Only the P and B bits of the Control Flags field in the L2-Attr Extended Community are
        relevant to this document, specifically in the context of Ethernet A-D per ES routes:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.1-3">
          <li pn="section-4.1-3.1">When advertised, the L2-Attr Extended Community <bcp14>SHALL</bcp14> have only the P or B bits set
            in the Control Flags field, and all other bits and fields <bcp14>MUST</bcp14> be zero.</li>
          <li pn="section-4.1-3.2">A remote PE receiving the optional L2-Attr Extended Community in Ethernet A-D per ES
            routes <bcp14>SHALL</bcp14> consider only the P and B bits and ignore other values.</li>
        </ul>
        <t indent="0" pn="section-4.1-4">For the L2-Attr Extended Community sent and received in Ethernet A-D per EVI
     routes used in <xref target="RFC8214" format="default" sectionFormat="of" derivedContent="RFC8214"/>, <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>, and <xref target="RFC9744" format="default" sectionFormat="of" derivedContent="RFC9744"/>:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.1-5">
          <li pn="section-4.1-5.1">P and B bits received <bcp14>SHOULD</bcp14> be considered overridden by "parent" bits when
            advertised in the Ethernet A-D per ES.</li>
          <li pn="section-4.1-5.2">Other fields and bits of the extended community are used according to the procedures
            outlined in the referenced documents.</li>
        </ul>
        <t indent="0" pn="section-4.1-6">By adhering to these procedures, the network ensures proper handling of the L2-Attr
        Extended Community to maintain robust and efficient convergence across Ethernet
        Segments.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-backward-compatibility">Backward Compatibility</name>
        <t indent="0" pn="section-4.2-1">Implementations that comply with <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> or <xref target="RFC8214" format="default" sectionFormat="of" derivedContent="RFC8214"/> only (i.e., implementations 
    that predate this specification) and that receive an L2-Attr Extended Community in Ethernet A-D per ES routes will ignore it and continue
    to use the default path resolution algorithms of the two specifications above:</t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.2-2">
          <li pn="section-4.2-2.1">The L2-Attr Extended Community in Ethernet A-D per ES route is ignored.</li>
          <li pn="section-4.2-2.2">The remote ESI Label Extended Community <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> signals the
      Single-Active redundancy mode (<xref target="df_algo" format="default" sectionFormat="of" derivedContent="Section 3"/>).</li>
          <li pn="section-4.2-2.3">The remote Media Access Control (MAC) and/or Ethernet A-D per EVI routes are unchanged; the P and B bits in the L2-Attr
    Extended Community in Ethernet A-D per EVI routes are used.</li>
        </ul>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-applicability">Applicability</name>
      <t indent="0" pn="section-5-1">A prevalent deployment scenario involves providing L2 or L3 services on PE devices that offer
      multihoming capabilities. The services may include any L2 EVPN solutions such as EVPN Virtual Private Wire Service (VPWS) or
      standard EVPN as defined in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>. Additionally, L3 services may be
      provided within a VPN context, as specified in <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>, or within a global routing context.
      When a PE provides first-hop routing, EVPN IRB may also be deployed on the PEs. The mechanism
      outlined in this document applies to PEs providing L2 and/or L3 services where active/standby
      redundancy at the interface level is required.</t>
      <t indent="0" pn="section-5-2">An alternative solution to the one described in this document is MC-LAG with ICCP active/standby redundancy, as detailed in <xref target="RFC7275" format="default" sectionFormat="of" derivedContent="RFC7275"/>. However, ICCP requires LDP to be enabled as a transport for ICCP messages.
      There are numerous scenarios where LDP is not necessary, such as deployments utilizing VXLAN
      or SRv6. The solution using EVPN, as described in this document, does not mandate the use of LDP or
      ICCP and remains independent of the underlay encapsulation.</t>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">Per this document, IANA has added the following entry to the "DF Election Capabilities" registry under the "Border Gateway Protocol (BGP) Extended
      Communities" registry group:</t>
      <table anchor="iana_table" align="center" pn="table-1">
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Bit</th>
            <th align="left" colspan="1" rowspan="1">Name</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">5</td>
            <td align="left" colspan="1" rowspan="1">Port Mode Designated Forwarder Election</td>
            <td align="left" colspan="1" rowspan="1">RFC 9786</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">The security considerations described in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> and <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/> are applicable to this
      document.</t>
      <t indent="0" pn="section-7-2">Introducing a new capability necessitates unanimity among PEs. Without consensus on the new
      DF election procedures and Port Mode, the DF election algorithm defaults to the procedures
      outlined in <xref target="RFC8584" format="default" sectionFormat="of" derivedContent="RFC8584"/> and <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>.This fallback behavior could
      be exploited by an attacker who modifies the configuration of one PE within the ES. Such manipulation could force all PEs in the ES to revert to the default DF election
      algorithm and capabilities. In this scenario, the PEs may be subject to unfair load
      balancing, service disruption, and potential issues such as traffic loss or duplicate traffic,
      as mentioned in the security sections of those documents.</t>
    </section>
  </middle>
  <back>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="IEEE_802.1AX_2014" target="https://ieeexplore.ieee.org/document/7055197" quoteTitle="true" derivedAnchor="IEEE_802.1AX_2014">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks -- Link Aggregation</title>
            <author>
              <organization abbrev="IEEE" showOnFrontPage="true">Institute of Electrical and Electronics Engineers</organization>
              <address>
                <postal>
                  <country>USA</country>
                  <city>New York</city>
                </postal>
                <uri>http://www.ieee.org</uri>
              </address>
            </author>
            <date day="5" month="March" year="2015"/>
            <abstract>
              <t indent="0">MAC-independent Link Aggregation capability and general information relevant to specific MAC types are defined in this standard. Link Aggregation allows parallel full-duplex point-to-point links to be used as if they were a single link and also supports the use of multiple links as a resilient load sharing interconnect between multiple nodes in two separately administered networks.</t>
            </abstract>
          </front>
          <seriesInfo name="IEEE" value="802-1ax-2014"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2014.7055197"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC7432" target="https://www.rfc-editor.org/info/rfc7432" quoteTitle="true" derivedAnchor="RFC7432">
          <front>
            <title>BGP MPLS-Based Ethernet VPN</title>
            <author fullname="A. Sajassi" initials="A." role="editor" surname="Sajassi"/>
            <author fullname="R. Aggarwal" initials="R." surname="Aggarwal"/>
            <author fullname="N. Bitar" initials="N." surname="Bitar"/>
            <author fullname="A. Isaac" initials="A." surname="Isaac"/>
            <author fullname="J. Uttaro" initials="J." surname="Uttaro"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="W. Henderickx" initials="W." surname="Henderickx"/>
            <date month="February" year="2015"/>
            <abstract>
              <t indent="0">This document describes procedures for BGP MPLS-based Ethernet VPNs (EVPN). The procedures described here meet the requirements specified in RFC 7209 -- "Requirements for Ethernet VPN (EVPN)".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7432"/>
          <seriesInfo name="DOI" value="10.17487/RFC7432"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8214" target="https://www.rfc-editor.org/info/rfc8214" quoteTitle="true" derivedAnchor="RFC8214">
          <front>
            <title>Virtual Private Wire Service Support in Ethernet VPN</title>
            <author fullname="S. Boutros" initials="S." surname="Boutros"/>
            <author fullname="A. Sajassi" initials="A." surname="Sajassi"/>
            <author fullname="S. Salam" initials="S." surname="Salam"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="J. Rabadan" initials="J." surname="Rabadan"/>
            <date month="August" year="2017"/>
            <abstract>
              <t indent="0">This document describes how Ethernet VPN (EVPN) can be used to support the Virtual Private Wire Service (VPWS) in MPLS/IP networks. EVPN accomplishes the following for VPWS: provides Single-Active as well as All-Active multihoming with flow-based load-balancing, eliminates the need for Pseudowire (PW) signaling, and provides fast protection convergence upon node or link failure.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8214"/>
          <seriesInfo name="DOI" value="10.17487/RFC8214"/>
        </reference>
        <reference anchor="RFC8584" target="https://www.rfc-editor.org/info/rfc8584" quoteTitle="true" derivedAnchor="RFC8584">
          <front>
            <title>Framework for Ethernet VPN Designated Forwarder Election Extensibility</title>
            <author fullname="J. Rabadan" initials="J." role="editor" surname="Rabadan"/>
            <author fullname="S. Mohanty" initials="S." role="editor" surname="Mohanty"/>
            <author fullname="A. Sajassi" initials="A." surname="Sajassi"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="K. Nagaraj" initials="K." surname="Nagaraj"/>
            <author fullname="S. Sathappan" initials="S." surname="Sathappan"/>
            <date month="April" year="2019"/>
            <abstract>
              <t indent="0">An alternative to the default Designated Forwarder (DF) selection algorithm in Ethernet VPNs (EVPNs) is defined. The DF is the Provider Edge (PE) router responsible for sending Broadcast, Unknown Unicast, and Multicast (BUM) traffic to a multihomed Customer Edge (CE) device on a given VLAN on a particular Ethernet Segment (ES). In addition, the ability to influence the DF election result for a VLAN based on the state of the associated Attachment Circuit (AC) is specified. This document clarifies the DF election Finite State Machine in EVPN services. Therefore, it updates the EVPN specification (RFC 7432).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8584"/>
          <seriesInfo name="DOI" value="10.17487/RFC8584"/>
        </reference>
        <reference anchor="RFC9722" target="https://www.rfc-editor.org/info/rfc9722" quoteTitle="true" derivedAnchor="RFC9722">
          <front>
            <title>Fast Recovery for EVPN Designated Forwarder Election</title>
            <author fullname="P. Brissette" initials="P." surname="Brissette"/>
            <author fullname="A. Sajassi" initials="A." surname="Sajassi"/>
            <author fullname="LA. Burdet" initials="LA." role="editor" surname="Burdet"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="J. Rabadan" initials="J." surname="Rabadan"/>
            <date month="May" year="2025"/>
            <abstract>
              <t indent="0">The Ethernet Virtual Private Network (EVPN) solution in RFC 7432 provides Designated Forwarder (DF) election procedures for multihomed Ethernet Segments. These procedures have been enhanced further by applying the Highest Random Weight (HRW) algorithm for DF election to avoid unnecessary DF status changes upon a failure. This document improves these procedures by providing a fast DF election upon recovery of the failed link or node associated with the multihomed Ethernet Segment. This document updates RFC 8584 by optionally introducing delays between some of the events therein.</t>
              <t indent="0">The solution is independent of the number of EVPN Instances (EVIs) associated with that Ethernet Segment, and it is performed via a simple signaling in BGP between the recovered node and each of the other nodes in the multihoming group.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9722"/>
          <seriesInfo name="DOI" value="10.17487/RFC9722"/>
        </reference>
        <reference anchor="RFC9785" target="https://www.rfc-editor.org/info/rfc9785" quoteTitle="true" derivedAnchor="RFC9785">
          <front>
            <title>Preference-Based EVPN Designated Forwarder (DF) Election</title>
            <author fullname="Jorge Rabadan" initials="J." surname="Rabadan" role="editor">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <author fullname="Senthil Sathappan" initials="S." surname="Sathappan">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <author fullname="Wen Lin" initials="W." surname="Lin">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <author fullname="John Drake" initials="J." surname="Drake">
              <organization showOnFrontPage="true">Independent</organization>
            </author>
            <author fullname="Ali Sajassi" initials="A." surname="Sajassi">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <date month="June" year="2025"/>
          </front>
          <seriesInfo name="RFC" value="RFC9785"/>
          <seriesInfo name="DOI" value="10.17487/RFC9785"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4364" quoteTitle="true" derivedAnchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t indent="0">This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC5036" target="https://www.rfc-editor.org/info/rfc5036" quoteTitle="true" derivedAnchor="RFC5036">
          <front>
            <title>LDP Specification</title>
            <author fullname="L. Andersson" initials="L." role="editor" surname="Andersson"/>
            <author fullname="I. Minei" initials="I." role="editor" surname="Minei"/>
            <author fullname="B. Thomas" initials="B." role="editor" surname="Thomas"/>
            <date month="October" year="2007"/>
            <abstract>
              <t indent="0">The architecture for Multiprotocol Label Switching (MPLS) is described in RFC 3031. A fundamental concept in MPLS is that two Label Switching Routers (LSRs) must agree on the meaning of the labels used to forward traffic between and through them. This common understanding is achieved by using a set of procedures, called a label distribution protocol, by which one LSR informs another of label bindings it has made. This document defines a set of such procedures called LDP (for Label Distribution Protocol) by which LSRs distribute labels to support MPLS forwarding along normally routed paths. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5036"/>
          <seriesInfo name="DOI" value="10.17487/RFC5036"/>
        </reference>
        <reference anchor="RFC7275" target="https://www.rfc-editor.org/info/rfc7275" quoteTitle="true" derivedAnchor="RFC7275">
          <front>
            <title>Inter-Chassis Communication Protocol for Layer 2 Virtual Private Network (L2VPN) Provider Edge (PE) Redundancy</title>
            <author fullname="L. Martini" initials="L." surname="Martini"/>
            <author fullname="S. Salam" initials="S." surname="Salam"/>
            <author fullname="A. Sajassi" initials="A." surname="Sajassi"/>
            <author fullname="M. Bocci" initials="M." surname="Bocci"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="T. Nadeau" initials="T." surname="Nadeau"/>
            <date month="June" year="2014"/>
            <abstract>
              <t indent="0">This document specifies an Inter-Chassis Communication Protocol (ICCP) that enables Provider Edge (PE) device redundancy for Virtual Private Wire Service (VPWS) and Virtual Private LAN Service (VPLS) applications. The protocol runs within a set of two or more PEs, forming a Redundancy Group, for the purpose of synchronizing data among the systems. It accommodates multi-chassis attachment circuit redundancy mechanisms as well as pseudowire redundancy mechanisms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7275"/>
          <seriesInfo name="DOI" value="10.17487/RFC7275"/>
        </reference>
        <reference anchor="RFC7348" target="https://www.rfc-editor.org/info/rfc7348" quoteTitle="true" derivedAnchor="RFC7348">
          <front>
            <title>Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks</title>
            <author fullname="M. Mahalingam" initials="M." surname="Mahalingam"/>
            <author fullname="D. Dutt" initials="D." surname="Dutt"/>
            <author fullname="K. Duda" initials="K." surname="Duda"/>
            <author fullname="P. Agarwal" initials="P." surname="Agarwal"/>
            <author fullname="L. Kreeger" initials="L." surname="Kreeger"/>
            <author fullname="T. Sridhar" initials="T." surname="Sridhar"/>
            <author fullname="M. Bursell" initials="M." surname="Bursell"/>
            <author fullname="C. Wright" initials="C." surname="Wright"/>
            <date month="August" year="2014"/>
            <abstract>
              <t indent="0">This document describes Virtual eXtensible Local Area Network (VXLAN), which is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants. The scheme and the related protocols can be used in networks for cloud service providers and enterprise data centers. This memo documents the deployed VXLAN protocol for the benefit of the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7348"/>
          <seriesInfo name="DOI" value="10.17487/RFC7348"/>
        </reference>
        <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8402" quoteTitle="true" derivedAnchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t indent="0">Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t indent="0">SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t indent="0">SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC9744" target="https://www.rfc-editor.org/info/rfc9744" quoteTitle="true" derivedAnchor="RFC9744">
          <front>
            <title>EVPN Virtual Private Wire Service (VPWS) Flexible Cross-Connect (FXC) Service</title>
            <author fullname="A. Sajassi" initials="A." role="editor" surname="Sajassi"/>
            <author fullname="P. Brissette" initials="P." surname="Brissette"/>
            <author fullname="J. Uttaro" initials="J." surname="Uttaro"/>
            <author fullname="J. Drake" initials="J." surname="Drake"/>
            <author fullname="S. Boutros" initials="S." surname="Boutros"/>
            <author fullname="J. Rabadan" initials="J." surname="Rabadan"/>
            <date month="March" year="2025"/>
            <abstract>
              <t indent="0">This document describes a new EVPN Virtual Private Wire Service (VPWS) service type specifically for multiplexing multiple attachment circuits across different Ethernet Segments (ESs) and physical interfaces into a single EVPN-VPWS service tunnel and still providing Single-Active and All-Active multi-homing. This new service is referred to as the EVPN-VPWS Flexible Cross-Connect (FXC) service. This document specifies a solution based on extensions to EVPN-VPWS (RFC 8214), which in turn is based on extensions to EVPN (RFC 7432). Therefore, a thorough understanding of RFCs 7432 and 8214 are prerequisites for this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9744"/>
          <seriesInfo name="DOI" value="10.17487/RFC9744"/>
        </reference>
      </references>
    </references>
    <section numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors thank <contact fullname="Anoop Ghanwani"/> for his
      comments and suggestions and <contact fullname="Stephane Litkowski"/>
      and <contact fullname="Gunter Van de Velde"/> for their careful
      reviews.</t>
    </section>
    <section numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <t indent="0" pn="section-appendix.b-1">In addition to the authors listed on the front page, the following
      people have also contributed to this document:</t>
      <author fullname="Ali Sajassi" initials="A." surname="Sajassi">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>sajassi@cisco.com</email>
        </address>
      </author>
      <author fullname="Samir Thoria" initials="S." surname="Thoria">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>sthoria@cisco.com</email>
        </address>
      </author>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Patrice Brissette" initials="P." surname="Brissette">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <city>Ottawa</city>
            <region>ON</region>
            <country>Canada</country>
          </postal>
          <email>pbrisset@cisco.com</email>
        </address>
      </author>
      <author fullname="Luc André Burdet" initials="LA." surname="Burdet" role="editor">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <country>Canada</country>
          </postal>
          <email>lburdet@cisco.com</email>
        </address>
      </author>
      <author fullname="Bin Wen" initials="B." surname="Wen">
        <organization showOnFrontPage="true">Comcast</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>Bin_Wen@comcast.com</email>
        </address>
      </author>
      <author fullname="Edward Leyton" initials="E." surname="Leyton">
        <organization showOnFrontPage="true">Verizon Wireless</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>edward.leyton@verizonwireless.com</email>
        </address>
      </author>
      <author fullname="Jorge Rabadan" initials="J." surname="Rabadan">
        <organization showOnFrontPage="true">Nokia</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <email>jorge.rabadan@nokia.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
