<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-bess-evpn-igmp-mld-proxy-21" indexInclude="true" ipr="trust200902" number="9251" prepTime="2022-06-22T07:00:07" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="6" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-bess-evpn-igmp-mld-proxy-21" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9251" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="IGMP and MLD Proxies for EVPN">Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Proxies for Ethernet VPN (EVPN)</title>
    <seriesInfo name="RFC" value="9251" stream="IETF"/>
    <author initials="A" surname="Sajassi" fullname="Ali Sajassi">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <street>821 Alder Drive</street>
          <code>95035</code>
          <city>Milpitas</city>
          <region>CA</region>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>sajassi@cisco.com</email>
      </address>
    </author>
    <author initials="S" surname="Thoria" fullname="Samir Thoria">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <street>821 Alder Drive</street>
          <code>95035</code>
          <city>Milpitas</city>
          <region>CA</region>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>sthoria@cisco.com</email>
      </address>
    </author>
    <author initials="M" surname="Mishra" fullname="Mankamana Mishra">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <street>821 Alder Drive</street>
          <code>95035</code>
          <city>Milpitas</city>
          <region>CA</region>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>mankamis@cisco.com</email>
      </address>
    </author>
    <author initials="K" surname="Patel" fullname="Keyur Patel">
      <organization showOnFrontPage="true">Arrcus</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <phone/>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author initials="J" surname="Drake" fullname="John Drake">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>jdrake@juniper.net</email>
      </address>
    </author>
    <author initials="W" surname="Lin" fullname="Wen Lin">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>wlin@juniper.net</email>
      </address>
    </author>
    <date month="06" year="2022"/>
    <area>RTG</area>
    <workgroup>BESS</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document describes how to support endpoints running
      the Internet Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD) efficiently
      for the multicast services over an Ethernet VPN (EVPN) network by incorporating
      IGMP/MLD Proxy procedures on EVPN Provider Edges (PEs).
      </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/rfc9251" 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) 2022 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>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" 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-specification-of-requiremen">Specification of Requirements</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" 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-terminology">Terminology</xref></t>
          </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-igmp-mld-proxy">IGMP/MLD Proxy</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-proxy-reporting">Proxy Reporting</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-igmp-mld-membership-report-">IGMP/MLD Membership Report Advertisement in BGP</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-igmp-mld-leave-group-advert">IGMP/MLD Leave Group Advertisement in BGP</xref></t>
                  </li>
                </ul>
              </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-proxy-querier">Proxy Querier</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-operation">Operation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pe-with-only-attached-hosts">PE with Only Attached Hosts for a Given Subnet</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pe-with-a-mix-of-attached-h">PE with a Mix of Attached Hosts and a Multicast Source</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pe-with-a-mix-of-attached-ho">PE with a Mix of Attached Hosts, a Multicast Source, and a Router</xref></t>
              </li>
            </ul>
          </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-all-active-multihoming">All-Active Multihoming</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-local-igmp-mld-membership-r">Local IGMP/MLD Membership Report Synchronization</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-local-igmp-mld-leave-group-">Local IGMP/MLD Leave Group Synchronization</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.2.2">
                  <li pn="section-toc.1-1.6.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.2.2.1.1"><xref derivedContent="6.2.1" format="counter" sectionFormat="of" target="section-6.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-remote-leave-group-synchron">Remote Leave Group Synchronization</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.2.2.2.1"><xref derivedContent="6.2.2" format="counter" sectionFormat="of" target="section-6.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-common-leave-group-synchron">Common Leave Group Synchronization</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mass-withdraw-of-the-multic">Mass Withdraw of the Multicast Membership Report Synch Route in Case of Failure</xref></t>
              </li>
            </ul>
          </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-single-active-multihoming">Single-Active Multihoming</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-selective-multicast-procedu">Selective Multicast Procedures for IR Tunnels</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-encoding">BGP Encoding</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-selective-multicast-etherne">Selective Multicast Ethernet Tag Route</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2.1.2">
                  <li pn="section-toc.1-1.9.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.9.2.1.2.1.1"><xref derivedContent="9.1.1" format="counter" sectionFormat="of" target="section-9.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-constructing-the-selective-">Constructing the Selective Multicast Ethernet Tag Route</xref></t>
                  </li>
                  <li pn="section-toc.1-1.9.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.9.2.1.2.2.1"><xref derivedContent="9.1.2" format="counter" sectionFormat="of" target="section-9.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-reconstructing-igmp-mld-mem">Reconstructing IGMP/MLD Membership Reports from the Selective Multicast Route</xref></t>
                  </li>
                  <li pn="section-toc.1-1.9.2.1.2.3">
                    <t indent="0" pn="section-toc.1-1.9.2.1.2.3.1"><xref derivedContent="9.1.3" format="counter" sectionFormat="of" target="section-9.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-default-selective-multicast">Default Selective Multicast Route</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-membership-report">Multicast Membership Report Synch Route</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2.2.2">
                  <li pn="section-toc.1-1.9.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.9.2.2.2.1.1"><xref derivedContent="9.2.1" format="counter" sectionFormat="of" target="section-9.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-constructing-the-multicast-">Constructing the Multicast Membership Report Synch Route</xref></t>
                  </li>
                  <li pn="section-toc.1-1.9.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.9.2.2.2.2.1"><xref derivedContent="9.2.2" format="counter" sectionFormat="of" target="section-9.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-reconstructing-igmp-mld-memb">Reconstructing IGMP/MLD Membership Reports from a Multicast Membership
	  Report Synch Route</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.9.2.3">
                <t indent="0" pn="section-toc.1-1.9.2.3.1"><xref derivedContent="9.3" format="counter" sectionFormat="of" target="section-9.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-leave-synch-route">Multicast Leave Synch Route</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2.3.2">
                  <li pn="section-toc.1-1.9.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.9.2.3.2.1.1"><xref derivedContent="9.3.1" format="counter" sectionFormat="of" target="section-9.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-constructing-the-multicast-l">Constructing the Multicast Leave Synch Route</xref></t>
                  </li>
                  <li pn="section-toc.1-1.9.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.9.2.3.2.2.1"><xref derivedContent="9.3.2" format="counter" sectionFormat="of" target="section-9.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-reconstructing-igmp-mld-lea">Reconstructing IGMP/MLD Leave from a Multicast Leave Synch Route</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.9.2.4">
                <t indent="0" pn="section-toc.1-1.9.2.4.1"><xref derivedContent="9.4" format="counter" sectionFormat="of" target="section-9.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-flags-extended-co">Multicast Flags Extended Community</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.5">
                <t indent="0" pn="section-toc.1-1.9.2.5.1"><xref derivedContent="9.5" format="counter" sectionFormat="of" target="section-9.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-evi-rt-extended-community">EVI-RT Extended Community</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.6">
                <t indent="0" pn="section-toc.1-1.9.2.6.1"><xref derivedContent="9.6" format="counter" sectionFormat="of" target="section-9.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rewriting-of-rt-ecs-and-evi">Rewriting of RT ECs and EVI-RT ECs by ASBRs</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.7">
                <t indent="0" pn="section-toc.1-1.9.2.7.1"><xref derivedContent="9.7" format="counter" sectionFormat="of" target="section-9.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bgp-error-handling">BGP Error Handling</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-igmp-version-1-membership-r">IGMP Version 1 Membership Report</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.12.2">
              <li pn="section-toc.1-1.12.2.1">
                <t indent="0" pn="section-toc.1-1.12.2.1.1"><xref derivedContent="12.1" format="counter" sectionFormat="of" target="section-12.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-evpn-extended-community-sub">EVPN Extended Community Sub-Types Registration</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.2">
                <t indent="0" pn="section-toc.1-1.12.2.2.1"><xref derivedContent="12.2" format="counter" sectionFormat="of" target="section-12.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-evpn-route-types-registrati">EVPN Route Types Registration</xref></t>
              </li>
              <li pn="section-toc.1-1.12.2.3">
                <t indent="0" pn="section-toc.1-1.12.2.3.1"><xref derivedContent="12.3" format="counter" sectionFormat="of" target="section-12.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-flags-extended-com">Multicast Flags Extended Community Registry</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <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.13.2">
              <li pn="section-toc.1-1.13.2.1">
                <t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent="13.1" format="counter" sectionFormat="of" target="section-13.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.13.2.2">
                <t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent="13.2" format="counter" sectionFormat="of" target="section-13.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.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.15">
            <t indent="0" pn="section-toc.1-1.15.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.16">
            <t indent="0" pn="section-toc.1-1.16.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" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">In data center (DC) applications, a point of delivery (POD) can consist of a
      collection of servers supported by several top-of-rack (ToR) and
      spine switches. This collection of servers and switches are self-contained
      and may have their own control protocol for intra-POD
      communication and orchestration. However, EVPN is used as a standard
      way of inter-POD communication for both intra-DC and inter-DC. A
      subnet can span across multiple PODs and DCs. EVPN provides a robust
      multi-tenant solution with extensive multihoming capabilities to
      stretch a subnet (VLAN) across multiple PODs and DCs. There can be
      many hosts (several hundreds) attached to a subnet that is
      stretched across several PODs and DCs.	          
      </t>
      <t indent="0" pn="section-1-2">These hosts express their interests in multicast groups on a
      given subnet/VLAN by sending IGMP/MLD Membership Reports for
      their interested multicast group(s). Furthermore, an IGMP/MLD router
      periodically sends Membership Queries to find out if there are hosts
      on that subnet that are still interested in receiving multicast
      traffic for that group. The IGMP/MLD Proxy solution described in this
      document accomplishes three objectives:
      </t>
      <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-1-3">
	<li pn="section-1-3.1" derivedCounter="1.">Reduce flooding of IGMP/MLD messages: Just like the ARP/Neighbor Discovery (ND)
	suppression
	mechanism in EVPN to reduce the flooding of ARP messages over EVPN,
	it is also desired to have a mechanism to reduce the flooding of IGMP/MLD
	messages (both Queries and Membership Reports) in EVPN.</li>
        <li pn="section-1-3.2" derivedCounter="2.">Distributed anycast multicast proxy: It is desirable for the EVPN
	network to act as a distributed anycast multicast router with respect
	to IGMP/MLD Proxy function for all the hosts attached to that
	subnet.</li>
        <li pn="section-1-3.3" derivedCounter="3.">Selective multicast: This describes forwarding multicast traffic over the EVPN
	network such that it only gets forwarded to the PEs that have
	interests in the multicast group(s). This document shows how this objective may be achieved
	when ingress replication is used to distribute the multicast traffic
	among the PEs.  Procedures for supporting selective multicast using
	Point-to-Multipoint (P2MP) tunnels can be found in <xref target="I-D.ietf-bess-evpn-bum-procedure-updates" format="default" sectionFormat="of" derivedContent="EVPN-BUM"/>.</li>
      </ol>
      <t indent="0" pn="section-1-4">The first two objectives are achieved by using the IGMP/MLD Proxy on the
      PE. The third objective is achieved by setting up a multicast
      tunnel among only the PEs that have
      interest in the multicast group(s) based on the trigger from
      IGMP/MLD Proxy processes. The proposed solutions for each of these
      objectives are discussed in the following sections.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-specification-of-requiremen">Specification of Requirements</name>
      <t indent="0" pn="section-2-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" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-terminology">Terminology</name>
      <dl newline="false" spacing="normal" indent="3" pn="section-3-1">
        <dt pn="section-3-1.1"> AC:</dt>
        <dd pn="section-3-1.2"> Attachment Circuit</dd>
        <dt pn="section-3-1.3">All-Active Redundancy Mode:</dt>
        <dd pn="section-3-1.4"> When all PEs attached to an Ethernet
	segment are allowed to forward known unicast traffic to/from that
	Ethernet segment for a given VLAN, then the Ethernet segment is
	defined to be operating in All-Active redundancy mode.</dd>
        <dt pn="section-3-1.5">BD:</dt>
        <dd pn="section-3-1.6"> Broadcast Domain. As per <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>, an EVPN instance
	(EVI) consists of a single BD
	or multiple BDs. In case of a VLAN bundle and a VLAN-aware bundle service
	model, an EVI contains multiple BDs. Also, in this document, BD and
	subnet are equivalent terms.</dd>
        <dt pn="section-3-1.7">DC:</dt>
        <dd pn="section-3-1.8"> Data Center</dd>
        <dt pn="section-3-1.9">ES:</dt>
        <dd pn="section-3-1.10"> Ethernet segment. This is when a customer site (device or network) is
	connected to one or more PEs via a set of Ethernet links.</dd>
        <dt pn="section-3-1.11">ESI:</dt>
        <dd pn="section-3-1.12"> Ethernet Segment Identifier. This is a unique non-zero identifier that
	identifies an Ethernet segment.</dd>
        <dt pn="section-3-1.13">Ethernet Tag:</dt>
        <dd pn="section-3-1.14"> It identifies a particular broadcast
	domain, e.g., a VLAN.  An EVPN instance consists of one or more
	broadcast domains.</dd>
        <dt pn="section-3-1.15">EVI:</dt>
        <dd pn="section-3-1.16"> EVPN Instance. This spans the Provider Edge (PE) devices
	participating in that EVPN.</dd>
        <dt pn="section-3-1.17">EVPN:</dt>
        <dd pn="section-3-1.18"> Ethernet Virtual Private Network</dd>
        <dt pn="section-3-1.19">IGMP:</dt>
        <dd pn="section-3-1.20"> Internet Group Management Protocol</dd>
        <dt pn="section-3-1.21">IR:</dt>
        <dd pn="section-3-1.22"> Ingress Replication</dd>
        <dt pn="section-3-1.23">MLD:</dt>
        <dd pn="section-3-1.24"> Multicast Listener Discovery</dd>
        <dt pn="section-3-1.25"> OIF:</dt>
        <dd pn="section-3-1.26"> Outgoing Interface for multicast. It can be a physical interface,
	virtual interface, or tunnel.</dd>
        <dt pn="section-3-1.27">PE:</dt>
        <dd pn="section-3-1.28"> Provider Edge</dd>
        <dt pn="section-3-1.29">POD:</dt>
        <dd pn="section-3-1.30"> Point of Delivery</dd>
        <dt pn="section-3-1.31"> S-PMSI:</dt>
        <dd pn="section-3-1.32"> Selective P-Multicast Service Interface. This is a conceptual interface for a 
	PE to send customer multicast traffic to some of the PEs in the same VPN.</dd>
        <dt pn="section-3-1.33">Single-Active Redundancy Mode:</dt>
        <dd pn="section-3-1.34"> 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.</dd>
        <dt pn="section-3-1.35"> SMET:</dt>
        <dd pn="section-3-1.36"> Selective Multicast Ethernet Tag</dd>
        <dt pn="section-3-1.37">ToR:</dt>
        <dd pn="section-3-1.38"> Top of Rack</dd>
      </dl>
      <t indent="0" pn="section-3-2">This document also assumes familiarity with the terminology of
      <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>, <xref target="RFC3376" format="default" sectionFormat="of" derivedContent="RFC3376"/>, and <xref target="RFC2236" format="default" sectionFormat="of" derivedContent="RFC2236"/>.
      When this document uses the term "IGMP
      Membership Report", the text equally applies to the MLD
      Membership Report. Similarly, text for IGMPv2 applies to MLDv1,
      and text for IGMPv3 applies to MLDv2. IGMP/MLD version encoding in the
      BGP update is stated in <xref target="bgp-encoding" format="default" sectionFormat="of" derivedContent="Section 9"/>.</t>
      <t indent="0" pn="section-3-3"> It is important to note that when there is text considering whether a PE
      indicates support for IGMP proxying, the corresponding behavior has a
      natural analog for indicating support for MLD proxying, and the analogous
      requirements apply as well. 
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-igmp-mld-proxy">IGMP/MLD Proxy</name>
      <t indent="0" pn="section-4-1">The IGMP Proxy mechanism is used to reduce the flooding of IGMP
      messages over an EVPN network, similar to the ARP proxy used in reducing
      the flooding of ARP messages over EVPN. It also provides a triggering
      mechanism for the PEs to set up their underlay multicast tunnels. The
      IGMP Proxy mechanism consists of two components: 
      </t>
      <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4-2">
	<li pn="section-4-2.1" derivedCounter="1."> Proxy for IGMP Membership Reports </li>
        <li pn="section-4-2.2" derivedCounter="2."> Proxy for IGMP Membership Queries </li>
      </ol>
      <t indent="0" pn="section-4-3">The goal of IGMP and MLD proxying is to make the EVPN behave seamlessly for
      the tenant systems with respect to multicast operations while using a more 
      efficient delivery system for signaling and delivery across the VPN. 
      Accordingly, group state must be tracked synchronously among the PEs 
      serving the VPN, with join and leave events propagated to the peer PEs and 
      each PE tracking the state of each of its peer PEs with respect to whether 
      there are locally attached group members (and in some cases, senders), what 
      version(s) of IGMP/MLD are in use for those locally attached group members, 
      etc.  In order to perform this translation, each PE acts as an IGMP router 
      for the locally attached domain, maintains the requisite state on 
      locally attached nodes, sends periodic Membership Queries, etc.  The role 
      of EVPN Selective Multicast Ethernet Tag (SMET) route propagation is to
      ensure that each PE's local state is 
      propagated to the other PEs so that they share a consistent view of the 
      overall IGMP Membership Request and Leave Group state.  It is important to 
      note that the need to keep such local state can be triggered by either 
      local IGMP traffic or BGP EVPN signaling.  In most cases, a local IGMP event 
      will need to be signaled over EVPN, though state initiated by received EVPN 
      traffic will not always need to be relayed to the locally attached domain.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-proxy-reporting">Proxy Reporting</name>
        <t indent="0" pn="section-4.1-1">When IGMP is used between hosts and their first hop EVPN
	router (EVPN PE), proxy reporting is used by the EVPN PE to summarize
	(when possible) reports received from downstream hosts and propagate
	them in BGP to other PEs that are interested in the information.
	This
	is done by terminating the IGMP Membership Reports in the first hop PE and
	translating and exchanging the relevant information among EVPN BGP
	speakers. The information is again translated back to an IGMP message at
	the recipient EVPN speaker. Thus, it helps create an IGMP overlay
	subnet using BGP. In order to facilitate such an overlay, this
	document also defines a new EVPN route type Network Layer Reachability Information
	(NLRI) and the EVPN SMET route, along with its procedures to help
	exchange and register IGMP multicast groups; see <xref target="bgp-encoding" format="default" sectionFormat="of" derivedContent="Section 9"/>.
        </t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.1.1">
          <name slugifiedName="name-igmp-mld-membership-report-">IGMP/MLD Membership Report Advertisement in BGP</name>
          <t indent="0" pn="section-4.1.1-1">When a PE wants to advertise an IGMP Membership Report using
	  the BGP EVPN route, it follows the proceeding rules (BGP encoding
	  is stated in <xref target="bgp-encoding" format="default" sectionFormat="of" derivedContent="Section 9"/>). The first four
	  rules are applicable to the originator PE, and the last three rules are applicable
	  to remote PE processing SMET routes:
          </t>
          <t indent="0" pn="section-4.1.1-2">Processing at the BGP route originator:       
          </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.1.1-3">
	    <li pn="section-4.1.1-3.1" derivedCounter="1.">When the first hop PE receives IGMP Membership Reports
	    belonging to the same IGMP version from different attached
	    hosts for the same (*,G) or (S,G), it <bcp14>SHOULD</bcp14> send a single
	    BGP message corresponding to the very first IGMP Membership Request (BGP update as
	    soon as possible) for that (*,G) or (S,G). This is because BGP is a
	    stateful protocol, and no further transmission of the same report is
	    needed. If the IGMP Membership Request is for (*,G), then the Multicast Group Address
	    <bcp14>MUST</bcp14> be sent along with the corresponding version flag (v2 or v3)
	    set. In case of IGMPv3, the exclude flag <bcp14>MUST</bcp14> also be set to
	    indicate that no source IP address must be excluded (include all
	    sources "*").
	    If the IGMP Membership Report is for (S,G), then besides setting the Multicast Group
	    Address along with the v3 flag, the source IP address and the
	    Include/Exclude (IE) flag <bcp14>MUST</bcp14> be set. It should be noted that, when
	    advertising the EVPN route for (S,G), the only valid version flag is
	    v3 (v2 flags <bcp14>MUST</bcp14> be set to 0).
	    </li>
            <li pn="section-4.1.1-3.2" derivedCounter="2.">When the first hop PE receives an IGMPv3 Membership Report for (S,G) on a given
	    BD, it <bcp14>MUST</bcp14> advertise the corresponding EVPN SMET route, regardless
	    of whether the source (S) is
	    attached to itself or not, in order to facilitate the source move in
	    the future.	</li>
            <li pn="section-4.1.1-3.3" derivedCounter="3.">When the first hop PE receives an IGMP version-X Membership Report first for
	    (*,G) and then later receives an IGMP version-Y Membership Report for the same
	    (*,G), then it <bcp14>MUST</bcp14> re-advertise the same EVPN SMET route with the flag
	    for version-Y set in addition to any previously set version flag(s).
	    In other words, the first hop PE <bcp14>MUST NOT</bcp14> withdraw the EVPN route
	    before sending the new route because the Flags field is not part of
	    BGP route key processing.						
	    </li>
            <li pn="section-4.1.1-3.4" derivedCounter="4.">When the first hop PE receives an IGMP version-X Membership Report first for
	    (*,G) and then later receives an IGMPv3 Membership Report for the same
	    Multicast Group Address but for a specific source address S, then the
	    PE <bcp14>MUST</bcp14> advertise a new EVPN SMET route with the v3 flag set (and v2 reset). 
	    The IE flag also needs to be set accordingly.
	    Since the source IP address is used as part of BGP route key processing,
	    it is considered to be a new BGP route advertisement. When different versions 
	    of IGMP Membership Report are received, the final state <bcp14>MUST</bcp14> be as per
	    <xref target="RFC3376" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3376#section-5.1" derivedContent="RFC3376"/>.
	    At the end of the route processing, local and remote group record state
	    <bcp14>MUST</bcp14>
	    be as per <xref target="RFC3376" sectionFormat="of" section="5.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3376#section-5.1" derivedContent="RFC3376"/>.
	    </li>
          </ol>
          <t indent="0" pn="section-4.1.1-4">Processing at the BGP route receiver:						
          </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.1.1-5">
	    <li pn="section-4.1.1-5.1" derivedCounter="1.">When a PE receives an EVPN SMET route with more than one version
	    flag set, it will generate the corresponding IGMP Report for (*,G)
	    for each version specified in the Flags field. With multiple version
	    flags set, there must not be a source IP address in the received EVPN
	    route. If there is, then an error <bcp14>SHOULD</bcp14> be logged. If the v3 flag
	    is set (in addition to v2), then the IE flag <bcp14>MUST</bcp14>
	    indicate "exclude". If not, then an error <bcp14>SHOULD</bcp14> be logged. The PE
	    <bcp14>MUST</bcp14> generate an IGMP Membership Report for that (*,G) and
	    each IGMP version in the version flag.
	    </li>
            <li pn="section-4.1.1-5.2" derivedCounter="2.">When a PE receives a list of EVPN SMET NLRIs in its BGP update
	    message, each with a different source IP address and the same
	    Multicast Group Address, and the version flag is set to v3, then the
	    PE generates an IGMPv3 Membership Report with a record corresponding
	    to the list of source IP addresses and the group address, along with
	    the proper indication of inclusion/exclusion.
	    </li>
            <li pn="section-4.1.1-5.3" derivedCounter="3.">Upon receiving an EVPN SMET route(s) and before generating the
	    corresponding IGMP Membership Request(s), the PE checks to see whether it has a
	    Customer Edge (CE) multicast router for that BD on any of its ESs . The PE provides
	    such a check by listening for PIM Hello messages on that AC, i.e.,
	    (ES,BD). If the PE does have the router's ACs, then the generated
	    IGMP Membership Request(s) is sent to those ACs. If it doesn't have any of the
	    router's ACs, then no IGMP Membership Request(s) needs to be generated. This is
	    because sending IGMP Membership Requests to other hosts can result in
	    unintentionally preventing a host from joining a specific multicast
	    group using IGMPv2, i.e., if the PE does not receive a Membership Report from the
	    host, it will not forward multicast data to it. Per <xref target="RFC4541" format="default" sectionFormat="of" derivedContent="RFC4541"/> , when an
	    IGMPv2 host receives a Membership Report for a group address that it
	    intends to join, the host will suppress its own Membership Report for
	    the same group, and if the PE does not receive an IGMP Membership Report from the host,
	    it will not forward multicast data to it. In other words, an IGMPv2
	    Membership Report <bcp14>MUST NOT</bcp14> be sent on an AC that does not lead to a CE
	    multicast router. This message suppression is a requirement for IGMPv2 hosts.
	    This is not a problem for hosts running IGMPv3, because there is no
	    suppression of IGMP Membership Reports.						
	    </li>
          </ol>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-4.1.2">
          <name slugifiedName="name-igmp-mld-leave-group-advert">IGMP/MLD Leave Group Advertisement in BGP</name>
          <t indent="0" pn="section-4.1.2-1">When a PE wants to withdraw an EVPN SMET route corresponding to an
	  IGMPv2 Leave Group or IGMPv3 "Leave" equivalent message, it
	  follows the rules below. The first rule defines the procedure at the
	  originator PE, and the last two rules talk about procedures at the remote PE:
          </t>
          <t indent="0" pn="section-4.1.2-2">Processing at the BGP route originator:				     
          </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.1.2-3">
	    <li pn="section-4.1.2-3.1" derivedCounter="1.">When a PE receives an IGMPv2 Leave Group or its "Leave" equivalent
	    message for IGMPv3 from its attached host, it checks to see if this
	    host is the last host that is interested in this multicast group by
	    sending a query for the multicast group.
	    If the host was indeed the
	    last one (i.e., no responses are received for the query), then the PE
	    <bcp14>MUST</bcp14> re-advertise the EVPN SMET route with the corresponding
	    version flag reset. If this is the last version flag to be reset,
	    then instead of re-advertising the EVPN route with all version flags
	    reset, the PE <bcp14>MUST</bcp14> withdraw the EVPN route for that (*,G).
	    </li>
          </ol>
          <t indent="0" pn="section-4.1.2-4">Processing at the BGP route receiver:
          </t>
          <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.1.2-5">
	    <li pn="section-4.1.2-5.1" derivedCounter="1.">When a PE receives an EVPN SMET route for a given (*,G), it
	    compares the received version flags from the route with its per-PE
	    stored version flags.
	    If the PE finds that a version flag associated
	    with the (*,G) for the remote PE is reset, then the PE <bcp14>MUST</bcp14> generate
	    IGMP Leave for that (*,G) toward its local interface (if any), which is
	    attached to the multicast router for that multicast group. It should
	    be noted that the received EVPN route <bcp14>MUST</bcp14> have at least one
	    version flag set. If all version flags are reset, it is an error
	    because the PE should have received an EVPN route withdraw for the
	    last version flag. An error <bcp14>MUST</bcp14> be considered as a BGP error, and
	    the PE <bcp14>MUST</bcp14> apply the 
	    "treat-as-withdraw" procedure per <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.
	    </li>
            <li pn="section-4.1.2-5.2" derivedCounter="2.">When a PE receives an EVPN SMET route withdraw, it removes the
	    remote PE from its OIF list for that multicast group, and if there are
	    no more OIF entries for that multicast group (either locally or
	    remotely), then the PE <bcp14>MUST</bcp14> stop responding to Membership
	    Queries from the
	    locally attached router (if any). If there is a source for that
	    multicast group, the PE stops sending multicast traffic for that source.
	    </li>
          </ol>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-proxy-querier">Proxy Querier</name>
        <t indent="0" pn="section-4.2-1">As mentioned in the previous sections, each PE <bcp14>MUST</bcp14> have proxy
	querier functionality for the following reasons:			  
        </t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-4.2-2">
	  <li pn="section-4.2-2.1" derivedCounter="1.">to enable the collection of EVPN PEs providing Layer 2 Virtual Private Network
	  (L2VPN) service to
	  act as a distributed multicast router with an anycast IP address for all
	  attached hosts in that subnet</li>
          <li pn="section-4.2-2.2" derivedCounter="2.">to enable suppression of IGMP Membership Reports and Membership Queries over
	  MPLS/IP core</li>
        </ol>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-operation">Operation</name>
      <t indent="0" pn="section-5-1">Consider the EVPN network in <xref target="EVPN" format="default" sectionFormat="of" derivedContent="Figure 1"/>, where there is an EVPN
      instance configured across the PEs (namely PE1,
      PE2, and PE3). Let's consider that this EVPN instance consists of a
      single bridge domain (single subnet) with all the hosts and sources and
      the multicast router connected to this subnet. PE1 only has hosts (host denoted by Hx)
      connected to it. PE2 has a mix of hosts and a multicast source. PE3
      has a mix of hosts, a multicast source (source denoted by Sx), and a multicast router
      (router denoted by Rx).
      Furthermore, let's consider that for (S1,G1), R1 is used as the
      multicast router. The following subsections describe the IGMP Proxy
      operation in different PEs with regard to whether the locally
      attached devices for that subnet are:			   
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5-2">
        <li pn="section-5-2.1">only hosts,</li>
        <li pn="section-5-2.2">a mix of hosts and a multicast source, or</li>
        <li pn="section-5-2.3">a mix of hosts, a multicast source, and a multicast router.</li>
      </ul>
      <figure anchor="EVPN" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-evpn-network">EVPN Network</name>
        <artwork name="EVPN network" type="" align="center" alt="" pn="section-5-3.1">
	              +--------------+
                      |              |
                      |              |
               +----+ |              | +----+
H1:(*,G1)v2 ---|    | |              | |    |---- H6(*,G1)v2
H2:(*,G1)v2 ---| PE1| |   IP/MPLS    | | PE2|---- H7(S2,G2)v3
H3:(*,G1)v3 ---|    | |   Network    | |    |---- S2
H4:(S2,G2)v3 --|    | |              | |    |
               +----+ |              | +----+
                      |              |
               +----+ |              |
H5:(S1,G1)v3 --|    | |              |
         S1 ---| PE3| |              |
         R1 ---|    | |              |
               +----+ |              |
                      |              |
                      +--------------+	
</artwork>
      </figure>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-pe-with-only-attached-hosts">PE with Only Attached Hosts for a Given Subnet</name>
        <t indent="0" pn="section-5.1-1">When PE1 receives an IGMPv2 Membership Report from H1, it does not forward 
	this Membership Report to any of its other ports (for this subnet) because all
	these local ports are associated with the hosts.
        PE1 sends an
	EVPN SMET route corresponding to this Membership Report for (*,G1) and
	sets the v2 flag. This EVPN route is received by PE2 and PE3, which are
	the members of the same BD (i.e., same EVI in case of a VLAN-based
	service or EVI and VLAN in case of a VLAN-aware bundle service). PE3
	reconstructs the IGMPv2 Membership Report from this EVPN BGP route and only
	sends it to the port(s) with multicast routers attached to it (for
	that subnet). In this example, PE3 sends the reconstructed IGMPv2
	Membership Report for (*,G1)  only to R1. Furthermore, even though PE2
	receives the EVPN BGP route, it does not send it to any of its ports
	for that subnet (viz., ports associated with H6 and H7).
        </t>
        <t indent="0" pn="section-5.1-2">When PE1 receives the second IGMPv2 Membership Report from H2 for the same
	multicast group (*,G1), it only adds that port to its OIF list, but it
	doesn't send any EVPN BGP routes because there is no change in
	information. However, when it receives the IGMPv3 Membership Report from H3 for
	the same (*,G1), besides adding the corresponding port to its OIF
	list, it re-advertises the previously sent EVPN SMET route with the
	v3 and exclude flag set.
        </t>
        <t indent="0" pn="section-5.1-3">Finally, when PE1 receives the IGMPv3 Membership Report from H4 for (S2,G2), it
	advertises a new EVPN SMET route corresponding to it.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-pe-with-a-mix-of-attached-h">PE with a Mix of Attached Hosts and a Multicast Source</name>
        <t indent="0" pn="section-5.2-1">The main difference in this case is that when PE2 receives the IGMPv3
	Membership Report from H7 for (S2,G2), it advertises it in BGP to support the
	source moving, even though PE2 knows that S2 is attached to its local
	AC. PE2 adds the port associated with H7 to its OIF list for (S2,G2).
	The processing for IGMPv2 received from H6 is the same as the IGMPv2
	Membership Report described in the previous section.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-pe-with-a-mix-of-attached-ho">PE with a Mix of Attached Hosts, a Multicast Source, and a Router</name>
        <t indent="0" pn="section-5.3-1">The main difference in this case relative to the previous two
	sections is that IGMPv2/v3 Membership Report messages received locally need to
	be sent to the port associated with router R1. Furthermore, the Membership Reports
	received via BGP (SMET) need to be passed to the R1 port but filtered
	for all other ports.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-all-active-multihoming">All-Active Multihoming</name>
      <t indent="0" pn="section-6-1">Because the Link Aggregation Group (LAG) flow hashing algorithm used by the CE is unknown at
      the PE, in an All-Active redundancy mode, it must be assumed that the
      CE can send a given IGMP message to any one of the multihomed PEs,
      either Designated Forwarder (DF) or non-DF, i.e., different IGMP Membership
      Request messages can arrive at
      different PEs in the redundancy group. Furthermore, their
      corresponding Leave messages can arrive at PEs that are different
      from the ones that received the Membership Report. Therefore, all PEs
      attached to a given Ethernet segment (ES) must coordinate the IGMP Membership Request and Leave Group
      (x,G) state, where x may be either "*" or a particular source S for
      each BD on that ES. Each PE has a local copy of that state, and the EVPN signaling
      serves to synchronize that state across PEs. This allows the DF for that (ES,BD) to correctly
      advertise or withdraw a SMET route
      for that (x,G) group in that BD when needed. 
      All-Active multihoming PEs for a given ES <bcp14>MUST</bcp14> support IGMP
      synchronization procedures described in this section if they need to
      perform IGMP Proxy for hosts connected to that ES.
      </t>
      <section numbered="true" toc="include" anchor="local-igmp-mld" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-local-igmp-mld-membership-r">Local IGMP/MLD Membership Report Synchronization</name>
        <t indent="0" pn="section-6.1-1">When a PE, either DF or non-DF, receives an IGMP Membership Report
	for (x,G) on a given multihomed ES operating in All-Active redundancy mode, it determines the BD to which the IGMP Membership Report
	belongs. If the PE doesn't already have the local IGMP Membership Request (x,G) state
	for that BD on that ES, it <bcp14>MUST</bcp14> instantiate that local IGMP Membership
	Request (x,G)
	state and <bcp14>MUST</bcp14> advertise a BGP IGMP Membership Report Synch route
	for that (ES,BD).
	The local IGMP Membership Request (x,G) state refers to the IGMP Membership Request (x,G) state
	that is created as a result of processing an IGMP Membership Report
	for (x,G).
        </t>
        <t indent="0" pn="section-6.1-2">The IGMP Membership Report Synch route <bcp14>MUST</bcp14> carry the ES-Import
	Route Target (RT) for the ES on
	which the IGMP Membership Report was received.  Thus, it <bcp14>MUST</bcp14> only be 
	imported by the PEs attached to that ES and not any other PEs.
        </t>
        <t indent="0" pn="section-6.1-3">When a PE, either DF or non-DF, receives an IGMP Membership Report Synch route, it
	installs that route, and if it doesn't already have the IGMP Membership Request (x,G)
	state for that (ES,BD), it <bcp14>MUST</bcp14> instantiate that IGMP Membership
	Request (x,G)
	state, i.e., the IGMP Membership Request (x,G) state is the union of the local IGMP
	Membership Report (x,G) state and the installed IGMP Membership Report Synch route.
	If the DF did not already advertise (originate) a SMET route for that (x,G)
	group in that BD, it <bcp14>MUST</bcp14> do so now.
        </t>
        <t indent="0" pn="section-6.1-4">When a PE, either DF or non-DF, deletes its local IGMP Membership Request (x,G)
	state for that (ES,BD), it <bcp14>MUST</bcp14> withdraw its BGP IGMP Membership
	Report Synch route for that (ES,BD).
        </t>
        <t indent="0" pn="section-6.1-5">When a PE, either DF or non-DF, receives the withdrawal of an IGMP
	Membership Report Synch route from another PE, it <bcp14>MUST</bcp14> remove that route.
	When a PE has no local IGMP Membership Request (x,G) state and it has no installed IGMP
	Membership Report Synch routes, it <bcp14>MUST</bcp14> remove that IGMP Membership Request
	(x,G) state for that (ES,BD).  
	If the DF no longer has the IGMP Membership Request (x,G) state for that BD on
	any ES for which it is the DF, it <bcp14>MUST</bcp14> withdraw its SMET route for that
	(x,G) group in that BD.
        </t>
        <t indent="0" pn="section-6.1-6">In other words, a PE advertises a SMET route for that (x,G) group in
	that BD when it has the IGMP Membership Request (x,G) state on at least one
	ES for which it is the DF, and it withdraws that SMET route when it does
	not have an IGMP Membership Request (x,G) state in that BD on any ES for which it is
	the DF.
        </t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-local-igmp-mld-leave-group-">Local IGMP/MLD Leave Group Synchronization</name>
        <t indent="0" pn="section-6.2-1">When a PE, either DF or non-DF, receives an IGMP Leave Group message
	for (x,G) from the attached CE on a given multihomed ES
	operating in All-Active redundancy mode, it determines the BD to which the
	IGMPv2 Leave Group belongs.  Regardless of whether it has the IGMP Membership Request
	(x,G) state for that (ES,BD), it initiates the (x,G) leave group
	synchronization procedure, which consists of the following steps:
        </t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-6.2-2">
	  <li pn="section-6.2-2.1" derivedCounter="1.">It computes the Maximum Response Time, which is the duration of the
	  (x,G) leave group synchronization procedure.  This is the product of
	  two locally configured values, Last Member Query Count and Last
	  Member Query Interval (described in <xref target="RFC2236" section="3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2236#section-3" derivedContent="RFC2236"/>), plus a
	  delta corresponding to the time it takes for a BGP advertisement to
	  propagate between the PEs attached to the multihomed ES (delta is a
	  consistently configured value on all PEs attached to the multihomed
	  ES).
	  </li>
          <li pn="section-6.2-2.2" derivedCounter="2.">It starts the Maximum Response Time timer. Note that the receipt
	  of subsequent IGMP Leave Group messages or BGP Leave Synch routes for
	  (x,G) do not change the value of a currently running Maximum Response
	  Time timer and are ignored by the PE.
	  </li>
          <li pn="section-6.2-2.3" derivedCounter="3.">It initiates the Last Member Query procedure described in
	  <xref target="RFC2236" section="3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2236#section-3" derivedContent="RFC2236"/>; viz., it
	  sends a number of Group-Specific Query (x,G)
	  messages (Last Member Query Count) at a fixed interval (Last Member
	  Query Interval) to the attached CE.</li>
          <li pn="section-6.2-2.4" derivedCounter="4.">It advertises an IGMP Leave Synch route for that (ES,BD).
	  This route notifies the other multihomed PEs attached to the given
	  multihomed ES that it has initiated an (x,G) leave group
	  synchronization procedure, i.e., it carries the ES-Import RT for the
	  ES on which the IGMP Leave Group was received.  It also contains the
	  Maximum Response Time.
	  </li>
          <li pn="section-6.2-2.5" derivedCounter="5.">When the Maximum Response Time timer expires, the PE that has
	  advertised the IGMP Leave Synch route withdraws it.
	  </li>
        </ol>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-6.2.1">
          <name slugifiedName="name-remote-leave-group-synchron">Remote Leave Group Synchronization</name>
          <t indent="0" pn="section-6.2.1-1">When a PE, either DF or non-DF, receives an IGMP Leave Synch route, it
	  installs that route and it starts a timer for (x,G) on the specified
	  (ES,BD), whose value is set to the Maximum Response Time in the
	  received IGMP Leave Synch route.  Note that the receipt of subsequent
	  IGMPv2 Leave Group messages or BGP Leave Synch routes for (x,G) do
	  not change the value of a currently running Maximum Response Time 
	  timer and are ignored by the PE.
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-6.2.2">
          <name slugifiedName="name-common-leave-group-synchron">Common Leave Group Synchronization</name>
          <t indent="0" pn="section-6.2.2-1">If a PE attached to the multihomed ES receives an IGMP Membership
	  Report for (x,G) before the Maximum Response Time timer expires, it
	  advertises a BGP IGMP Membership Report Synch route for that (ES,BD). If it
	  doesn't already have the local IGMP Membership Request (x,G) state for that (ES,BD),
	  it instantiates that local IGMP Membership Request (x,G) state. If the DF is not
	  currently advertising (originating) a SMET route for that (x,G) group
	  in that BD, it does so now.
          </t>
          <t indent="0" pn="section-6.2.2-2">If a PE attached to the multihomed ES receives an IGMP Membership Report Synch
	  route for (x,G) before the Maximum Response Time timer expires, it
	  installs that route, and if it doesn't already have the IGMP Membership Request (x,G)
	  state for that BD on that ES, it instantiates that IGMP Membership Request (x,G)
	  state. If the DF has not already advertised (originated) a SMET route
	  for that (x,G) group in that BD, it does so now.
          </t>
          <t indent="0" pn="section-6.2.2-3">When the Maximum Response Time timer expires, a PE that has advertised an
	  IGMP Leave Synch route withdraws it.  Any PE attached to the
	  multihomed ES, which started the Maximum Response Time and has no
	  local IGMP Membership Request (x,G) state and no installed IGMP Membership Report
	  Synch routes,
	  removes the IGMP Membership Request (x,G) state for that (ES,BD).  If the DF no
	  longer has the IGMP Membership Request (x,G) state for that BD on any ES for which it
	  is the DF, it withdraws its SMET route for that (x,G) group in that BD.
          </t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-mass-withdraw-of-the-multic">Mass Withdraw of the Multicast Membership Report Synch Route in Case of Failure</name>
        <t indent="0" pn="section-6.3-1">A PE that has received an IGMP Membership Request would have synced the IGMP
	Membership Report by the procedure defined in <xref target="local-igmp-mld" format="default" sectionFormat="of" derivedContent="Section 6.1"/>. If a PE with the local Membership Report
	state goes down or the PE to CE link goes down, it would lead to a
	mass withdraw of multicast routes. Remote PEs (PEs where these routes
	were remote IGMP Membership Reports) <bcp14>SHOULD NOT</bcp14> remove the state immediately;
	instead, General Query <bcp14>SHOULD</bcp14> be generated to refresh the states.
	There are several ways to detect failure at a
	peer, e.g., using IGP next-hop tracking or ES route withdraw.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-single-active-multihoming">Single-Active Multihoming</name>
      <t indent="0" pn="section-7-1">Note that to facilitate state synchronization after failover, the PEs
      attached to a multihomed ES operating in Single-Active redundancy mode
      <bcp14>SHOULD</bcp14> also coordinate the IGMP Membership Report (x,G) state.
      In this case, all IGMP
      Membership Report messages are received by the DF and distributed to the non-DF
      PEs using the procedures described above.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-selective-multicast-procedu">Selective Multicast Procedures for IR Tunnels</name>
      <t indent="0" pn="section-8-1">If an ingress PE uses ingress replication, then for a given (x,G)
      group in a given BD:
      </t>
      <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-8-2">
	<li pn="section-8-2.1" derivedCounter="1.">It sends (x,G) traffic to the set of PEs not supporting IGMP or MLD 
	Proxies. This set consists of any PE that has advertised an Inclusive Multicast
	Ethernet Tag (IMET) route for the BD 
	without a  Multicast Flags Extended Community or with a Multicast Flags Extended 
	Community in which neither the IGMP Proxy support nor the  MLD Proxy support flags are set.
	</li>
        <li pn="section-8-2.2" derivedCounter="2.">It sends (x,G) traffic to the set of PEs supporting IGMP or MLD Proxies
	and has listeners for that (x,G) group in that BD. This set consists of any PE
	that has advertised an IMET route for the BD 
	with a Multicast Flags Extended Community in which the IGMP Proxy support and/or 
	the  MLD Proxy support flags are set and that has advertised a SMET route for that (x,G) 
	group in that BD.
	</li>
      </ol>
    </section>
    <section anchor="bgp-encoding" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-bgp-encoding">BGP Encoding</name>
      <t indent="0" pn="section-9-1">This document defines three new BGP EVPN routes to carry IGMP
      Membership Reports. The route types are known as: 
      </t>
      <dl newline="false" spacing="normal" indent="3" pn="section-9-2">
        <dt pn="section-9-2.1">6 -</dt>
        <dd pn="section-9-2.2">Selective Multicast Ethernet Tag Route </dd>
        <dt pn="section-9-2.3">7 -</dt>
        <dd pn="section-9-2.4">Multicast Membership Report Synch Route </dd>
        <dt pn="section-9-2.5">8 -</dt>
        <dd pn="section-9-2.6">Multicast Leave Synch Route </dd>
      </dl>
      <t indent="0" pn="section-9-3">The detailed encoding and procedures for these route types are
      described in subsequent sections.
      </t>
      <section anchor="SMET" numbered="true" toc="include" removeInRFC="false" pn="section-9.1">
        <name slugifiedName="name-selective-multicast-etherne">Selective Multicast Ethernet Tag Route</name>
        <t indent="0" pn="section-9.1-1">A SMET route-type-specific EVPN NLRI
	consists of the following:
        </t>
        <artwork name="" type="" align="center" alt="" pn="section-9.1-2">
+---------------------------------------+
|  RD (8 octets)                        |
+---------------------------------------+
|  Ethernet Tag ID (4 octets)           |
+---------------------------------------+
|  Multicast Source Length (1 octet)    |
+---------------------------------------+
|  Multicast Source Address (variable)  |
+---------------------------------------+
|  Multicast Group Length (1 octet)     |
+---------------------------------------+
|  Multicast Group Address (Variable)   |
+---------------------------------------+
|  Originator Router Length (1 octet)   |
+---------------------------------------+
|  Originator Router Address (variable) |
+---------------------------------------+
|  Flags (1 octet)                      |
+---------------------------------------+	
</artwork>
        <t indent="0" pn="section-9.1-3">For the purpose of BGP route key processing, all the fields are
	considered to be part of the prefix in the NLRI, except for the 1-octet
	Flags field. The Flags fields are defined as follows:
        </t>
        <artwork name="" type="" align="center" alt="" pn="section-9.1-4">
  0  1  2  3  4  5  6  7
+--+--+--+--+--+--+--+--+
| reserved  |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
</artwork>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.1-5">
          <li pn="section-9.1-5.1">The least significant bit (bit 7) indicates support for IGMP version
	  1. Since IGMPv1 is being deprecated, the sender <bcp14>MUST</bcp14> set
	  it to 0 for IGMP and the receiver <bcp14>MUST</bcp14> ignore it.
	  </li>
          <li pn="section-9.1-5.2">The second least significant bit (bit 6) indicates support for IGMP
	  version 2.
	  </li>
          <li pn="section-9.1-5.3">The third least significant bit (bit 5) indicates support for IGMP
	  version 3.
	  </li>
          <li pn="section-9.1-5.4">The fourth least significant bit (bit 4) indicates whether the (S,G)
	  information carried within the route type is of an Include Group type
	  (bit value 0) or an Exclude Group type (bit value 1). The Exclude
	  Group type bit <bcp14>MUST</bcp14> be ignored if bit 5 is not set.
	  </li>
          <li pn="section-9.1-5.5">This EVPN route type is used to carry tenant IGMP multicast group
	  information. The Flags field assists in distributing the IGMP Membership
	  Report of a given host for a given multicast route. The version
	  bits help associate the IGMP version of receivers participating within 
	  the EVPN domain.
	  </li>
          <li pn="section-9.1-5.6">The IE bit helps in creating filters for a given
	  multicast route.
	  </li>
          <li pn="section-9.1-5.7">If the route is used for IPv6 (MLD), then bit 7 indicates support for MLD
	  version 1. The second least significant bit (bit 6) indicates support
	  for MLD version 2. Since there is no MLD version 3, in case of IPv6
	  routes, the third least significant bit <bcp14>MUST</bcp14> be 0. In case of IPv6 routes,
	  the fourth least significant bit <bcp14>MUST</bcp14> be ignored if bit 6 is not
	  set.
	  </li>
          <li pn="section-9.1-5.8"> Reserved bits <bcp14>MUST</bcp14> be set to 0 by the sender, and the receiver
	  <bcp14>MUST</bcp14> ignore the Reserved bits.
	  </li>
        </ul>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.1.1">
          <name slugifiedName="name-constructing-the-selective-">Constructing the Selective Multicast Ethernet Tag Route</name>
          <t indent="0" pn="section-9.1.1-1">This section describes the procedures used to construct the SMET route.
          </t>
          <t indent="0" pn="section-9.1.1-2">The Route Distinguisher (RD) <bcp14>SHOULD</bcp14> be a Type 1 RD <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>.  The
	  value field comprises an IP address of the PE (typically, the
	  loopback address), followed by a number unique to the PE.
          </t>
          <t indent="0" pn="section-9.1.1-3">The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedure
	  defined in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>.
          </t>
          <t indent="0" pn="section-9.1.1-4">The Multicast Source Length <bcp14>MUST</bcp14> be set to the length of the Multicast
	  Source Address in bits. If the Multicast Source Address field
	  contains an IPv4 address, then the value of the Multicast Source
	  Length field is 32. If the Multicast Source Address field contains an
	  IPv6 address, then the value of the Multicast Source Length field is
	  128. In case of a (*,G) Membership Report, the Multicast Source Length is set to
	  0.
          </t>
          <t indent="0" pn="section-9.1.1-5">The Multicast Source Address is the source IP address from the IGMP
	  Membership Report.
	  In case of a (*,G) Membership Report, this field is not used.
          </t>
          <t indent="0" pn="section-9.1.1-6">The Multicast Group Length <bcp14>MUST</bcp14> be set to the length of the Multicast Group
	  Address in bits. If the Multicast Group Address  field contains an
	  IPv4 address, then the value of the Multicast Group Length field is
	  32.  If the Multicast Group Address field contains an IPv6 address,
	  then the value of the Multicast Group Length field is 128.
          </t>
          <t indent="0" pn="section-9.1.1-7">The Multicast Group Address is the group address from the IGMP or MLD
	  Membership Report.
          </t>
          <t indent="0" pn="section-9.1.1-8">The Originator Router Length is the length of the Originator Router
	  Address in bits.
          </t>
          <t indent="0" pn="section-9.1.1-9">The Originator Router Address is the IP address of the router originating this route. 
	  The SMET Originator Router IP address <bcp14>MUST</bcp14> match that of the IMET (or
	  S-PMSI Authentic Data (AD))
	  route originated for the same EVI by the same downstream PE.
          </t>
          <t indent="0" pn="section-9.1.1-10">The Flags field indicates the version of IGMP from which the
	  Membership Report was received. It also indicates whether the
	  multicast group had the Include/Exclude bit set.
          </t>
          <t indent="0" pn="section-9.1.1-11"> Reserved bits <bcp14>MUST</bcp14> be set to 0. They can be defined
	  by other documents in the future. </t>
          <t indent="0" pn="section-9.1.1-12">IGMP is used to receive group membership information from hosts
	  by Top-of-the-Rack (ToR) switches. Upon receiving the host's expression of interest in a
	  particular group membership, this information is then forwarded using the
	  SMET route. The NLRI also keeps track
	  of the receiver's IGMP version and any source filtering for a
	  given group membership. All EVPN SMET routes are announced per EVI
	  Route Target extended communities (EVI-RT ECs).
          </t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.1.2">
          <name slugifiedName="name-reconstructing-igmp-mld-mem">Reconstructing IGMP/MLD Membership Reports from the Selective Multicast Route</name>
          <t indent="0" pn="section-9.1.2-1">  This section describes the procedures used to reconstruct IGMP/MLD Membership
	  Reports from the SMET route.
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.1.2-2">
            <li pn="section-9.1.2-2.1"> If the Multicast Group Length is 32, the route is
	    translated to the IGMP Membership Request. If the Multicast Group
	    Length is 128, the route is translated to an MLD
	    Membership Request. </li>
            <li pn="section-9.1.2-2.2">The Multicast Group Address field is translated to
	    the IGMP/MLD group address.</li>
            <li pn="section-9.1.2-2.3"> If the Multicast Source Length is set to 0, it is
	    translated to any source (*).
            If the Multicast Source Length is non-zero, the Multicast Source
	    Address field is translated to the IGMP/MLD source address.</li>
            <li pn="section-9.1.2-2.4"> If flag bit 7 is set, it translates the Membership Report to be
	    IGMPv1 or MLDv1.</li>
            <li pn="section-9.1.2-2.5"> If flag bit 6 is set, it translates the Membership Report to be
	    IGMPv2 or MLDv2.</li>
            <li pn="section-9.1.2-2.6"> Flag bit 5 is only valid for the IGMP Membership Report; if it is
	    set, it translates to the IGMPv3 report.</li>
            <li pn="section-9.1.2-2.7"> If the IE flag is set, it translates to the IGMP/MLD Exclude
	    mode Membership Report. If the IE flag is not set (0), it
	    translates to the Include mode Membership Report. </li>
          </ul>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.1.3">
          <name slugifiedName="name-default-selective-multicast">Default Selective Multicast Route</name>
          <t indent="0" pn="section-9.1.3-1">If there is a multicast router connected behind the EVPN domain, the PE
	  <bcp14>MAY</bcp14> originate a default SMET (*,*) to get all multicast traffic in
	  the domain.</t>
          <figure anchor="EVPN-domain" align="left" suppress-title="false" pn="figure-2">
            <name slugifiedName="name-multicast-router-behind-the">Multicast Router behind the EVPN Domain</name>
            <artwork name="" type="" align="center" alt="" pn="section-9.1.3-2.1">
                       +--------------+
                       |              |
                       |              |
                       |              | +----+
                       |              | |    |---- H1(*,G1)v2
                       |   IP/MPLS    | | PE1|---- H2(S2,G2)v3
                       |   Network    | |    |---- S2
                       |              | |    |
                       |              | +----+
                       |              |
                +----+ |              |
+----+          |    | |              |
|    |    S1 ---| PE2| |              |
|PIM |----R1 ---|    | |              |
|ASM |          +----+ |              |
|    |                 |              |
+----+                 +--------------+
</artwork>
          </figure>
          <t indent="0" pn="section-9.1.3-3">Consider the EVPN network in <xref target="EVPN-domain" format="default" sectionFormat="of" derivedContent="Figure 2"/>, where there is an EVPN
	   instance configured across the PEs. Let's consider that PE2 is connected to
	   multicast router R1 and there is a network running PIM ASM behind R1.
	   If there are receivers behind the PIM ASM network, the PIM Join would
	   be forwarded to the PIM Rendezvous Point (RP). If receivers behind the
	   PIM ASM network are interested in a multicast flow originated by
	   multicast source S2 (behind PE1), it is necessary for PE2 to receive
	   multicast traffic. In this case, PE2 <bcp14>MUST</bcp14> originate a (*,*) SMET route
	   to receive all of the multicast traffic in the EVPN domain. To generate 
	   wildcard (*,*) routes, the procedure from <xref target="RFC6625" format="default" sectionFormat="of" derivedContent="RFC6625"/>
            <bcp14>MUST</bcp14> be used.</t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.2">
        <name slugifiedName="name-multicast-membership-report">Multicast Membership Report Synch Route</name>
        <t indent="0" pn="section-9.2-1">This EVPN route type is used to coordinate the IGMP Membership Report (x,G)
	state for a given BD between the PEs attached to a given ES operating in
	All-Active (or Single-Active) redundancy mode, and it consists of the
	following:</t>
        <artwork name="" type="" align="center" alt="" pn="section-9.2-2">
+--------------------------------------------------+
|  RD (8 octets)                                   |
+--------------------------------------------------+
|  Ethernet Segment Identifier (10 octets)         |
+--------------------------------------------------+
|  Ethernet Tag ID  (4 octets)                     |
+--------------------------------------------------+
|  Multicast Source Length (1 octet)               |
+--------------------------------------------------+
|  Multicast Source Address (variable)             |
+--------------------------------------------------+
|  Multicast Group Length (1 octet)                |
+--------------------------------------------------+
|  Multicast Group Address (Variable)              |
+--------------------------------------------------+
|  Originator Router Length (1 octet)              |
+--------------------------------------------------+
|  Originator Router Address (variable)            |
+--------------------------------------------------+
|  Flags (1 octet)                                 |
+--------------------------------------------------+	
</artwork>
        <t indent="0" pn="section-9.2-3">For the purpose of BGP route key processing, all the fields are
	considered to be part of the prefix in the NLRI, except for the 1-octet
	Flags field, whose fields are defined as follows:</t>
        <artwork name="" type="" align="center" alt="" pn="section-9.2-4">
  0  1  2  3  4  5  6  7
+--+--+--+--+--+--+--+--+
| reserved  |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
</artwork>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.2-5">
          <li pn="section-9.2-5.1"> The least significant bit (bit 7) indicates support for IGMP version 1. </li>
          <li pn="section-9.2-5.2"> The second least significant bit (bit 6) indicates support for IGMP version 2. </li>
          <li pn="section-9.2-5.3"> The third least significant bit (bit 5) indicates support for IGMP version 3. </li>
          <li pn="section-9.2-5.4"> The fourth least significant bit (bit 4) indicates whether the (S, G) information 
	  carried within the route type is of an Include Group type (bit value 0) or an Exclude Group
	  type (bit value 1). The Exclude Group type bit <bcp14>MUST</bcp14> be ignored if bit 5 is
	  not set. </li>
          <li pn="section-9.2-5.5"> Reserved bits <bcp14>MUST</bcp14> be set to 0.</li>
        </ul>
        <t indent="0" pn="section-9.2-6">The Flags field assists in distributing the IGMP Membership Report of a 
	given host for a given multicast route. The version bits help 
	associate the IGMP version of receivers participating within the EVPN
	domain.  The Include/Exclude bit helps in creating filters for a
	given multicast route.</t>
        <t indent="0" pn="section-9.2-7">If the route is being prepared for IPv6 (MLD), then bit 7 indicates
	support for MLD version 1. The second least significant bit (bit 6)
	indicates support for MLD version 2. Since there is no MLD version 3,
	in case of the IPv6 route, the third least significant bit <bcp14>MUST</bcp14>
	be 0. In case of the IPv6 route, the fourth least significant bit <bcp14>MUST</bcp14>
	be ignored if bit 6 is not set.</t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.2.1">
          <name slugifiedName="name-constructing-the-multicast-">Constructing the Multicast Membership Report Synch Route</name>
          <t indent="0" pn="section-9.2.1-1">This section describes the procedures used to construct the IGMP Membership Report
	  Synch route.  Support for these route types is optional. If a PE does
	  not support this route, then it <bcp14>MUST NOT</bcp14> indicate that it supports
	  "IGMP Proxy" in the Multicast Flags Extended Community for the EVIs
	  corresponding to its multihomed ESs.</t>
          <t indent="0" pn="section-9.2.1-2">An IGMP Membership Report Synch route <bcp14>MUST</bcp14> carry exactly one
	  ES-Import Route
	  Target extended community, i.e., the one that corresponds to the ES on
	  which the IGMP Membership Report was received.  It <bcp14>MUST</bcp14> also carry
	  exactly one EVI-RT EC, i.e., the one that corresponds to the EVI on
	  which the IGMP Membership Report
	  was received.  See <xref target="evi-rt" format="default" sectionFormat="of" derivedContent="Section 9.5"/> for details on how to
	  encode and construct the EVI-RT EC.</t>
          <t indent="0" pn="section-9.2.1-3">The RD <bcp14>SHOULD</bcp14> be Type 1 <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>.  The
	  value field comprises an IP address of the PE (typically, the
	  loopback address), followed by a number unique to the PE.</t>
          <t indent="0" pn="section-9.2.1-4">The Ethernet Segment Identifier (ESI) <bcp14>MUST</bcp14> be set to the 10-octet 
	  value defined for the ES.</t>
          <t indent="0" pn="section-9.2.1-5">The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedure defined in
	  <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>.</t>
          <t indent="0" pn="section-9.2.1-6">The Multicast Source Length <bcp14>MUST</bcp14> be set to the
	  length of the Multicast Source
	  Address in bits. If the Multicast Source field contains an IPv4
	  address, then the value of the Multicast Source Length field is 32.
	  If the Multicast Source field contains an IPv6 address, then the
	  value of the Multicast Source Length field is 128. In case of a (*,G) 
	  Membership Report, the Multicast Source Length is set to 0.</t>
          <t indent="0" pn="section-9.2.1-7">The Multicast Source is the source IP address of the IGMP Membership
	  Report.  In case of a (*,G) Membership Report, this field does not exist.</t>
          <t indent="0" pn="section-9.2.1-8">The Multicast Group Length <bcp14>MUST</bcp14> be set to the length of the
	  Multicast Group
	  Address in bits. If the Multicast Group field contains an IPv4
	  address, then the value of the Multicast Group Length field is 32.
	  If the Multicast Group field contains an IPv6 address, then the value
	  of the Multicast Group Length field is 128.</t>
          <t indent="0" pn="section-9.2.1-9">The Multicast Group is the group address of the IGMP Membership
	  Report.</t>
          <t indent="0" pn="section-9.2.1-10">The Originator Router Length is the length of the Originator Router
	  Address in bits.</t>
          <t indent="0" pn="section-9.2.1-11">The Originator Router Address is the IP address of the router originating the prefix.</t>
          <t indent="0" pn="section-9.2.1-12">The Flags field indicates the version of IGMP from which the 
	  Membership Report was received. It also indicates whether the
	  multicast group had the Include/Exclude bit set.</t>
          <t indent="0" pn="section-9.2.1-13"> Reserved bits <bcp14>MUST</bcp14> be set to 0.</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.2.2">
          <name slugifiedName="name-reconstructing-igmp-mld-memb">Reconstructing IGMP/MLD Membership Reports from a Multicast Membership
	  Report Synch Route</name>
          <t indent="0" pn="section-9.2.2-1">  This section describes the procedures used to reconstruct IGMP/MLD
	  Membership Reports from the Multicast Membership Report Synch route.</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.2.2-2">
            <li pn="section-9.2.2-2.1"> If the Multicast Group Length is 32, the route is translated
	    to the IGMP Membership Request. If the Multicast Group Length is 128,
	    the route is translated to an MLD Membership Request. </li>
            <li pn="section-9.2.2-2.2"> The Multicast Group Address field is translated to the
	    IGMP/MLD group address.</li>
            <li pn="section-9.2.2-2.3"> If the Multicast Source Length is set to 0, it is translated to
	    any source (*). If the Multicast Source Length is non-zero, the
	    Multicast Source
	    Address field is translated to the IGMP/MLD source address.</li>
            <li pn="section-9.2.2-2.4"> If flag bit 7 is set, it translates the Membership Report to be
	    IGMPv1 or MLDv1.</li>
            <li pn="section-9.2.2-2.5"> If flag bit 6 is set, it translates the Membership Report to be
	    IGMPv2 or MLDv2.</li>
            <li pn="section-9.2.2-2.6"> Flag bit 5 is only valid for the IGMP Membership Report; if it is
	    set, it translates to the IGMPv3 report.</li>
            <li pn="section-9.2.2-2.7"> If the IE flag is set, it translates to the IGMP/MLD Exclude mode
	    Membership Report. If the IE flag is not set (0), it translates to the
	    Include mode Membership Report. </li>
          </ul>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.3">
        <name slugifiedName="name-multicast-leave-synch-route">Multicast Leave Synch Route</name>
        <t indent="0" pn="section-9.3-1">This EVPN route type is used to coordinate the IGMP Leave Group (x,G)
	state for a given BD between the PEs attached to a given ES operating
	in an All-Active (or Single-Active) redundancy mode, and it consists of the
	following:</t>
        <artwork name="" type="" align="center" alt="" pn="section-9.3-2">
+--------------------------------------------------+
|  RD (8 octets)                                   |
+--------------------------------------------------+
|  Ethernet Segment Identifier (10 octets)         |
+--------------------------------------------------+
|  Ethernet Tag ID  (4 octets)                     |
+--------------------------------------------------+
|  Multicast Source Length (1 octet)               |
+--------------------------------------------------+
|  Multicast Source Address (variable)             |
+--------------------------------------------------+
|  Multicast Group Length (1 octet)                |
+--------------------------------------------------+
|  Multicast Group Address (Variable)              |
+--------------------------------------------------+
|  Originator Router Length (1 octet)              |
+--------------------------------------------------+
|  Originator Router Address (variable)            |
+--------------------------------------------------+
|  Reserved (4 octets)                             |
+--------------------------------------------------+
|  Maximum Response Time (1 octet)                 |
+--------------------------------------------------+
|  Flags (1 octet)                                 |
+--------------------------------------------------+
</artwork>
        <t indent="0" pn="section-9.3-3">For the purpose of BGP route key processing, all the fields are
	considered to be part of the prefix in the NLRI, except for the Reserved, 
	Maximum Response Time, and 1-octet Flags fields, which are defined as follows:</t>
        <artwork name="" type="" align="center" alt="" pn="section-9.3-4">
  0  1  2  3  4  5  6  7
+--+--+--+--+--+--+--+--+
| reserved  |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
</artwork>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.3-5">
          <li pn="section-9.3-5.1">  The least significant bit (bit 7) indicates support for IGMP version 1. </li>
          <li pn="section-9.3-5.2">  The second least significant bit (bit 6) indicates support for IGMP version 2. </li>
          <li pn="section-9.3-5.3">  The third least significant bit (bit 5) indicates support for IGMP version 3. </li>
          <li pn="section-9.3-5.4">  The fourth least significant bit (bit 4) indicates whether the (S, G) information
	  carried within the route type is of an Include Group type (bit value 0) or an Exclude Group
	  type	(bit value 1). The Exclude Group type bit <bcp14>MUST</bcp14> be ignored if bit 5
	  is not set. </li>
          <li pn="section-9.3-5.5"> Reserved bits <bcp14>MUST</bcp14> be set to 0. They can be defined by
	  other documents in the future. </li>
        </ul>
        <t indent="0" pn="section-9.3-6">The Flags field assists in distributing the IGMP Membership Report of a
	given host for a given multicast route. The version bits help
	associate the IGMP version of the receivers participating within the EVPN
	domain.  The Include/Exclude bit helps in creating filters for a
	given multicast route.</t>
        <t indent="0" pn="section-9.3-7">If the route is being prepared for IPv6 (MLD), then bit 7 indicates 
	support for MLD version 1. The second least significant bit (bit 6)
	indicates support for MLD version 2. Since there is no MLD version 3,
	in case of the IPv6 route, the third least significant bit <bcp14>MUST</bcp14> be 0. In case
	of the IPv6 route, the fourth least significant bit <bcp14>MUST</bcp14> be ignored if
	bit 6 is not set.</t>
        <t indent="0" pn="section-9.3-8"> Reserved bits in the flag <bcp14>MUST</bcp14> be set to 0. They can be
	defined by other documents in the future. </t>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.3.1">
          <name slugifiedName="name-constructing-the-multicast-l">Constructing the Multicast Leave Synch Route</name>
          <t indent="0" pn="section-9.3.1-1">This section describes the procedures used to construct the IGMP
	  Leave Synch route.  Support for these route types is optional. If a PE
	  does not support this route, then it <bcp14>MUST NOT</bcp14> indicate that it
	  supports "IGMP Proxy" in the Multicast Flags Extended Community for the
	  EVIs corresponding to its multihomed Ethernet segments.</t>
          <t indent="0" pn="section-9.3.1-2">An IGMP Leave Synch route <bcp14>MUST</bcp14> carry exactly one ES-Import Route
	  Target extended community, i.e., the one that corresponds to the ES on
	  which the IGMP Leave was received.  It <bcp14>MUST</bcp14> also carry exactly one
	  EVI-RT EC, i.e., the one that corresponds to the EVI on which the IGMP
	  Leave was received.  See <xref target="evi-rt" format="default" sectionFormat="of" derivedContent="Section 9.5"/> for details on how to form the
	  EVI-RT EC.</t>
          <t indent="0" pn="section-9.3.1-3">The RD <bcp14>SHOULD</bcp14> be Type 1 <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>.  The
	  value field comprises an IP address of the PE (typically, the
	  loopback address), followed by a number unique to the PE.</t>
          <t indent="0" pn="section-9.3.1-4">The ESI <bcp14>MUST</bcp14> be set to the 10-octet 
	  value defined for the ES.</t>
          <t indent="0" pn="section-9.3.1-5">The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedure
	  defined in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>.</t>
          <t indent="0" pn="section-9.3.1-6">The Multicast Source Length <bcp14>MUST</bcp14> be set to the length
	  of the Multicast Source
	  Address in bits. If the Multicast Source field contains an IPv4
	  address, then the value of the Multicast Source Length field is 32.
	  If the Multicast Source field contains an IPv6 address, then the
	  value of the Multicast Source Length field is 128. In case of a (*,G)
	  Membership Report, the Multicast Source Length is set to 0.</t>
          <t indent="0" pn="section-9.3.1-7">The Multicast Source is the source IP address of the IGMP Membership
	  Report.  In case of a (*,G) Membership Report, this field does not exist.</t>
          <t indent="0" pn="section-9.3.1-8">The Multicast Group Length <bcp14>MUST</bcp14> be set to the length of the
	  Multicast Group
	  Address in bits. If the Multicast Group field contains an IPv4
	  address, then the value of the Multicast Group Length field is 32.
	  If the Multicast Group field contains an IPv6 address, then the value
	  of the Multicast Group Length field is 128.</t>
          <t indent="0" pn="section-9.3.1-9">The Multicast Group is the group address of the IGMP Membership Report.</t>
          <t indent="0" pn="section-9.3.1-10">The Originator Router Length is the length of the Originator Router Address
	  in bits.</t>
          <t indent="0" pn="section-9.3.1-11">The Originator Router Address is the IP address of the router
	  originating the prefix.</t>
          <t indent="0" pn="section-9.3.1-12"> The Reserved field is not part of the route key. The originator <bcp14>MUST</bcp14> set
	  the Reserved field to 0;
	  the receiver <bcp14>SHOULD</bcp14> ignore it, and if it needs to be propagated, it
	  <bcp14>MUST</bcp14> propagate it unchanged.</t>
          <t indent="0" pn="section-9.3.1-13"> The Maximum Response Time is the value to be used while sending a query, as defined in
	  <xref target="RFC2236" format="default" sectionFormat="of" derivedContent="RFC2236"/>.</t>
          <t indent="0" pn="section-9.3.1-14">The Flags field indicates the version of IGMP from which the 
	  Membership Report was received. It also indicates whether the
	  multicast group had an Include/Exclude bit set.</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-9.3.2">
          <name slugifiedName="name-reconstructing-igmp-mld-lea">Reconstructing IGMP/MLD Leave from a Multicast Leave Synch Route</name>
          <t indent="0" pn="section-9.3.2-1">This section describes the procedures used to reconstruct IGMP/MLD Leave from
	  the Multicast Leave Synch route.</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.3.2-2">
            <li pn="section-9.3.2-2.1"> If the Multicast Group Length is 32, the route is translated
	    to IGMP Leave. If the
	    Multicast Group Length is 128, the route is translated to MLD
	    Leave.</li>
            <li pn="section-9.3.2-2.2"> The Multicast Group Address field is translated to an
	    IGMP/MLD group address.</li>
            <li pn="section-9.3.2-2.3"> If the Multicast Source Length is set to 0, it is
	    translated to any source (*).
            If the Multicast Source Length is non-zero, the Multicast Source
	    Address field is translated to the IGMP/MLD source address.</li>
            <li pn="section-9.3.2-2.4"> If flag bit 7 is set, it translates the Membership Report to be
	    IGMPv1 or MLDv1.</li>
            <li pn="section-9.3.2-2.5"> If flag bit 6 is set, it translates the Membership Report to be
	    IGMPv2 or MLDv2.</li>
            <li pn="section-9.3.2-2.6"> Flag bit 5 is only valid for the IGMP Membership Report; if it is set, it
	    translates to the IGMPv3 report.</li>
            <li pn="section-9.3.2-2.7"> If the IE flag is set, it translates to the IGMP/MLD Exclude mode Leave.
	    If the IE flag is not set (0), it translates to the Include mode Leave. </li>
          </ul>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.4">
        <name slugifiedName="name-multicast-flags-extended-co">Multicast Flags Extended Community</name>
        <t indent="0" pn="section-9.4-1">The Multicast Flags Extended Community is a new EVPN Extended 
	Community.  EVPN Extended Communities are transitive extended
	communities with a Type Value of 0x06.  IANA has assigned 0x09 to Multicast Flags Extended Community in the "EVPN Extended Community Sub-Types" subregistry.</t>
        <t indent="0" pn="section-9.4-2">A PE that supports IGMP and/or the MLD Proxy on a given BD
	<bcp14>MUST</bcp14> attach this extended community to the IMET route it
	advertises for that BD, and it <bcp14>MUST</bcp14> set the IGMP and/or MLD Proxy 
	Support flags to 1. Note that a PE compliant with <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/> 
	will not advertise this 
	extended community, so its absence indicates that the advertising PE 
	does not support either IGMP or MLD Proxies.</t>
        <t indent="0" pn="section-9.4-3">The advertisement of this extended community enables a more efficient
	multicast tunnel setup from the source PE specially for ingress
	replication, i.e., if an egress PE supports the IGMP Proxy but doesn't
	have any interest in a given (x,G), it advertises its IGMP Proxy
	capability using this extended community, but it does not advertise
	any SMET route for that (x,G). When the source PE (ingress PE)
	receives such advertisements from the egress PE, it does not
	replicate the multicast traffic to that egress PE; however, it does
	replicate the multicast traffic to the egress PEs that don't
	advertise such capability, even if they don't have any interests in
	that (x,G).</t>
        <t indent="0" pn="section-9.4-4">A Multicast Flags Extended Community is encoded as an 8-octet value
	as follows:</t>
        <artwork name="" type="" align="center" alt="" pn="section-9.4-5">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06     |Sub-Type=0x09  |     Flags (2 Octets)      |M|I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Reserved=0                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        <t indent="0" pn="section-9.4-6">The low-order (least significant) 2 bits are defined as the "IGMP
	Proxy Support" and "MLD Proxy Support" bits (see <xref target="multicast_flags_extended_community" format="default" sectionFormat="of" derivedContent="Section 12.3"/>. The absence of this
	extended community also means that the PE does not support the IGMP
	Proxy, where:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.4-7">
          <li pn="section-9.4-7.1"> The Type is 0x06, as registered with IANA for EVPN Extended Communities. </li>
          <li pn="section-9.4-7.2"> The Sub-Type is 0x09.</li>
          <li pn="section-9.4-7.3">
            <t indent="0" pn="section-9.4-7.3.1">Flags are 2-octet values.</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.4-7.3.2">
              <li pn="section-9.4-7.3.2.1"> Bit 15 (shown as I) defines IGMP Proxy Support. The value of 1 for
	      bit 15 means that the PE supports the IGMP Proxy. The value of 0 for bit 15
	      means that the PE does not support the IGMP Proxy.</li>
              <li pn="section-9.4-7.3.2.2">Bit 14 (shown as M) defines MLD Proxy Support. The value of 1 for
	      bit 14 means that the PE supports the MLD Proxy. The value of 0 for bit 14
	      means that the PE does not support the MLD Proxy. </li>
              <li pn="section-9.4-7.3.2.3">Bits 0 to 13 are reserved for the future. The sender <bcp14>MUST</bcp14>
	      set it to 0, and the receiver <bcp14>MUST</bcp14> ignore it. </li>
            </ul>
          </li>
          <li pn="section-9.4-7.4"> Reserved bits are set to 0. The sender <bcp14>MUST</bcp14> set it to 0,
	  and the receiver <bcp14>MUST</bcp14> ignore it.</li>
        </ul>
        <t indent="0" pn="section-9.4-8"> If a router does not support this specification, it <bcp14>MUST NOT</bcp14> add 
	the Multicast Flags Extended Community
	in the BGP route. When a router receives a BGP update, 
	if both M and I flags are 0, the router <bcp14>MUST</bcp14> treat this update as
	malformed.  The receiver of such an
	update <bcp14>MUST</bcp14> ignore the extended community. </t>
      </section>
      <section anchor="evi-rt" numbered="true" toc="include" removeInRFC="false" pn="section-9.5">
        <name slugifiedName="name-evi-rt-extended-community">EVI-RT Extended Community</name>
        <t indent="0" pn="section-9.5-1">In EVPN, every EVI is associated with one or more Route Targets.  These RTs serve two functions:</t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-9.5-2">
	  <li pn="section-9.5-2.1" derivedCounter="1.">Distribution control: RTs control the distribution of the
	  routes.  If a route carries the RT associated with a particular
	  EVI, it will be distributed to all the PEs on which that EVI
	  exists.</li>
          <li pn="section-9.5-2.2" derivedCounter="2.">EVI identification: Once a route has been received by a
	  particular PE, the RT is used to identify the EVI to which it
	  applies.</li>
        </ol>
        <t indent="0" pn="section-9.5-3">An IGMP Membership Report Synch or IGMP Leave Synch route is associated with a
	particular combination of ES and EVI.  These routes need to be
	distributed only to PEs that are attached to the associated ES.
	Therefore, these routes carry the ES-Import RT for that ES.</t>
        <t indent="0" pn="section-9.5-4">Since an IGMP Membership Report Synch or IGMP Leave Synch route does not need
	to be distributed to all the PEs on which the associated EVI
	exists, these routes cannot carry the RT associated with that
	EVI. Therefore, when such a route arrives at a particular PE, the
	route's RTs cannot be used to identify the EVI to which the route
	applies. Some other means of associating the route with an EVI
	must be used.</t>
        <t indent="0" pn="section-9.5-5">This document specifies four new ECs that
	can be used to identify the EVI with which a route is associated
	but do not have any effect on the distribution of the
	route.  These new ECs are known as "Type 0 EVI-RT EC", 
	"Type 1 EVI-RT EC", "Type 2 EVI-RT EC", and "Type 3 EVI-RT EC".</t>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-9.5-6">
	  <li pn="section-9.5-6.1" derivedCounter="1."> A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA.</li>
          <li pn="section-9.5-6.2" derivedCounter="2."> A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB.</li>
          <li pn="section-9.5-6.3" derivedCounter="3."> A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC.</li>
          <li pn="section-9.5-6.4" derivedCounter="4."> A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD</li>
        </ol>
        <t indent="0" pn="section-9.5-7">Each IGMP Membership Report Synch or IGMP Leave Synch route <bcp14>MUST</bcp14>
	carry exactly
	one EVI-RT EC.  The EVI-RT EC carried by a particular route is
	constructed as follows.  Each such route is the result of having
	received an IGMP Membership Report or an IGMP Leave message from a particular
	BD. The route is said to be associated with that BD.
	For each BD, there is a corresponding RT that is used to ensure
	that routes "about" that BD are distributed to all PEs attached
	to that BD.  So suppose a given IGMP Membership Report Synch or Leave Synch
	route is associated with a given BD, say BD1, and suppose that
	the corresponding RT for BD1 is RT1. Then:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9.5-8">
          <li pn="section-9.5-8.1">If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI-RT
	  EC carried by the route is a Type 0 EVI-RT EC.  The value
	  field of the Type 0 EVI-RT EC is identical to the value field of
	  RT1. </li>
          <li pn="section-9.5-8.2">If RT1 is a Transitive IPv4-Address-specific EC, then the EVI-RT
	  EC carried by the route is a Type 1 EVI-RT EC.  The value
	  field of the Type 1 EVI-RT EC is identical to the value field of
	  RT1. </li>
          <li pn="section-9.5-8.3">If RT1 is a Transitive Four-Octet AS-specific EC, then the EVI-RT
	  EC carried by the route is a Type 2 EVI-RT EC.  The value field
	  of the Type 2 EVI-RT EC is identical to the value field of RT1.</li>
          <li pn="section-9.5-8.4">If RT1 is a Transitive IPv6-Address-specific EC, then the EVI-RT 
	  EC carried by the route is a Type 3 EVI-RT EC.  The value
	  field of the Type 3 EVI-RT EC is identical to the value field of
	  RT1.</li>
        </ul>
        <t indent="0" pn="section-9.5-9">An IGMP Membership Report Synch or Leave Synch route <bcp14>MUST</bcp14>
	carry exactly one EVI-RT EC.</t>
        <t indent="0" pn="section-9.5-10">Suppose a PE receives a particular IGMP Membership Report Synch or IGMP Leave
	Synch route, say R1, and suppose that R1 carries an ES-Import RT
	that is one of the PE's Import RTs.  If R1 has no EVI-RT EC or
	has more than one EVI-RT EC, the PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" 
	procedure per <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.</t>
        <t indent="0" pn="section-9.5-11">Note that an EVI-RT EC is not a Route Target extended community,
	is not visible to the RT Constrain mechanism <xref target="RFC4684" format="default" sectionFormat="of" derivedContent="RFC4684"/>,
	and is not intended to influence the propagation of routes by BGP.</t>
        <artwork name="" type="" align="center" alt="" pn="section-9.5-12">
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06     |  Sub-Type=n   |       RT associated with EVI  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RT associated with the EVI  (cont.)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    </artwork>
        <t indent="0" pn="section-9.5-13">The value of "n" is 0x0A, 0x0B, 0x0C, or 0x0D, corresponding
	to EVI-RT types 0, 1, 2, or 3, respectively.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.6">
        <name slugifiedName="name-rewriting-of-rt-ecs-and-evi">Rewriting of RT ECs and EVI-RT ECs by ASBRs</name>
        <t indent="0" pn="section-9.6-1">There are certain situations in which an ES is attached to a set of PEs that are not all in the same AS, or not all operated by the same provider.  In this situation, the RT that corresponds to a particular EVI may be different in each AS.  If a route is propagated from AS1 to AS2, an ASBR at the AS1/AS2 border may be configured with a policy that replaces the EVI RTs for AS1 with the corresponding EVI RTs for AS2.  This is known
as RT-rewriting.</t>
        <t indent="0" pn="section-9.6-2">If an ASBR is configured to perform RT-rewriting of the EVI RTs in EVPN routes, it <bcp14>MUST</bcp14> be configured to perform RT-rewriting of the corresponding  EVI-RT extended communities in IGMP Join Synch and IGMP Leave Synch Routes.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-9.7">
        <name slugifiedName="name-bgp-error-handling">BGP Error Handling</name>
        <t indent="0" pn="section-9.7-1">If a received BGP update contains Flags not in accordance with the IGMP/MLD
	version-X expectation, 
	the PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedure per <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.</t>
        <t indent="0" pn="section-9.7-2">If a received BGP update is malformed such that BGP route keys cannot be extracted,
	then the BGP update <bcp14>MUST</bcp14> be considered invalid. The receiving PE
	<bcp14>MUST</bcp14> apply the "session reset" procedure per <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-igmp-version-1-membership-r">IGMP Version 1 Membership Report</name>
      <t indent="0" pn="section-10-1">This document does not provide any detail about IGMPv1 processing.
      Implementations are expected to only use IGMPv2 and above for IPv4 and
      MLDv1 and above for IPv6. IGMPv1 routes are considered invalid, and the
      PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedure per
      <xref target="RFC7606" format="default" sectionFormat="of" derivedContent="RFC7606"/>.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-11">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-11-1">This document describes a means to efficiently operate IGMP and MLD on a subnet
      constructed across multiple PODs or DCs via an EVPN solution.  The security
      considerations for the operation of the underlying EVPN and BGP substrates are
      described in <xref target="RFC7432" format="default" sectionFormat="of" derivedContent="RFC7432"/>, and specific multicast
      considerations are outlined in
      <xref target="RFC6513" format="default" sectionFormat="of" derivedContent="RFC6513"/> and <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/>.
      The EVPN and associated IGMP Proxy provides a single 
      broadcast domain so the same security considerations of IGMPv2 <xref target="RFC2236" format="default" sectionFormat="of" derivedContent="RFC2236"/>, IGMPv3
      <xref target="RFC3376" format="default" sectionFormat="of" derivedContent="RFC3376"/>, MLD <xref target="RFC2710" format="default" sectionFormat="of" derivedContent="RFC2710"/>,
      or MLDv2 <xref target="RFC3810" format="default" sectionFormat="of" derivedContent="RFC3810"/> apply.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-12">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-12.1">
        <name slugifiedName="name-evpn-extended-community-sub">EVPN Extended Community Sub-Types Registration</name>
        <t indent="0" pn="section-12.1-1">IANA has allocated the following codepoints in the "EVPN Extended Community Sub-Types" 
        subregistry under the "Border Gateway Protocol (BGP) Extended Communities" registry. </t>
        <table align="center" pn="table-1">
          <name slugifiedName="name-evpn-extended-community-sub-">EVPN Extended Community Sub-Types Subregistry Allocated Codepoints</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Sub-Type Value</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">0x09</td>
              <td align="left" colspan="1" rowspan="1">Multicast Flags Extended Community</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0A</td>
              <td align="left" colspan="1" rowspan="1">EVI-RT Type 0</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0B</td>
              <td align="left" colspan="1" rowspan="1">EVI-RT Type 1</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0C</td>
              <td align="left" colspan="1" rowspan="1">EVI-RT Type 2</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0D</td>
              <td align="left" colspan="1" rowspan="1">EVI-RT Type 3</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-12.2">
        <name slugifiedName="name-evpn-route-types-registrati">EVPN Route Types Registration</name>
        <t indent="0" pn="section-12.2-1">IANA has allocated the following EVPN route types in the "EVPN
	Route Types" subregistry.</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-12.2-2">
          <dt pn="section-12.2-2.1">6 -</dt>
          <dd pn="section-12.2-2.2">Selective Multicast Ethernet Tag Route</dd>
          <dt pn="section-12.2-2.3">7 -</dt>
          <dd pn="section-12.2-2.4">Multicast Membership Report Synch Route</dd>
          <dt pn="section-12.2-2.5">8 -</dt>
          <dd pn="section-12.2-2.6"> Multicast Leave Synch Route</dd>
        </dl>
      </section>
      <section anchor="multicast_flags_extended_community" numbered="true" toc="include" removeInRFC="false" pn="section-12.3">
        <name slugifiedName="name-multicast-flags-extended-com">Multicast Flags Extended Community Registry</name>
        <t indent="0" pn="section-12.3-1">IANA has created and now maintains a new subregistry called "Multicast Flags Extended Community" under the "Border Gateway Protocol (BGP) Extended Communities" registry. The registration procedure is First Come First Served <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>. For the 16-bit Flags field, the bits are numbered 0-15, from high order to low order. The registry was initialized as follows:</t>
        <table align="center" pn="table-2">
          <name slugifiedName="name-multicast-flags-extended-comm">Multicast Flags Extended Community</name>
          <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>
              <th align="left" colspan="1" rowspan="1">Change Controller</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0-13</td>
              <td align="left" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1"> 14</td>
              <td align="left" colspan="1" rowspan="1">MLD Proxy Support</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1"> 15</td>
              <td align="left" colspan="1" rowspan="1">IGMP Proxy Support</td>
              <td align="left" colspan="1" rowspan="1">RFC 9251</td>
              <td align="left" colspan="1" rowspan="1">IETF</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-bess-evpn-bum-procedure-updates" to="EVPN-BUM"/>
    <references pn="section-13">
      <name slugifiedName="name-references">References</name>
      <references pn="section-13.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <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 initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <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="RFC2236" target="https://www.rfc-editor.org/info/rfc2236" quoteTitle="true" derivedAnchor="RFC2236">
          <front>
            <title>Internet Group Management Protocol, Version 2</title>
            <author initials="W." surname="Fenner" fullname="W. Fenner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="November"/>
            <abstract>
              <t indent="0">This memo documents IGMPv2, used by IP hosts to report their multicast group memberships to routers.  It updates STD 5, RFC 1112.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2236"/>
          <seriesInfo name="DOI" value="10.17487/RFC2236"/>
        </reference>
        <reference anchor="RFC2710" target="https://www.rfc-editor.org/info/rfc2710" quoteTitle="true" derivedAnchor="RFC2710">
          <front>
            <title>Multicast Listener Discovery (MLD) for IPv6</title>
            <author initials="S." surname="Deering" fullname="S. Deering">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Fenner" fullname="W. Fenner">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Haberman" fullname="B. Haberman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1999" month="October"/>
            <abstract>
              <t indent="0">This document specifies the protocol used by an IPv6 router to discover the presence of multicast listeners (that is, nodes wishing to receive multicast packets) on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2710"/>
          <seriesInfo name="DOI" value="10.17487/RFC2710"/>
        </reference>
        <reference anchor="RFC3376" target="https://www.rfc-editor.org/info/rfc3376" quoteTitle="true" derivedAnchor="RFC3376">
          <front>
            <title>Internet Group Management Protocol, Version 3</title>
            <author initials="B." surname="Cain" fullname="B. Cain">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Deering" fullname="S. Deering">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Kouvelas" fullname="I. Kouvelas">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Fenner" fullname="B. Fenner">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Thyagarajan" fullname="A. Thyagarajan">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2002" month="October"/>
          </front>
          <seriesInfo name="RFC" value="3376"/>
          <seriesInfo name="DOI" value="10.17487/RFC3376"/>
        </reference>
        <reference anchor="RFC3810" target="https://www.rfc-editor.org/info/rfc3810" quoteTitle="true" derivedAnchor="RFC3810">
          <front>
            <title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
            <author initials="R." surname="Vida" fullname="R. Vida" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Costa" fullname="L. Costa" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2004" month="June"/>
            <abstract>
              <t indent="0">This document updates RFC 2710, and it specifies Version 2 of the ulticast Listener Discovery Protocol (MLDv2).  MLD is used by an IPv6 router to discover the presence of multicast listeners on directly attached links, and to discover which multicast addresses are of interest to those neighboring nodes.  MLDv2 is designed to be interoperable with MLDv1.  MLDv2 adds the ability for a node to report interest in listening to packets with a particular multicast address only from specific source addresses or from all sources except for specific source addresses.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3810"/>
          <seriesInfo name="DOI" value="10.17487/RFC3810"/>
        </reference>
        <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 initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="February"/>
            <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="RFC4684" target="https://www.rfc-editor.org/info/rfc4684" quoteTitle="true" derivedAnchor="RFC4684">
          <front>
            <title>Constrained Route Distribution for Border Gateway Protocol/MultiProtocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)</title>
            <author initials="P." surname="Marques" fullname="P. Marques">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Bonica" fullname="R. Bonica">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Fang" fullname="L. Fang">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Martini" fullname="L. Martini">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Raszuk" fullname="R. Raszuk">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Guichard" fullname="J. Guichard">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="November"/>
            <abstract>
              <t indent="0">This document defines Multi-Protocol BGP (MP-BGP) procedures that allow BGP speakers to exchange Route Target reachability information.  This information can be used to build a route distribution graph in order to limit the propagation of Virtual Private Network (VPN) Network Layer Reachability Information (NLRI) between different autonomous systems or distinct clusters of the same autonomous system.  This document updates RFC 4364.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4684"/>
          <seriesInfo name="DOI" value="10.17487/RFC4684"/>
        </reference>
        <reference anchor="RFC6513" target="https://www.rfc-editor.org/info/rfc6513" quoteTitle="true" derivedAnchor="RFC6513">
          <front>
            <title>Multicast in MPLS/BGP IP VPNs</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t indent="0">In order for IP multicast traffic within a BGP/MPLS IP VPN (Virtual Private Network) to travel from one VPN site to another, special protocols and procedures must be implemented by the VPN Service Provider.  These protocols and procedures are specified in this document.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6513"/>
          <seriesInfo name="DOI" value="10.17487/RFC6513"/>
        </reference>
        <reference anchor="RFC6514" target="https://www.rfc-editor.org/info/rfc6514" quoteTitle="true" derivedAnchor="RFC6514">
          <front>
            <title>BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs</title>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Morin" fullname="T. Morin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t indent="0">This document describes the BGP encodings and procedures for exchanging the information elements required by Multicast in MPLS/BGP IP VPNs, as specified in RFC 6513.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6514"/>
          <seriesInfo name="DOI" value="10.17487/RFC6514"/>
        </reference>
        <reference anchor="RFC6625" target="https://www.rfc-editor.org/info/rfc6625" quoteTitle="true" derivedAnchor="RFC6625">
          <front>
            <title>Wildcards in Multicast VPN Auto-Discovery Routes</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Hendrickx" fullname="W. Hendrickx">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Qiu" fullname="R. Qiu">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="May"/>
            <abstract>
              <t indent="0">In Multicast Virtual Private Networks (MVPNs), customer multicast flows are carried in "tunnels" through a service provider's network. The base specifications for MVPN define BGP multicast VPN "auto-discovery routes" and specify how to use an auto-discovery route to advertise the fact that an individual customer multicast flow is being carried in a particular tunnel.  However, those specifications do not provide a way to specify, in a single such route, that multiple customer flows are being carried in a single tunnel.  Those specifications also do not provide a way to advertise that a particular tunnel is to be used by default to carry all customer flows, except in the case where that tunnel is joined by all the provider edge routers of the MVPN.  This document eliminates these restrictions by specifying the use of "wildcard" elements in the customer flow identifiers.  With wildcard elements, a single auto-discovery route can refer to multiple customer flows or even to all customer flows.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6625"/>
          <seriesInfo name="DOI" value="10.17487/RFC6625"/>
        </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 initials="A." surname="Sajassi" fullname="A. Sajassi" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Bitar" fullname="N. Bitar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Isaac" fullname="A. Isaac">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Uttaro" fullname="J. Uttaro">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Drake" fullname="J. Drake">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Henderickx" fullname="W. Henderickx">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="February"/>
            <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="RFC7606" target="https://www.rfc-editor.org/info/rfc7606" quoteTitle="true" derivedAnchor="RFC7606">
          <front>
            <title>Revised Error Handling for BGP UPDATE Messages</title>
            <author initials="E." surname="Chen" fullname="E. Chen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Scudder" fullname="J. Scudder" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Mohapatra" fullname="P. Mohapatra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Patel" fullname="K. Patel">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="August"/>
            <abstract>
              <t indent="0">According to the base BGP specification, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received. This behavior is undesirable because a session reset would impact not only routes with the offending attribute but also other valid routes exchanged over the session.  This document partially revises the error handling for UPDATE messages and provides guidelines for the authors of documents defining new attributes.  Finally, it revises the error handling procedures for a number of existing attributes.</t>
              <t indent="0">This document updates error handling for RFCs 1997, 4271, 4360, 4456, 4760, 5543, 5701, and 6368.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7606"/>
          <seriesInfo name="DOI" value="10.17487/RFC7606"/>
        </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 initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <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>
      </references>
      <references pn="section-13.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-bess-evpn-bum-procedure-updates" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-bess-evpn-bum-procedure-updates-14" derivedAnchor="EVPN-BUM">
          <front>
            <title>Updates on EVPN BUM Procedures</title>
            <author fullname="Zhaohui Zhang">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <author fullname="Wen Lin">
              <organization showOnFrontPage="true">Juniper Networks</organization>
            </author>
            <author fullname="Jorge Rabadan">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <author fullname="Keyur Patel">
              <organization showOnFrontPage="true">Arrcus</organization>
            </author>
            <author fullname="Ali Sajassi">
              <organization showOnFrontPage="true">Cisco Systems</organization>
            </author>
            <date month="November" day="18" year="2021"/>
            <abstract>
              <t indent="0">   This document specifies updated procedures for handling broadcast,
   unknown unicast, and multicast (BUM) traffic in Ethernet VPNs (EVPN),
   including selective multicast, and provider tunnel segmentation.
   This document updates RFC 7432.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-bess-evpn-bum-procedure-updates-14"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-bess-evpn-bum-procedure-updates-14.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4541" target="https://www.rfc-editor.org/info/rfc4541" quoteTitle="true" derivedAnchor="RFC4541">
          <front>
            <title>Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches</title>
            <author initials="M." surname="Christensen" fullname="M. Christensen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Kimball" fullname="K. Kimball">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="F." surname="Solensky" fullname="F. Solensky">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="May"/>
            <abstract>
              <t indent="0">This memo describes the recommendations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) snooping switches.  These are based on best current practices for IGMPv2, with further considerations for IGMPv3- and MLDv2-snooping.  Additional areas of relevance, such as link layer topology changes and Ethernet-specific encapsulation issues, are also considered.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4541"/>
          <seriesInfo name="DOI" value="10.17487/RFC4541"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank <contact fullname="Stephane Litkowski"/>, <contact fullname="Jorge Rabadan"/>,
      <contact fullname="Anoop Ghanwani"/>, <contact fullname="Jeffrey Haas"/>, <contact fullname="Krishna Muddenahally Ananthamurthy"/>, and <contact fullname="Swadesh Agrawal"/>
      for their reviews and valuable comments.</t>
    </section>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.b">
      <name slugifiedName="name-contributors">Contributors</name>
      <contact fullname="Derek Yeung">
        <organization showOnFrontPage="true">Arrcus</organization>
        <address>
          <email>derek@arrcus.com</email>
        </address>
      </contact>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="A" surname="Sajassi" fullname="Ali Sajassi">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <street>821 Alder Drive</street>
            <code>95035</code>
            <city>Milpitas</city>
            <region>CA</region>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>sajassi@cisco.com</email>
        </address>
      </author>
      <author initials="S" surname="Thoria" fullname="Samir Thoria">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <street>821 Alder Drive</street>
            <code>95035</code>
            <city>Milpitas</city>
            <region>CA</region>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>sthoria@cisco.com</email>
        </address>
      </author>
      <author initials="M" surname="Mishra" fullname="Mankamana Mishra">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <street>821 Alder Drive</street>
            <code>95035</code>
            <city>Milpitas</city>
            <region>CA</region>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>mankamis@cisco.com</email>
        </address>
      </author>
      <author initials="K" surname="Patel" fullname="Keyur Patel">
        <organization showOnFrontPage="true">Arrcus</organization>
        <address>
          <postal>
            <country>United States of America</country>
          </postal>
          <phone/>
          <email>keyur@arrcus.com</email>
        </address>
      </author>
      <author initials="J" surname="Drake" fullname="John Drake">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>jdrake@juniper.net</email>
        </address>
      </author>
      <author initials="W" surname="Lin" fullname="Wen Lin">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>wlin@juniper.net</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
