rfc9251xml2.original.xml   rfc9251.xml 
<?xml version='1.0'?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [ <!DOCTYPE rfc [
]> <!ENTITY nbsp "&#160;">
<?rfc toc="yes"?> <!ENTITY zwsp "&#8203;">
<?rfc tocompact="no"?> <!ENTITY nbhy "&#8209;">
<?rfc tocdepth="6"?> <!ENTITY wj "&#8288;">
<?rfc symrefs="yes"?> ]>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="yes" ?>
<rfc category="std" docName="draft-ietf-bess-evpn-igmp-mld-proxy-21">
<!-- ***** FRONT MATTER ***** -->
<front>
<title abbrev="IGMP and MLD Proxy for EVPN">IGMP and MLD Proxy for EVPN</tit
le>
<author initials="A" surname="Sajassi" <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-i
fullname="Ali Sajassi"> etf-bess-evpn-igmp-mld-proxy-21" obsoletes="" updates="" submissionType="IETF" c
<organization>Cisco Systems</organization> onsensus="true" ipr="trust200902" xml:lang="en" tocInclude="true" tocDepth="6" s
ymRefs="true" sortRefs="true" version="3" number="9251">
<!-- xml2rfc v2v3 conversion 3.12.2 -->
<front>
<title abbrev="IGMP and MLD Proxies for EVPN"> Internet Group Management Pro
tocol (IGMP) and Multicast Listener Discovery (MLD) Proxies for Ethernet VPN (EV
PN)</title>
<seriesInfo name="RFC" value="9251"/>
<author initials="A" surname="Sajassi" fullname="Ali Sajassi">
<organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street>821 Alder Drive,</street> <street>821 Alder Drive</street>
<code>95035</code>
<region>MILPITAS, CALIFORNIA 95035</region> <city>Milpitas</city>
<region>CA</region>
<country>UNITED STATES</country> <country>United States of America</country>
</postal> </postal>
<phone/>
<phone></phone> <email>sajassi@cisco.com</email>
<email>sajassi@cisco.com</email> </address>
</address>
</author> </author>
<author initials="S" surname="Thoria" <author initials="S" surname="Thoria" fullname="Samir Thoria">
fullname="Samir Thoria">
<organization>Cisco Systems</organization> <organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street>821 Alder Drive,</street> <street>821 Alder Drive</street>
<code>95035</code>
<region>MILPITAS, CALIFORNIA 95035</region> <city>Milpitas</city>
<region>CA</region>
<country>UNITED STATES</country> <country>United States of America</country>
</postal> </postal>
<phone/>
<phone></phone> <email>sthoria@cisco.com</email>
<email>sthoria@cisco.com</email> </address>
</address>
</author> </author>
<author initials="M" surname="Mishra" <author initials="M" surname="Mishra" fullname="Mankamana Mishra">
fullname="Mankamana Mishra">
<organization>Cisco Systems</organization> <organization>Cisco Systems</organization>
<address> <address>
<postal> <postal>
<street>821 Alder Drive,</street> <street>821 Alder Drive</street>
<code>95035</code>
<region>MILPITAS, CALIFORNIA 95035</region> <city>Milpitas</city>
<region>CA</region>
<country>UNITED STATES</country> <country>United States of America</country>
</postal> </postal>
<phone/>
<phone></phone> <email>mankamis@cisco.com</email>
<email>mankamis@cisco.com</email> </address>
</address>
</author> </author>
<author initials="K" surname="Patel" fullname="Keyur Patel">
<author initials="K" surname="Patel"
fullname="Keyur PAtel">
<organization>Arrcus</organization> <organization>Arrcus</organization>
<address> <address>
<postal> <postal>
<street></street> <country>United States of America</country>
</postal>
<region></region> <phone/>
<email>keyur@arrcus.com</email>
<country>UNITED STATES</country> </address>
</postal>
<phone></phone>
<email>keyur@arrcus.com</email>
</address>
</author> </author>
<author initials="J" surname="Drake" fullname="John Drake">
<author initials="J" surname="Drake"
fullname="John Drake">
<organization>Juniper Networks</organization> <organization>Juniper Networks</organization>
<address> <address>
<postal> <email>jdrake@juniper.net</email>
<street></street> </address>
<region></region>
<country></country>
</postal>
<phone></phone>
<email>jdrake@juniper.net</email>
</address>
</author> </author>
<author initials="W" surname="Lin" fullname="Wen Lin">
<author initials="W" surname="Lin"
fullname="Wen Lin">
<organization>Juniper Networks</organization> <organization>Juniper Networks</organization>
<address> <address>
<postal> <email>wlin@juniper.net</email>
<street></street> </address>
<region></region>
<country></country>
</postal>
<phone></phone>
<email>wlin@juniper.net</email>
</address>
</author> </author>
<date year="2022" month="May"/>
<date year="2022"/> <area>RTG</area>
<area>Routing</area> <workgroup>BESS</workgroup>
<workgroup>BESS WorkGroup</workgroup>
<abstract> <abstract>
<t>This document describes how to support endpoints running
<t> the Internet Group Management Protocol (IGMP) or Multicast Listener Discov
This document describes how to support efficiently endpoints runn ery (MLD) efficiently
ing for the multicast services over an Ethernet VPN (EVPN) network by incorpor
IGMP(Internet Group Management Protocol) or MLD (Multicast Listen ating
er Discovery) for the multicast services IGMP/MLD Proxy procedures on EVPN Provider Edges (PEs).
over an EVPN network by incorporating </t>
IGMP/MLD proxy procedures on EVPN (Ethernet VPN) PEs.
</t>
</abstract> </abstract>
</front> </front>
<!-- ***** MIDDLE MATTER ***** -->
<middle> <middle>
<section title="Introduction"> <section numbered="true" toc="default">
<name>Introduction</name>
<t> <t>In data center (DC) applications, a point of delivery (POD) can consist
In DC applications, a point of delivery (POD) can consist of of a
a collection of servers supported by several top-of-rack (ToR) and
collection of servers supported by several top of rack (ToR) spine switches. This collection of servers and switches are self-contained
and and may have their own control protocol for intra-POD
spine switches. This collection of servers and switches are communication and orchestration. However, EVPN is used as a standard
self way of inter-POD communication for both intra-DC and inter-DC. A
contained and may have their own control protocol for intra- subnet can span across multiple PODs and DCs. EVPN provides a robust
POD multi-tenant solution with extensive multihoming capabilities to
communication and orchestration. However, EVPN is used as st stretch a subnet (VLAN) across multiple PODs and DCs. There can be
andard many hosts (several hundreds) attached to a subnet that is
way of inter-POD communication for both intra-DC and inter-D stretched across several PODs and DCs.
C. A </t>
subnet can span across multiple PODs and DCs. EVPN provides <t>These hosts express their interests in multicast groups on a
a robust given subnet/VLAN by sending IGMP/MLD Membership Reports for
multi-tenant solution with extensive multi-homing capabiliti their interested multicast group(s). Furthermore, an IGMP/MLD router
es to periodically sends Membership Queries to find out if there are hosts
stretch a subnet (VLAN) across multiple PODs and DCs. There on that subnet that are still interested in receiving multicast
can be traffic for that group. The IGMP/MLD Proxy solution described in this
many hosts (several hundreds) attached to a subnet that is document accomplishes three objectives:
stretched across several PODs and DCs. </t>
<ol spacing="normal" type="1">
</t> <li>Reduce flooding of IGMP/MLD messages: Just like the ARP / Neighbor Di
scovery (ND)
<t> suppression
These hosts express their interests in multicast groups mechanism in EVPN to reduce the flooding of ARP messages over EVPN,
on a it is also desired to have a mechanism to reduce the flooding of IGMP/MLD
given subnet/VLAN by sending IGMP/MLD Membership Reports messages (both Queries and Membership Reports) in EVPN.</li>
for <li>Distributed anycast multicast proxy: It is desirable for the EVPN
their interested multicast group(s). Furthermore, an IGM network to act as a distributed anycast multicast router with respect
P/MLD router to IGMP/MLD Proxy function for all the hosts attached to that
periodically sends membership queries to find out if the subnet.</li>
re are hosts <li>Selective multicast: This describes forwarding multicast traffic ove
on that subnet that are still interested in receiving mu r the EVPN
lticast network such that it only gets forwarded to the PEs that have
traffic for that group. The IGMP/MLD Proxy solution desc interests in the multicast group(s). This document shows how this objecti
ribed in this ve may be achieved
document accomplishes three objectives: when ingress replication is used to distribute the multicast traffic
among the PEs. Procedures for supporting selective multicast using
<list style="numbers"> Point-to-Multipoint (P2MP) tunnels can be found in <xref target="I-D.ietf
<t> -bess-evpn-bum-procedure-updates"
Reduce flooding of IGMP/MLD messages: ju format="default"/>.</li>
st like the ARP/ND suppression </ol>
mechanism in EVPN to reduce the flooding <t>The first two objectives are achieved by using the IGMP/MLD Proxy on th
of ARP messages over EVPN, e
it is also desired to have a mechanism t PE. The third objective is achieved by setting up a multicast
o reduce the flooding of IGMP/MLD tunnel among only the PEs that have
messages (both Queries and Membership Re interest in the multicast group(s) based on the trigger from
ports) in EVPN. IGMP/MLD Proxy processes. The proposed solutions for each of these
</t> objectives are discussed in the following sections.
</t>
<t> </section>
Distributed anycast multicast proxy <section numbered="true" toc="default">
: it is desirable for the EVPN <name>Specification of Requirements</name>
network to act as a distributed any <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
cast multicast router with respect "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp1
to IGMP/MLD proxy function for all 4>",
the hosts attached to that "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED<
subnet. /bcp14>",
</t> "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and
"<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as descri
<t> bed in
Selective Multicast: to forward BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174"
multicast traffic over EVPN format="default"/> when, and only when, they appear in all capitals, as s
network such that it only gets f hown here.
orwarded to the PEs that have </t>
interest in the multicast group( </section>
s). This document shows how this objective may be achieved <section numbered="true" toc="default">
when Ingress Replication is used <name>Terminology</name>
to distribute the multicast traffic <dl newline="false" spacing="normal">
among the PEs. Procedures for s <dt> AC:</dt>
upporting selective multicast using <dd> Attachment Circuit</dd>
P2MP tunnels can be found in <xr <dt>All-Active Redundancy Mode:</dt>
ef target="I-D.ietf-bess-evpn-bum-procedure-updates"/> <dd> When all PEs attached to an Ethernet
</t> segment are allowed to forward known unicast traffic to/from that
</list> Ethernet segment for a given VLAN, then the Ethernet segment is
</t> defined to be operating in All-Active redundancy mode.</dd>
<dt>BD:</dt>
<t> <dd> Broadcast Domain. As per <xref target="RFC7432" format="default"/>,
The first two objectives are achieved by using IGMP/MLD an EVPN instance
proxy on the (EVI) consists of a single BD
PE. The third objective is achieved by setting up a mul or multiple BDs. In case of a VLAN bundle and a VLAN-aware bundle service
ticast model, an EVI contains multiple BDs. Also, in this document, BD and
tunnel only among the PEs that have subnet are equivalent terms.</dd>
interest in that multicast group(s) based on the trigge <dt>DC:</dt>
r from <dd> Data Center</dd>
IGMP/MLD proxy processes. The proposed solutions for ea <dt>ES:</dt>
ch of these <dd> Ethernet segment. This is when a customer site (device or network) i
objectives are discussed in the following sections. s
</t> connected to one or more PEs via a set of Ethernet links.</dd>
</section> <dt>ESI:</dt>
<dd> Ethernet Segment Identifier. This is a unique non-zero identifier th
<section title="Specification of Requirements"> at
<t> identifies an Ethernet segment.</dd>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "S <dt>Ethernet Tag:</dt>
HALL NOT", <dd> It identifies a particular broadcast
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", domain, e.g., a VLAN. An EVPN instance consists of one or more
"MAY", and broadcast domains.</dd>
"OPTIONAL" in this document are to be interpreted as desc <dt>EVI:</dt>
ribed in BCP <dd> EVPN Instance. This spans the Provider Edge (PE) devices
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when participating in that EVPN.</dd>
, and only when, <dt>EVPN:</dt>
they appear in all <dd> Ethernet Virtual Private Network</dd>
capitals, as shown here. <dt>IGMP:</dt>
</t> <dd> Internet Group Management Protocol</dd>
<dt>IR:</dt>
</section> <dd> Ingress Replication</dd>
<dt>MLD:</dt>
<section title="Terminology"> <dd> Multicast Listener Discovery</dd>
<t> <dt> OIF:</dt>
<list style="symbols"> <dd> Outgoing Interface for multicast. It can be a physical interface,
<t> AC: Attachment Circuit. virtual interface, or tunnel.</dd>
</t> <dt>PE:</dt>
<t> <dd> Provider Edge</dd>
All-Active Redundancy Mode: When all PEs attached to a <dt>POD:</dt><dd> Point of Delivery</dd>
n Ethernet <dt> S-PMSI:</dt>
segment are allowed to forward known unicast traffic t <dd> Selective P-Multicast Service Interface. This is a conceptual interf
o/from that ace for a
Ethernet segment for a given VLAN, then the Ethernet s PE to send customer multicast traffic to some of the PEs in the same VPN.
egment is </dd>
defined to be operating in All-Active redundancy mode. <dt>Single-Active Redundancy Mode:</dt>
</t> <dd> When only a single PE, among all the
<t> PEs attached to an Ethernet segment, is allowed to forward traffic
BD: Broadcast Domain. As per <xref target="RFC7432"/>, to/from that Ethernet segment for a given VLAN, then the Ethernet
an EVI consists of a single segment is defined to be operating in Single-Active redundancy mode.</dd>
or multiple BDs. In case of VLAN-bundle and VLAN-aware <dt> SMET:</dt>
bundle service <dd> Selective Multicast Ethernet Tag</dd>
model, an EVI contains multiple BDs. Also, in this doc <dt>ToR:</dt>
ument, BD and <dd> Top of Rack</dd>
subnet are equivalent terms. </dl>
</t> <t>This document also assumes familiarity with the terminology of
<t> <xref target="RFC7432" format="default"/>, <xref target="RFC3376"
DC: Data Center format="default"/>, and <xref target="RFC2236" format="default"/>.
</t> When this document uses the term "IGMP
Membership Report", the text equally applies to the MLD
<t> Membership Report. Similarly, text for IGMPv2 applies to MLDv1,
Ethernet Segment (ES): When a customer site (device or and text for IGMPv3 applies to MLDv2. IGMP/MLD version encoding in the
network) is BGP update is stated in <xref target="bgp-encoding" format="default"/>.</t
connected to one or more PEs via a set of Ethernet lin >
ks. <t> It is important to note that when there is text considering whether a
</t> PE
indicates support for IGMP proxying, the corresponding behavior has a
<t> natural analog for indicating support for MLD proxying, and the analogous
Ethernet Segment Identifier (ESI): A unique non-zero i requirements apply as well.
dentifier that </t>
identifies an Ethernet Segment. </section>
</t> <section numbered="true" toc="default">
<name>IGMP/MLD Proxy</name>
<t> <t>The IGMP Proxy mechanism is used to reduce the flooding of IGMP
Ethernet Tag: It identifies a particular broadcast messages over an EVPN network, similar to the ARP proxy used in reducing
domain, e.g., a VLAN. An EVPN instance consists of on the flooding of ARP messages over EVPN. It also provides a triggering
e or more mechanism for the PEs to set up their underlay multicast tunnels. The
broadcast domains. IGMP Proxy mechanism consists of two components:
</t> </t>
<ol spacing="normal" type="1">
<t> <li> Proxy for IGMP Membership Reports </li>
EVI: An EVPN instance spanning the Provider Edge (PE) <li> Proxy for IGMP Membership Queries </li>
devices </ol>
participating in that EVPN <t>The goal of IGMP and MLD proxying is to make the EVPN behave seamlessly
</t> for
the tenant systems with respect to multicast operations while using a more
<t> efficient delivery system for signaling and delivery across the VPN.
EVPN: Ethernet Virtual Private Network Accordingly, group state must be tracked synchronously among the PEs
</t> serving the VPN, with join and leave events propagated to the peer PEs and
each PE tracking the state of each of its peer PEs with respect to whether
<t> there are locally attached group members (and in some cases, senders), wha
IGMP: Internet Group Management Protocol t
</t> version(s) of IGMP/MLD are in use for those locally attached group members
<t> ,
IR: Ingress Replication etc. In order to perform this translation, each PE acts as an IGMP router
</t> for the locally attached domain, maintains the requisite state on
locally attached nodes, sends periodic Membership Queries, etc. The role
<t> of EVPN Selective Multicast Ethernet Tag (SMET) route propagation is to
MLD: Multicast Listener Discovery ensure that each PE's local state is
</t> 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
<t> OIF: Outgoing Interface for multicast. It can be phys note that the need to keep such local state can be triggered by either
ical interface, virtual interface or tunnel.</t> local IGMP traffic or BGP EVPN signaling. In most cases, a local IGMP eve
<t> nt
PE: Provider Edge. will need to be signaled over EVPN, though state initiated by received EVP
</t> N
traffic will not always need to be relayed to the locally attached domain.
<t> </t>
POD: Point of Delivery <section numbered="true" toc="default">
</t> <name>Proxy Reporting</name>
<t>When IGMP is used between hosts and their first hop EVPN
<t> S-PMSI: Selective P-Multicast Service Interface - a c router (EVPN PE), proxy reporting is used by the EVPN PE to summarize
onceptual interface for a (when possible) reports received from downstream hosts and propagate
PE to send customer multicast traffic to some of them in BGP to other PEs that are interested in the information.
the PEs in the same VPN. This
</t> is done by terminating the IGMP Membership Reports in the first hop PE an
<t> d
Single-Active Redundancy Mode: When only a single PE, translating and exchanging the relevant information among EVPN BGP
among all the speakers. The information is again translated back to an IGMP message at
PEs attached to an Ethernet segment, is allowed to for the recipient EVPN speaker. Thus, it helps create an IGMP overlay
ward traffic subnet using BGP. In order to facilitate such an overlay, this
to/from that Ethernet segment for a given VLAN, then t document also defines a new EVPN route type Network Layer Reachability In
he Ethernet formation
segment is defined to be operating in Single-Active re (NLRI) and the EVPN SMET route, along with its procedures to help
dundancy mode. exchange and register IGMP multicast groups; see <xref target="bgp-encodi
</t> ng"
format="default"/>.
<t> SMET: Selective Multicast Eth </t>
ernet Tag <section numbered="true" toc="default">
</t> <name>IGMP/MLD Membership Report Advertisement in BGP</name>
<t> <t>When a PE wants to advertise an IGMP Membership Report using
ToR: Top of Rack the BGP EVPN route, it follows the proceeding rules (BGP encoding
</t> is stated in <xref target="bgp-encoding" format="default"/>). The first
four
</list> rules are applicable to the originator PE, and the last three rules are
</t> applicable
<t> to remote PE processing SMET routes:
This document also assumes familiarity with the termin </t>
ology of <t>Processing at the BGP route originator:
<xref target="RFC7432"/>, <xref target="RFC3376"/>, <x </t>
ref target="RFC2236"/> . Though most of the place this document uses term IGMP <ol spacing="normal" type="1">
Membership Report, the text applies equally for MLD <li>When the first hop PE receives IGMP Membership Reports
Membership Report too. Similarly, text for IGMPv2 appl belonging to the same IGMP version from different attached
ies to MLDv1 hosts for the same (*,G) or (S,G), it <bcp14>SHOULD</bcp14> send a si
and text for IGMPv3 applies to MLDv2. IGMP / MLD vers ngle
ion encoding in BGP message corresponding to the very first IGMP Membership Request (
BGP update is stated in <xref target="bgp-encoding"/> BGP update as
</t> soon as possible) for that (*,G) or (S,G). This is because BGP is a
<t> It is important to note when there is text considerin stateful protocol, and no further transmission of the same report is
g whether a PE indicates support for IGMP proxying, the corresponding behavior h needed. If the IGMP Membership Request is for (*,G), then the Multica
as a natural analogue for indication of support for MLD proxying, and the analog st Group Address
ous requirements apply as well. <bcp14>MUST</bcp14> be sent along with the corresponding version flag
</t> (v2 or v3)
set. In case of IGMPv3, the exclude flag <bcp14>MUST</bcp14> also be
set to
indicate that no source IP address must be excluded (include all
sources "*").
If the IGMP Membership Report is for (S,G), then besides setting the
Multicast Group
Address along with the v3 flag, the source IP address and the
Include/Exclude (IE) flag <bcp14>MUST</bcp14> be set. It should be no
ted that, when
advertising the EVPN route for (S,G), the only valid version flag is
v3 (v2 flags <bcp14>MUST</bcp14> be set to 0).
</li>
<li>When the first hop PE receives an IGMPv3 Membership Report for (
S,G) on a given
BD, it <bcp14>MUST</bcp14> advertise the corresponding EVPN SMET rout
e, regardless
of whether the source (S) is
attached to itself or not, in order to facilitate the source move in
the future. </li>
<li>When the first hop PE receives an IGMP version-X Membership Repo
rt first for
(*,G) and then later receives an IGMP version-Y Membership Report for
the same
(*,G), then it <bcp14>MUST</bcp14> re-advertise the same EVPN SMET ro
ute with the flag
for version-Y set in addition to any previously set version flag(s).
In other words, the first hop PE <bcp14>MUST NOT</bcp14> withdraw the
EVPN route
before sending the new route because the Flags field is not part of
BGP route key processing.
</li>
<li>When the first hop PE receives an IGMP version-X Membership Repo
rt first for
(*,G) and then later receives an IGMPv3 Membership Report for the sam
e
Multicast Group Address but for a specific source address S, then the
PE <bcp14>MUST</bcp14> advertise a new EVPN SMET route with the v3 fl
ag set (and v2 reset).
The IE flag also needs to be set accordingly.
Since the source IP address is used as part of BGP route key processi
ng,
it is considered to be a new BGP route advertisement. When different
versions
of IGMP Membership Report are received, the final state <bcp14>MUST</
bcp14> be as per
<xref target="RFC3376" sectionFormat="of" section="5.1"/>.
At the end of the route processing, local and remote group record sta
te
<bcp14>MUST</bcp14>
be as per <xref target="RFC3376" sectionFormat="of" section="5.1"/>.
</li>
</ol>
<t>Processing at the BGP route receiver:
</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 the Flags field. With multiple version
flags set, there must not be a source IP address in the received EVPN
route. If there is, then an error <bcp14>SHOULD</bcp14> be logged. If
the v3 flag
is set (in addition to v2), then the IE flag <bcp14>MUST</bcp14>
indicate "exclude". If not, then an error <bcp14>SHOULD</bcp14> be lo
gged. The PE
<bcp14>MUST</bcp14> generate an IGMP Membership Report for that (*,G)
and
each IGMP version in the version flag.
</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 same
Multicast Group Address, and the version flag is set to v3, then the
PE generates an IGMPv3 Membership Report with a record corresponding
to the list of source IP addresses and the group address, along with
the proper indication of inclusion/exclusion.
</li>
<li>Upon receiving an EVPN SMET route(s) and before generating the
corresponding IGMP Membership Request(s), the PE checks to see whethe
r it has a
Customer Edge (CE) multicast router for that BD on any of its ESs . T
he PE provides
such a check by listening for PIM Hello messages on that AC, i.e.,
(ES,BD). If the PE does have the router's ACs, then the generated
IGMP Membership Request(s) is sent to those ACs. If it doesn't have a
ny of the
router's ACs, then no IGMP Membership Request(s) needs to be generate
d. This is
because sending IGMP Membership Requests to other hosts can result in
unintentionally preventing a host from joining a specific multicast
group using IGMPv2, i.e., if the PE does not receive a Membership Rep
ort from the
host, it will not forward multicast data to it. Per <xref target="RFC
4541"
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 Rep
ort from the host,
it will not forward multicast data to it. In other words, an IGMPv2
Membership Report <bcp14>MUST NOT</bcp14> be sent on an AC that does
not lead to a CE
multicast router. This message suppression is a requirement for IGMPv
2 hosts.
This is not a problem for hosts running IGMPv3, because there is no
suppression of IGMP Membership Reports.
</li>
</ol>
</section>
<section numbered="true" toc="default">
<name>IGMP/MLD Leave Group Advertisement in BGP</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 the rules below. The first rule defines the procedure at the
originator PE, and the last two rules talk about procedures at the remo
te PE:
</t>
<t>Processing at the BGP route originator:
</t>
<ol spacing="normal" type="1">
<li>When a PE receives an IGMPv2 Leave Group or its "Leave" equivalen
t
message for IGMPv3 from its attached host, it checks to see if this
host is the last host that is interested in this multicast group by
sending a query for the multicast group.
If the host was indeed the
last one (i.e., no responses are received for the query), then the PE
<bcp14>MUST</bcp14> re-advertise the EVPN SMET route with the corresp
onding
version flag reset. If this is the last version flag to be reset,
then instead of re-advertising the EVPN route with all version flags
reset, the PE <bcp14>MUST</bcp14> withdraw the EVPN route for that (*
,G).
</li>
</ol>
<t>Processing at the BGP route receiver:
</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.
If the PE finds that a version flag associated
with the (*,G) for the remote PE is reset, then the PE <bcp14>MUST</b
cp14> generate
IGMP Leave for that (*,G) toward its local interface (if any), which
is
attached to the multicast router for that multicast group. It should
be noted that the received EVPN route <bcp14>MUST</bcp14> have at lea
st one
version flag set. If all version flags are reset, it is an error
because the PE should have received an EVPN route withdraw for the
last version flag. An error <bcp14>MUST</bcp14> be considered as a BG
P error, and
the PE <bcp14>MUST</bcp14> apply the
"treat-as-withdraw" procedure per <xref target="RFC7606" format="defa
ult"/>.
</li>
<li>When a PE receives an EVPN SMET route withdraw, it removes the
remote PE from its OIF list for that multicast group, and if there ar
e
no more OIF entries for that multicast group (either locally or
remotely), then the PE <bcp14>MUST</bcp14> stop responding to Members
hip
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 sour
ce.
</li>
</ol>
</section>
</section> </section>
<section numbered="true" toc="default">
<section title="IGMP/MLD Proxy"> <name>Proxy Querier</name>
<t> <t>As mentioned in the previous sections, each PE <bcp14>MUST</bcp14> ha
The IGMP Proxy mechanism is used to reduce the flooding ve proxy
of IGMP querier functionality for the following reasons:
messages over an EVPN network similar to ARP proxy used </t>
in reducing <ol spacing="normal" type="1">
the flooding of ARP messages over EVPN. It also provides <li>to enable the collection of EVPN PEs providing Layer 2 Virtual Priv
a triggering ate Network
mechanism for the PEs to setup their underlay multicast (L2VPN) service to
tunnels. The act as a distributed multicast router with an anycast IP address for al
IGMP Proxy mechanism consists of two components: l
<list style="numbers"> attached hosts in that subnet</li>
<t> Proxy for IGMP Membership Reports. </t> <li>to enable suppression of IGMP Membership Reports and Membership Qu
<t> Proxy for IGMP Membership Queries. </t> eries over
</list> MPLS/IP core</li>
</t> </ol>
<t>
The goal of IGMP and MLD proxying is to make th
e EVPN behave seamlessly for
the tenant systems with respect to multicast o
perations, while using a more
efficient delivery system for signaling and de
livery across the VPN.
Accordingly, group state must be tracked synch
ronously among the PEs
serving the VPN, with join and leave events pr
opagated to the peer PEs, and
each PE tracking the state of each of its peer
PEs with respect whether
there are locally attached group members (and
in some cases, senders), what
version(s) of IGMP/MLD are in use for those lo
cally attached group members,
etc. In order to perform this translation, ea
ch PE acts as an IGMP router
for the locally attached domain, and maintains
the requisite state on
locally attached nodes, sends periodic members
hip queries, etc. The role
of EVPN SMET route propagation is to ensure th
at 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 Grou
p state. It is important to
note that the need to keep such local state ca
n be triggered by either
local IGMP traffic or BGP EVPN signaling. In
most cases a local IGMP event
will need to be signaled over EVPN, though sta
te initiated by received EVPN
traffic will not always need to be relayed to
the locally attached domain.
</t>
<section title="Proxy Reporting">
<t>
When IGMP protocol is used between hosts and th
eir first hop EVPN
router (EVPN PE), Proxy-reporting is used by th
e EVPN PE to summarize
(when possible) reports received from downstrea
m hosts and propagate
them in BGP to other PEs that are interested in
the information. This
is done by terminating the IGMP Reports in the
first hop PE, and
translating and exchanging the relevant informa
tion among EVPN BGP
speakers. The information is again translated b
ack to IGMP message at
the recipient EVPN speaker. Thus it helps creat
e an IGMP overlay
subnet using BGP. In order to facilitate such a
n overlay, this
document also defines a new EVPN route type NLR
I, the EVPN Selective
Multicast Ethernet Tag route, along with its pr
ocedures to help
exchange and register IGMP multicast groups <xr
ef target="bgp-encoding"/>.
</t>
<section title="IGMP/MLD Membership Report Advertisemen
t in BGP">
<t>
When a PE wants to advertise an IGMP
Membership Report using
the BGP EVPN route, it follows the fo
llowing rules (BGP encoding
stated in <xref target="bgp-encoding"
/>). Where first four rules are applicable to originator PE and last three rules
are applicable to remote PE processing SMET routes:
</t>
<t>
Processing at BGP route originator:
<list style="numbers">
<t>
When the first hop PE re
ceives IGMP Membership Reports
, belonging to the sam
e IGMP version, from different attached
hosts for the same (*,
G) or (S,G), it SHOULD send a single
BGP message correspond
ing to the very first IGMP Membership Request (BGP update as
soon as possible) for
that (*,G) or (S,G). This is because BGP is a
stateful protocol and
no further transmission of the same report is
needed. If the IGMP Me
mbership Request is for (*,G), then multicast group address
MUST be sent along wit
h the corresponding version flag (v2 or v3)
set. In case of IGMPv3
, the exclude flag MUST also be set to
indicate that no sourc
e IP address must be excluded (include all
sources "*").
If the IGMP Membership
Report is for (S,G), then besides setting multicast group
address along with the
version flag v3, the source IP address and the
IE flag MUST be set. I
t should be noted that when
advertising the EVPN r
oute for (S,G), the only valid version flag is
v3 (v2 flags MUST be s
et to zero).
</t>
<t>
When the first hop PE
receives an IGMPv3 Membership Report for (S,G) on a given
BD, it MUST advertise
the corresponding EVPN Selective Multicast
Ethernet Tag (SMET) ro
ute regardless of whether the source (S) is
attached to itself or
not in order to facilitate the source move in
the future.
</t>
<t>
When the first hop PE
receives an IGMP version-X Membership Report first for
(*,G) and then later i
t receives an IGMP version-Y Membership Report for the same
(*,G), then it MUST re
-advertise the same EVPN SMET route with flag
for version-Y set in a
ddition to any previously-set version flag(s).
In other words, the fi
rst hop PE MUST NOT withdraw the EVPN route
before sending the new
route because the flag field is not part of
BGP route key processi
ng.
</t>
<t>
When the first hop PE
receives an IGMP version-X Membership Report first for
(*,G) and then later i
t receives an IGMPv3 Membership Report for the same
multicast group addres
s but for a specific source address S, then the
PE MUST advertise a ne
w EVPN SMET route with v3 flag set (and v2 reset).
The IE flag also need
to be set accordingly.
Since source IP addres
s is used as part of BGP route key processing
it is considered as a
new BGP route advertisement. When different version
of IGMP Membership Rep
ort are received, final state MUST be as per section 5.1 of <xref target="RFC337
6"/>.
At the end of route pr
ocessing local and remote group record state MUST be
as per section 5.1 of
<xref target="RFC3376"/>.
</t>
</list>
Processing at BGP route r
eceiver:
<list style="numbers">
<t>
When a PE receives an
EVPN SMET route with more than one version
flag set, it will gene
rate the corresponding IGMP report for (*,G)
for each version speci
fied in the flags field. With multiple version
flags set, there must
not be source IP address in the received EVPN
route. If there is, th
en an error SHOULD be logged. If the v3 flag
is set (in addition to
v2), then the IE flag MUST
indicate "exclude". If
not, then an error SHOULD be logged. The PE
MUST generate an IGMP
Membership Report for that (*,G) and
each IGMP version in t
he version flag.
</t>
<t>
When a PE receives a l
ist of EVPN SMET NLRIs in its BGP update
message, each with a d
ifferent source IP address and the same
multicast group addres
s, and the version flag is set to v3, then the
PE generates an IGMPv3
Membership Report with a record corresponding
to the list of source
IP addresses and the group address along with
the proper indication
of inclusion/exclusion.
</t>
<t>
Upon receiving EV
PN SMET route(s) and before generating the
corresponding IGMP Mem
bership Request(s), the PE checks to see whether it has any
CE multicast router fo
r that BD on any of its ES's . The PE provides
such a check by listen
ing for PIM Hello messages on that AC (i.e,
ES,BD). If the PE does
have the router's ACs, then the generated
IGMP Membership Reques
t(s) are sent to those ACs. If it doesn't have any of the
router's AC, then no I
GMP Membership Request(s) needs to be generated. This is
because sending IGMP M
embership Requests to other hosts can result in
unintentionally preven
ting a host from joining a specific multicast
group using IGMPv2 - i
.e., if the PE does not receive a Membership Report from the
host it will not forwa
rd multicast data to it. Per <xref target="RFC4541"/> , when an
IGMPv2 host receives a
Membership Report for a group address that it
intends to join, the h
ost will suppress its own membership report for
the same group, and if
the PE does not receive an IGMP Membership Report from the host
it will not forward mu
lticast data to it. In other words, an IGMPv2
Membership Report MUST
NOT be sent on an AC that does not lead to a CE multicast
router. This message s
uppression is a requirement for IGMPv2 hosts.
This is not a problem
for hosts running IGMPv3 because there is no
suppression of IGMP Me
mbership Reports.
</t>
</list>
</t>
</section>
<section title="IGMP/MLD Leave Group Advertisement in B
GP">
<t>
When a PE wants to withdraw an EVPN
SMET route corresponding to an
IGMPv2 Leave Group or IGMPv3 "Leave"
equivalent message, it
follows the following rules, where f
irst rule defines the procedure at originator PE and last two rules talk about p
rocedures at remote PE:
</t>
<t>
Processing at BGP route orig
inator:
<list style="numbers">
<t>
When a PE receives an
IGMPv2 Leave Group or its "Leave" equivalent
message for IGMPv3 fro
m 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 th
e multicast group. If the host was indeed the
last one (i.e. no resp
onses are received for the query), then the PE
MUST re-advertises EVP
N SMET Multicast route with the corresponding
version flag reset. If
this is the last version flag to be reset,
then instead of re-adv
ertising the EVPN route with all version flags
reset, the PE MUST wit
hdraw the EVPN route for that (*,G).
</t>
</list>
Processing at BGP route r
eceiver:
<list style="numbers">
<t>
When a PE receives an
EVPN SMET route for a given (*,G), it
compares the received
version flags from the route with its per-PE
stored version flags.
If the PE finds that a version flag associated
with the (*,G) for the
remote PE is reset, then the PE MUST generate
IGMP Leave for that (*
,G) toward its local interface (if any)
attached to the multic
ast router for that multicast group. It should
be noted that the rece
ived EVPN route MUST at least have one
version flag set. If a
ll version flags are reset, it is an error
because the PE should
have received an EVPN route withdraw for the
last version flag. Err
or MUST be considered as a BGP error and the PE MUST apply the
"treat-as-withdraw" pr
ocedure of <xref target="RFC7606"/>.
</t>
<t>
When a PE receives an
EVPN SMET route withdraw, it removes the
remote PE from its OIF
list for that multicast group and if there are
no more OIF entries fo
r that multicast group (either locally or
remotely), then the PE
MUST stop responding to Membership Queries from the
locally attached route
r (if any). If there is a source for that
multicast group, the P
E stops sending multicast traffic for that
source.
</t>
</list>
</t>
</section>
</section>
<section title="Proxy Querier">
<t>
As mentioned in the previous sections, each PE
MUST have proxy
querier functionality for the following reasons
:
<list style="numbers">
<t>
To enable the collection of EVP
N PEs providing L2VPN service to
act as distributed multicast ro
uter with Anycast IP address for all
attached hosts in that subnet.
</t>
<t>
To enable suppression of IGMP M
embership Reports and Membership Queries over
MPLS/IP core.
</t>
</list>
</t>
</section>
</section> </section>
</section>
<section title="Operation"> <section numbered="true" toc="default">
<t> <name>Operation</name>
Consider the EVPN network of Figure-1, where there is an EV <t>Consider the EVPN network in <xref target="EVPN"/>, where there is an E
PN VPN
instance configured across the PEs shown in this figur instance configured across the PEs (namely PE1,
e (namely PE1, PE2, and PE3). Let's consider that this EVPN instance consists of a
PE2, and PE3). Let's consider that this EVPN instance single bridge domain (single subnet) with all the hosts and sources and
consists of a the multicast router connected to this subnet. PE1 only has hosts (host de
single bridge domain (single subnet) with all the host noted by Hx)
s, sources, and connected to it. PE2 has a mix of hosts and a multicast source. PE3
the multicast router connected to this subnet. PE1 onl has a mix of hosts, a multicast source (source denoted by Sx), and a multi
y has hosts(host denoted by Hx) cast router
connected to it. PE2 has a mix of hosts and a multicas (router denoted by Rx).
t source. PE3 Furthermore, let's consider that for (S1,G1), R1 is used as the
has a mix of hosts, a multicast source (source denoted multicast router. The following subsections describe the IGMP Proxy
by Sx), and a multicast router (router denoted by Rx). operation in different PEs with regard to whether the locally
Furthermore, let's consider that for (S1,G1), R1 is us attached devices for that subnet are:
ed as the </t>
multicast router. The following subsections describe t <ul spacing="normal">
he IGMP proxy <li>only hosts,</li>
operation in different PEs with regard to whether the <li>a mix of hosts and a multicast source, or</li>
locally <li>a mix of hosts, a multicast source, and a multicast router.</li>
attached devices for that subnet are: </ul>
<figure anchor="EVPN">
<list style="symbols"> <name>EVPN Network</name>
<t> <artwork name=">EVPN network" type="" align="center" alt=""><![CDATA[
only hosts +--------------+
</t> | |
<t> | |
mix of hosts and multicast source +----+ | | +----+
</t> H1:(*,G1)v2 ---| | | | | |---- H6(*,G1)v2
<t> H2:(*,G1)v2 ---| PE1| | IP/MPLS | | PE2|---- H7(S2,G2)v3
mix of hosts, multicast source, and mu H3:(*,G1)v3 ---| | | Network | | |---- S2
lticast router H4:(S2,G2)v3 --| | | | | |
</t> +----+ | | +----+
</list> | |
</t> +----+ | |
H5:(S1,G1)v3 --| | | |
<figure > S1 ---| PE3| | |
<artwork ><![CDATA[ R1 ---| | | |
+----+ | |
+--------------+ | |
| | +--------------+
| | ]]></artwork>
+----+ | | +----+
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>
<section title="PE with only attached hosts for a given subnet">
<t>
When PE1 receives an IGMPv2 Membership Report from H1, it
does not forward
this Membership Report to any of its other ports (for thi
s subnet) because all
these local ports are associated with the hosts. PE1 send
s an
EVPN Multicast Group route corresponding to this Membersh
ip Report for (*,G1) and
setting v2 flag. This EVPN route is received by PE2 and P
E3 that are
the members of the same BD (i.e., same EVI in case of VLA
N-based
service or EVI,VLAN in case of 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 t
o it (for
that subnet). In this example, PE3 sends the reconstructe
d IGMPv2
Membership Report for (*,G1) only to R1. Furthermore, ev
en though PE2
receives the EVPN BGP route, it does not send it to any o
f its ports
for that subnet; viz, ports associated with H6 and H7.
</t>
<t>
When PE1 receives the second IGMPv2 Membership Report fro
m H2 for the same
multicast group (*,G1), it only adds that port to its OIF
list but it
doesn't send any EVPN BGP route because there is no chang
e in
information. However, when it receives the IGMPv3 Members
hip Report from H3 for
the same (*,G1). Besides adding the corresponding port to
its OIF
list, it re-advertises the previously sent EVPN SMET rout
e with the
v3 and exclude flag set.
</t>
<t>
Finally when PE1 receives the IGMPv3 Membership Report fr
om H4 for (S2,G2), it
advertises a new EVPN SMET route corresponding to it.
</t>
</section>
<section title="PE with a mix of attached hosts and multicast source">
<t>
The main difference in this case is that when PE2 rece
ives the IGMPv3
Membership Report from H7 for (S2,G2), it does adverti
se it in BGP to support
source move even though PE2 knows that S2 is attached
to its local
AC. PE2 adds the port associated with H7 to its OIF li
st for (S2,G2).
The processing for IGMPv2 received from H6 is the same
as the IGMPv2
Membership Report described in previous section.
</t>
</section>
<section title="PE with a mix of attached hosts, a multicast source and a
router">
<t>
The main difference in this case relative to the previ
ous two
sections is that IGMP v2/v3 Membership Report messages
received locally need to
be sent to the port associated with router R1. Further
more, the Membership Reports
received via BGP (SMET) need to be passed to the R1 po
rt but filtered
for all other ports.
</t>
</section>
</section>
<section title="All-Active Multi-Homing">
<t>
Because the LAG flow hashing algorithm used by the CE is unkno
wn at
the PE, in an All-Active redundancy mode it must be assumed th
at the
CE can send a given IGMP message to any one of the multi-homed
PEs,
either DF or non-DF; i.e., different IGMP Membership Request m
essages can arrive at
different PEs in the redundancy group and furthermore their
corresponding Leave messages can arrive at PEs that are differ
ent
from the ones that received the Membership Report. Therefore,
all PEs
attached to a given ES must coordinate IGMP Membership Request
and Leave Group
(x,G) state, where x may be either '*' or a particular source
S, for
each BD on that ES. Each PE has a local copy of that state and
the EVPN signaling serves to synchronize state across PEs. This allows the DF f
or that (ES,BD) to correctly
advertise or withdraw a Selective Multicast Ethernet Tag (SMET
) route
for that (x,G) group in that BD when needed.
All-Active multihoming PEs for a given ES MUST support IGMP
synchronization procedures described in this section if they n
eed to
perform IGMP proxy for hosts connected to that ES.
</t>
<section title="Local IGMP/MLD Membership Report Synchronization">
<t>
When a PE, either DF or non-DF, receives on a given
multihomed ES
operating in All-Active redundancy mode, an IGMP Me
mbership Report
for (x,G), it determines the BD to which the IGMP M
embership Report
belongs. If the PE doesn't already have local IGMP
Membership Request (x,G) state
for that BD on that ES, it MUST instantiate local I
GMP Membership Request (x,G)
state and MUST advertise a BGP IGMP Membership Repo
rt Synch route for that (ES,BD).
Local IGMP Membership Request (x,G) state refers t
o IGMP Membership Request (x,G) state
that is created as a result of processing an IGMP
Membership Report
for (x,G).
</t>
<t>
The IGMP Membership Report Synch route MUST carry the
ES-Import RT for the ES on
which the IGMP Membership Report was received. Thus i
t MUST only be
imported by the PEs attached to that ES and not any ot
her PEs.
</t>
<t>
When a PE, either DF or non-DF, receives an IGMP Me
mbership Report Synch route it
installs that route and if it doesn't already have
IGMP Membership Request (x,G)
state for that (ES,BD), it MUST instantiate that IG
MP Membership Request (x,G)
state - i.e., IGMP Membership Request (x,G) state i
s the union of the local IGMP
Membership Report (x,G) state and the installed IGM
P Membership Report Synch route. If the DF
did not already advertise (originate) a SMET route
for that (x,G)
group in that BD, it MUST do so now.
</t>
<t>
When a PE, either DF or non-DF, deletes its local IGM
P Membership Request (x,G)
state for that (ES,BD), it MUST withdraw its BGP IGMP
Membership Report Synch
route for that (ES,BD).
</t>
<t>
When a PE, either DF or non-DF, receives the withdr
awal of an IGMP
Membership Report Synch route from another PE it MU
ST remove that route. When a
PE has no local IGMP Membership Request (x,G) state
and it has no installed IGMP
Membership Report Synch routes, it MUST remove IGMP
Membership Request (x,G) state for that (ES,BD).
If the DF no longer has IGMP Membership Request (x,
G) state for that BD on
any ES for which it is DF, it MUST withdraw its SME
T route for that
(x,G) group in that BD.
</t>
<t>
In other words, a PE advertises an SMET route for t
hat (x,G) group in
that BD when it has IGMP Membership Request (x,G) s
tate in that BD on at least one
ES for which it is DF and it withdraws that SMET ro
ute when it does
not have IGMP Membership Request (x,G) state in tha
t BD on any ES for which it is
DF.
</t>
</section>
<section title="Local IGMP/MLD Leave Group Synchronization">
<t>
When a PE, either DF or non-DF, receives, on a given
multihomed ES
operating in All-Active redundancy mode, an IGMP Lea
ve Group message
for (x,G) from the attached CE, it determines the BD
to which the
IGMPv2 Leave Group belongs. Regardless of whether i
t has IGMP Membership Request
(x,G) state for that (ES,BD), it initiates the (x,G)
leave group
synchronization procedure, which consists of the fol
lowing steps:
<list style="numbers">
<t>
It computes the Maximum Response Tim
e, which is the duration of
(x,G) leave group synchronization pr
ocedure. This is the product of
two locally configured values, Last
Member Query Count and Last
Member Query Interval (described in
Section 3 of <xref target="RFC2236"/>), plus a
delta corresponding to the time it t
akes for a BGP advertisement to
propagate between the PEs attached t
o the multihomed ES (delta is a
consistently configured value on all
PEs attached to the multihomed
ES).
</t>
<t>
It starts the Maximum Response T
ime timer. Note that the receipt
of subsequent IGMP Leave Group m
essages 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 th
e PE.
</t>
<t>
It initiates the Last Member Que
ry procedure described in Section
3 of <xref target="RFC2236"/>; v
iz, it sends a number of Group-Specific Query (x,G)
messages (Last Member Query Coun
t) at a fixed interval (Last Member
Query Interval) to the attached
CE.
</t>
<t>
It advertises an IGMP Leave Sync
h route for that that (ES,BD).
This route notifies the other mu
ltihomed PEs attached to the given
multihomed ES that it has initia
ted an (x,G) leave group
synchronization procedure; i.e.,
it carries the ES-Import RT for the
ES on which the IGMP Leave Group
was received. It also contains the
Maximum Response Time.
</t>
<t>
When the Maximum Response Timer
expires, the PE that has
advertised the IGMP Leave Synch
route withdraws it.
</t>
</list>
</t>
<section title="Remote Leave Group Synchronization">
<t>
When a PE, either DF or non-DF, receives an IG
MP Leave Synch route it
installs that route and it starts a timer for
(x,G) on the specified
(ES,BD) whose value is set to the Maximum Resp
onse Time in the
received IGMP Leave Synch route. Note that th
e receipt of subsequent
IGMPv2 Leave Group messages or BGP Leave Synch
routes for (x,G) do
not change the value of a currently running Ma
ximum Response Time
timer and are ignored by the PE.
</t>
</section>
<section title="Common Leave Group Synchronization">
<t>
If a PE attached to the multihomed ES receives
an IGMP Membership
Report for (x,G) before the Maximum Response Ti
me timer expires, it
advertises a BGP IGMP Membership Report Synch r
oute for that (ES,BD). If it
doesn't already have local IGMP Membership Requ
est (x,G) state for that (ES,BD),
it instantiates local IGMP Membership Request (
x,G) state. If the DF is not
currently advertising (originating) a SMET rout
e for that (x,G) group
in that BD, it does so now.
</t>
<t>
If a PE attached to the multihomed ES receiv
es an IGMP Membership Report Synch
route for (x,G) before the Maximum Response
Time timer expires, it
installs that route and if it doesn't alread
y have IGMP Membership Request (x,G)
state for that BD on that ES, it instantiate
s 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 the Maximum Response Timer expires a PE
that has advertised an
IGMP Leave Synch route, withdraws it. Any P
E attached to the
multihomed ES, that started the Maximum Resp
onse Time and has no
local IGMP Membership Request (x,G) state an
d no installed IGMP Membership Report Synch routes,
it removes IGMP Membership Request (x,G) sta
te for that (ES,BD). If the DF no
longer has IGMP Membership Request (x,G) sta
te for that BD on any ES for which it
is DF, it withdraws its SMET route for that
(x,G) group in that BD.
</t>
</section>
</section>
<section title="Mass Withdraw of Multicast Membership Report Sync rout
e in case of failure">
<t>
A PE which has received an IGMP Membership Request
would have synced the IGMP Membership Report
by the procedure defined in section 6.1. If a PE wi
th 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 rem
ove the state immediately;
instead General Query SHOULD be generated to refres
h the states.
There are several ways to detect failure at a
peer, e.g. using IGP next hop tracking or ES route
withdraw.
</t>
</section>
</section>
<section title="Single-Active Multi-Homing">
<t>
Note that to facilitate state synchronization after failove
r, the PEs
attached to a multihomed ES operating in Single-Active redu
ndancy mode
SHOULD also coordinate IGMP Membership Report (x,G) state.
In this case all IGMP
Membership Report messages are received by the DF and distr
ibuted to the non-DF
PEs using the procedures described above.
</t>
</section>
<section title="Selective Multicast Procedures for IR tunnels">
<t>
If an ingress PE uses ingress replication, then for a
given (x,G)
group in a given BD:
<list style="numbers">
<t>
It sends (x,G) traffic to the set of P
Es not supporting IGMP or MLD
Proxy. This set consists of any PE tha
t has advertised an IMET route for the BD
without a Multicast Flags extended co
mmunity or with a Multicast Flags extended
community in which neither the IGMP Pr
oxy support nor the MLD Proxy support flags are set.
</t>
<t>
It sends (x,G) traffic to the set of P
Es supporting IGMP or MLD Proxy
and having listeners for that (x,G) gr
oup in that BD. This set consists of any PE that has advertised an IMET route fo
r the BD
with a Multicast Flags extended commun
ity in which the IGMP Proxy support and/or
the MLD Proxy support flags are set a
nd that has advertised a SMET route for that (x,G)
group in that BD.
</t>
</list>
</t>
</section>
<section title="BGP Encoding" anchor="bgp-encoding">
<t>
This document defines three new BGP EVPN routes to carry
IGMP
Membership Reports. The route types are known as:
</t>
<t> + 6 - Selective Multicast Ethernet Tag
Route </t>
<t> + 7 - Multicast Membership Report Synch
Route </t>
<t> + 8 - Multicast Leave Synch Route </t>
<t>
The detailed encoding and procedures for these route t
ypes are
described in subsequent sections.
</t>
<section title="Selective Multicast Ethernet Tag Route" anchor="
SMET">
<t>
A Selective Multicast Ethernet Tag route type sp
ecific EVPN NLRI
consists of the following:
</t>
<figure >
<artwork ><![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 the purpose of BGP route key processing, all the fields ar
e
considered to be part of the prefix in the NLRI except for the
one-
octet flag field. The Flags fields are defined as follows:
</t>
<figure >
<artwork ><![CDATA[
0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
]]></artwork>
</figure> </figure>
<section numbered="true" toc="default">
<name>PE with Only Attached Hosts for a Given Subnet</name>
<t>When PE1 receives an IGMPv2 Membership Report from H1, it does not fo
rward
this Membership Report to any of its other ports (for this subnet) becaus
e all
these local ports are associated with the hosts.
PE1 sends an
EVPN SMET route corresponding to this Membership Report for (*,G1) and
sets the v2 flag. This EVPN route is received by PE2 and PE3, which are
the members of the same BD (i.e., same EVI in case of a VLAN-based
service or EVI and VLAN in case of a VLAN-aware bundle service). PE3
reconstructs the IGMPv2 Membership Report from this EVPN BGP route and on
ly
sends it to the port(s) with multicast routers attached to it (for
that subnet). In this example, PE3 sends the reconstructed IGMPv2
Membership Report for (*,G1) only to R1. Furthermore, even though PE2
receives the EVPN BGP route, it does not send it to any of its ports
for that subnet (viz., ports associated with H6 and H7).
</t>
<t>When PE1 receives the second IGMPv2 Membership Report from H2 for the
same
multicast group (*,G1), it only adds that port to its OIF list, but it
doesn't send any EVPN BGP routes because there is no change in
information. However, when it receives the IGMPv3 Membership Report from
H3 for
the same (*,G1), besides adding the corresponding port to its OIF
list, it re-advertises the previously sent EVPN SMET route with the
v3 and exclude flag set.
</t>
<t>Finally, when PE1 receives the IGMPv3 Membership Report from H4 for (
S2,G2), it
advertises a new EVPN SMET route corresponding to it.
</t>
</section>
<section numbered="true" toc="default">
<name>PE with a Mix of Attached Hosts and a Multicast Source</name>
<t>The main difference in this case is that when PE2 receives the IGMPv3
Membership Report from H7 for (S2,G2), it advertises it in BGP to support
the
source moving, even though PE2 knows that S2 is attached to its local
AC. PE2 adds the port associated with H7 to its OIF list for (S2,G2).
The processing for IGMPv2 received from H6 is the same as the IGMPv2
Membership Report described in the previous section.
</t>
</section>
<section numbered="true" toc="default">
<name>PE with a Mix of Attached Hosts, a Multicast Source, and a Router<
/name>
<t>The main difference in this case relative to the previous two
sections is that IGMPv2/v3 Membership Report messages received locally ne
ed to
be sent to the port associated with router R1. Furthermore, the Membershi
p Reports
received via BGP (SMET) need to be passed to the R1 port but filtered
for all other ports.
</t>
</section>
</section>
<section numbered="true" toc="default">
<name>All-Active Multihoming</name>
<t>Because the Link Aggregation Group (LAG) flow hashing algorithm used by
the CE is unknown at
the PE, in an All-Active redundancy mode, it must be assumed that the
CE can send a given IGMP message to any one of the multihomed PEs,
either Designated Forwarder (DF) or non-DF, i.e., different IGMP Membershi
p
Request messages can arrive at
different PEs in the redundancy group. Furthermore, their
corresponding Leave messages can arrive at PEs that are different
from the ones that received the Membership Report. Therefore, all PEs
attached to a given Ethernet segment (ES) must coordinate the IGMP Members
hip Request and Leave Group
(x,G) state, where x may be either "*" or a particular source S for
each BD on that ES. Each PE has a local copy of that state, and the EVPN s
ignaling
serves to synchronize that state across PEs. This allows the DF for that (
ES,BD) to correctly
advertise or withdraw a SMET route
for that (x,G) group in that BD when needed.
All-Active multihoming PEs for a given ES <bcp14>MUST</bcp14> support IGMP
synchronization procedures described in this section if they need to
perform IGMP Proxy for hosts connected to that ES.
</t>
<section numbered="true" toc="default" anchor="local-igmp-mld">
<name>Local IGMP/MLD Membership Report Synchronization</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 mod
e, it determines the BD to which the IGMP Membership Report
belongs. If the PE doesn't already have the local IGMP Membership Request
(x,G) state
for that BD on that ES, it <bcp14>MUST</bcp14> instantiate that local IGM
P Membership
Request (x,G)
state and <bcp14>MUST</bcp14> advertise a BGP IGMP Membership Report Sync
h route
for that (ES,BD).
The local IGMP Membership Request (x,G) state refers to the IGMP Membersh
ip Request (x,G) state
that is created as a result of processing an IGMP Membership Report
for (x,G).
</t>
<t>The IGMP Membership Report Synch route <bcp14>MUST</bcp14> carry the
ES-Import
Route Target (RT) for the ES on
which the IGMP Membership Report was received. Thus, it <bcp14>MUST</bcp
14> only be
imported by the PEs attached to that ES and not any other PEs.
</t>
<t>When a PE, either DF or non-DF, receives an IGMP Membership Report Sy
nch route, it
installs that route, and if it doesn't already have the IGMP Membership R
equest (x,G)
state for that (ES,BD), it <bcp14>MUST</bcp14> instantiate that IGMP Memb
ership
Request (x,G)
state, i.e., the IGMP Membership Request (x,G) state is the union of the
local IGMP
Membership Report (x,G) state and the installed IGMP Membership Report Sy
nch route.
If the DF did not already advertise (originate) a SMET route for that (x,
G)
group in that BD, it <bcp14>MUST</bcp14> do so now.
</t>
<t>When a PE, either DF or non-DF, deletes its local IGMP Membership Req
uest (x,G)
state for that (ES,BD), it <bcp14>MUST</bcp14> withdraw its BGP IGMP Memb
ership
Report Synch route for that (ES,BD).
</t>
<t>When a PE, either DF or non-DF, receives the withdrawal of an IGMP
Membership Report Synch route from another PE, it <bcp14>MUST</bcp14> rem
ove that route.
When a PE has no local IGMP Membership Request (x,G) state and it has no
installed IGMP
Membership Report Synch routes, it <bcp14>MUST</bcp14> remove that IGMP M
embership Request
(x,G) state for that (ES,BD).
If the DF no longer has the IGMP Membership Request (x,G) state for that
BD on
any ES for which it is the DF, it <bcp14>MUST</bcp14> withdraw its SMET r
oute for that
(x,G) group in that BD.
</t>
<t>In other words, a PE advertises a SMET route for that (x,G) group in
that BD when it has the IGMP Membership Request (x,G) state on at least o
ne
ES for which it is the DF, and it withdraws that SMET route when it does
not have an IGMP Membership Request (x,G) state in that BD on any ES for
which it is
the DF.
</t>
</section>
<section numbered="true" toc="default">
<name>Local IGMP/MLD Leave Group Synchronization</name>
<t>When a PE, either DF or non-DF, receives an IGMP Leave Group message
for (x,G) from the attached CE on a given multihomed ES
operating in All-Active redundancy mode, it determines the BD to which th
e
IGMPv2 Leave Group belongs. Regardless of whether it has the IGMP Member
ship Request
(x,G) state for that (ES,BD), it initiates the (x,G) leave group
synchronization procedure, which consists of the following steps:
</t>
<ol spacing="normal" type="1">
<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 in <xref 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).
</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.
</li>
<li>It initiates the Last Member Query procedure described in
<xref 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 attached CE.</li>
<li>It advertises an IGMP Leave Synch route for that (ES,BD).
This route notifies the other multihomed PEs attached to the given
multihomed ES that it has initiated an (x,G) leave group
synchronization procedure, i.e., it carries the ES-Import RT for the
ES on which the IGMP Leave Group was received. It also contains the
Maximum Response Time.
</li>
<li>When the Maximum Response Time timer expires, the PE that has
advertised the IGMP Leave Synch route withdraws it.
</li>
</ol>
<section numbered="true" toc="default">
<name>Remote Leave Group Synchronization</name>
<t>When a PE, either DF or non-DF, receives an IGMP Leave Synch route,
it
installs that route and it starts a timer for (x,G) on the specified
(ES,BD), whose value is set to the Maximum Response Time in the
received IGMP Leave Synch route. Note that the receipt of subsequent
IGMPv2 Leave Group messages or BGP Leave Synch routes for (x,G) do
not change the value of a currently running Maximum Response Time
timer and are ignored by the PE.
</t>
</section>
<section numbered="true" toc="default">
<name>Common Leave Group Synchronization</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). I
f 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 a PE attached to the multihomed ES receives an IGMP Membership R
eport Synch
route for (x,G) before the Maximum Response Time timer expires, it
installs that route, and if it doesn't already have the IGMP Membership
Request (x,G)
state for that BD on that ES, it instantiates that IGMP Membership Requ
est (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 the Maximum Response Time timer expires, a PE that has adverti
sed an
IGMP Leave Synch route withdraws it. Any PE attached to the
multihomed ES, which started the Maximum Response Time and has no
local IGMP Membership Request (x,G) state and no installed IGMP Members
hip Report
Synch routes,
removes the IGMP Membership Request (x,G) state for that (ES,BD). If t
he DF no
longer has the IGMP Membership Request (x,G) state for that BD on any E
S for which it
is the DF, it withdraws its SMET route for that (x,G) group in that BD.
</t>
</section>
</section>
<section numbered="true" toc="default">
<name>Mass Withdraw of the Multicast Membership Report Synch Route in Ca
se of Failure</name>
<t>A PE that has received an IGMP Membership Request would have synced t
he IGMP
Membership Report by the procedure defined in <xref target="local-igmp-ml
d"
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) <bcp14>SHOULD NOT</bcp14> remove the
state immediately;
instead, General Query <bcp14>SHOULD</bcp14> be generated to refresh the
states.
There are several ways to detect failure at a
peer, e.g., using IGP next-hop tracking or ES route withdraw.
</t>
</section>
</section>
<section numbered="true" toc="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 mode
<bcp14>SHOULD</bcp14> also coordinate the IGMP Membership Report (x,G) sta
te.
In this case, all IGMP
Membership Report messages are received by the DF and distributed to the n
on-DF
PEs using the procedures described above.
</t>
</section>
<section numbered="true" toc="default">
<name>Selective Multicast Procedures for IR Tunnels</name>
<t>If an ingress PE uses ingress replication, then for a given (x,G)
group in a given BD:
</t>
<ol spacing="normal" type="1">
<li>It sends (x,G) traffic to the set of PEs not supporting IGMP or MLD
Proxies. This set consists of any PE that has advertised an Inclusive Mul
ticast
Ethernet Tag (IMET) route for the BD
without a Multicast Flags Extended Community or with a Multicast Flags E
xtended
Community in which neither the IGMP Proxy support nor the MLD Proxy supp
ort flags are set.
</li>
<li>It sends (x,G) traffic to the set of PEs supporting IGMP or MLD Prox
ies
and has listeners for that (x,G) group in that BD. This set consists of a
ny PE
that has advertised an IMET route for the BD
with a Multicast Flags Extended Community in which the IGMP Proxy support
and/or
the MLD Proxy support flags are set and that has advertised a SMET route
for that (x,G)
group in that BD.
</li>
</ol>
</section>
<section anchor="bgp-encoding" numbered="true" toc="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> <dl newline="false" spacing="normal">
<list style="symbols"> <dt>6 -</dt>
<t> <dd>Selective Multicast Ethernet Tag Route </dd>
The least significant bit, bit 7 indicates sup <dt>7 -</dt>
port for IGMP version <dd>Multicast Membership Report Synch Route </dd>
1. Since IGMP V1 is being deprecated sender MU <dt>8 -</dt>
ST set it as 0 for IGMP and <dd>Multicast Leave Synch Route </dd>
receiver MUST ignore it. </dl>
</t>
<t>
The second least significant bit, bit 6 indica
tes support for IGMP
version 2.
</t>
<t>
The third least significant bit, bit 5 indicat
es support for IGMP
version 3.
</t>
<t>
The fourth least significant bit, bit 4 indica
tes whether the (S,G)
information carried within the route-type is o
f an Include Group type
(bit value 0) or an Exclude Group type (bit va
lue 1). The Exclude
Group type bit MUST be ignored if bit 5 is not
set.
</t>
<t>
This EVPN route type is used to carry tenant I
GMP multicast group
information. The flag field assists in distrib
uting IGMP Membership
Report of a given host for a given multicast r
oute. The version
bits help associate IGMP version of receivers
participating within
the EVPN domain.
</t>
<t>
The include/exclude (IE) bit helps in creating
filters for a given
multicast route.
</t>
<t>
If route is used for IPv6 (MLD) then bit 7 ind
icates support for MLD
version 1. The second least significant bit, b
it 6 indicates support
for MLD version 2. Since there is no MLD versi
on 3, in case of IPv6
route third least significant bit MUST be 0. I
n case of IPv6 routes,
the fourth least significant bit MUST be ignor
ed if bit 6 is not
set.
</t>
<t> Reserved bits MUST be set to 0 by sender. And
receiver MUST ignore the Reserved bits.
</t>
</list>
</t>
<section title="Constructing the Selective Multicast Ethernet Tag ro
ute">
<t>
This section describes the procedures used to constr
uct the Selective
Multicast Ethernet Tag (SMET) route.
</t>
<t>
The Route Distinguisher (RD) SHOULD be a Type
1 RD <xref target="RFC4364"/>. The
value field comprises an IP address of the PE
(typically, the
loopback address) followed by a number unique
to the PE.
</t>
<t>
The Ethernet Tag ID MUST be set as procedure defined
in <xref target="RFC7432"/>.
</t>
<t>
The Multicast Source Length MUST be set to le
ngth of the multicast
Source address in bits. If the Multicast Sour
ce Address field
contains an IPv4 address, then the value of t
he Multicast Source
Length field is 32. If the Multicast Source A
ddress field contains an
IPv6 address, then the value of the Multicast
Source Length field is
128. In case of a (*,G) Membership Report, th
e Multicast Source Length is set to
0.
</t>
<t>
The Multicast Source Address is the source IP
address from the IGMP
Membership Report. In case of a (*,G), this f
ield is not used.
</t>
<t>
The Multicast Group Length MUST be set to length
of multicast group
address in bits. If the Multicast Group Address
field contains an
IPv4 address, then the value of the Multicast Gr
oup Length field is
32. If the Multicast Group Address field contai
ns an IPv6 address,
then the value of the Multicast Group Length fie
ld is 128.
</t>
<t>
The Multicast Group Address is the Group address
from the IGMP or MLD
Membership Report.
</t>
<t>
The Originator Router Length is the length of th
e Originator Router
Address in bits.
</t>
<t>
The Originator Router Address is the IP addre
ss of router originating this route.
The SMET Originator Router IP address MUST ma
tch that of the IMET (or S-PMSI AD)
route originated for the same EVI by the same
downstream PE.
</t>
<t>
The Flags field indicates the version of IGMP
protocol from which the
Membership Report was received. It also indic
ates whether the
multicast group had the INCLUDE or EXCLUDE bi
t set.
</t>
<t> Reserved bits MUST be set to 0. They can be defined
in future by other document.
</t>
<t>
IGMP is used to receive group membership info
rmation from hosts
by TORs. Upon receiving the hosts expression
of interest of a
particular group membership, this information
is then forwarded using
SMET route. The NLRI also keeps track
of receiver's IGMP protocol version and any s
ource filtering for a
given group membership. All EVPN SMET routes
are announced with per-
EVI Route Target extended communities.
</t>
</section>
<section title="Reconstructing IGMP / MLD Membership Reports fro
m Selective Multicast Route">
<t> Th
is section describes the procedures used to reconstruct IGMP / MLD Membership Re
ports from SMET route.
</t>
<t>
<list style="symbols">
<t> If multicast group length is 32, rou
te would be translated to IGMP membership request. If multicast group length is
128, route would be translated to MLD membership request.
</t>
<t> Multicast group address field would be translated
to IGMP / MLD group address.
</t>
<t> If Multicast source length is set to zero it would
be translated to any source (*).
If multicast source length is non zero, Multica
st source address field would be translated to IGMP / MLD source address.
</t>
<t> If flag bit 7 is set, it translates Membership repo
rt to be IGMP V1 or MLD V1.
</t>
<t> If flag bit 6 is set, it translates Membership repo
rt to be IGMP V2 or MLD V2.
</t>
<t> Flag bit 5 is only valid for IGMP Membership report
and if it is set, it translates to IGMP V3 report.
</t>
<t> If IE flag is set, it translate to IGMP / MLD Exc
lude mode membership report. If IE flag is not set (zero), it translates to Incl
ude mode membership report.
</t>
</list>
</t>
</section>
<section title="Default Selective Multicast Route">
<t>
If there is multicast router connected behind
the EVPN domain, the PE
MAY originate a default SMET (*,*) to get all
multicast traffic in
domain.
</t>
<figure >
<artwork ><![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> <t>The detailed encoding and procedures for these route types are
Consider the EVPN network of Figure-2, where there is an EVPN described in subsequent sections.
</t>
<section anchor="SMET" numbered="true" toc="default">
<name>Selective Multicast Ethernet Tag Route</name>
<t>A SMET route-type-specific EVPN NLRI
consists of the following:
</t>
<artwork 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>
<t>For the purpose of BGP route key processing, all the fields are
considered to be part of the prefix in the NLRI, except for the 1-octet
Flags field. The Flags fields are defined as follows:
</t>
<artwork name="" type="" align="center" alt=""><![CDATA[
0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
]]></artwork>
<ul spacing="normal">
<li>The least significant bit (bit 7) indicates support for IGMP versi
on
1. Since IGMPv1 is being deprecated, the sender <bcp14>MUST</bcp14> set
it to 0 for IGMP and the receiver <bcp14>MUST</bcp14> ignore it.
</li>
<li>The second least significant bit (bit 6) indicates support for IGM
P
version 2.
</li>
<li>The third least significant bit (bit 5) indicates support for IGMP
version 3.
</li>
<li>The fourth least significant bit (bit 4) indicates whether the (S,
G)
information carried within the route type is of an Include Group type
(bit value 0) or an Exclude Group type (bit value 1). The Exclude
Group type bit <bcp14>MUST</bcp14> be ignored if bit 5 is not set.
</li>
<li>This EVPN route type is used to carry tenant IGMP multicast group
information. The Flags field assists in distributing the IGMP Membershi
p
Report of a given host for a given multicast route. The version
bits help associate the IGMP version of receivers participating within
the EVPN domain.
</li>
<li>The IE bit helps in creating filters for a given
multicast route.
</li>
<li>If the route is used for IPv6 (MLD), then bit 7 indicates support
for MLD
version 1. The second least significant bit (bit 6) indicates support
for MLD version 2. Since there is no MLD version 3, in case of IPv6
routes, the third least significant bit <bcp14>MUST</bcp14> be 0. In ca
se of IPv6 routes,
the fourth least significant bit <bcp14>MUST</bcp14> be ignored if bit
6 is not
set.
</li>
<li> Reserved bits <bcp14>MUST</bcp14> be set to 0 by the sender, and
the receiver
<bcp14>MUST</bcp14> ignore the Reserved bits.
</li>
</ul>
<section numbered="true" toc="default">
<name>Constructing the Selective Multicast Ethernet Tag Route</name>
<t>This section describes the procedures used to construct the SMET ro
ute.
</t>
<t>The Route Distinguisher (RD) <bcp14>SHOULD</bcp14> be a Type 1 RD <
xref
target="RFC4364" format="default"/>. The
value field comprises an IP address of the PE (typically, the
loopback address), followed by a number unique to the PE.
</t>
<t>The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedur
e
defined in <xref target="RFC7432" format="default"/>.
</t>
<t>The Multicast Source Length <bcp14>MUST</bcp14> be set to the lengt
h of the Multicast
Source Address in bits. If the Multicast Source Address field
contains an IPv4 address, then the value of the Multicast Source
Length field is 32. If the Multicast Source Address field contains an
IPv6 address, then the value of the Multicast Source Length field is
128. In case of a (*,G) Membership Report, the Multicast Source Length
is set to
0.
</t>
<t>The Multicast Source Address is the source IP address from the IGMP
Membership Report.
In case of a (*,G) Membership Report, this field is not used.
</t>
<t>The Multicast Group Length <bcp14>MUST</bcp14> be set to the length
of the Multicast Group
Address in bits. If the Multicast Group Address field contains an
IPv4 address, then the value of the Multicast Group Length field is
32. If the Multicast Group Address field contains an IPv6 address,
then the value of the Multicast Group Length field is 128.
</t>
<t>The Multicast Group Address is the group address from the IGMP or M
LD
Membership Report.
</t>
<t>The Originator Router Length is the length of the Originator Router
Address in bits.
</t>
<t>The Originator Router Address is the IP address of the router origi
nating this route.
The SMET Originator Router IP address <bcp14>MUST</bcp14> match that of
the IMET (or
S-PMSI Authentic Data (AD))
route originated for the same EVI by the same downstream PE.
</t>
<t>The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the
multicast group had the Include/Exclude bit set.
</t>
<t> Reserved bits <bcp14>MUST</bcp14> be set to 0. They can be defined
by other documents in the future. </t>
<t>IGMP is used to receive group membership information from hosts
by Top-of-the-Rack (ToR) switches. Upon receiving the host's expression
of interest in a
particular group membership, this information is then forwarded using t
he
SMET route. The NLRI also keeps track
of the receiver's IGMP version and any source filtering for a
given group membership. All EVPN SMET routes are announced per EVI
Route Target extended communities (EVI-RT ECs).
</t>
</section>
<section numbered="true" toc="default">
<name>Reconstructing IGMP/MLD Membership Reports from the Selective Mu
lticast Route</name>
<t> This section describes the procedures used to reconstruct IGMP/ML
D Membership
Reports from the SMET route.
</t>
<ul spacing="normal">
<li> If the Multicast Group Length is 32, the route is
translated to the IGMP Membership Request. If the Multicast Group
Length is 128, the route is translated to an MLD
Membership Request. </li>
<li>The Multicast Group Address field is translated to
the IGMP/MLD group address.</li>
<li> If the Multicast Source Length is set to 0, it is
translated to any source (*).
If the Multicast Source Length is non-zero, the Multicast Source
Address field is translated to the IGMP/MLD source address.</li>
<li> If flag bit 7 is set, it translates the Membership Report to be
IGMPv1 or MLDv1.</li>
<li> If flag bit 6 is set, it translates the Membership Report to be
IGMPv2 or MLDv2.</li>
<li> Flag bit 5 is only valid for the IGMP Membership Report; if it i
s
set, it translates to the IGMPv3 report.</li>
<li> If the IE flag is set, it translates to the IGMP/MLD Exclude
mode Membership Report. If the IE flag is not set (0), it
translates to the Include mode Membership Report. </li>
</ul>
</section>
<section numbered="true" toc="default">
<name>Default Selective Multicast Route</name>
<t>If there is a multicast router connected behind the EVPN domain, th
e PE
<bcp14>MAY</bcp14> originate a default SMET (*,*) to get all multicast
traffic in
the domain.</t>
<figure anchor="EVPN-domain">
<name>Multicast Router behind the EVPN Domain</name>
<artwork name="" type="" align="center" alt=""><![CDATA[
+--------------+
| |
| |
| | +----+
| | | |---- H1(*,G1)v2
| IP/MPLS | | PE1|---- H2(S2,G2)v3
| Network | | |---- S2
| | | |
| | +----+
| |
+----+ | |
+----+ | | | |
| | S1 ---| PE2| | |
|PIM |----R1 ---| | | |
|ASM | +----+ | |
| | | |
+----+ +--------------+
]]></artwork>
</figure>
<t>Consider the EVPN network in <xref target="EVPN-domain"/>, where th
ere is an EVPN
instance configured across the PEs. Let's consider that PE2 is connect ed to instance configured across the PEs. Let's consider that PE2 is connect ed to
multicast router R1 and there is a network running PIM ASM behind R1. multicast router R1 and there is a network running PIM ASM behind R1.
If there are receivers behind the PIM ASM network the PIM Join would If there are receivers behind the PIM ASM network, the PIM Join would
be forwarded to the PIM RP (Rendezvous Point). If receivers behind be forwarded to the PIM Rendezvous Point (RP). If receivers behind the
PIM ASM network are interested in a multicast flow originated by PIM ASM network are interested in a multicast flow originated by
multicast source S2 (behind PE1), it is necessary for PE2 to receive multicast source S2 (behind PE1), it is necessary for PE2 to receive
multicast traffic. In this case PE2 MUST originate a (*,*) SMET route multicast traffic. In this case, PE2 <bcp14>MUST</bcp14> originate a ( *,*) SMET route
to receive all of the multicast traffic in the EVPN domain. To generat e to receive all of the multicast traffic in the EVPN domain. To generat e
Wildcards (*,*) routes, the procedure from <xref target="RFC6625"/> MU wildcard (*,*) routes, the procedure from <xref target="RFC6625" forma
ST be used. t="default"/>
</t> <bcp14>MUST</bcp14> be used.</t>
</section>
</section> </section>
<section numbered="true" toc="default">
</section> <name>Multicast Membership Report Synch Route</name>
<t>This EVPN route type is used to coordinate the IGMP Membership Report
<section title="Multicast Membership Report Synch Route"> (x,G)
state for a given BD between the PEs attached to a given ES operating in
<t> All-Active (or Single-Active) redundancy mode, and it consists of the
This EVPN route type is used to coordinate IG following:</t>
MP Membership Report (x,G) state for <artwork name="" type="" align="center" alt=""><![CDATA[+-----------------------
a given BD between the PEs attached to a give ---------------------------+
n ES operating in All- | RD (8 octets) |
Active (or Single-Active) redundancy mode and +--------------------------------------------------+
it consists of | Ethernet Segment Identifier (10 octets) |
following: +--------------------------------------------------+
</t> | Ethernet Tag ID (4 octets) |
+--------------------------------------------------+
<figure > | Multicast Source Length (1 octet) |
<artwork ><![CDATA[ +--------------------------------------------------+
| Multicast Source Address (variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| RD (8 octets) | | Multicast Group Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Ethernet Segment Identifier (10 octets) | | Multicast Group Address (Variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Ethernet Tag ID (4 octets) | | Originator Router Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Source Length (1 octet) | | Originator Router Address (variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Source Address (variable) | | Flags (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Group Length (1 octet) | ]]></artwork>
+--------------------------------------------------+ <t>For the purpose of BGP route key processing, all the fields are
| Multicast Group Address (Variable) | considered to be part of the prefix in the NLRI, except for the 1-octet
+--------------------------------------------------+ Flags field, whose fields are defined as follows:</t>
| Originator Router Length (1 octet) | <artwork name="" type="" align="center" alt=""><![CDATA[
+--------------------------------------------------+ 0 1 2 3 4 5 6 7
| Originator Router Address (variable) | +--+--+--+--+--+--+--+--+
+--------------------------------------------------+ | reserved |IE|v3|v2|v1|
| Flags (1 octet) | +--+--+--+--+--+--+--+--+
+--------------------------------------------------+ ]]></artwork>
<ul spacing="normal">
]]></artwork> <li> The least significant bit (bit 7) indicates support for IGMP vers
</figure> ion 1. </li>
<li> The second least significant bit (bit 6) indicates support for IG
<t> MP version 2. </li>
For the purpose of BGP route key processing, a <li> The third least significant bit (bit 5) indicates support for IGM
ll the fields are P version 3. </li>
considered to be part of the prefix in the NLR <li> The fourth least significant bit (bit 4) indicates whether the (S
I except for the one- , G) information
octet Flags field, whose fields are defined as carried within the route type is of an Include Group type (bit value 0)
follows: or an Exclude Group
</t> type (bit value 1). The Exclude Group type bit <bcp14>MUST</bcp14> be i
<figure > gnored if bit 5 is
<artwork ><![CDATA[ not set. </li>
<li> Reserved bits <bcp14>MUST</bcp14> be set to 0.</li>
0 1 2 3 4 5 6 7 </ul>
+--+--+--+--+--+--+--+--+ <t>The Flags field assists in distributing the IGMP Membership Report of
| reserved |IE|v3|v2|v1| a
+--+--+--+--+--+--+--+--+ given host for a given multicast route. The version bits help
associate the IGMP version of receivers participating within the EVPN
]]></artwork> domain. The Include/Exclude bit helps in creating filters for a
</figure> given multicast route.</t>
<t>If the route is being prepared for IPv6 (MLD), then bit 7 indicates
<t> support for MLD version 1. The second least significant bit (bit 6)
<list style="symbols"> indicates support for MLD version 2. Since there is no MLD version 3,
<t> The least significant bit, bit 7 indicates support in case of the IPv6 route, the third least significant bit <bcp14>MUST</b
for IGMP version 1. </t> cp14>
<t> The second least significant bit, bit 6 indica be 0. In case of the IPv6 route, the fourth least significant bit <bcp14>
tes support for IGMP version 2. </t> MUST</bcp14>
<t> The third least significant bit, bit 5 indicat be ignored if bit 6 is not set.</t>
es support for IGMP version 3. </t> <section numbered="true" toc="default">
<t> The fourth least significant bit, bit 4 indica <name>Constructing the Multicast Membership Report Synch Route</name>
tes whether the (S, G) information <t>This section describes the procedures used to construct the IGMP Me
carried within the route-type is of Includ mbership Report
e Group type (bit value 0) or an Exclude Group type Synch route. Support for these route types is optional. If a PE does
(bit value 1). The Exclude Group type bit not support this route, then it <bcp14>MUST NOT</bcp14> indicate that i
MUST be ignored if bit 5 is t supports
not set. </t> "IGMP Proxy" in the Multicast Flags Extended Community for the EVIs
<t> Reserved bits MUST be set to 0. corresponding to its multihomed ESs.</t>
</t> <t>An IGMP Membership Report Synch route <bcp14>MUST</bcp14> carry exa
</list> ctly one
ES-Import Route
</t> Target extended community, i.e., the one that corresponds to the ES on
which the IGMP Membership Report was received. It <bcp14>MUST</bcp14>
<t> also carry
The Flags field assists in distributing IGMP Membership Re exactly one EVI-RT EC, i.e., the one that corresponds to the EVI on
port of a which the IGMP Membership Report
given host for a given multicast route. The version bits h was received. See <xref target="evi-rt" format="default"/> for details
elp on how to
associate IGMP version of receivers participating within t encode and construct the EVI-RT EC.</t>
he EVPN <t>The RD <bcp14>SHOULD</bcp14> be Type 1 <xref
domain. The include/exclude bit helps in creating filters target="RFC4364" format="default"/>. The
for a value field comprises an IP address of the PE (typically, the
given multicast route. loopback address), followed by a number unique to the PE.</t>
</t> <t>The Ethernet Segment Identifier (ESI) <bcp14>MUST</bcp14> be set to
the 10-octet
<t> value defined for the ES.</t>
If route is being prepared for IPv6 (MLD) then bit 7 <t>The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedur
indicates e defined in
support for MLD version 1. The second least signific <xref target="RFC7432" format="default"/>.</t>
ant bit, bit 6 <t>The Multicast Source Length <bcp14>MUST</bcp14> be set to the
indicates support for MLD version 2. Since there is length of the Multicast Source
no MLD version 3, Address in bits. If the Multicast Source field contains an IPv4
in case of IPv6 route third least significant bit MU address, then the value of the Multicast Source Length field is 32.
ST be 0. In case If the Multicast Source field contains an IPv6 address, then the
of IPv6 route, the fourth least significant bit MUST value of the Multicast Source Length field is 128. In case of a (*,G)
be ignored if Membership Report, the Multicast Source Length is set to 0.</t>
bit 6 is not set. <t>The Multicast Source is the source IP address of the IGMP Membershi
</t> p
Report. In case of a (*,G) Membership Report, this field does not exis
<section title="Constructing the Multicast Membership Report S t.</t>
ynch Route"> <t>The Multicast Group Length <bcp14>MUST</bcp14> be set to the length
<t> of the
This section describes the procedures used Multicast Group
to construct the IGMP Membership Report Address in bits. If the Multicast Group field contains an IPv4
Synch route. Support for these route types address, then the value of the Multicast Group Length field is 32.
is optional. If a PE does If the Multicast Group field contains an IPv6 address, then the value
not support this route, then it MUST NOT in of the Multicast Group Length field is 128.</t>
dicate that it supports <t>The Multicast Group is the group address of the IGMP Membership
'IGMP proxy' in the Multicast Flag extended Report.</t>
community for the EVIs <t>The Originator Router Length is the length of the Originator Router
corresponding to its multi-homed Ethernet S Address in bits.</t>
egments (ESs). <t>The Originator Router Address is the IP address of the router origi
</t> nating the prefix.</t>
<t>The Flags field indicates the version of IGMP from which the
<t> Membership Report was received. It also indicates whether the
An IGMP Membership Report Synch route MUST multicast group had the Include/Exclude bit set.</t>
carry exactly one ES-Import Route <t> Reserved bits <bcp14>MUST</bcp14> be set to 0.</t>
Target extended community, the one that cor </section>
responds to the ES on <section numbered="true" toc="default">
which the IGMP Membership Report was receiv <name>Reconstructing IGMP/MLD Membership Reports from a Multicast Memb
ed. It MUST also carry exactly one ership
EVI-RT EC, the one that corresponds to the Report Synch Route</name>
EVI on which the IGMP Membership Report <t> This section describes the procedures used to reconstruct IGMP/ML
was received. See <xref target="evi-rt"/> D
for details on how to encode and Membership Reports from the Multicast Membership Report Synch route.</t
construct the EVI-RT EC. >
</t> <ul spacing="normal">
<li> If the Multicast Group Length is 32, the route is translated
<t> to the IGMP Membership Request. If the Multicast Group Length is 128,
The Route Distinguisher (RD) SHOULD be a Ty the route is translated to an MLD Membership Request. </li>
pe 1 RD <xref target="RFC4364"/>. The <li> The Multicast Group Address field is translated to the
value field comprises an IP address of the IGMP/MLD group address.</li>
PE (typically, the <li> If the Multicast Source Length is set to 0, it is translated to
loopback address) followed by a number uniq any source (*). If the Multicast Source Length is non-zero, the
ue to the PE. Multicast Source
</t> Address field is translated to the IGMP/MLD source address.</li>
<li> If flag bit 7 is set, it translates the Membership Report to be
<t> IGMPv1 or MLDv1.</li>
The Ethernet Segment Identifier (ESI) MUST <li> If flag bit 6 is set, it translates the Membership Report to be
be set to the 10-octet IGMPv2 or MLDv2.</li>
value defined for the ES. <li> Flag bit 5 is only valid for the IGMP Membership Report; if it
</t> is
set, it translates to the IGMPv3 report.</li>
<t> <li> If the IE flag is set, it translates to the IGMP/MLD Exclude mo
The Ethernet Tag ID MUST be set as per procedu de
re defined in <xref target="RFC7432"/>. Membership Report. If the IE flag is not set (0), it translates to th
</t> e
Include mode Membership Report. </li>
<t> </ul>
The Multicast Source length MUST be set to length o </section>
f Multicast Source </section>
address in bits. If the Multicast Source field cont <section numbered="true" toc="default">
ains an IPv4 <name>Multicast Leave Synch Route</name>
address, then the value of the Multicast Source Len <t>This EVPN route type is used to coordinate the IGMP Leave Group (x,G)
gth field is 32. state for a given BD between the PEs attached to a given ES operating
If the Multicast Source field contains an IPv6 addr in an All-Active (or Single-Active) redundancy mode, and it consists of t
ess, then the he
value of the Multicast Source Length field is 128. following:</t>
In case of a (*,G) <artwork name="" type="" align="center" alt=""><![CDATA[
Membership Report, the Multicast Source Length is s +--------------------------------------------------+
et to 0. | RD (8 octets) |
+--------------------------------------------------+
</t> | Ethernet Segment Identifier (10 octets) |
+--------------------------------------------------+
<t> | Ethernet Tag ID (4 octets) |
The Multicast Source is the Source IP address +--------------------------------------------------+
of the IGMP Membership | Multicast Source Length (1 octet) |
Report. In case of a (*,G) Membership Report, +--------------------------------------------------+
this field does not exist. | Multicast Source Address (variable) |
</t> +--------------------------------------------------+
| Multicast Group Length (1 octet) |
<t> +--------------------------------------------------+
The Multicast Group length MUST be set to l | Multicast Group Address (Variable) |
ength of multicast group +--------------------------------------------------+
address in bits. If the Multicast Group fie | Originator Router Length (1 octet) |
ld contains an IPv4 +--------------------------------------------------+
address, then the value of the Multicast Gr | Originator Router Address (variable) |
oup Length field is 32. +--------------------------------------------------+
If the Multicast Group field contains an IP | Reserved (4 octets) |
v6 address, then the value +--------------------------------------------------+
of the Multicast Group Length field is 128. | Maximum Response Time (1 octet) |
</t> +--------------------------------------------------+
| Flags (1 octet) |
<t> +--------------------------------------------------+
The Multicast Group is the Group address ]]></artwork>
of the IGMP Membership <t>For the purpose of BGP route key processing, all the fields are
Report. considered to be part of the prefix in the NLRI, except for the Reserved,
</t> Maximum Response Time, and 1-octet Flags fields, which are defined as fol
lows:</t>
<t> <artwork name="" type="" align="center" alt=""><![CDATA[
The Originator Router Length is the le 0 1 2 3 4 5 6 7
ngth of the Originator Router +--+--+--+--+--+--+--+--+
address in bits. | reserved |IE|v3|v2|v1|
</t> +--+--+--+--+--+--+--+--+
]]></artwork>
<t> <ul spacing="normal">
The Originator Router Address is the IP add <li> The least significant bit (bit 7) indicates support for IGMP ver
ress of Router Originating the prefix. sion 1. </li>
</t> <li> The second least significant bit (bit 6) indicates support for I
GMP version 2. </li>
<t> <li> The third least significant bit (bit 5) indicates support for IG
The Flags field indicates the version of IG MP version 3. </li>
MP protocol from which the <li> The fourth least significant bit (bit 4) indicates whether the (
Membership Report was received. It also ind S, G) information
icates whether the carried within the route type is of an Include Group type (bit value 0)
multicast group had INCLUDE or EXCLUDE bit or an Exclude Group
set. type (bit value 1). The Exclude Group type bit <bcp14>MUST</bcp14> be
</t> ignored if bit 5
<t> Reserved bits MUST be set to is not set. </li>
0. <li> Reserved bits <bcp14>MUST</bcp14> be set to 0. They can be define
</t> d by
other documents in the future. </li>
</section> </ul>
<section title="Reconstructing I <t>The Flags field assists in distributing the IGMP Membership Report of
GMP / MLD Membership Reports from Multicast Membership Report Sync Route"> a
<t> Th given host for a given multicast route. The version bits help
is section describes the procedures used to reconstruct IGMP / MLD Membership Re associate the IGMP version of the receivers participating within the EVPN
ports from Multicast Membership Report Sync route. domain. The Include/Exclude bit helps in creating filters for a
</t> given multicast route.</t>
<t> <t>If the route is being prepared for IPv6 (MLD), then bit 7 indicates
<list style="symbols"> support for MLD version 1. The second least significant bit (bit 6)
<t> If multicast group length is 32, rou indicates support for MLD version 2. Since there is no MLD version 3,
te would be translated to IGMP membership request. If multicast group length is in case of the IPv6 route, the third least significant bit <bcp14>MUST</b
128, route would be translated to MLD membership request. cp14> be 0. In case
</t> of the IPv6 route, the fourth least significant bit <bcp14>MUST</bcp14> b
e ignored if
<t> Multicast group address field would be translated bit 6 is not set.</t>
to IGMP / MLD group address. <t> Reserved bits in the flag <bcp14>MUST</bcp14> be set to 0. They can
</t> be
<t> If Multicast source length is set to zero it would defined by other documents in the future. </t>
be translated to any source (*). <section numbered="true" toc="default">
If multicast source length is non zero, Multica <name>Constructing the Multicast Leave Synch Route</name>
st source address field would be translated to IGMP / MLD source address. <t>This section describes the procedures used to construct the IGMP
</t> Leave Synch route. Support for these route types is optional. If a PE
<t> If flag bit 7 is set, it translates Membership repo does not support this route, then it <bcp14>MUST NOT</bcp14> indicate t
rt to be IGMP V1 or MLD V1. hat it
</t> supports "IGMP Proxy" in the Multicast Flags Extended Community for the
<t> If flag bit 6 is set, it translates Membership repo EVIs corresponding to its multihomed Ethernet segments.</t>
rt to be IGMP V2 or MLD V2. <t>An IGMP Leave Synch route <bcp14>MUST</bcp14> carry exactly one ES-
</t> Import Route
<t> Flag bit 5 is only valid for IGMP Membership report Target extended community, i.e., the one that corresponds to the ES on
and if it is set, it translates to IGMP V3 report. which the IGMP Leave was received. It <bcp14>MUST</bcp14> also carry e
</t> xactly one
<t> If IE flag is set, it translate to IGMP / MLD Exc EVI-RT EC, i.e., the one that corresponds to the EVI on which the IGMP
lude mode membership report. If IE flag is not set (zero), it translates to Incl Leave was received. See <xref target="evi-rt"/> for details on how to
ude mode membership report. form the
</t> EVI-RT EC.</t>
</list> <t>The RD <bcp14>SHOULD</bcp14> be Type 1 <xref
</t> target="RFC4364" format="default"/>. The
value field comprises an IP address of the PE (typically, the
</section> loopback address), followed by a number unique to the PE.</t>
</section> <t>The ESI <bcp14>MUST</bcp14> be set to the 10-octet
value defined for the ES.</t>
<section title="Multicast Leave Synch Route"> <t>The Ethernet Tag ID <bcp14>MUST</bcp14> be set, as per the procedur
<t> e
This EVPN route type is used to coordinate IGMP defined in <xref target="RFC7432" format="default"/>.</t>
Leave Group (x,G) <t>The Multicast Source Length <bcp14>MUST</bcp14> be set to the lengt
state for a given BD between the PEs attached to h
a given ES operating of the Multicast Source
in All-Active (or Single-Active) redundancy mode Address in bits. If the Multicast Source field contains an IPv4
and it consists of address, then the value of the Multicast Source Length field is 32.
following: If the Multicast Source field contains an IPv6 address, then the
</t> 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>
<figure > <t>The Multicast Source is the source IP address of the IGMP Membershi
<artwork ><![CDATA[ p
Report. In case of a (*,G) Membership Report, this field does not exis
+--------------------------------------------------+ t.</t>
| RD (8 octets) | <t>The Multicast Group Length <bcp14>MUST</bcp14> be set to the length
+--------------------------------------------------+ of the
| Ethernet Segment Identifier (10 octets) | Multicast Group
+--------------------------------------------------+ Address in bits. If the Multicast Group field contains an IPv4
| Ethernet Tag ID (4 octets) | address, then the value of the Multicast Group Length field is 32.
+--------------------------------------------------+ If the Multicast Group field contains an IPv6 address, then the value
| Multicast Source Length (1 octet) | of the Multicast Group Length field is 128.</t>
+--------------------------------------------------+ <t>The Multicast Group is the group address of the IGMP Membership Rep
| Multicast Source Address (variable) | ort.</t>
+--------------------------------------------------+ <t>The Originator Router Length is the length of the Originator Router
| Multicast Group Length (1 octet) | Address
+--------------------------------------------------+ in bits.</t>
| Multicast Group Address (Variable) | <t>The Originator Router Address is the IP address of the router
+--------------------------------------------------+ originating the prefix.</t>
| Originator Router Length (1 octet) | <t> The Reserved field is not part of the route key. The originator <b
+--------------------------------------------------+ cp14>MUST</bcp14> set
| Originator Router Address (variable) | the Reserved field to 0;
+--------------------------------------------------+ the receiver <bcp14>SHOULD</bcp14> ignore it, and if it needs to be pro
| Reserved (4 octet) | pagated, it
+--------------------------------------------------+ <bcp14>MUST</bcp14> propagate it unchanged.</t>
| Maximum Response Time (1 octet) | <t> The Maximum Response Time is the value to be used while sending a
+--------------------------------------------------+ query, as defined in
| Flags (1 octet) | <xref target="RFC2236" format="default"/>.</t>
+--------------------------------------------------+ <t>The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the
]]></artwork> multicast group had an Include/Exclude bit set.</t>
</figure> </section>
<section numbered="true" toc="default">
<t> <name>Reconstructing IGMP/MLD Leave from a Multicast Leave Synch Route
For the purpose of BGP route key processing, all the fields </name>
are <t>This section describes the procedures used to reconstruct IGMP/MLD
considered to be part of the prefix in the NLRI except for t Leave from
he Reserved, the Multicast Leave Synch route.</t>
Maximum Response Time and the one-octet Flags field, whose f <ul spacing="normal">
ields are <li> If the Multicast Group Length is 32, the route is translated
defined as follows: to IGMP Leave. If the
</t> Multicast Group Length is 128, the route is translated to MLD
Leave.</li>
<figure <li> The Multicast Group Address field is translated to an
> IGMP/MLD group address.</li>
<artwork ><![CDATA[ <li> If the Multicast Source Length is set to 0, it is
0 1 2 3 4 5 6 7 translated to any source (*).
+--+--+--+--+--+--+--+--+ If the Multicast Source Length is non-zero, the Multicast Source
| reserved |IE|v3|v2|v1| Address field is translated to the IGMP/MLD source address.</li>
+--+--+--+--+--+--+--+--+ <li> If flag bit 7 is set, it translates the Membership Report to be
IGMPv1 or MLDv1.</li>
]]></artwork> <li> If flag bit 6 is set, it translates the Membership Report to be
</figure> IGMPv2 or MLDv2.</li>
<li> Flag bit 5 is only valid for the IGMP Membership Report; if it
<t> is set, it
<list style="symbols"> translates to the IGMPv3 report.</li>
<t> The least significant bit, bit 7 indicates su <li> If the IE flag is set, it translates to the IGMP/MLD Exclude mo
pport for IGMP version 1. </t> de Leave.
<t> The second least significant bit, bit 6 indic If the IE flag is not set (0), it translates to the Include mode Leav
ates support for IGMP version 2. </t> e. </li>
<t> The third least significant bit, bit 5 indica </ul>
tes support for IGMP version 3. </t> </section>
<t> The fourth least significant bit, bit 4 indic </section>
ates whether the (S, G) information carried <section numbered="true" toc="default">
within the route-type is of Include Group <name>Multicast Flags Extended Community</name>
type (bit value 0) or an Exclude Group type <t>The Multicast Flags Extended Community is a new EVPN Extended
(bit value 1). The Exclude Group type bit Community. EVPN Extended Communities are transitive extended
MUST be ignored if bit 5 is not set. </t> communities with a Type Value of 0x06. IANA has assigned 0x09 to Multica
<t> Reserved bits MUST be set to 0. They can b st Flags Extended Community in the "EVPN Extended Community Sub-Types" subregist
e defined in future by other document. ry.</t>
</t> <t>A PE that supports IGMP and/or the MLD Proxy on a given BD
</list> <bcp14>MUST</bcp14> attach this extended community to the IMET route it
</t> advertises for that BD, and it <bcp14>MUST</bcp14> set the IGMP and/or ML
D Proxy
<t> Support flags to 1. Note that a PE compliant with <xref target="RFC7432"
The Flags field assists in distributing IGMP Membershi format="default"/>
p Report of a will not advertise this
given host for a given multicast route. The version bi extended community, so its absence indicates that the advertising PE
ts help does not support either IGMP or MLD Proxies.</t>
associate IGMP version of receivers participating with <t>The advertisement of this extended community enables a more efficient
in the EVPN multicast tunnel setup from the source PE specially for ingress
domain. The include/exclude bit helps in creating fil replication, i.e., if an egress PE supports the IGMP Proxy but doesn't
ters for a have any interest in a given (x,G), it advertises its IGMP Proxy
given multicast route. capability using this extended community, but it does not advertise
</t> any SMET route for that (x,G). When the source PE (ingress PE)
receives such advertisements from the egress PE, it does not
<t> replicate the multicast traffic to that egress PE; however, it does
If route is being prepared for IPv6 (MLD) then bit replicate the multicast traffic to the egress PEs that don't
7 indicates advertise such capability, even if they don't have any interests in
support for MLD version 1. The second least signif that (x,G).</t>
icant bit, bit 6 <t>A Multicast Flags Extended Community is encoded as an 8-octet value
indicates support for MLD version 2. Since there i as follows:</t>
s no MLD version 3, <artwork name="" type="" align="center" alt=""><![CDATA[
in case of IPv6 route third least significant bit 0 1 2 3
MUST be 0. In case 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
of IPv6 route, the fourth least significant bit M +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
UST be ignored if | Type=0x06 |Sub-Type=0x09 | Flags (2 Octets) |M|I|
bit 6 is not set. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</t> | Reserved=0 |
<t> Reserved bits in flag MUST be set to 0. They can be d +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
efined in future by other document. ]]></artwork>
</t>
<section title="Constructing the Multicast Leave Synch Ro
ute">
<t>
This section describes the procedures use
d to construct the IGMP
Leave Synch route. Support for these ro
ute types is optional. If a PE
does not support this route, then it MUS
T NOT indicate that it
supports 'IGMP proxy' in Multicast Flag
extended community for the
EVIs corresponding to its multi-homed Et
hernet Segments.
</t>
<t>
An IGMP Leave Synch route MUST carry exact
ly one ES-Import Route
Target extended community, the one that co
rresponds to the ES on
which the IGMP Leave was received. It MUS
T also carry exactly one
EVI-RT EC, the one that corresponds to the
EVI on which the IGMP
Leave was received. See Section 9.5 for d
etails on how to form the
EVI-RT EC.
</t>
<t>
The Route Distinguisher (RD) SHOULD be
a Type 1 RD <xref target="RFC4364"/>. The
value field comprises an IP address of
the PE (typically, the
loopback address) followed by a number
unique to the PE.
</t>
<t>
The Ethernet Segment Identifier (ESI) MUST
be set to the 10-octet
value defined for the ES.
</t>
<t>
The Ethernet Tag ID MUST be set as per pr
ocedure defined in <xref target="RFC7432"/>.
</t>
<t>
The Multicast Source length MUST be set t
o length of 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 fiel
d is 128. In case of a (*,G)
Membership Report, the Multicast Source
Length is set to 0.
</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 not exist.
</t>
<t>
The Multicast Group length MUST be set
to length of multicast group
address in bits. If the Multicast Grou
p field contains an IPv4
address, then the value of the Multica
st Group Length field is 32.
If the Multicast Group field contains
an IPv6 address, then the value
of the Multicast Group Length field is
128.
</t>
<t>
The Multicast Group is the Group addre
ss of the IGMP Membership Report.
</t>
<t>
The Originator Router Length is the length
of the Originator Router
address in bits.
</t>
<t>
The Originator Router Address is the I
P address of Router Originating the prefix.
</t>
<t> Reserved field is not part of the route key.
The originator MUST set the reserved field to Zero ,
the receiver SHOULD ignore it and if it n
eeds to be propagated, it MUST propagate it unchanged
</t>
<t> Maximum Response Time is value to be used whi
le sending query as defined in <xref target="RFC2236"/>
</t>
<t>
The Flags field indicates the version
of IGMP protocol from which the
Membership Report was received. It als
o indicates whether the
multicast group had INCLUDE or EXCLUDE
bit set.
</t>
</section>
<section title="Reconstructing IGMP / MLD Leave from Multicast Leave Sync Route"
>
<t> Th
is section describes the procedures used to reconstruct IGMP / MLD Leave from M
ulticast Leave Sync route.
</t>
<t>
<list style="symbols">
<t> If multicast group length is 32, rou
te would be translated to IGMP Leave. If multicast group length is 128, route wo
uld be translated to MLD Leave.
</t>
<t> Multicast group address field would be translated
to IGMP / MLD group address.
</t>
<t> If Multicast source length is set to zero it would
be translated to any source (*).
If multicast source length is non zero, Multica
st source address field would be translated to IGMP / MLD source address.
</t>
<t> If flag bit 7 is set, it translates Membership repo
rt to be IGMP V1 or MLD V1.
</t>
<t> If flag bit 6 is set, it translates Membership repo
rt to be IGMP V2 or MLD V2.
</t>
<t> Flag bit 5 is only valid for IGMP Membership report
and if it is set, it translates to IGMP V3 report.
</t>
<t> If IE flag is set, it translate to IGMP / MLD Exc
lude mode Leave. If IE flag is not set (zero), it translates to Include mode Lea
ve.
</t>
<t>
</t>
</list>
</t>
</section>
</section>
<section title="Multicast Flags Extended Community">
<t>
The 'Multicast Flags' extended community is a
new EVPN extended
community. EVPN extended communities are tra
nsitive extended
communities with a Type field value of 6. IA
NA will assign a Sub-Type
from the 'EVPN Extended Community Sub-Types'
registry.
</t>
<t>
A PE that supports IGMP and/or MLD Proxy on a gi
ven BD
MUST attach this extended community to the IMET
route it advertises
advertises for that BD and it MUST set the IGMP
and/or MLD Proxy
Support flags to 1. Note that an <xref target="R
FC7432"/> compliant PE will not advertise this
extended community so its absence indicates that
the advertising PE
does not support either IGMP or MLD Proxy.
</t>
<t>
The advertisement of this extended community enab
les more efficient
multicast tunnel setup from the source PE special
ly for ingress
replication - i.e., if an egress PE supports IGMP
proxy but doesn't
have any interest in a given (x,G), it advertises
its IGMP proxy
capability using this extended community but it d
oes not advertise
any SMET route for that (x,G). When the source PE
(ingress PE)
receives such advertisements from the egress PE,
it does not
replicate the multicast traffic to that egress PE
; however, it does
replicate the multicast traffic to the egress PEs
that don't
advertise such capability even if they don't have
any interests in
that (x,G).
</t>
<t>
A Multicast Flags extended community is encode
d as an 8-octet value,
as follows:
</t>
<figure >
<artwork ><![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 low-order (lease significant) two bits are defined as th
e "IGMP
Proxy Support and MLD Proxy Support" bit. The absence of thi
s
extended community also means that the PE does not support I
GMP
proxy. where:
</t>
<t>
<list style="symbols">
<t> Type is 0x06 as registered with IANA for EVPN Exten
ded Communities. </t>
<t> Sub-Type : 0x09</t>
<t>
Flags are two Octets value.
<list style="symbols">
<t> Bit 15 (shown as I) def
ines IGMP Proxy Support. Value of 1 for
bit 15 means that P
E supports IGMP Proxy. Value of 0 for bit 15
means that PE does
not supports IGMP Proxy.</t>
<t>Bit 14 (shown as M) defi
nes MLD Proxy Support. Value of 1 for
bit 14 means that
PE supports MLD Proxy. Value of 0 for bit 14
means that PE does
not support MLD proxy. </t>
<t>Bit 0 to 13 are reserved
for future. Sender MUST set it 0 and receiver MUST ignore it. </t>
</list>
</t>
<t> Reserved bits are set to 0. Sender MUST set i
t to 0 and receiver MUST ignore it.</t>
</list>
</t>
<t> If a router does not support this specification, it MUST NOT ad
d Multicast Flags Extended Community
in BGP route. A router receiving BGP update,
if M and I both flag are zero (0), the router MUST treat th
is Update as malformed. Receiver of such
update MUST ignore the extended community.
</t>
</section>
<section title="EVI-RT Extended Community" anchor="evi-rt">
<t>
In EVPN, every EVI is associated with one
or more Route Targets
(RTs). These Route Targets serve two fun
ctions:
<list style="numbers">
<t>
Distribution control: RTs
control the distribution of the
routes. If a route carri
es the RT associated with a particular
EVI, it will be distribu
ted to all the PEs on which that EVI
exists.
</t>
<t>
EVI identification: O
nce a route has been received by a
particular PE, the RT
is used to identify the EVI to which it
applies.
</t>
</list>
</t>
<t>
An IGMP Membership Report Synch or IGMP L
eave Synch route is associated with a
particular combination of ES and EVI. T
hese routes need to be
distributed only to PEs that are attache
d to the associated ES.
Therefore these routes carry the ES-Imp
ort RT for that ES.
</t>
<t>
Since an IGMP Membership Report Synch or I
GMP 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 a
ssociated with that
EVI. Therefore, when such a route arrives
at a particular PE, the
route's RTs cannot be used to identify the
EVI to which the route
applies. Some other means of associating
the route with an EVI
must be used.
</t>
<t>
This document specifies four new Extended Comm
unities (EC) that
can be used to identify the EVI with which a
route is associated,
but which do not have any effect on the distr
ibution of the
route. These new ECs are known as the "Type
0 EVI-RT EC", the
"Type 1 EVI-RT EC", the "Type 2 EVI-RT EC", a
nd the "Type 3 EVI-RT EC".
<list style="numbers">
<t> A Type 0 EVI-RT EC is an EVPN EC
(type 6) of sub-type 0xA.</t>
<t> A Type 1 EVI-RT EC is an EVPN EC
(type 6) of sub-type 0xB.</t>
<t> A Type 2 EVI-RT EC is an EVPN EC
(type 6) of sub-type 0xC.</t>
<t> A Type 3 EVI-RT EC is an EVPN EC
(type 6) of sub-type 0xD</t>
</list>
</t>
<t>
Each IGMP Membership Report Synch or IGMP Leave S
ynch route MUST carry exactly
one EVI-RT EC. The EVI-RT EC carried by a partic
ular route is
constructed as follows. Each such route is the r
esult of having
received an IGMP Membership Report or an IGMP Lea
ve 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 al
l PEs attached
to that BD. So suppose a given IGMP Membership R
eport 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. If RT1 is a Transitive Two-Octet A
S-specific EC, then the EVI-
RT EC carried by the route is a T
ype 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 RT1 is a Transitive IPv4-Addres
s-specific EC, then the EVI-
RT EC carried by the route is a T
ype 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 RT1 is a Transitive Four-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 identi
cal to the value field of RT1.</t>
<t> 3. If RT1 is a Transitive IPv6-Addres
s-specific EC, then the EVI-RT
EC carried by the route is a Type
3 EVI-RT EC. The value
field of the Type 3 EVI-RT EC is
identical to the value field of
RT1.
</t>
</list>
</t>
<t>
An IGMP Membership Report Synch or Leave S
ynch route MUST carry exactly one EVI-RT EC.
</t>
<t>
Suppose a PE receives a particular IGMP Me
mbership Report Synch or IGMP Leave
Synch route, say R1, and suppose that R1
carries an ES-Import RT
that is one of the PE's Import RTs. If
R1 has no EVI-RT EC, or
has more than one EVI-RT EC, the PE MUST
apply the "treat-as-withdraw"
procedure of <xref target="RFC7606"/>.
</t>
<t>
Note that an EVI-RT EC is not a Route Targ
et Extended Community,
is not visible to the RT Constrain mechani
sm <xref target="RFC4684"/>, and is
not intended to influence the propagation
of routes by BGP.
</t>
<figure >
<artwork ><![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 value of 'n' is 0x0A, 0x0B, 0x0C, or 0x0D corr
esponding
to EVI-RT type 0, 1, 2, or 3 respectively.
</t>
</section>
<section title="Rewriting of RT ECs and EVI-RT ECs by ASBRs">
<t>
There are certain situations in which an
ES is attached to a set
of PEs that are not all in the same AS, o
r not all operated by
the same provider. In some such situati
ons, the RT that
corresponds to a particular EVI may be d
ifferent in each AS. If
a route is propagated from AS1 to AS2, a
n 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 EVI
s) RTs that are
meaningful in AS2. This is known as RT-
rewriting.
</t>
<t>
Note that if a given route's RTs are rewri
tten, and the route
carries an EVI-RT EC, the EVI-RT EC needs
to be rewritten as
well.
</t>
</section>
<section title="BGP Error Handling">
<t>
If a received BGP update contains Flags not in a
ccordance with IGMP/MLD version-X expectation,
the PE MUST apply the "treat-as-withdraw" proced
ure as per <xref target="RFC7606"/>
</t>
<t>
If a received BGP update is malformed such that
BGP route keys cannot be extracted, then
BGP update MUST be considered as invalid. Receiv
ing PE MUST apply the "Session reset" procedure of <xref target="RFC7606"/>.
</t>
</section>
</section>
<section title="IGMP Version 1 Membership Report">
<t>
This document does not provide any detail about IGMPv1 p
rocessing.
Implementations are expected to only use IGMPv2 and above for IPv4 and
MLDv1 and above for IPv6. IGMPv1 routes are considered invalid and the
PE MUST apply the "treat-as-withdraw" procedure as per <xref target="RFC7606"
/>.
</t>
</section>
<section title="Security Considerations">
<t>
This document describes a means to efficiently operate IGMP and ML
D on a subnet
constructed across multiple PODs or DCs via an EVPN solution. The
security
considerations for the operation of the underlying EVPN and BGP su
bstrate are
described in <xref target="RFC7432"/>, and specific multicast cons
iderations are outlined in
<xref target="RFC6513"/> and <xref target="RFC6514"/>. The EVPN a
nd associated IGMP proxy provides a single
broadcast domain so the same security considerations of IGMPv2 <xr
ef target="RFC2236"/>,
<xref target="RFC3376"/>, MLD <xref target="RFC2710"/>, or MLDv2 <
xref target="RFC3810"/> apply.
</t>
</section>
<section title="IANA Considerations">
<section title="EVPN Extended Community Sub-Types Registrations"> <t>The low-order (least significant) 2 bits are defined as the "IGMP
<t> Proxy Support" and "MLD Proxy Support" bits (see <xref target="multicast_
IANA has allocated the following codepoints from the EVPN Extended Co flags_extended_community"/>. The absence of this
mmunity Sub-Types extended community also means that the PE does not support the IGMP
sub-registry of the BGP Extended Communities registry. </t> Proxy, where:</t>
<ul spacing="normal">
<li> The Type is 0x06, as registered with IANA for EVPN Extended Commu
nities. </li>
<li> The Sub-Type is 0x09.</li>
<li>
<t>Flags are 2-octet values.</t>
<figure> <ul spacing="normal">
<artwork ><![CDATA[ <li> Bit 15 (shown as I) defines IGMP Proxy Support. The value of
1 for
bit 15 means that the PE supports the IGMP Proxy. The value of 0 fo
r bit 15
means that the PE does not support the IGMP Proxy.</li>
<li>Bit 14 (shown as M) defines MLD Proxy Support. The value of 1
for
bit 14 means that the PE supports the MLD Proxy. The value of 0 for
bit 14
means that the PE does not support the MLD Proxy. </li>
<li>Bits 0 to 13 are reserved for the future. The sender <bcp14>MU
ST</bcp14>
set it to 0, and the receiver <bcp14>MUST</bcp14> ignore it. </li>
</ul>
</li>
<li> Reserved bits are set to 0. The sender <bcp14>MUST</bcp14> set it
to 0,
and the receiver <bcp14>MUST</bcp14> ignore it.</li>
</ul>
<t> If a router does not support this specification, it <bcp14>MUST NOT<
/bcp14> add
the Multicast Flags Extended Community
in the BGP route. When a router receives a BGP update,
if both M and I flags are 0, the router <bcp14>MUST</bcp14> treat this up
date as
malformed. The receiver of such an
update <bcp14>MUST</bcp14> ignore the extended community. </t>
</section>
<section anchor="evi-rt" numbered="true" toc="default">
<name>EVI-RT Extended Community</name>
<t>In EVPN, every EVI is associated with one or more Route Targets. The
se RTs serve two functions:</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 EVI
exists.</li>
<li>EVI identification: Once a route has been received by a
particular PE, the RT is used to identify the EVI to which it
applies.</li>
</ol>
<t>An IGMP Membership Report Synch or IGMP Leave Synch route is associat
ed with a
particular combination of ES and EVI. These routes need to be
distributed only to PEs that are attached to the associated ES.
Therefore, these routes carry the ES-Import RT for that ES.</t>
<t>Since an IGMP Membership Report Synch or IGMP Leave Synch route does
not need
to be distributed to all the PEs on which the associated EVI
exists, these routes cannot carry the RT associated with that
EVI. Therefore, when such a route arrives at a particular PE, the
route's RTs cannot be used to identify the EVI to which the route
applies. Some other means of associating the route with an EVI
must be used.</t>
<t>This document specifies four new ECs that
can be used to identify the EVI with which a route is associated
but do not have any effect on the distribution of the
route. These new ECs are known as "Type 0 EVI-RT EC",
"Type 1 EVI-RT EC", "Type 2 EVI-RT EC", and "Type 3 EVI-RT EC".</t>
0x09 Multicast Flags Extended Community [this document] <ol spacing="normal" type="1">
0x0A EVI-RT Type 0 [this document] <li> A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA.</li>
0x0B EVI-RT Type 1 [this document] <li> A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB.</li>
0x0C EVI-RT Type 2 [this document] <li> A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC.</li>
<li> A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD</li>
</ol>
<t>Each IGMP Membership Report Synch or IGMP Leave Synch route <bcp14>MU
ST</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 partic
ular
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 Syn
ch
route is associated with a given BD, say BD1, and suppose that
the corresponding RT for BD1 is RT1. Then:</t>
<ul spacing="normal">
<li>If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI-RT
EC carried by the route is a Type 0 EVI-RT EC. The value
field of the Type 0 EVI-RT EC is identical to the value field of
RT1. </li>
<li>If RT1 is a Transitive IPv4-Address-specific EC, then the EVI-RT
EC carried by the route is a Type 1 EVI-RT EC. The value
field of the Type 1 EVI-RT EC is identical to the value field of
RT1. </li>
<li>If RT1 is a Transitive Four-Octet AS-specific EC, then the EVI-RT
EC carried by the route is a Type 2 EVI-RT EC. The value field
of the Type 2 EVI-RT EC is identical to the value field of RT1.</li>
<li>If RT1 is a Transitive IPv6-Address-specific EC, then the EVI-RT
EC carried by the route is a Type 3 EVI-RT EC. The value
field of the Type 3 EVI-RT EC is identical to the value field of
RT1.</li>
</ul>
<t>An IGMP Membership Report Synch or Leave Synch route <bcp14>MUST</bcp
14>
carry exactly one EVI-RT EC.</t>
<t>Suppose a PE receives a particular IGMP Membership Report Synch or IG
MP Leave
Synch route, say R1, and suppose that R1 carries an ES-Import RT
that is one of the PE's Import RTs. If R1 has no EVI-RT EC or
has more than one EVI-RT EC, the PE <bcp14>MUST</bcp14> apply the "treat-
as-withdraw"
procedure per <xref target="RFC7606" format="default"/>.</t>
<t>Note that an EVI-RT EC is not a Route Target extended community,
is not visible to the RT Constrain mechanism <xref target="RFC4684" forma
t="default"/>,
and is not intended to influence the propagation of routes by BGP.</t>
<artwork 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>
]]></artwork> <t>The value of "n" is 0x0A, 0x0B, 0x0C, or 0x0D, corresponding
</figure> to EVI-RT types 0, 1, 2, or 3, respectively.</t>
</section>
<section numbered="true" toc="default">
<name>Rewriting of RT ECs and EVI-RT ECs by ASBRs</name>
<!-- Note: text updated per mail from John E Drake <jdrake@juniper.net>
on 5/18/2022. -->
<t> <!-- [rfced] AD, Section 9.6 was updated per a request from the author. Please
IANA is requested to allocate a new codepoint from the EVP review and let us know if the changes are approved. Note that you can also view
N the changes in the diff files.
Extended Community sub-types registry for the following.
</t>
<figure> Original:
<artwork ><![CDATA[ There are certain situations in which an ES is attached to a set of
0x0D EVI-RT Type 3 [this document] 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 as RT-
rewriting.
]]></artwork> Note that if a given route's RTs are rewritten, and the route carries
</figure> an EVI-RT EC, the EVI-RT EC needs to be rewritten as well.
</section>
<section title="EVPN Route Type Registration">
<t> Current:
IANA has allocated the following EVPN route types from the EVPN There are certain situations in which an ES is attached to a set of
Route Type registry. PEs that are not all in the same AS, or not all operated by the same
</t> 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.
<figure> If an ASBR is configured to perform RT-rewriting of the EVI RTs in
<artwork ><![CDATA[ EVPN routes, it MUST be configured to perform RT-rewriting of the
6 - Selective Multicast Ethernet Tag Route corresponding EVI-RT extended communities in IGMP Join Synch and IGMP
7 - Multicast Membership Report Synch Route Leave Synch Routes.
8 - Multicast Leave Synch Route -->
]]></artwork> <t>There are certain situations in which an ES is attached to a set of P
</figure> Es that are not all in the same AS, or not all operated by the same provider. I
</section> n this situation, the RT that corresponds to a particular EVI may be different i
<section title="Multicast Flags Extended Community Registry"> n each AS. If a route is propagated from AS1 to AS2, an ASBR at the AS1/AS2 bor
der may be configured with a policy that replaces the EVI RTs for AS1 with the c
orresponding 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 EV
PN routes, it <bcp14>MUST</bcp14> be configured to perform RT-rewriting of the c
orresponding EVI-RT extended communities in IGMP Join Synch and IGMP Leave Sync
h Routes.</t>
</section>
<section numbered="true" toc="default">
<name>BGP Error Handling</name>
<t>If a received BGP update contains Flags not in accordance with the IG
MP/MLD
version-X expectation,
the PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedure per <x
ref
target="RFC7606" format="default"/>.</t>
<t>If a received BGP update is malformed such that BGP route keys cannot
be extracted,
then the BGP update <bcp14>MUST</bcp14> be considered invalid. The receiv
ing PE
<bcp14>MUST</bcp14> apply the "session reset" procedure per <xref target=
"RFC7606"
format="default"/>.</t>
</section>
</section>
<section numbered="true" toc="default">
<name>IGMP Version 1 Membership Report</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 considered invalid, and the
PE <bcp14>MUST</bcp14> apply the "treat-as-withdraw" procedure per
<xref target="RFC7606" format="default"/>.</t>
</section>
<section numbered="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 securit
y
considerations for the operation of the underlying EVPN and BGP substrates
are
described in <xref target="RFC7432" format="default"/>, and specific multi
cast
considerations are outlined in
<xref target="RFC6513" format="default"/> and <xref target="RFC6514" forma
t="default"/>.
The EVPN and associated IGMP Proxy provides a single
broadcast domain so the same security considerations of IGMPv2 <xref targe
t="RFC2236"
format="default"/>, IGMPv3
<xref target="RFC3376" format="default"/>, MLD <xref target="RFC2710" form
at="default"/>,
or MLDv2 <xref target="RFC3810" format="default"/> apply.</t>
</section>
<t> <section numbered="true" toc="default">
The Multicast Flags Extended Community contains a 16-bit Fl <name>IANA Considerations</name>
ags <section numbered="true" toc="default">
field. The bits are numbered 0-15, from high-order to low-o <name>EVPN Extended Community Sub-Types Registration</name>
rder. <t>IANA has allocated the following codepoints in the "EVPN Extended Com
</t> munity Sub-Types"
subregistry under the "Border Gateway Protocol (BGP) Extended Communitie
s" registry. </t>
<figure> <table>
<artwork ><![CDATA[ <name>EVPN Extended Community Sub-Types Subregistry Allocated Codepoint
The registry should be initialized as follows: s</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 Type 0</td>
<td>RFC 9251</td>
</tr>
<tr>
<td>0x0B</td>
<td>EVI-RT Type 1</td>
<td>RFC 9251</td>
</tr>
<tr>
<td>0x0C</td>
<td>EVI-RT Type 2</td>
<td>RFC 9251</td>
</tr>
<tr>
<td>0x0D</td>
<td>EVI-RT Type 3</td>
<td>RFC 9251</td>
</tr>
</tbody>
</table>
</section>
<section numbered="true" toc="default">
<name>EVPN Route Types Registration</name>
<t>IANA has allocated the following EVPN route types in the "EVPN
Route Types" subregistry.</t>
Bit Name Reference Change <dl newline="false" spacing="normal">
Controller <dt>6 -</dt>
---- -------------- ------------- ------- <dd>Selective Multicast Ethernet Tag Route</dd>
----------- <dt>7 -</dt>
0 - 13 Unassigned <dd>Multicast Membership Report Synch Route</dd>
14 MLD Proxy Support This document. IE <dt>8 -</dt>
TF <dd> Multicast Leave Synch Route</dd>
15 IGMP Proxy Support This document IE </dl>
TF
The registration policy should be "First Come First Served". </section>
<section anchor="multicast_flags_extended_community" numbered="true" toc="
default">
<name>Multicast Flags Extended Community Registry</name>
<t>IANA has created and now maintains a new subregistry called "Multicas
t Flags Extended Community" under the "Border Gateway Protocol (BGP) Extended Co
mmunities" registry. The registration procedure is First Come First Served <xref
target="RFC8126"/>. For the 16-bit Flags field, the bits are numbered 0-15, fro
m high order to low order. The registry was initialized as follows:</t>
]]></artwork> <table>
</figure> <name>Multicast Flags Extended Community</name>
</section> <thead>
<tr>
<th>Bit</th>
<th>Name</th>
<th>Reference</th>
<th>Change Controller</th>
</tr>
</thead>
</section> <tbody>
<tr>
<td>0-13</td>
<td>Unassigned</td>
<td></td>
<td></td>
</tr>
<section title="Acknowledgement"> <tr>
<t> <td> 14</td>
The authors would like to thank Stephane Litkowski, Jor <td>MLD Proxy Support</td>
ge Rabadan, <td>RFC 9251</td>
Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Anan <td>IETF</td>
thamurthy, Swadesh Agrawal </tr>
for reviewing and providing valuable
comment.
</t>
<tr>
<td> 15</td>
<td>IGMP Proxy Support</td>
<td>RFC 9251</td>
<td>IETF</td>
</tr>
</tbody>
</table>
</section> </section>
</section>
<section title="Contributors">
<t>
Derek Yeung </t>
<t> Arrcus </t>
<t> Email: derek@arrcus.com
</t>
</section>
</middle> </middle>
<!-- *****BACK MATTER ***** -->
<back> <back>
<references title='Normative References'> <displayreference target="I-D.ietf-bess-evpn-bum-procedure-updates" to="EVPN
<?rfc include='reference.RFC.2119' ?> -BUM"/>
<?rfc include='reference.RFC.7432' ?> <references>
<?rfc include='reference.RFC.3376' ?> <name>References</name>
<?rfc include='reference.RFC.2710' ?> <references>
<?rfc include='reference.RFC.3810' ?> <name>Normative References</name>
<?rfc include='reference.RFC.7606' ?> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.4684' ?> FC.2119.xml"/>
<?rfc include='reference.RFC.2236' ?> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.8174' ?> FC.7432.xml"/>
<?rfc include='reference.RFC.4364' ?> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.6625' ?> FC.3376.xml"/>
<?rfc include='reference.RFC.6513' ?> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.6514' ?> FC.2710.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3810.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7606.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4684.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2236.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8174.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4364.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6625.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6513.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6514.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4541.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8126.xml"/>
</references> <!-- draft-ietf-bess-evpn-bum-procedure-updates-14: in MISSREF as of 5/26
<references title="Informative References"> /22-->
<?rfc include='reference.RFC.4541' ?> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D
<?rfc include="reference.I-D.ietf-bess-evpn-bum-procedure-updates"?> .ietf-bess-evpn-bum-procedure-updates.xml"/>
</references> </references>
</references>
<section numbered="false" toc="default">
<name>Acknowledgements</name>
<t>The authors would like to thank <contact fullname="Stephane Litkowski"/
>, <contact
fullname="Jorge Rabadan"/>,
<contact fullname="Anoop Ghanwani"/>, <contact fullname="Jeffrey Haas"/>,
<contact
fullname="Krishna Muddenahally Ananthamurthy"/>, and <contact fullname="Sw
adesh Agrawal"/>
for their reviews and valuable comments.</t>
</section>
<section numbered="false" toc="default">
<name>Contributors</name>
<contact fullname="Derek Yeung">
<organization>Arrcus</organization>
<address>
<email>derek@arrcus.com</email>
</address>
</contact>
</section>
</back> </back>
</rfc> </rfc>
 End of changes. 50 change blocks. 
2565 lines changed or deleted 1839 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/