rfc9251.original   rfc9251.txt 
BESS WorkGroup A. Sajassi Internet Engineering Task Force (IETF) A. Sajassi
Internet-Draft S. Thoria Request for Comments: 9251 S. Thoria
Intended status: Standards Track M. Mishra Category: Standards Track M. Mishra
Expires: September 23, 2022 Cisco Systems ISSN: 2070-1721 Cisco Systems
K. Patel K. Patel
Arrcus Arrcus
J. Drake J. Drake
W. Lin W. Lin
Juniper Networks Juniper Networks
March 22, 2022 May 2022
IGMP and MLD Proxy for EVPN Internet Group Management Protocol (IGMP) and Multicast Listener
draft-ietf-bess-evpn-igmp-mld-proxy-21 Discovery (MLD) Proxies for Ethernet VPN (EVPN)
Abstract Abstract
This document describes how to support efficiently endpoints running This document describes how to support endpoints running the Internet
IGMP(Internet Group Management Protocol) or MLD (Multicast Listener Group Management Protocol (IGMP) or Multicast Listener Discovery
Discovery) for the multicast services over an EVPN network by (MLD) efficiently for the multicast services over an Ethernet VPN
incorporating IGMP/MLD proxy procedures on EVPN (Ethernet VPN) PEs. (EVPN) network by incorporating IGMP/MLD Proxy procedures on EVPN
Provider Edges (PEs).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on September 23, 2022. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9251.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Revised BSD License text as described in Section 4.e of the
the Trust Legal Provisions and are provided without warranty as Trust Legal Provisions and are provided without warranty as described
described in the Simplified BSD License. in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction
2. Specification of Requirements . . . . . . . . . . . . . . . . 4 2. Specification of Requirements
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Terminology
4. IGMP/MLD Proxy . . . . . . . . . . . . . . . . . . . . . . . 6 4. IGMP/MLD Proxy
4.1. Proxy Reporting . . . . . . . . . . . . . . . . . . . . . 6 4.1. Proxy Reporting
4.1.1. IGMP/MLD Membership Report Advertisement in BGP . . . 7 4.1.1. IGMP/MLD Membership Report Advertisement in BGP
4.1.2. IGMP/MLD Leave Group Advertisement in BGP . . . . . . 9 4.1.2. IGMP/MLD Leave Group Advertisement in BGP
4.2. Proxy Querier . . . . . . . . . . . . . . . . . . . . . . 9 4.2. Proxy Querier
5. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5. Operation
5.1. PE with only attached hosts for a given subnet . . . . . 11 5.1. PE with Only Attached Hosts for a Given Subnet
5.2. PE with a mix of attached hosts and multicast source . . 12 5.2. PE with a Mix of Attached Hosts and a Multicast Source
5.3. PE with a mix of attached hosts, a multicast source and a 5.3. PE with a Mix of Attached Hosts, a Multicast Source, and a
router . . . . . . . . . . . . . . . . . . . . . . . . . 12 Router
6. All-Active Multi-Homing . . . . . . . . . . . . . . . . . . . 12 6. All-Active Multihoming
6.1. Local IGMP/MLD Membership Report Synchronization . . . . 12 6.1. Local IGMP/MLD Membership Report Synchronization
6.2. Local IGMP/MLD Leave Group Synchronization . . . . . . . 13 6.2. Local IGMP/MLD Leave Group Synchronization
6.2.1. Remote Leave Group Synchronization . . . . . . . . . 14 6.2.1. Remote Leave Group Synchronization
6.2.2. Common Leave Group Synchronization . . . . . . . . . 14 6.2.2. Common Leave Group Synchronization
6.3. Mass Withdraw of Multicast Membership Report Sync route 6.3. Mass Withdraw of the Multicast Membership Report Synch
in case of failure . . . . . . . . . . . . . . . . . . . 15 Route in Case of Failure
7. Single-Active Multi-Homing . . . . . . . . . . . . . . . . . 15 7. Single-Active Multihoming
8. Selective Multicast Procedures for IR tunnels . . . . . . . . 15 8. Selective Multicast Procedures for IR Tunnels
9. BGP Encoding . . . . . . . . . . . . . . . . . . . . . . . . 16 9. BGP Encoding
9.1. Selective Multicast Ethernet Tag Route . . . . . . . . . 16 9.1. Selective Multicast Ethernet Tag Route
9.1.1. Constructing the Selective Multicast Ethernet Tag 9.1.1. Constructing the Selective Multicast Ethernet Tag Route
route . . . . . . . . . . . . . . . . . . . . . . . . 18 9.1.2. Reconstructing IGMP/MLD Membership Reports from the
9.1.2. Reconstructing IGMP / MLD Membership Reports from Selective Multicast Route
Selective Multicast Route . . . . . . . . . . . . . . 19 9.1.3. Default Selective Multicast Route
9.1.3. Default Selective Multicast Route . . . . . . . . . . 20 9.2. Multicast Membership Report Synch Route
9.2. Multicast Membership Report Synch Route . . . . . . . . . 21
9.2.1. Constructing the Multicast Membership Report Synch 9.2.1. Constructing the Multicast Membership Report Synch
Route . . . . . . . . . . . . . . . . . . . . . . . . 22 Route
9.2.2. Reconstructing IGMP / MLD Membership Reports from 9.2.2. Reconstructing IGMP/MLD Membership Reports from a
Multicast Membership Report Sync Route . . . . . . . 23 Multicast Membership Report Synch Route
9.3. Multicast Leave Synch Route . . . . . . . . . . . . . . . 24 9.3. Multicast Leave Synch Route
9.3.1. Constructing the Multicast Leave Synch Route . . . . 26 9.3.1. Constructing the Multicast Leave Synch Route
9.3.2. Reconstructing IGMP / MLD Leave from Multicast Leave 9.3.2. Reconstructing IGMP/MLD Leave from a Multicast Leave
Sync Route . . . . . . . . . . . . . . . . . . . . . 27 Synch Route
9.4. Multicast Flags Extended Community . . . . . . . . . . . 28 9.4. Multicast Flags Extended Community
9.5. EVI-RT Extended Community . . . . . . . . . . . . . . . . 29 9.5. EVI-RT Extended Community
9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs . . . . . . . 31 9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs
9.7. BGP Error Handling . . . . . . . . . . . . . . . . . . . 32 9.7. BGP Error Handling
10. IGMP Version 1 Membership Report . . . . . . . . . . . . . . 32 10. IGMP Version 1 Membership Report
11. Security Considerations . . . . . . . . . . . . . . . . . . . 32 11. Security Considerations
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 12. IANA Considerations
12.1. EVPN Extended Community Sub-Types Registrations . . . . 32 12.1. EVPN Extended Community Sub-Types Registration
12.2. EVPN Route Type Registration . . . . . . . . . . . . . . 33 12.2. EVPN Route Types Registration
12.3. Multicast Flags Extended Community Registry . . . . . . 33 12.3. Multicast Flags Extended Community Registry
13. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 33 13. References
14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 34 13.1. Normative References
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 13.2. Informative References
15.1. Normative References . . . . . . . . . . . . . . . . . . 34 Acknowledgements
15.2. Informative References . . . . . . . . . . . . . . . . . 35 Contributors
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses
1. Introduction 1. Introduction
In DC applications, a point of delivery (POD) can consist of a In data center (DC) applications, a point of delivery (POD) can
collection of servers supported by several top of rack (ToR) and consist of a collection of servers supported by several top-of-rack
spine switches. This collection of servers and switches are self (ToR) and spine switches. This collection of servers and switches
contained and may have their own control protocol for intra-POD are self-contained and may have their own control protocol for intra-
communication and orchestration. However, EVPN is used as standard POD communication and orchestration. However, EVPN is used as a
way of inter-POD communication for both intra-DC and inter-DC. A standard way of inter-POD communication for both intra-DC and inter-
subnet can span across multiple PODs and DCs. EVPN provides a robust DC. A subnet can span across multiple PODs and DCs. EVPN provides a
multi-tenant solution with extensive multi-homing capabilities to robust multi-tenant solution with extensive multihoming capabilities
stretch a subnet (VLAN) across multiple PODs and DCs. There can be to stretch a subnet (VLAN) across multiple PODs and DCs. There can
many hosts (several hundreds) attached to a subnet that is stretched be many hosts (several hundreds) attached to a subnet that is
across several PODs and DCs. stretched across several PODs and DCs.
These hosts express their interests in multicast groups on a given These hosts express their interests in multicast groups on a given
subnet/VLAN by sending IGMP/MLD Membership Reports for their subnet/VLAN by sending IGMP/MLD Membership Reports for their
interested multicast group(s). Furthermore, an IGMP/MLD router interested multicast group(s). Furthermore, an IGMP/MLD router
periodically sends membership queries to find out if there are hosts periodically sends Membership Queries to find out if there are hosts
on that subnet that are still interested in receiving multicast on that subnet that are still interested in receiving multicast
traffic for that group. The IGMP/MLD Proxy solution described in traffic for that group. The IGMP/MLD Proxy solution described in
this document accomplishes three objectives: this document accomplishes three objectives:
1. Reduce flooding of IGMP/MLD messages: just like the ARP/ND 1. Reduce flooding of IGMP/MLD messages: Just like the ARP /
suppression mechanism in EVPN to reduce the flooding of ARP Neighbor Discovery (ND) suppression mechanism in EVPN to reduce
messages over EVPN, it is also desired to have a mechanism to the flooding of ARP messages over EVPN, it is also desired to
reduce the flooding of IGMP/MLD messages (both Queries and have a mechanism to reduce the flooding of IGMP/MLD messages
Membership Reports) in EVPN. (both Queries and Membership Reports) in EVPN.
2. Distributed anycast multicast proxy: it is desirable for the EVPN 2. Distributed anycast multicast proxy: It is desirable for the EVPN
network to act as a distributed anycast multicast router with network to act as a distributed anycast multicast router with
respect to IGMP/MLD proxy function for all the hosts attached to respect to IGMP/MLD Proxy function for all the hosts attached to
that subnet. that subnet.
3. Selective Multicast: to forward multicast traffic over EVPN 3. Selective multicast: This describes forwarding multicast traffic
network such that it only gets forwarded to the PEs that have over the EVPN network such that it only gets forwarded to the PEs
interest in the multicast group(s). This document shows how this that have interests in the multicast group(s). This document
objective may be achieved when Ingress Replication is used to shows how this objective may be achieved when ingress replication
distribute the multicast traffic among the PEs. Procedures for is used to distribute the multicast traffic among the PEs.
supporting selective multicast using P2MP tunnels can be found in Procedures for supporting selective multicast using Point-to-
[I-D.ietf-bess-evpn-bum-procedure-updates] Multipoint (P2MP) tunnels can be found in [EVPN-BUM].
The first two objectives are achieved by using IGMP/MLD proxy on the The first two objectives are achieved by using the IGMP/MLD Proxy on
PE. The third objective is achieved by setting up a multicast tunnel the PE. The third objective is achieved by setting up a multicast
only among the PEs that have interest in that multicast group(s) tunnel among only the PEs that have interest in the multicast
based on the trigger from IGMP/MLD proxy processes. The proposed group(s) based on the trigger from IGMP/MLD Proxy processes. The
solutions for each of these objectives are discussed in the following proposed solutions for each of these objectives are discussed in the
sections. following sections.
2. Specification of Requirements 2. Specification of Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Terminology 3. Terminology
o AC: Attachment Circuit. AC: Attachment Circuit
o All-Active Redundancy Mode: When all PEs attached to an Ethernet All-Active Redundancy Mode: When all PEs attached to an Ethernet
segment are allowed to forward known unicast traffic to/from that segment are allowed to forward known unicast traffic to/from that
Ethernet segment for a given VLAN, then the Ethernet segment is Ethernet segment for a given VLAN, then the Ethernet segment is
defined to be operating in All-Active redundancy mode. defined to be operating in All-Active redundancy mode.
o BD: Broadcast Domain. As per [RFC7432], an EVI consists of a BD: Broadcast Domain. As per [RFC7432], an EVPN instance (EVI)
single or multiple BDs. In case of VLAN-bundle and VLAN-aware consists of a single BD or multiple BDs. In case of a VLAN bundle
bundle service model, an EVI contains multiple BDs. Also, in this and a VLAN-aware bundle service model, an EVI contains multiple
document, BD and subnet are equivalent terms. BDs. Also, in this document, BD and subnet are equivalent terms.
o DC: Data Center DC: Data Center
o Ethernet Segment (ES): When a customer site (device or network) is ES: Ethernet segment. This is when a customer site (device or
connected to one or more PEs via a set of Ethernet links. network) is connected to one or more PEs via a set of Ethernet
links.
o Ethernet Segment Identifier (ESI): A unique non-zero identifier ESI: Ethernet Segment Identifier. This is a unique non-zero
that identifies an Ethernet Segment. identifier that identifies an Ethernet segment.
o Ethernet Tag: It identifies a particular broadcast domain, e.g., a Ethernet Tag: It identifies a particular broadcast domain, e.g., a
VLAN. An EVPN instance consists of one or more broadcast domains. VLAN. An EVPN instance consists of one or more broadcast domains.
o EVI: An EVPN instance spanning the Provider Edge (PE) devices EVI: EVPN Instance. This spans the Provider Edge (PE) devices
participating in that EVPN participating in that EVPN.
o EVPN: Ethernet Virtual Private Network EVPN: Ethernet Virtual Private Network
o IGMP: Internet Group Management Protocol IGMP: Internet Group Management Protocol
o IR: Ingress Replication IR: Ingress Replication
o MLD: Multicast Listener Discovery MLD: Multicast Listener Discovery
o OIF: Outgoing Interface for multicast. It can be physical OIF: Outgoing Interface for multicast. It can be a physical
interface, virtual interface or tunnel. interface, virtual interface, or tunnel.
o PE: Provider Edge. PE: Provider Edge
o POD: Point of Delivery POD: Point of Delivery
o S-PMSI: Selective P-Multicast Service Interface - a conceptual S-PMSI: Selective P-Multicast Service Interface. This is a
interface for a PE to send customer multicast traffic to some of conceptual interface for a PE to send customer multicast traffic
the PEs in the same VPN. to some of the PEs in the same VPN.
o Single-Active Redundancy Mode: When only a single PE, among all Single-Active Redundancy Mode: When only a single PE, among all the
the PEs attached to an Ethernet segment, is allowed to forward PEs attached to an Ethernet segment, is allowed to forward traffic
traffic to/from that Ethernet segment for a given VLAN, then the to/from that Ethernet segment for a given VLAN, then the Ethernet
Ethernet segment is defined to be operating in Single-Active segment is defined to be operating in Single-Active redundancy
redundancy mode. mode.
o SMET: Selective Multicast Ethernet Tag SMET: Selective Multicast Ethernet Tag
o ToR: Top of Rack ToR: Top of Rack
This document also assumes familiarity with the terminology of This document also assumes familiarity with the terminology of
[RFC7432], [RFC3376], [RFC2236] . Though most of the place this [RFC7432], [RFC3376], and [RFC2236]. When this document uses the
document uses term IGMP Membership Report, the text applies equally term "IGMP Membership Report", the text equally applies to the MLD
for MLD Membership Report too. Similarly, text for IGMPv2 applies to Membership Report. Similarly, text for IGMPv2 applies to MLDv1, and
MLDv1 and text for IGMPv3 applies to MLDv2. IGMP / MLD version text for IGMPv3 applies to MLDv2. IGMP/MLD version encoding in the
encoding in BGP update is stated in Section 9 BGP update is stated in Section 9.
It is important to note when there is text considering whether a PE It is important to note that when there is text considering whether a
indicates support for IGMP proxying, the corresponding behavior has a PE indicates support for IGMP proxying, the corresponding behavior
natural analogue for indication of support for MLD proxying, and the has a natural analog for indicating support for MLD proxying, and the
analogous requirements apply as well. analogous requirements apply as well.
4. IGMP/MLD Proxy 4. IGMP/MLD Proxy
The IGMP Proxy mechanism is used to reduce the flooding of IGMP The IGMP Proxy mechanism is used to reduce the flooding of IGMP
messages over an EVPN network similar to ARP proxy used in reducing messages over an EVPN network, similar to the ARP proxy used in
the flooding of ARP messages over EVPN. It also provides a reducing the flooding of ARP messages over EVPN. It also provides a
triggering mechanism for the PEs to setup their underlay multicast triggering mechanism for the PEs to set up their underlay multicast
tunnels. The IGMP Proxy mechanism consists of two components: tunnels. The IGMP Proxy mechanism consists of two components:
1. Proxy for IGMP Membership Reports. 1. Proxy for IGMP Membership Reports
2. Proxy for IGMP Membership Queries. 2. Proxy for IGMP Membership Queries
The goal of IGMP and MLD proxying is to make the EVPN behave The goal of IGMP and MLD proxying is to make the EVPN behave
seamlessly for the tenant systems with respect to multicast seamlessly for the tenant systems with respect to multicast
operations, while using a more efficient delivery system for operations while using a more efficient delivery system for signaling
signaling and delivery across the VPN. Accordingly, group state must and delivery across the VPN. Accordingly, group state must be
be tracked synchronously among the PEs serving the VPN, with join and tracked synchronously among the PEs serving the VPN, with join and
leave events propagated to the peer PEs, and each PE tracking the leave events propagated to the peer PEs and each PE tracking the
state of each of its peer PEs with respect whether there are locally state of each of its peer PEs with respect to whether there are
attached group members (and in some cases, senders), what version(s) locally attached group members (and in some cases, senders), what
of IGMP/MLD are in use for those locally attached group members, etc. version(s) of IGMP/MLD are in use for those locally attached group
In order to perform this translation, each PE acts as an IGMP router members, etc. In order to perform this translation, each PE acts as
for the locally attached domain, and maintains the requisite state on an IGMP router for the locally attached domain, maintains the
locally attached nodes, sends periodic membership queries, etc. The requisite state on locally attached nodes, sends periodic Membership
role of EVPN SMET route propagation is to ensure that each PE's local Queries, etc. The role of EVPN Selective Multicast Ethernet Tag
state is propagated to the other PEs so that they share a consistent (SMET) route propagation is to ensure that each PE's local state is
view of the overall IGMP Membership Request and Leave Group state. propagated to the other PEs so that they share a consistent view of
It is important to note that the need to keep such local state can be the overall IGMP Membership Request and Leave Group state. It is
important to note that the need to keep such local state can be
triggered by either local IGMP traffic or BGP EVPN signaling. In triggered by either local IGMP traffic or BGP EVPN signaling. In
most cases a local IGMP event will need to be signaled over EVPN, most cases, a local IGMP event will need to be signaled over EVPN,
though state initiated by received EVPN traffic will not always need though state initiated by received EVPN traffic will not always need
to be relayed to the locally attached domain. to be relayed to the locally attached domain.
4.1. Proxy Reporting 4.1. Proxy Reporting
When IGMP protocol is used between hosts and their first hop EVPN When IGMP is used between hosts and their first hop EVPN router (EVPN
router (EVPN PE), Proxy-reporting is used by the EVPN PE to summarize PE), proxy reporting is used by the EVPN PE to summarize (when
(when possible) reports received from downstream hosts and propagate possible) reports received from downstream hosts and propagate them
them in BGP to other PEs that are interested in the information. in BGP to other PEs that are interested in the information. This is
This is done by terminating the IGMP Reports in the first hop PE, and done by terminating the IGMP Membership Reports in the first hop PE
translating and exchanging the relevant information among EVPN BGP and translating and exchanging the relevant information among EVPN
speakers. The information is again translated back to IGMP message BGP speakers. The information is again translated back to an IGMP
at the recipient EVPN speaker. Thus it helps create an IGMP overlay message at the recipient EVPN speaker. Thus, it helps create an IGMP
subnet using BGP. In order to facilitate such an overlay, this overlay subnet using BGP. In order to facilitate such an overlay,
document also defines a new EVPN route type NLRI, the EVPN Selective this document also defines a new EVPN route type Network Layer
Multicast Ethernet Tag route, along with its procedures to help Reachability Information (NLRI) and the EVPN SMET route, along with
exchange and register IGMP multicast groups Section 9. its procedures to help exchange and register IGMP multicast groups;
see Section 9.
4.1.1. IGMP/MLD Membership Report Advertisement in BGP 4.1.1. IGMP/MLD Membership Report Advertisement in BGP
When a PE wants to advertise an IGMP Membership Report using the BGP When a PE wants to advertise an IGMP Membership Report using the BGP
EVPN route, it follows the following rules (BGP encoding stated in EVPN route, it follows the proceeding rules (BGP encoding is stated
Section 9). Where first four rules are applicable to originator PE in Section 9). The first four rules are applicable to the originator
and last three rules are applicable to remote PE processing SMET PE, and the last three rules are applicable to remote PE processing
routes: SMET routes:
Processing at BGP route originator: Processing at the BGP route originator:
1. When the first hop PE receives IGMP Membership Reports , 1. When the first hop PE receives IGMP Membership Reports belonging
belonging to the same IGMP version, from different attached hosts to the same IGMP version from different attached hosts for the
for the same (*,G) or (S,G), it SHOULD send a single BGP message same (*,G) or (S,G), it SHOULD send a single BGP message
corresponding to the very first IGMP Membership Request (BGP corresponding to the very first IGMP Membership Request (BGP
update as soon as possible) for that (*,G) or (S,G). This is update as soon as possible) for that (*,G) or (S,G). This is
because BGP is a stateful protocol and no further transmission of because BGP is a stateful protocol, and no further transmission
the same report is needed. If the IGMP Membership Request is for of the same report is needed. If the IGMP Membership Request is
(*,G), then multicast group address MUST be sent along with the for (*,G), then the Multicast Group Address MUST be sent along
corresponding version flag (v2 or v3) set. In case of IGMPv3, with the corresponding version flag (v2 or v3) set. In case of
the exclude flag MUST also be set to indicate that no source IP IGMPv3, the exclude flag MUST also be set to indicate that no
address must be excluded (include all sources "*"). If the IGMP source IP address must be excluded (include all sources "*"). If
Membership Report is for (S,G), then besides setting multicast the IGMP Membership Report is for (S,G), then besides setting the
group address along with the version flag v3, the source IP Multicast Group Address along with the v3 flag, the source IP
address and the IE flag MUST be set. It should be noted that address and the Include/Exclude (IE) flag MUST be set. It should
when advertising the EVPN route for (S,G), the only valid version be noted that, when advertising the EVPN route for (S,G), the
flag is v3 (v2 flags MUST be set to zero). only valid version flag is v3 (v2 flags MUST be set to 0).
2. When the first hop PE receives an IGMPv3 Membership Report for 2. When the first hop PE receives an IGMPv3 Membership Report for
(S,G) on a given BD, it MUST advertise the corresponding EVPN (S,G) on a given BD, it MUST advertise the corresponding EVPN
Selective Multicast Ethernet Tag (SMET) route regardless of SMET route, regardless of whether the source (S) is attached to
whether the source (S) is attached to itself or not in order to itself or not, in order to facilitate the source move in the
facilitate the source move in the future. future.
3. When the first hop PE receives an IGMP version-X Membership 3. When the first hop PE receives an IGMP version-X Membership
Report first for (*,G) and then later it receives an IGMP Report first for (*,G) and then later receives an IGMP version-Y
version-Y Membership Report for the same (*,G), then it MUST re- Membership Report for the same (*,G), then it MUST re-advertise
advertise the same EVPN SMET route with flag for version-Y set in the same EVPN SMET route with the flag for version-Y set in
addition to any previously-set version flag(s). In other words, addition to any previously set version flag(s). In other words,
the first hop PE MUST NOT withdraw the EVPN route before sending the first hop PE MUST NOT withdraw the EVPN route before sending
the new route because the flag field is not part of BGP route key the new route because the Flags field is not part of BGP route
processing. key processing.
4. When the first hop PE receives an IGMP version-X Membership 4. When the first hop PE receives an IGMP version-X Membership
Report first for (*,G) and then later it receives an IGMPv3 Report first for (*,G) and then later receives an IGMPv3
Membership Report for the same multicast group address but for a Membership Report for the same Multicast Group Address but for a
specific source address S, then the PE MUST advertise a new EVPN specific source address S, then the PE MUST advertise a new EVPN
SMET route with v3 flag set (and v2 reset). The IE flag also SMET route with the v3 flag set (and v2 reset). The IE flag also
need to be set accordingly. Since source IP address is used as needs to be set accordingly. Since the source IP address is used
part of BGP route key processing it is considered as a new BGP as part of BGP route key processing, it is considered to be a new
route advertisement. When different version of IGMP Membership BGP route advertisement. When different versions of IGMP
Report are received, final state MUST be as per section 5.1 of Membership Report are received, the final state MUST be as per
[RFC3376]. At the end of route processing local and remote group Section 5.1 of [RFC3376]. At the end of the route processing,
record state MUST be as per section 5.1 of [RFC3376]. local and remote group record state MUST be as per Section 5.1 of
[RFC3376].
Processing at BGP route receiver: Processing at the BGP route receiver:
1. When a PE receives an EVPN SMET route with more than one version 1. When a PE receives an EVPN SMET route with more than one version
flag set, it will generate the corresponding IGMP report for flag set, it will generate the corresponding IGMP Report for
(*,G) for each version specified in the flags field. With (*,G) for each version specified in the Flags field. With
multiple version flags set, there must not be source IP address multiple version flags set, there must not be a source IP address
in the received EVPN route. If there is, then an error SHOULD be in the received EVPN route. If there is, then an error SHOULD be
logged. If the v3 flag is set (in addition to v2), then the IE 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 flag MUST indicate "exclude". If not, then an error SHOULD be
logged. The PE MUST generate an IGMP Membership Report for that logged. The PE MUST generate an IGMP Membership Report for that
(*,G) and each IGMP version in the version flag. (*,G) and each IGMP version in the version flag.
2. When a PE receives a list of EVPN SMET NLRIs in its BGP update 2. When a PE receives a list of EVPN SMET NLRIs in its BGP update
message, each with a different source IP address and the same message, each with a different source IP address and the same
multicast group address, and the version flag is set to v3, then Multicast Group Address, and the version flag is set to v3, then
the PE generates an IGMPv3 Membership Report with a record the PE generates an IGMPv3 Membership Report with a record
corresponding to the list of source IP addresses and the group corresponding to the list of source IP addresses and the group
address along with the proper indication of inclusion/exclusion. address, along with the proper indication of inclusion/exclusion.
3. Upon receiving EVPN SMET route(s) and before generating the 3. Upon receiving an EVPN SMET route(s) and before generating the
corresponding IGMP Membership Request(s), the PE checks to see corresponding IGMP Membership Request(s), the PE checks to see
whether it has any CE multicast router for that BD on any of its whether it has a Customer Edge (CE) multicast router for that BD
ES's . The PE provides such a check by listening for PIM Hello on any of its ESs . The PE provides such a check by listening for
messages on that AC (i.e, ES,BD). If the PE does have the PIM Hello messages on that AC, i.e., (ES,BD). If the PE does
router's ACs, then the generated IGMP Membership Request(s) are have the router's ACs, then the generated IGMP Membership
sent to those ACs. If it doesn't have any of the router's AC, Request(s) is sent to those ACs. If it doesn't have any of the
then no IGMP Membership Request(s) needs to be generated. This router's ACs, then no IGMP Membership Request(s) needs to be
is because sending IGMP Membership Requests to other hosts can generated. This is because sending IGMP Membership Requests to
result in unintentionally preventing a host from joining a other hosts can result in unintentionally preventing a host from
specific multicast group using IGMPv2 - i.e., if the PE does not joining a specific multicast group using IGMPv2, i.e., if the PE
receive a Membership Report from the host it will not forward does not receive a Membership Report from the host, it will not
multicast data to it. Per [RFC4541] , when an IGMPv2 host forward multicast data to it. Per [RFC4541] , when an IGMPv2
receives a Membership Report for a group address that it intends host receives a Membership Report for a group address that it
to join, the host will suppress its own membership report for the intends to join, the host will suppress its own Membership Report
same group, and if the PE does not receive an IGMP Membership for the same group, and if the PE does not receive an IGMP
Report from the host it will not forward multicast data to it. Membership Report from the host, it will not forward multicast
In other words, an IGMPv2 Membership Report MUST NOT be sent on data to it. In other words, an IGMPv2 Membership Report MUST NOT
an AC that does not lead to a CE multicast router. This message be sent on an AC that does not lead to a CE multicast router.
suppression is a requirement for IGMPv2 hosts. This is not a This message suppression is a requirement for IGMPv2 hosts. This
problem for hosts running IGMPv3 because there is no suppression is not a problem for hosts running IGMPv3, because there is no
of IGMP Membership Reports. suppression of IGMP Membership Reports.
4.1.2. IGMP/MLD Leave Group Advertisement in BGP 4.1.2. IGMP/MLD Leave Group Advertisement in BGP
When a PE wants to withdraw an EVPN SMET route corresponding to an When a PE wants to withdraw an EVPN SMET route corresponding to an
IGMPv2 Leave Group or IGMPv3 "Leave" equivalent message, it follows IGMPv2 Leave Group or IGMPv3 "Leave" equivalent message, it follows
the following rules, where first rule defines the procedure at the rules below. The first rule defines the procedure at the
originator PE and last two rules talk about procedures at remote PE: originator PE, and the last two rules talk about procedures at the
remote PE:
Processing at BGP route originator: Processing at the BGP route originator:
1. When a PE receives an IGMPv2 Leave Group or its "Leave" 1. When a PE receives an IGMPv2 Leave Group or its "Leave"
equivalent message for IGMPv3 from its attached host, it checks equivalent message for IGMPv3 from its attached host, it checks
to see if this host is the last host that is interested in this 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 multicast group by sending a query for the multicast group. If
the host was indeed the last one (i.e. no responses are received the host was indeed the last one (i.e., no responses are received
for the query), then the PE MUST re-advertises EVPN SMET for the query), then the PE MUST re-advertise the EVPN SMET route
Multicast route with the corresponding version flag reset. If with the corresponding version flag reset. If this is the last
this is the last version flag to be reset, then instead of re- version flag to be reset, then instead of re-advertising the EVPN
advertising the EVPN route with all version flags reset, the PE route with all version flags reset, the PE MUST withdraw the EVPN
MUST withdraw the EVPN route for that (*,G). route for that (*,G).
Processing at BGP route receiver: Processing at the BGP route receiver:
1. When a PE receives an EVPN SMET route for a given (*,G), it 1. When a PE receives an EVPN SMET route for a given (*,G), it
compares the received version flags from the route with its per- compares the received version flags from the route with its per-
PE stored version flags. If the PE finds that a version flag 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 associated with the (*,G) for the remote PE is reset, then the PE
MUST generate IGMP Leave for that (*,G) toward its local MUST generate IGMP Leave for that (*,G) toward its local
interface (if any) attached to the multicast router for that interface (if any), which is attached to the multicast router for
multicast group. It should be noted that the received EVPN route that multicast group. It should be noted that the received EVPN
MUST at least have one version flag set. If all version flags route MUST have at least one version flag set. If all version
are reset, it is an error because the PE should have received an flags are reset, it is an error because the PE should have
EVPN route withdraw for the last version flag. Error MUST be received an EVPN route withdraw for the last version flag. An
considered as a BGP error and the PE MUST apply the "treat-as- error MUST be considered as a BGP error, and the PE MUST apply
withdraw" procedure of [RFC7606]. the "treat-as-withdraw" procedure per [RFC7606].
2. When a PE receives an EVPN SMET route withdraw, it removes the 2. When a PE receives an EVPN SMET route withdraw, it removes the
remote PE from its OIF list for that multicast group and if there remote PE from its OIF list for that multicast group, and if
are no more OIF entries for that multicast group (either locally there are no more OIF entries for that multicast group (either
or remotely), then the PE MUST stop responding to Membership locally or remotely), then the PE MUST stop responding to
Queries from the locally attached router (if any). If there is a Membership Queries from the locally attached router (if any). If
source for that multicast group, the PE stops sending multicast there is a source for that multicast group, the PE stops sending
traffic for that source. multicast traffic for that source.
4.2. Proxy Querier 4.2. Proxy Querier
As mentioned in the previous sections, each PE MUST have proxy As mentioned in the previous sections, each PE MUST have proxy
querier functionality for the following reasons: querier functionality for the following reasons:
1. To enable the collection of EVPN PEs providing L2VPN service to 1. to enable the collection of EVPN PEs providing Layer 2 Virtual
act as distributed multicast router with Anycast IP address for Private Network (L2VPN) service to act as a distributed multicast
all attached hosts in that subnet. router with an anycast IP address for all attached hosts in that
subnet
2. To enable suppression of IGMP Membership Reports and Membership 2. to enable suppression of IGMP Membership Reports and Membership
Queries over MPLS/IP core. Queries over MPLS/IP core
5. Operation 5. Operation
Consider the EVPN network of Figure-1, where there is an EVPN Consider the EVPN network in Figure 1, where there is an EVPN
instance configured across the PEs shown in this figure (namely PE1, instance configured across the PEs (namely PE1, PE2, and PE3). Let's
PE2, and PE3). Let's consider that this EVPN instance consists of a consider that this EVPN instance consists of a single bridge domain
single bridge domain (single subnet) with all the hosts, sources, and (single subnet) with all the hosts and sources and the multicast
the multicast router connected to this subnet. PE1 only has router connected to this subnet. PE1 only has hosts (host denoted by
hosts(host denoted by Hx) connected to it. PE2 has a mix of hosts Hx) connected to it. PE2 has a mix of hosts and a multicast source.
and a multicast source. PE3 has a mix of hosts, a multicast source PE3 has a mix of hosts, a multicast source (source denoted by Sx),
(source denoted by Sx), and a multicast router (router denoted by and a multicast router (router denoted by Rx). Furthermore, let's
Rx). Furthermore, let's consider that for (S1,G1), R1 is used as the consider that for (S1,G1), R1 is used as the multicast router. The
multicast router. The following subsections describe the IGMP proxy following subsections describe the IGMP Proxy operation in different
operation in different PEs with regard to whether the locally PEs with regard to whether the locally attached devices for that
attached devices for that subnet are: subnet are:
o only hosts * only hosts,
o mix of hosts and multicast source * a mix of hosts and a multicast source, or
o mix of hosts, multicast source, and multicast router * a mix of hosts, a multicast source, and a multicast router.
+--------------+
| |
| |
+----+ | | +----+
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 +--------------+
| |
| |
+----+ | | +----+
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 ---| | | |
+----+ | |
| |
+--------------+
5.1. PE with only attached hosts for a given subnet Figure 1: EVPN Network
5.1. PE with Only Attached Hosts for a Given Subnet
When PE1 receives an IGMPv2 Membership Report from H1, it does not When PE1 receives an IGMPv2 Membership Report from H1, it does not
forward this Membership Report to any of its other ports (for this forward this Membership Report to any of its other ports (for this
subnet) because all these local ports are associated with the hosts. subnet) because all these local ports are associated with the hosts.
PE1 sends an EVPN Multicast Group route corresponding to this PE1 sends an EVPN SMET route corresponding to this Membership Report
Membership Report for (*,G1) and setting v2 flag. This EVPN route is for (*,G1) and sets the v2 flag. This EVPN route is received by PE2
received by PE2 and PE3 that are the members of the same BD (i.e., and PE3, which are the members of the same BD (i.e., same EVI in case
same EVI in case of VLAN-based service or EVI,VLAN in case of VLAN- of a VLAN-based service or EVI and VLAN in case of a VLAN-aware
aware bundle service). PE3 reconstructs the IGMPv2 Membership Report bundle service). PE3 reconstructs the IGMPv2 Membership Report from
from this EVPN BGP route and only sends it to the port(s) with this EVPN BGP route and only sends it to the port(s) with multicast
multicast routers attached to it (for that subnet). In this example, routers attached to it (for that subnet). In this example, PE3 sends
PE3 sends the reconstructed IGMPv2 Membership Report for (*,G1) only the reconstructed IGMPv2 Membership Report for (*,G1) only to R1.
to R1. Furthermore, even though PE2 receives the EVPN BGP route, it Furthermore, even though PE2 receives the EVPN BGP route, it does not
does not send it to any of its ports for that subnet; viz, ports send it to any of its ports for that subnet (viz., ports associated
associated with H6 and H7. with H6 and H7).
When PE1 receives the second IGMPv2 Membership Report from H2 for the 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 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 change in but it doesn't send any EVPN BGP routes because there is no change in
information. However, when it receives the IGMPv3 Membership Report information. However, when it receives the IGMPv3 Membership Report
from H3 for the same (*,G1). Besides adding the corresponding port from H3 for the same (*,G1), besides adding the corresponding port to
to its OIF list, it re-advertises the previously sent EVPN SMET route its OIF list, it re-advertises the previously sent EVPN SMET route
with the v3 and exclude flag set. with the v3 and exclude flag set.
Finally when PE1 receives the IGMPv3 Membership Report from H4 for Finally, when PE1 receives the IGMPv3 Membership Report from H4 for
(S2,G2), it advertises a new EVPN SMET route corresponding to it. (S2,G2), it advertises a new EVPN SMET route corresponding to it.
5.2. PE with a mix of attached hosts and multicast source 5.2. PE with a Mix of Attached Hosts and a Multicast Source
The main difference in this case is that when PE2 receives the IGMPv3 The main difference in this case is that when PE2 receives the IGMPv3
Membership Report from H7 for (S2,G2), it does advertise it in BGP to Membership Report from H7 for (S2,G2), it advertises it in BGP to
support source move even though PE2 knows that S2 is attached to its support the source moving, even though PE2 knows that S2 is attached
local AC. PE2 adds the port associated with H7 to its OIF list for to its local AC. PE2 adds the port associated with H7 to its OIF
(S2,G2). The processing for IGMPv2 received from H6 is the same as list for (S2,G2). The processing for IGMPv2 received from H6 is the
the IGMPv2 Membership Report described in previous section. same as the IGMPv2 Membership Report described in the previous
section.
5.3. PE with a mix of attached hosts, a multicast source and a router 5.3. PE with a Mix of Attached Hosts, a Multicast Source, and a Router
The main difference in this case relative to the previous two The main difference in this case relative to the previous two
sections is that IGMP v2/v3 Membership Report messages received sections is that IGMPv2/v3 Membership Report messages received
locally need to be sent to the port associated with router R1. locally need to be sent to the port associated with router R1.
Furthermore, the Membership Reports received via BGP (SMET) need to Furthermore, the Membership Reports received via BGP (SMET) need to
be passed to the R1 port but filtered for all other ports. be passed to the R1 port but filtered for all other ports.
6. All-Active Multi-Homing 6. All-Active Multihoming
Because the LAG flow hashing algorithm used by the CE is unknown at Because the Link Aggregation Group (LAG) flow hashing algorithm used
the PE, in an All-Active redundancy mode it must be assumed that the by the CE is unknown at the PE, in an All-Active redundancy mode, it
CE can send a given IGMP message to any one of the multi-homed PEs, must be assumed that the CE can send a given IGMP message to any one
either DF or non-DF; i.e., different IGMP Membership Request messages of the multihomed PEs, either Designated Forwarder (DF) or non-DF,
can arrive at different PEs in the redundancy group and furthermore i.e., different IGMP Membership Request messages can arrive at
their corresponding Leave messages can arrive at PEs that are different PEs in the redundancy group. Furthermore, their
different from the ones that received the Membership Report. corresponding Leave messages can arrive at PEs that are different
Therefore, all PEs attached to a given ES must coordinate IGMP from the ones that received the Membership Report. Therefore, all
Membership Request and Leave Group (x,G) state, where x may be either PEs attached to a given Ethernet segment (ES) must coordinate the
'*' or a particular source S, for each BD on that ES. Each PE has a IGMP Membership Request and Leave Group (x,G) state, where x may be
local copy of that state and the EVPN signaling serves to synchronize either "*" or a particular source S for each BD on that ES. Each PE
state across PEs. This allows the DF for that (ES,BD) to correctly has a local copy of that state, and the EVPN signaling serves to
advertise or withdraw a Selective Multicast Ethernet Tag (SMET) route synchronize that state across PEs. This allows the DF for that
for that (x,G) group in that BD when needed. All-Active multihoming (ES,BD) to correctly advertise or withdraw a SMET route for that
PEs for a given ES MUST support IGMP synchronization procedures (x,G) group in that BD when needed. All-Active multihoming PEs for a
described in this section if they need to perform IGMP proxy for given ES MUST support IGMP synchronization procedures described in
hosts connected to that ES. this section if they need to perform IGMP Proxy for hosts connected
to that ES.
6.1. Local IGMP/MLD Membership Report Synchronization 6.1. Local IGMP/MLD Membership Report Synchronization
When a PE, either DF or non-DF, receives on a given multihomed ES When a PE, either DF or non-DF, receives an IGMP Membership Report
operating in All-Active redundancy mode, an IGMP Membership Report for (x,G) on a given multihomed ES operating in All-Active redundancy
for (x,G), it determines the BD to which the IGMP Membership Report mode, it determines the BD to which the IGMP Membership Report
belongs. If the PE doesn't already have local IGMP Membership belongs. If the PE doesn't already have the local IGMP Membership
Request (x,G) state for that BD on that ES, it MUST instantiate local Request (x,G) state for that BD on that ES, it MUST instantiate that
IGMP Membership Request (x,G) state and MUST advertise a BGP IGMP local IGMP Membership Request (x,G) state and MUST advertise a BGP
Membership Report Synch route for that (ES,BD). Local IGMP IGMP Membership Report Synch route for that (ES,BD). The local IGMP
Membership Request (x,G) state refers to IGMP Membership Request Membership Request (x,G) state refers to the IGMP Membership Request
(x,G) state that is created as a result of processing an IGMP (x,G) state that is created as a result of processing an IGMP
Membership Report for (x,G). Membership Report for (x,G).
The IGMP Membership Report Synch route MUST carry the ES-Import RT The IGMP Membership Report Synch route MUST carry the ES-Import Route
for the ES on which the IGMP Membership Report was received. Thus it Target (RT) for the ES on which the IGMP Membership Report was
MUST only be imported by the PEs attached to that ES and not any received. Thus, it MUST only be imported by the PEs attached to that
other PEs. ES and not any other PEs.
When a PE, either DF or non-DF, receives an IGMP Membership Report When a PE, either DF or non-DF, receives an IGMP Membership Report
Synch route it installs that route and if it doesn't already have 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 the IGMP Membership Request (x,G) state for that (ES,BD), it MUST
instantiate that IGMP Membership Request (x,G) state - i.e., IGMP instantiate that IGMP Membership Request (x,G) state, i.e., the IGMP
Membership Request (x,G) state is the union of the local IGMP Membership Request (x,G) state is the union of the local IGMP
Membership Report (x,G) state and the installed IGMP Membership Membership Report (x,G) state and the installed IGMP Membership
Report Synch route. If the DF did not already advertise (originate) 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. a SMET route for that (x,G) group in that BD, it MUST do so now.
When a PE, either DF or non-DF, deletes its local IGMP Membership When a PE, either DF or non-DF, deletes its local IGMP Membership
Request (x,G) state for that (ES,BD), it MUST withdraw its BGP IGMP Request (x,G) state for that (ES,BD), it MUST withdraw its BGP IGMP
Membership Report Synch route for that (ES,BD). Membership Report Synch route for that (ES,BD).
When a PE, either DF or non-DF, receives the withdrawal of an IGMP When a PE, either DF or non-DF, receives the withdrawal of an IGMP
Membership Report Synch route from another PE it MUST remove that Membership Report Synch route from another PE, it MUST remove that
route. When a PE has no local IGMP Membership Request (x,G) state 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 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 remove that IGMP Membership Request (x,G) state for that (ES,BD). If
DF no longer has IGMP Membership Request (x,G) state for that BD on the DF no longer has the IGMP Membership Request (x,G) state for that
any ES for which it is DF, it MUST withdraw its SMET route for that BD on any ES for which it is the DF, it MUST withdraw its SMET route
(x,G) group in that BD. for that (x,G) group in that BD.
In other words, a PE advertises an SMET route for that (x,G) group in In other words, a PE advertises a SMET route for that (x,G) group in
that BD when it has IGMP Membership Request (x,G) state in that BD on that BD when it has the IGMP Membership Request (x,G) state on at
at least one ES for which it is DF and it withdraws that SMET route least one ES for which it is the DF, and it withdraws that SMET route
when it does not have IGMP Membership Request (x,G) state in that BD when it does not have an IGMP Membership Request (x,G) state in that
on any ES for which it is DF. BD on any ES for which it is the DF.
6.2. Local IGMP/MLD Leave Group Synchronization 6.2. Local IGMP/MLD Leave Group Synchronization
When a PE, either DF or non-DF, receives, on a given multihomed ES When a PE, either DF or non-DF, receives an IGMP Leave Group message
operating in All-Active redundancy mode, an IGMP Leave Group message for (x,G) from the attached CE on a given multihomed ES operating in
for (x,G) from the attached CE, it determines the BD to which the All-Active redundancy mode, it determines the BD to which the IGMPv2
IGMPv2 Leave Group belongs. Regardless of whether it has IGMP Leave Group belongs. Regardless of whether it has the IGMP
Membership Request (x,G) state for that (ES,BD), it initiates the Membership Request (x,G) state for that (ES,BD), it initiates the
(x,G) leave group synchronization procedure, which consists of the (x,G) leave group synchronization procedure, which consists of the
following steps: following steps:
1. It computes the Maximum Response Time, which is the duration of 1. It computes the Maximum Response Time, which is the duration of
(x,G) leave group synchronization procedure. This is the product the (x,G) leave group synchronization procedure. This is the
of two locally configured values, Last Member Query Count and product of two locally configured values, Last Member Query Count
Last Member Query Interval (described in Section 3 of [RFC2236]), and Last Member Query Interval (described in Section 3 of
plus a delta corresponding to the time it takes for a BGP [RFC2236]), plus a delta corresponding to the time it takes for a
advertisement to propagate between the PEs attached to the BGP advertisement to propagate between the PEs attached to the
multihomed ES (delta is a consistently configured value on all multihomed ES (delta is a consistently configured value on all
PEs attached to the multihomed ES). PEs attached to the multihomed ES).
2. It starts the Maximum Response Time timer. Note that the receipt 2. It starts the Maximum Response Time timer. Note that the receipt
of subsequent IGMP Leave Group messages or BGP Leave Synch routes of subsequent IGMP Leave Group messages or BGP Leave Synch routes
for (x,G) do not change the value of a currently running Maximum for (x,G) do not change the value of a currently running Maximum
Response Time timer and are ignored by the PE. Response Time timer and are ignored by the PE.
3. It initiates the Last Member Query procedure described in 3. It initiates the Last Member Query procedure described in
Section 3 of [RFC2236]; viz, it sends a number of Group-Specific Section 3 of [RFC2236]; viz., it sends a number of Group-Specific
Query (x,G) messages (Last Member Query Count) at a fixed Query (x,G) messages (Last Member Query Count) at a fixed
interval (Last Member Query Interval) to the attached CE. interval (Last Member Query Interval) to the attached CE.
4. It advertises an IGMP Leave Synch route for that that (ES,BD). 4. It advertises an IGMP Leave Synch route for that (ES,BD). This
This route notifies the other multihomed PEs attached to the route notifies the other multihomed PEs attached to the given
given multihomed ES that it has initiated an (x,G) leave group multihomed ES that it has initiated an (x,G) leave group
synchronization procedure; i.e., it carries the ES-Import RT for synchronization procedure, i.e., it carries the ES-Import RT for
the ES on which the IGMP Leave Group was received. It also the ES on which the IGMP Leave Group was received. It also
contains the Maximum Response Time. contains the Maximum Response Time.
5. When the Maximum Response Timer expires, the PE that has 5. When the Maximum Response Time timer expires, the PE that has
advertised the IGMP Leave Synch route withdraws it. advertised the IGMP Leave Synch route withdraws it.
6.2.1. Remote Leave Group Synchronization 6.2.1. Remote Leave Group Synchronization
When a PE, either DF or non-DF, receives an IGMP Leave Synch route it When a PE, either DF or non-DF, receives an IGMP Leave Synch route,
installs that route and it starts a timer for (x,G) on the specified it installs that route and it starts a timer for (x,G) on the
(ES,BD) whose value is set to the Maximum Response Time in the specified (ES,BD), whose value is set to the Maximum Response Time in
received IGMP Leave Synch route. Note that the receipt of subsequent the received IGMP Leave Synch route. Note that the receipt of
IGMPv2 Leave Group messages or BGP Leave Synch routes for (x,G) do subsequent IGMPv2 Leave Group messages or BGP Leave Synch routes for
not change the value of a currently running Maximum Response Time (x,G) do not change the value of a currently running Maximum Response
timer and are ignored by the PE. Time timer and are ignored by the PE.
6.2.2. Common Leave Group Synchronization 6.2.2. Common Leave Group Synchronization
If a PE attached to the multihomed ES receives an IGMP Membership If a PE attached to the multihomed ES receives an IGMP Membership
Report for (x,G) before the Maximum Response Time timer expires, it Report for (x,G) before the Maximum Response Time timer expires, it
advertises a BGP IGMP Membership Report Synch route for that (ES,BD). advertises a BGP IGMP Membership Report Synch route for that (ES,BD).
If it doesn't already have local IGMP Membership Request (x,G) state If it doesn't already have the local IGMP Membership Request (x,G)
for that (ES,BD), it instantiates local IGMP Membership Request (x,G) state for that (ES,BD), it instantiates that local IGMP Membership
state. If the DF is not currently advertising (originating) a SMET Request (x,G) state. If the DF is not currently advertising
route for that (x,G) group in that BD, it does so now. (originating) a SMET route for that (x,G) group in that BD, it does
so now.
If a PE attached to the multihomed ES receives an IGMP Membership If a PE attached to the multihomed ES receives an IGMP Membership
Report Synch route for (x,G) before the Maximum Response Time timer Report Synch route for (x,G) before the Maximum Response Time timer
expires, it installs that route and if it doesn't already have IGMP expires, it installs that route, and if it doesn't already have the
Membership Request (x,G) state for that BD on that ES, it IGMP Membership Request (x,G) state for that BD on that ES, it
instantiates that IGMP Membership Request (x,G) state. If the DF has instantiates that IGMP Membership Request (x,G) state. If the DF has
not already advertised (originated) a SMET route for that (x,G) group not already advertised (originated) a SMET route for that (x,G) group
in that BD, it does so now. in that BD, it does so now.
When the Maximum Response Timer expires a PE that has advertised an When the Maximum Response Time timer expires, a PE that has
IGMP Leave Synch route, withdraws it. Any PE attached to the advertised an IGMP Leave Synch route withdraws it. Any PE attached
multihomed ES, that started the Maximum Response Time and has no to the multihomed ES, which started the Maximum Response Time and has
local IGMP Membership Request (x,G) state and no installed IGMP no local IGMP Membership Request (x,G) state and no installed IGMP
Membership Report Synch routes, it removes IGMP Membership Request Membership Report Synch routes, removes the IGMP Membership Request
(x,G) state for that (ES,BD). If the DF no longer has IGMP (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 Membership Request (x,G) state for that BD on any ES for which it is
DF, it withdraws its SMET route for that (x,G) group in that BD. the DF, it withdraws its SMET route for that (x,G) group in that BD.
6.3. Mass Withdraw of Multicast Membership Report Sync route in case of 6.3. Mass Withdraw of the Multicast Membership Report Synch Route in
failure Case of Failure
A PE which has received an IGMP Membership Request would have synced A PE that has received an IGMP Membership Request would have synced
the IGMP Membership Report by the procedure defined in section 6.1. the IGMP Membership Report by the procedure defined in Section 6.1.
If a PE with local Membership Report state goes down or the PE to CE If a PE with the local Membership Report state goes down or the PE to
link goes down, it would lead to a mass withdraw of multicast routes. CE link goes down, it would lead to a mass withdraw of multicast
Remote PEs (PEs where these routes were remote IGMP Membership routes. Remote PEs (PEs where these routes were remote IGMP
Reports) SHOULD NOT remove the state immediately; instead General Membership Reports) SHOULD NOT remove the state immediately; instead,
Query SHOULD be generated to refresh the states. There are several General Query SHOULD be generated to refresh the states. There are
ways to detect failure at a peer, e.g. using IGP next hop tracking or several ways to detect failure at a peer, e.g., using IGP next-hop
ES route withdraw. tracking or ES route withdraw.
7. Single-Active Multi-Homing 7. Single-Active Multihoming
Note that to facilitate state synchronization after failover, the PEs Note that to facilitate state synchronization after failover, the PEs
attached to a multihomed ES operating in Single-Active redundancy attached to a multihomed ES operating in Single-Active redundancy
mode SHOULD also coordinate IGMP Membership Report (x,G) state. In mode SHOULD also coordinate the IGMP Membership Report (x,G) state.
this case all IGMP Membership Report messages are received by the DF In this case, all IGMP Membership Report messages are received by the
and distributed to the non-DF PEs using the procedures described DF and distributed to the non-DF PEs using the procedures described
above. above.
8. Selective Multicast Procedures for IR tunnels 8. Selective Multicast Procedures for IR Tunnels
If an ingress PE uses ingress replication, then for a given (x,G) If an ingress PE uses ingress replication, then for a given (x,G)
group in a given BD: group in a given BD:
1. It sends (x,G) traffic to the set of PEs not supporting IGMP or 1. It sends (x,G) traffic to the set of PEs not supporting IGMP or
MLD Proxy. This set consists of any PE that has advertised an MLD Proxies. This set consists of any PE that has advertised an
IMET route for the BD without a Multicast Flags extended Inclusive Multicast Ethernet Tag (IMET) route for the BD without
community or with a Multicast Flags extended community in which a Multicast Flags Extended Community or with a Multicast Flags
neither the IGMP Proxy support nor the MLD Proxy support flags Extended Community in which neither the IGMP Proxy support nor
are set. the MLD Proxy support flags are set.
2. It sends (x,G) traffic to the set of PEs supporting IGMP or MLD 2. It sends (x,G) traffic to the set of PEs supporting IGMP or MLD
Proxy and having listeners for that (x,G) group in that BD. This Proxies and has listeners for that (x,G) group in that BD. This
set consists of any PE that has advertised an IMET route for the set consists of any PE that has advertised an IMET route for the
BD with a Multicast Flags extended community in which the IGMP BD with a Multicast Flags Extended Community in which the IGMP
Proxy support and/or the MLD Proxy support flags are set and that 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. has advertised a SMET route for that (x,G) group in that BD.
9. BGP Encoding 9. BGP Encoding
This document defines three new BGP EVPN routes to carry IGMP This document defines three new BGP EVPN routes to carry IGMP
Membership Reports. The route types are known as: Membership Reports. The route types are known as:
+ 6 - Selective Multicast Ethernet Tag Route 6 - Selective Multicast Ethernet Tag Route
+ 7 - Multicast Membership Report Synch Route 7 - Multicast Membership Report Synch Route
+ 8 - Multicast Leave Synch Route 8 - Multicast Leave Synch Route
The detailed encoding and procedures for these route types are The detailed encoding and procedures for these route types are
described in subsequent sections. described in subsequent sections.
9.1. Selective Multicast Ethernet Tag Route 9.1. Selective Multicast Ethernet Tag Route
A Selective Multicast Ethernet Tag route type specific EVPN NLRI A SMET route-type-specific EVPN NLRI consists of the following:
consists of the following:
+---------------------------------------+ +---------------------------------------+
| RD (8 octets) | | RD (8 octets) |
+---------------------------------------+ +---------------------------------------+
| Ethernet Tag ID (4 octets) | | Ethernet Tag ID (4 octets) |
+---------------------------------------+ +---------------------------------------+
| Multicast Source Length (1 octet) | | Multicast Source Length (1 octet) |
+---------------------------------------+ +---------------------------------------+
| Multicast Source Address (variable) | | Multicast Source Address (variable) |
+---------------------------------------+ +---------------------------------------+
| Multicast Group Length (1 octet) | | Multicast Group Length (1 octet) |
+---------------------------------------+ +---------------------------------------+
| Multicast Group Address (Variable) | | Multicast Group Address (Variable) |
+---------------------------------------+ +---------------------------------------+
| Originator Router Length (1 octet) | | Originator Router Length (1 octet) |
+---------------------------------------+ +---------------------------------------+
| Originator Router Address (variable) | | Originator Router Address (variable) |
+---------------------------------------+ +---------------------------------------+
| Flags (1 octet) | | Flags (1 octet) |
+---------------------------------------+ +---------------------------------------+
For the purpose of BGP route key processing, all the fields are 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 one- considered to be part of the prefix in the NLRI, except for the
octet flag field. The Flags fields are defined as follows: 1-octet Flags field. The Flags fields are defined as follows:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1| | reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
o The least significant bit, bit 7 indicates support for IGMP * The least significant bit (bit 7) indicates support for IGMP
version 1. Since IGMP V1 is being deprecated sender MUST set it version 1. Since IGMPv1 is being deprecated, the sender MUST set
as 0 for IGMP and receiver MUST ignore it. it to 0 for IGMP and the receiver MUST ignore it.
o The second least significant bit, bit 6 indicates support for IGMP * The second least significant bit (bit 6) indicates support for
version 2. IGMP version 2.
o The third least significant bit, bit 5 indicates support for IGMP * The third least significant bit (bit 5) indicates support for IGMP
version 3. version 3.
o The fourth least significant bit, bit 4 indicates whether the * The fourth least significant bit (bit 4) indicates whether the
(S,G) information carried within the route-type is of an Include (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). Group type (bit value 0) or an Exclude Group type (bit value 1).
The Exclude Group type bit MUST be ignored if bit 5 is not set. The Exclude Group type bit MUST be ignored if bit 5 is not set.
o This EVPN route type is used to carry tenant IGMP multicast group * This EVPN route type is used to carry tenant IGMP multicast group
information. The flag field assists in distributing IGMP information. The Flags field assists in distributing the IGMP
Membership Report of a given host for a given multicast route. Membership Report of a given host for a given multicast route.
The version bits help associate IGMP version of receivers The version bits help associate the IGMP version of receivers
participating within the EVPN domain. participating within the EVPN domain.
o The include/exclude (IE) bit helps in creating filters for a given * The IE bit helps in creating filters for a given multicast route.
multicast route.
o If route is used for IPv6 (MLD) then bit 7 indicates support for * If the route is used for IPv6 (MLD), then bit 7 indicates support
MLD version 1. The second least significant bit, bit 6 indicates for MLD version 1. The second least significant bit (bit 6)
support for MLD version 2. Since there is no MLD version 3, in indicates support for MLD version 2. Since there is no MLD
case of IPv6 route third least significant bit MUST be 0. In case version 3, in case of IPv6 routes, the third least significant bit
of IPv6 routes, the fourth least significant bit MUST be ignored MUST be 0. In case of IPv6 routes, the fourth least significant
if bit 6 is not set. bit MUST be ignored if bit 6 is not set.
o Reserved bits MUST be set to 0 by sender. And receiver MUST * Reserved bits MUST be set to 0 by the sender, and the receiver
ignore the Reserved bits. MUST ignore the Reserved bits.
9.1.1. Constructing the Selective Multicast Ethernet Tag route 9.1.1. Constructing the Selective Multicast Ethernet Tag Route
This section describes the procedures used to construct the Selective This section describes the procedures used to construct the SMET
Multicast Ethernet Tag (SMET) route. route.
The Route Distinguisher (RD) SHOULD be a Type 1 RD [RFC4364]. The The Route Distinguisher (RD) SHOULD be a Type 1 RD [RFC4364]. The
value field comprises an IP address of the PE (typically, the value field comprises an IP address of the PE (typically, the
loopback address) followed by a number unique to the PE. loopback address), followed by a number unique to the PE.
The Ethernet Tag ID MUST be set as procedure defined in [RFC7432]. The Ethernet Tag ID MUST be set, as per the procedure defined in
[RFC7432].
The Multicast Source Length MUST be set to length of the multicast The Multicast Source Length MUST be set to the length of the
Source address in bits. If the Multicast Source Address field Multicast Source Address in bits. If the Multicast Source Address
contains an IPv4 address, then the value of the Multicast Source field contains an IPv4 address, then the value of the Multicast
Length field is 32. If the Multicast Source Address field contains Source Length field is 32. If the Multicast Source Address field
an IPv6 address, then the value of the Multicast Source Length field contains an IPv6 address, then the value of the Multicast Source
is 128. In case of a (*,G) Membership Report, the Multicast Source Length field is 128. In case of a (*,G) Membership Report, the
Length is set to 0. Multicast Source Length is set to 0.
The Multicast Source Address is the source IP address from the IGMP The Multicast Source Address is the source IP address from the IGMP
Membership Report. In case of a (*,G), this field is not used. Membership Report. In case of a (*,G) Membership Report, this field
is not used.
The Multicast Group Length MUST be set to length of multicast group The Multicast Group Length MUST be set to the length of the Multicast
address in bits. If the Multicast Group Address field contains an Group Address in bits. If the Multicast Group Address field contains
IPv4 address, then the value of the Multicast Group Length field is an IPv4 address, then the value of the Multicast Group Length field
32. If the Multicast Group Address field contains an IPv6 address, is 32. If the Multicast Group Address field contains an IPv6
then the value of the Multicast Group Length field is 128. address, then the value of the Multicast Group Length field is 128.
The Multicast Group Address is the Group address from the IGMP or MLD The Multicast Group Address is the group address from the IGMP or MLD
Membership Report. Membership Report.
The Originator Router Length is the length of the Originator Router The Originator Router Length is the length of the Originator Router
Address in bits. Address in bits.
The Originator Router Address is the IP address of router originating The Originator Router Address is the IP address of the router
this route. The SMET Originator Router IP address MUST match that of originating this route. The SMET Originator Router IP address MUST
the IMET (or S-PMSI AD) route originated for the same EVI by the same match that of the IMET (or S-PMSI Authentic Data (AD)) route
downstream PE. originated for the same EVI by the same downstream PE.
The Flags field indicates the version of IGMP protocol from which the The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the Membership Report was received. It also indicates whether the
multicast group had the INCLUDE or EXCLUDE bit set. multicast group had the Include/Exclude bit set.
Reserved bits MUST be set to 0. They can be defined in future by Reserved bits MUST be set to 0. They can be defined by other
other document. documents in the future.
IGMP is used to receive group membership information from hosts by IGMP is used to receive group membership information from hosts by
TORs. Upon receiving the hosts expression of interest of a Top-of-the-Rack (ToR) switches. Upon receiving the host's expression
particular group membership, this information is then forwarded using of interest in a particular group membership, this information is
SMET route. The NLRI also keeps track of receiver's IGMP protocol then forwarded using the SMET route. The NLRI also keeps track of
version and any source filtering for a given group membership. All the receiver's IGMP version and any source filtering for a given
EVPN SMET routes are announced with per- EVI Route Target extended group membership. All EVPN SMET routes are announced per EVI Route
communities. Target extended communities (EVI-RT ECs).
9.1.2. Reconstructing IGMP / MLD Membership Reports from Selective 9.1.2. Reconstructing IGMP/MLD Membership Reports from the Selective
Multicast Route Multicast Route
This section describes the procedures used to reconstruct IGMP / MLD This section describes the procedures used to reconstruct IGMP/MLD
Membership Reports from SMET route. Membership Reports from the SMET route.
o If multicast group length is 32, route would be translated to IGMP * If the Multicast Group Length is 32, the route is translated to
membership request. If multicast group length is 128, route would the IGMP Membership Request. If the Multicast Group Length is
be translated to MLD membership request. 128, the route is translated to an MLD Membership Request.
o Multicast group address field would be translated to IGMP / MLD * The Multicast Group Address field is translated to the IGMP/MLD
group address. group address.
o If Multicast source length is set to zero it would be translated * If the Multicast Source Length is set to 0, it is translated to
to any source (*). If multicast source length is non zero, any source (*). If the Multicast Source Length is non-zero, the
Multicast source address field would be translated to IGMP / MLD Multicast Source Address field is translated to the IGMP/MLD
source address. source address.
o If flag bit 7 is set, it translates Membership report to be IGMP * If flag bit 7 is set, it translates the Membership Report to be
V1 or MLD V1. IGMPv1 or MLDv1.
o If flag bit 6 is set, it translates Membership report to be IGMP * If flag bit 6 is set, it translates the Membership Report to be
V2 or MLD V2. IGMPv2 or MLDv2.
o Flag bit 5 is only valid for IGMP Membership report and if it is * Flag bit 5 is only valid for the IGMP Membership Report; if it is
set, it translates to IGMP V3 report. set, it translates to the IGMPv3 report.
o If IE flag is set, it translate to IGMP / MLD Exclude mode * If the IE flag is set, it translates to the IGMP/MLD Exclude mode
membership report. If IE flag is not set (zero), it translates to Membership Report. If the IE flag is not set (0), it translates
Include mode membership report. to the Include mode Membership Report.
9.1.3. Default Selective Multicast Route 9.1.3. Default Selective Multicast Route
If there is multicast router connected behind the EVPN domain, the PE If there is a multicast router connected behind the EVPN domain, the
MAY originate a default SMET (*,*) to get all multicast traffic in PE MAY originate a default SMET (*,*) to get all multicast traffic in
domain. the domain.
+--------------+ +--------------+
| | | |
| | | |
| | +----+ | | +----+
| | | |---- H1(*,G1)v2 | | | |---- H1(*,G1)v2
| IP/MPLS | | PE1|---- H2(S2,G2)v3 | IP/MPLS | | PE1|---- H2(S2,G2)v3
| Network | | |---- S2 | Network | | |---- S2
| | | | | | | |
| | +----+ | | +----+
| | | |
+----+ | | +----+ | |
+----+ | | | | +----+ | | | |
| | S1 ---| PE2| | | | | S1 ---| PE2| | |
|PIM |----R1 ---| | | | |PIM |----R1 ---| | | |
|ASM | +----+ | | |ASM | +----+ | |
| | | | | | | |
+----+ +--------------+ +----+ +--------------+
Figure 2: Multicast Router behind EVPN domain Figure 2: Multicast Router behind the EVPN Domain
Consider the EVPN network of Figure-2, where there is an EVPN Consider the EVPN network in Figure 2, where there is an EVPN
instance configured across the PEs. Let's consider that PE2 is instance configured across the PEs. Let's consider that PE2 is
connected to multicast router R1 and there is a network running PIM connected to multicast router R1 and there is a network running PIM
ASM behind R1. If there are receivers behind the PIM ASM network the ASM behind R1. If there are receivers behind the PIM ASM network,
PIM Join would be forwarded to the PIM RP (Rendezvous Point). If the PIM Join would be forwarded to the PIM Rendezvous Point (RP). If
receivers behind PIM ASM network are interested in a multicast flow receivers behind the PIM ASM network are interested in a multicast
originated by multicast source S2 (behind PE1), it is necessary for flow originated by multicast source S2 (behind PE1), it is necessary
PE2 to receive multicast traffic. In this case PE2 MUST originate a for PE2 to receive multicast traffic. In this case, PE2 MUST
(*,*) SMET route to receive all of the multicast traffic in the EVPN originate a (*,*) SMET route to receive all of the multicast traffic
domain. To generate Wildcards (*,*) routes, the procedure from in the EVPN domain. To generate wildcard (*,*) routes, the procedure
[RFC6625] MUST be used. from [RFC6625] MUST be used.
9.2. Multicast Membership Report Synch Route 9.2. Multicast Membership Report Synch Route
This EVPN route type is used to coordinate IGMP Membership Report This EVPN route type is used to coordinate the IGMP Membership Report
(x,G) state for a given BD between the PEs attached to a given ES (x,G) state for a given BD between the PEs attached to a given ES
operating in All- Active (or Single-Active) redundancy mode and it operating in All-Active (or Single-Active) redundancy mode, and it
consists of following: consists of the following:
+--------------------------------------------------+ +--------------------------------------------------+
| RD (8 octets) | | RD (8 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Ethernet Segment Identifier (10 octets) | | Ethernet Segment Identifier (10 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Ethernet Tag ID (4 octets) | | Ethernet Tag ID (4 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Source Length (1 octet) | | Multicast Source Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Source Address (variable) | | Multicast Source Address (variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Group Length (1 octet) | | Multicast Group Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Group Address (Variable) | | Multicast Group Address (Variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Originator Router Length (1 octet) | | Originator Router Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Originator Router Address (variable) | | Originator Router Address (variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Flags (1 octet) | | Flags (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
For the purpose of BGP route key processing, all the fields are 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 one- considered to be part of the prefix in the NLRI, except for the
octet Flags field, whose fields are defined as follows: 1-octet Flags field, whose fields are defined as follows:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1| | reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
o The least significant bit, bit 7 indicates support for IGMP * The least significant bit (bit 7) indicates support for IGMP
version 1. version 1.
o The second least significant bit, bit 6 indicates support for IGMP * The second least significant bit (bit 6) indicates support for
version 2. IGMP version 2.
o The third least significant bit, bit 5 indicates support for IGMP * The third least significant bit (bit 5) indicates support for IGMP
version 3. version 3.
o The fourth least significant bit, bit 4 indicates whether the (S, * The fourth least significant bit (bit 4) indicates whether the (S,
G) information carried within the route-type is of Include Group G) information carried within the route type is of an Include
type (bit value 0) or an Exclude Group type (bit value 1). The Group type (bit value 0) or an Exclude Group type (bit value 1).
Exclude Group type bit MUST be ignored if bit 5 is not set. The Exclude Group type bit MUST be ignored if bit 5 is not set.
o Reserved bits MUST be set to 0. * Reserved bits MUST be set to 0.
The Flags field assists in distributing IGMP Membership Report of a The Flags field assists in distributing the IGMP Membership Report of
given host for a given multicast route. The version bits help a given host for a given multicast route. The version bits help
associate IGMP version of receivers participating within the EVPN associate the IGMP version of receivers participating within the EVPN
domain. The include/exclude bit helps in creating filters for a domain. The Include/Exclude bit helps in creating filters for a
given multicast route. given multicast route.
If route is being prepared for IPv6 (MLD) then bit 7 indicates If the route is being prepared for IPv6 (MLD), then bit 7 indicates
support for MLD version 1. The second least significant bit, bit 6 support for MLD version 1. The second least significant bit (bit 6)
indicates support for MLD version 2. Since there is no MLD version indicates support for MLD version 2. Since there is no MLD version
3, in case of IPv6 route third least significant bit MUST be 0. In 3, in case of the IPv6 route, the third least significant bit MUST be
case of IPv6 route, the fourth least significant bit MUST be ignored 0. In case of the IPv6 route, the fourth least significant bit MUST
if bit 6 is not set. be ignored if bit 6 is not set.
9.2.1. Constructing the Multicast Membership Report Synch Route 9.2.1. Constructing the Multicast Membership Report Synch Route
This section describes the procedures used to construct the IGMP This section describes the procedures used to construct the IGMP
Membership Report Synch route. Support for these route types is Membership Report Synch route. Support for these route types is
optional. If a PE does not support this route, then it MUST NOT optional. If a PE does not support this route, then it MUST NOT
indicate that it supports 'IGMP proxy' in the Multicast Flag extended indicate that it supports "IGMP Proxy" in the Multicast Flags
community for the EVIs corresponding to its multi-homed Ethernet Extended Community for the EVIs corresponding to its multihomed ESs.
Segments (ESs).
An IGMP Membership Report Synch route MUST carry exactly one ES- An IGMP Membership Report Synch route MUST carry exactly one ES-
Import Route Target extended community, the one that corresponds to Import Route Target extended community, i.e., the one that
the ES on which the IGMP Membership Report was received. It MUST corresponds to the ES on which the IGMP Membership Report was
also carry exactly one EVI-RT EC, the one that corresponds to the EVI received. It MUST also carry exactly one EVI-RT EC, i.e., the one
on which the IGMP Membership Report was received. See Section 9.5 that corresponds to the EVI on which the IGMP Membership Report was
for details on how to encode and construct the EVI-RT EC. received. See Section 9.5 for details on how to encode and construct
the EVI-RT EC.
The Route Distinguisher (RD) SHOULD be a Type 1 RD [RFC4364]. The The RD SHOULD be Type 1 [RFC4364]. The value field comprises an IP
value field comprises an IP address of the PE (typically, the address of the PE (typically, the loopback address), followed by a
loopback address) followed by a number unique to the PE. number unique to the PE.
The Ethernet Segment Identifier (ESI) MUST be set to the 10-octet The Ethernet Segment Identifier (ESI) MUST be set to the 10-octet
value defined for the ES. value defined for the ES.
The Ethernet Tag ID MUST be set as per procedure defined in The Ethernet Tag ID MUST be set, as per the procedure defined in
[RFC7432]. [RFC7432].
The Multicast Source length MUST be set to length of Multicast Source The Multicast Source Length MUST be set to the length of the
address in bits. If the Multicast Source field contains an IPv4 Multicast Source Address in bits. If the Multicast Source field
address, then the value of the Multicast Source Length field is 32. contains an IPv4 address, then the value of the Multicast Source
If the Multicast Source field contains an IPv6 address, then the Length field is 32. If the Multicast Source field contains an IPv6
value of the Multicast Source Length field is 128. In case of a address, then the value of the Multicast Source Length field is 128.
(*,G) Membership Report, the Multicast Source Length is set to 0. In case of a (*,G) Membership Report, the Multicast Source Length is
set to 0.
The Multicast Source is the Source IP address of the IGMP Membership The Multicast Source is the source IP address of the IGMP Membership
Report. In case of a (*,G) Membership Report, this field does not Report. In case of a (*,G) Membership Report, this field does not
exist. exist.
The Multicast Group length MUST be set to length of multicast group The Multicast Group Length MUST be set to the length of the Multicast
address in bits. If the Multicast Group field contains an IPv4 Group Address in bits. If the Multicast Group field contains an IPv4
address, then the value of the Multicast Group Length field is 32. address, then the value of the Multicast Group Length field is 32.
If the Multicast Group field contains an IPv6 address, then the value If the Multicast Group field contains an IPv6 address, then the value
of the Multicast Group Length field is 128. of the Multicast Group Length field is 128.
The Multicast Group is the Group address of the IGMP Membership The Multicast Group is the group address of the IGMP Membership
Report. Report.
The Originator Router Length is the length of the Originator Router The Originator Router Length is the length of the Originator Router
address in bits. Address in bits.
The Originator Router Address is the IP address of Router Originating The Originator Router Address is the IP address of the router
the prefix. originating the prefix.
The Flags field indicates the version of IGMP protocol from which the The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the Membership Report was received. It also indicates whether the
multicast group had INCLUDE or EXCLUDE bit set. multicast group had the Include/Exclude bit set.
Reserved bits MUST be set to 0. Reserved bits MUST be set to 0.
9.2.2. Reconstructing IGMP / MLD Membership Reports from Multicast 9.2.2. Reconstructing IGMP/MLD Membership Reports from a Multicast
Membership Report Sync Route Membership Report Synch Route
This section describes the procedures used to reconstruct IGMP / MLD This section describes the procedures used to reconstruct IGMP/MLD
Membership Reports from Multicast Membership Report Sync route. Membership Reports from the Multicast Membership Report Synch route.
o If multicast group length is 32, route would be translated to IGMP * If the Multicast Group Length is 32, the route is translated to
membership request. If multicast group length is 128, route would the IGMP Membership Request. If the Multicast Group Length is
be translated to MLD membership request. 128, the route is translated to an MLD Membership Request.
o Multicast group address field would be translated to IGMP / MLD * The Multicast Group Address field is translated to the IGMP/MLD
group address. group address.
o If Multicast source length is set to zero it would be translated * If the Multicast Source Length is set to 0, it is translated to
to any source (*). If multicast source length is non zero, any source (*). If the Multicast Source Length is non-zero, the
Multicast source address field would be translated to IGMP / MLD Multicast Source Address field is translated to the IGMP/MLD
source address. source address.
o If flag bit 7 is set, it translates Membership report to be IGMP * If flag bit 7 is set, it translates the Membership Report to be
V1 or MLD V1. IGMPv1 or MLDv1.
o If flag bit 6 is set, it translates Membership report to be IGMP * If flag bit 6 is set, it translates the Membership Report to be
V2 or MLD V2. IGMPv2 or MLDv2.
o Flag bit 5 is only valid for IGMP Membership report and if it is * Flag bit 5 is only valid for the IGMP Membership Report; if it is
set, it translates to IGMP V3 report. set, it translates to the IGMPv3 report.
o If IE flag is set, it translate to IGMP / MLD Exclude mode * If the IE flag is set, it translates to the IGMP/MLD Exclude mode
membership report. If IE flag is not set (zero), it translates to Membership Report. If the IE flag is not set (0), it translates
Include mode membership report. to the Include mode Membership Report.
9.3. Multicast Leave Synch Route 9.3. Multicast Leave Synch Route
This EVPN route type is used to coordinate IGMP Leave Group (x,G) This EVPN route type is used to coordinate the IGMP Leave Group (x,G)
state for a given BD between the PEs attached to a given ES operating state for a given BD between the PEs attached to a given ES operating
in All-Active (or Single-Active) redundancy mode and it consists of in an All-Active (or Single-Active) redundancy mode, and it consists
following: of the following:
+--------------------------------------------------+ +--------------------------------------------------+
| RD (8 octets) | | RD (8 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Ethernet Segment Identifier (10 octets) | | Ethernet Segment Identifier (10 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Ethernet Tag ID (4 octets) | | Ethernet Tag ID (4 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Source Length (1 octet) | | Multicast Source Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Source Address (variable) | | Multicast Source Address (variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Group Length (1 octet) | | Multicast Group Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Multicast Group Address (Variable) | | Multicast Group Address (Variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Originator Router Length (1 octet) | | Originator Router Length (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Originator Router Address (variable) | | Originator Router Address (variable) |
+--------------------------------------------------+ +--------------------------------------------------+
| Reserved (4 octet) | | Reserved (4 octets) |
+--------------------------------------------------+ +--------------------------------------------------+
| Maximum Response Time (1 octet) | | Maximum Response Time (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| Flags (1 octet) | | Flags (1 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
For the purpose of BGP route key processing, all the fields are 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 considered to be part of the prefix in the NLRI, except for the
Reserved, Maximum Response Time and the one-octet Flags field, whose Reserved, Maximum Response Time, and 1-octet Flags fields, which are
fields are defined as follows: defined as follows:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1| | reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
o The least significant bit, bit 7 indicates support for IGMP * The least significant bit (bit 7) indicates support for IGMP
version 1. version 1.
o The second least significant bit, bit 6 indicates support for IGMP * The second least significant bit (bit 6) indicates support for
version 2. IGMP version 2.
o The third least significant bit, bit 5 indicates support for IGMP * The third least significant bit (bit 5) indicates support for IGMP
version 3. version 3.
o The fourth least significant bit, bit 4 indicates whether the (S, * The fourth least significant bit (bit 4) indicates whether the (S,
G) information carried within the route-type is of Include Group G) information carried within the route type is of an Include
type (bit value 0) or an Exclude Group type (bit value 1). The Group type (bit value 0) or an Exclude Group type (bit value 1).
Exclude Group type bit MUST be ignored if bit 5 is not set. The Exclude Group type bit MUST be ignored if bit 5 is not set.
o Reserved bits MUST be set to 0. They can be defined in future by * Reserved bits MUST be set to 0. They can be defined by other
other document. documents in the future.
The Flags field assists in distributing IGMP Membership Report of a The Flags field assists in distributing the IGMP Membership Report of
given host for a given multicast route. The version bits help a given host for a given multicast route. The version bits help
associate IGMP version of receivers participating within the EVPN associate the IGMP version of the receivers participating within the
domain. The include/exclude bit helps in creating filters for a EVPN domain. The Include/Exclude bit helps in creating filters for a
given multicast route. given multicast route.
If route is being prepared for IPv6 (MLD) then bit 7 indicates If the route is being prepared for IPv6 (MLD), then bit 7 indicates
support for MLD version 1. The second least significant bit, bit 6 support for MLD version 1. The second least significant bit (bit 6)
indicates support for MLD version 2. Since there is no MLD version indicates support for MLD version 2. Since there is no MLD version
3, in case of IPv6 route third least significant bit MUST be 0. In 3, in case of the IPv6 route, the third least significant bit MUST be
case of IPv6 route, the fourth least significant bit MUST be ignored 0. In case of the IPv6 route, the fourth least significant bit MUST
if bit 6 is not set. be ignored if bit 6 is not set.
Reserved bits in flag MUST be set to 0. They can be defined in Reserved bits in the flag MUST be set to 0. They can be defined by
future by other document. other documents in the future.
9.3.1. Constructing the Multicast Leave Synch Route 9.3.1. Constructing the Multicast Leave Synch Route
This section describes the procedures used to construct the IGMP This section describes the procedures used to construct the IGMP
Leave Synch route. Support for these route types is optional. If a Leave Synch route. Support for these route types is optional. If a
PE does not support this route, then it MUST NOT indicate that it PE does not support this route, then it MUST NOT indicate that it
supports 'IGMP proxy' in Multicast Flag extended community for the supports "IGMP Proxy" in the Multicast Flags Extended Community for
EVIs corresponding to its multi-homed Ethernet Segments. the EVIs corresponding to its multihomed Ethernet segments.
An IGMP Leave Synch route MUST carry exactly one ES-Import Route An IGMP Leave Synch route MUST carry exactly one ES-Import Route
Target extended community, the one that corresponds to the ES on Target extended community, i.e., the one that corresponds to the ES
which the IGMP Leave was received. It MUST also carry exactly one on which the IGMP Leave was received. It MUST also carry exactly one
EVI-RT EC, the one that corresponds to the EVI on which the IGMP EVI-RT EC, i.e., the one that corresponds to the EVI on which the
Leave was received. See Section 9.5 for details on how to form the IGMP Leave was received. See Section 9.5 for details on how to form
EVI-RT EC. the EVI-RT EC.
The Route Distinguisher (RD) SHOULD be a Type 1 RD [RFC4364]. The The RD SHOULD be Type 1 [RFC4364]. The value field comprises an IP
value field comprises an IP address of the PE (typically, the address of the PE (typically, the loopback address), followed by a
loopback address) followed by a number unique to the PE. number unique to the PE.
The Ethernet Segment Identifier (ESI) MUST be set to the 10-octet The ESI MUST be set to the 10-octet value defined for the ES.
value defined for the ES.
The Ethernet Tag ID MUST be set as per procedure defined in The Ethernet Tag ID MUST be set, as per the procedure defined in
[RFC7432]. [RFC7432].
The Multicast Source length MUST be set to length of multicast source The Multicast Source Length MUST be set to the length of the
address in bits. If the Multicast Source field contains an IPv4 Multicast Source Address in bits. If the Multicast Source field
address, then the value of the Multicast Source Length field is 32. contains an IPv4 address, then the value of the Multicast Source
If the Multicast Source field contains an IPv6 address, then the Length field is 32. If the Multicast Source field contains an IPv6
value of the Multicast Source Length field is 128. In case of a address, then the value of the Multicast Source Length field is 128.
(*,G) Membership Report, the Multicast Source Length is set to 0. In case of a (*,G) Membership Report, the Multicast Source Length is
set to 0.
The Multicast Source is the Source IP address of the IGMP Membership The Multicast Source is the source IP address of the IGMP Membership
Report. In case of a (*,G) Membership Report, this field does not Report. In case of a (*,G) Membership Report, this field does not
exist. exist.
The Multicast Group length MUST be set to length of multicast group The Multicast Group Length MUST be set to the length of the Multicast
address in bits. If the Multicast Group field contains an IPv4 Group Address in bits. If the Multicast Group field contains an IPv4
address, then the value of the Multicast Group Length field is 32. address, then the value of the Multicast Group Length field is 32.
If the Multicast Group field contains an IPv6 address, then the value If the Multicast Group field contains an IPv6 address, then the value
of the Multicast Group Length field is 128. of the Multicast Group Length field is 128.
The Multicast Group is the Group address of the IGMP Membership The Multicast Group is the group address of the IGMP Membership
Report. Report.
The Originator Router Length is the length of the Originator Router The Originator Router Length is the length of the Originator Router
address in bits. Address in bits.
The Originator Router Address is the IP address of Router Originating The Originator Router Address is the IP address of the router
the prefix. originating the prefix.
Reserved field is not part of the route key. The originator MUST set The Reserved field is not part of the route key. The originator MUST
the reserved field to Zero , the receiver SHOULD ignore it and if it set the Reserved field to 0; the receiver SHOULD ignore it, and if it
needs to be propagated, it MUST propagate it unchanged needs to be propagated, it MUST propagate it unchanged.
Maximum Response Time is value to be used while sending query as The Maximum Response Time is the value to be used while sending a
defined in [RFC2236] query, as defined in [RFC2236].
The Flags field indicates the version of IGMP protocol from which the The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the Membership Report was received. It also indicates whether the
multicast group had INCLUDE or EXCLUDE bit set. multicast group had an Include/Exclude bit set.
9.3.2. Reconstructing IGMP / MLD Leave from Multicast Leave Sync Route 9.3.2. Reconstructing IGMP/MLD Leave from a Multicast Leave Synch Route
This section describes the procedures used to reconstruct IGMP / MLD This section describes the procedures used to reconstruct IGMP/MLD
Leave from Multicast Leave Sync route. Leave from the Multicast Leave Synch route.
o If multicast group length is 32, route would be translated to IGMP * If the Multicast Group Length is 32, the route is translated to
Leave. If multicast group length is 128, route would be IGMP Leave. If the Multicast Group Length is 128, the route is
translated to MLD Leave. translated to MLD Leave.
o Multicast group address field would be translated to IGMP / MLD * The Multicast Group Address field is translated to an IGMP/MLD
group address. group address.
o If Multicast source length is set to zero it would be translated * If the Multicast Source Length is set to 0, it is translated to
to any source (*). If multicast source length is non zero, any source (*). If the Multicast Source Length is non-zero, the
Multicast source address field would be translated to IGMP / MLD Multicast Source Address field is translated to the IGMP/MLD
source address. source address.
o If flag bit 7 is set, it translates Membership report to be IGMP * If flag bit 7 is set, it translates the Membership Report to be
V1 or MLD V1. IGMPv1 or MLDv1.
o If flag bit 6 is set, it translates Membership report to be IGMP
V2 or MLD V2.
o Flag bit 5 is only valid for IGMP Membership report and if it is * If flag bit 6 is set, it translates the Membership Report to be
set, it translates to IGMP V3 report. IGMPv2 or MLDv2.
o If IE flag is set, it translate to IGMP / MLD Exclude mode Leave. * Flag bit 5 is only valid for the IGMP Membership Report; if it is
If IE flag is not set (zero), it translates to Include mode Leave. set, it translates to the IGMPv3 report.
o * If the IE flag is set, it translates to the IGMP/MLD Exclude mode
Leave. If the IE flag is not set (0), it translates to the
Include mode Leave.
9.4. Multicast Flags Extended Community 9.4. Multicast Flags Extended Community
The 'Multicast Flags' extended community is a new EVPN extended The Multicast Flags Extended Community is a new EVPN Extended
community. EVPN extended communities are transitive extended Community. EVPN Extended Communities are transitive extended
communities with a Type field value of 6. IANA will assign a Sub- communities with a Type Value of 0x06. IANA has assigned 0x09 to
Type from the 'EVPN Extended Community Sub-Types' registry. Multicast Flags Extended Community in the "EVPN Extended Community
Sub-Types" subregistry.
A PE that supports IGMP and/or MLD Proxy on a given BD MUST attach A PE that supports IGMP and/or the MLD Proxy on a given BD MUST
this extended community to the IMET route it advertises advertises attach this extended community to the IMET route it advertises for
for that BD and it MUST set the IGMP and/or MLD Proxy Support flags that BD, and it MUST set the IGMP and/or MLD Proxy Support flags to
to 1. Note that an [RFC7432] compliant PE will not advertise this 1. Note that a PE compliant with [RFC7432] will not advertise this
extended community so its absence indicates that the advertising PE extended community, so its absence indicates that the advertising PE
does not support either IGMP or MLD Proxy. does not support either IGMP or MLD Proxies.
The advertisement of this extended community enables more efficient The advertisement of this extended community enables a more efficient
multicast tunnel setup from the source PE specially for ingress multicast tunnel setup from the source PE specially for ingress
replication - i.e., if an egress PE supports IGMP proxy but doesn't replication, i.e., if an egress PE supports the IGMP Proxy but
have any interest in a given (x,G), it advertises its IGMP proxy doesn't have any interest in a given (x,G), it advertises its IGMP
capability using this extended community but it does not advertise Proxy capability using this extended community, but it does not
any SMET route for that (x,G). When the source PE (ingress PE) advertise any SMET route for that (x,G). When the source PE (ingress
receives such advertisements from the egress PE, it does not 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 that egress PE; however, it does
replicate the multicast traffic to the egress PEs that don't replicate the multicast traffic to the egress PEs that don't
advertise such capability even if they don't have any interests in advertise such capability, even if they don't have any interests in
that (x,G). that (x,G).
A Multicast Flags extended community is encoded as an 8-octet value, A Multicast Flags Extended Community is encoded as an 8-octet value
as follows: as follows:
0 1 2 3 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 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| | Type=0x06 |Sub-Type=0x09 | Flags (2 Octets) |M|I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved=0 | | Reserved=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The low-order (lease significant) two bits are defined as the "IGMP The low-order (least significant) 2 bits are defined as the "IGMP
Proxy Support and MLD Proxy Support" bit. The absence of this Proxy Support" and "MLD Proxy Support" bits (see Section 12.3. The
extended community also means that the PE does not support IGMP absence of this extended community also means that the PE does not
proxy. where: support the IGMP Proxy, where:
o Type is 0x06 as registered with IANA for EVPN Extended * The Type is 0x06, as registered with IANA for EVPN Extended
Communities. Communities.
o Sub-Type : 0x09 * The Sub-Type is 0x09.
o Flags are two Octets value. * Flags are 2-octet values.
* Bit 15 (shown as I) defines IGMP Proxy Support. Value of 1 for - Bit 15 (shown as I) defines IGMP Proxy Support. The value of 1
bit 15 means that PE supports IGMP Proxy. Value of 0 for bit for bit 15 means that the PE supports the IGMP Proxy. The
15 means that PE does not supports IGMP Proxy. value of 0 for bit 15 means that the PE does not support the
IGMP Proxy.
* Bit 14 (shown as M) defines MLD Proxy Support. Value of 1 for - Bit 14 (shown as M) defines MLD Proxy Support. The value of 1
bit 14 means that PE supports MLD Proxy. Value of 0 for bit 14 for bit 14 means that the PE supports the MLD Proxy. The value
means that PE does not support MLD proxy. of 0 for bit 14 means that the PE does not support the MLD
Proxy.
* Bit 0 to 13 are reserved for future. Sender MUST set it 0 and - Bits 0 to 13 are reserved for the future. The sender MUST set
receiver MUST ignore it. it to 0, and the receiver MUST ignore it.
o Reserved bits are set to 0. Sender MUST set it to 0 and receiver * Reserved bits are set to 0. The sender MUST set it to 0, and the
MUST ignore it. receiver MUST ignore it.
If a router does not support this specification, it MUST NOT add If a router does not support this specification, it MUST NOT add the
Multicast Flags Extended Community in BGP route. A router receiving Multicast Flags Extended Community in the BGP route. When a router
BGP update, if M and I both flag are zero (0), the router MUST treat receives a BGP update, if both M and I flags are 0, the router MUST
this Update as malformed. Receiver of such update MUST ignore the treat this update as malformed. The receiver of such an update MUST
extended community. ignore the extended community.
9.5. EVI-RT Extended Community 9.5. EVI-RT Extended Community
In EVPN, every EVI is associated with one or more Route Targets In EVPN, every EVI is associated with one or more Route Targets.
(RTs). These Route Targets serve two functions: These RTs serve two functions:
1. Distribution control: RTs control the distribution of the routes. 1. Distribution control: RTs control the distribution of the routes.
If a route carries the RT associated with a particular EVI, it If a route carries the RT associated with a particular EVI, it
will be distributed to all the PEs on which that EVI exists. will be distributed to all the PEs on which that EVI exists.
2. EVI identification: Once a route has been received by a 2. EVI identification: Once a route has been received by a
particular PE, the RT is used to identify the EVI to which it particular PE, the RT is used to identify the EVI to which it
applies. applies.
An IGMP Membership Report Synch or IGMP Leave Synch route is An IGMP Membership Report Synch or IGMP Leave Synch route is
associated with a particular combination of ES and EVI. These routes associated with a particular combination of ES and EVI. These routes
need to be distributed only to PEs that are attached to the need to be distributed only to PEs that are attached to the
associated ES. Therefore these routes carry the ES-Import RT for associated ES. Therefore, these routes carry the ES-Import RT for
that ES. that ES.
Since an IGMP Membership Report Synch or IGMP Leave Synch route does 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 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. exists, these routes cannot carry the RT associated with that EVI.
Therefore, when such a route arrives at a particular PE, the route's 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. 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. Some other means of associating the route with an EVI must be used.
This document specifies four new Extended Communities (EC) that can This document specifies four new ECs that can be used to identify the
be used to identify the EVI with which a route is associated, but EVI with which a route is associated but do not have any effect on
which do not have any effect on the distribution of the route. These the distribution of the route. These new ECs are known as "Type 0
new ECs are known as the "Type 0 EVI-RT EC", the "Type 1 EVI-RT EC", EVI-RT EC", "Type 1 EVI-RT EC", "Type 2 EVI-RT EC", and "Type 3 EVI-
the "Type 2 EVI-RT EC", and the "Type 3 EVI-RT EC". RT EC".
1. A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA. 1. A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA.
2. A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB. 2. A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB.
3. A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC. 3. A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC.
4. A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD 4. A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD
Each IGMP Membership Report Synch or IGMP Leave Synch route MUST Each IGMP Membership Report Synch or IGMP Leave Synch route MUST
carry exactly one EVI-RT EC. The EVI-RT EC carried by a particular 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 route is constructed as follows. Each such route is the result of
having received an IGMP Membership Report or an IGMP Leave message having received an IGMP Membership Report or an IGMP Leave message
from a particular BD. The route is said to be associated with that 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 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 routes "about" that BD are distributed to all PEs attached to
that BD. So suppose a given IGMP Membership Report Synch or Leave that BD. So suppose a given IGMP Membership Report Synch or Leave
Synch route is associated with a given BD, say BD1, and suppose that Synch route is associated with a given BD, say BD1, and suppose that
the corresponding RT for BD1 is RT1. Then: the corresponding RT for BD1 is RT1. Then:
o 0. If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI- * If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI-RT
RT EC carried by the route is a Type 0 EVI-RT EC. The value field EC carried by the route is a Type 0 EVI-RT EC. The value field of
of the Type 0 EVI-RT EC is identical to the value field of RT1. the Type 0 EVI-RT EC is identical to the value field of RT1.
o 1. If RT1 is a Transitive IPv4-Address-specific EC, then the EVI- * If RT1 is a Transitive IPv4-Address-specific EC, then the EVI-RT
RT EC carried by the route is a Type 1 EVI-RT EC. The value field EC carried by the route is a Type 1 EVI-RT EC. The value field of
of the Type 1 EVI-RT EC is identical to the value field of RT1. the Type 1 EVI-RT EC is identical to the value field of RT1.
o 2. If RT1 is a Transitive Four-Octet-specific EC, then the EVI-RT * 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 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. the Type 2 EVI-RT EC is identical to the value field of RT1.
o 3. If RT1 is a Transitive IPv6-Address-specific EC, then the EVI- * If RT1 is a Transitive IPv6-Address-specific EC, then the EVI-RT
RT EC carried by the route is a Type 3 EVI-RT EC. The value field EC carried by the route is a Type 3 EVI-RT EC. The value field of
of the Type 3 EVI-RT EC is identical to the value field of RT1. the Type 3 EVI-RT EC is identical to the value field of RT1.
An IGMP Membership Report Synch or Leave Synch route MUST carry An IGMP Membership Report Synch or Leave Synch route MUST carry
exactly one EVI-RT EC. exactly one EVI-RT EC.
Suppose a PE receives a particular IGMP Membership Report Synch or Suppose a PE receives a particular IGMP Membership Report Synch or
IGMP Leave Synch route, say R1, and suppose that R1 carries an ES- 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 Import RT that is one of the PE's Import RTs. If R1 has no EVI-RT EC
EC, or has more than one EVI-RT EC, the PE MUST apply the "treat-as- or has more than one EVI-RT EC, the PE MUST apply the "treat-as-
withdraw" procedure of [RFC7606]. withdraw" procedure per [RFC7606].
Note that an EVI-RT EC is not a Route Target Extended Community, is Note that an EVI-RT EC is not a Route Target extended community, is
not visible to the RT Constrain mechanism [RFC4684], and is not not visible to the RT Constrain mechanism [RFC4684], and is not
intended to influence the propagation of routes by BGP. intended to influence the propagation of routes by BGP.
1 2 3 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 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 | | Type=0x06 | Sub-Type=n | RT associated with EVI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RT associated with the EVI (cont.) | | RT associated with the EVI (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where the value of 'n' is 0x0A, 0x0B, 0x0C, or 0x0D corresponding to The value of "n" is 0x0A, 0x0B, 0x0C, or 0x0D, corresponding to EVI-
EVI-RT type 0, 1, 2, or 3 respectively. RT types 0, 1, 2, or 3, respectively.
9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs 9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs
There are certain situations in which an ES is attached to a set of There are certain situations in which an ES is attached to a set of
PEs that are not all in the same AS, or not all operated by the same 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 provider. In this situation, the RT that corresponds to a particular
particular EVI may be different in each AS. If a route is propagated EVI may be different in each AS. If a route is propagated from AS1
from AS1 to AS2, an ASBR at the AS1/AS2 border may be provisioned to AS2, an ASBR at the AS1/AS2 border may be configured with a policy
with a policy that removes the RTs that are meaningful in AS1 and that replaces the EVI RTs for AS1 with the corresponding EVI RTs for
replaces them with the corresponding (i.e., RTs corresponding to the AS2. This is known as RT-rewriting.
same EVIs) RTs that are meaningful in AS2. This is known as RT-
rewriting.
Note that if a given route's RTs are rewritten, and the route carries If an ASBR is configured to perform RT-rewriting of the EVI RTs in
an EVI-RT EC, the EVI-RT EC needs to be rewritten as well. EVPN routes, it MUST be configured to perform RT-rewriting of the
corresponding EVI-RT extended communities in IGMP Join Synch and IGMP
Leave Synch Routes.
9.7. BGP Error Handling 9.7. BGP Error Handling
If a received BGP update contains Flags not in accordance with IGMP/ If a received BGP update contains Flags not in accordance with the
MLD version-X expectation, the PE MUST apply the "treat-as-withdraw" IGMP/MLD version-X expectation, the PE MUST apply the "treat-as-
procedure as per [RFC7606] withdraw" procedure per [RFC7606].
If a received BGP update is malformed such that BGP route keys cannot If a received BGP update is malformed such that BGP route keys cannot
be extracted, then BGP update MUST be considered as invalid. be extracted, then the BGP update MUST be considered invalid. The
Receiving PE MUST apply the "Session reset" procedure of [RFC7606]. receiving PE MUST apply the "session reset" procedure per [RFC7606].
10. IGMP Version 1 Membership Report 10. IGMP Version 1 Membership Report
This document does not provide any detail about IGMPv1 processing. This document does not provide any detail about IGMPv1 processing.
Implementations are expected to only use IGMPv2 and above for IPv4 Implementations are expected to only use IGMPv2 and above for IPv4
and MLDv1 and above for IPv6. IGMPv1 routes are considered invalid and MLDv1 and above for IPv6. IGMPv1 routes are considered invalid,
and the PE MUST apply the "treat-as-withdraw" procedure as per and the PE MUST apply the "treat-as-withdraw" procedure per
[RFC7606]. [RFC7606].
11. Security Considerations 11. Security Considerations
This document describes a means to efficiently operate IGMP and MLD This document describes a means to efficiently operate IGMP and MLD
on a subnet constructed across multiple PODs or DCs via an EVPN on a subnet constructed across multiple PODs or DCs via an EVPN
solution. The security considerations for the operation of the solution. The security considerations for the operation of the
underlying EVPN and BGP substrate are described in [RFC7432], and underlying EVPN and BGP substrates are described in [RFC7432], and
specific multicast considerations are outlined in [RFC6513] and specific multicast considerations are outlined in [RFC6513] and
[RFC6514]. The EVPN and associated IGMP proxy provides a single [RFC6514]. The EVPN and associated IGMP Proxy provides a single
broadcast domain so the same security considerations of IGMPv2 broadcast domain so the same security considerations of IGMPv2
[RFC2236], [RFC3376], MLD [RFC2710], or MLDv2 [RFC3810] apply. [RFC2236], IGMPv3 [RFC3376], MLD [RFC2710], or MLDv2 [RFC3810] apply.
12. IANA Considerations 12. IANA Considerations
12.1. EVPN Extended Community Sub-Types Registrations 12.1. EVPN Extended Community Sub-Types Registration
IANA has allocated the following codepoints from the EVPN Extended
Community Sub-Types sub-registry of the BGP Extended Communities
registry.
0x09 Multicast Flags Extended Community [this document]
0x0A EVI-RT Type 0 [this document]
0x0B EVI-RT Type 1 [this document]
0x0C EVI-RT Type 2 [this document]
IANA is requested to allocate a new codepoint from the EVPN Extended
Community sub-types registry for the following.
0x0D EVI-RT Type 3 [this document]
12.2. EVPN Route Type Registration
IANA has allocated the following EVPN route types from the EVPN Route
Type registry.
6 - Selective Multicast Ethernet Tag Route IANA has allocated the following codepoints in the "EVPN Extended
7 - Multicast Membership Report Synch Route Community Sub-Types" subregistry under the "Border Gateway Protocol
8 - Multicast Leave Synch Route (BGP) Extended Communities" registry.
12.3. Multicast Flags Extended Community Registry +================+====================================+===========+
| Sub-Type Value | Name | Reference |
+================+====================================+===========+
| 0x09 | Multicast Flags Extended Community | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0A | EVI-RT Type 0 | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0B | EVI-RT Type 1 | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0C | EVI-RT Type 2 | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0D | EVI-RT Type 3 | RFC 9251 |
+----------------+------------------------------------+-----------+
The Multicast Flags Extended Community contains a 16-bit Flags field. Table 1: EVPN Extended Community Sub-Types Subregistry
The bits are numbered 0-15, from high-order to low-order. Allocated Codepoints
The registry should be initialized as follows: 12.2. EVPN Route Types Registration
Bit Name Reference Change Controller IANA has allocated the following EVPN route types in the "EVPN Route
---- -------------- ------------- ------------------ Types" subregistry.
0 - 13 Unassigned
14 MLD Proxy Support This document. IETF
15 IGMP Proxy Support This document IETF
The registration policy should be "First Come First Served". 6 - Selective Multicast Ethernet Tag Route
13. Acknowledgement 7 - Multicast Membership Report Synch Route
The authors would like to thank Stephane Litkowski, Jorge Rabadan, 8 - Multicast Leave Synch Route
Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Ananthamurthy,
Swadesh Agrawal for reviewing and providing valuable comment.
14. Contributors 12.3. Multicast Flags Extended Community Registry
Derek Yeung IANA has created and now maintains a new subregistry called
"Multicast Flags Extended Community" under the "Border Gateway
Protocol (BGP) Extended Communities" registry. The registration
procedure is First Come First Served [RFC8126]. For the 16-bit Flags
field, the bits are numbered 0-15, from high order to low order. The
registry was initialized as follows:
Arrcus +======+====================+===========+===================+
| Bit | Name | Reference | Change Controller |
+======+====================+===========+===================+
| 0-13 | Unassigned | | |
+------+--------------------+-----------+-------------------+
| 14 | MLD Proxy Support | RFC 9251 | IETF |
+------+--------------------+-----------+-------------------+
| 15 | IGMP Proxy Support | RFC 9251 | IETF |
+------+--------------------+-----------+-------------------+
Email: derek@arrcus.com Table 2: Multicast Flags Extended Community
15. References 13. References
15.1. Normative References 13.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2236] Fenner, W., "Internet Group Management Protocol, Version [RFC2236] Fenner, W., "Internet Group Management Protocol, Version
2", RFC 2236, DOI 10.17487/RFC2236, November 1997, 2", RFC 2236, DOI 10.17487/RFC2236, November 1997,
<https://www.rfc-editor.org/info/rfc2236>. <https://www.rfc-editor.org/info/rfc2236>.
skipping to change at page 35, line 33 skipping to change at line 1572
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
Patel, "Revised Error Handling for BGP UPDATE Messages", Patel, "Revised Error Handling for BGP UPDATE Messages",
RFC 7606, DOI 10.17487/RFC7606, August 2015, RFC 7606, DOI 10.17487/RFC7606, August 2015,
<https://www.rfc-editor.org/info/rfc7606>. <https://www.rfc-editor.org/info/rfc7606>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
15.2. Informative References 13.2. Informative References
[I-D.ietf-bess-evpn-bum-procedure-updates] [EVPN-BUM] Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A.
Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A. Sajassi, "Updates on EVPN BUM Procedures", Work in
Sajassi, "Updates on EVPN BUM Procedures", draft-ietf- Progress, Internet-Draft, draft-ietf-bess-evpn-bum-
bess-evpn-bum-procedure-updates-14 (work in progress), procedure-updates-14, 18 November 2021,
November 2021. <https://datatracker.ietf.org/doc/html/draft-ietf-bess-
evpn-bum-procedure-updates-14>.
[RFC4541] Christensen, M., Kimball, K., and F. Solensky, [RFC4541] Christensen, M., Kimball, K., and F. Solensky,
"Considerations for Internet Group Management Protocol "Considerations for Internet Group Management Protocol
(IGMP) and Multicast Listener Discovery (MLD) Snooping (IGMP) and Multicast Listener Discovery (MLD) Snooping
Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006, Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006,
<https://www.rfc-editor.org/info/rfc4541>. <https://www.rfc-editor.org/info/rfc4541>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
Acknowledgements
The authors would like to thank Stephane Litkowski, Jorge Rabadan,
Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Ananthamurthy, and
Swadesh Agrawal for their reviews and valuable comments.
Contributors
Derek Yeung
Arrcus
Email: derek@arrcus.com
Authors' Addresses Authors' Addresses
Ali Sajassi Ali Sajassi
Cisco Systems Cisco Systems
821 Alder Drive, 821 Alder Drive
MILPITAS, CALIFORNIA 95035 Milpitas, CA 95035
UNITED STATES United States of America
Email: sajassi@cisco.com Email: sajassi@cisco.com
Samir Thoria Samir Thoria
Cisco Systems Cisco Systems
821 Alder Drive, 821 Alder Drive
MILPITAS, CALIFORNIA 95035 Milpitas, CA 95035
UNITED STATES United States of America
Email: sthoria@cisco.com Email: sthoria@cisco.com
Mankamana Mishra Mankamana Mishra
Cisco Systems Cisco Systems
821 Alder Drive, 821 Alder Drive
MILPITAS, CALIFORNIA 95035 Milpitas, CA 95035
UNITED STATES United States of America
Email: mankamis@cisco.com Email: mankamis@cisco.com
Keyur PAtel Keyur Patel
Arrcus Arrcus
UNITED STATES United States of America
Email: keyur@arrcus.com Email: keyur@arrcus.com
John Drake John Drake
Juniper Networks Juniper Networks
Email: jdrake@juniper.net Email: jdrake@juniper.net
Wen Lin Wen Lin
Juniper Networks Juniper Networks
Email: wlin@juniper.net Email: wlin@juniper.net
 End of changes. 283 change blocks. 
933 lines changed or deleted 957 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/