draft-ietf-bess-evpn-igmp-mld-proxy-04.txt   draft-ietf-bess-evpn-igmp-mld-proxy-05.txt 
BESS Working Group Ali Sajassi BESS WorkGroup A. Sajassi
Internet-Draft Samir Thoria Internet-Draft S. Thoria
Intended Status: Standards Track Cisco Intended status: Standards Track Cisco Systems
Keyur Patel Expires: October 30, 2020 K. Patel
Arrcus Arrcus
John Drake J. Drake
Wen Lin W. Lin
Juniper Juniper Networks
April 28, 2020
Expires: April 2, 2020 September 30, 2019
IGMP and MLD Proxy for EVPN IGMP and MLD Proxy for EVPN
draft-ietf-bess-evpn-igmp-mld-proxy-04 draft-ietf-bess-evpn-igmp-mld-proxy-05
Abstract Abstract
Ethernet Virtual Private Network (EVPN) solution is becoming Ethernet Virtual Private Network (EVPN) solution is becoming
pervasive in data center (DC) applications for Network Virtualization pervasive in data center (DC) applications for Network Virtualization
Overlay (NVO) and DC interconnect (DCI) services, and in service Overlay (NVO) and DC interconnect (DCI) services, and in service
provider (SP) applications for next generation virtual private LAN provider (SP) applications for next generation virtual private LAN
services. services.
This draft describes how to support efficiently endpoints running This draft describes how to support efficiently endpoints running
IGMP for the above services over an EVPN network by incorporating IGMP for the above services over an EVPN network by incorporating
IGMP proxy procedures on EVPN PEs. IGMP proxy procedures on EVPN PEs.
Status of this Memo Status of This Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF). Note that other groups may also distribute
other groups may also distribute working documents as working documents as Internet-Drafts. The list of current Internet-
Internet-Drafts. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at This Internet-Draft will expire on October 30, 2020.
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2020 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
(http://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 Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Specification of Requirements . . . . . . . . . . . . . . . . . 5 2. Specification of Requirements . . . . . . . . . . . . . . . . 4
3 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 IGMP/MLD Proxy . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. IGMP/MLD Proxy . . . . . . . . . . . . . . . . . . . . . . . 5
4.1 Proxy Reporting . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Proxy Reporting . . . . . . . . . . . . . . . . . . . . . 6
4.1.1 IGMP/MLD Membership Report Advertisement in BGP . . . . 7 4.1.1. IGMP/MLD Membership Report Advertisement in BGP . . . 6
4.1.2 IGMP/MLD Leave Group Advertisement in BGP . . . . . . . 8 4.1.2. IGMP/MLD Leave Group Advertisement in BGP . . . . . . 8
4.2 Proxy Querier . . . . . . . . . . . . . . . . . . . . . . . 9 4.2. Proxy Querier . . . . . . . . . . . . . . . . . . . . . . 8
5 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1 PE with only attached hosts/VMs for a given subnet . . . . . 10 5.1. PE with only attached hosts/VMs for a given subnet . . . 10
5.2 PE with a mix of attached hosts/VMs and multicast source . . 11 5.2. PE with a mix of attached hosts/VMs and multicast source 11
5.3 PE with a mix of attached hosts/VMs, a multicast source 5.3. PE with a mix of attached hosts/VMs, a multicast source
and a router . . . . . . . . . . . . . . . . . . . . . . . . 11 and a router . . . . . . . . . . . . . . . . . . . . . . 11
6 All-Active Multi-Homing . . . . . . . . . . . . . . . . . . . . 11 6. All-Active Multi-Homing . . . . . . . . . . . . . . . . . . . 11
6.1 Local IGMP/MLD Join Synchronization . . . . . . . . . . . . 12 6.1. Local IGMP/MLD Join Synchronization . . . . . . . . . . . 11
6.2 Local IGMP/MLD Leave Group Synchronization . . . . . . . . . 12 6.2. Local IGMP/MLD Leave Group Synchronization . . . . . . . 12
6.2.1 Remote Leave Group Synchronization . . . . . . . . . . . 13 6.2.1. Remote Leave Group Synchronization . . . . . . . . . 13
6.2.2 Common Leave Group Synchronization . . . . . . . . . . . 14 6.2.2. Common Leave Group Synchronization . . . . . . . . . 13
6.3 Mass Withdraw of Multicast join Sync route in case of 6.3. Mass Withdraw of Multicast join Sync route in case of
failure . . . . . . . . . . . . . . . . . . . . . . . . . . 14 failure . . . . . . . . . . . . . . . . . . . . . . . . . 14
7 Single-Active Multi-Homing . . . . . . . . . . . . . . . . . . . 14 7. Single-Active Multi-Homing . . . . . . . . . . . . . . . . . 14
8 Selective Multicast Procedures for IR tunnels . . . . . . . . . 14 8. Selective Multicast Procedures for IR tunnels . . . . . . . . 14
9 BGP Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . 15 9. BGP Encoding . . . . . . . . . . . . . . . . . . . . . . . . 15
9.1 Selective Multicast Ethernet Tag Route . . . . . . . . . . . 15 9.1. Selective Multicast Ethernet Tag Route . . . . . . . . . 15
9.1.1 Constructing the Selective Multicast Ethernet Tag 9.1.1. Constructing the Selective Multicast Ethernet Tag
route . . . . . . . . . . . . . . . . . . . . . . . . . 17 route . . . . . . . . . . . . . . . . . . . . . . . . 17
9.1.2. Default Selective Multicast Route . . . . . . . . . . 18
9.1.2 Default Selective Multicast Route . . . . . . . . . . . 18 9.2. Multicast Join Synch Route . . . . . . . . . . . . . . . 19
9.2 Multicast Join Synch Route . . . . . . . . . . . . . . . . 19 9.2.1. Constructing the Multicast Join Synch Route . . . . . 21
9.2.1 Constructing the Multicast Join Synch Route . . . . . . 21 9.3. Multicast Leave Synch Route . . . . . . . . . . . . . . . 22
9.3 Multicast Leave Synch Route . . . . . . . . . . . . . . . . 22 9.3.1. Constructing the Multicast Leave Synch Route . . . . 24
9.3.1 Constructing the Multicast Leave Synch Route . . . . . 24 9.4. Multicast Flags Extended Community . . . . . . . . . . . 26
9.4 Multicast Flags Extended Community . . . . . . . . . . . . . 25 9.5. EVI-RT Extended Community . . . . . . . . . . . . . . . . 27
9.5 EVI-RT Extended Community . . . . . . . . . . . . . . . . . 26 9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs . . . . . . . 29
9.6 Rewriting of RT ECs and EVI-RT ECs by ASBRs . . . . . . . . 29 10. IGMP/MLD Immediate Leave . . . . . . . . . . . . . . . . . . 29
10 IGMP/MLD Immediate Leave . . . . . . . . . . . . . . . . . . . 29 11. IGMP Version 1 Membership Request . . . . . . . . . . . . . . 30
11 IGMP Version 1 Membership Request . . . . . . . . . . . . . . . 29 12. Security Considerations . . . . . . . . . . . . . . . . . . . 30
12 Security Considerations . . . . . . . . . . . . . . . . . . . . 30 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30
13 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 30 14. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 31
14 References . . . . . . . . . . . . . . . . . . . . . . . . . . 30 15. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 31
14.1 Normative References . . . . . . . . . . . . . . . . . . . 30 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
14.2 Informative References . . . . . . . . . . . . . . . . . . 31 16.1. Normative References . . . . . . . . . . . . . . . . . . 31
15 Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 31 16.2. Informative References . . . . . . . . . . . . . . . . . 32
16 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 32 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 32
1 Introduction 1. Introduction
Ethernet Virtual Private Network (EVPN) solution [RFC7432] is Ethernet Virtual Private Network (EVPN) solution [RFC7432] is
becoming pervasive in data center (DC) applications for Network becoming pervasive in data center (DC) applications for Network
Virtualization Overlay (NVO) and DC interconnect (DCI) services, and Virtualization Overlay (NVO) and DC interconnect (DCI) services, and
in service provider (SP) applications for next generation virtual in service provider (SP) applications for next generation virtual
private LAN services. private LAN services.
In DC applications, a point of delivery (POD) can consist of a In DC applications, a point of delivery (POD) can consist of a
collection of servers supported by several top of rack (TOR) and collection of servers supported by several top of rack (TOR) and
Spine switches. This collection of servers and switches are self Spine switches. This collection of servers and switches are self
contained and may have their own control protocol for intra-POD contained and may have their own control protocol for intra-POD
communication and orchestration. However, EVPN is used as standard communication and orchestration. However, EVPN is used as standard
way of inter-POD communication for both intra-DC and inter-DC. A way of inter-POD communication for both intra-DC and inter-DC. A
subnet can span across multiple PODs and DCs. EVPN provides robust subnet can span across multiple PODs and DCs. EVPN provides robust
multi-tenant solution with extensive multi-homing capabilities to multi-tenant solution with extensive multi-homing capabilities to
stretch a subnet (VLAN) across multiple PODs and DCs. There can be stretch a subnet (VLAN) across multiple PODs and DCs. There can be
many hosts/VMs ( several hundreds) attached to a subnet that is many hosts/VMs ( several hundreds) attached to a subnet that is
stretched across several PODs and DCs. stretched across several PODs and DCs.
These hosts/VMs express their interests in multicast groups on a These hosts/VMs express their interests in multicast groups on a
given subnet/VLAN by sending IGMP membership reports (Joins) for given subnet/VLAN by sending IGMP membership reports (Joins) for
their interested multicast group(s). Furthermore, an IGMP router their interested multicast group(s). Furthermore, an IGMP 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 this traffic for that group. The IGMP/MLD Proxy solution described in
draft accomplishes has three objectives: this draft accomplishes has three objectives:
1) Reduce flooding of IGMP messages: just like the ARP/ND suppression 1. Reduce flooding of IGMP messages: just like the ARP/ND
mechanism in EVPN to reduce the flooding of ARP messages over EVPN, suppression mechanism in EVPN to reduce the flooding of ARP
it is also desired to have a mechanism to reduce the flooding of IGMP messages over EVPN, it is also desired to have a mechanism to
messages (both Queries and Reports) in EVPN. reduce the flooding of IGMP messages (both Queries and 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 respect network to act as a distributed anycast multicast router with
to IGMP/MLD proxy function for all the hosts attached to that respect to IGMP/MLD proxy function for all the hosts attached to
subnet. that subnet.
3) Selective Multicast: to forward multicast traffic over EVPN 3. Selective Multicast: to forward multicast traffic over EVPN
network such that it only gets forwarded to the PEs that have network such that it only gets forwarded to the PEs that have
interest in the multicast group(s), multicast traffic will not be interest in the multicast group(s), multicast traffic will not be
forwarded to the PEs that have no receivers attached to them for that forwarded to the PEs that have no receivers attached to them for
multicast group. This draft shows how this objective may be achieved that multicast group. This draft shows how this objective may be
when Ingress Replication is used to distribute the multicast traffic achieved when Ingress Replication is used to distribute the
among the PEs. Procedures for supporting selective multicast using multicast traffic among the PEs. Procedures for supporting
P2MP tunnels can be found in [bum-procedure-updates] selective multicast using P2MP tunnels can be found in [bum-
procedure-updates]
The first two objectives are achieved by using IGMP/MLD proxy on the The first two objectives are achieved by using IGMP/MLD proxy on the
PE and the third objective is achieved by setting up a multicast PE and the third objective is achieved by setting up a multicast
tunnel (e.g., ingress replication) only among the PEs that have tunnel (e.g., ingress replication) only among the PEs that have
interest in that multicast group(s) based on the trigger from interest in that multicast group(s) based on the trigger from IGMP/
IGMP/MLD proxy processes. The proposed solutions for each of these MLD proxy processes. The proposed solutions for each of these
objectives are discussed in the following sections. objectives are discussed in the 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
POD: Point of Delivery
ToR: Top of Rack o POD: Point of Delivery
NV: Network Virtualization o ToR: Top of Rack
NVO: Network Virtualization Overlay o NV: Network Virtualization
EVPN: Ethernet Virtual Private Network o NVO: Network Virtualization Overlay
IGMP: Internet Group Management Protocol o EVPN: Ethernet Virtual Private Network
MLD: Multicast Listener Discovery o IGMP: Internet Group Management Protocol
EVI: An EVPN instance spanning the Provider Edge (PE) devices o MLD: Multicast Listener Discovery
participating in that EVPN
MAC-VRF: A Virtual Routing and Forwarding table for Media Access o EVI: An EVPN instance spanning the Provider Edge (PE) devices
Control (MAC) addresses on a PE participating in that EVPN
IR: Ingress Replication o MAC-VRF: A Virtual Routing and Forwarding table for Media Access
Control (MAC) addresses on a PE
Ethernet Segment (ES): When a customer site (device or network) is o IR: Ingress Replication
connected to one or more PEs via a set of Ethernet links, then that o Ethernet Segment (ES): When a customer site (device or network) is
set of links is referred to as an 'Ethernet Segment'. connected to one or more PEs via a set of Ethernet links, then
that set of links is referred to as an 'Ethernet Segment'.
Ethernet Segment Identifier (ESI): A unique non-zero identifier that o Ethernet Segment Identifier (ESI): A unique non-zero identifier
identifies an Ethernet Segment is called an 'Ethernet Segment that identifies an Ethernet Segment is called an 'Ethernet Segment
Identifier'. Identifier'.
PE: Provider Edge. o PE: Provider Edge.
BD: Broadcast Domain. As per [RFC7432], an EVI consists of a single o BD: Broadcast Domain. As per [RFC7432], an EVI consists of a
or multiple BDs. In case of VLAN-bundle and VLAN-aware bundle service single or multiple BDs. In case of VLAN-bundle and VLAN-aware
model, an EVI contains multiple BDs. Also, in this document, BD and bundle service model, an EVI contains multiple BDs. Also, in this
subnet are equivalent terms. document, BD and subnet are equivalent terms.
Ethernet Tag: An Ethernet tag identifies a particular broadcast o Ethernet Tag: An Ethernet tag identifies a particular broadcast
domain, e.g., a VLAN. An EVPN instance consists of one or more domain, e.g., a VLAN. An EVPN instance consists of one or more
broadcast domains. broadcast domains.
Single-Active Redundancy Mode: When only a single PE, among all the o Single-Active Redundancy Mode: When only a single PE, among all
PEs attached to an Ethernet segment, is allowed to forward traffic the PEs attached to an Ethernet segment, is allowed to forward
to/from that Ethernet segment for a given VLAN, then the Ethernet traffic to/from that Ethernet segment for a given VLAN, then the
segment is defined to be operating in Single-Active redundancy mode. Ethernet segment is defined to be operating in Single-Active
redundancy mode.
All-Active Redundancy Mode: When all PEs attached to an Ethernet o 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.
This document also assumes familiarity with the terminology of This document also assumes familiarity with the terminology of
[RFC7432]. Though most of the place this document uses term IGMP [RFC7432]. Though most of the place this document uses term IGMP
membership request (Joins), the text applies equally for MLD membership request (Joins), the text applies equally for MLD
membership request too. Similarly, text for IGMPv2 applies to MLDv1 membership request too. Similarly, text for IGMPv2 applies to MLDv1
and text for IGMPv3 applies to MLDv2. IGMP / MLD version encoding in and text for IGMPv3 applies to MLDv2. IGMP / MLD version encoding in
BGP update is stated in section 9 BGP update is stated in Section 9
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 ARP proxy used in reducing
the flooding of ARP messages over EVPN. It also provides a triggering the flooding of ARP messages over EVPN. It also provides a
mechanism for the PEs to setup their underlay multicast tunnels. The triggering mechanism for the PEs to setup their underlay multicast
IGMP Proxy mechanism consists of two components: a) Proxy for IGMP tunnels. The IGMP Proxy mechanism consists of two components:
Reports and b) Proxy for IGMP Queries.
4.1 Proxy Reporting 1. Proxy for IGMP Reports.
2. Proxy for IGMP Queries.
4.1. Proxy Reporting
When IGMP protocol is used between hosts/VMs and their first hop EVPN When IGMP protocol is used between hosts/VMs and their first hop EVPN
router (EVPN PE), Proxy-reporting is used by the EVPN PE to summarize router (EVPN PE), Proxy-reporting is used by the EVPN PE to summarize
(when possible) reports received from downstream hosts and propagate (when possible) reports received from downstream hosts and propagate
them in BGP to other PEs that are interested in the information. This them in BGP to other PEs that are interested in the information.
is done by terminating the IGMP Reports in the first hop PE, and This is done by terminating the IGMP Reports in the first hop PE, and
translating and exchanging the relevant information among EVPN BGP translating and exchanging the relevant information among EVPN BGP
speakers. The information is again translated back to IGMP message at speakers. The information is again translated back to IGMP message
the recipient EVPN speaker. Thus it helps create an IGMP overlay at the recipient EVPN speaker. Thus it helps create an IGMP overlay
subnet using BGP. In order to facilitate such an overlay, this subnet using BGP. In order to facilitate such an overlay, this
document also defines a new EVPN route type NLRI, the EVPN Selective document also defines a new EVPN route type NLRI, the EVPN Selective
Multicast Ethernet Tag route, along with its procedures to help Multicast Ethernet Tag route, along with its procedures to help
exchange and register IGMP multicast groups [section 7]. exchange and register IGMP multicast groups 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 (Join) using When a PE wants to advertise an IGMP membership report (Join) using
the BGP EVPN route, it follows the following rules (BGP encoding the BGP EVPN route, it follows the following rules (BGP encoding
stated in section 9.1): stated in Section 9):
1) When the first hop PE receives several IGMP membership reports
(Joins), belonging to the same IGMP version, from different attached
hosts/VMs for the same (*,G) or (S,G), it only SHOULD send a single
BGP message corresponding to the very first IGMP Join (BGP update as
soon as possible) for that (*,G) or (S,G). This is because BGP is a
stateful protocol and no further transmission of the same report is
needed. If the IGMP Join is for (*,G), then multicast group address
MUST be sent along with the corresponding version flag (v2 or v3)
set. In case of IGMPv3, the exclude flag MUST also needs to be set to
indicate that no source IP address to be excluded (include all
sources"*").
If the IGMP Join is for (S,G), then besides setting multicast group 1. When the first hop PE receives several IGMP membership reports
address along with the version flag v3, the source IP address and the (Joins), belonging to the same IGMP version, from different
include/exclude flag MUST be set. It should be noted that when attached hosts/VMs for the same (*,G) or (S,G), it only SHOULD
advertising the EVPN route for (S,G), the only valid version flag is send a single BGP message corresponding to the very first IGMP
v3 (v1 and v2 flags MUST be set to zero). Join (BGP update as soon as possible) for that (*,G) or (S,G).
This is because BGP is a stateful protocol and no further
transmission of the same report is needed. If the IGMP Join is
for (*,G), then multicast group address MUST be sent along with
the corresponding version flag (v2 or v3) set. In case of
IGMPv3, the exclude flag MUST also needs to be set to indicate
that no source IP address to be excluded (include all
sources"*"). If the IGMP Join is for (S,G), then besides setting
multicast group address along with the version flag v3, the
source IP address and the include/exclude flag MUST be set. It
should be noted that when advertising the EVPN route for (S,G),
the only valid version flag is v3 (v2 flags MUST be set to zero).
2) When the first hop PE receives an IGMPv3 Join for (S,G) on a given 2. When the first hop PE receives an IGMPv3 Join for (S,G) on a
BD, it SHOULD advertise the corresponding EVPN Selective Multicast given BD, it SHOULD advertise the corresponding EVPN Selective
Ethernet Tag (SMET) route regardless of whether the source (S) is Multicast Ethernet Tag (SMET) route regardless of whether the
attached to itself or not in order to facilitate the source move in source (S) is attached to itself or not in order to facilitate
the future. the source move in the future.
3) When the first hop PE receives an IGMP version-X Join first for 3. When the first hop PE receives an IGMP version-X Join first for
(*,G) and then later it receives an IGMP version-Y Join for the same (*,G) and then later it receives an IGMP version-Y Join for the
(*,G), then it MUST re-advertise the same EVPN SMET route with flag same (*,G), then it MUST re-advertise the same EVPN SMET route
for version-Y set in addition to any previously-set version flag(s). with flag for version-Y set in addition to any previously-set
In other words, the first hop PE MUST not withdraw the EVPN route version flag(s). In other words, the first hop PE MUST not
before sending the new route because the flag field is not part of withdraw the EVPN route before sending the new route because the
BGP route key processing. flag field is not part of BGP route key processing.
4) When the first hop PE receives an IGMP version-X Join first for 4. When the first hop PE receives an IGMP version-X Join first for
(*,G) and then later it receives an IGMPv3 Join for the same (*,G) and then later it receives an IGMPv3 Join for the same
multicast group address but for a specific source address S, then the multicast group address but for a specific source address S, then
PE MUST advertise a new EVPN SMET route with v3 flag set (and v1 and the PE MUST advertise a new EVPN SMET route with v3 flag set (and
v2 reset). The include/exclude flag also need to be set accordingly. v2 reset). The include/exclude flag also need to be set
Since source IP address is used as part of BGP route key processing, accordingly. Since source IP address is used as part of BGP
it is considered as a new BGP route advertisement. route key processing it is considered as a new BGP route
advertisement.
5) When a PE receives an EVPN SMET route with more than one version 5. When a PE receives an EVPN SMET route with more than one version
flag set, it will generate the corresponding IGMP report for (*,G) flag set, it will generate the corresponding IGMP report for
for each version specified in the flags field. With multiple version (*,G) for each version specified in the flags field. With
flags set, there MUST not be source IP address in the receive EVPN multiple version flags set, there MUST not be source IP address
route. If there is, then an error SHOULD be logged . If the v3 flag in the receive EVPN route. If there is, then an error SHOULD be
is set (in addition to v2), then the include/exclude flag MUST logged . If the v3 flag is set (in addition to v2), then the
indicate "exclude". If not, then an error SHOULD be logged. The PE include/exclude flag MUST indicate "exclude". If not, then an
MUST generate an IGMP membership report (Join) for that (*,G) and error SHOULD be logged. The PE MUST generate an IGMP membership
each IGMP version in the version flag. report (Join) for that (*,G) and each IGMP version in the version
flag.
6) When a PE receives a list of EVPN SMET NLRIs in its BGP update 6. 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 the multicast group address, and the version flag is set to v3, then
PE generates an IGMPv3 membership report with a record corresponding the PE generates an IGMPv3 membership report with a record
to the list of source IP addresses and the group address along with corresponding to the list of source IP addresses and the group
the proper indication of inclusion/exclusion. address along with the proper indication of inclusion/exclusion.
7) Upon receiving EVPN SMET route(s) and before generating the 7. Upon receiving EVPN SMET route(s) and before generating the
corresponding IGMP Join(s), the PE checks to see whether it has any corresponding IGMP Join(s), the PE checks to see whether it has
CE multicast router for that BD on any of its ES's . The PE provides any CE multicast router for that BD on any of its ES's . The PE
such a check by listening for PIM Hello messages on that AC (i.e, provides such a check by listening for PIM Hello messages on that
<ES,BD>). If the PE does have the router's ACs, then the generated AC (i.e, ES,BD). If the PE does have the router's ACs, then the
IGMP Join(s) are sent to those ACs. If it doesn't have any of the generated IGMP Join(s) are sent to those ACs. If it doesn't have
router's AC, then no IGMP Join(s) needs to be generated. This is any of the router's AC, then no IGMP Join(s) needs to be
because sending IGMP Joins to other hosts can result in generated. This is because sending IGMP Joins to other hosts can
unintentionally preventing a host from joining a specific multicast result in unintentionally preventing a host from joining a
group using IGMPv2 - i.e., if the PE does not receive a join from the specific multicast group using IGMPv2 - i.e., if the PE does not
host it will not forward multicast data to it. Per [RFC4541], when an receive a join from the host it will not forward multicast data
IGMPv2 host receives a membership report for a group address that it to it. Per [RFC4541] , when an IGMPv2 host receives a membership
intends to join, the host will suppress its own membership report for report for a group address that it intends to join, the host will
the same group, and if the PE does not receive an IGMP Join from host suppress its own membership report for the same group, and if the
it will not forward multicast data to it. In other words, an IGMPv2 PE does not receive an IGMP Join from host it will not forward
Join MUST NOT be sent on an AC that does not lead to a CE multicast multicast data to it. In other words, an IGMPv2 Join MUST NOT be
router. This message suppression is a requirement for IGMPv2 hosts. sent on an AC that does not lead to a CE multicast router. This
This is not a problem for hosts running IGMPv3 because there is no message suppression is a requirement for IGMPv2 hosts. This is
suppression of IGMP Membership reports. not a problem for hosts running IGMPv3 because there is no
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 (Leave) or IGMPv3 "Leave" equivalent message, it IGMPv2 Leave Group (Leave) or IGMPv3 "Leave" equivalent message, it
follows the following rules: follows the following rules:
1) When a PE receives an IGMPv2 Leave Group or its "Leave" equivalent 1. When a PE receives an IGMPv2 Leave Group or its "Leave"
message for IGMPv3 from its attached host, it checks to see if this equivalent message for IGMPv3 from its attached host, it checks
host is the last host that is interested in this multicast group by to see if this host is the last host that is interested in this
sending a query for the multicast group. If the host was indeed the multicast group by sending a query for the multicast group. If
last one (i.e. no responses are received for the query), then the PE the host was indeed the last one (i.e. no responses are received
MUST re-advertises EVPN SMET Multicast route with the corresponding for the query), then the PE MUST re-advertises EVPN SMET
version flag reset. If this is the last version flag to be reset, Multicast route with the corresponding version flag reset. If
then instead of re-advertising the EVPN route with all version flags this is the last version flag to be reset, then instead of re-
reset, the PE MUST withdraws the EVPN route for that (*,G). advertising the EVPN route with all version flags reset, the PE
MUST withdraws the EVPN route for that (*,G).
2) When a PE receives an EVPN SMET route for a given (*,G), it 2. When a PE receives an EVPN SMET route for a given (*,G), it
compares the received version flags from the route with its per-PE compares the received version flags from the route with its per-
stored version flags. If the PE finds that a version flag associated PE stored version flags. If the PE finds that a version flag
with the (*,G) for the remote PE is reset, then the PE MUST generate associated with the (*,G) for the remote PE is reset, then the PE
IGMP Leave for that (*,G) toward its local interface (if any) MUST generate IGMP Leave for that (*,G) toward its local
attached to the multicast router for that multicast group. It should interface (if any) attached to the multicast router for that
be noted that the received EVPN route SHOULD at least have one multicast group. It should be noted that the received EVPN route
version flag set. If all version flags are reset, it is an error SHOULD at least have one version flag set. If all version flags
because the PE should have received an EVPN route withdraw for the are reset, it is an error because the PE should have received an
last version flag. Error MUST be considered as BGP error and SHOULD EVPN route withdraw for the last version flag. Error MUST be
be handled as per [RFC7606]. considered as BGP error and SHOULD be handled as per [RFC7606].
3) When a PE receives an EVPN SMET route withdraw, it removes the 3. When a PE receives an EVPN SMET route withdraw, it removes the
remote PE from its OIF list for that multicast group and if there are remote PE from its OIF list for that multicast group and if there
no more OIF entries for that multicast group (either locally or are no more OIF entries for that multicast group (either locally
remotely), then the PE MUST stop responding to queries from the or remotely), then the PE MUST stop responding to queries from
locally attached router (if any). If there is a source for that the locally attached router (if any). If there is a source for
multicast group, the PE stops sending multicast traffic for that that multicast group, the PE stops sending multicast traffic for
source. 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 L2VPN service to
act as distributed multicast router with Anycast IP address for all act as distributed multicast router with Anycast IP address for
attached hosts/VMs in that subnet. all attached hosts/VMs in that subnet.
2) To enable suppression of IGMP membership reports and queries over 2. To enable suppression of IGMP membership reports and queries over
MPLS/IP core. MPLS/IP core.
5 Operation 5. Operation
Consider the EVPN network of Figure-1, where there is an EVPN Consider the EVPN network of Figure-1, where there is an EVPN
instance configured across the PEs shown in this figure (namely PE1, instance configured across the PEs shown in this figure (namely PE1,
PE2, and PE3). Let's consider that this EVPN instance consists of a PE2, and PE3). Let's consider that this EVPN instance consists of a
single bridge domain (single subnet) with all the hosts, sources, and single bridge domain (single subnet) with all the hosts, sources, and
the multicast router connected to this subnet. PE1 only has hosts the multicast router connected to this subnet. PE1 only has hosts
connected to it. PE2 has a mix of hosts and a multicast source. PE3 connected to it. PE2 has a mix of hosts and a multicast source. PE3
has a mix of hosts, a multicast source, and a multicast router. has a mix of hosts, a multicast source, and a multicast router.
Furthermore, let's consider that for (S1,G1), R1 is used as the Furthermore, let's consider that for (S1,G1), R1 is used as the
multicast router. The following subsections describe the IGMP proxy multicast router. The following subsections describe the IGMP proxy
operation in different PEs with regard to whether the locally operation in different PEs with regard to whether the locally
attached devices for that subnet are: attached devices for that subnet are:
- only hosts/VMs o only hosts/VMs
- mix of hosts/VMs and multicast source
- mix of hosts/VMs, multicast source, and multicast router
+--------------+ o mix of hosts/VMs and multicast source
| |
| |
+----+ | | +----+
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 o mix of hosts/VMs, multicast source, and 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 ---| | | |
+----+ | |
| |
+--------------+
5.1 PE with only attached hosts/VMs for a given subnet Figure 1: EVPN network
5.1. PE with only attached hosts/VMs for a given subnet
When PE1 receives an IGMPv2 Join Report from H1, it does not forward When PE1 receives an IGMPv2 Join Report from H1, it does not forward
this join to any of its other ports (for this subnet) because all this join to any of its other ports (for this subnet) because all
these local ports are associated with the hosts/VMs. PE1 sends an these local ports are associated with the hosts/VMs. PE1 sends an
EVPN Multicast Group route corresponding to this join for (*,G1) and EVPN Multicast Group route corresponding to this join for (*,G1) and
setting v2 flag. This EVPN route is received by PE2 and PE3 that are setting v2 flag. This EVPN route is received by PE2 and PE3 that are
the members of the same BD (i.e., same EVI in case of VLAN-based the members of the same BD (i.e., same EVI in case of VLAN-based
service or <EVI,VLAN> in case of VLAN-aware bundle service). PE3 service or EVI,VLAN in case of VLAN-aware bundle service). PE3
reconstructs the IGMPv2 Join Report from this EVPN BGP route and only reconstructs the IGMPv2 Join Report from this EVPN BGP route and only
sends it to the port(s) with multicast routers attached to it (for sends it to the port(s) with multicast routers attached to it (for
that subnet). In this example, PE3 sends the reconstructed IGMPv2 that subnet). In this example, PE3 sends the reconstructed IGMPv2
Join Report for (*,G1) only to R1. Furthermore, even though PE2 Join Report for (*,G1) only to R1. Furthermore, even though PE2
receives the EVPN BGP route, it does not send it to any of its ports receives the EVPN BGP route, it does not send it to any of its ports
for that subnet; viz, ports associated with H6 and H7. for that subnet; viz, ports associated with H6 and H7.
When PE1 receives the second IGMPv2 Join from H2 for the same When PE1 receives the second IGMPv2 Join from H2 for the same
multicast group (*,G1), it only adds that port to its OIF list but it 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 doesn't send any EVPN BGP route because there is no change in
information. However, when it receives the IGMPv3 Join from H3 for information. However, when it receives the IGMPv3 Join from H3 for
the same (*,G1). Besides adding the corresponding port to its OIF the same (*,G1). Besides adding the corresponding port to its OIF
list, it re-advertises the previously sent EVPN SMET route with the list, it re-advertises the previously sent EVPN SMET route with the
v3 & exclude flag set. v3 and exclude flag set.
Finally when PE1 receives the IMGMPv3 Join from H4 for (S2,G2), it Finally when PE1 receives the IMGMPv3 Join from H4 for (S2,G2), it
advertises a new EVPN SMET route corresponding to it. advertises a new EVPN SMET route corresponding to it.
5.2 PE with a mix of attached hosts/VMs and multicast source 5.2. PE with a mix of attached hosts/VMs and 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
Join from H7 for (S2,G2), it does advertise it in BGP to support Join from H7 for (S2,G2), it does advertise it in BGP to support
source move even though PE2 knows that S2 is attached to its local source move even though PE2 knows that S2 is attached to its local
AC. PE2 adds the port associated with H7 to its OIF list for (S2,G2). AC. PE2 adds the port associated with H7 to its OIF list for
The processing for IGMPv2 received from H6 is the same as the IGMPv2 (S2,G2). The processing for IGMPv2 received from H6 is the same as
Join described in previous section. the IGMPv2 Join described in previous section.
5.3 PE with a mix of attached hosts/VMs, a multicast source and a router 5.3. PE with a mix of attached hosts/VMs, 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 Join messages received locally needs to sections is that IGMP v2/v3 Join messages received locally needs to
be sent to the port associated with router R1. Furthermore, the Joins be sent to the port associated with router R1. Furthermore, the
received via BGP (SMET) need to be passed to the R1 port but filtered Joins received via BGP (SMET) need to be passed to the R1 port but
for all other ports. filtered for all other ports.
6 All-Active Multi-Homing 6. All-Active Multi-Homing
Because the LAG flow hashing algorithm used by the CE is unknown at Because the LAG flow hashing algorithm used by the CE is unknown at
the PE, in an All-Active redundancy mode it must be assumed that the the PE, in an All-Active redundancy mode it must be assumed that the
CE can send a given IGMP message to any one of the multi-homed PEs, CE can send a given IGMP message to any one of the multi-homed PEs,
either DF or non-DF; i.e., different IGMP Join messages can arrive at either DF or non-DF; i.e., different IGMP Join messages can arrive at
different PEs in the redundancy group and furthermore their different PEs in the redundancy group and furthermore their
corresponding Leave messages can arrive at PEs that are different corresponding Leave messages can arrive at PEs that are different
from the ones that received the Join messages. Therefore, all PEs from the ones that received the Join messages. Therefore, all PEs
attached to a given ES must coordinate IGMP Join and Leave Group attached to a given ES must coordinate IGMP Join and Leave Group
(x,G) state, where x may be either '*' or a particular source S, for (x,G) state, where x may be either '*' or a particular source S, for
each BD on that ES. This allows the DF for that [ES,BD] to correctly each BD on that ES. This allows the DF for that [ES,BD] to correctly
advertise or withdraw a Selective Multicast Ethernet Tag (SMET) route advertise or withdraw a Selective Multicast Ethernet Tag (SMET) route
for that (x,G) group in that BD when needed. for that (x,G) group in that BD when needed. All-Active multihoming
PEs for a given ES MUST support IGMP synchronization procedures
All-Active multihoming PEs for a given ES MUST support IGMP described in this section if they need to perform IGMP proxy for
synchronization procedures described in this section if they need to hosts connected to that ES.
perform IGMP proxy for hosts connected to that ES.
6.1 Local IGMP/MLD Join Synchronization 6.1. Local IGMP/MLD Join Synchronization
When a PE, either DF or non-DF, receives on a given multihomed ES When a PE, either DF or non-DF, receives on a given multihomed ES
operating in All-Active redundancy mode, an IGMP Membership Report operating in All-Active redundancy mode, an IGMP Membership Report
for (x,G), it determines the BD to which the IGMP Membership Report for (x,G), it determines the BD to which the IGMP Membership Report
belongs. If the PE doesn't already have local IGMP Join (x,G) state belongs. If the PE doesn't already have local IGMP Join (x,G) state
for that BD on that ES, it MUST instantiate local IGMP Join (x,G) for that BD on that ES, it MUST instantiate local IGMP Join (x,G)
state and MUST advertise a BGP IGMP Join Synch route for that [ES, state and MUST advertise a BGP IGMP Join Synch route for that
BD]. Local IGMP Join (x, G) state refers to IGMP Join (x,G) state [ES,BD]. Local IGMP Join (x, G) state refers to IGMP Join (x,G)
that is created as a result of processing an IGMP Membership Report state that is created as a result of processing an IGMP Membership
for (x,G). Report for (x,G).
The IGMP Join Synch route MUST carry the ES-Import RT for the ES on The IGMP Join Synch route MUST carry the ES-Import RT for the ES on
which the IGMP Membership Report was received. Thus it MUST only be which the IGMP Membership Report was received. Thus it MUST only be
sent to the PEs attached to that ES and not any other PEs. sent to the PEs attached to that ES and not any other PEs.
When a PE, either DF or non-DF, receives an IGMP Join Synch route it When a PE, either DF or non-DF, receives an IGMP Join Synch route it
installs that route and if it doesn't already have IGMP Join (x,G) installs that route and if it doesn't already have IGMP Join (x,G)
state for that [ES,BD], it MUST instantiate that IGMP Join (x,G) state for that [ES,BD], it MUST instantiate that IGMP Join (x,G)
state - i.e., IGMP Join (x,G) state is the union of the local IGMP state - i.e., IGMP Join (x,G) state is the union of the local IGMP
Join (x,G) state and the installed IGMP Join Synch route. If the DF Join (x,G) state and the installed IGMP Join Synch route. If the DF
did not already advertise (originate) a SMET route for that (x,G) did not already advertise (originate) a SMET route for that (x,G)
group in that BD, it MUST do so now. group in that BD, it MUST do so now.
When a PE, either DF or non-DF, deletes its local IGMP Join (x, G) When a PE, either DF or non-DF, deletes its local IGMP Join (x, G)
state for that [ES,BD], it MUST withdraw its BGP IGMP Join Synch state for that [ES,BD], it MUST withdraw its BGP IGMP Join Synch
route for that [ES,BD]. 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
Join Synch route from another PE it MUST remove that route. When a Join Synch route from another PE it MUST remove that route. When a
PE has no local IGMP Join (x,G) state and it has no installed IGMP PE has no local IGMP Join (x,G) state and it has no installed IGMP
Join Synch routes, it MUST remove IGMP Join (x,G) state for that [ES, Join Synch routes, it MUST remove IGMP Join (x,G) state for that
BD]. If the DF no longer has IGMP Join (x,G) state for that BD on [ES,BD]. If the DF no longer has IGMP Join (x,G) state for that BD
any ES for which it is DF, it MUST withdraw its SMET route for that on any ES for which it is DF, it MUST withdraw its SMET route for
(x,G) group in that BD. 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 an SMET route for that (x,G) group in
that BD when it has IGMP Join (x,G) state in that BD on at least one that BD when it has IGMP Join (x,G) state in that BD on at least one
ES for which it is DF and it withdraws that SMET route when it does ES for which it is DF and it withdraws that SMET route when it does
not have IGMP Join (x,G) state in that BD on any ES for which it is not have IGMP Join (x,G) state in that BD on any ES for which it is
DF. 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, on a given multihomed ES
operating in All-Active redundancy mode, an IGMP Leave Group message operating in All-Active redundancy mode, an IGMP Leave Group message
for (x,G) from the attached CE, it determines the BD to which the for (x,G) from the attached CE, it determines the BD to which the
IGMPv2 Leave Group belongs. Regardless of whether it has IGMP Join IGMPv2 Leave Group belongs. Regardless of whether it has IGMP Join
(x,G) state for that [ES,BD], it initiates the (x,G) leave group (x,G) state for that [ES,BD], it initiates the (x,G) leave group
synchronization procedure, which consists of the following steps: synchronization procedure, which consists of the 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 of (x,G) leave group synchronization procedure. This is the product
two locally configured values, Last Member Query Count and Last of two locally configured values, Last Member Query Count and
Member Query Interval (described in Section 3 of [RFC2236]), plus a Last Member Query Interval (described in Section 3 of [RFC2236]),
delta corresponding to the time it takes for a BGP advertisement to plus a delta corresponding to the time it takes for a BGP
propagate between the PEs attached to the multihomed ES (delta is a advertisement to propagate between the PEs attached to the
consistently configured value on all PEs attached to the multihomed multihomed ES (delta is a consistently configured value on all
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 for of subsequent IGMP Leave Group messages or BGP Leave Synch routes
(x,G) do not change the value of a currently running Maximum Response for (x,G) do not change the value of a currently running Maximum
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 Section 3. It initiates the Last Member Query procedure described in
3 of [RFC2236]; viz, it sends a number of Group-Specific Query (x,G) Section 3 of [RFC2236]; viz, it sends a number of Group-Specific
messages (Last Member Query Count) at a fixed interval (Last Member Query (x,G) messages (Last Member Query Count) at a fixed
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 that [ES,BD].
This route notifies the other multihomed PEs attached to the given This route notifies the other multihomed PEs attached to the
multihomed ES that it has initiated an (x,G) leave group given multihomed ES that it has initiated an (x,G) leave group
synchronization procedure; i.e., it carries the ES-Import RT for the synchronization procedure; i.e., it carries the ES-Import RT for
ES on which the IGMP Leave Group was received. It also contains the the ES on which the IGMP Leave Group was received. It also
Maximum Response Time and the Leave Group Synchronization Procedure contains the Maximum Response Time and the Leave Group
Sequence number. The latter identifies the specific (x,G) leave group Synchronization Procedure Sequence number. The latter identifies
synchronization procedure initiated by the advertising PE, which the specific (x,G) leave group synchronization procedure
increments the value whenever it initiates a procedure. initiated by the advertising PE, which increments the value
whenever it initiates a procedure.
5) When the Maximum Response Timer expires, the PE that has 5. When the Maximum Response 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 it
installs that route and it starts a timer for (x,G) on the specified installs that route and it starts a timer for (x,G) on the specified
[ES,BD] whose value is set to the Maximum Response Time in the [ES,BD] whose value is set to the Maximum Response Time in the
received IGMP Leave Synch route. Note that the receipt of subsequent received IGMP Leave Synch route. Note that the receipt of subsequent
IGMPv2 Leave Group messages or BGP Leave Synch routes for (x,G) do IGMPv2 Leave Group messages or BGP Leave Synch routes for (x,G) do
not change the value of a currently running Maximum Response Time not change the value of a currently running Maximum Response Time
timer and are ignored by the PE. 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 Join Synch route for that [ES,BD]. If it advertises a BGP IGMP Join Synch route for that [ES,BD]. If it
doesn't already have local IGMP Join (x, G) state for that [ES, BD], doesn't already have local IGMP Join (x, G) state for that [ES, BD],
it instantiates local IGMP Join (x,G) state. If the DF is not it instantiates local IGMP Join (x,G) state. If the DF is not
currently advertising (originating) a SMET route for that (x,G) group currently advertising (originating) a SMET route for that (x,G) group
in that BD, it does so now. in that BD, it does so now.
If a PE attached to the multihomed ES receives an IGMP Join Synch If a PE attached to the multihomed ES receives an IGMP Join Synch
route for (x,G) before the Maximum Response Time timer expires, it route for (x,G) before the Maximum Response Time timer expires, it
installs that route and if it doesn't already have IGMP Join (x,G) installs that route and if it doesn't already have IGMP Join (x,G)
state for that BD on that ES, it instantiates that IGMP Join (x,G) state for that BD on that ES, it instantiates that IGMP Join (x,G)
state. If the DF has not already advertised (originated) a SMET route state. If the DF has not already advertised (originated) a SMET
for that (x,G) group in that BD, it does so now. route for that (x,G) group in that BD, it does so now.
When the Maximum Response Timer expires a PE that has advertised an When the Maximum Response Timer expires a PE that has advertised an
IGMP Leave Synch route, withdraws it. Any PE attached to the IGMP Leave Synch route, withdraws it. Any PE attached to the
multihomed ES, that started the Maximum Response Time and has no multihomed ES, that started the Maximum Response Time and has no
local IGMP Join (x,G) state and no installed IGMP Join Synch routes, local IGMP Join (x,G) state and no installed IGMP Join Synch routes,
it removes IGMP Join (x,G) state for that [ES,BD]. If the DF no it removes IGMP Join (x,G) state for that [ES,BD]. If the DF no
longer has IGMP Join (x,G) state for that BD on any ES for which it longer has IGMP Join (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. is DF, it withdraws its SMET route for that (x,G) group in that BD.
6.3 Mass Withdraw of Multicast join Sync route in case of failure 6.3. Mass Withdraw of Multicast join Sync route in case of failure
A PE which has received an IGMP Join, would have synced the IGMP Join A PE which has received an IGMP Join, would have synced the IGMP Join
by the procedure defined in section 6.1. If a PE with local join by the procedure defined in section 6.1. If a PE with local join
state goes down or the PE to CE link goes down, it would lead to a state goes down or the PE to CE link goes down, it would lead to a
mass withdraw of multicast routes. Remote PEs (PEs where these routes mass withdraw of multicast routes. Remote PEs (PEs where these
were remote IGMP Joins) SHOULD not remove the state immediately; routes were remote IGMP Joins) SHOULD not remove the state
instead General Query SHOULD be generated to refresh the states. immediately; instead General Query SHOULD be generated to refresh the
There are several ways to Some of the way to detect failure at a states. There are several ways to Some of the way to detect failure
peer, e.g. using IGP next hop tracking or ES route withdraw. at a peer, e.g. using IGP next hop tracking or ES route withdraw.
7 Single-Active Multi-Homing 7. Single-Active Multi-Homing
Note that to facilitate state synchronization after failover, the PEs Note that to facilitate state synchronization after failover, the PEs
attached to a mutihomed ES operating in Single-Active redundancy mode attached to a mutihomed ES operating in Single-Active redundancy mode
SHOULD also coordinate IGMP Join (x,G) state. In this case all IGMP SHOULD also coordinate IGMP Join (x,G) state. In this case all IGMP
Join messages are received by the DF and distributed to the non-DF Join messages are received by the DF and distributed to the non-DF
PEs using the procedures described above. PEs using the procedures described 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 1. It sends (x,G) traffic to the set of PEs not supporting IGMP
Proxy. This set consists of any PE that has advertised an Inclusive Proxy. This set consists of any PE that has advertised an
Multicast Tag route for the BD without the "IGMP Proxy Support" flag. Inclusive Multicast Tag route for the BD without the "IGMP Proxy
Support" flag.
2) It sends (x,G) traffic to the set of PEs supporting IGMP Proxy 2. It sends (x,G) traffic to the set of PEs supporting IGMP Proxy
and having listeners for that (x,G) group in that BD. This set and having listeners for that (x,G) group in that BD. This set
consists of any PE that has advertised an Inclusive Multicast Tag consists of any PE that has advertised an Inclusive Multicast Tag
route for the BD with the "IGMP Proxy Support" flag and that has route for the BD with the "IGMP Proxy Support" flag and that has
advertised a SMET route for that (x,G) group in that BD. advertised a SMET route for that (x,G) group in that BD.
If an ingress PE's Selective P-Tunnel for a given BD uses P2MP and If an ingress PE's Selective P-Tunnel for a given BD uses P2MP and
all of the PEs in the BD support that tunnel type and IGMP proxy, all of the PEs in the BD support that tunnel type and IGMP proxy,
then for a given (x,G) group in a given BD it sends (x,G) traffic then for a given (x,G) group in a given BD it sends (x,G) traffic
using the Selective P-Tunnel for that (x,G) group in that BD. This using the Selective P-Tunnel for that (x,G) group in that BD. This
tunnel includes those PEs that have advertised a SMET route for that tunnel includes those PEs that have advertised a SMET route for that
(x,G) group on that BD (for Selective P-tunnel) but it may include (x,G) group on that BD (for Selective P-tunnel) but it may include
other PEs as well (for Aggregate Selective P-tunnel). other PEs as well (for Aggregate Selective P-tunnel).
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 type is known as: membership reports. The route type is known as:
+ 6 - Selective Multicast Ethernet Tag Route + 6 - Selective Multicast Ethernet Tag Route
+ 7 - Multicast Join Synch Route
+ 8 - Multicast Leave Synch Route + 7 - Multicast Join Synch Route
+ 8 - Multicast Leave Synch Route
The detailed encoding and procedures for this route type are The detailed encoding and procedures for this route type 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 Selective Multicast Ethernet Tag 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 one-
octet flag field. The Flags fields are defined as follows: octet flag 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|
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
The least significant bit, bit 7 indicates support for IGMP version o The least significant bit, bit 7 indicates support for IGMP
1. version 1. Since IGMP V1 is being deprecated , sender MUST set it
as 0 for IGMP and receiver MUST ignore it.
The second least significant bit, bit 6 indicates support for IGMP o The second least significant bit, bit 6 indicates support for IGMP
version 2. version 2.
The third least significant bit, bit 5 indicates support for IGMP o The third least significant bit, bit 5 indicates support for IGMP
version 3. version 3.
The forth least significant bit, bit 4 indicates whether the (S,G) o The fourth least significant bit, bit 4 indicates whether the
information carried within the route-type is of an Include Group type (S,G) information carried within the route-type is of an Include
(bit value 0) or an Exclude Group type (bit value 1). The Exclude Group type (bit value 0) or an Exclude Group type (bit value 1).
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.
This EVPN route type is used to carry tenant IGMP multicast group o This EVPN route type is used to carry tenant IGMP multicast group
information. The flag field assists in distributing IGMP membership information. The flag field assists in distributing IGMP
interest of a given host/VM for a given multicast route. The version membership interest of a given host/VM for a given multicast
bits help associate IGMP version of receivers participating within route. The version bits help associate IGMP version of receivers
the EVPN domain. participating within the EVPN domain.
The include/exclude bit helps in creating filters for a given o The include/exclude bit helps in creating filters for a given
multicast route. multicast route.
If route is used for IPv6 (MLD) then bit 7 indicates support for MLD o If route is used for IPv6 (MLD) then bit 7 indicates support for
version 1. The second least significant bit, bit 6 indicates support MLD version 1. The second least significant bit, bit 6 indicates
for MLD version 2. Since there is no MLD version 3, in case of IPv6 support for MLD version 2. Since there is no MLD version 3, in
route third least significant bit MUST be 0. In case of IPv6 routes, case of IPv6 route third least significant bit MUST be 0. In case
the fourth least significant bit MUST be ignored if bit 6 is not of IPv6 routes, the fourth least significant bit MUST be ignored
set. if bit 6 is not set.
9.1.1 Constructing the Selective Multicast Ethernet Tag route o Reserve bit SHOULD be set to 0 by sender. And receiver SHOULD
ignore the reserve bit.
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 Selective
Multicast Ethernet Tag (SMET) route. Multicast Ethernet Tag (SMET) 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 follows: The Ethernet Tag ID MUST be set as follows:
EVI is VLAN-Based or VLAN Bundle service - set to 0 o EVI is VLAN-Based or VLAN Bundle service - set to 0
EVI is VLAN-Aware Bundle service without translation - set to
the customer VID for that BD o EVI is VLAN-Aware Bundle service without translation - set to the
EVI is VLAN-Aware Bundle service with translation - set to the customer VID for that BD
normalized Ethernet Tag ID - e.g., normalized VID
o EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID - e.g., normalized VID
The Multicast Source Length MUST be set to length of the multicast The Multicast Source Length MUST be set to length of the multicast
Source address in bits. If the Multicast Source Address field Source address in bits. If the Multicast Source Address field
contains an IPv4 address, then the value of the Multicast Source contains an IPv4 address, then the value of the Multicast Source
Length field is 32. If the Multicast Source Address field contains an Length field is 32. If the Multicast Source Address field contains
IPv6 address, then the value of the Multicast Source Length field is an IPv6 address, then the value of the Multicast Source Length field
128. In case of a (*, G) Join, the Multicast Source Length is set to is 128. In case of a (*, G) Join, the Multicast Source Length is set
0. 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), 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 length of multicast group
address in bits. If the Multicast Group Address field contains an address in bits. If the Multicast Group Address field contains an
IPv4 address, then the value of the Multicast Group Length field is IPv4 address, then the value of the Multicast Group Length field is
32. If the Multicast Group Address field contains an IPv6 address, 32. If the Multicast Group Address field contains an IPv6 address,
then the value of the Multicast Group Length field is 128. then the value of the Multicast Group Length field is 128.
The Multicast Group Address is the Group address from the IGMP 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 router originating
the prefix. It should be noted that using the "Originating Router's this route. The SMET Originator Router IP address MUST match that of
IP address" field is needed for local-bias procedures and may be the IMET (or SPMSI AD) route originated for the same EVI by the same
needed for building inter-AS multicast underlay tunnels where the BGP downstream PE.
next-hop can get overwritten.
The Flags field indicates the version of IGMP protocol from which the The Flags field indicates the version of IGMP protocol 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 or EXCLUDE bit set.
Reserve bit MUST be set to 0. They can be defined in future by other
document.
IGMP is used to receive group membership information from hosts/VMs IGMP is used to receive group membership information from hosts/VMs
by TORs. Upon receiving the hosts/VMs expression of interest of a by TORs. Upon receiving the hosts/VMs expression of interest of a
particular group membership, this information is then forwarded using particular group membership, this information is then forwarded using
Ethernet Multicast Source Group Route NLRI. The NLRI also keeps track SMET route. The NLRI also keeps track of receiver's IGMP protocol
of receiver's IGMP protocol version and any source filtering for a version and any source filtering for a given group membership. All
given group membership. All EVPN SMET routes are announced with per- EVPN SMET routes are announced with per- EVI Route Target extended
EVI Route Target extended communities. communities.
9.1.2 Default Selective Multicast Route When a router that receives a BGP Update that contains the Selective
Multicast Route flag with its Partial bit set (Not following this
specification) determines that the route is malformed, the router
SHOULD treat this Update as malformed . Error MUST be considered as
BGP error and SHOULD be discarded as per [RFC7606]. An
implementation SHOULD provide debugging facilities to permit issues
caused by a malformed join sync route to be diagnosed. At a minimum,
such facilities MUST include logging an error when such an route is
detected.
9.1.2. Default Selective Multicast Route
If there is multicast router connected behind the EVPN domain, the PE If there is multicast router connected behind the EVPN domain, the PE
MAY originate a default SMET (*,*) to get all multicast traffic in MAY originate a default SMET (*,*) to get all multicast traffic in
domain. 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 EVPN domain
Consider the EVPN network of Figure-2, where there is an EVPN Consider the EVPN network of Figure-2, where there is an EVPN
instance configured across the PEs. Lets consider PE2 is connected to instance configured across the PEs. Lets consider PE2 is connected
multicast router R1 and there is a network running PIM ASM behind R1. to multicast router R1 and there is a network running PIM ASM behind
If there are receivers behind the PIM ASM network, the PIM Join would R1. If there are receivers behind the PIM ASM network, the PIM Join
be forwarded to the PIM RP (Rendezvous Point). If receivers behind would be forwarded to the PIM RP (Rendezvous Point). If receivers
PIM ASM network are interested in a multicast flow originated by behind PIM ASM network are interested in a multicast flow originated
multicast source S2 (behind PE1), it is necessary for PE2 to receive by multicast source S2 (behind PE1), it is necessary for PE2 to
multicast traffic. In this case PE2 MUST originate a (*,*) SMET route receive multicast traffic. In this case PE2 MUST originate a (*,*)
to receive all of the multicast traffic in the EVPN domain. SMET route to receive all of the multicast traffic in the EVPN
domain.
9.2 Multicast Join Synch Route 9.2. Multicast Join Synch Route
This EVPN route type is used to coordinate IGMP Join (x,G) state for This EVPN route type is used to coordinate IGMP Join (x,G) state for
a given BD between the PEs attached to a given ES operating in All- a given BD between the PEs attached to a given ES operating in All-
Active (or Single-Active) redundancy mode and it consists of Active (or Single-Active) redundancy mode and it consists of
following: 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 one-
octet Flags field, whose fields are defined as follows: 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|
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
The least significant bit, bit 7 indicates support for IGMP version o The least significant bit, bit 7 indicates support for IGMP
1. The second least significant bit, bit 6 indicates support for version 1.
IGMP version 2. The third least significant bit, bit 5 indicates
support for IGMP version 3. The fourth least significant bit, bit 4 o The second least significant bit, bit 6 indicates support for IGMP
indicates whether the (S, G) information carried within the route- version 2.
type is of Include 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 o The third least significant bit, bit 5 indicates support for IGMP
not set. version 3.
o The fourth least significant bit, bit 4 indicates whether the (S,
G) information carried within the route-type is of Include 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.
o Reserve bit MUST be set to 0. They can be defined in future by
other document.
The Flags field assists in distributing IGMP membership interest of a The Flags field assists in distributing IGMP membership interest of a
given host/VM for a given multicast route. The version bits help given host/VM for a given multicast route. The version bits help
associate IGMP version of receivers participating within the EVPN associate 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 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 3, indicates support for MLD version 2. Since there is no MLD version
in case of IPv6 route third least significant bit MUST be 0. In case 3, in case of IPv6 route third least significant bit MUST be 0. In
of IPv6 route, the fourth least significant bit MUST be ignored if case of IPv6 route, the fourth least significant bit MUST be ignored
bit 6 is not set. if bit 6 is not set.
9.2.1 Constructing the Multicast Join Synch Route 9.2.1. Constructing the Multicast Join Synch Route
This section describes the procedures used to construct the IGMP Join This section describes the procedures used to construct the IGMP Join
Synch route. Support for this route type is optional. If a PE does Synch route. Support for this route type is optional. If a PE does
not support this route, then it MUST NOT indicate that it supports not support this route, then it MUST NOT indicate that it supports
'IGMP proxy' in the Multicast Flag extended community for the EVIs 'IGMP proxy' in the Multicast Flag extended community for the EVIs
corresponding to its multi-homed Ethernet Segments (ESs). corresponding to its multi-homed Ethernet Segments (ESs).
An IGMP Join Synch route MUST carry exactly one ES-Import Route An IGMP Join Synch route MUST carry exactly one ES-Import Route
Target extended community, the one that corresponds to the ES on Target extended community, the one that corresponds to the ES on
which the IGMP Join was received. It MUST also carry exactly one which the IGMP Join was received. It MUST also carry exactly one
EVI-RT EC, the one that corresponds to the EVI on which the IGMP Join EVI-RT EC, the one that corresponds to the EVI on which the IGMP Join
was received. See Section 9.5 for details on how to encode and was received. See Section 9.5 for details on how to encode and
construct the EVI-RT EC. construct the EVI-RT EC.
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 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 follows: The Ethernet Tag ID MUST be set as follows:
EVI is VLAN-Based or VLAN Bundle service - set to 0 o EVI is VLAN-Based or VLAN Bundle service - set to 0
EVI is VLAN-Aware Bundle service without translation - set to
the customer VID for the BD o EVI is VLAN-Aware Bundle service without translation - set to the
EVI is VLAN-Aware Bundle service with translation - set to the customer VID for the BD
normalized Ethernet Tag ID - e.g., normalized VID
o EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID - e.g., normalized VID
The Multicast Source length MUST be set to length of Multicast Source The Multicast Source length MUST be set to length of Multicast Source
address in bits. If the Multicast Source field contains an IPv4 address in bits. If the Multicast Source field contains an IPv4
address, then the value of the Multicast Source Length field is 32. address, then the value of the Multicast Source Length field is 32.
If the Multicast Source field contains an IPv6 address, then the If the Multicast Source field contains an IPv6 address, then the
value of the Multicast Source Length field is 128. In case of a (*, value of the Multicast Source Length field is 128. In case of a
G) Join, the Multicast Source Length is set to 0. (*,G) Join, 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) Join, this field does not exist. report. In case of a (*, G) Join, this field does not exist.
The Multicast Group length MUST be set to length of multicast group The Multicast Group length MUST be set to length of multicast group
address in bits. If the Multicast Group field contains an IPv4 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 Router Originating
the prefix. the prefix.
The Flags field indicates the version of IGMP protocol from which the The Flags field indicates the version of IGMP protocol 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 INCLUDE or EXCLUDE bit set.
9.3 Multicast Leave Synch Route Reserve bit MUST be set to 0. They can be defined in future by other
document.
When a multihomed router that receives a BGP Update that contains the
Multicast Join Sync Route flag with its Partial bit set (Not
following this specification) determines that the route is malformed,
the router SHOULD treat this Update as malformed . Error MUST be
considered as BGP error and SHOULD be discarded as per [RFC7606]. An
implementation SHOULD provide debugging facilities to permit issues
caused by a malformed join sync route to be diagnosed. At a minimum,
such facilities MUST include logging an error when such an route is
detected.
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 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 All-Active (or Single-Active) redundancy mode and it consists of
following: 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) |
+--------------------------------------------------+ +--------------------------------------------------+
| Leave Group Synchronization # (4 octets) | | Reserved (4 octet) |
+--------------------------------------------------+ +--------------------------------------------------+
| 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
Maximum Response Time and the one-octet Flags field, whose fields are Reserved, Maximum Response Time and the one-octet Flags field, whose
defined as follows: 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|
+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+
The least significant bit, bit 7 indicates support for IGMP version o The least significant bit, bit 7 indicates support for IGMP
1. The second least significant bit, bit 6 indicates support for version 1.
IGMP version 2. The third least significant bit, bit 5 indicates
support for IGMP version 3. The fourth least significant bit, bit 4 o The second least significant bit, bit 6 indicates support for IGMP
indicates whether the (S, G) information carried within the route- version 2.
type is of Include 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 o The third least significant bit, bit 5 indicates support for IGMP
not set. version 3.
o The fourth least significant bit, bit 4 indicates whether the (S,
G) information carried within the route-type is of Include 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.
o Reserve bit MUST be set to 0. They can be defined in future by
other document.
The Flags field assists in distributing IGMP membership interest of a The Flags field assists in distributing IGMP membership interest of a
given host/VM for a given multicast route. The version bits help given host/VM for a given multicast route. The version bits help
associate IGMP version of receivers participating within the EVPN associate 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 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 3, indicates support for MLD version 2. Since there is no MLD version
in case of IPv6 route third least significant bit MUST be 0. In case 3, in case of IPv6 route third least significant bit MUST be 0. In
of IPv6 route, the fourth least significant bit MUST be ignored if case of IPv6 route, the fourth least significant bit MUST be ignored
bit 6 is not set. if bit 6 is not set.
9.3.1 Constructing the Multicast Leave Synch Route Reserve bit in flag MUST be set to 0. They can be defined in future
by other document.
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 this route type is optional. If a PE Leave Synch route. Support for this route type is optional. If a PE
does not support this route, then it MUST not indicate that it 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 Multicast Flag extended community for the
EVIs corresponding to its multi-homed Ethernet Segments. EVIs corresponding to its multi-homed 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, the one that corresponds to the ES on
which the IGMP Leave was received. It MUST also carry exactly one 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, the one that corresponds to the EVI on which the IGMP
Leave was received. See Section 9.5 for details on how to form the Leave was received. See Section 9.5 for details on how to form the
EVI-RT EC. EVI-RT EC.
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 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 follows: The Ethernet Tag ID MUST be set as follows:
EVI is VLAN-Based or VLAN Bundle service - set to 0 o EVI is VLAN-Based or VLAN Bundle service - set to 0
EVI is VLAN-Aware Bundle service without translation - set to
the customer VID for the BD o EVI is VLAN-Aware Bundle service without translation - set to the
EVI is VLAN-Aware Bundle service with translation - set to the customer VID for the BD
normalized Ethernet Tag ID - e.g., normalized VID
o EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID - e.g., normalized VID
The Multicast Source length MUST be set to length of multicast source The Multicast Source length MUST be set to length of multicast source
address in bits. If the Multicast Source field contains an IPv4 address in bits. If the Multicast Source field contains an IPv4
address, then the value of the Multicast Source Length field is 32. address, then the value of the Multicast Source Length field is 32.
If the Multicast Source field contains an IPv6 address, then the If the Multicast Source field contains an IPv6 address, then the
value of the Multicast Source Length field is 128. In case of a (*, value of the Multicast Source Length field is 128. In case of a (*,
G) Join, the Multicast Source Length is set to 0. G) Join, 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) Join, this field does not exist. report. In case of a (*, G) Join, this field does not exist.
The Multicast Group length MUST be set to length of multicast group The Multicast Group length MUST be set to length of multicast group
address in bits. If the Multicast Group field contains an IPv4 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 Router Originating
the prefix. the prefix.
Reserved field is not part of the route key. The originator MUST set
the reserved field to Zero , the receiver SHOULD ignore it and if it
needs to be propagated, it MUST propagate it unchanged
Maximum Response Time is value to be used while sending 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 protocol 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 INCLUDE or EXCLUDE bit set.
9.4 Multicast Flags Extended Community When a multihomed router that receives a BGP Update that contains the
Multicast Leave Sync Route flag with its Partial bit set (Not
following this specification) determines that the route is malformed,
the router SHOULD treat this Update as malformed . Error MUST be
considered as BGP error and SHOULD be discarded as per [RFC7606]. An
implementation SHOULD provide debugging facilities to permit issues
caused by a malformed join sync route to be diagnosed. At a minimum,
such facilities MUST include logging an error when such an route is
detected.
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 field value of 6. IANA will assign a Sub-
Type from the 'EVPN Extended Community Sub-Types' registry. Type from the 'EVPN Extended Community Sub-Types' registry.
A PE that supports IGMP proxy on a given BD MUST attach this extended A PE that supports IGMP proxy on a given BD MUST attach this extended
community to the Inclusive Multicast Ethernet Tag (IMET) route it community to the Inclusive Multicast Ethernet Tag (IMET) route it
advertises for that BD and it MUST set the IGMP Proxy Support flag to advertises for that BD and it MUST set the IGMP Proxy Support flag to
1. Note that an [RFC7432] compliant PE will not advertise this 1. Note that an [RFC7432] compliant PE 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 IGMP Proxy. does not support IGMP Proxy.
The advertisement of this extended community enables more efficient The advertisement of this extended community enables 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 IGMP proxy but doesn't
have any interest in a given (x,G), it advertises its IGMP proxy have any interest in a given (x,G), it advertises its IGMP proxy
capability using this extended community but it does not advertise capability using this extended community but it does not advertise
any SMET route for that (x,G). When the source PE (ingress PE) any SMET route for that (x,G). When the source PE (ingress PE)
receives such advertisements from the egress PE, it does not 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:
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=TBD | 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 (lease significant) two bits are defined as the "IGMP
Proxy Support and MLD Proxy Support" bit. The absence of this Proxy Support and MLD Proxy Support" bit. The absence of this
extended community also means that the PE does not support IGMP extended community also means that the PE does not support IGMP
proxy. proxy. where:
where:
o Type is 0x06 as registered with IANA for EVPN Extended Communities. o Type is 0x06 as registered with IANA for EVPN Extended
Communities.
o Sub-Type : TBD o Sub-Type : 0x09
o Flags are two Octets value. o Flags are two Octets value.
- Bit 15 (shown as I) defines IGMP Proxy Support. Value of 1 for * Bit 15 (shown as I) defines IGMP Proxy Support. Value of 1 for
bit 15 means that PE supports IGMP Proxy. Value of 0 for bit 15 bit 15 means that PE supports IGMP Proxy. Value of 0 for bit
means that PE does not supports IGMP Proxy. 15 means that PE does not supports IGMP Proxy.
- Bit 14 (shown as M) defines MLD Proxy Support. Value of 1 for * Bit 14 (shown as M) defines MLD Proxy Support. Value of 1 for
bit 14 means that PE supports MLD Proxy. Value of 0 for bit 14 bit 14 means that PE supports MLD Proxy. Value of 0 for bit 14
means that PE does not support MLD proxy. means that PE does not support MLD proxy.
- Bit 0 to 13 are reserved for future. * Bit 0 to 13 are reserved for future. Sender MUST set it 0 and
receiver MUST ignore it.
o Reserved bits are set to 0. They could be defined in future. o Reserved bits are set to 0. Sender MUST set it to 0 and receiver
MUST ignore it.
9.5 EVI-RT Extended Community If a router does not support this specification, it MUST not add
In EVPN, every EVI is associated with one or more Route Targets Multicast Flags Extended Community in BGP route. A router receiving
(RTs). These Route Targets serve two functions: BGP update , if M and I both flag are zero (0), the router MUST treat
this Update as malformed . Receiver of such update MUST ignore the
extended community.
- Distribution control: RTs control the distribution of the 9.5. EVI-RT Extended Community
routes. If a route carries the RT associated with a particular
EVI, it will be distributed to all the PEs on which that EVI
exists.
- EVI identification: Once a route has been received by a In EVPN, every EVI is associated with one or more Route Targets
(RTs). These Route Targets serve two functions:
1. Distribution control: RTs control the distribution of the routes.
If a route carries the RT associated with a particular EVI, it
will be distributed to all the PEs on which that EVI exists.
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 Join Synch or IGMP Leave Synch route is associated with a An IGMP Join Synch or IGMP Leave Synch route is associated with a
particular combination of ES and EVI. These routes need to be particular combination of ES and EVI. These routes need to be
distributed only to PEs that are attached to the associated ES. distributed only to PEs that are attached to the associated ES.
Therefore these routes carry the ES-Import RT for that ES. Therefore these routes carry the ES-Import RT for that ES.
Since an IGMP Join Synch or IGMP Leave Synch route does not need Since an IGMP Join Synch or IGMP Leave Synch route does not need to
to be distributed to all the PEs on which the associated EVI be distributed to all the PEs on which the associated EVI exists,
exists, these routes cannot carry the RT associated with that these routes cannot carry the RT associated with that EVI.
EVI. Therefore, when such a route arrives at a particular PE, the Therefore, when such a route arrives at a particular PE, the route's
route's RTs cannot be used to identify the EVI to which the route RTs cannot be used to identify the EVI to which the route applies.
applies. Some other means of associating the route with an EVI Some other means of associating the route with an EVI must be used.
must be used.
This document specifies four new Extended Communities (EC) that This document specifies four new Extended Communities (EC) that can
can be used to identify the EVI with which a route is associated, be used to identify the EVI with which a route is associated, but
but which do not have any effect on the distribution of the which do not have any effect on the distribution of the route. These
route. These new ECs are known as the "Type 0 EVI-RT EC", the new ECs are known as the "Type 0 EVI-RT EC", the "Type 1 EVI-RT EC",
"Type 1 EVI-RT EC", the "Type 2 EVI-RT EC", and the "Type 3 EVI- the "Type 2 EVI-RT EC", and the "Type 3 EVI-RT EC".
RT EC".
A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 1. A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA.
0xA.
A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 2. A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB.
0xB.
A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 3. A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC.
0xC.
A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 4. A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD
TBD.
Each IGMP Join Synch or IGMP Leave Synch route MUST carry exactly Each IGMP Join Synch or IGMP Leave Synch route MUST carry exactly one
one EVI-RT EC. The EVI-RT EC carried by a particular route is EVI-RT EC. The EVI-RT EC carried by a particular route is
constructed as follows. Each such route is the result of having constructed as follows. Each such route is the result of having
received an IGMP Join or an IGMP Leave message from a particular received an IGMP Join or an IGMP Leave message from a particular BD.
BD. The route is said to be associated associated with that BD. The route is said to be associated associated with that BD. For each
For each BD, there is a corresponding RT that is used to ensure BD, there is a corresponding RT that is used to ensure that routes
that routes "about" that BD are distributed to all PEs attached "about" that BD are distributed to all PEs attached to that BD. So
to that BD. So suppose a given IGMP Join Synch or Leave Synch suppose a given IGMP Join Synch or Leave Synch route is associated
route is associated with a given BD, say BD1, and suppose that with a given BD, say BD1, and suppose that the corresponding RT for
the corresponding RT for BD1 is RT1. Then: BD1 is RT1. Then:
0. If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI- o 0. If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI-
RT EC carried by the route is a Type 0 EVI-RT EC. The value RT EC carried by the route is a Type 0 EVI-RT EC. The value field
field of the Type 0 EVI-RT EC is identical to the value field of of the Type 0 EVI-RT EC is identical to the value field of RT1.
RT1.
1. If RT1 is a Transitive IPv4-Address-specific EC, then the EVI- o 1. If RT1 is a Transitive IPv4-Address-specific EC, then the EVI-
RT EC carried by the route is a Type 1 EVI-RT EC. The value RT EC carried by the route is a Type 1 EVI-RT EC. The value field
field of the Type 1 EVI-RT EC is identical to the value field of of the Type 1 EVI-RT EC is identical to the value field of RT1.
RT1.
2. If RT1 is a Transitive Four-Octet-specific EC, then the EVI-RT o 2. If RT1 is a Transitive Four-Octet-specific EC, then the EVI-RT
EC carried by the route is a Type 2 EVI-RT EC. The value field EC carried by the route is a Type 2 EVI-RT EC. The value field of
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.
3. If RT1 is a Transitive IPv6-Address-specific EC, then the EVI- o 3. If RT1 is a Transitive IPv6-Address-specific EC, then the EVI-
RT EC carried by the route is a Type 3 EVI-RT EC. The value RT EC carried by the route is a Type 3 EVI-RT EC. The value field
field of the Type 3 EVI-RT EC is identical to the value field of of the Type 3 EVI-RT EC is identical to the value field of RT1.
RT1.
An IGMP Join Synch or Leave Synch route MUST carry exactly one An IGMP Join Synch or Leave Synch route MUST carry exactly one EVI-RT
EVI-RT EC. EC.
Suppose a PE receives a particular IGMP Join Synch or IGMP Leave Suppose a PE receives a particular IGMP Join Synch or IGMP Leave
Synch route, say R1, and suppose that R1 carries an ES-Import RT Synch route, say R1, and suppose that R1 carries an ES-Import RT that
that is one of the PE's Import RTs. If R1 has no EVI-RT EC, or is one of the PE's Import RTs. If R1 has no EVI-RT EC, or has more
has more than one EVI-RT EC, the PE MUST apply the "treat-as- than one EVI-RT EC, the PE MUST apply the "treat-as-withdraw"
withdraw" procedure of [RFC7606]. procedure of [RFC7606].
Note that an EVI-RT EC is not a Route Target Extended Community, Note that an EVI-RT EC is not a Route Target Extended Community, is
is not visible to the RT Constrain mechanism [RFC4684], and is not visible to the RT Constrain mechanism [RFC4684] , and is not
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 Where the value of 'n' is 0x0A, 0x0B, 0x0C, or 0x0D corresponding to
to EVI-RT type 0, 1, 2, or 3 respectively. EVI-RT type 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 There are certain situations in which an ES is attached to a set of
of PEs that are not all in the same AS, or not all operated by PEs that are not all in the same AS, or not all operated by the same
the same provider. In some such situations, the RT that provider. In some such situations, the RT that corresponds to a
corresponds to a particular EVI may be different in each AS. If particular EVI may be different in each AS. If a route is propagated
a route is propagated from AS1 to AS2, an ASBR at the AS1/AS2 from AS1 to AS2, an ASBR at the AS1/AS2 border may be provisioned
border may be provisioned with a policy that removes the RTs that with a policy that removes the RTs that are meaningful in AS1 and
are meaningful in AS1 and replaces them with the corresponding replaces them with the corresponding (i.e., RTs corresponding to the
(i.e., RTs corresponding to the same EVIs) RTs that are same EVIs) RTs that are meaningful in AS2. This is known as RT-
meaningful in AS2. This is known as RT-rewriting. rewriting.
Note that if a given route's RTs are rewritten, and the route Note that if a given route's RTs are rewritten, and the route carries
carries an EVI-RT EC, the EVI-RT EC needs to be rewritten as an EVI-RT EC, the EVI-RT EC needs to be rewritten as well.
well.
10 IGMP/MLD Immediate Leave 10. IGMP/MLD Immediate Leave
IGMP MAY be configured with immediate leave option. This allows IGMP MAY be configured with immediate leave option. This allows the
the device to remove the group entry from the multicast routing device to remove the group entry from the multicast routing table
table immediately upon receiving a IGMP leave message for (x,G). immediately upon receiving a IGMP leave message for (x,G). In case
In case of all active multi-homing while synchronizing the IGMP of all active multi-homing while synchronizing the IGMP Leave state
Leave state to redundancy peers, Maximum Response Time MAY be to redundancy peers, Maximum Response Time MAY be filled in as Zero.
filled in as Zero. Implementations SHOULD have identical
configuration across multi-homed peers. In case IGMP Leave Synch
route is received with Maximum Response Time Zero, irrespective
of local IGMP configuration it MAY be processed as an immediate
leave.
11 IGMP Version 1 Membership Request Implementations SHOULD have identical configuration across multi-
homed peers. In case IGMP Leave Synch route is received with Maximum
Response Time Zero, irrespective of local IGMP configuration it MAY
be processed as an immediate leave.
This document does not provide any detail about IGMPv1 11. IGMP Version 1 Membership Request
processing. Multicast working group are in process of deprecating
uses of IGMPv1 so it is RECOMMENDED that implementations only use
IGMPv2 and above for IPv4 and MLDv1 and above for IPv6.
12 Security Considerations This document does not provide any detail about IGMPv1 processing.
Multicast working group are in process of deprecating uses of IGMPv1.
Implementations MUST only use IGMPv2 and above for IPv4 and MLDv1 and
above for IPv6. IGMP V1 routes MUST be considered as invalid and
handled as per [RFC7606]
Same security considerations as [RFC7432], [RFC2236], [RFC3376], 12. Security Considerations
[RFC2710], [RFC3810].
13 IANA Considerations Same security considerations as [RFC7432] ,[RFC2236] ,[RFC3376] ,
[RFC2710], [RFC3810].
IANA has allocated the following codepoints from the EVPN 13. IANA Considerations
Extended Community sub-types registry.
0x09 Multicast Flags Extended Community [this document] IANA has allocated the following codepoints from the EVPN Extended
0x0A EVI-RT Type 0 [this document] Community sub-types registry.
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 0x09 Multicast Flags Extended Community [this document]
Extended Community sub-types registry for the following. 0x0A EVI-RT Type 0 [this document]
0x0B EVI-RT Type 1 [this document]
0x0C EVI-RT Type 2 [this document]
0x0D EVI-RT Type 3 [this document] IANA is requested to allocate a new codepoint from the EVPN Extended
Community sub-types registry for the following.
IANA has allocated the following EVPN route types from the EVPN 0x0D EVI-RT Type 3 [this document]
Route Type registry.
6 - Selective Multicast Ethernet Tag Route IANA has allocated the following EVPN route types from the EVPN Route
7 - Multicast Join Synch Route Type registry.
8 - Multicast Leave Synch Route
IANA is requested to create a registry, "Multicast Flags Extended 6 - Selective Multicast Ethernet Tag Route
Community Flags", in the BGP registry. 7 - Multicast Join Synch Route
8 - Multicast Leave Synch Route
The Multicast Flags Extended Community contains a 16-bit Flags The Multicast Flags Extended Community contains a 16-bit Flags field.
field. The bits are numbered 0-15, from high-order to low-order. The bits are numbered 0-15, from high-order to low-order.
The registry should be initialized as follows: The registry should be initialized as follows:
Bit Name Reference Bit Name Reference
---- -------------- ------------- ---- -------------- -------------
0 - 13 Unassigned 0 - 13 Unassigned
14 MLD Proxy Support This document 14 MLD Proxy Support This document
15 IGMP Proxy Support This document 15 IGMP Proxy Support This document
The registration policy should be "First Come First Served". The registration policy should be "First Come First Served".
14 References 14. Acknowledgement
14.1 Normative References The authors would like to thank Stephane Litkowski, Jorge Rabadan,
Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Ananthamurthy for
reviewing and providing valuable comment.
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate 15. Contributors
Requirement Levels", BCP 14, RFC 2119, DOI
10.17487/RFC2119, March 1997, <http://www.rfc-
editor.org/info/rfc2119>.
[RFC4360] S. Sangli et al, ""BGP Extended Communities Attribute", Mankamana Mishra
February, 2006.
[RFC7432] Sajassi et al., "BGP MPLS Based Ethernet VPN", February, Cisco systems
2015.
[RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A. Email: mankamis@cisco.com
Thyagarajan, "Internet Group Management Protocol, Version
3", RFC 3376, October 2002. Derek Yeung
Arrcus
Email: derek@arrcus.com
16. References
16.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2236] Fenner, W., "Internet Group Management Protocol, Version
2", RFC 2236, DOI 10.17487/RFC2236, November 1997,
<https://www.rfc-editor.org/info/rfc2236>.
[RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast [RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast
Listener Discovery (MLD) for IPv6", RFC 2710, October Listener Discovery (MLD) for IPv6", RFC 2710,
1999. DOI 10.17487/RFC2710, October 1999,
<https://www.rfc-editor.org/info/rfc2710>.
[RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. Thyagarajan, "Internet Group Management Protocol, Version
3", RFC 3376, DOI 10.17487/RFC3376, October 2002,
<https://www.rfc-editor.org/info/rfc3376>.
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener
Patel, "Revised Error Handling for BGP UPDATE Messages", Discovery Version 2 (MLDv2) for IPv6", RFC 3810,
RFC 7606, DOI 10.17487/RFC7606, August 2015. DOI 10.17487/RFC3810, June 2004,
<https://www.rfc-editor.org/info/rfc3810>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <https://www.rfc-editor.org/info/rfc4364>.
[RFC4684] Marques, P., Bonica, R., Fang, L., Martini, L., Raszuk, [RFC4684] Marques, P., Bonica, R., Fang, L., Martini, L., Raszuk,
R., Patel, K., and J. Guichard, "Constrained Route R., Patel, K., and J. Guichard, "Constrained Route
Distribution for Border Gateway Protocol/MultiProtocol Distribution for Border Gateway Protocol/MultiProtocol
Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual
Private Networks (VPNs)" Private Networks (VPNs)", RFC 4684, DOI 10.17487/RFC4684,
November 2006, <https://www.rfc-editor.org/info/rfc4684>.
14.2 Informative References
[RFC4541] Christensen, M., Kimball, K., and F. Solensky,
"Considerations for IGMP and MLD snooping PEs", 2006.
15 Acknowledgement [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <https://www.rfc-editor.org/info/rfc7432>.
The authors would like to thank Stephane Litkowski, Jorge Rabadan, [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
Anoop Ghanwani, Jeffrey Haas for reviewing and providing valuable Patel, "Revised Error Handling for BGP UPDATE Messages",
comment. RFC 7606, DOI 10.17487/RFC7606, August 2015,
<https://www.rfc-editor.org/info/rfc7606>.
16 Contributors [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
Mankamana Mishra 16.2. Informative References
Cisco systems
Email: mankamis@cisco.com
Derek Yeung [RFC4541] Christensen, M., Kimball, K., and F. Solensky,
Arrcus "Considerations for Internet Group Management Protocol
Email: derek@arrcus.com (IGMP) and Multicast Listener Discovery (MLD) Snooping
Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006,
<https://www.rfc-editor.org/info/rfc4541>.
Authors' Addresses Authors' Addresses
Ali Sajassi Ali Sajassi
Cisco Cisco Systems
821 Alder Drive,
MILPITAS, CALIFORNIA 95035
UNITED STATES
Email: sajassi@cisco.com Email: sajassi@cisco.com
Samir Thoria Samir Thoria
Cisco Cisco Systems
821 Alder Drive,
MILPITAS, CALIFORNIA 95035
UNITED STATES
Email: sthoria@cisco.com Email: sthoria@cisco.com
Keyur Patel Keyur PAtel
Arrcus Arrcus
UNITED STATES
Email: keyur@arrcus.com Email: keyur@arrcus.com
John Drake John Drake
Juniper Juniper Networks
Email: jdrake@juniper.net Email: jdrake@juniper.net
Wen Lin Wen Lin
Juniper Juniper Networks
Email: wlin@juniper.net Email: wlin@juniper.net
 End of changes. 242 change blocks. 
779 lines changed or deleted 892 lines changed or added

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