1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
|
Internet Engineering Task Force (IETF) A. Sajassi
Request for Comments: 9251 S. Thoria
Category: Standards Track M. Mishra
ISSN: 2070-1721 Cisco Systems
K. Patel
Arrcus
J. Drake
W. Lin
Juniper Networks
June 2022
Internet Group Management Protocol (IGMP) and Multicast Listener
Discovery (MLD) Proxies for Ethernet VPN (EVPN)
Abstract
This document describes how to support endpoints running the Internet
Group Management Protocol (IGMP) or Multicast Listener Discovery
(MLD) efficiently for the multicast services over an Ethernet VPN
(EVPN) network by incorporating IGMP/MLD Proxy procedures on EVPN
Provider Edges (PEs).
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9251.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Revised BSD License text as described in Section 4.e of the
Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents
1. Introduction
2. Specification of Requirements
3. Terminology
4. IGMP/MLD Proxy
4.1. Proxy Reporting
4.1.1. IGMP/MLD Membership Report Advertisement in BGP
4.1.2. IGMP/MLD Leave Group Advertisement in BGP
4.2. Proxy Querier
5. Operation
5.1. PE with Only Attached Hosts for a Given Subnet
5.2. PE with a Mix of Attached Hosts and a Multicast Source
5.3. PE with a Mix of Attached Hosts, a Multicast Source, and a
Router
6. All-Active Multihoming
6.1. Local IGMP/MLD Membership Report Synchronization
6.2. Local IGMP/MLD Leave Group Synchronization
6.2.1. Remote Leave Group Synchronization
6.2.2. Common Leave Group Synchronization
6.3. Mass Withdraw of the Multicast Membership Report Synch
Route in Case of Failure
7. Single-Active Multihoming
8. Selective Multicast Procedures for IR Tunnels
9. BGP Encoding
9.1. Selective Multicast Ethernet Tag Route
9.1.1. Constructing the Selective Multicast Ethernet Tag Route
9.1.2. Reconstructing IGMP/MLD Membership Reports from the
Selective Multicast Route
9.1.3. Default Selective Multicast Route
9.2. Multicast Membership Report Synch Route
9.2.1. Constructing the Multicast Membership Report Synch
Route
9.2.2. Reconstructing IGMP/MLD Membership Reports from a
Multicast Membership Report Synch Route
9.3. Multicast Leave Synch Route
9.3.1. Constructing the Multicast Leave Synch Route
9.3.2. Reconstructing IGMP/MLD Leave from a Multicast Leave
Synch Route
9.4. Multicast Flags Extended Community
9.5. EVI-RT Extended Community
9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs
9.7. BGP Error Handling
10. IGMP Version 1 Membership Report
11. Security Considerations
12. IANA Considerations
12.1. EVPN Extended Community Sub-Types Registration
12.2. EVPN Route Types Registration
12.3. Multicast Flags Extended Community Registry
13. References
13.1. Normative References
13.2. Informative References
Acknowledgements
Contributors
Authors' Addresses
1. Introduction
In data center (DC) applications, a point of delivery (POD) can
consist of a collection of servers supported by several top-of-rack
(ToR) and spine switches. This collection of servers and switches
are self-contained and may have their own control protocol for intra-
POD communication and orchestration. However, EVPN is used as a
standard way of inter-POD communication for both intra-DC and inter-
DC. A subnet can span across multiple PODs and DCs. EVPN provides a
robust multi-tenant solution with extensive multihoming capabilities
to stretch a subnet (VLAN) across multiple PODs and DCs. There can
be many hosts (several hundreds) attached to a subnet that is
stretched across several PODs and DCs.
These hosts express their interests in multicast groups on a given
subnet/VLAN by sending IGMP/MLD Membership Reports for their
interested multicast group(s). Furthermore, an IGMP/MLD router
periodically sends Membership Queries to find out if there are hosts
on that subnet that are still interested in receiving multicast
traffic for that group. The IGMP/MLD Proxy solution described in
this document accomplishes three objectives:
1. Reduce flooding of IGMP/MLD messages: Just like the ARP/Neighbor
Discovery (ND) suppression mechanism in EVPN to reduce the
flooding of ARP messages over EVPN, it is also desired to have a
mechanism to reduce the flooding of IGMP/MLD messages (both
Queries and Membership Reports) in EVPN.
2. Distributed anycast multicast proxy: It is desirable for the EVPN
network to act as a distributed anycast multicast router with
respect to IGMP/MLD Proxy function for all the hosts attached to
that subnet.
3. Selective multicast: This describes forwarding multicast traffic
over the EVPN network such that it only gets forwarded to the PEs
that have interests in the multicast group(s). This document
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 Point-to-
Multipoint (P2MP) tunnels can be found in [EVPN-BUM].
The first two objectives are achieved by using the IGMP/MLD Proxy on
the PE. The third objective is achieved by setting up a multicast
tunnel among only the PEs that have interest in the multicast
group(s) based on the trigger from IGMP/MLD Proxy processes. The
proposed solutions for each of these objectives are discussed in the
following sections.
2. Specification of Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", 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.
3. Terminology
AC: Attachment Circuit
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.
BD: Broadcast Domain. As per [RFC7432], an EVPN instance (EVI)
consists of a single BD or multiple BDs. In case of a VLAN bundle
and a VLAN-aware bundle service model, an EVI contains multiple
BDs. Also, in this document, BD and subnet are equivalent terms.
DC: Data Center
ES: Ethernet segment. This is when a customer site (device or
network) is connected to one or more PEs via a set of Ethernet
links.
ESI: Ethernet Segment Identifier. This is a unique non-zero
identifier that identifies an Ethernet segment.
Ethernet Tag: It identifies a particular broadcast domain, e.g., a
VLAN. An EVPN instance consists of one or more broadcast domains.
EVI: EVPN Instance. This spans the Provider Edge (PE) devices
participating in that EVPN.
EVPN: Ethernet Virtual Private Network
IGMP: Internet Group Management Protocol
IR: Ingress Replication
MLD: Multicast Listener Discovery
OIF: Outgoing Interface for multicast. It can be a physical
interface, virtual interface, or tunnel.
PE: Provider Edge
POD: Point of Delivery
S-PMSI: Selective P-Multicast Service Interface. This is a
conceptual interface for a PE to send customer multicast traffic
to some of the PEs in the same VPN.
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.
SMET: Selective Multicast Ethernet Tag
ToR: Top of Rack
This document also assumes familiarity with the terminology of
[RFC7432], [RFC3376], and [RFC2236]. When this document uses the
term "IGMP Membership Report", the text equally applies to the MLD
Membership Report. Similarly, text for IGMPv2 applies to MLDv1, and
text for IGMPv3 applies to MLDv2. IGMP/MLD version encoding in the
BGP update is stated in Section 9.
It is important to note that when there is text considering whether a
PE indicates support for IGMP proxying, the corresponding behavior
has a natural analog for indicating support for MLD proxying, and the
analogous requirements apply as well.
4. IGMP/MLD Proxy
The IGMP Proxy mechanism is used to reduce the flooding of IGMP
messages over an EVPN network, similar to the ARP proxy used in
reducing the flooding of ARP messages over EVPN. It also provides a
triggering mechanism for the PEs to set up their underlay multicast
tunnels. The IGMP Proxy mechanism consists of two components:
1. Proxy for IGMP Membership Reports
2. Proxy for IGMP Membership Queries
The goal of IGMP and MLD proxying is to make the EVPN behave
seamlessly for the tenant systems with respect to multicast
operations while using a more efficient delivery system for signaling
and delivery across the VPN. Accordingly, group state must be
tracked synchronously among the PEs serving the VPN, with join and
leave events propagated to the peer PEs and each PE tracking the
state of each of its peer PEs with respect to whether there are
locally attached group members (and in some cases, senders), what
version(s) of IGMP/MLD are in use for those locally attached group
members, etc. In order to perform this translation, each PE acts as
an IGMP router for the locally attached domain, maintains the
requisite state on locally attached nodes, sends periodic Membership
Queries, etc. The role of EVPN Selective Multicast Ethernet Tag
(SMET) route propagation is to ensure that each PE's local state is
propagated to the other PEs so that they share a consistent view of
the overall IGMP Membership Request and Leave Group state. It is
important to note that the need to keep such local state can be
triggered by either local IGMP traffic or BGP EVPN signaling. In
most cases, a local IGMP event will need to be signaled over EVPN,
though state initiated by received EVPN traffic will not always need
to be relayed to the locally attached domain.
4.1. Proxy Reporting
When IGMP is used between hosts and their first hop EVPN router (EVPN
PE), proxy reporting is used by the EVPN PE to summarize (when
possible) reports received from downstream hosts and propagate them
in BGP to other PEs that are interested in the information. This is
done by terminating the IGMP Membership Reports in the first hop PE
and translating and exchanging the relevant information among EVPN
BGP speakers. The information is again translated back to an IGMP
message at the recipient EVPN speaker. Thus, it helps create an IGMP
overlay subnet using BGP. In order to facilitate such an overlay,
this document also defines a new EVPN route type Network Layer
Reachability Information (NLRI) and the EVPN SMET route, along with
its procedures to help exchange and register IGMP multicast groups;
see Section 9.
4.1.1. IGMP/MLD Membership Report Advertisement in BGP
When a PE wants to advertise an IGMP Membership Report using the BGP
EVPN route, it follows the proceeding rules (BGP encoding is stated
in Section 9). The first four rules are applicable to the originator
PE, and the last three rules are applicable to remote PE processing
SMET routes:
Processing at the BGP route originator:
1. When the first hop PE receives IGMP Membership Reports belonging
to the same IGMP version from different attached hosts for the
same (*,G) or (S,G), it SHOULD send a single BGP message
corresponding to the very first IGMP Membership Request (BGP
update as soon as possible) for that (*,G) or (S,G). This is
because BGP is a stateful protocol, and no further transmission
of the same report is needed. If the IGMP Membership Request is
for (*,G), then the Multicast Group Address MUST be sent along
with the corresponding version flag (v2 or v3) set. In case of
IGMPv3, the exclude flag MUST also be set to indicate that no
source IP address must be excluded (include all sources "*"). If
the IGMP Membership Report is for (S,G), then besides setting the
Multicast Group Address along with the v3 flag, the source IP
address and the Include/Exclude (IE) flag MUST be set. It should
be noted that, when advertising the EVPN route for (S,G), the
only valid version flag is v3 (v2 flags MUST be set to 0).
2. When the first hop PE receives an IGMPv3 Membership Report for
(S,G) on a given BD, it MUST advertise the corresponding EVPN
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 Membership
Report first for (*,G) and then later receives an IGMP version-Y
Membership Report for the same (*,G), then it MUST re-advertise
the same EVPN SMET route with the flag for version-Y set in
addition to any previously set version flag(s). In other words,
the first hop PE MUST NOT withdraw the EVPN route before sending
the new route because the Flags field is not part of BGP route
key processing.
4. When the first hop PE receives an IGMP version-X Membership
Report first for (*,G) and then later receives an IGMPv3
Membership Report for the same Multicast Group Address but for a
specific source address S, then the PE MUST advertise a new EVPN
SMET route with the v3 flag set (and v2 reset). The IE flag also
needs to be set accordingly. Since the source IP address is used
as part of BGP route key processing, it is considered to be a new
BGP route advertisement. When different versions of IGMP
Membership Report are received, the final state MUST be as per
Section 5.1 of [RFC3376]. At the end of the route processing,
local and remote group record state MUST be as per Section 5.1 of
[RFC3376].
Processing at the BGP route receiver:
1. When a PE receives an EVPN SMET route with more than one version
flag set, it will generate the corresponding IGMP Report for
(*,G) for each version specified in the Flags field. With
multiple version flags set, there must not be a source IP address
in the received EVPN route. If there is, then an error SHOULD be
logged. If the v3 flag is set (in addition to v2), then the IE
flag MUST indicate "exclude". If not, then an error SHOULD be
logged. The PE MUST generate an IGMP Membership Report for that
(*,G) and each IGMP version in the version flag.
2. When a PE receives a list of EVPN SMET NLRIs in its BGP update
message, each with a different source IP address and the same
Multicast Group Address, and the version flag is set to v3, then
the PE generates an IGMPv3 Membership Report with a record
corresponding to the list of source IP addresses and the group
address, along with the proper indication of inclusion/exclusion.
3. Upon receiving an EVPN SMET route(s) and before generating the
corresponding IGMP Membership Request(s), the PE checks to see
whether it has a Customer Edge (CE) multicast router for that BD
on any of its ESs . The PE provides such a check by listening for
PIM Hello messages on that AC, i.e., (ES,BD). If the PE does
have the router's ACs, then the generated IGMP Membership
Request(s) is sent to those ACs. If it doesn't have any of the
router's ACs, 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 specific multicast group using IGMPv2, i.e., if the PE
does not receive a Membership Report from the host, it will not
forward multicast data to it. Per [RFC4541] , when an IGMPv2
host receives a Membership Report for a group address that it
intends to join, the host will suppress its own Membership Report
for the same group, and if the PE does not receive an IGMP
Membership Report from the host, it will not forward multicast
data to it. In other words, an IGMPv2 Membership Report MUST NOT
be sent on an AC that does not lead to a CE multicast router.
This message suppression is a requirement for IGMPv2 hosts. This
is not a problem for hosts running IGMPv3, because there is no
suppression of IGMP Membership Reports.
4.1.2. IGMP/MLD Leave Group Advertisement in BGP
When a PE wants to withdraw an EVPN SMET route corresponding to an
IGMPv2 Leave Group or IGMPv3 "Leave" equivalent message, it follows
the rules below. The first rule defines the procedure at the
originator PE, and the last two rules talk about procedures at the
remote PE:
Processing at the BGP route originator:
1. 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 host is the last host that is interested in this
multicast group by sending a query for the multicast group. If
the host was indeed the last one (i.e., no responses are received
for the query), then the PE MUST re-advertise the EVPN SMET route
with the corresponding version flag reset. If this is the last
version flag to be reset, then instead of re-advertising the EVPN
route with all version flags reset, the PE MUST withdraw the EVPN
route for that (*,G).
Processing at the BGP route receiver:
1. When a PE receives an EVPN SMET route for a given (*,G), it
compares the received version flags from the route with its per-
PE stored version flags. If the PE finds that a version flag
associated with the (*,G) for the remote PE is reset, then the PE
MUST generate IGMP Leave for that (*,G) toward its local
interface (if any), which is attached to the multicast router for
that multicast group. It should be noted that the received EVPN
route MUST have at least one version flag set. If all version
flags are reset, it is an error because the PE should have
received an EVPN route withdraw for the last version flag. An
error MUST be considered as a BGP error, and the PE MUST apply
the "treat-as-withdraw" procedure per [RFC7606].
2. When a PE receives an EVPN SMET route withdraw, it removes the
remote PE from its OIF list for that multicast group, and if
there are no more OIF entries for that multicast group (either
locally or remotely), then the PE MUST stop responding to
Membership Queries from the locally attached router (if any). If
there is a source for that multicast group, the PE stops sending
multicast traffic for that source.
4.2. Proxy Querier
As mentioned in the previous sections, each PE MUST have proxy
querier functionality for the following reasons:
1. to enable the collection of EVPN PEs providing Layer 2 Virtual
Private Network (L2VPN) service to act as a distributed multicast
router with an anycast IP address for all attached hosts in that
subnet
2. to enable suppression of IGMP Membership Reports and Membership
Queries over MPLS/IP core
5. Operation
Consider the EVPN network in Figure 1, where there is an EVPN
instance configured across the PEs (namely PE1, PE2, and PE3). Let's
consider that this EVPN instance consists of a single bridge domain
(single subnet) with all the hosts and sources and the multicast
router connected to this subnet. PE1 only has hosts (host denoted by
Hx) connected to it. PE2 has a mix of hosts and a multicast source.
PE3 has a mix of hosts, a multicast source (source denoted by Sx),
and a multicast router (router denoted by Rx). Furthermore, let's
consider that for (S1,G1), R1 is used as the multicast router. The
following subsections describe the IGMP Proxy operation in different
PEs with regard to whether the locally attached devices for that
subnet are:
* only hosts,
* a mix of hosts and a multicast source, or
* a mix of hosts, a multicast source, and a multicast router.
+--------------+
| |
| |
+----+ | | +----+
H1:(*,G1)v2 ---| | | | | |---- H6(*,G1)v2
H2:(*,G1)v2 ---| PE1| | IP/MPLS | | PE2|---- H7(S2,G2)v3
H3:(*,G1)v3 ---| | | Network | | |---- S2
H4:(S2,G2)v3 --| | | | | |
+----+ | | +----+
| |
+----+ | |
H5:(S1,G1)v3 --| | | |
S1 ---| PE3| | |
R1 ---| | | |
+----+ | |
| |
+--------------+
Figure 1: EVPN Network
5.1. PE with Only Attached Hosts for a Given Subnet
When PE1 receives an IGMPv2 Membership Report from H1, it does not
forward this Membership Report to any of its other ports (for this
subnet) because all these local ports are associated with the hosts.
PE1 sends an EVPN SMET route corresponding to this Membership Report
for (*,G1) and sets the v2 flag. This EVPN route is received by PE2
and PE3, which are the members of the same BD (i.e., same EVI in case
of a VLAN-based service or EVI and VLAN in case of a VLAN-aware
bundle service). PE3 reconstructs the IGMPv2 Membership Report from
this EVPN BGP route and only sends it to the port(s) with multicast
routers attached to it (for that subnet). In this example, PE3 sends
the reconstructed IGMPv2 Membership Report for (*,G1) only to R1.
Furthermore, even though PE2 receives the EVPN BGP route, it does not
send it to any of its ports for that subnet (viz., ports associated
with H6 and H7).
When PE1 receives the second IGMPv2 Membership Report from H2 for the
same multicast group (*,G1), it only adds that port to its OIF list,
but it doesn't send any EVPN BGP routes because there is no change in
information. However, when it receives the IGMPv3 Membership Report
from H3 for the same (*,G1), besides adding the corresponding port to
its OIF list, it re-advertises the previously sent EVPN SMET route
with the v3 and exclude flag set.
Finally, when PE1 receives the IGMPv3 Membership Report from H4 for
(S2,G2), it advertises a new EVPN SMET route corresponding to it.
5.2. PE with a Mix of Attached Hosts and a Multicast Source
The main difference in this case is that when PE2 receives the IGMPv3
Membership Report from H7 for (S2,G2), it advertises it in BGP to
support the source moving, even though PE2 knows that S2 is attached
to its local AC. PE2 adds the port associated with H7 to its OIF
list for (S2,G2). The processing for IGMPv2 received from H6 is the
same as the IGMPv2 Membership Report described in the previous
section.
5.3. PE with a Mix of Attached Hosts, a Multicast Source, and a Router
The main difference in this case relative to the previous two
sections is that IGMPv2/v3 Membership Report messages received
locally need to be sent to the port associated with router R1.
Furthermore, the Membership Reports received via BGP (SMET) need to
be passed to the R1 port but filtered for all other ports.
6. All-Active Multihoming
Because the Link Aggregation Group (LAG) flow hashing algorithm used
by the CE is unknown at the PE, in an All-Active redundancy mode, it
must be assumed that the CE can send a given IGMP message to any one
of the multihomed PEs, either Designated Forwarder (DF) or non-DF,
i.e., different IGMP Membership Request messages can arrive at
different PEs in the redundancy group. Furthermore, their
corresponding Leave messages can arrive at PEs that are different
from the ones that received the Membership Report. Therefore, all
PEs attached to a given Ethernet segment (ES) must coordinate the
IGMP Membership Request and Leave Group (x,G) state, where x may be
either "*" or a particular source S for each BD on that ES. Each PE
has a local copy of that state, and the EVPN signaling serves to
synchronize that state across PEs. This allows the DF for that
(ES,BD) to correctly advertise or withdraw a SMET route for that
(x,G) group in that BD when needed. All-Active multihoming PEs for a
given ES MUST support IGMP synchronization procedures described in
this section if they need to perform IGMP Proxy for hosts connected
to that ES.
6.1. Local IGMP/MLD Membership Report Synchronization
When a PE, either DF or non-DF, receives an IGMP Membership Report
for (x,G) on a given multihomed ES operating in All-Active redundancy
mode, it determines the BD to which the IGMP Membership Report
belongs. If the PE doesn't already have the local IGMP Membership
Request (x,G) state for that BD on that ES, it MUST instantiate that
local IGMP Membership Request (x,G) state and MUST advertise a BGP
IGMP Membership Report Synch route for that (ES,BD). The local IGMP
Membership Request (x,G) state refers to the IGMP Membership Request
(x,G) state that is created as a result of processing an IGMP
Membership Report for (x,G).
The IGMP Membership Report Synch route MUST carry the ES-Import Route
Target (RT) for the ES on 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.
When a PE, either DF or non-DF, receives an IGMP Membership Report
Synch route, it installs that route, and if it doesn't already have
the IGMP Membership Request (x,G) state for that (ES,BD), it MUST
instantiate that IGMP Membership Request (x,G) state, i.e., the IGMP
Membership Request (x,G) state is the union of the local IGMP
Membership Report (x,G) state and the installed IGMP Membership
Report Synch route. If the DF did not already advertise (originate)
a SMET route for that (x,G) group in that BD, it MUST do so now.
When a PE, either DF or non-DF, deletes its local IGMP Membership
Request (x,G) state for that (ES,BD), it MUST withdraw its BGP IGMP
Membership Report Synch route for that (ES,BD).
When a PE, either DF or non-DF, receives the withdrawal of an IGMP
Membership Report Synch route from another PE, it MUST remove that
route. When a PE has no local IGMP Membership Request (x,G) state
and it has no installed IGMP Membership Report Synch routes, it MUST
remove that IGMP Membership Request (x,G) state for that (ES,BD). If
the DF no longer has the IGMP Membership Request (x,G) state for that
BD on any ES for which it is the DF, it MUST withdraw its SMET route
for that (x,G) group in that BD.
In other words, a PE advertises a SMET route for that (x,G) group in
that BD when it has the IGMP Membership Request (x,G) state on at
least one ES for which it is the DF, and it withdraws that SMET route
when it does not have an IGMP Membership Request (x,G) state in that
BD on any ES for which it is the DF.
6.2. Local IGMP/MLD Leave Group Synchronization
When a PE, either DF or non-DF, receives an IGMP Leave Group message
for (x,G) from the attached CE on a given multihomed ES operating in
All-Active redundancy mode, it determines the BD to which the IGMPv2
Leave Group belongs. Regardless of whether it has the IGMP
Membership Request (x,G) state for that (ES,BD), it initiates the
(x,G) leave group synchronization procedure, which consists of the
following steps:
1. It computes the Maximum Response Time, which is the duration of
the (x,G) leave group synchronization procedure. This is the
product of two locally configured values, Last Member Query Count
and Last Member Query Interval (described in Section 3 of
[RFC2236]), plus a delta corresponding to the time it takes for a
BGP advertisement to propagate between the PEs attached to the
multihomed ES (delta is a consistently configured value on all
PEs attached to the multihomed ES).
2. It starts the Maximum Response Time timer. Note that the receipt
of subsequent IGMP Leave Group messages or BGP Leave Synch routes
for (x,G) do not change the value of a currently running Maximum
Response Time timer and are ignored by the PE.
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) messages (Last Member Query Count) at a fixed
interval (Last Member Query Interval) to the attached CE.
4. It advertises an IGMP Leave Synch route for that (ES,BD). This
route notifies the other multihomed PEs attached to the given
multihomed ES that it has initiated an (x,G) leave group
synchronization procedure, i.e., it carries the ES-Import RT for
the ES on which the IGMP Leave Group was received. It also
contains the Maximum Response Time.
5. When the Maximum Response Time timer expires, the PE that has
advertised the IGMP Leave Synch route withdraws it.
6.2.1. Remote Leave Group Synchronization
When a PE, either DF or non-DF, receives an IGMP Leave Synch route,
it installs that route and it starts a timer for (x,G) on the
specified (ES,BD), whose value is set to the Maximum Response Time in
the received IGMP Leave Synch route. Note that the receipt of
subsequent IGMPv2 Leave Group messages or BGP Leave Synch routes for
(x,G) do not change the value of a currently running Maximum Response
Time timer and are ignored by the PE.
6.2.2. Common Leave Group Synchronization
If a PE attached to the multihomed ES receives an IGMP Membership
Report for (x,G) before the Maximum Response Time timer expires, it
advertises a BGP IGMP Membership Report Synch route for that (ES,BD).
If it doesn't already have the local IGMP Membership Request (x,G)
state for that (ES,BD), it instantiates that local IGMP Membership
Request (x,G) state. If the DF is not currently advertising
(originating) a SMET route for that (x,G) group in that BD, it does
so now.
If a PE attached to the multihomed ES receives an IGMP Membership
Report Synch route for (x,G) before the Maximum Response Time timer
expires, it installs that route, and if it doesn't already have the
IGMP Membership Request (x,G) state for that BD on that ES, it
instantiates that IGMP Membership Request (x,G) state. If the DF has
not already advertised (originated) a SMET route for that (x,G) group
in that BD, it does so now.
When the Maximum Response Time timer expires, a PE that has
advertised an IGMP Leave Synch route withdraws it. Any PE attached
to the multihomed ES, which started the Maximum Response Time and has
no local IGMP Membership Request (x,G) state and no installed IGMP
Membership Report Synch routes, removes the IGMP Membership Request
(x,G) state for that (ES,BD). If the DF no longer has the IGMP
Membership Request (x,G) state for that BD on any ES for which it is
the DF, it withdraws its SMET route for that (x,G) group in that BD.
6.3. Mass Withdraw of the Multicast Membership Report Synch Route in
Case of Failure
A PE that has received an IGMP Membership Request would have synced
the IGMP Membership Report by the procedure defined in Section 6.1.
If a PE with the local Membership Report state goes down or the PE to
CE link goes down, it would lead to a mass withdraw of multicast
routes. Remote PEs (PEs where these routes were remote IGMP
Membership Reports) SHOULD NOT remove the state immediately; instead,
General Query SHOULD be generated to refresh the states. There are
several ways to detect failure at a peer, e.g., using IGP next-hop
tracking or ES route withdraw.
7. Single-Active Multihoming
Note that to facilitate state synchronization after failover, the PEs
attached to a multihomed ES operating in Single-Active redundancy
mode SHOULD also coordinate the IGMP Membership Report (x,G) state.
In this case, all IGMP Membership Report messages are received by the
DF and distributed to the non-DF PEs using the procedures described
above.
8. Selective Multicast Procedures for IR Tunnels
If an ingress PE uses ingress replication, then for a given (x,G)
group in a given BD:
1. It sends (x,G) traffic to the set of PEs not supporting IGMP or
MLD Proxies. This set consists of any PE that has advertised an
Inclusive Multicast Ethernet Tag (IMET) route for the BD without
a Multicast Flags Extended Community or with a Multicast Flags
Extended Community in which neither the IGMP Proxy support nor
the MLD Proxy support flags are set.
2. It sends (x,G) traffic to the set of PEs supporting IGMP or MLD
Proxies and has listeners for that (x,G) group in that BD. This
set consists of any PE that has advertised an IMET route for the
BD with a Multicast Flags Extended Community in which the IGMP
Proxy support and/or the MLD Proxy support flags are set and that
has advertised a SMET route for that (x,G) group in that BD.
9. BGP Encoding
This document defines three new BGP EVPN routes to carry IGMP
Membership Reports. The route types are known as:
6 - Selective Multicast Ethernet Tag Route
7 - Multicast Membership Report Synch Route
8 - Multicast Leave Synch Route
The detailed encoding and procedures for these route types are
described in subsequent sections.
9.1. Selective Multicast Ethernet Tag Route
A SMET route-type-specific EVPN NLRI consists of the following:
+---------------------------------------+
| RD (8 octets) |
+---------------------------------------+
| Ethernet Tag ID (4 octets) |
+---------------------------------------+
| Multicast Source Length (1 octet) |
+---------------------------------------+
| Multicast Source Address (variable) |
+---------------------------------------+
| Multicast Group Length (1 octet) |
+---------------------------------------+
| Multicast Group Address (Variable) |
+---------------------------------------+
| Originator Router Length (1 octet) |
+---------------------------------------+
| Originator Router Address (variable) |
+---------------------------------------+
| Flags (1 octet) |
+---------------------------------------+
For the purpose of BGP route key processing, all the fields are
considered to be part of the prefix in the NLRI, except for the
1-octet Flags field. The Flags fields are defined as follows:
0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
* The least significant bit (bit 7) indicates support for IGMP
version 1. Since IGMPv1 is being deprecated, the sender MUST set
it to 0 for IGMP and the receiver MUST ignore it.
* The second least significant bit (bit 6) indicates support for
IGMP version 2.
* The third least significant bit (bit 5) indicates support for IGMP
version 3.
* The fourth least significant bit (bit 4) indicates whether the
(S,G) information carried within the route type is of an Include
Group type (bit value 0) or an Exclude Group type (bit value 1).
The Exclude Group type bit MUST be ignored if bit 5 is not set.
* This EVPN route type is used to carry tenant IGMP multicast group
information. The Flags field assists in distributing the IGMP
Membership Report of a given host for a given multicast route.
The version bits help associate the IGMP version of receivers
participating within the EVPN domain.
* The IE bit helps in creating filters for a given multicast route.
* If the route is used for IPv6 (MLD), then bit 7 indicates support
for MLD version 1. The second least significant bit (bit 6)
indicates support for MLD version 2. Since there is no MLD
version 3, in case of IPv6 routes, the third least significant bit
MUST be 0. In case of IPv6 routes, the fourth least significant
bit MUST be ignored if bit 6 is not set.
* Reserved bits MUST be set to 0 by the sender, and the receiver
MUST ignore the Reserved bits.
9.1.1. Constructing the Selective Multicast Ethernet Tag Route
This section describes the procedures used to construct the SMET
route.
The Route Distinguisher (RD) SHOULD be a Type 1 RD [RFC4364]. The
value field comprises an IP address of the PE (typically, the
loopback address), followed by a number unique to the PE.
The Ethernet Tag ID MUST be set, as per the procedure defined in
[RFC7432].
The Multicast Source Length MUST be set to the length of the
Multicast Source Address in bits. If the Multicast Source Address
field contains an IPv4 address, then the value of the Multicast
Source Length field is 32. If the Multicast Source Address field
contains an IPv6 address, then the value of the Multicast Source
Length field is 128. In case of a (*,G) Membership Report, the
Multicast Source Length is set to 0.
The Multicast Source Address is the source IP address from the IGMP
Membership Report. In case of a (*,G) Membership Report, this field
is not used.
The Multicast Group Length MUST be set to the length of the Multicast
Group Address in bits. If the Multicast Group Address field contains
an IPv4 address, then the value of the Multicast Group Length field
is 32. If the Multicast Group Address field contains an IPv6
address, then the value of the Multicast Group Length field is 128.
The Multicast Group Address is the group address from the IGMP or MLD
Membership Report.
The Originator Router Length is the length of the Originator Router
Address in bits.
The Originator Router Address is the IP address of the router
originating this route. The SMET Originator Router IP address MUST
match that of the IMET (or S-PMSI Authentic Data (AD)) route
originated for the same EVI by the same downstream PE.
The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the
multicast group had the Include/Exclude bit set.
Reserved bits MUST be set to 0. They can be defined by other
documents in the future.
IGMP is used to receive group membership information from hosts by
Top-of-the-Rack (ToR) switches. Upon receiving the host's expression
of interest in a particular group membership, this information is
then forwarded using the SMET route. The NLRI also keeps track of
the receiver's IGMP version and any source filtering for a given
group membership. All EVPN SMET routes are announced per EVI Route
Target extended communities (EVI-RT ECs).
9.1.2. Reconstructing IGMP/MLD Membership Reports from the Selective
Multicast Route
This section describes the procedures used to reconstruct IGMP/MLD
Membership Reports from the SMET route.
* If the Multicast Group Length is 32, the route is translated to
the IGMP Membership Request. If the Multicast Group Length is
128, the route is translated to an MLD Membership Request.
* The Multicast Group Address field is translated to the IGMP/MLD
group address.
* If the Multicast Source Length is set to 0, it is translated to
any source (*). If the Multicast Source Length is non-zero, the
Multicast Source Address field is translated to the IGMP/MLD
source address.
* If flag bit 7 is set, it translates the Membership Report to be
IGMPv1 or MLDv1.
* If flag bit 6 is set, it translates the Membership Report to be
IGMPv2 or MLDv2.
* Flag bit 5 is only valid for the IGMP Membership Report; if it is
set, it translates to the IGMPv3 report.
* If the IE flag is set, it translates to the IGMP/MLD Exclude mode
Membership Report. If the IE flag is not set (0), it translates
to the Include mode Membership Report.
9.1.3. Default Selective Multicast Route
If there is a multicast router connected behind the EVPN domain, the
PE MAY originate a default SMET (*,*) to get all multicast traffic in
the domain.
+--------------+
| |
| |
| | +----+
| | | |---- H1(*,G1)v2
| IP/MPLS | | PE1|---- H2(S2,G2)v3
| Network | | |---- S2
| | | |
| | +----+
| |
+----+ | |
+----+ | | | |
| | S1 ---| PE2| | |
|PIM |----R1 ---| | | |
|ASM | +----+ | |
| | | |
+----+ +--------------+
Figure 2: Multicast Router behind the EVPN Domain
Consider the EVPN network in Figure 2, where there is an EVPN
instance configured across the PEs. Let's consider that PE2 is
connected to multicast router R1 and there is a network running PIM
ASM behind R1. If there are receivers behind the PIM ASM network,
the PIM Join would be forwarded to the PIM Rendezvous Point (RP). If
receivers behind the PIM ASM network are interested in a multicast
flow originated by multicast source S2 (behind PE1), it is necessary
for PE2 to receive multicast traffic. In this case, PE2 MUST
originate a (*,*) SMET route to receive all of the multicast traffic
in the EVPN domain. To generate wildcard (*,*) routes, the procedure
from [RFC6625] MUST be used.
9.2. Multicast Membership Report Synch Route
This EVPN route type is used to coordinate the IGMP Membership Report
(x,G) state for a given BD between the PEs attached to a given ES
operating in All-Active (or Single-Active) redundancy mode, and it
consists of the following:
+--------------------------------------------------+
| RD (8 octets) |
+--------------------------------------------------+
| Ethernet Segment Identifier (10 octets) |
+--------------------------------------------------+
| Ethernet Tag ID (4 octets) |
+--------------------------------------------------+
| Multicast Source Length (1 octet) |
+--------------------------------------------------+
| Multicast Source Address (variable) |
+--------------------------------------------------+
| Multicast Group Length (1 octet) |
+--------------------------------------------------+
| Multicast Group Address (Variable) |
+--------------------------------------------------+
| Originator Router Length (1 octet) |
+--------------------------------------------------+
| Originator Router Address (variable) |
+--------------------------------------------------+
| Flags (1 octet) |
+--------------------------------------------------+
For the purpose of BGP route key processing, all the fields are
considered to be part of the prefix in the NLRI, except for the
1-octet Flags field, whose fields are defined as follows:
0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
* The least significant bit (bit 7) indicates support for IGMP
version 1.
* The second least significant bit (bit 6) indicates support for
IGMP version 2.
* The third least significant bit (bit 5) indicates support for IGMP
version 3.
* The fourth least significant bit (bit 4) indicates whether the (S,
G) information carried within the route type is of an Include
Group type (bit value 0) or an Exclude Group type (bit value 1).
The Exclude Group type bit MUST be ignored if bit 5 is not set.
* Reserved bits MUST be set to 0.
The Flags field assists in distributing the IGMP Membership Report of
a given host for a given multicast route. The version bits help
associate the IGMP version of receivers participating within the EVPN
domain. The Include/Exclude bit helps in creating filters for a
given multicast route.
If the route is being prepared for IPv6 (MLD), then bit 7 indicates
support for MLD version 1. The second least significant bit (bit 6)
indicates support for MLD version 2. Since there is no MLD version
3, in case of the IPv6 route, the third least significant bit MUST be
0. In case of the IPv6 route, the fourth least significant bit MUST
be ignored if bit 6 is not set.
9.2.1. Constructing the Multicast Membership Report Synch Route
This section describes the procedures used to construct the IGMP
Membership Report Synch route. Support for these route types is
optional. If a PE does not support this route, then it MUST NOT
indicate that it supports "IGMP Proxy" in the Multicast Flags
Extended Community for the EVIs corresponding to its multihomed ESs.
An IGMP Membership Report Synch route MUST carry exactly one ES-
Import Route Target extended community, i.e., the one that
corresponds to the ES on which the IGMP Membership Report was
received. It MUST also carry exactly one EVI-RT EC, i.e., the one
that corresponds to the EVI on which the IGMP Membership Report was
received. See Section 9.5 for details on how to encode and construct
the EVI-RT EC.
The RD SHOULD be Type 1 [RFC4364]. The value field comprises an IP
address of the PE (typically, the loopback address), followed by a
number unique to the PE.
The Ethernet Segment Identifier (ESI) MUST be set to the 10-octet
value defined for the ES.
The Ethernet Tag ID MUST be set, as per the procedure defined in
[RFC7432].
The Multicast Source Length MUST be set to the length of the
Multicast Source Address in bits. If the Multicast Source field
contains an IPv4 address, then the value of the Multicast Source
Length field is 32. If the Multicast Source field contains an IPv6
address, then the value of the Multicast Source Length field is 128.
In case of a (*,G) Membership Report, the Multicast Source Length is
set to 0.
The Multicast Source is the source IP address of the IGMP Membership
Report. In case of a (*,G) Membership Report, this field does not
exist.
The Multicast Group Length MUST be set to the length of the Multicast
Group Address in bits. If the Multicast Group field contains an IPv4
address, then the value of the Multicast Group Length field is 32.
If the Multicast Group field contains an IPv6 address, then the value
of the Multicast Group Length field is 128.
The Multicast Group is the group address of the IGMP Membership
Report.
The Originator Router Length is the length of the Originator Router
Address in bits.
The Originator Router Address is the IP address of the router
originating the prefix.
The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the
multicast group had the Include/Exclude bit set.
Reserved bits MUST be set to 0.
9.2.2. Reconstructing IGMP/MLD Membership Reports from a Multicast
Membership Report Synch Route
This section describes the procedures used to reconstruct IGMP/MLD
Membership Reports from the Multicast Membership Report Synch route.
* If the Multicast Group Length is 32, the route is translated to
the IGMP Membership Request. If the Multicast Group Length is
128, the route is translated to an MLD Membership Request.
* The Multicast Group Address field is translated to the IGMP/MLD
group address.
* If the Multicast Source Length is set to 0, it is translated to
any source (*). If the Multicast Source Length is non-zero, the
Multicast Source Address field is translated to the IGMP/MLD
source address.
* If flag bit 7 is set, it translates the Membership Report to be
IGMPv1 or MLDv1.
* If flag bit 6 is set, it translates the Membership Report to be
IGMPv2 or MLDv2.
* Flag bit 5 is only valid for the IGMP Membership Report; if it is
set, it translates to the IGMPv3 report.
* If the IE flag is set, it translates to the IGMP/MLD Exclude mode
Membership Report. If the IE flag is not set (0), it translates
to the Include mode Membership Report.
9.3. Multicast Leave Synch Route
This EVPN route type is used to coordinate the IGMP Leave Group (x,G)
state for a given BD between the PEs attached to a given ES operating
in an All-Active (or Single-Active) redundancy mode, and it consists
of the following:
+--------------------------------------------------+
| RD (8 octets) |
+--------------------------------------------------+
| Ethernet Segment Identifier (10 octets) |
+--------------------------------------------------+
| Ethernet Tag ID (4 octets) |
+--------------------------------------------------+
| Multicast Source Length (1 octet) |
+--------------------------------------------------+
| Multicast Source Address (variable) |
+--------------------------------------------------+
| Multicast Group Length (1 octet) |
+--------------------------------------------------+
| Multicast Group Address (Variable) |
+--------------------------------------------------+
| Originator Router Length (1 octet) |
+--------------------------------------------------+
| Originator Router Address (variable) |
+--------------------------------------------------+
| Reserved (4 octets) |
+--------------------------------------------------+
| Maximum Response Time (1 octet) |
+--------------------------------------------------+
| Flags (1 octet) |
+--------------------------------------------------+
For the purpose of BGP route key processing, all the fields are
considered to be part of the prefix in the NLRI, except for the
Reserved, Maximum Response Time, and 1-octet Flags fields, which are
defined as follows:
0 1 2 3 4 5 6 7
+--+--+--+--+--+--+--+--+
| reserved |IE|v3|v2|v1|
+--+--+--+--+--+--+--+--+
* The least significant bit (bit 7) indicates support for IGMP
version 1.
* The second least significant bit (bit 6) indicates support for
IGMP version 2.
* The third least significant bit (bit 5) indicates support for IGMP
version 3.
* The fourth least significant bit (bit 4) indicates whether the (S,
G) information carried within the route type is of an Include
Group type (bit value 0) or an Exclude Group type (bit value 1).
The Exclude Group type bit MUST be ignored if bit 5 is not set.
* Reserved bits MUST be set to 0. They can be defined by other
documents in the future.
The Flags field assists in distributing the IGMP Membership Report of
a given host for a given multicast route. The version bits help
associate the IGMP version of the receivers participating within the
EVPN domain. The Include/Exclude bit helps in creating filters for a
given multicast route.
If the route is being prepared for IPv6 (MLD), then bit 7 indicates
support for MLD version 1. The second least significant bit (bit 6)
indicates support for MLD version 2. Since there is no MLD version
3, in case of the IPv6 route, the third least significant bit MUST be
0. In case of the IPv6 route, the fourth least significant bit MUST
be ignored if bit 6 is not set.
Reserved bits in the flag MUST be set to 0. They can be defined by
other documents in the future.
9.3.1. Constructing the Multicast Leave Synch Route
This section describes the procedures used to construct the IGMP
Leave Synch route. Support for these route types is optional. If a
PE does not support this route, then it MUST NOT indicate that it
supports "IGMP Proxy" in the Multicast Flags Extended Community for
the EVIs corresponding to its multihomed Ethernet segments.
An IGMP Leave Synch route MUST carry exactly one ES-Import Route
Target extended community, i.e., the one that corresponds to the ES
on which the IGMP Leave was received. It MUST also carry exactly one
EVI-RT EC, i.e., the one that corresponds to the EVI on which the
IGMP Leave was received. See Section 9.5 for details on how to form
the EVI-RT EC.
The RD SHOULD be Type 1 [RFC4364]. The value field comprises an IP
address of the PE (typically, the loopback address), followed by a
number unique to the PE.
The ESI MUST be set to the 10-octet value defined for the ES.
The Ethernet Tag ID MUST be set, as per the procedure defined in
[RFC7432].
The Multicast Source Length MUST be set to the length of the
Multicast Source Address in bits. If the Multicast Source field
contains an IPv4 address, then the value of the Multicast Source
Length field is 32. If the Multicast Source field contains an IPv6
address, then the value of the Multicast Source Length field is 128.
In case of a (*,G) Membership Report, the Multicast Source Length is
set to 0.
The Multicast Source is the source IP address of the IGMP Membership
Report. In case of a (*,G) Membership Report, this field does not
exist.
The Multicast Group Length MUST be set to the length of the Multicast
Group Address in bits. If the Multicast Group field contains an IPv4
address, then the value of the Multicast Group Length field is 32.
If the Multicast Group field contains an IPv6 address, then the value
of the Multicast Group Length field is 128.
The Multicast Group is the group address of the IGMP Membership
Report.
The Originator Router Length is the length of the Originator Router
Address in bits.
The Originator Router Address is the IP address of the router
originating the prefix.
The Reserved field is not part of the route key. The originator MUST
set the Reserved field to 0; the receiver SHOULD ignore it, and if it
needs to be propagated, it MUST propagate it unchanged.
The Maximum Response Time is the value to be used while sending a
query, as defined in [RFC2236].
The Flags field indicates the version of IGMP from which the
Membership Report was received. It also indicates whether the
multicast group had an Include/Exclude bit set.
9.3.2. Reconstructing IGMP/MLD Leave from a Multicast Leave Synch Route
This section describes the procedures used to reconstruct IGMP/MLD
Leave from the Multicast Leave Synch route.
* If the Multicast Group Length is 32, the route is translated to
IGMP Leave. If the Multicast Group Length is 128, the route is
translated to MLD Leave.
* The Multicast Group Address field is translated to an IGMP/MLD
group address.
* If the Multicast Source Length is set to 0, it is translated to
any source (*). If the Multicast Source Length is non-zero, the
Multicast Source Address field is translated to the IGMP/MLD
source address.
* If flag bit 7 is set, it translates the Membership Report to be
IGMPv1 or MLDv1.
* If flag bit 6 is set, it translates the Membership Report to be
IGMPv2 or MLDv2.
* Flag bit 5 is only valid for the IGMP Membership Report; if it is
set, it translates to the IGMPv3 report.
* If the IE flag is set, it translates to the IGMP/MLD Exclude mode
Leave. If the IE flag is not set (0), it translates to the
Include mode Leave.
9.4. Multicast Flags Extended Community
The Multicast Flags Extended Community is a new EVPN Extended
Community. EVPN Extended Communities are transitive extended
communities with a Type Value of 0x06. IANA has assigned 0x09 to
Multicast Flags Extended Community in the "EVPN Extended Community
Sub-Types" subregistry.
A PE that supports IGMP and/or the MLD Proxy on a given BD MUST
attach this extended community to the IMET route it advertises for
that BD, and it MUST set the IGMP and/or MLD Proxy Support flags to
1. Note that a PE compliant with [RFC7432] will not advertise this
extended community, so its absence indicates that the advertising PE
does not support either IGMP or MLD Proxies.
The advertisement of this extended community enables a more efficient
multicast tunnel setup from the source PE specially for ingress
replication, i.e., if an egress PE supports the IGMP Proxy but
doesn't have any interest in a given (x,G), it advertises its IGMP
Proxy capability using this extended community, but it does not
advertise any SMET route for that (x,G). When the source PE (ingress
PE) receives such advertisements from the egress PE, it does not
replicate the multicast traffic to that egress PE; however, it does
replicate the multicast traffic to the egress PEs that don't
advertise such capability, even if they don't have any interests in
that (x,G).
A Multicast Flags Extended Community is encoded as an 8-octet value
as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06 |Sub-Type=0x09 | Flags (2 Octets) |M|I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The low-order (least significant) 2 bits are defined as the "IGMP
Proxy Support" and "MLD Proxy Support" bits (see Section 12.3. The
absence of this extended community also means that the PE does not
support the IGMP Proxy, where:
* The Type is 0x06, as registered with IANA for EVPN Extended
Communities.
* The Sub-Type is 0x09.
* Flags are 2-octet values.
- Bit 15 (shown as I) defines IGMP Proxy Support. The value of 1
for bit 15 means that the PE supports the IGMP Proxy. The
value of 0 for bit 15 means that the PE does not support the
IGMP Proxy.
- Bit 14 (shown as M) defines MLD Proxy Support. The value of 1
for bit 14 means that the PE supports the MLD Proxy. The value
of 0 for bit 14 means that the PE does not support the MLD
Proxy.
- Bits 0 to 13 are reserved for the future. The sender MUST set
it to 0, and the receiver MUST ignore it.
* Reserved bits are set to 0. The sender MUST set it to 0, and the
receiver MUST ignore it.
If a router does not support this specification, it MUST NOT add the
Multicast Flags Extended Community in the BGP route. When a router
receives a BGP update, if both M and I flags are 0, the router MUST
treat this update as malformed. The receiver of such an update MUST
ignore the extended community.
9.5. EVI-RT Extended Community
In EVPN, every EVI is associated with one or more Route Targets.
These RTs serve two functions:
1. Distribution control: RTs control the distribution of the routes.
If a route carries the RT associated with a particular EVI, it
will be distributed to all the PEs on which that EVI exists.
2. EVI identification: Once a route has been received by a
particular PE, the RT is used to identify the EVI to which it
applies.
An IGMP Membership Report Synch or IGMP Leave Synch route is
associated with a particular combination of ES and EVI. These routes
need to be distributed only to PEs that are attached to the
associated ES. Therefore, these routes carry the ES-Import RT for
that ES.
Since an IGMP Membership Report Synch or IGMP Leave Synch route does
not need to be distributed to all the PEs on which the associated EVI
exists, these routes cannot carry the RT associated with that EVI.
Therefore, when such a route arrives at a particular PE, the route's
RTs cannot be used to identify the EVI to which the route applies.
Some other means of associating the route with an EVI must be used.
This document specifies four new ECs that can be used to identify the
EVI with which a route is associated but do not have any effect on
the distribution of the route. These new ECs are known as "Type 0
EVI-RT EC", "Type 1 EVI-RT EC", "Type 2 EVI-RT EC", and "Type 3 EVI-
RT EC".
1. A Type 0 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xA.
2. A Type 1 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xB.
3. A Type 2 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xC.
4. A Type 3 EVI-RT EC is an EVPN EC (type 6) of sub-type 0xD
Each IGMP Membership Report Synch or IGMP Leave Synch route MUST
carry exactly one EVI-RT EC. The EVI-RT EC carried by a particular
route is constructed as follows. Each such route is the result of
having received an IGMP Membership Report or an IGMP Leave message
from a particular BD. The route is said to be associated with that
BD. For each BD, there is a corresponding RT that is used to ensure
that routes "about" that BD are distributed to all PEs attached to
that BD. So suppose a given IGMP Membership Report Synch or Leave
Synch route is associated with a given BD, say BD1, and suppose that
the corresponding RT for BD1 is RT1. Then:
* If RT1 is a Transitive Two-Octet AS-specific EC, then the EVI-RT
EC carried by the route is a Type 0 EVI-RT EC. The value field of
the Type 0 EVI-RT EC is identical to the value field of RT1.
* If RT1 is a Transitive IPv4-Address-specific EC, then the EVI-RT
EC carried by the route is a Type 1 EVI-RT EC. The value field of
the Type 1 EVI-RT EC is identical to the value field of RT1.
* If RT1 is a Transitive Four-Octet AS-specific EC, then the EVI-RT
EC carried by the route is a Type 2 EVI-RT EC. The value field of
the Type 2 EVI-RT EC is identical to the value field of RT1.
* If RT1 is a Transitive IPv6-Address-specific EC, then the EVI-RT
EC carried by the route is a Type 3 EVI-RT EC. The value field of
the Type 3 EVI-RT EC is identical to the value field of RT1.
An IGMP Membership Report Synch or Leave Synch route MUST carry
exactly one EVI-RT EC.
Suppose a PE receives a particular IGMP Membership Report Synch or
IGMP Leave Synch route, say R1, and suppose that R1 carries an ES-
Import RT that is one of the PE's Import RTs. If R1 has no EVI-RT EC
or has more than one EVI-RT EC, the PE MUST apply the "treat-as-
withdraw" procedure per [RFC7606].
Note that an EVI-RT EC is not a Route Target extended community, is
not visible to the RT Constrain mechanism [RFC4684], and is not
intended to influence the propagation of routes by BGP.
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06 | Sub-Type=n | RT associated with EVI |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RT associated with the EVI (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The value of "n" is 0x0A, 0x0B, 0x0C, or 0x0D, corresponding to EVI-
RT types 0, 1, 2, or 3, respectively.
9.6. Rewriting of RT ECs and EVI-RT ECs by ASBRs
There are certain situations in which an ES is attached to a set of
PEs that are not all in the same AS, or not all operated by the same
provider. In this situation, the RT that corresponds to a particular
EVI may be different in each AS. If a route is propagated from AS1
to AS2, an ASBR at the AS1/AS2 border may be configured with a policy
that replaces the EVI RTs for AS1 with the corresponding EVI RTs for
AS2. This is known as RT-rewriting.
If an ASBR is configured to perform RT-rewriting of the EVI RTs in
EVPN routes, it MUST be configured to perform RT-rewriting of the
corresponding EVI-RT extended communities in IGMP Join Synch and IGMP
Leave Synch Routes.
9.7. BGP Error Handling
If a received BGP update contains Flags not in accordance with the
IGMP/MLD version-X expectation, the PE MUST apply the "treat-as-
withdraw" procedure per [RFC7606].
If a received BGP update is malformed such that BGP route keys cannot
be extracted, then the BGP update MUST be considered invalid. The
receiving PE MUST apply the "session reset" procedure per [RFC7606].
10. IGMP Version 1 Membership Report
This document does not provide any detail about IGMPv1 processing.
Implementations are expected to only use IGMPv2 and above for IPv4
and MLDv1 and above for IPv6. IGMPv1 routes are considered invalid,
and the PE MUST apply the "treat-as-withdraw" procedure per
[RFC7606].
11. Security Considerations
This document describes a means to efficiently operate IGMP and MLD
on a subnet constructed across multiple PODs or DCs via an EVPN
solution. The security considerations for the operation of the
underlying EVPN and BGP substrates are described in [RFC7432], and
specific multicast considerations are outlined in [RFC6513] and
[RFC6514]. The EVPN and associated IGMP Proxy provides a single
broadcast domain so the same security considerations of IGMPv2
[RFC2236], IGMPv3 [RFC3376], MLD [RFC2710], or MLDv2 [RFC3810] apply.
12. IANA Considerations
12.1. EVPN Extended Community Sub-Types Registration
IANA has allocated the following codepoints in the "EVPN Extended
Community Sub-Types" subregistry under the "Border Gateway Protocol
(BGP) Extended Communities" registry.
+================+====================================+===========+
| Sub-Type Value | Name | Reference |
+================+====================================+===========+
| 0x09 | Multicast Flags Extended Community | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0A | EVI-RT Type 0 | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0B | EVI-RT Type 1 | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0C | EVI-RT Type 2 | RFC 9251 |
+----------------+------------------------------------+-----------+
| 0x0D | EVI-RT Type 3 | RFC 9251 |
+----------------+------------------------------------+-----------+
Table 1: EVPN Extended Community Sub-Types Subregistry
Allocated Codepoints
12.2. EVPN Route Types Registration
IANA has allocated the following EVPN route types in the "EVPN Route
Types" subregistry.
6 - Selective Multicast Ethernet Tag Route
7 - Multicast Membership Report Synch Route
8 - Multicast Leave Synch Route
12.3. Multicast Flags Extended Community Registry
IANA has created and now maintains a new subregistry called
"Multicast Flags Extended Community" under the "Border Gateway
Protocol (BGP) Extended Communities" registry. The registration
procedure is First Come First Served [RFC8126]. For the 16-bit Flags
field, the bits are numbered 0-15, from high order to low order. The
registry was initialized as follows:
+======+====================+===========+===================+
| Bit | Name | Reference | Change Controller |
+======+====================+===========+===================+
| 0-13 | Unassigned | | |
+------+--------------------+-----------+-------------------+
| 14 | MLD Proxy Support | RFC 9251 | IETF |
+------+--------------------+-----------+-------------------+
| 15 | IGMP Proxy Support | RFC 9251 | IETF |
+------+--------------------+-----------+-------------------+
Table 2: Multicast Flags Extended Community
13. References
13.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2236] Fenner, W., "Internet Group Management Protocol, Version
2", RFC 2236, DOI 10.17487/RFC2236, November 1997,
<https://www.rfc-editor.org/info/rfc2236>.
[RFC2710] Deering, S., Fenner, W., and B. Haberman, "Multicast
Listener Discovery (MLD) for IPv6", RFC 2710,
DOI 10.17487/RFC2710, October 1999,
<https://www.rfc-editor.org/info/rfc2710>.
[RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
Thyagarajan, "Internet Group Management Protocol, Version
3", RFC 3376, DOI 10.17487/RFC3376, October 2002,
<https://www.rfc-editor.org/info/rfc3376>.
[RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener
Discovery Version 2 (MLDv2) for IPv6", RFC 3810,
DOI 10.17487/RFC3810, June 2004,
<https://www.rfc-editor.org/info/rfc3810>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <https://www.rfc-editor.org/info/rfc4364>.
[RFC4684] Marques, P., Bonica, R., Fang, L., Martini, L., Raszuk,
R., Patel, K., and J. Guichard, "Constrained Route
Distribution for Border Gateway Protocol/MultiProtocol
Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual
Private Networks (VPNs)", RFC 4684, DOI 10.17487/RFC4684,
November 2006, <https://www.rfc-editor.org/info/rfc4684>.
[RFC6513] Rosen, E., Ed. and R. Aggarwal, Ed., "Multicast in MPLS/
BGP IP VPNs", RFC 6513, DOI 10.17487/RFC6513, February
2012, <https://www.rfc-editor.org/info/rfc6513>.
[RFC6514] Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP
Encodings and Procedures for Multicast in MPLS/BGP IP
VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012,
<https://www.rfc-editor.org/info/rfc6514>.
[RFC6625] Rosen, E., Ed., Rekhter, Y., Ed., Hendrickx, W., and R.
Qiu, "Wildcards in Multicast VPN Auto-Discovery Routes",
RFC 6625, DOI 10.17487/RFC6625, May 2012,
<https://www.rfc-editor.org/info/rfc6625>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <https://www.rfc-editor.org/info/rfc7432>.
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K.
Patel, "Revised Error Handling for BGP UPDATE Messages",
RFC 7606, DOI 10.17487/RFC7606, August 2015,
<https://www.rfc-editor.org/info/rfc7606>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
13.2. Informative References
[EVPN-BUM] Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A.
Sajassi, "Updates on EVPN BUM Procedures", Work in
Progress, Internet-Draft, draft-ietf-bess-evpn-bum-
procedure-updates-14, 18 November 2021,
<https://datatracker.ietf.org/doc/html/draft-ietf-bess-
evpn-bum-procedure-updates-14>.
[RFC4541] Christensen, M., Kimball, K., and F. Solensky,
"Considerations for Internet Group Management Protocol
(IGMP) and Multicast Listener Discovery (MLD) Snooping
Switches", RFC 4541, DOI 10.17487/RFC4541, May 2006,
<https://www.rfc-editor.org/info/rfc4541>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
Acknowledgements
The authors would like to thank Stephane Litkowski, Jorge Rabadan,
Anoop Ghanwani, Jeffrey Haas, Krishna Muddenahally Ananthamurthy, and
Swadesh Agrawal for their reviews and valuable comments.
Contributors
Derek Yeung
Arrcus
Email: derek@arrcus.com
Authors' Addresses
Ali Sajassi
Cisco Systems
821 Alder Drive
Milpitas, CA 95035
United States of America
Email: sajassi@cisco.com
Samir Thoria
Cisco Systems
821 Alder Drive
Milpitas, CA 95035
United States of America
Email: sthoria@cisco.com
Mankamana Mishra
Cisco Systems
821 Alder Drive
Milpitas, CA 95035
United States of America
Email: mankamis@cisco.com
Keyur Patel
Arrcus
United States of America
Email: keyur@arrcus.com
John Drake
Juniper Networks
Email: jdrake@juniper.net
Wen Lin
Juniper Networks
Email: wlin@juniper.net
|