draft-ietf-bess-evpn-igmp-mld-proxy-00.txt   draft-ietf-bess-evpn-igmp-mld-proxy-01.txt 
skipping to change at page 1, line 13 skipping to change at page 1, line 13
BESS Working Group Ali Sajassi BESS Working Group Ali Sajassi
Internet-Draft Samir Thoria Internet-Draft Samir Thoria
Intended Status: Standards Track Cisco Intended Status: Standards Track Cisco
Keyur Patel Keyur Patel
Derek Yeung Derek Yeung
Arrcus Arrcus
John Drake John Drake
Wen Lin Wen Lin
Juniper Juniper
Expires: September 27, 2017 March 27, 2017 Expires: September 4, 2018 March 4, 2018
IGMP and MLD Proxy for EVPN IGMP and MLD Proxy for EVPN
draft-ietf-bess-evpn-igmp-mld-proxy-00 draft-ietf-bess-evpn-igmp-mld-proxy-01
Abstract Abstract
Ethernet Virtual Private Network (EVPN) solution [RFC 7432] is Ethernet Virtual Private Network (EVPN) solution [RFC 7432] 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.
This draft describes how to support efficiently endpoints running This draft describes how to support efficiently endpoints running
skipping to change at page 2, line 9 skipping to change at page 2, line 9
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 The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
Copyright and License Notice Copyright and License Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2018 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 (http://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 . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 5
2 IGMP Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 IGMP Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 Proxy Reporting . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Proxy Reporting . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 IGMP Membership Report Advertisement in BGP . . . . . . 5 2.1.1 IGMP Membership Report Advertisement in BGP . . . . . . 6
2.1.1 IGMP Leave Group Advertisement in BGP . . . . . . . . . 7 2.1.1 IGMP Leave Group Advertisement in BGP . . . . . . . . . 8
2.2 Proxy Querier . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Proxy Querier . . . . . . . . . . . . . . . . . . . . . . . 9
3 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 PE with only attached hosts/VMs for a given subnet . . . . . 9 3.1 PE with only attached hosts/VMs for a given subnet . . . . . 10
3.2 PE with mixed of attached hosts/VMs and multicast source . . 10 3.2 PE with mixed of attached hosts/VMs and multicast source . . 11
3.3 PE with mixed of attached hosts/VMs, multicast source and 3.3 PE with mixed of attached hosts/VMs, multicast source and
router . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 router . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 All-Active Multi-Homing . . . . . . . . . . . . . . . . . . . . 10 4 All-Active Multi-Homing . . . . . . . . . . . . . . . . . . . . 11
4.1 Local IGMP Join Synchronization . . . . . . . . . . . . . . 11 4.1 Local IGMP Join Synchronization . . . . . . . . . . . . . . 12
4.2 Local IGMP Leave Group Synchronization . . . . . . . . . . . 11 4.2 Local IGMP Leave Group Synchronization . . . . . . . . . . . 13
4.2.1 Remote Leave Group Synchronization . . . . . . . . . . . 12 4.2.1 Remote Leave Group Synchronization . . . . . . . . . . . 13
4.2.2 Common Leave Group Synchronization . . . . . . . . . . . 13 4.2.2 Common Leave Group Synchronization . . . . . . . . . . . 14
5 Single-Active Multi-Homing . . . . . . . . . . . . . . . . . . . 13 5 Single-Active Multi-Homing . . . . . . . . . . . . . . . . . . . 14
6 Discovery of Selective P-Tunnel Types . . . . . . . . . . . . . 13 6 Selective Multicast Procedures for IR tunnels . . . . . . . . . 14
7 BGP Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7 BGP Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.1 Selective Multicast Ethernet Tag Route . . . . . . . . . . . 15 7.1 Selective Multicast Ethernet Tag Route . . . . . . . . . . . 15
7.1.1 Constructing the Selective Multicast route . . . . . . . 16 7.1.1 Constructing the Selective Multicast Ethernet Tag
7.2 IGMP Join Synch Route . . . . . . . . . . . . . . . . . . . 17 route . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.2 IGMP Join Synch Route . . . . . . . . . . . . . . . . . . . 18
7.2.1 Constructing the IGMP Join Synch Route . . . . . . . . 19 7.2.1 Constructing the IGMP Join Synch Route . . . . . . . . 19
7.3 IGMP Leave Synch Route . . . . . . . . . . . . . . . . . . . 20 7.3 IGMP Leave Synch Route . . . . . . . . . . . . . . . . . . . 20
7.3.1 Constructing the IGMP Leave Synch Route . . . . . . . . 21 7.3.1 Constructing the IGMP Leave Synch Route . . . . . . . . 22
7.4 Multicast Flags Extended Community . . . . . . . . . . . . . 22 7.4 Multicast Flags Extended Community . . . . . . . . . . . . . 23
7.5 EVI-RT Extended Community . . . . . . . . . . . . . . . . . 23 7.5 EVI-RT Extended Community . . . . . . . . . . . . . . . . . 24
8 Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 24 8 Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 24
9 Security Considerations . . . . . . . . . . . . . . . . . . . . 24 9 Security Considerations . . . . . . . . . . . . . . . . . . . . 24
10 IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 10 IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
11 References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 11 References . . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.1 Normative References . . . . . . . . . . . . . . . . . . . 24 11.1 Normative References . . . . . . . . . . . . . . . . . . . 25
11.2 Informative References . . . . . . . . . . . . . . . . . . 24 11.2 Informative References . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25
1 Introduction 1 Introduction
Ethernet Virtual Private Network (EVPN) solution [RFC 7432] is Ethernet Virtual Private Network (EVPN) solution [RFC 7432] 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.
skipping to change at page 4, line 33 skipping to change at page 4, line 33
and DCs. 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
(e.g., IGMPv1) periodically sends membership queries to find out if (e.g., IGMPv1) periodically sends membership queries to find out if
there are hosts on that subnet still interested in receiving there are hosts on that subnet still interested in receiving
multicast traffic for that group. The IGMP/MLD Proxy solution multicast traffic for that group. The IGMP/MLD Proxy solution
described in this draft has three objectives to accomplish: described in this draft has three objectives to accomplish:
1) Just like ARP/ND suppression mechanism in EVPN to reduce the 1) Reduce flooding of IGMP messages: just like ARP/ND suppression
flooding of ARP messages over EVPN, it is also desired to have a mechanism in EVPN to reduce the flooding of ARP messages over EVPN,
mechanism to reduce the flood of IGMP messages (both Queries and it is also desired to have a mechanism to reduce the flood of IGMP
Reports) in EVPN. messages (both Queries and Reports) in EVPN.
2) If there is no physical/virtual multicast router attached to the 2) Distributed anycast multicast proxy: it is desired for the EVPN
EVPN network for a given (*,G) or (S,G), it is desired for the EVPN network to act as a distributed anycast multicast router with respect
network to act as a distributed anycast multicast router for all the to IGMP/MLD proxy function for all the hosts attached to that
hosts attached to that subnet. subnet.
3) To forward multicast traffic efficiently over EVPN network such 3) Selective Multicast: to forward multicast traffic over EVPN
that it only gets forwarded to the PEs that have interest in the network such that it only gets forwarded to the PEs that have
multicast group(s) - i.e., multicast traffic will not be forwarded to interest in the multicast group(s) - i.e., multicast traffic will not
the PEs that have no receivers attached to them for that multicast be forwarded to the PEs that have no receivers attached to them for
group. This draft shows how the above objectives are achieved. that multicast group. This draft shows how this objective may be
achieved when Ingress Replication is used to distribute the multicast
traffic among the PEs. Procedures for supporting 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 (ingress replication or P2MP) 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/MLD proxy processes. The proposed solutions for each of these IGMP/MLD proxy processes. The proposed solutions for each of these
objectives are discussed in the following sections. objectives are discussed in the following sections.
1.1 Terminology 1.1 Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
document are to be interpreted as described in RFC 2119 [KEYWORDS]. and "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
POD: Point of Delivery
ToR: Top of Rack
NV: Network Virtualization
NVO: Network Virtualization Overlay
VNI: Virtual Network Identifier (for VXLAN)
EVPN: Ethernet Virtual Private Network
IGMP: Internet Group Management Protocol
MLD: Multicast Listener Discovery
EVI: An EVPN instance spanning the Provider Edge (PE) devices
participating in that EVPN
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
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
identifies an Ethernet segment is called an 'Ethernet Segment
Identifier'.
PE: Provider Edge device.
BD: Broadcast Domain. As per [RFC7432], an EVI consists of a single
or multiple BDs. In case of VLAN-bundle and VLAN-based service models
VLAN-aware bundle service model, an EVI contains multiple BDs. Also,
in this document, BD and subnet are equivalent terms.
Ethernet Tag: An Ethernet tag identifies a particular broadcast
domain, e.g., a VLAN. An EVPN instance consists of one or more
broadcast domains.
Single-Active Redundancy Mode: When only a single PE, among all the
PEs attached to an Ethernet segment, is allowed to forward traffic
to/from that Ethernet segment for a given VLAN, then the Ethernet
segment is defined to be operating in Single-Active redundancy mode.
All-Active Redundancy Mode: When all PEs attached to an Ethernet
segment are allowed to forward known unicast traffic to/from that
Ethernet segment for a given VLAN, then the Ethernet segment is
defined to be operating in All-Active redundancy mode.
2 IGMP Proxy 2 IGMP Proxy
IGMP Proxy mechanism is used to reduce the flooding of IGMP messages IGMP Proxy mechanism is used to reduce the flooding of IGMP messages
over EVPN network similar to ARP proxy used in reducing the flooding over EVPN network similar to ARP proxy used in reducing the flooding
of ARP messages over EVPN. It also provides triggering mechanism for of ARP messages over EVPN. It also provides triggering mechanism for
the PEs to setup their underlay multicast tunnels. IGMP Proxy the PEs to setup their underlay multicast tunnels. IGMP Proxy
mechanism consist of two components: a) Proxy for IGMP Reports and b) mechanism consist of two components: a) Proxy for IGMP Reports and b)
Proxy for IGMP Queries. Proxy for IGMP Queries.
skipping to change at page 5, line 33 skipping to change at page 6, line 42
When IGMP protocol is used between host/VMs and its first hop EVPN When IGMP protocol is used between host/VMs and its 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
it in BGP to other PEs that are interested in the info. This is done it in BGP to other PEs that are interested in the info. This is done
by terminating IGMP Reports in the first hop PE, translating and by terminating IGMP Reports in the first hop PE, translating and
exchanging the relevant information among EVPN BGP speakers. The exchanging the relevant information among EVPN BGP speakers. The
information is again translated back to IGMP message at the recipient information is again translated back to IGMP message at the recipient
EVPN speaker. Thus it helps create an IGMP overlay subnet using BGP. EVPN speaker. Thus it helps create an IGMP overlay subnet using BGP.
In order to facilitate such an overlay, this document also defines a In order to facilitate such an overlay, this document also defines a
new EVPN route type NLRI (EVPN Selective Multicast Ethernet Tag new EVPN route type NLRI, EVPN Selective Multicast Ethernet Tag
route) along with its procedures to help exchange and register IGMP route, along with its procedures to help exchange and register IGMP
multicast groups [section 5]. multicast groups [section 5].
2.1.1 IGMP Membership Report Advertisement in BGP 2.1.1 IGMP 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: the BGP EVPN route, it follows the following rules:
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 attached (Joins) , belonging to the same IGMP version, from different attached
hosts/VMs for the same (*,G) or (S,G), it only sends a single BGP hosts/VMs for the same (*,G) or (S,G), it only sends a single BGP
skipping to change at page 6, line 11 skipping to change at page 7, line 18
report is needed. If the IGMP Join is for (*,G), then multicast group report is needed. If the IGMP Join is for (*,G), then multicast group
address along with the corresponding version flag (v1, v2, or v3) are address along with the corresponding version flag (v1, v2, or v3) are
set. In case of IGMPv3, exclude flag also needs to be set to indicate set. In case of IGMPv3, exclude flag also needs to be set to indicate
that no source IP address to be excluded (e.g., include all sources that no source IP address to be excluded (e.g., include all sources
"*"). If the IGMP Join is for (S,G), then besides setting multicast "*"). If the IGMP Join is for (S,G), then besides setting multicast
group address along with the version flag v3, the source IP address 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 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 when advertising the EVPN route for (S,G), the only valid version
flag is v3 (i.e., v1 and v2 flags must be set to zero). flag is v3 (i.e., v1 and v2 flags must be set to zero).
2) When the first hop PE receives an IGMPv3 Join for (S,G), then the 2) When the first hop PE receives an IGMPv3 Join for (S,G) on a given
PE checks to see if the source (S) is attached to self. If so, it BD, it advertises the corresponding EVPN Selective Multicast Ethernet
does not send the corresponding BGP EVPN route advertisement. Tag (SMET) route regardless of whether the source (S) is attached to
itself or not in order to facilitate 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 same
(*,G), then it will readvertise the same EVPN Selective Multicast (*,G), then it will re-advertise the same EVPN SMET route with flag
route with flag for version-Y set in addition to any previously-set for version-Y set in addition to any previously-set version flag(s).
version flag(s). In other words, the first hop PE does not withdraw In other words, the first hop PE does not withdraw the EVPN route
the EVPN route before sending the new route because the flag field is before sending the new route because the flag field is not part of
not part of BGP route key processing. 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 the
PE will advertise a new EVPN Selective Multicast route with v3 flag PE will advertise a new EVPN SMET route with v3 flag set (and v1 and
set (and v1 and v2 reset). Include/exclude flag also need to be set v2 reset). Include/exclude flag also need to be set accordingly.
accordingly. Since source IP address is used as part of BGP route key Since source IP address is used as part of BGP route key processing,
processing, it is considered as a new BGP route advertisement. it is considered as a new BGP route advertisement.
5) When a PE receives an EVPN Selective Multicast route with more 5) When a PE receives an EVPN SMET route with more than one version
than one version flag set, it will generate the corresponding IGMP flag set, it will generate the corresponding IGMP report for (*,G)
report for (*,G) for each version specified in the flag field. With for each version specified in the flag field. With multiple version
multiple version flags set, there should be no source IP address in flags set, there should be no source IP address in the receive EVPN
the receive EVPN route. If there is, then an error should be logged. route. If there is, then an error should be logged. If v3 flag is set
If v3 flag is set (in addition to v1 or v2), then the include/exclude (in addition to v1 or v2), then the include/exclude flag needs to
flag needs to indicate "exclude". If not, then an error should be indicate "exclude". If not, then an error should be logged. The PE
logged. The PE MUST generate an IGMP membership report (Join) for MUST generate an IGMP membership report (Join) for that (*,G) and
that (*,G) and each IGMP version in the version flag. each IGMP version in the version flag.
6) When a PE receives a list of EVPN Selective Multicast NLRIs in its 6) When a PE receives a list of EVPN SMET NLRIs in its BGP update
BGP update message, each with a different source IP address and the message, each with a different source IP address and the multicast
multicast group address, and the version flag is set to v3, then the group address, and the version flag is set to v3, then the PE
PE generates an IGMPv3 membership report with a record corresponding generates an IGMPv3 membership report with a record corresponding to
to the list of source IP addresses and the group address along with the list of source IP addresses and the group address along with the
the proper indication of inclusion/exclusion. proper indication of inclusion/exclusion.
7) Upon receiving EVPN Selective Multicast route(s) and before 7) Upon receiving EVPN SMET route(s) and before generating the
generating the corresponding IGMP Join(s), the PE checks to see corresponding IGMP Join(s), the PE checks to see whether it has any
whether it has any multicast router's AC(s) (Attachment Circuits CE multicast router for that BD on any of its ES's . The PE provides
connected to multicast routers). If it has router's ACs, then the such check by listening for PIM hellos on that AC (i.e, <ES,BD>). If
generated IGMP Join(s) are sent to those ACs. If it doesn't have any it has router's ACs, then the generated IGMP Join(s) are sent to
router's AC, then no IGMP Join(s) needs to be generated because those ACs. If it doesn't have any router's AC, then no IGMP Join(s)
sending IGMP Joins to other hosts can result in unintentionally needs to be generated because sending IGMP Joins to other hosts can
preventing a host from joining a specific multicast group for IGMPv1 result in unintentionally preventing a host from joining a specific
and IGMPv2 - i.e., if the PE does not receive a join from the host it multicast group for IGMPv1 and IGMPv2 - i.e., if the PE does not
will not forward multicast data to it. Per [RFC4541], when an IGMPv1 receive a join from the host it will not forward multicast data to
or IGMPv2 host receives a membership report for a group address that it. Per [RFC4541], when an IGMPv1 or IGMPv2 host receives a
it intends to join, the host will suppress its own membership report membership report for a group address that it intends to join, the
for the same group. This message suppression is a requirement for host will suppress its own membership report for the same group. In
IGMPv1 and IGMPv2 hosts. This is not a problem for hosts running other words, an IGMPv1 or IGMPv2 Join MUST NOT be sent on an AC that
IGMPv3 because there is no suppression of IGMP Membership reports. does not lead to a CE multicast router. This message suppression is a
requirement for IGMPv1 and IGMPv2 hosts. This is not a problem for
hosts running IGMPv3 because there is no suppression of IGMP
Membership reports.
2.1.1 IGMP Leave Group Advertisement in BGP 2.1.1 IGMP Leave Group Advertisement in BGP
When a PE wants to withdraw an EVPN Selective Multicast route When a PE wants to withdraw an EVPN SMET route corresponding to an
corresponding to an IGMPv2 Leave Group (Leave) or IGMPv3 "Leave" IGMPv2 Leave Group (Leave) or IGMPv3 "Leave" equivalent message, it
equivalent message, it follows the following rules: follows the following rules:
1) For IGMPv1, there is no explicit membership leave; therefore, the 1) For IGMPv1, there is no explicit membership leave; therefore, the
PE needs to periodically send out an IGMP membership query to PE needs to periodically send out an IGMP membership query to
determine whether there is any host left who is interested in determine whether there is any host left who is interested in
receiving traffic directed to this multicast group (this proxy query receiving traffic directed to this multicast group (this proxy query
function will be described in more details in section 2.2). If there function will be described in more details in section 2.2). If there
is no host left, then the PE re-advertises EVPN Selective Multicast is no host left, then the PE re-advertises EVPN SMET route with the
route with the v1 version flag reset. If this is the last version v1 version flag reset. If this is the last version flag to be reset,
flag to be reset, then instead of re-advertising the EVPN route with then instead of re-advertising the EVPN route with all version flags
all version flags reset, the PE withdraws the EVPN route for that reset, the PE withdraws the EVPN route for that (*,G).
(*,G).
2) When a PE receives an IGMPv2 Leave Group or its "Leave" equivalent 2) When a PE receives an IGMPv2 Leave Group or its "Leave" equivalent
message for IGMPv3 from its attached host, it checks to see if this message for IGMPv3 from its attached host, it checks to see if this
host is the last host who is interested in this multicast group by host is the last host who is interested in this multicast group by
sending a query for the multicast group. If the host was indeed the sending a query for the multicast group. If the host was indeed the
last one, then the PE re-advertises EVPN Selective Multicast route last one, then the PE re-advertises EVPN SMET Multicast route with
with the corresponding version flag reset. If this is the last the corresponding version flag reset. If this is the last version
version flag to be reset, then instead of re-advertising the EVPN flag to be reset, then instead of re-advertising the EVPN route with
route with all version flags reset, the PE withdraws the EVPN route all version flags reset, the PE withdraws the EVPN route for that
for that (*,G). (*,G).
3) When a PE receives an EVPN Selective Multicast route for a given 3) When a PE receives an EVPN SMET route for a given (*,G), it
(*,G), it compares the received version flags from the route with its compares the received version flags from the route with its per-PE
per-PE stored version flags. If the PE finds that a version flag stored version flags. If the PE finds that a version flag associated
associated with the (*,G) for the remote PE is reset, then the PE with the (*,G) for the remote PE is reset, then the PE generates IGMP
generates IGMP Leave for that (*,G) toward its local interface (if Leave for that (*,G) toward its local interface (if any) attached to
any) attached to the multicast router for that multicast group. It the multicast router for that multicast group. It should be noted
should be noted that the received EVPN route should at least have one that the received EVPN route should at least have one version flag
version flag set. If all version flags are reset, it is an error set. If all version flags are reset, it is an error because the PE
because the PE should have received an EVPN route withdraw for the should have received an EVPN route withdraw for the last version
last version flag. If the PE receives an EVPN Selective Multicast flag. If the PE receives an EVPN SMET route withdraw, then it must
route withdraw, then it must remove the remote PE from the OIF list remove the remote PE from the OIF list associated with that multicast
associated with that multicast group. group.
4) When a PE receives an EVPN Selective Multicast route withdraw, it 4) When a PE receives an EVPN SMET route withdraw, it removes the
removes the remote PE from its OIF list for that multicast group and remote PE from its OIF list for that multicast group and if there are
if there are no more OIF entries for that multicast group (either no more OIF entries for that multicast group (either locally or
locally or remotely), then the PE MUST stop responding to queries remotely), then the PE MUST stop responding to queries from the
from the locally attached router (if any). If there is a source for locally attached router (if any). If there is a source for that
that multicast group, the PE stops sending multicast traffic for that multicast group, the PE stops sending multicast traffic for that
source. source.
2.2 Proxy Querier 2.2 Proxy Querier
As mentioned in the previous sections, each PE need to have proxy As mentioned in the previous sections, each PE need to 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 all
attached hosts/VMs in that subnet. 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.
3) To enable generation of query messages locally to their attached 3) To enable generation of query messages locally to their attached
host. In case of IGMPv1, the PE needs to send out an IGMP membership host. In case of IGMPv1, the PE needs to send out an IGMP membership
query to verify that at least one host on the subnet is still query to verify that at least one host on the subnet is still
interested in receiving traffic directed to that group. When there is interested in receiving traffic directed to that group. When there is
no reply to three consecutive IGMP membership queries, the PE times no reply to three consecutive IGMP membership queries, the PE times
out the group, stops forwarding multicast traffic to the attached out the group, stops forwarding multicast traffic to the attached
hosts for that (*,G), and sends a EVPN Selective Multicast route hosts for that (*,G), and sends a EVPN SMET route associated with
associated with that (*,G) with the version-1 flag reset or withdraws that (*,G) with the version-1 flag reset or withdraws that route.
that route.
3 Operation 3 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). Lets consider that this EVPN instance consist of a PE2, and PE3). Lets consider that this EVPN instance consist 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 shown in this figure connected to this subnet. the multicast router shown in this figure connected to this subnet.
PE1 only has hosts connected to it. PE2 has a mix of hosts and PE1 only has hosts connected to it. PE2 has a mix of hosts and
multicast source. PE3 has a mix of hosts, multicast source, and multicast source. PE3 has a mix of hosts, multicast source, and
multicast router. Further more, lets consider that for (S1,G1), R1 is multicast router. Further more, lets consider that for (S1,G1), R1 is
used as the multicast router but for (S2, G2), distributed multicast used as the multicast router. The following subsections describe the
router with Anycast IP address is used. The following subsections IGMP proxy operation in different PEs with regard to whether the
describe the IGMP proxy operation in different PEs with regard to locally attached devices for that subnet are:
whether the locally attached devices for that subnet are:
- only hosts/VMs - only hosts/VMs
- mix of hosts/VMs and multicast source - mix of hosts/VMs and multicast source
- mix of hosts/VMs, multicast source, and multicast router - mix of hosts/VMs, multicast source, and multicast router
+--------------+ +--------------+
| | | |
| | | |
+----+ | | +----+ +----+ | | +----+
H1:(*,G1)v1 ---| | | | | |---- H6(*,G1)v2 H1:(*,G1)v1 ---| | | | | |---- H6(*,G1)v2
skipping to change at page 9, line 42 skipping to change at page 11, line 6
Figure 1: Figure 1:
3.1 PE with only attached hosts/VMs for a given subnet 3.1 PE with only attached hosts/VMs for a given subnet
When PE1 receives an IGMPv1 Join Report from H1, it does not forward When PE1 receives an IGMPv1 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 v1 flag. This EVPN route is received by PE2 and PE3 that are setting v1 flag. This EVPN route is received by PE2 and PE3 that are
the member of the same EVI. PE3 reconstructs IGMPv1 Join Report from the member of the same BD (i.e., same EVI in case of VLAN-based
this EVPN BGP route and only sends it to the port(s) with multicast service or <EVI,VLAN> in case of VLAN-aware bundle service). PE3
routers attached to it (for that subnet). In this example, PE3 sends reconstructs IGMPv1 Join Report from this EVPN BGP route and only
the reconstructed IGMPv1 Join Report for (*,G1) to only R1. sends it to the port(s) with multicast routers attached to it (for
Furthermore, PE2 although receives the EVPN BGP route, it does not that subnet). In this example, PE3 sends the reconstructed IGMPv1
send it to any of its port for that subnet - namely ports associated Join Report for (*,G1) to only R1. Furthermore, PE2 although receives
with H6 and H7. the EVPN BGP route, it does not send it to any of its port for that
subnet - namely ports associated with H6 and H7.
When PE1 receives the second IGMPv1 Join from H2 for the same When PE1 receives the second IGMPv1 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 IGMPv2 Join from H3 for information. However, when it receives the IGMPv2 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 Selective Multicast list, it re-advertises the previously sent EVPN SMET route with the
route with the version-2 flag set. version-2 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 Selective Multicast route corresponding to it. advertises a new EVPN SMET route corresponding to it.
3.2 PE with mixed of attached hosts/VMs and multicast source 3.2 PE with mixed of attached hosts/VMs and multicast source
The main difference in here is that when PE2 receives IGMPv3 Join The main difference in here is that when PE2 receives IGMPv3 Join
from H7 for (S2,G2), it does not advertises it in BGP because PE2 from H7 for (S2,G2), it does not advertises it in BGP because PE2
knows that S2 is attached to its local AC. PE2 adds the port knows that S2 is attached to its local AC. PE2 adds the port
associated with H7 to its OIF list for (S2,G2). The processing for associated with H7 to its OIF list for (S2,G2). The processing for
IGMPv2 received from H6 is the same as the v2 Join described in IGMPv2 received from H6 is the same as the v2 Join described in
previous section. previous section.
skipping to change at page 10, line 44 skipping to change at page 12, line 6
4 All-Active Multi-Homing 4 All-Active Multi-Homing
Because a CE's LAG flow hashing algorithm is unknown, in an All- Because a CE's LAG flow hashing algorithm is unknown, in an All-
Active redundancy mode it must be assumed that the CE can send a Active redundancy mode it must be assumed that the CE can send a
given IGMP message to any one of the multi-homed PEs, either DF or 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 different non-DF - i.e., different IGMP Join messages can arrive at different
PEs in the redundancy group and furthermore their corresponding Leave PEs in the redundancy group and furthermore their corresponding Leave
messages can arrive at PEs that are different from the ones received messages can arrive at PEs that are different from the ones received
the Join messages. Therefore, all PEs attached to a given ES must the Join messages. Therefore, all PEs attached to a given ES must
coordinate IGMP Join and Leave Group (x, G) state, where x may be coordinate IGMP Join and Leave Group (x, G) state, where x may be
either '*' or a particular source S, for each [EVI, broadcast domain either '*' or a particular source S, for each BD on that ES. This
(BD)] on that ES. This allows the DF for that [ES, EVI, BD] to allows the DF for that [ES, BD] to correctly advertise or withdraw a
correctly advertise or withdraw a Selective Multicast Ethernet Tag Selective Multicast Ethernet Tag (SMET) route for that (x, G) group
(SMET) route for that (x, G) group in that [EVI, BD] when needed. in that BD when needed.
All-Active multihoming PEs for a given ES MUST support IGMP synch All-Active multihoming PEs for a given ES MUST support IGMP synch
procedures described in this section if they want to perform IGMP procedures described in this section if they want to perform IGMP
proxy for hosts connects to that ES. proxy for hosts connects to that ES.
4.1 Local IGMP Join Synchronization 4.1 Local IGMP 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 [EVI, BD] to which the IGMP Membership for (x, G), it determines the BD to which the IGMP Membership Report
Report belongs. If the PE doesn't already have local IGMP Join (x, G) belongs. If the PE doesn't already have local IGMP Join (x, G) state
state for that [EVI, BD] on that ES, it instantiates local IGMP Join for that BD on that ES, it instantiates local IGMP Join (x, G) state
(x, G) state and advertises a BGP IGMP Join Synch route for that [ES, and advertises a BGP IGMP Join Synch route for that [ES, BD]. Local
EVI, BD]. Local IGMP Join (x, G) state refers to IGMP Join (x, G) IGMP Join (x, G) state refers to IGMP Join (x, G) state that is
state that is created as the result of processing an IGMP Membership created as the result of processing an IGMP Membership Report for (x,
Report for (x, G). G).
The IGMP Join Synch route carries the ES-Import RT for the ES on The IGMP Join Synch route carries the ES-Import RT for the ES on
which the IGMP Membership Report was received. Thus it may only go which the IGMP Membership Report was received. Thus it may only go
to the PEs attached to that ES (and not any other PEs). 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, EVI, BD], it instantiates that IGMP Join (x,G) state for that [ES, BD], it instantiates that IGMP Join (x,G) state -
state - i.e., IGMP Join (x, G) state is the union of local IGMP Join i.e., IGMP Join (x, G) state is the union of local IGMP Join (x, G)
(x, G) state and installed IGMP Join Synch route. If the DF is not state and installed IGMP Join Synch route. If the DF is not currently
currently advertising (originating) a SMET route for that (x, G) advertising (originating) a SMET route for that (x, G) group in that
group in that [EVI, BD], it does so now. BD, it does 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, EVI, BD], it withdraws its BGP IGMP Join Synch state for that [ES, BD], it withdraws its BGP IGMP Join Synch route
route for that [ES, EVI, BD]. 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 removes that route. When a PE Join Synch route from another PE it removes that route. When a PE
has no local IGMP Join (x, G) state and it has no installed IGMP Join has no local IGMP Join (x, G) state and it has no installed IGMP Join
Synch routes, it removes IGMP Join (x, G) state for that [ES, EVI, Synch routes, it removes IGMP Join (x, G) state for that [ES, BD].
BD]. If the DF no longer has IGMP Join (x, G) state for that [EVI, If the DF no longer has IGMP Join (x, G) state for that BD on any ES
BD] on any ES for which it is DF, it withdraws its SMET route for for which it is DF, it withdraws its SMET route for that (x, G) group
that (x, G) group in that [EVI, BD]. in that BD.
I.e., A PE advertises an SMET route for that (x, G) group in that I.e., A PE advertises an SMET route for that (x, G) group in that BD
[EVI, BD] when it has IGMP Join (x, G) state in that [EVI, BD] on at when it has IGMP Join (x, G) state in that BD on at least one ES for
least one ES for which it is DF and it withdraws that SMET route when which it is DF and it withdraws that SMET route when it does not have
it does not have IGMP Join (x, G) state in that [EVI, BD] on any ES IGMP Join (x, G) state in that BD on any ES for which it is DF.
for which it is DF.
4.2 Local IGMP Leave Group Synchronization 4.2 Local IGMP 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 [EVI, BD] to which for (x, G) from the attached CE, it determines the BD to which the
the IGMPv2 Leave Group belongs. Regardless of whether it has IGMP IGMPv2 Leave Group belongs. Regardless of whether it has IGMP Join
Join (x, G) state for that [ES, EVI, BD], it initiates the (x, G) (x, G) state for that [ES, BD], it initiates the (x, G) leave group
leave group synchronization procedure, which consists of the synchronization procedure, which consists of the following steps:
following steps:
1) It computes the Maximum Response Time, which is the duration of 1) It computes the Maximum Response Time, which is the duration of
(x, G) leave group synchronization procedure. This is the product of (x, G) leave group synchronization procedure. This is the product of
two locally configured values, Last Member Query Count and Last two locally configured values, Last Member Query Count and Last
Member Query Interval (described in Section 3 of [RFC2236]), plus Member Query Interval (described in Section 3 of [RFC2236]), plus
delta, the time it takes for a BGP advertisement to propagate between delta, the time it takes for a BGP advertisement to propagate between
the PEs attached to the multihomed ES (delta is a consistently the PEs attached to the multihomed ES (delta is a consistently
configured value on all PEs attached to the multihomed ES). configured value on all 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 for
(x, G) do not change the value of a currently running Maximum (x, G) do not change the value of a currently running Maximum
Response Time timer and are ignored by the PE. Response Time timer and are ignored by the PE.
3) It initiates the Last Member Query procedure described in Section 3) It initiates the Last Member Query procedure described in Section
3 of [RFC2236]; viz, it sends a number of Group-Specific Query (x, G) 3 of [RFC2236]; viz, it sends a number of Group-Specific Query (x, G)
messages (Last Member Query Count) at a fixed interval (Last Member messages (Last Member Query Count) at a fixed interval (Last Member
Query Interval) to the attached CE. Query Interval) to the attached CE.
4) It advertises an IGMP Leave Synch route for that that [ES, EVI, 4) It advertises an IGMP Leave Synch route for that that [ES, BD].
BD]. This route notifies the other multihomed PEs attached to the This route notifies the other multihomed PEs attached to the given
given multihomed ES that it has initiated an (x, G) leave group multihomed ES that it has initiated an (x, G) leave group
synchronization procedure; i.e., it carries the ES-Import RT for the synchronization procedure; i.e., it carries the ES-Import RT for the
ES on which the IGMP Leave Group was received. It also contains the ES on which the IGMP Leave Group was received. It also contains the
Maximum Response Time and the Leave Group Synchronization Procedure Maximum Response Time and the Leave Group Synchronization Procedure
Sequence number. The latter identifies the specific (x, G) leave Sequence number. The latter identifies the specific (x, G) leave
group synchronization procedure initiated by the advertising PE, group synchronization procedure initiated by the advertising PE,
which increments the value whenever it initiates a procedure. 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.
4.2.1 Remote Leave Group Synchronization 4.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, EVI, 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.
4.2.2 Common Leave Group Synchronization 4.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, EVI, 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, EVI, doesn't already have local IGMP Join (x, G) state for that [ES, BD],
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) currently advertising (originating) a SMET route for that (x, G)
group in that [EVI, BD], it does so now. 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 Join (x, G)
state for that [EVI, BD] on that ES, it instantiates that IGMP Join state for that BD on that ES, it instantiates that IGMP Join (x,G)
(x,G) state. If the DF is not currently advertising (originating) a state. If the DF is not currently advertising (originating) a SMET
SMET route for that (x, G) group in that [EVI, 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, EVI, BD]. If the DF it removes IGMP Join (x, G) state for that [ES, BD]. If the DF no
no longer has IGMP Join (x, G) state for that [EVI, BD] on any ES for longer has IGMP Join (x, G) state for that BD on any ES for which it
which it is DF, it withdraws its SMET route for that (x, G) group in is DF, it withdraws its SMET route for that (x, G) group in that BD.
that [EVI, BD].
5 Single-Active Multi-Homing 5 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 multihomed ES operating in Single-Active redundancy attached to a multihomed ES operating in Single-Active redundancy
mode should also coordinate IGMP Join (x, G) state. In this case all mode 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- IGMP Join messages are received by the DF and distributed to the non-
DF PEs using the procedures described above. DF PEs using the procedures described above.
6 Discovery of Selective P-Tunnel Types 6 Selective Multicast Procedures for IR tunnels
To allow an ingress PE that supports IGMP proxy procedures and SMET
route to properly assign a selective P-tunnel supported by the
receiving PEs, the ingress PE needs to discovery the types of
selective P-tunnels supported by the receiving PEs and select the
preferred tunnel type among the ones that it has in common with the
receiving PEs.
In order to support such discovery mechanism, the Multicast Flags
extended community defined in section 7.2 is used. Each PE that
supports different types of P-tunnels, marks the corresponding bits
and advertise this extended community along with its IMET route.
Therefore, the ingress PE can discover types of P-tunnels supported
by the receiving PEs. If the ingress PE does not receive this
extended community along with an IMET route for a given EVI, it
assumes the only P-tunnel type supported by the egress PE, is ingress
replication.
If besides ingress-replication P-tunnel type, there is no other P-
tunnel types in common among the participant PEs for an EVI, then the
ingress PE MUST use ingress-replication P-tunnel type.
If besides ingress-replication P-tunnel type, there is one ore more
P-tunnel types in common among the participant PEs for an EVI, then
the ingress PE can choose the P-tunnel type that it prefers.
If besides ingress-replication P-tunnel type, there is no other P-
tunnel types in common among the participant PEs for an EVI, then the
ingress PE MAY choose several different P-tunnel types where the
union of them covers the tunnel types supported by the participant
PEs for that EVI. This implies that the ingress PE replicates the
multicast traffic into different P-tunnels - i.e., to replicate the
multicast traffic onto P2MP mLDP P-tunnel and ingress-replication P-
tunnel.
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 [EVI, 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 Inclusive
Multicast Tag route for the [EVI, BD] without the "IGMP Proxy Multicast Tag route for the BD without the "IGMP Proxy Support" flag.
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 [EVI, BD]. This and having listeners for that (x, G) group in that BD. This set
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 [EVI, BD] with the "IGMP Proxy Support" flag and that route for the BD with the "IGMP Proxy Support" flag and that has
has advertised an SMET route for that (x, G) group in that [EVI, BD]. advertised an SMET route for that (x, G) group in that BD.
If an ingress PE's Selective P-Tunnel for a given [EVI, BD] uses P2MP If an ingress PE's Selective P-Tunnel for a given BD uses P2MP and
and all of the PEs in the [EVI, BD] support that tunnel type and all of the PEs in the BD support that tunnel type and IGMP, then for
IGMP, then for a given (x, G) group in a given [EVI, BD] it sends (x, a given (x, G) group in a given BD it sends (x, G) traffic using the
G) traffic using the Selective P-Tunnel for that (x, G) group in that Selective P-Tunnel for that (x, G) group in that BD. This tunnel
[EVI, BD]. This tunnel will include those PEs that have advertised will include those PEs that have advertised an SMET route for that
an SMET route for that (x, G) group on that [EVI, BD] (for Selective (x, G) group on that BD (for Selective P-tunnel) but it may include
P-tunnel) but it may include other PEs as well (for Aggregate other PEs as well (for Aggregate Selective P-tunnel).
Selective P-tunnel).
7 BGP Encoding 7 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. This route type is known as: membership reports. This route type is known as:
+ 6 - Selective Multicast Ethernet Tag Route + 6 - Selective Multicast Ethernet Tag Route
+ 7 - IGMP Join Synch Route + 7 - IGMP Join Synch Route
+ 8 - IGMP Leave Synch Route + 8 - IGMP Leave Synch Route
skipping to change at page 16, line 33 skipping to change at page 17, line 10
This EVPN route type is used to carry tenant IGMP multicast group This EVPN route type is used to carry tenant IGMP multicast group
information. The flag field assists in distributing IGMP membership information. The flag field assists in distributing IGMP membership
interest of a given host/VM for a given multicast route. The version interest of a given host/VM for a given multicast route. The version
bits help associate IGMP version of receivers participating within bits help associate IGMP version of receivers participating within
the EVPN domain. the EVPN domain.
The include/exclude bit helps in creating filters for a given The include/exclude bit helps in creating filters for a given
multicast route. multicast route.
7.1.1 Constructing the Selective Multicast route 7.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 route. Support for this route type is optional. Multicast Ethernet Tag (SMET) route. Support for this route type is
optional.
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 EVI is VLAN-Based or VLAN Bundle service - set to 0
EVI is VLAN-Aware Bundle service without translation - set to EVI is VLAN-Aware Bundle service without translation - set to
the customer VID for the [EVI, BD] the customer VID for that BD
EVI is VLAN-Aware Bundle service with translation - set to the EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID for the [EVI, BD] 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. In case of a (*, G) Join, the Multicast Source address in bits. In case of a (*, G) Join, the Multicast Source
Length is set to 0. 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. address in bits.
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. It should be noted that using the "Originating Router's the prefix. It should be noted that using the "Originating Router's
IP address" field to get the PE IP address, needed for building IP address" field is needed for local-bias procedures and may be
multicast underlay tunnels, allows for inter-AS operations where BGP needed for building inter-AS multicast underlay tunnels where BGP
next hop can get over written. next hop can get over written.
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.
IGMP protocol is used to receive group membership information from IGMP protocol is used to receive group membership information from
hosts/VMs by TORs. Upon receiving the hosts/VMs expression of hosts/VMs by TORs. Upon receiving the hosts/VMs expression of
interest of a particular group membership, this information is then interest of a particular group membership, this information is then
forwarded using Ethernet Multicast Source Group Route NLRI. The NLRI forwarded using Ethernet Multicast Source Group Route NLRI. The NLRI
also keeps track of receiver's IGMP protocol version and any "source also keeps track of receiver's IGMP protocol version and any "source
filtering" for a given group membership. All EVPN Selective Multicast filtering" for a given group membership. All EVPN SMET routes are
Group routes are announced with per-EVI Route Target extended announced with per-EVI Route Target extended communities.
communities.
7.2 IGMP Join Synch Route 7.2 IGMP 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 [EVI, BD] between the PEs attached to a given ES operating in a given BD between the PEs attached to a given ES operating in All-
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) |
skipping to change at page 19, line 28 skipping to change at page 19, line 47
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 EVI is VLAN-Based or VLAN Bundle service - set to 0
EVI is VLAN-Aware Bundle service without translation - set to EVI is VLAN-Aware Bundle service without translation - set to
the customer VID for the [EVI, BD] the customer VID for the BD
EVI is VLAN-Aware Bundle service with translation - set to the EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID for the [EVI, BD] 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. In case of a (*, G) Join, the Multicast Source address in bits. In case of a (*, G) Join, the Multicast Source
Length is set to 0. 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. address in bits.
skipping to change at page 20, line 10 skipping to change at page 20, line 28
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.
7.3 IGMP Leave Synch Route This EVPN route type is used to coordinate 7.3 IGMP Leave Synch Route This EVPN route type is used to coordinate
IGMP Leave Group (x,G) state for a given [EVI, BD] between the PEs IGMP Leave Group (x,G) state for a given BD between the PEs attached
attached to a given ES operating in All-Active (or Single-Active) to a given ES operating in All-Active (or Single-Active) redundancy
redundancy mode and it consists of following: mode and it consists of 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) |
+--------------------------------------------------+ +--------------------------------------------------+
skipping to change at page 21, line 47 skipping to change at page 22, line 33
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 EVI is VLAN-Based or VLAN Bundle service - set to 0
EVI is VLAN-Aware Bundle service without translation - set to EVI is VLAN-Aware Bundle service without translation - set to
the customer VID for the [EVI, BD] the customer VID for the BD
EVI is VLAN-Aware Bundle service with translation - set to the EVI is VLAN-Aware Bundle service with translation - set to the
normalized Ethernet Tag ID for the [EVI, BD] 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. In case of a (*, G) Join, the Multicast Source address in bits. In case of a (*, G) Join, the Multicast Source
Length is set to 0. 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. address in bits.
skipping to change at page 22, line 34 skipping to change at page 23, line 22
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.
7.4 Multicast Flags Extended Community 7.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 [EVI, BD] MUST attach this A PE that supports IGMP proxy on a given BD MUST attach this extended
extended community to the Inclusive Multicast Ethernet Tag (IMET) community to the Inclusive Multicast Ethernet Tag (IMET) route it
route it advertises for that [EVI, BD] and it Must set the IGMP Proxy advertises for that BD and it Must set the IGMP Proxy Support flag to
Support flag to 1. Note that an [RFC7432] compliant PE will not 1. Note that an [RFC7432] compliant PE will not advertise this
advertise this extended community so its absence indicates that the extended community so its absence indicates that the advertising PE
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 doesn't 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) | | Type=0x06 | Sub-Type=TBD | Flags (2 Octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved=0 | Tunnel Type | | Reserved=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The low-order bit of the Flags is defined as the "IGMP Proxy Support" The low-order bit of the Flags is defined as the "IGMP Proxy Support"
bit. A value of 1 means that the PE supports IGMP Proxy as defined bit. A value of 1 means that the PE supports IGMP Proxy as defined
in this document, and a value of 0 means that the PE does not support in this document, and a value of 0 means that the PE does not support
IGMP proxy. The absence of this extended community also means that IGMP proxy. The absence of this extended community also means that
the PE doesn not support IGMP proxy. the PE doesn not support IGMP proxy.
Tunnel type field is a 2-octet field with the bits set according to
the following:
LSB = 1, indicates the support for RSVP-TE P2MP LSP
2nd LSB = 1, indicates the support for P2MP LSP
3rd LSB = 1, indicates the support for PIM-SSM
4th LSB = 1, indicates the support for PIM-SM
5th LSB = 1, indicates the support for BIDIR-PIM
6th LSB = 1, indicates the support for mLDP MP2MP LSP
7.5 EVI-RT Extended Community 7.5 EVI-RT Extended Community
The 'EVI-RT' extended community is a new EVPN extended community. The 'EVI-RT' extended community is a new EVPN extended community.
EVPN extended communities are transitive extended communities with a EVPN extended communities are transitive extended communities with a
Type field value of 6. IANA will assign a Sub-Type from the 'EVPN Type field value of 6. IANA will assign a Sub-Type from the 'EVPN
Extended Community Sub-Types' registry. Extended Community Sub-Types' registry.
A PE that supports IGMP synch procedures for All-Active (or Single- A PE that supports IGMP synch procedures for All-Active (or Single-
Active) multi-homed ES, MUST attach this extended community to either Active) multi-homed ES, MUST attach this extended community to either
IGMP Join Synch route (sec 7.2) or IGMP Leave Synch route (sec 7.3). IGMP Join Synch route (sec 7.2) or IGMP Leave Synch route (sec 7.3).
skipping to change at page 24, line 21 skipping to change at page 25, line 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 Acknowledgement 8 Acknowledgement
9 Security Considerations 9 Security Considerations
Same security considerations as [RFC7432]. Same security considerations as [RFC7432].
10 IANA Considerations 10 IANA Considerations
Allocation of Extended Community Type and Sub-Type for EVPN. IANA has allocated the following EVPN Extended Community sub-types in
[RFC7153], and this document is the only reference for them.
0x09 Multicast Flags Extended Community [this document] 0x0A
EVI-RT Extended Community [this document]
This document requests the following EVPN route types from IANA
registry.
+ 6 - Selective Multicast Ethernet Tag Route + 7 - IGMP Join
Synch Route + 8 - IGMP Leave Synch Route
11 References 11 References
11.1 Normative References 11.1 Normative References
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4360] S. Sangli et al, ""BGP Extended Communities Attribute", [RFC4360] S. Sangli et al, ""BGP Extended Communities Attribute",
February, 2006. February, 2006.
skipping to change at page 25, line 10 skipping to change at page 26, line 4
05.txt, work in progress, October, 2013. 05.txt, work in progress, October, 2013.
[RFC4541] Christensen, M., Kimball, K., and F. Solensky, [RFC4541] Christensen, M., Kimball, K., and F. Solensky,
"Considerations for IGMP and MLD snooping PEs", RFC 4541, 2006. "Considerations for IGMP and MLD snooping PEs", RFC 4541, 2006.
Authors' Addresses Authors' Addresses
Ali Sajassi Ali Sajassi
Cisco Cisco
Email: sajassi@cisco.com Email: sajassi@cisco.com
Samir Thoria Samir Thoria
Cisco Cisco
Email: sthoria@cisco.com Email: sthoria@cisco.com
Keyur Patel Keyur Patel
Cisco Arrcus
Email: keyur@arrcus.com Email: keyur@arrcus.com
Derek Yeung Derek Yeung
Cisco Arrcus
Email: derek@arrcus.com Email: derek@arrcus.com
John Drake John Drake
Juniper Juniper
Email: jdrake@juniper.net Email: jdrake@juniper.net
Wen Lin Wen Lin
Juniper Juniper
Email: wlin@juniper.net Email: wlin@juniper.net
 End of changes. 70 change blocks. 
275 lines changed or deleted 297 lines changed or added

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