draft-ietf-bess-evpn-igmp-mld-proxy-06.txt   draft-ietf-bess-evpn-igmp-mld-proxy-07.txt 
BESS WorkGroup A. Sajassi BESS WorkGroup A. Sajassi
Internet-Draft S. Thoria Internet-Draft S. Thoria
Intended status: Standards Track Cisco Systems Intended status: Standards Track M. Mishra
Expires: July 26, 2021 K. Patel Expires: October 14, 2021 Cisco Systems
K. Patel
Arrcus Arrcus
J. Drake J. Drake
W. Lin W. Lin
Juniper Networks Juniper Networks
January 22, 2021 April 12, 2021
IGMP and MLD Proxy for EVPN IGMP and MLD Proxy for EVPN
draft-ietf-bess-evpn-igmp-mld-proxy-06 draft-ietf-bess-evpn-igmp-mld-proxy-07
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
skipping to change at page 1, line 43 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. 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."
This Internet-Draft will expire on July 26, 2021. This Internet-Draft will expire on October 14, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Specification of Requirements . . . . . . . . . . . . . . . . 4 2. Specification of Requirements . . . . . . . . . . . . . . . . 4
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. IGMP/MLD Proxy . . . . . . . . . . . . . . . . . . . . . . . 5 4. IGMP/MLD Proxy . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Proxy Reporting . . . . . . . . . . . . . . . . . . . . . 6 4.1. Proxy Reporting . . . . . . . . . . . . . . . . . . . . . 6
4.1.1. IGMP/MLD Membership Report Advertisement in BGP . . . 6 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 . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Proxy Querier . . . . . . . . . . . . . . . . . . . . . . 9
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 . . . . . . . . . . . 11 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 . . . . . . . . . 13 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 . . . . . 20 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 . . . . 23 9.3.1. Constructing the Multicast Leave Synch Route . . . . 24
9.4. Multicast Flags Extended Community . . . . . . . . . . . 25
9.5. EVI-RT Extended Community . . . . . . . . . . . . . . . . 26 9.4. Multicast Flags Extended Community . . . . . . . . . . . 26
9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs . . . . . . . 28 9.5. EVI-RT Extended Community . . . . . . . . . . . . . . . . 27
9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs . . . . . . . 29
9.7. BGP Error Handling . . . . . . . . . . . . . . . . . . . 29 9.7. BGP Error Handling . . . . . . . . . . . . . . . . . . . 29
10. IGMP/MLD Immediate Leave . . . . . . . . . . . . . . . . . . 29 10. IGMP/MLD Immediate Leave . . . . . . . . . . . . . . . . . . 30
11. IGMP Version 1 Membership Request . . . . . . . . . . . . . . 29 11. IGMP Version 1 Membership Report . . . . . . . . . . . . . . 30
12. Security Considerations . . . . . . . . . . . . . . . . . . . 29 12. Security Considerations . . . . . . . . . . . . . . . . . . . 30
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30
14. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 30 14. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 31
15. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 30 15. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 31
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
16.1. Normative References . . . . . . . . . . . . . . . . . . 31 16.1. Normative References . . . . . . . . . . . . . . . . . . 31
16.2. Informative References . . . . . . . . . . . . . . . . . 32 16.2. Informative References . . . . . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
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
skipping to change at page 3, line 35 skipping to change at page 3, line 41
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 traffic for that group. The IGMP/MLD Proxy solution described in
this draft accomplishes has three objectives: this draft accomplishes has three objectives:
1. Reduce flooding of IGMP messages: just like the ARP/ND 1. Reduce flooding of IGMP messages: just like the ARP/ND
suppression mechanism in EVPN to reduce the flooding of ARP suppression mechanism in EVPN to reduce the flooding of ARP
messages over EVPN, it is also desired to have a mechanism to messages over EVPN, it is also desired to have a mechanism to
reduce the flooding of IGMP messages (both Queries and Reports) reduce the flooding of IGMP messages (both Queries and Reports)
skipping to change at page 4, line 12 skipping to change at page 4, line 17
respect to IGMP/MLD proxy function for all the hosts attached to respect to IGMP/MLD proxy function for all the hosts attached to
that subnet. that subnet.
3. Selective Multicast: to forward multicast traffic over EVPN 3. Selective Multicast: 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 forwarded to the PEs that have no receivers attached to them for
that multicast group. This draft shows how this objective may be that multicast group. This draft shows how this objective may be
achieved when Ingress Replication is used to distribute the achieved when Ingress Replication is used to distribute the
multicast traffic among the PEs. Procedures for supporting multicast traffic among the PEs. Procedures for supporting
selective multicast using P2MP tunnels can be found in [bum- selective multicast using P2MP tunnels can be found in
procedure-updates] [I-D.ietf-bess-evpn-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 IGMP/ interest in that multicast group(s) based on the trigger from 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
skipping to change at page 5, line 34 skipping to change at page 5, line 40
the PEs attached to an Ethernet segment, is allowed to forward the PEs attached to an Ethernet segment, is allowed to forward
traffic to/from that Ethernet segment for a given VLAN, then the traffic to/from that Ethernet segment for a given VLAN, then the
Ethernet segment is defined to be operating in Single-Active Ethernet segment is defined to be operating in Single-Active
redundancy mode. redundancy mode.
o 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.
o PMSI: P-Multicast Service Interface - a conceptual interface for a
PE to send customer multicast traffic to all or some PEs in the
same VPN.
o S-PMSI: Selective PMSI - to some of the PEs in the same VPN.
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 Report (Joins), the text applies equally for MLD
membership request too. Similarly, text for IGMPv2 applies to MLDv1 Membership Report 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 the flooding of ARP messages over EVPN. It also provides a
triggering mechanism for the PEs to setup their underlay multicast triggering mechanism for the PEs to setup their underlay multicast
tunnels. The IGMP Proxy mechanism consists of two components: tunnels. The IGMP Proxy mechanism consists of two components:
skipping to change at page 6, line 22 skipping to change at page 6, line 34
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 speakers. The information is again translated back to IGMP message
at 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 9. 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): stated in Section 9):
1. When the first hop PE receives several IGMP membership reports 1. When the first hop PE receives several IGMP Membership Reports
(Joins), belonging to the same IGMP version, from different (Joins), belonging to the same IGMP version, from different
attached hosts/VMs for the same (*,G) or (S,G), it only SHOULD attached hosts/VMs for the same (*,G) or (S,G), it only SHOULD
send a single BGP message corresponding to the very first IGMP send a single BGP message corresponding to the very first IGMP
Join (BGP update as soon as possible) for that (*,G) or (S,G). Membership Request (BGP update as soon as possible) for that
This is because BGP is a stateful protocol and no further (*,G) or (S,G). This is because BGP is a stateful protocol and
transmission of the same report is needed. If the IGMP Join is no further transmission of the same report is needed. If the
for (*,G), then multicast group address MUST be sent along with IGMP Membership Request is for (*,G), then multicast group
the corresponding version flag (v2 or v3) set. In case of address MUST be sent along with the corresponding version flag
IGMPv3, the exclude flag MUST also needs to be set to indicate (v2 or v3) set. In case of IGMPv3, the exclude flag MUST also
that no source IP address to be excluded (include all needs to be set to indicate that no source IP address to be
sources"*"). If the IGMP Join is for (S,G), then besides setting excluded (include all sources"*"). If the IGMP Join is for
multicast group address along with the version flag v3, the (S,G), then besides setting multicast group address along with
source IP address and the include/exclude flag MUST be set. It the version flag v3, the source IP address and the include/
should be noted that when advertising the EVPN route for (S,G), exclude flag MUST be set. It should be noted that when
the only valid version flag is v3 (v2 flags MUST be set to zero). 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 2. When the first hop PE receives an IGMPv3 Join for (S,G) on a
given BD, it SHOULD advertise the corresponding EVPN Selective given BD, it SHOULD advertise the corresponding EVPN Selective
Multicast Ethernet Tag (SMET) route regardless of whether the Multicast Ethernet Tag (SMET) route regardless of whether the
source (S) is attached to itself or not in order to facilitate source (S) is attached to itself or not in order to facilitate
the source move in 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 (*,G) and then later it receives an IGMP version-Y Join for the
same (*,G), then it MUST re-advertise the same EVPN SMET route same (*,G), then it MUST re-advertise the same EVPN SMET route
skipping to change at page 7, line 24 skipping to change at page 7, line 37
route key processing it is considered as a new BGP route route key processing it is considered as a new BGP route
advertisement. 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 flag set, it will generate the corresponding IGMP report for
(*,G) for each version specified in the flags field. With (*,G) for each version specified in the flags field. With
multiple version flags set, there MUST not be source IP address multiple version flags set, there MUST not be source IP address
in the receive EVPN route. If there is, then an error SHOULD be in the receive EVPN route. If there is, then an error SHOULD be
logged . If the v3 flag is set (in addition to v2), then the logged . If the v3 flag is set (in addition to v2), then the
include/exclude flag MUST indicate "exclude". If not, then an include/exclude flag MUST indicate "exclude". If not, then an
error SHOULD be logged. The PE MUST generate an IGMP membership error SHOULD be logged. The PE MUST generate an IGMP Membership
report (Join) for that (*,G) and each IGMP version in the version Report (Join) for that (*,G) and each IGMP version in the version
flag. 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 multicast group address, and the version flag is set to v3, then
the PE generates an IGMPv3 membership report with a record the PE generates an IGMPv3 Membership Report with a record
corresponding to the list of source IP addresses and the group corresponding to the list of source IP addresses and the group
address along with the proper indication of inclusion/exclusion. address along with the proper indication of inclusion/exclusion.
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 corresponding IGMP Membership Request(s), the PE checks to see
any CE multicast router for that BD on any of its ES's . The PE whether it has any CE multicast router for that BD on any of its
provides such a check by listening for PIM Hello messages on that ES's . The PE provides such a check by listening for PIM Hello
AC (i.e, ES,BD). If the PE does have the router's ACs, then the messages on that AC (i.e, ES,BD). If the PE does have the
generated IGMP Join(s) are sent to those ACs. If it doesn't have router's ACs, then the generated IGMP Membership Request(s) are
any of the router's AC, then no IGMP Join(s) needs to be sent to those ACs. If it doesn't have any of the router's AC,
generated. This is because sending IGMP Joins to other hosts can then no IGMP Membership Request(s) needs to be generated. This
is because sending IGMP Membership Requests to other hosts can
result in unintentionally preventing a host from joining a result in unintentionally preventing a host from joining a
specific multicast group using IGMPv2 - i.e., if the PE does not specific multicast group using IGMPv2 - i.e., if the PE does not
receive a join from the host it will not forward multicast data receive a join from the host it will not forward multicast data
to it. Per [RFC4541] , when an IGMPv2 host receives a membership to it. Per [RFC4541] , when an IGMPv2 host receives a Membership
report for a group address that it intends to join, the host will Report for a group address that it intends to join, the host will
suppress its own membership report for the same group, and if the suppress its own membership report for the same group, and if the
PE does not receive an IGMP Join from host it will not forward PE does not receive an IGMP Join from host it will not forward
multicast data to it. In other words, an IGMPv2 Join MUST NOT be multicast data to it. In other words, an IGMPv2 Join MUST NOT be
sent on an AC that does not lead to a CE multicast router. This sent on an AC that does not lead to a CE multicast router. This
message suppression is a requirement for IGMPv2 hosts. This is message suppression is a requirement for IGMPv2 hosts. This is
not a problem for hosts running IGMPv3 because there is no not a problem for hosts running IGMPv3 because there is no
suppression of IGMP Membership reports. suppression of IGMP Membership Reports.
4.1.2. IGMP/MLD Leave Group Advertisement in BGP 4.1.2. IGMP/MLD Leave Group Advertisement in BGP
When a PE wants to withdraw an EVPN SMET route corresponding to an When a PE wants to withdraw an EVPN SMET route corresponding to an
IGMPv2 Leave Group (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" 1. When a PE receives an IGMPv2 Leave Group or its "Leave"
equivalent message for IGMPv3 from its attached host, it checks equivalent message for IGMPv3 from its attached host, it checks
to see if this host is the last host that is interested in this to see if this host is the last host that is interested in this
multicast group by sending a query for the multicast group. If multicast group by sending a query for the multicast group. If
the host was indeed the last one (i.e. no responses are received the host was indeed the last one (i.e. no responses are received
for the query), then the PE MUST re-advertises EVPN SMET for the query), then the PE MUST re-advertises EVPN SMET
Multicast route with the corresponding version flag reset. If Multicast route with the corresponding version flag reset. If
this is the last version flag to be reset, then instead of re- this is the last version flag to be reset, then instead of re-
advertising the EVPN route with all version flags reset, the PE advertising the EVPN route with all version flags reset, the PE
MUST withdraws the EVPN route for that (*,G). MUST withdraw 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- compares the received version flags from the route with its per-
PE stored version flags. If the PE finds that a version flag PE stored version flags. If the PE finds that a version flag
associated with the (*,G) for the remote PE is reset, then the PE associated with the (*,G) for the remote PE is reset, then the PE
MUST generate IGMP Leave for that (*,G) toward its local MUST generate IGMP Leave for that (*,G) toward its local
interface (if any) attached to the multicast router for that interface (if any) attached to the multicast router for that
multicast group. It should be noted that the received EVPN route multicast group. It should be noted that the received EVPN route
SHOULD at least have one version flag set. If all version flags SHOULD at least have one version flag set. If all version flags
are reset, it is an error because the PE should have received an are reset, it is an error because the PE should have received an
skipping to change at page 9, line 9 skipping to change at page 9, line 22
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 act as distributed multicast router with Anycast IP address for
all 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
skipping to change at page 11, line 28 skipping to change at page 11, line 28
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 be sent to the port associated with router R1. Furthermore, the
Joins received via BGP (SMET) need to be passed to the R1 port but Joins received via BGP (SMET) need to be passed to the R1 port but
filtered 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 Membership Request messages
different PEs in the redundancy group and furthermore their can arrive at different PEs in the redundancy group and furthermore
corresponding Leave messages can arrive at PEs that are different their corresponding Leave messages can arrive at PEs that are
from the ones that received the Join messages. Therefore, all PEs different from the ones that received the Join messages. Therefore,
attached to a given ES must coordinate IGMP Join and Leave Group all PEs attached to a given ES must coordinate IGMP Membership
(x,G) state, where x may be either '*' or a particular source S, for Request and Leave Group (x,G) state, where x may be either '*' or a
each BD on that ES. This allows the DF for that [ES,BD] to correctly particular source S, for each BD on that ES. This allows the DF for
advertise or withdraw a Selective Multicast Ethernet Tag (SMET) route that [ES,BD] to correctly advertise or withdraw a Selective Multicast
for that (x,G) group in that BD when needed. All-Active multihoming Ethernet Tag (SMET) route for that (x,G) group in that BD when
PEs for a given ES MUST support IGMP synchronization procedures needed. 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 Membership
for that BD on that ES, it MUST instantiate local IGMP Join (x,G) Request (x,G) state for that BD on that ES, it MUST instantiate local
state and MUST advertise a BGP IGMP Join Synch route for that IGMP Membership Request (x,G) state and MUST advertise a BGP IGMP
[ES,BD]. Local IGMP Join (x, G) state refers to IGMP Join (x,G) Join Synch route for that [ES,BD]. Local IGMP IGMP Membership
state that is created as a result of processing an IGMP Membership Request (x, G) state refers to IGMP Membership Request (x,G) state
Report for (x,G). that is created as a result of processing an IGMP Membership 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
imported by the PEs attached to that ES and not any other PEs. imported by 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 Membership
state for that [ES,BD], it MUST instantiate that IGMP Join (x,G) Request(x,G) state for that [ES,BD], it MUST instantiate that IGMP
state - i.e., IGMP Join (x,G) state is the union of the local IGMP Membership Request(x,G) state - i.e., IGMP Membership Request(x,G)
Join (x,G) state and the installed IGMP Join Synch route. If the DF state is the union of the local IGMP Join (x,G) state and the
did not already advertise (originate) a SMET route for that (x,G) installed IGMP Join Synch route. If the DF did not already advertise
group in that BD, it MUST do so now. (originate) a SMET route for that (x,G) group in that BD, it MUST do
so now.
When a PE, either DF or non-DF, deletes its local IGMP Join (x, G) When a PE, either DF or non-DF, deletes its local IGMP Membership
state for that [ES,BD], it MUST withdraw its BGP IGMP Join Synch Request(x, G) state for that [ES,BD], it MUST withdraw its BGP IGMP
route for that [ES,BD]. Join Synch route for that [ES,BD].
When a PE, either DF or non-DF, receives the withdrawal of an IGMP When a PE, either DF or non-DF, receives the withdrawal of an IGMP
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 Membership Request(x,G) state and it has no
Join Synch routes, it MUST remove IGMP Join (x,G) state for that installed IGMP Join Synch routes, it MUST remove IGMP Membership
[ES,BD]. If the DF no longer has IGMP Join (x,G) state for that BD Request(x,G) state for that [ES,BD]. If the DF no longer has IGMP
on any ES for which it is DF, it MUST withdraw its SMET route for Membership Request(x,G) state for that BD on any ES for which it is
that (x,G) group in that BD. DF, it MUST withdraw its SMET route for that (x,G) group in that BD.
In other words, a PE advertises an SMET route for that (x,G) group in In other words, a PE advertises 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 Membership Request (x,G) state in that BD on
ES for which it is DF and it withdraws that SMET route when it does at least one ES for which it is DF and it withdraws that SMET route
not have IGMP Join (x,G) state in that BD on any ES for which it is when it does not have IGMP Membership Request(x,G) state in that BD
DF. on any ES for which it is 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
(x,G) state for that [ES,BD], it initiates the (x,G) leave group Membership Request (x,G) state for that [ES,BD], it initiates the
synchronization procedure, which consists of the following steps: (x,G) leave group 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 (x,G) leave group synchronization procedure. This is the product
of two locally configured values, Last Member Query Count and of two locally configured values, Last Member Query Count and
Last Member Query Interval (described in Section 3 of [RFC2236]), Last Member Query Interval (described in Section 3 of [RFC2236]),
plus a delta corresponding to the time it takes for a BGP plus a delta corresponding to the time it takes for a BGP
advertisement to propagate between the PEs attached to the advertisement to propagate between the PEs attached to the
multihomed ES (delta is a consistently configured value on all multihomed ES (delta is a consistently configured value on all
PEs attached to the multihomed ES). PEs attached to the multihomed ES).
skipping to change at page 13, line 40 skipping to change at page 13, line 42
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 Membership Request(x, G) state for
it instantiates local IGMP Join (x,G) state. If the DF is not that [ES, BD], it instantiates local IGMP Membership Request (x,G)
currently advertising (originating) a SMET route for that (x,G) group state. If the DF is not currently advertising (originating) a SMET
in that BD, it does so now. route for that (x,G) group 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 Membership
state for that BD on that ES, it instantiates that IGMP Join (x,G) Request (x,G) state for that BD on that ES, it instantiates that IGMP
state. If the DF has not already advertised (originated) a SMET Membership Request (x,G) state. If the DF has not already advertised
route for that (x,G) group in that BD, it does so now. (originated) a SMET 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 Membership Request (x,G) state and no installed IGMP Join
it removes IGMP Join (x,G) state for that [ES,BD]. If the DF no Synch routes, it removes IGMP Membership Request (x,G) state for that
longer has IGMP Join (x,G) state for that BD on any ES for which it [ES,BD]. If the DF no longer has IGMP Membership Request (x,G) state
is DF, it withdraws its SMET route for that (x,G) group in that BD. for that BD on any ES for which it 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 Membership Request, would have synced
by the procedure defined in section 6.1. If a PE with local join the IGMP Join by the procedure defined in section 6.1. If a PE with
state goes down or the PE to CE link goes down, it would lead to a local join state goes down or the PE to CE link goes down, it would
mass withdraw of multicast routes. Remote PEs (PEs where these lead to a mass withdraw of multicast routes. Remote PEs (PEs where
routes were remote IGMP Joins) SHOULD not remove the state these routes were remote IGMP Joins) SHOULD not remove the state
immediately; instead General Query SHOULD be generated to refresh the immediately; instead General Query SHOULD be generated to refresh the
states. There are several ways to Some of the way to detect failure states. There are several ways to detect failure at a peer, e.g.
at a peer, e.g. using IGP next hop tracking or ES route withdraw. 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 multihomed ES operating in Single-Active redundancy
SHOULD also coordinate IGMP Join (x,G) state. In this case all IGMP mode SHOULD also coordinate IGMP Join (x,G) state. In this case all
Join messages are received by the DF and distributed to the non-DF IGMP Join messages are received by the DF and distributed to the non-
PEs using the procedures described above. DF 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 Proxy. This set consists of any PE that has advertised an
Inclusive Multicast Tag route for the BD without the "IGMP Proxy Inclusive Multicast Tag route for the BD without the "IGMP Proxy
Support" flag. Support" flag.
skipping to change at page 15, line 10 skipping to change at page 15, line 16
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 + 7 - Multicast Join Synch Route
+ 8 - Multicast Leave 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.
skipping to change at page 16, line 31 skipping to change at page 17, line 7
o 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.
o The fourth least significant bit, bit 4 indicates whether the o The fourth least significant bit, bit 4 indicates whether the
(S,G) information carried within the route-type is of an Include (S,G) information carried within the route-type is of an Include
Group type (bit value 0) or an Exclude Group type (bit value 1). Group type (bit value 0) or an Exclude Group type (bit value 1).
The Exclude Group type bit MUST be ignored if bit 5 is not set. The Exclude Group type bit MUST be ignored if bit 5 is not set.
o This EVPN route type is used to carry tenant IGMP multicast group o This EVPN route type is used to carry tenant IGMP multicast group
information. The flag field assists in distributing IGMP information. The flag field assists in distributing IGMP
membership interest of a given host/VM for a given multicast Membership Report of a given host/VM for a given multicast route.
route. The version bits help associate IGMP version of receivers The version bits help associate IGMP version of receivers
participating within the EVPN domain. participating within the EVPN domain.
o 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.
o If route is used for IPv6 (MLD) then bit 7 indicates support for o If route is used for IPv6 (MLD) then bit 7 indicates support for
MLD version 1. The second least significant bit, bit 6 indicates MLD version 1. The second least significant bit, bit 6 indicates
support for MLD version 2. Since there is no MLD version 3, in support for MLD version 2. Since there is no MLD version 3, in
case of IPv6 route third least significant bit MUST be 0. In case case of IPv6 route third least significant bit MUST be 0. In case
of IPv6 routes, the fourth least significant bit MUST be ignored of IPv6 routes, the fourth least significant bit MUST be ignored
skipping to change at page 17, line 33 skipping to change at page 17, line 52
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 Length field is 32. If the Multicast Source Address field contains
an IPv6 address, then the value of the Multicast Source Length field an IPv6 address, then the value of the Multicast Source Length field
is 128. In case of a (*, G) Join, the Multicast Source Length is set is 128. In case of a (*, G) Join, the Multicast Source Length is set
to 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 or MLD The Multicast Group Address is the Group address from the IGMP or MLD
membership report. Membership Report.
The Originator Router Length is the length of the Originator Router The Originator Router Length is the length of the Originator Router
Address in bits. Address in bits.
The Originator Router Address is the IP address of router originating The Originator Router Address is the IP address of router originating
this route. The SMET Originator Router IP address MUST match that of this route. The SMET Originator Router IP address MUST match that of
the IMET (or SPMSI AD) route originated for the same EVI by the same the IMET (or S-PMSI AD) route originated for the same EVI by the same
downstream PE. downstream PE.
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 Reserve bit MUST be set to 0. They can be defined in future by other
document. 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
SMET route. The NLRI also keeps track of receiver's IGMP protocol SMET route. The NLRI also keeps track of receiver's IGMP protocol
version and any source filtering for a given group membership. All version and any source filtering for a given group membership. All
skipping to change at page 20, line 27 skipping to change at page 21, line 8
version 3. version 3.
o The fourth least significant bit, bit 4 indicates whether the (S, o The fourth least significant bit, bit 4 indicates whether the (S,
G) information carried within the route-type is of Include Group G) information carried within the route-type is of Include Group
type (bit value 0) or an Exclude Group type (bit value 1). The 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. 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 o Reserve bit MUST be set to 0. They can be defined in future by
other document. other document.
The Flags field assists in distributing IGMP membership interest of a The Flags field assists in distributing IGMP Membership Report 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 indicates support for MLD version 2. Since there is no MLD version
3, in case of IPv6 route third least significant bit MUST be 0. In 3, in case of IPv6 route third least significant bit MUST be 0. In
case of IPv6 route, the fourth least significant bit MUST be ignored case of IPv6 route, the fourth least significant bit MUST be ignored
skipping to change at page 21, line 32 skipping to change at page 22, line 12
o EVI is VLAN-Aware Bundle service with translation - set to the o EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID - e.g., normalized VID 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.
Reserve bit MUST be set to 0. They can be defined in future by other Reserve bit MUST be set to 0. They can be defined in future by other
document. document.
9.3. Multicast Leave Synch Route 9.3. Multicast Leave Synch Route
This EVPN route type is used to coordinate IGMP Leave Group (x,G) This EVPN route type is used to coordinate 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
skipping to change at page 23, line 27 skipping to change at page 24, line 13
version 3. version 3.
o The fourth least significant bit, bit 4 indicates whether the (S, o The fourth least significant bit, bit 4 indicates whether the (S,
G) information carried within the route-type is of Include Group G) information carried within the route-type is of Include Group
type (bit value 0) or an Exclude Group type (bit value 1). The 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. 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 o Reserve bit MUST be set to 0. They can be defined in future by
other document. other document.
The Flags field assists in distributing IGMP membership interest of a The Flags field assists in distributing IGMP Membership Report 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 indicates support for MLD version 2. Since there is no MLD version
3, in case of IPv6 route third least significant bit MUST be 0. In 3, in case of IPv6 route third least significant bit MUST be 0. In
case of IPv6 route, the fourth least significant bit MUST be ignored case of IPv6 route, the fourth least significant bit MUST be ignored
skipping to change at page 24, line 36 skipping to change at page 25, line 20
o EVI is VLAN-Aware Bundle service with translation - set to the o EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID - e.g., normalized VID 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 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 the reserved field to Zero , the receiver SHOULD ignore it and if it
needs to be propagated, it MUST propagate it unchanged needs to be propagated, it MUST propagate it unchanged
Maximum Response Time is value to be used while sending query as Maximum Response Time is value to be used while sending query as
defined in [RFC2236] 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 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
skipping to change at page 26, line 5 skipping to change at page 26, line 34
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 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06 | Sub-Type=0x09| Flags (2 Octets) |M|I| | Type=0x06 | Sub-Type=0x09| Flags (2 Octets) |M|I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved=0 | | Reserved=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The low-order (lease significant) two bits are defined as the "IGMP The low-order (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. where: proxy. where:
o Type is 0x06 as registered with IANA for EVPN Extended o Type is 0x06 as registered with IANA for EVPN Extended
Communities. Communities.
o Sub-Type : 0x09 o Sub-Type : 0x09
skipping to change at page 29, line 12 skipping to change at page 29, line 39
with a policy that removes the RTs that are meaningful in AS1 and with a policy that removes the RTs that are meaningful in AS1 and
replaces them with the corresponding (i.e., RTs corresponding to the replaces them with the corresponding (i.e., RTs corresponding to the
same EVIs) RTs that are meaningful in AS2. This is known as RT- same EVIs) RTs that are meaningful in AS2. This is known as RT-
rewriting. rewriting.
Note that if a given route's RTs are rewritten, and the route carries Note that if a given route's RTs are rewritten, and the route carries
an EVI-RT EC, the EVI-RT EC needs to be rewritten as well. an EVI-RT EC, the EVI-RT EC needs to be rewritten as well.
9.7. BGP Error Handling 9.7. BGP Error Handling
If a received BGP update contains Flags not in accordance with IGMP If a received BGP update contains Flags not in accordance with IGMP/
version-X expectation, the PE MUST apply the "treat-as-withdraw" MLD version-X expectation, the PE MUST apply the "treat-as-withdraw"
procedure as per [RFC7606] procedure as per [RFC7606]
If a received BGP update is malformed such that BGP route keys cannot If a received BGP update is malformed such that BGP route keys cannot
be extracted, then BGP update MUST be considered as invalid. be extracted, then BGP update MUST be considered as invalid.
Receiving PE MUST apply the "Session reset" procedure of [RFC7606]. Receiving PE MUST apply the "Session reset" procedure of [RFC7606].
10. IGMP/MLD Immediate Leave 10. IGMP/MLD Immediate Leave
IGMP MAY be configured with immediate leave option. This allows the IGMP MAY be configured with immediate leave option. This allows the
device to remove the group entry from the multicast routing table device to remove the group entry from the multicast routing table
immediately upon receiving a IGMP leave message for (x,G). In case immediately upon receiving a IGMP leave message for (x,G). In case
of all active multi-homing while synchronizing the IGMP Leave state of all active multi-homing while synchronizing the IGMP Leave state
to redundancy peers, Maximum Response Time MAY be filled in as Zero. to redundancy peers, Maximum Response Time MAY be filled in as Zero.
Implementations SHOULD have identical configuration across multi- Implementations SHOULD have identical configuration across multi-
homed peers. In case IGMP Leave Synch route is received with Maximum homed peers. In case IGMP Leave Synch route is received with Maximum
Response Time Zero, irrespective of local IGMP configuration it MAY Response Time Zero, irrespective of local IGMP configuration it MAY
be processed as an immediate leave. be processed as an immediate leave.
11. IGMP Version 1 Membership Request 11. IGMP Version 1 Membership Report
This document does not provide any detail about IGMPv1 processing. This document does not provide any detail about IGMPv1 processing.
Multicast working group are in process of deprecating uses of IGMPv1. Multicast working group are in process of deprecating uses of IGMPv1.
Implementations MUST only use IGMPv2 and above for IPv4 and MLDv1 and Implementations MUST only use IGMPv2 and above for IPv4 and MLDv1 and
above for IPv6. IGMP V1 routes MUST be considered as invalid and the above for IPv6. IGMP V1 routes MUST be considered as invalid and the
PE MUST apply the "treat-as-withdraw" procedure as per [RFC7606] PE MUST apply the "treat-as-withdraw" procedure as per [RFC7606]
12. Security Considerations 12. Security Considerations
Same security considerations as [RFC7432] ,[RFC2236] ,[RFC3376] , Same security considerations as [RFC7432] ,[RFC2236] ,[RFC3376] ,
skipping to change at page 30, line 37 skipping to change at page 31, line 24
---- -------------- ------------- ---- -------------- -------------
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. Acknowledgement 14. Acknowledgement
The authors would like to thank Stephane Litkowski, Jorge Rabadan, The authors would like to thank Stephane Litkowski, Jorge Rabadan,
Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Ananthamurthy for Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Ananthamurthy,
reviewing and providing valuable comment. Swadesh Agrawal for reviewing and providing valuable comment.
15. Contributors 15. Contributors
Mankamana Mishra
Cisco systems
Email: mankamis@cisco.com
Derek Yeung Derek Yeung
Arrcus Arrcus
Email: derek@arrcus.com Email: derek@arrcus.com
16. References 16. References
16.1. Normative References 16.1. Normative References
[I-D.ietf-bess-evpn-bum-procedure-updates]
Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A.
Sajassi, "Updates on EVPN BUM Procedures", draft-ietf-
bess-evpn-bum-procedure-updates-08 (work in progress),
November 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2236] Fenner, W., "Internet Group Management Protocol, Version [RFC2236] Fenner, W., "Internet Group Management Protocol, Version
2", RFC 2236, DOI 10.17487/RFC2236, November 1997, 2", RFC 2236, DOI 10.17487/RFC2236, November 1997,
<https://www.rfc-editor.org/info/rfc2236>. <https://www.rfc-editor.org/info/rfc2236>.
[RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast [RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast
skipping to change at page 32, line 45 skipping to change at page 33, line 31
Email: sajassi@cisco.com Email: sajassi@cisco.com
Samir Thoria Samir Thoria
Cisco Systems Cisco Systems
821 Alder Drive, 821 Alder Drive,
MILPITAS, CALIFORNIA 95035 MILPITAS, CALIFORNIA 95035
UNITED STATES UNITED STATES
Email: sthoria@cisco.com Email: sthoria@cisco.com
Mankamana Mishra
Cisco Systems
821 Alder Drive,
MILPITAS, CALIFORNIA 95035
UNITED STATES
Email: mankamis@cisco.com
Keyur PAtel Keyur PAtel
Arrcus Arrcus
UNITED STATES UNITED STATES
Email: keyur@arrcus.com Email: keyur@arrcus.com
John Drake John Drake
Juniper Networks Juniper Networks
Email: jdrake@juniper.net Email: jdrake@juniper.net
Wen Lin Wen Lin
Juniper Networks Juniper Networks
Email: wlin@juniper.net Email: wlin@juniper.net
 End of changes. 62 change blocks. 
153 lines changed or deleted 177 lines changed or added

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