<?xmlversion='1.0'?>version='1.0' encoding='utf-8'?> <!DOCTYPE rfcSYSTEM 'rfc2629.dtd'[ <!ENTITY nbsp " "> <!ENTITY zwsp "​"> <!ENTITY nbhy "‑"> <!ENTITY wj "⁠"> ]><?rfc toc="yes"?> <?rfc tocompact="no"?> <?rfc tocdepth="6"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?> <?rfc strict="yes" ?><rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std"docName="draft-ietf-bess-evpn-igmp-mld-proxy-21">docName="draft-ietf-bess-evpn-igmp-mld-proxy-21" obsoletes="" updates="" submissionType="IETF" consensus="true" ipr="trust200902" xml:lang="en" tocInclude="true" tocDepth="6" symRefs="true" sortRefs="true" version="3" number="9251"> <!--***** FRONT MATTER *****xml2rfc v2v3 conversion 3.12.2 --> <front><title abbrev="IGMP<!--[rfced] Please note that the title of the document has been updated as follows. Abbreviations have been expanded per Section 3.6 of RFC 7322 ("RFC Style Guide") and "Proxy" has been updated to "Proxies". Please review. Original: IGMP and MLD Proxy forEVPN">IGMPEVPN Current: Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Proxies for Ethernet VPN (EVPN) --> <title abbrev="IGMP and MLDProxyProxies forEVPN</title>EVPN"> Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Proxies for Ethernet VPN (EVPN)</title> <seriesInfo name="RFC" value="9251"/> <author initials="A" surname="Sajassi" fullname="Ali Sajassi"> <organization>Cisco Systems</organization> <address> <postal> <street>821 AlderDrive,</street> <region>MILPITAS, CALIFORNIA 95035</region> <country>UNITED STATES</country>Drive</street> <code>95035</code> <city>Milpitas</city> <region>CA</region> <country>United States of America</country> </postal><phone></phone><phone/> <email>sajassi@cisco.com</email> </address> </author> <author initials="S" surname="Thoria" fullname="Samir Thoria"> <organization>Cisco Systems</organization> <address> <postal> <street>821 AlderDrive,</street> <region>MILPITAS, CALIFORNIA 95035</region> <country>UNITED STATES</country>Drive</street> <code>95035</code> <city>Milpitas</city> <region>CA</region> <country>United States of America</country> </postal><phone></phone><phone/> <email>sthoria@cisco.com</email> </address> </author> <author initials="M" surname="Mishra" fullname="Mankamana Mishra"> <organization>Cisco Systems</organization> <address> <postal> <street>821 AlderDrive,</street> <region>MILPITAS, CALIFORNIA 95035</region> <country>UNITED STATES</country>Drive</street> <code>95035</code> <city>Milpitas</city> <region>CA</region> <country>United States of America</country> </postal><phone></phone><phone/> <email>mankamis@cisco.com</email> </address> </author> <author initials="K" surname="Patel" fullname="KeyurPAtel">Patel"> <organization>Arrcus</organization> <address> <postal><street></street> <region></region> <country>UNITED STATES</country><country>United States of America</country> </postal><phone></phone><phone/> <email>keyur@arrcus.com</email> </address> </author> <author initials="J" surname="Drake" fullname="John Drake"> <organization>Juniper Networks</organization> <address><postal> <street></street> <region></region> <country></country> </postal> <phone></phone><email>jdrake@juniper.net</email> </address> </author> <author initials="W" surname="Lin" fullname="Wen Lin"> <organization>Juniper Networks</organization> <address><postal> <street></street> <region></region> <country></country> </postal> <phone></phone><email>wlin@juniper.net</email> </address> </author> <dateyear="2022"/> <area>Routing</area> <workgroup>BESS WorkGroup</workgroup>year="2022" month="May"/> <area>RTG</area> <workgroup>BESS</workgroup> <!-- [rfced] Please insert any keywords (beyond those that appear in the title) for use on https://www.rfc-editor.org/search. --> <abstract><t><!--[rfced] In this sentence, is "efficiently" meant to describe "support" or "running"? Original: This document describes how to support efficiently endpoints running IGMP(Internet Group Management Protocol) or MLD (Multicast ListenerDiscovery)Discovery)... Perhaps (describing "support"): This document describes how to efficiently support endpoints running Internet Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD)... Or (describing "running"): This document describes how to support endpoints efficiently running Internet Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD)... --> <t>This document describes how to support efficiently endpoints running the Internet Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD) for the multicast services over anEVPNEthernet VPN (EVPN) network by incorporating IGMP/MLD proxy procedures on EVPN(Ethernet VPN) PEs.Provider Edges (PEs). </t> </abstract> </front><!-- ***** MIDDLE MATTER ***** --><middle> <sectiontitle="Introduction"> <t> In DCnumbered="true" toc="default"> <name>Introduction</name> <t>In data center (DC) applications, a point of delivery (POD) can consist of a collection of servers supported by severaltop of racktop-of-rack (ToR) and spine switches. This collection of servers and switches areself containedself-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 extensivemulti-homingmultihoming 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> These<t>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:<list style="numbers"> <t> Reduce</t> <ol spacing="normal" type="1"> <li>Reduce flooding of IGMP/MLD messages:justJust like theARP/NDARP / 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) inEVPN. </t> <t> DistributedEVPN.</li> <li>Distributed anycast multicast proxy:itIt 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 thatsubnet. </t> <t> Selective Multicast: to forwardsubnet.</li> <li>Selective multicast: This describes forwarding multicast traffic over the EVPN network such that it only gets forwarded to the PEs that haveinterestinterests in the multicast group(s). This document shows how this objective may be achieved whenIngress Replicationingress replication is used to distribute the multicast traffic among the PEs. Procedures for supporting selective multicast usingP2MPPoint-to-Multipoint (P2MP) tunnels can be found in <xreftarget="I-D.ietf-bess-evpn-bum-procedure-updates"/> </t> </list> </t> <t> Thetarget="I-D.ietf-bess-evpn-bum-procedure-updates" format="default"/>.</li> </ol> <t>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 tunnelonlyamong only the PEs that have interest inthatthe 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> <sectiontitle="Specificationnumbered="true" toc="default"> <name>Specification ofRequirements"> <t> TheRequirements</name> <t>The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<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"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xreftarget="RFC2119"/>target="RFC2119" format="default"/> <xreftarget="RFC8174"/>target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here. </t> </section> <sectiontitle="Terminology"> <t> <list style="symbols"> <t> AC:numbered="true" toc="default"> <name>Terminology</name> <dl newline="false" spacing="normal"> <dt> AC:</dt> <dd> AttachmentCircuit. </t> <t> All-ActiveCircuit</dd> <dt>All-Active RedundancyMode:Mode:</dt> <dd> 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 redundancymode. </t> <t> BD:mode.</dd> <dt>BD:</dt> <dd> Broadcast Domain. As per <xreftarget="RFC7432"/>,target="RFC7432" format="default"/>, anEVIEVPN instance (EVI) consists of a single BD or multiple BDs. In case ofVLAN-bundlea VLAN bundle and a VLAN-aware bundle service model, an EVI contains multiple BDs. Also, in this document, BD and subnet are equivalentterms. </t> <t> DC:terms.</dd> <dt>DC:</dt> <dd> DataCenter </t> <t>Center</dd> <dt>ES:</dt> <dd> EthernetSegment (ES): WhenSegment. This is when a customer site (device or network) is connected to one or more PEs via a set of Ethernetlinks. </t> <t>links.</dd> <dt>ESI:</dt> <dd> Ethernet SegmentIdentifier (ESI): AIdentifier. This is a unique non-zero identifier that identifies an EthernetSegment. </t> <t> Ethernet Tag:Segment.</dd> <dt>Ethernet Tag:</dt> <dd> It identifies a particular broadcast domain, e.g., a VLAN. An EVPN instance consists of one or more broadcastdomains. </t> <t> EVI: Andomains.</dd> <dt>EVI:</dt> <dd> EVPNinstance spanningInstance. This spans the Provider Edge (PE) devices participating in thatEVPN </t> <t> EVPN:EVPN.</dd> <dt>EVPN:</dt> <dd> Ethernet Virtual PrivateNetwork </t> <t> IGMP:Network</dd> <dt>IGMP:</dt> <dd> Internet Group ManagementProtocol </t> <t> IR:Protocol</dd> <dt>IR:</dt> <dd> IngressReplication </t> <t> MLD:Replication</dd> <dt>MLD:</dt> <dd> Multicast ListenerDiscovery </t> <t> OIF:Discovery</dd> <dt> OIF:</dt> <dd> Outgoing Interface for multicast. It can be a physical interface, virtualinterfaceinterface, ortunnel.</t> <t> PE:tunnel.</dd> <dt>PE:</dt> <dd> ProviderEdge. </t> <t> POD:Edge</dd> <dt>POD:</dt><dd> Point ofDelivery </t> <t> S-PMSI:Delivery</dd> <dt> S-PMSI:</dt> <dd> Selective P-Multicast ServiceInterface -Interface. This is a conceptual interface for a PE to send customer multicast traffic to some of the PEs in the sameVPN. </t> <t> Single-ActiveVPN.</dd> <dt>Single-Active RedundancyMode:Mode:</dt> <dd> 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 redundancymode. </t> <t> SMET:mode.</dd> <dt> SMET:</dt> <dd> Selective Multicast EthernetTag </t> <t> ToR:Tag</dd> <dt>ToR:</dt> <dd> Top ofRack </t> </list> </t> <t> ThisRack</dd> </dl> <t>This document also assumes familiarity with the terminology of <xreftarget="RFC7432"/>,target="RFC7432" format="default"/>, <xreftarget="RFC3376"/>,target="RFC3376" format="default"/>, and <xreftarget="RFC2236"/> .target="RFC2236" format="default"/>. <!--[rfced] May we rephrase this sentence for clarity? Please let us know if the suggested text is agreeable or if you prefer otherwise. Original: Though most of the place this document uses term IGMP Membership Report, the text applies equally for MLD Membership Report too. Perhaps: When this document uses the term "IGMP Membership Report", the text equally applies to the MLD Membership Report. --> Though most of the place this document uses the term "IGMP Membership Report", the text applies equally for MLD Membership Report too. Similarly, text for IGMPv2 applies toMLDv1MLDv1, and text for IGMPv3 applies to MLDv2.IGMP / MLDIGMP/MLD version encoding in the BGP update is stated in <xreftarget="bgp-encoding"/> </t>target="bgp-encoding" format="default"/>.</t> <t> It is important to note that when there is text considering whether a PE indicates support for IGMP proxying, the corresponding behavior has a naturalanalogueanalog forindication ofindicating support for MLD proxying, and the analogous requirements apply as well. </t> </section> <sectiontitle="IGMP/MLD Proxy"> <t> Thenumbered="true" toc="default"> <name>IGMP/MLD Proxy</name> <t>The IGMP Proxy mechanism is used to reduce the flooding of IGMP messages over an EVPNnetworknetwork, similar to the ARP proxy used in reducing the flooding of ARP messages over EVPN. It also provides a triggering mechanism for the PEs tosetupset up their underlay multicast tunnels. The IGMP Proxy mechanism consists of two components:<list style="numbers"> <t></t> <ol spacing="normal" type="1"> <li> Proxy for IGMP MembershipReports. </t> <t>Reports </li> <li> Proxy for IGMP MembershipQueries. </t> </list> </t> <t> TheQueries </li> </ol> <t>The goal of IGMP and MLD proxying is to make the EVPN behave seamlessly for the tenant systems with respect to multicastoperations,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 peerPEs,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,andmaintains the requisite state on locally attached nodes, sends periodic membership queries, etc. The role of EVPNSMETSelective 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 mostcasescases, 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> <sectiontitle="Proxy Reporting"> <t> Whennumbered="true" toc="default"> <name>Proxy Reporting</name> <!--[rfced] Should instances of "IGMP protocol" be updated to simply read "IGMP" to avoid redundancy (if expanded "IGMP protocol" would read as "Internet Group Management Protocol protocol"). Please review and let us know if any updates are needed. --> <t>When IGMP protocol 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. <!--[rfced] May we update "IGMP Reports" to "IGMP Membership Reports"? Original: This is done by terminating the IGMP Reports in the first hop PE, and translating and exchanging the relevant information among EVPN BGP speakers. Perhaps: 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. --> This is done by terminating the IGMP 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.ThusThus, it helps create an IGMP overlay subnet using BGP. In order to facilitate such an overlay, this document also defines a new EVPN route typeNLRI,Network Layer Reachability Information (NLRI) and the EVPNSelective Multicast Ethernet TagSMET route, along with its procedures to help exchange and register IGMP multicastgroupsgroups; see <xreftarget="bgp-encoding"/>.target="bgp-encoding" format="default"/>. </t> <sectiontitle="IGMP/MLDnumbered="true" toc="default"> <name>IGMP/MLD Membership Report Advertisement inBGP"> <t> WhenBGP</name> <t>When a PE wants to advertise an IGMP Membership Report using the BGP EVPN route, it follows thefollowingproceeding rules (BGP encoding is stated in <xreftarget="bgp-encoding"/>). Wheretarget="bgp-encoding" format="default"/>). The first four rules are applicable to the originatorPEPE, and the last three rules are applicable to remote PE processing SMET routes: </t><t> Processing<t>Processing at the BGP route originator:<list style="numbers"> <t> When</t> <ol spacing="normal" type="1"> <li>When the first hop PE receives IGMP Membership Reports,belonging to the same IGMPversion,version from different attached hosts for the same (*,G) or (S,G), itSHOULD<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 statefulprotocolprotocol, and no further transmission of the same report is needed. If the IGMP Membership Request is for (*,G), thenmulticast group address MUSTthe Multicast Group Address <bcp14>MUST</bcp14> be sent along with the corresponding version flag (v2 or v3) set. In case of IGMPv3, the exclude flagMUST<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 settingmulticast group addressthe Multicast Group Address along with theversion flag v3,v3 flag, the source IP address and theIEinclude/exclude (IE) flagMUST<bcp14>MUST</bcp14> be set. It should be notedthatthat, when advertising the EVPN route for (S,G), the only valid version flag is v3 (v2 flagsMUST<bcp14>MUST</bcp14> be set tozero). </t> <t> When0). </li> <li>When the first hop PE receives an IGMPv3 Membership Report for (S,G) on a given BD, itMUST<bcp14>MUST</bcp14> advertise the corresponding EVPNSelective Multicast Ethernet Tag (SMET) routeSMET route, regardless of whether the source (S) is attached to itself ornotnot, in order to facilitate the source move in the future.</t> <t> When</li> <li>When the first hop PE receives an IGMP version-X Membership Report first for (*,G) and then lateritreceives an IGMP version-Y Membership Report for the same (*,G), then itMUST<bcp14>MUST</bcp14> re-advertise the same EVPN SMET route with the flag for version-Y set in addition to anypreviously-setpreviously set version flag(s). In other words, the first hop PEMUST NOT<bcp14>MUST NOT</bcp14> withdraw the EVPN route before sending the new route because theflagFlags field is not part of BGP route key processing.</t> <t> When</li> <li>When the first hop PE receives an IGMP version-X Membership Report first for (*,G) and then lateritreceives an IGMPv3 Membership Report for the samemulticast group addressMulticast Group Address but for a specific source address S, then the PEMUST<bcp14>MUST</bcp14> advertise a new EVPN SMET route with the v3 flag set (and v2 reset). The IE flag alsoneedneeds to be set accordingly. Since the source IP address is used as part of BGP route keyprocessingprocessing, it is consideredasto be a new BGP route advertisement. When differentversionversions of IGMP Membership Report are received, the final stateMUST<bcp14>MUST</bcp14> be as persection 5.1 of<xreftarget="RFC3376"/>.target="RFC3376" sectionFormat="of" section="5.1"/>. At the end of the routeprocessingprocessing, local and remote group record stateMUST<bcp14>MUST</bcp14> be as persection 5.1 of<xreftarget="RFC3376"/>. </t> </list> Processingtarget="RFC3376" sectionFormat="of" section="5.1"/>. </li> </ol> <t>Processing at the BGP route receiver:<list style="numbers"> <t> When</t> <ol spacing="normal" type="1"> <li>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 theflagsFlags field. With multiple version flags set, there must not be a source IP address in the received EVPN route. If there is, then an errorSHOULD<bcp14>SHOULD</bcp14> be logged. If the v3 flag is set (in addition to v2), then the IE flagMUST<bcp14>MUST</bcp14> indicate "exclude". If not, then an errorSHOULD<bcp14>SHOULD</bcp14> be logged. The PEMUST<bcp14>MUST</bcp14> generate an IGMP Membership Report for that (*,G) and each IGMP version in the version flag.</t> <t> When</li> <li>When a PE receives a list of EVPN SMET NLRIs in its BGP update message, each with a different source IP address and the samemulticast group address,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 groupaddressaddress, along with the proper indication of inclusion/exclusion.</t> <t> Upon</li> <li>Upon receiving an EVPN SMET route(s) and before generating the corresponding IGMP Membership Request(s), the PE checks to see whether it hasany CEa Customer Edge (CE) multicast router for that BD on any of itsES'sESs . The PE provides such a check by listening for PIM Hello messages on thatAC (i.e, ES,BD).AC, i.e., (ES,BD). If the PE does have the router's ACs, then the generated IGMP Membership Request(s)areis sent to those ACs. If it doesn't have any of the router'sAC,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 usingIGMPv2 -IGMPv2, i.e., if the PE does not receive a Membership Report from thehosthost, it will not forward multicast data to it. Per <xreftarget="RFC4541"/>target="RFC4541" format="default"/> , 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 thehosthost, it will not forward multicast data to it. In other words, an IGMPv2 Membership ReportMUST NOT<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 runningIGMPv3IGMPv3, because there is no suppression of IGMP Membership Reports.</t> </list> </t></li> </ol> </section> <sectiontitle="IGMP/MLDnumbered="true" toc="default"> <name>IGMP/MLD Leave Group Advertisement inBGP"> <t> WhenBGP</name> <t>When a PE wants to withdraw an EVPN SMET route corresponding to an IGMPv2 Leave Group or IGMPv3 "Leave" equivalent message, it follows thefollowing rules, whererules below. The first rule defines the procedure at the originatorPEPE, and the last two rules talk about procedures at the remote PE: </t><t> Processing<t>Processing at the BGP route originator:<list style="numbers"> <t> When</t> <ol spacing="normal" type="1"> <li>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. <!--[rfced] As "SMET" is expanded as "Selective Multicast Ethernet Tag", may we remove "Multicast" to avoid redundancy? Original: If the host was indeed the last one (i.e. no responses are received for the query), then the PE MUST re-advertises EVPN SMET Multicast route with the corresponding version flag reset. Perhaps: If the host was indeed the last one (i.e., no responses are received for the query), then the PE MUST re-advertise the EVPN SMET route with the corresponding version flag reset. --> 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 Multicast 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 PEMUST<bcp14>MUST</bcp14> withdraw the EVPN route for that (*,G).</t> </list> Processing</li> </ol> <t>Processing at the BGP route receiver:<list style="numbers"> <t> When</t> <ol spacing="normal" type="1"> <li>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. <!--[rfced] Is there a word(s) missing before "attached"? Please let us know if the perhaps text captures the intended meaning. Original: If the PE finds that a version flag associated with the (*,G) for the remote PE is reset, then the PE MUST generate IGMP Leave for that (*,G) toward its local interface (if any) attached to the multicast router for that multicast group. Perhaps: If the PE finds that a version flag associated with the (*,G) for the remote PE is reset, then the PE MUST generate IGMP Leave for that (*,G) toward its local interface (if any), which is attached to the multicast router for that multicast group. --> 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) attached to the multicast router for that multicast group. It should be noted that the received EVPN routeMUST<bcp14>MUST</bcp14> have at leasthaveone 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.Error MUSTAn error <bcp14>MUST</bcp14> be considered as a BGPerrorerror, and the PEMUST<bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedureofper <xreftarget="RFC7606"/>. </t> <t> Whentarget="RFC7606" format="default"/>. </li> <li>When a PE receives an EVPN SMET route withdraw, it removes the remote PE from its OIF list for that multicastgroupgroup, and if there are no more OIF entries for that multicast group (either locally or remotely), then the PEMUST<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.</t> </list> </t></li> </ol> </section> </section> <sectiontitle="Proxy Querier"> <t> Asnumbered="true" toc="default"> <name>Proxy Querier</name> <t>As mentioned in the previous sections, each PEMUST<bcp14>MUST</bcp14> have proxy querier functionality for the following reasons:<list style="numbers"> <t> To</t> <ol spacing="normal" type="1"> <li>to enable the collection of EVPN PEs providingL2VPNLayer 2 Virtual Private Network (L2VPN) service to act as a distributed multicast router withAnycastan anycast IP address for all attached hosts in thatsubnet. </t> <t> Tosubnet</li> <li>to enable suppression of IGMP Membership Reports and Membership Queries over MPLS/IPcore. </t> </list> </t>core</li> </ol> </section> </section> <sectiontitle="Operation"> <t> Considernumbered="true" toc="default"> <name>Operation</name> <t>Consider the EVPN networkof Figure-1,in <xref target="EVPN"/>, where there is an EVPN instance configured across the PEsshown in this figure(namely PE1, PE2, and PE3). Let's consider that this EVPN instance consists of a single bridge domain (single subnet) with all thehosts, sources,hosts and sources and the multicast router connected to this subnet. PE1 only hashosts(hosthosts (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:<list style="symbols"> <t> only hosts</t><t><ul spacing="normal"> <li>only hosts,</li> <li>a mix of hosts and a multicastsource </t> <t>source, or</li> <li>a mix of hosts, a multicast source, and a multicastrouter </t> </list> </t>router.</li> </ul> <figure>anchor="EVPN"> <name>EVPN Network</name> <artwork><![CDATA[name=">EVPN network" type="" align="center" alt=""><![CDATA[ +--------------+ | | | | +----+ | | +----+ 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 ---| | | | +----+ | | | | +--------------+Figure 1: EVPN network]]></artwork> </figure> <sectiontitle="PE with only attached hostsnumbered="true" toc="default"> <name>PE with Only Attached Hosts for agiven subnet"> <t> WhenGiven Subnet</name> <t>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. <!-- [rfced] Does PE1 send an EVPN Multicast Group and set the v2 flag (Option A), or does the EVPN Multicast Group correspond to the Membership Report and set the v2 flag (Option B)? Original: PE1 sends an EVPN Multicast Group route corresponding to this Membership Report for (*,G1) and setting the v2 flag. Perhaps: A) PE1 sends an EVPN Multicast Group route corresponding to this Membership Report for (*,G1) and sets the v2 flag. or B) PE1 sends an EVPN Multicast Group route that corresponds to this Membership Report for (*,G1) and sets the v2 flag. --> PE1 sends an EVPN Multicast Group route corresponding to this Membership Report for (*,G1) and setting the v2 flag. This EVPN route is received by PE2 andPE3 thatPE3, which are the members of the same BD (i.e., same EVI in case of a VLAN-based service orEVI,VLANEVI 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 thatsubnet; viz,subnet (viz., ports associated with H6 andH7.H7). </t><t> When<t>When PE1 receives the second IGMPv2 Membership Report from H2 for the same multicast group (*,G1), it only adds that port to its OIFlistlist, but it doesn't send any EVPN BGProuteroutes because there is no change in information. However, when it receives the IGMPv3 Membership Report from H3 for the same(*,G1). Besides(*,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> Finally<t>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> <sectiontitle="PEnumbered="true" toc="default"> <name>PE with amixMix ofattached hostsAttached Hosts andmulticast source"> <t> Thea Multicast Source</name> <t>The main difference in this case is that when PE2 receives the IGMPv3 Membership Report from H7 for (S2,G2), itdoes advertiseadvertises it in BGP to support the sourcemovemoving, 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> <sectiontitle="PEnumbered="true" toc="default"> <name>PE with amixMix ofattached hosts,Attached Hosts, amulticast sourceMulticast Source, and arouter"> <t> TheRouter</name> <t>The main difference in this case relative to the previous two sections is thatIGMP v2/v3IGMPv2/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> <sectiontitle="All-Active Multi-Homing"> <t> Becausenumbered="true" toc="default"> <name>All-Active Multihoming</name> <t>Because theLAGLink Aggregation Group (LAG) flow hashing algorithm used by the CE is unknown at the PE, in an All-Active redundancymodemode, it must be assumed that the CE can send a given IGMP message to any one of themulti-homedmultihomed PEs, eitherDFDesignated Forwarder (DF) ornon-DF;non-DF, i.e., different IGMP Membership Request messages can arrive at different PEs in the redundancygroup and furthermoregroup. 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 givenESEthernet Segment (ES) must coordinate the IGMP Membership Request and Leave Group (x,G) state, where x may be either'*'"*" or a particular sourceS,S for each BD on that ES. Each PE has a local copy of thatstatestate, and the EVPN signaling serves to synchronize that state across PEs. This allows the DF for that (ES,BD) to correctly advertise or withdraw aSelective Multicast Ethernet Tag (SMET)SMET route for that (x,G) group in that BD when needed. All-Active multihoming PEs for a given ESMUST<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> <sectiontitle="Localnumbered="true" toc="default" anchor="local-igmp-mld"> <name>Local IGMP/MLD Membership ReportSynchronization"> <t> WhenSynchronization</name> <t>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,an IGMP Membership Report for (x,G),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, itMUST<bcp14>MUST</bcp14> instantiate that local IGMP Membership Request (x,G) state andMUST<bcp14>MUST</bcp14> advertise a BGP IGMP Membership Report Synch route for that (ES,BD).LocalThe 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> The<t>The IGMP Membership Report Synch routeMUST<bcp14>MUST</bcp14> carry the ES-ImportRTRoute Target (RT) for the ES on which the IGMP Membership Report was received.ThusThus, itMUST<bcp14>MUST</bcp14> only be imported by the PEs attached to that ES and not any other PEs. </t><t> When<t>When a PE, either DF or non-DF, receives an IGMP Membership Report Synchrouteroute, it installs thatrouteroute, and if it doesn't already have the IGMP Membership Request (x,G) state for that (ES,BD), itMUST<bcp14>MUST</bcp14> instantiate that IGMP Membership Request (x,G)state -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, itMUST<bcp14>MUST</bcp14> do so now. </t><t> When<t>When a PE, either DF or non-DF, deletes its local IGMP Membership Request (x,G) state for that (ES,BD), itMUST<bcp14>MUST</bcp14> withdraw its BGP IGMP Membership Report Synch route for that (ES,BD). </t><t> When<t>When a PE, either DF or non-DF, receives the withdrawal of an IGMP Membership Report Synch route from anotherPEPE, itMUST<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, itMUST<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, itMUST<bcp14>MUST</bcp14> withdraw its SMET route for that (x,G) group in that BD. </t><t> In<t>In other words, a PE advertisesana SMET route for that (x,G) group in that BD when it has the IGMP Membership Request (x,G) statein that BDon at least one ES for which it isDFthe 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> <sectiontitle="Localnumbered="true" toc="default"> <name>Local IGMP/MLD Leave GroupSynchronization"> <t> WhenSynchronization</name> <t>When a PE, either DF or non-DF,receives, on a given multihomed ES operating in All-Active redundancy mode,receives an IGMP Leave Group message for (x,G) from the attachedCE,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:<list style="numbers"> <t> It</t> <ol spacing="normal" type="1"> <li>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 inSection 3 of<xreftarget="RFC2236"/>),target="RFC2236" section="3" sectionFormat="of"/>), 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).</t> <t> It</li> <li>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.</t> <t> It</li> <li>It initiates the Last Member Query procedure described inSection 3 of<xreftarget="RFC2236"/>; viz,target="RFC2236" section="3" sectionFormat="of"/>; 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 attachedCE. </t> <t> ItCE.</li> <li>It advertises an IGMP Leave Synch route for thatthat(ES,BD). This route notifies the other multihomed PEs attached to the given multihomed ES that it has initiated an (x,G) leave group synchronizationprocedure;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.</t> <t> When</li> <li>When the Maximum ResponseTimerTime timer expires, the PE that has advertised the IGMP Leave Synch route withdraws it.</t> </list> </t></li> </ol> <sectiontitle="Remotenumbered="true" toc="default"> <name>Remote Leave GroupSynchronization"> <t> WhenSynchronization</name> <t>When a PE, either DF or non-DF, receives an IGMP Leave Synchrouteroute, it installs that route and it starts a timer for (x,G) on the specified(ES,BD)(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> <sectiontitle="Commonnumbered="true" toc="default"> <name>Common Leave GroupSynchronization"> <t> IfSynchronization</name> <t>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> If<t>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 thatrouteroute, 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> When<t>When the Maximum ResponseTimer expiresTime timer expires, a PE that has advertised an IGMP Leave Synchroute,route withdraws it. Any PE attached to the multihomed ES,thatwhich started the Maximum Response Time and has no local IGMP Membership Request (x,G) state and no installed IGMP Membership Report Synch routes,itremoves 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> <sectiontitle="Massnumbered="true" toc="default"> <name>Mass Withdraw of the Multicast Membership ReportSync routeSynch Route incaseCase offailure"> <t> AFailure</name> <t>A PEwhichthat has received an IGMP Membership Request would have synced the IGMP Membership Report by the procedure defined insection 6.1.<xref target="local-igmp-mld" format="default"/>. 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)SHOULD NOT<bcp14>SHOULD NOT</bcp14> remove the state immediately;insteadinstead, General QuerySHOULD<bcp14>SHOULD</bcp14> be generated to refresh the states. There are several ways to detect failure at a peer,e.g.e.g., using IGPnext hopnext-hop tracking or ES route withdraw. </t> </section> </section> <sectiontitle="Single-Active Multi-Homing"> <t> Notenumbered="true" toc="default"> <name>Single-Active Multihoming</name> <t>Note that to facilitate state synchronization after failover, the PEs attached to a multihomed ES operating in Single-Active redundancy modeSHOULD<bcp14>SHOULD</bcp14> also coordinate the IGMP Membership Report (x,G) state. In thiscasecase, all IGMP Membership Report messages are received by the DF and distributed to the non-DF PEs using the procedures described above. </t> </section> <sectiontitle="Selectivenumbered="true" toc="default"> <name>Selective Multicast Procedures for IRtunnels"> <t> IfTunnels</name> <t>If an ingress PE uses ingress replication, then for a given (x,G) group in a given BD:<list style="numbers"> <t> It</t> <ol spacing="normal" type="1"> <li>It sends (x,G) traffic to the set of PEs not supporting IGMP or MLDProxy.Proxies. This set consists of any PE that has advertised anIMETInclusive 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.</t> <t> It</li> <li>It sends (x,G) traffic to the set of PEs supporting IGMP or MLDProxyProxies andhavinghas 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.</t> </list> </t></li> </ol> </section> <sectiontitle="BGP Encoding" anchor="bgp-encoding"> <t> Thisanchor="bgp-encoding" numbered="true" toc="default"> <name>BGP Encoding</name> <t>This document defines three new BGP EVPN routes to carry IGMP Membership Reports. The route types are known as: </t><t> + 6 - Selective<dl newline="false" spacing="normal"> <dt>6 -</dt> <dd>Selective Multicast Ethernet Tag Route</t> <t> + 7 - Multicast</dd> <dt>7 -</dt> <dd>Multicast Membership Report Synch Route</t> <t> + 8 - Multicast</dd> <dt>8 -</dt> <dd>Multicast Leave Synch Route</t> <t> The</dd> </dl> <t>The detailed encoding and procedures for these route types are described in subsequent sections. </t> <sectiontitle="Selective Multicast Ethernet Tag Route" anchor="SMET"> <t> A Selectiveanchor="SMET" numbered="true" toc="default"> <name>Selective Multicast Ethernet Tagroute type specificRoute</name> <t>A SMET route-type-specific EVPN NLRI consists of the following: </t><figure ><artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ +---------------------------------------+ | 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></figure> <t> For<t>For the purpose of BGP route key processing, all the fields are considered to be part of the prefix in theNLRINLRI, except for theone- octet flag1-octet Flags field. The Flags fields are defined as follows: </t><figure ><artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ 0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ | reserved |IE|v3|v2|v1| +--+--+--+--+--+--+--+--+ ]]></artwork></figure> <t> <list style="symbols"> <t> The<ul spacing="normal"> <li>The least significantbit,bit7(bit 7) indicates support for IGMP version 1. SinceIGMP V1IGMPv1 is beingdeprecateddeprecated, the senderMUST<bcp14>MUST</bcp14> set itasto 0 for IGMP and the receiverMUST<bcp14>MUST</bcp14> ignore it.</t> <t> The</li> <li>The second least significantbit,bit6(bit 6) indicates support for IGMP version 2.</t> <t> The</li> <li>The third least significantbit,bit5(bit 5) indicates support for IGMP version 3.</t> <t> The</li> <li>The fourth least significantbit,bit4(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 bitMUST<bcp14>MUST</bcp14> be ignored if bit 5 is not set.</t> <t> This</li> <li>This EVPN route type is used to carry tenant IGMP multicast group information. TheflagFlags 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.</t> <t> The include/exclude (IE)</li> <li>The IE bit helps in creating filters for a given multicast route.</t> <t> If</li> <li>If the route is used for IPv6(MLD)(MLD), then bit 7 indicates support for MLD version 1. The second least significantbit,bit6(bit 6) indicates support for MLD version 2. Since there is no MLD version 3, in case of IPv6routeroutes, the third least significant bitMUST<bcp14>MUST</bcp14> be 0. In case of IPv6 routes, the fourth least significant bitMUST<bcp14>MUST</bcp14> be ignored if bit 6 is not set.</t> <t></li> <li> Reserved bitsMUST<bcp14>MUST</bcp14> be set to 0 bysender. Andthe sender, and the receiverMUST<bcp14>MUST</bcp14> ignore the Reserved bits.</t> </list> </t></li> </ul> <sectiontitle="Constructingnumbered="true" toc="default"> <name>Constructing the Selective Multicast Ethernet Tagroute"> <t> ThisRoute</name> <t>This section describes the procedures used to construct theSelective Multicast Ethernet Tag (SMET)SMET route. </t><t> The<t>The Route Distinguisher (RD)SHOULD<bcp14>SHOULD</bcp14> be a Type 1 RD <xreftarget="RFC4364"/>.target="RFC4364" format="default"/>. The value field comprises an IP address of the PE (typically, the loopbackaddress)address), followed by a number unique to the PE. </t><t> The<t>The Ethernet Tag IDMUST<bcp14>MUST</bcp14> besetset, as per the procedure defined in <xreftarget="RFC7432"/>.target="RFC7432" format="default"/>. </t><t> The<t>The Multicast Source LengthMUST<bcp14>MUST</bcp14> be set to the length of themulticastMulticast SourceaddressAddress 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> The<t>The Multicast Source Address is the source IP address from the IGMP Membership Report. In case of a(*,G),(*,G) Membership Report, this field is not used. </t><t> The<t>The Multicast Group LengthMUST<bcp14>MUST</bcp14> be set to the length ofmulticast group addressthe 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> The<t>The Multicast Group Address is theGroupgroup address from the IGMP or MLD Membership Report. </t><t> The<t>The Originator Router Length is the length of the Originator Router Address in bits. </t><t> The<t>The Originator Router Address is the IP address of the router originating this route. The SMET Originator Router IP addressMUST<bcp14>MUST</bcp14> match that of the IMET (or S-PMSIAD)Authentic Data (AD)) route originated for the same EVI by the same downstream PE. </t><t> The<t>The Flags field indicates the version of IGMP protocol from which the Membership Report was received. It also indicates whether the multicast group had the INCLUDE or EXCLUDE bit set. </t> <t> Reserved bitsMUST<bcp14>MUST</bcp14> be set to 0. They can be definedin futureby otherdocument.documents in the future. </t><t><!--[rfced] Does "ToRs" stand for "Top-of-the-Rack (ToR) switches"? If not, please let us know how to expand this term. Original: IGMP is used to receive group membership information from hosts by ToRs. Perhaps: IGMP is used to receive group membership information from hosts byTORs.Top-of-the-Rack (ToR) switches. --> <t>IGMP is used to receive group membership information from hosts by ToRs. Upon receiving thehostshost's expression of interestofin a particular group membership, this information is then forwarded using the SMET route. The NLRI also keeps track of the receiver's IGMP protocol version and any source filtering for a given group membership. All EVPN SMET routes are announcedwith per-per EVI Route Target extendedcommunities.communities (EVI-RT ECs). </t> </section> <sectiontitle="Reconstructing IGMP / MLDnumbered="true" toc="default"> <name>Reconstructing IGMP/MLD Membership Reports from the Selective MulticastRoute">Route</name> <t> This section describes the procedures used to reconstructIGMP / MLDIGMP/MLD Membership Reports from the SMET route. </t><t> <list style="symbols"> <t><ul spacing="normal"> <li> Ifmulticast group lengththe Multicast Group Length is 32, the route would be translated to the IGMP membership request. Ifmulticast group lengththe Multicast Group Length is 128, the route would be translated to an MLD membership request.</t> <t></li> <li>The Multicastgroup addressGroup Address field would be translated toIGMP / MLDthe IGMP/MLD groupaddress. </t> <t>address.</li> <li> If the Multicastsource lengthSource Length is set tozero0, it would be translated to any source (*). Ifmulticast source lengththe Multicast Source Length isnon zero,non-zero, the Multicastsource addressSource Address field would be translated toIGMP / MLDthe IGMP/MLD sourceaddress. </t> <t>address.</li> <li> If flag bit 7 is set, it translates the Membership report to beIGMP V1IGMPv1 orMLD V1. </t> <t>MLDv1.</li> <li> If flag bit 6 is set, it translates the Membership report to beIGMP V2IGMPv2 orMLD V2. </t> <t>MLDv2.</li> <li> Flag bit 5 is only valid for the IGMP Membershipreport andreport; if it is set, it translates toIGMP V3 report. </t> <t>the IGMPv3 report.</li> <li> If the IE flag is set, ittranslatetranslates toIGMP / MLDthe IGMP/MLD Exclude mode membership report. If the IE flag is not set(zero),(0), it translates to the Include mode membership report.</t> </list> </t></li> </ul> </section> <sectiontitle="Defaultnumbered="true" toc="default"> <name>Default Selective MulticastRoute"> <t> IfRoute</name> <t>If there is a multicast router connected behind the EVPN domain, the PEMAY<bcp14>MAY</bcp14> originate a default SMET (*,*) to get all multicast traffic indomain. </t>the domain.</t> <figure>anchor="EVPN-domain"> <name>Multicast Router behind the EVPN Domain</name> <artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ +--------------+ | | | | | | +----+ | | | |---- H1(*,G1)v2 | IP/MPLS | | PE1|---- H2(S2,G2)v3 | Network | | |---- S2 | | | | | | +----+ | | +----+ | | +----+ | | | | | | S1 ---| PE2| | | |PIM |----R1 ---| | | | |ASM | +----+ | | | | | | +----+ +--------------+Figure 2: Multicast Router behind EVPN domain]]></artwork> </figure><t> Consider<t>Consider the EVPN networkof Figure-2,in <xref target="EVPN-domain"/>, 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 ASMnetworknetwork, the PIM Join would be forwarded to the PIMRP (Rendezvous Point).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 thiscasecase, PE2MUST<bcp14>MUST</bcp14> originate a (*,*) SMET route to receive all of the multicast traffic in the EVPN domain. To generateWildcardswildcard (*,*) routes, the procedure from <xreftarget="RFC6625"/> MUSTtarget="RFC6625" format="default"/> <bcp14>MUST</bcp14> beused. </t>used.</t> </section> </section> <sectiontitle="Multicastnumbered="true" toc="default"> <name>Multicast Membership Report SynchRoute"> <t> ThisRoute</name> <t>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 inAll- ActiveAll-Active (or Single-Active) redundancymodemode, and it consists offollowing: </t> <figure >the following:</t> <artwork><![CDATA[ +--------------------------------------------------+name="" type="" align="center" alt=""><![CDATA[+--------------------------------------------------+ | 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></figure> <t> For<t>For the purpose of BGP route key processing, all the fields are considered to be part of the prefix in theNLRINLRI, except for theone- octet1-octet Flags field, whose fields are defined asfollows: </t> <figure >follows:</t> <artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ 0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ | reserved |IE|v3|v2|v1| +--+--+--+--+--+--+--+--+ ]]></artwork></figure> <t> <list style="symbols"> <t><ul spacing="normal"> <li> The least significantbit,bit7(bit 7) indicates support for IGMP version 1.</t> <t></li> <li> The second least significantbit,bit6(bit 6) indicates support for IGMP version 2.</t> <t></li> <li> The third least significantbit,bit5(bit 5) indicates support for IGMP version 3.</t> <t></li> <li> The fourth least significantbit,bit4(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 bitMUST<bcp14>MUST</bcp14> be ignored if bit 5 is not set.</t> <t></li> <li> Reserved bitsMUST<bcp14>MUST</bcp14> be set to0. </t> </list> </t> <t> The0.</li> </ul> <t>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 multicastroute. </t> <t> Ifroute.</t> <t>If the route is being prepared for IPv6(MLD)(MLD), then bit 7 indicates support for MLD version 1. The second least significantbit,bit6(bit 6) indicates support for MLD version 2. Since there is no MLD version 3, in case of the IPv6routeroute, the third least significant bitMUST<bcp14>MUST</bcp14> be 0. In case of the IPv6 route, the fourth least significant bitMUST<bcp14>MUST</bcp14> be ignored if bit 6 is notset. </t>set.</t> <sectiontitle="Constructingnumbered="true" toc="default"> <name>Constructing the Multicast Membership Report SynchRoute"> <t> ThisRoute</name> <t>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 itMUST NOT<bcp14>MUST NOT</bcp14> indicate that it supports'IGMP proxy'"IGMP proxy" in the MulticastFlagFlags extended community for the EVIs corresponding to itsmulti-homed Ethernet Segments (ESs). </t> <t> Anmultihomed ESs.</t> <t>An IGMP Membership Report Synch routeMUST<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. ItMUST<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 <xreftarget="evi-rt"/>target="evi-rt" format="default"/> for details on how to encode and construct the EVI-RTEC. </t> <t> The Route Distinguisher (RD) SHOULDEC.</t> <t>The RD <bcp14>SHOULD</bcp14> beaType 1RD<xreftarget="RFC4364"/>.target="RFC4364" format="default"/>. The value field comprises an IP address of the PE (typically, the loopbackaddress)address), followed by a number unique to thePE. </t> <t> ThePE.</t> <t>The Ethernet Segment Identifier (ESI)MUST<bcp14>MUST</bcp14> be set to the 10-octet value defined for theES. </t> <t> TheES.</t> <t>The Ethernet Tag IDMUST<bcp14>MUST</bcp14> besetset, as per the procedure defined in <xreftarget="RFC7432"/>. </t> <t> Thetarget="RFC7432" format="default"/>.</t> <t>The Multicast Sourcelength MUSTLength <bcp14>MUST</bcp14> be set to the length of the Multicast SourceaddressAddress 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 to0. </t> <t> The0.</t> <t>The Multicast Source is the Source IP address of the IGMP Membership Report. In case of a (*,G) Membership Report, this field does notexist. </t> <t> Theexist.</t> <t>The Multicast Grouplength MUSTLength <bcp14>MUST</bcp14> be set to the length ofmulticast group addressthe 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 is128. </t> <t> The128.</t> <t>The Multicast Group is theGroupgroup address of the IGMP MembershipReport. </t> <t> TheReport.</t> <t>The Originator Router Length is the length of the Originator RouteraddressAddress inbits. </t> <t> Thebits.</t> <t>The Originator Router Address is the IP address ofRouter Originatingtheprefix. </t> <t> Therouter originating the prefix.</t> <t>The Flags field indicates the version of IGMP protocol from which the Membership Report was received. It also indicates whether the multicast group had the INCLUDE or EXCLUDE bitset. </t>set.</t> <t> Reserved bitsMUST<bcp14>MUST</bcp14> be set to0. </t>0.</t> </section> <sectiontitle="Reconstructing IGMP / MLDnumbered="true" toc="default"> <name>Reconstructing IGMP/MLD Membership Reports from a Multicast Membership ReportSync Route">Synch Route</name> <t> This section describes the procedures used to reconstructIGMP / MLDIGMP/MLD Membership Reports from the Multicast Membership ReportSync route. </t> <t> <list style="symbols"> <t>Synch route.</t> <ul spacing="normal"> <li> Ifmulticast group lengththe Multicast Group Length is 32, the route would be translated to the IGMP membership request. Ifmulticast group lengththe Multicast Group Length is 128, the route would be translated to an MLD membership request.</t> <t></li> <li> The Multicastgroup addressGroup Address field would be translated toIGMP / MLDthe IGMP/MLD groupaddress. </t> <t>address.</li> <li> If the Multicastsource lengthSource Length is set tozero0, it would be translated to any source (*). Ifmulticast source lengththe Multicast Source Length isnon zero,non-zero, the Multicastsource addressSource Address field would be translated toIGMP / MLDthe IGMP/MLD sourceaddress. </t> <t>address.</li> <li> If flag bit 7 is set, it translates the Membership report to beIGMP V1IGMPv1 orMLD V1. </t> <t>MLDv1.</li> <li> If flag bit 6 is set, it translates the Membership report to beIGMP V2IGMPv2 orMLD V2. </t> <t>MLDv2.</li> <li> Flag bit 5 is only valid for the IGMP Membershipreport andreport; if it is set, it translates toIGMP V3 report. </t> <t>the IGMPv3 report.</li> <li> If the IE flag is set, ittranslatetranslates toIGMP / MLDthe IGMP/MLD Exclude mode membership report. If the IE flag is not set(zero),(0), it translates to the Include mode membership report.</t> </list> </t></li> </ul> </section> </section> <sectiontitle="Multicastnumbered="true" toc="default"> <name>Multicast Leave SynchRoute"> <t> ThisRoute</name> <t>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) redundancymodemode, and it consists offollowing: </t> <figure >the following:</t> <artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ +--------------------------------------------------+ | 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 (4octet)octets) | +--------------------------------------------------+ | Maximum Response Time (1 octet) | +--------------------------------------------------+ | Flags (1 octet) | +--------------------------------------------------+ ]]></artwork></figure> <t> For<t>For the purpose of BGP route key processing, all the fields are considered to be part of the prefix in theNLRINLRI, except for the Reserved, Maximum ResponseTimeTime, andthe one-octet1-octet Flagsfield, whose fieldsfields, which are defined asfollows: </t> <figure >follows:</t> <artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ 0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ | reserved |IE|v3|v2|v1| +--+--+--+--+--+--+--+--+ ]]></artwork></figure> <t> <list style="symbols"> <t><ul spacing="normal"> <li> The least significantbit,bit7(bit 7) indicates support for IGMP version 1.</t> <t></li> <li> The second least significantbit,bit6(bit 6) indicates support for IGMP version 2.</t> <t></li> <li> The third least significantbit,bit5(bit 5) indicates support for IGMP version 3.</t> <t></li> <li> The fourth least significantbit,bit4(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 bitMUST<bcp14>MUST</bcp14> be ignored if bit 5 is not set.</t> <t></li> <li> Reserved bitsMUST<bcp14>MUST</bcp14> be set to 0. They can be definedin futureby otherdocument. </t> </list> </t> <t> Thedocuments in the future. </li> </ul> <t>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 multicastroute. </t> <t> Ifroute.</t> <t>If the route is being prepared for IPv6(MLD)(MLD), then bit 7 indicates support for MLD version 1. The second least significantbit,bit6(bit 6) indicates support for MLD version 2. Since there is no MLD version 3, in case of the IPv6routeroute, the third least significant bitMUST<bcp14>MUST</bcp14> be 0. In case of the IPv6 route, the fourth least significant bitMUST<bcp14>MUST</bcp14> be ignored if bit 6 is notset. </t>set.</t> <t> Reserved bits in the flagMUST<bcp14>MUST</bcp14> be set to 0. They can be definedin futureby otherdocument.documents in the future. </t> <sectiontitle="Constructingnumbered="true" toc="default"> <name>Constructing the Multicast Leave SynchRoute"> <t> ThisRoute</name> <t>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 itMUST NOT<bcp14>MUST NOT</bcp14> indicate that it supports'IGMP proxy'"IGMP proxy" in the MulticastFlagFlags extended community for the EVIs corresponding to itsmulti-homedmultihomed EthernetSegments. </t> <t> AnSegments.</t> <t>An IGMP Leave Synch routeMUST<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. ItMUST<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. SeeSection 9.5<xref target="evi-rt"/> for details on how to form the EVI-RTEC. </t> <t> The Route Distinguisher (RD) SHOULDEC.</t> <t>The RD <bcp14>SHOULD</bcp14> beaType 1RD<xreftarget="RFC4364"/>.target="RFC4364" format="default"/>. The value field comprises an IP address of the PE (typically, the loopbackaddress)address), followed by a number unique to thePE. </t> <t> The Ethernet Segment Identifier (ESI) MUSTPE.</t> <t>The ESI <bcp14>MUST</bcp14> be set to the 10-octet value defined for theES. </t> <t> TheES.</t> <t>The Ethernet Tag IDMUST<bcp14>MUST</bcp14> besetset, as per the procedure defined in <xreftarget="RFC7432"/>. </t> <t> Thetarget="RFC7432" format="default"/>.</t> <t>The Multicast Sourcelength MUSTLength <bcp14>MUST</bcp14> be set to the length ofmulticast source addressthe 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 to0. </t> <t> The0.</t> <t>The Multicast Source is the Source IP address of the IGMP Membership Report. In case of a (*,G) Membership Report, this field does notexist. </t> <t> Theexist.</t> <t>The Multicast Grouplength MUSTLength <bcp14>MUST</bcp14> be set to the length ofmulticast group addressthe 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 is128. </t> <t> The128.</t> <t>The Multicast Group is theGroupgroup address of the IGMP MembershipReport. </t> <t> TheReport.</t> <t>The Originator Router Length is the length of the Originator RouteraddressAddress inbits. </t> <t> Thebits.</t> <t>The Originator Router Address is the IP address ofRouter Originatingtheprefix. </t>router originating the prefix.</t> <t> The Reserved field is not part of the route key. The originatorMUST<bcp14>MUST</bcp14> set thereservedReserved field toZero ,0; the receiverSHOULD<bcp14>SHOULD</bcp14> ignoreitit, and if it needs to be propagated, itMUST<bcp14>MUST</bcp14> propagate itunchanged </t>unchanged.</t> <t> The Maximum Response Time is the value to be used while sendingquerya query, as defined in <xreftarget="RFC2236"/> </t> <t> Thetarget="RFC2236" format="default"/>.</t> <t>The Flags field indicates the version of IGMP protocol from which the Membership Report was received. It also indicates whether the multicast group had an INCLUDE or EXCLUDE bitset. </t>set.</t> </section> <sectiontitle="Reconstructing IGMP / MLDnumbered="true" toc="default"> <name>Reconstructing IGMP/MLD Leave from a Multicast LeaveSync Route"> <t> ThisSynch Route</name> <t>This section describes the procedures used to reconstructIGMP / MLDIGMP/MLD Leave from the Multicast LeaveSync route. </t> <t> <list style="symbols"> <t>Synch route.</t> <!--[rfced] In Section 9.3.2, we notice mixed tense in the list of procedures, i.e., "would be translated" vs. "it translates to". May we update this list to reflect the present tense? Only the first three bullets would be updated as follows: Original: * Ifmulticast group lengththe Multicast Group Length is 32, the route would be translated to IGMP Leave. Ifmulticast group lengththe Multicast Group Length is 128, the route would be translated to MLD Leave.</t> <t>* The Multicastgroup addressGroup Address field would be translated toIGMP /an IGMP/ MLD group address.</t> <t>* If the Multicastsource lengthSource Length is set tozero0, it would be translated to any source (*). Ifmulticast source lengththe Multicast Source Length is non zero, the Multicastsource addressSource Address field would be translated to the IGMP/MLD source address. Perhaps: * 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. * The Multicast Group Address field is translated to an IGMP/ MLD group address. * 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.</t> <t>--> <ul spacing="normal"> <li> If the Multicast Group Length is 32, the route would be translated to IGMP Leave. If the Multicast Group Length is 128, the route would be translated to MLD Leave. </li> <li> The Multicast Group Address field would be translated to an IGMP/MLD group address.</li> <li> If the Multicast Source Length is set to 0, it would be translated to any source (*). If the Multicast Source Length is non-zero, the Multicast Source Address field would be translated to the IGMP/MLD source address.</li> <li> If flag bit 7 is set, it translates the Membership report to beIGMP V1IGMPv1 orMLD V1. </t> <t>MLDv1.</li> <li> If flag bit 6 is set, it translates the Membership report to beIGMP V2IGMPv2 orMLD V2. </t> <t>MLDv2.</li> <li> Flag bit 5 is only valid for the IGMP Membershipreport andreport; if it is set, it translates toIGMP V3 report. </t> <t>the IGMPv3 report.</li> <li> If the IE flag is set, ittranslatetranslates toIGMP / MLDthe IGMP/MLD Exclude mode Leave. If the IE flag is not set(zero),(0), it translates to the Include mode Leave.</t> <t> </t> </list> </t></li> </ul> </section> </section> <sectiontitle="Multicastnumbered="true" toc="default"> <name>Multicast Flags ExtendedCommunity"> <t> The 'Multicast Flags'Community</name> <t>The Multicast Flags extended community is a new EVPN extended community. EVPN extended communities are transitive extended communities with a Typefield valueValue of6.0x06. IANAwill assign a Sub-Type fromhas assigned 0x09 to Multicast Flags Extended Community in the'EVPN"EVPN Extended CommunitySub-Types' registry. </t> <t> ASub-Types" subregistry.</t> <t>A PE that supports IGMP and/or the MLD Proxy on a given BDMUST<bcp14>MUST</bcp14> attach this extended community to the IMET route it advertisesadvertisesfor thatBDBD, and itMUST<bcp14>MUST</bcp14> set the IGMP and/or MLD Proxy Support flags to 1. Note thatan <xref target="RFC7432"/> complianta PE compliant with <xref target="RFC7432" format="default"/> will not advertise this extendedcommunitycommunity, so its absence indicates that the advertising PE does not support either IGMP or MLDProxy. </t> <t> TheProxies.</t> <t>The advertisement of this extended community enables a more efficient multicast tunnel setup from the source PE specially for ingressreplication -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 extendedcommunitycommunity, 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 suchcapabilitycapability, even if they don't have any interests in that(x,G). </t> <t> A(x,G).</t> <t>A Multicast Flags extended community is encoded as an 8-octetvalue,value asfollows: </t> <figure >follows:</t> <artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ 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></figure> <t> The<t>The low-order(lease(least significant)two2 bits are defined as the "IGMP ProxySupportSupport" andMLD"MLD Proxy Support"bit.bits (see <xref target="multicast_flags_extended_community"/>. The absence of this extended community also means that the PE does not support the IGMPproxy. where: </t> <t> <list style="symbols"> <t>proxy, where:</t> <ul spacing="normal"> <li> The Type is0x060x06, as registered with IANA for EVPN Extended Communities.</t> <t></li> <li> The Sub-Type: 0x09</t> <t> Flags are two Octets value. <list style="symbols"> <t>is 0x09.</li> <li> <t>Flags are 2-octet values.</t> <ul spacing="normal"> <li> Bit 15 (shown as I) defines IGMP Proxy Support.ValueThe value of 1 for bit 15 means that the PE supports the IGMP Proxy.ValueThe value of 0 for bit 15 means that the PE does notsupportssupport the IGMPProxy.</t> <t>BitProxy.</li> <li>Bit 14 (shown as M) defines MLD Proxy Support.ValueThe value of 1 for bit 14 means that the PE supports the MLD Proxy.ValueThe value of 0 for bit 14 means that the PE does not support the MLD proxy.</t> <t>Bit</li> <li>Bits 0 to 13 are reserved for the future.Sender MUSTThe sender <bcp14>MUST</bcp14> set it0to 0, and the receiverMUST<bcp14>MUST</bcp14> ignore it.</t> </list> </t> <t></li> </ul> </li> <li> Reserved bits are set to 0.Sender MUSTThe sender <bcp14>MUST</bcp14> set it to00, and the receiverMUST<bcp14>MUST</bcp14> ignoreit.</t> </list> </t>it.</li> </ul> <t> If a router does not support this specification, itMUST NOT<bcp14>MUST NOT</bcp14> add the Multicast Flags Extended Community in the BGP route.AWhen a routerreceivingreceives a BGP update, if both M and Iboth flagflags arezero (0),0, the routerMUST<bcp14>MUST</bcp14> treat thisUpdateupdate as malformed.ReceiverThe receiver of such an updateMUST<bcp14>MUST</bcp14> ignore the extended community. </t> </section> <sectiontitle="EVI-RTanchor="evi-rt" numbered="true" toc="default"> <name>EVI-RT ExtendedCommunity" anchor="evi-rt"> <t> InCommunity</name> <t>In EVPN, every EVI is associated with one or more RouteTargets (RTs).Targets. TheseRoute TargetsRTs serve twofunctions: <list style="numbers"> <t> Distributionfunctions:</t> <ol spacing="normal" type="1"> <li>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 EVIexists. </t> <t> EVIexists.</li> <li>EVI identification: Once a route has been received by a particular PE, the RT is used to identify the EVI to which itapplies. </t> </list> </t> <t> Anapplies.</li> </ol> <t>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.ThereforeTherefore, these routes carry the ES-Import RT for thatES. </t> <t> SinceES.</t> <t>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 beused. </t> <t> Thisused.</t> <t>This document specifies four newExtended Communities (EC)ECs that can be used to identify the EVI with which a route isassociated,associated butwhichdo not have any effect on the distribution of the route. These new ECs are known asthe"Type 0 EVI-RT EC",the"Type 1 EVI-RT EC",the"Type 2 EVI-RT EC", andthe"Type 3 EVI-RTEC". <list style="numbers"> <t>EC".</t> <ol spacing="normal" type="1"> <li> A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type0xA.</t> <t>0xA.</li> <li> A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type0xB.</t> <t>0xB.</li> <li> A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type0xC.</t> <t>0xC.</li> <li> A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type0xD</t> </list> </t> <t> Each0xD</li> </ol> <t>Each IGMP Membership Report Synch or IGMP Leave Synch routeMUST<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: <list style="symbols"> <t> 0.Then:</t> <!--[rfced] For consistency, we updated "Two-Octet" and "Four-Octet" to "2-octet" and "4-octet". Please let us know of any objections. Original: * If RT1 is a Transitive Two-Octet AS-specific EC, then theEVI- RTEVI-RT EC carried by the route is a Type 0 EVI-RT EC. * If RT1 is a Transitive Four-Octet-specific EC, then the EVI-RT EC carried by the route is a Type 2 EVI-RT EC. Perhaps: * If RT1 is a Transitive 2-octet AS-specific EC, then the EVI-RT EC carried by the route is a Type 0 EVI-RT EC. * If RT1 is a Transitive 4-octet-specific EC, then the EVI-RT EC carried by the route is a Type 2 EVI-RT EC. --> <ul spacing="normal"> <li>If RT1 is a Transitive 2-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.</t> <t> 1. If</li> <li>If RT1 is a Transitive IPv4-Address-specific EC, then theEVI- RTEVI-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.</t> <t> 2. If</li> <li>If RT1 is a TransitiveFour-Octet-specific4-octet-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 ofRT1.</t> <t> 3. IfRT1.</li> <li>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 ofRT1. </t> </list> </t> <t> AnRT1.</li> </ul> <t>An IGMP Membership Report Synch or Leave Synch routeMUST<bcp14>MUST</bcp14> carry exactly one EVI-RTEC. </t> <t> SupposeEC.</t> <t>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-RTEC,EC or has more than one EVI-RT EC, the PEMUST<bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedureofper <xreftarget="RFC7606"/>. </t> <t> Notetarget="RFC7606" format="default"/>.</t> <t>Note that an EVI-RT EC is not a Route TargetExtended Community,extended community, is not visible to the RT Constrain mechanism <xreftarget="RFC4684"/>,target="RFC4684" format="default"/>, and is not intended to influence the propagation of routes byBGP. </t> <figure >BGP.</t> <artwork><![CDATA[name="" type="" align="center" alt=""><![CDATA[ 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></figure> <t> Where the<t>The value of'n'"n" is 0x0A, 0x0B, 0x0C, or0x0D0x0D, corresponding to EVI-RTtypetypes 0, 1, 2, or3 respectively. </t>3, respectively.</t> </section> <sectiontitle="Rewritingnumbered="true" toc="default"> <name>Rewriting of RT ECs and EVI-RT ECs byASBRs"> <t>ASBRs</name> <!-- Note: text updated per mail from John E Drake <jdrake@juniper.net> on 5/18/2022. --> <!-- [rfced] AD, Section 9.6 was updated per a request from the author. Please review and let us know if the changes are approved. Note that you can also view the changes in the diff files. Original: 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 some such situations, 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 provisioned with a policy that removes the RTs that are meaningful in AS1 and replaces them with the corresponding (i.e., RTs corresponding to the same EVIs) RTs that are meaningful in AS2. This is known asRT-rewriting. </t> <t>RT- rewriting. Note that if a given route's RTs are rewritten, and the route carries an EVI-RT EC, the EVI-RT EC needs to be rewritten as well.</t>Current: 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. If an ASBR is configured to perform RT-rewriting of the EVI RTs in EVPN routes, it MUST be configured to perform RT-rewriting of the corresponding EVI-RT extended communities in IGMP Join Synch and IGMP Leave Synch Routes. --> <t>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>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> <sectiontitle="BGPnumbered="true" toc="default"> <name>BGP ErrorHandling"> <t> IfHandling</name> <t>If a received BGP update contains Flags not in accordance with the IGMP/MLD version-X expectation, the PEMUST<bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedureasper <xreftarget="RFC7606"/> </t> <t> Iftarget="RFC7606" format="default"/>.</t> <t>If a received BGP update is malformed such that BGP route keys cannot be extracted, then the BGP updateMUST<bcp14>MUST</bcp14> be consideredasinvalid.ReceivingThe receiving PEMUST<bcp14>MUST</bcp14> apply the"Session"session reset" procedureofper <xreftarget="RFC7606"/>. </t>target="RFC7606" format="default"/>.</t> </section> </section> <sectiontitle="IGMPnumbered="true" toc="default"> <name>IGMP Version 1 MembershipReport"> <t> ThisReport</name> <t>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 consideredinvalidinvalid, and the PEMUST<bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedureasper <xreftarget="RFC7606"/>. </t>target="RFC7606" format="default"/>.</t> </section> <sectiontitle="Security Considerations"> <t> Thisnumbered="true" toc="default"> <name>Security Considerations</name> <t>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 BGPsubstratesubstrates are described in <xreftarget="RFC7432"/>,target="RFC7432" format="default"/>, and specific multicast considerations are outlined in <xreftarget="RFC6513"/>target="RFC6513" format="default"/> and <xreftarget="RFC6514"/>.target="RFC6514" format="default"/>. <!--[rfced] As RFC 3376 specifies IGMPv3, may we update this sentence as follows? Original: The EVPN and associated IGMP proxy provides a single broadcast domain so the same security considerations of IGMPv2 [RFC2236], [RFC3376], MLD [RFC2710], or MLDv2 [RFC3810] apply. Perhaps: The EVPN and associated IGMP proxy provides a single broadcast domain so the same security considerations of IGMPv2 [RFC2236], IGMPv3 [RFC3376], MLD [RFC2710], or MLDv2 [RFC3810] apply. --> The EVPN and associated IGMP proxy provides a single broadcast domain so the same security considerations of IGMPv2 <xreftarget="RFC2236"/>,target="RFC2236" format="default"/> <xreftarget="RFC3376"/>,target="RFC3376" format="default"/>, MLD <xreftarget="RFC2710"/>,target="RFC2710" format="default"/>, or MLDv2 <xreftarget="RFC3810"/> apply. </t>target="RFC3810" format="default"/> apply.</t> </section> <sectiontitle="IANA Considerations"> <section title="EVPNnumbered="true" toc="default"> <name>IANA Considerations</name> <section numbered="true" toc="default"> <name>EVPN Extended Community Sub-TypesRegistrations"> <t> IANARegistration</name> <t>IANA has allocated the following codepointsfromin theEVPN"EVPN Extended CommunitySub-Types sub-registry ofSub-Types" subregistry under theBGP"Border Gateway Protocol (BGP) ExtendedCommunitiesCommunities" registry. </t><figure> <artwork ><![CDATA[ 0x09 Multicast Flags<table> <name>EVPN Extended Community[this document] 0x0A EVI-RTSub-Types Subregistry Allocated Codepoints</name> <thead> <tr> <th>Sub-Type Value</th> <th>Name</th> <th>Reference</th> </tr> </thead> <tbody> <tr> <td>0x09</td> <td>Multicast Flags Extended Community</td> <td>RFC 9251</td> </tr> <tr> <td>0x0A</td> <td>EVI-RT Type0 [this document] 0x0B EVI-RT0</td> <td>RFC 9251</td> </tr> <tr> <td>0x0B</td> <td>EVI-RT Type1 [this document] 0x0C EVI-RT1</td> <td>RFC 9251</td> </tr> <tr> <td>0x0C</td> <td>EVI-RT Type2 [this document] ]]></artwork> </figure> <t> IANA is requested to allocate a new codepoint from the EVPN Extended Community sub-types registry for the following. </t> <figure> <artwork ><![CDATA[ 0x0D EVI-RT2</td> <td>RFC 9251</td> </tr> <tr> <td>0x0D</td> <td>EVI-RT Type3 [this document] ]]></artwork> </figure>3</td> <td>RFC 9251</td> </tr> </tbody> </table> </section> <sectiontitle="EVPNnumbered="true" toc="default"> <name>EVPN RouteType Registration"> <t> IANATypes Registration</name> <t>IANA has allocated the following EVPN route typesfromin theEVPN"EVPN RouteType registry. </t> <figure> <artwork ><![CDATA[ 6 - SelectiveTypes" subregistry.</t> <dl newline="false" spacing="normal"> <dt>6 -</dt> <dd>Selective Multicast Ethernet TagRoute 7 - MulticastRoute</dd> <dt>7 -</dt> <dd>Multicast Membership Report SynchRoute 8 -Route</dd> <dt>8 -</dt> <dd> Multicast Leave SynchRoute ]]></artwork> </figure>Route</dd> </dl> </section> <sectiontitle="Multicastanchor="multicast_flags_extended_community" numbered="true" toc="default"> <name>Multicast Flags Extended CommunityRegistry"> <t> The MulticastRegistry</name> <t>IANA has created and now maintains a new subregistry called "Multicast Flags ExtendedCommunity contains aCommunity" under the "Border Gateway Protocol (BGP) Extended Communities" registry. The registration procedure is First Come First Served <xref target="RFC8126"/>. For the 16-bit Flagsfield. Thefield, the bits are numbered 0-15, fromhigh-orderhigh order tolow-order. </t> <figure> <artwork ><![CDATA[low order. The registryshould bewas initialized asfollows: Bit Name Reference Change Controller ---- -------------- ------------- ------------------ 0 - 13 Unassigned 14 MLDfollows:</t> <table> <name>Multicast Flags Extended Community</name> <thead> <tr> <th>Bit</th> <th>Name</th> <th>Reference</th> <th>Change Controller</th> </tr> </thead> <tbody> <tr> <td>0-13</td> <td>Unassigned</td> <td></td> <td></td> </tr> <tr> <td> 14</td> <td>MLD ProxySupport This document. IETF 15 IGMPSupport</td> <td>RFC 9251</td> <td>IETF</td> </tr> <tr> <td> 15</td> <td>IGMP ProxySupport This document IETF The registration policy should be "First Come First Served". ]]></artwork> </figure>Support</td> <td>RFC 9251</td> <td>IETF</td> </tr> </tbody> </table> </section> </section> </middle> <back> <displayreference target="I-D.ietf-bess-evpn-bum-procedure-updates" to="EVPN-BUM"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7432.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3376.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2710.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3810.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7606.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4684.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2236.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6625.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6513.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6514.xml"/> </references> <references> <name>Informative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4541.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/> <!-- draft-ietf-bess-evpn-bum-procedure-updates-14: in MISSREF as of 5/26/22--> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-bess-evpn-bum-procedure-updates.xml"/> </references> </references> <sectiontitle="Acknowledgement"> <t> Thenumbered="false" toc="default"> <name>Acknowledgements</name> <t>The authors would like to thankStephane Litkowski, Jorge Rabadan, Anoop Ghanwani, Jeffrey Haas, Krishna<contact fullname="Stephane Litkowski"/>, <contact fullname="Jorge Rabadan"/>, <contact fullname="Anoop Ghanwani"/>, <contact fullname="Jeffrey Haas"/>, <contact fullname="Krishna MuddenahallyAnanthamurthy, Swadesh AgrawalAnanthamurthy"/>, and <contact fullname="Swadesh Agrawal"/> forreviewingtheir reviews andprovidingvaluablecomment. </t>comments.</t> </section> <sectiontitle="Contributors"> <t> Derek Yeung </t> <t> Arrcus </t> <t> Email: derek@arrcus.com </t>numbered="false" toc="default"> <name>Contributors</name> <contact fullname="Derek Yeung"> <organization>Arrcus</organization> <address> <email>derek@arrcus.com</email> </address> </contact> </section></middle> <!-- *****BACK MATTER ***** --> <back> <references title='Normative References'> <?rfc include='reference.RFC.2119' ?> <?rfc include='reference.RFC.7432' ?> <?rfc include='reference.RFC.3376' ?> <?rfc include='reference.RFC.2710' ?> <?rfc include='reference.RFC.3810' ?> <?rfc include='reference.RFC.7606' ?> <?rfc include='reference.RFC.4684' ?> <?rfc include='reference.RFC.2236' ?> <?rfc include='reference.RFC.8174' ?> <?rfc include='reference.RFC.4364' ?> <?rfc include='reference.RFC.6625' ?> <?rfc include='reference.RFC.6513' ?> <?rfc include='reference.RFC.6514' ?> </references> <references title="Informative References"> <?rfc include='reference.RFC.4541' ?> <?rfc include="reference.I-D.ietf-bess-evpn-bum-procedure-updates"?> </references></back> <!--[rfced] Please review the "Inclusive Language" portion of the online Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> and let us know if any changes are needed. Note that our script did not flag any words in particular, but this should still be reviewed as a best practice. --> <!--[rfced] Throughout the text, the following terminology appears to be used inconsistently. Please review these occurrences and let us know if/how these should be made consistent. - Ethernet Segment vs. Ethernet segment - EVPN Extended Community vs. EVPN extended community [Note that RFC 7432 uses "EVPN Extended Community" (capitalized)] - IGMP/MLD Proxy vs. IGMP/MLD proxy - IGMP Report vs. IGMP report - include/exclude bit vs. INCLUDE or EXCLUDE bit - Membership Report vs. Membership report vs. membership report - Membership Queries vs. membership queries - Membership Request vs. membership request - Multicast Flags extended community vs. Multicast Flags Extended Community [Note that we recommend using "Multicast Flags Extended Community" (capitalized) to match the IANA registry] - proxy reporting vs. Proxy-reporting - route type vs. route-type - Source IP address vs. source IP address --> </rfc>