summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3353.txt
blob: f16fb915fb0754b148dc5899a34d2af4eab73474 (plain) (blame)
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
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
Network Working Group                                            D. Ooms
Request for Comments: 3353                                       Alcatel
Category: Informational                                         B. Sales
                                                                 Alcatel
                                                               W. Livens
                                                            Colt Telecom
                                                              A. Acharya
                                                                     IBM
                                                             F. Griffoul
                                                                 Ulticom
                                                               F. Ansari
                                                               Bell Labs
                                                             August 2002


                     Overview of IP Multicast in a
           Multi-Protocol Label Switching (MPLS) Environment

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

Abstract

   This document offers a framework for IP multicast deployment in an
   MPLS environment.  Issues arising when MPLS techniques are applied to
   IP multicast are overviewed.  The pros and cons of existing IP
   multicast routing protocols in the context of MPLS are described and
   the relation to the different trigger methods and label distribution
   modes are discussed.  The consequences of various layer 2 (L2)
   technologies are listed.  Both point-to-point and multi-access
   networks are considered.













Ooms, et al.                 Informational                      [Page 1]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


Table of Contents

   1.     Introduction .............................................  3
   2.     Layer 2 Characteristics ..................................  4
   3.     Taxonomy of IP Multicast Routing Protocols
          in the Context of MPLS ...................................  5
   3.1.   Aggregation ..............................................  5
   3.2.   Flood & Prune ............................................  5
   3.3.   Source/Shared Trees ......................................  6
   3.4.   Co-existence of Source and Shared Trees ..................  7
   3.5.   Uni/Bi-directional Shared Trees .......................... 10
   3.6.   Encapsulated Multicast Data .............................. 11
   3.7.   Loop-free-ness ........................................... 11
   3.8.   Mapping of Characteristics on Existing Protocols ......... 11
   4.     Mixed L2/L3 Forwarding in a Single Node .................. 12
   5.     Taxonomy of IP Multicast LSP Triggers .................... 14
   5.1.   Request Driven ........................................... 14
   5.1.1. General .................................................. 14
   5.1.2. Multicast Routing Messages ............................... 15
   5.1.3. Resource Reservation Messages ............................ 15
   5.2.   Topology Driven .......................................... 16
   5.3.   Traffic Driven ........................................... 16
   5.3.1. General .................................................. 16
   5.3.2. An Implementation Example ................................ 17
   5.4.   Combinations of Triggers and Label Distribution Modes .... 18
   6.     Piggy-backing ............................................ 18
   7.     Explicit Routing ......................................... 20
   8.     QoS/CoS .................................................. 20
   8.1.   DiffServ ................................................. 20
   8.2.   IntServ and RSVP ......................................... 21
   9.     Multi-access Networks .................................... 21
   10.    More Issues .............................................. 22
   10.1.  TTL Field ................................................ 22
   10.2.  Independent vs. Ordered Label Distribution Control ....... 23
   10.3.  Conservative vs. Liberal Label Retention Mode ............ 24
   10.4.  Downstream vs. Upstream Label Allocation ................. 25
   10.5.  Explicit vs. Implicit Label Distribution ................. 25
   11.    Security Considerations .................................. 26
   12.    Acknowledgements ......................................... 26
   Informative References........................................... 27
   Authors' Addresses .............................................. 28
   Full Copyright Statement ........................................ 30









Ooms, et al.                 Informational                      [Page 2]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


Table of Abbreviations

   ATM     Asynchronous Transfer Node
   CBT     Core Based Tree
   CoS     Class of Service
   DLCI    Data Link Connection Identifier
   DRrecv  Designated Router of the receiver
   DRsend  Designated Router of the sender
   DVMRP   Distant Vector Multicast Routing Protocol
   FR      Frame Relay
   IGMP    Internet Group Management Protocol
   IP      Internet Protocol
   L2      layer 2 (e.g. ATM, Frame Relay)
   L3      layer 3 (e.g. IP)
   LSP     Label Switched Path
   LSR     Label Switching Router
   LSRd    Downstream LSR
   LSRu    Upstream LSR
   MOSPF   Multicast OSPF
   mp2mp   multipoint-to-multipoint
   MRT     Multicast Routing Table
   p2mp    point-to-multipoint
   PIM-DM  Protocol Independent Multicast-Dense Mode
   PIM-SM  Protocol Independent Multicast-Sparse Mode
   QoS     Quality of Service
   RP      Rendezvous Point
   RPT-bit RP Tree bit [DEER]
   RSVP    Resource reSerVation Protocol
   SPT-bit Shortest Path Tree [DEER]
   SSM     Source Specific Multicast
   TCP     Transmission Control Protocol
   UDP     User Datagram Protocol
   VC      Virtual Circuit
   VCI     Virtual Circuit Identifier
   VP      Virtual Path
   VPI     Virtual Path Identifier

1. Introduction

   In an MPLS cloud the routes are determined by a L3 routing protocol.
   These routes can then be mapped onto L2 paths to enhance network
   performance.  Besides this, MPLS offers a vehicle for enhanced
   network services such as QoS/CoS, traffic engineering, etc.

   Current unicast routing protocols generate a same (optimal) shortest
   path in steady state for a certain (source, destination) pair.
   Remark that unicast protocols can behave slightly different with
   regard to equal cost paths.



Ooms, et al.                 Informational                      [Page 3]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   For multicast, the optimal solution (minimum cost to interconnect N
   nodes) would impose a Steiner tree computation.  Unfortunately, no
   multicast routing protocol today is able to maintain such an optimal
   tree.  Different multicast protocols will therefore, in general,
   generate different trees.

   The discussion is focused on intra-domain multicast routing
   protocols.  Aspects of inter-domain routing are beyond the scope of
   this document.

2. Layer 2 Characteristics

   Although MPLS is multiprotocol both at L3 and at L2, in practice IP
   is the only considered L3 protocol.  MPLS can run on top of several
   L2 technologies (PPP/Sonet, Ethernet, ATM, FR, ...).

   When label switching is mapped on L2 switching capabilities (e.g.
   VPI/VCI is used as label), attention is mainly focused on the mapping
   to ATM [DAVI].  ATM offers high switching capacities and QoS
   awareness, but in the context of MPLS it poses several limitations
   which are described in [DAVI].  Similar considerations are made for
   Frame Relay on L2 in [CONT].  The limitations can be summarized as:

   - Limited Label Space:  either the standardized or the implemented
     number of bits available for a label can be small (e.g. VPI/VCI
     space, DLCI space), limiting the number of LSPs that can be
     established.

   - Merging:  some L2 technologies or implementations of these
     technologies do not support multipoint-to-point and/or
     multipoint-to-multipoint 'connections', obstructing the merging of
     LSPs.

   - TTL:  L2 technologies do not support a 'TTL-decrement' function.

   All three limitations can impact the implementation of multicast in
   MPLS as will be described in this document.

   When native MPLS is deployed the above limitations vanish.  Moreover
   on PPP and Ethernet links the same label can be used at the same time
   for a unicast and a multicast LSP because different EtherTypes for
   MPLS unicast and multicast are defined [ROSE].









Ooms, et al.                 Informational                      [Page 4]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


3. Taxonomy of IP Multicast Routing Protocols in the Context of MPLS

   At the moment, an abundance of IP multicast routing protocols is
   being proposed and developed.  All these protocols have different
   characteristics (scalability, computational complexity, latency,
   control message overhead, tree type, etc...).  It is not the purpose
   of this document to give a complete taxonomy of IP multicast routing
   protocols, only their characteristics relevant to the MPLS technology
   will be addressed.

   The following characteristics are considered:

   - Aggregation
   - Flood & Prune
   - Source/Shared trees
   - Co-existence of Source and Shared Trees
   - Uni/Bi-directional shared trees
   - Encapsulated multicast data
   - Loop-free-ness

   The discussion of these characteristics will not lead to the
   selection of one superior multicast routing protocol.  It is not
   impossible that different IP multicast routing protocols will be
   deployed in the Internet.

3.1. Aggregation

   In unicast different destination addresses are aggregated to one
   entry in the routing table, yielding one FEC and one LSP.

   The granularity of multicast streams is (*, G) for a shared tree and
   (S, G) for a source tree, S being the source address and G the
   multicast group address.  Aggregation of multicast trees with
   different multicast 'destination' addresses on one LSP is a subject
   for further study.

3.2. Flood & Prune

   To establish a multicast tree some IP multicast routing protocols
   (e.g. DVMRP, PIM-DM) flood the network with multicast data.  The
   branches can then be pruned by nodes which do not want to receive the
   data of the specific multicast group.  This process is repeated
   periodically.

   Flood & Prune multicast routing protocols have some characteristics
   which significantly differ from unicast routing protocols:





Ooms, et al.                 Informational                      [Page 5]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   a) Volatile.  Due to the Flood & Prune nature of the protocol, very
      volatile tree structures are generated.  Solutions to map a
      dynamic L3 p2mp tree to a L2 p2mp LSP need to be efficient in
      terms of signaling overhead and LSP setup time.  The volatile L2
      LSP will consume a lot of labels throughout the network, which is
      a disadvantage when label space is limited.

   b) Traffic-driven.  The router only creates state for a certain group
      when data arrives for that group.  Routers also independently
      decide to remove state when an inactivity timer expires.

      - Thus LSPs can not be pre-established as is usually done in
        unicast.  To minimize the time between traffic arrival and LSP
        establishment a fast LSP setup method is favorable.

      - Since creation and deletion of a L3 route at each node is
        triggered by traffic, this suggests that the LSP associated with
        the route be setup and torn down in a traffic-driven manner as
        well.

      - If an LSR does not support L3 forwarding this traffic-driven
        nature even requires that the upstream LSR takes the initiative
        to create an LSP (Upstream Unsolicited or Downstream on Demand
        label advertisement).

3.3. Source/Shared Trees

   IP multicast routing protocols create either source trees (S, G),
   i.e. a tree per source (S) and per multicast group (G), or shared
   trees (*, G), i.e. one tree per multicast group (Figure 1).


                R1                         R1           R1
         S1    /                          /            /
          \   /                          /            /
           \ /                          /            /
            C---R2                    S1---R2      S2---R2
           / \                          \            \
          /   \                          \            \
        S2     \                          \            \
                R3                         R3           R3

                  Figure 1. Shared tree and Source trees

   The advantage of using shared trees, when label switching is applied,
   is that shared trees consume less labels than source trees (1 label
   per group versus 1 label per source and per group).




Ooms, et al.                 Informational                      [Page 6]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   However, mapping a shared tree end-to-end on L2 implies setting up
   multipoint-to-multipoint (mp2mp) LSPs.  The problem of implementing
   mp2mp LSPs boils down to the merging problem discussed earlier.

   Note that in practice shared trees are often only used to discover
   new sources of the group and a switchover to a source tree is made at
   very low bitrates.

3.4. Co-existence of Source and Shared Trees

   Some protocols support both source and shared trees (e.g. PIM-SM) and
   one router can maintain both (*, G) and (S, G) state for the same
   group G.  Two cases of state co-existence are described below.
   Assume topologies with senders Si and receivers Ri.  RP is the
   Rendezvous Point.  Ni are LSRs.  The numbers are the interface
   numbers, "Reg" is the Register interface.  All IGMP and PIM
   Join/Prune messages are shown in the figures.  It is also indicated
   whether the RPT-bit is set for the (S, G) state.

   1) Figure 2 shows a switchover from shared to source tree.  Assume
      that the shortest path from R1 to RP is via N1-N2-N5.  N1, the
      Designated Router of receiver R1 (DRrecv), decides to initiate a
      source tree for source S1.  After the arrival of data via the
      source tree in N2, N2 will send a prune to N5 for source S1.
      State co-existence occurs in the node where the overlap of shared
      and source tree starts (N2) and in the node where S1 does not need
      forwarding on the shared tree anymore (N5).

                  PJ
          IJ      PJS     PJS
           -> 1  2 -> 1  2 -> 1  2
       R1-----N1------N2------N3----S1
                     3|       |3            IJ=Igmp Join
                      ||PPS   |             PJ=Pim Join (*,G)
                      |vPJ    |             PJS=Pim Join (S1,G)
           IJ     PJ  |    PJ |             PPS=Pim Prune (S1,G)
           ->     ->  |3   -> |
       R2-----N4------N5------RP----S2
             1  2    1  2    1

                                 Figure 2










Ooms, et al.                 Informational                      [Page 7]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   The multicast routing states created in the Multicast Routing Table
   (MRT) are:

     in RP: (*,G):Reg->1   (i.e. incoming itf=Reg; outgoing itf=1)
     in N1: (*,G):2->1
     in N2: (*,G):3->1
            (S1,G):2->1
     in N3: (S1,G):2->Reg,1
     in N4: (*,G):2->1
     in N5: (*,G):2->1,3
            (S1,G)RPT-bit:2->1

   2) Figure 3 shows that even without a switchover, state co-existence
      can occur.  Multicast traffic from a sender will create (S, G)
      state in the Designated Router of the sender (DRsend; N3 in Figure
      3 is the DRsend of S).  Each node on a shared-tree has (*, G)
      state.  Thus an on-tree DRsend has both (*, G) and (S, G) state.
      If the DRsend is on-tree it will also send a prune for S towards
      the RP, creating (S, G) state in all nodes until the first router
      which has a branch (N1 and N2 in Figure 3).

                             S
                    PPS  PPS |
             PJ     PJ    PJ |2 PJ    IJ
           1 <- 1  3<-    <- |  <-    <-            PJ=Pim Join
         RP------N1----N2----N3----N4----R1         IJ=Igmp Join
                ^|2   1  2  1  3  1  2              PPS=Pim Prune (S,G)
              PJ||  IJ
                1|  <-
                 N5----R2
                    2
                                   Figure 3

      The multicast routing states created in the MRT are:

        in RP: (*,G):Reg->1   (i.e. incoming itf=Reg; outgoing itf=1)
        in N1: (*,G):1->2,3
               (S,G)RPT-bit:1->2
        in N2: (*,G):1->2
               (S,G)RPT-bit:1->none
        in N3: (*,G):1->3
               (S,G):2->Reg,3
        in N4: (*,G):1->2
        in N5: (*,G):1->2







Ooms, et al.                 Informational                      [Page 8]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


      In the examples one can observe that two types of state co-
      existence occur:

   1) (S, G) with RPT-bit not set (N2 in Figure 2, N3 in Figure 3).  The
      (*, G) and (S, G) state have different incoming interfaces, but
      some common outgoing interfaces.  It is possible that the traffic
      of S arrives on both the (*, G) and (S, G) interfaces.  In normal
      L3 forwarding the (S, G)SPT-bit entry prohibits the forwarding of
      the traffic from S arriving on the (*, G) incoming interface.  The
      traffic of S can only temporarily arrive on the incoming
      interfaces of both the (*, G) and (S, G) entries (until N5 in
      Figure 2 and N1 in Figure 3 have processed the prune messages).
      To avoid the temporary forwarding of duplicate packets L3
      forwarding can be applied in this type of node.  If one does not
      mind the temporary duplicate packets L2 forwarding can be applied.
      In this case the (*, G) and (S, G) streams have to be merged into
      the (*, G) LSP on their common outgoing interfaces.

   2) (S, G) with RPT-bit set (N5 in Figure 2, N1 in Figure 3).  The
      (*, G) and (S, G) state have the same incoming interface.  The (S,
      G) traffic must be extracted from the (*, G) stream.  In MPLS this
      state co-existence can be handled in several ways.  Four
      approaches to this problem will be described:

      a) A first method to handle this state co-existence is to
         terminate the LSPs and forward all traffic of this group at L3.
         However a return to L3 can be avoided in case a (S, G) entry
         without an outgoing interface is added to the MRT (N2 in Figure
         3).  This entry will only receive traffic temporarily.  In this
         particular case one could ignore the (S, G) state and maintain
         the existing (*, G) LSP, the disadvantage being duplicate
         traffic for a very short time.

      b) A second approach is to assign source specific labels on the
         nodes of the shared tree.  Multiple labels will be associated
         with one (*, G) entry, corresponding to one label per active
         source.  Since the nodes only know which sources are active
         when traffic from these sources arrives, the LSPs cannot be
         pre-established and a fast LSP setup method is favorable.

      c) A third way is that only source trees are labelswitched and
         that traffic on the shared tree is always forwarded at L3.
         This assumes that the shared tree is only used as a way for the
         receivers to find out who the sources are.  By configuring a
         low bitrate switchover threshold, one can ensure that the
         receivers switchover to source trees very quickly.





Ooms, et al.                 Informational                      [Page 9]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


      d) In the fourth approach, an LSR which has (S, G) RPT-bit state
         with a non-null oif, advertises a label for (S, G) to the
         upstream LSR and this label advertisement is then propagated by
         each upstream LSR towards the RP.  In this way a dedicated LSP
         is created for (S, G) traffic from the RP to the LSR with the
         (S, G) RPT-bit state.  In the latter LSR, the (S, G) LSP is
         merged onto the (*, G) LSP for the appropriate outgoing
         interfaces.  This ensures that (S, G) packets traveling on the
         shared tree do not make it past any LSR which has pruned S.

3.5. Uni/Bi-directional Shared Trees

   Bidirectional shared trees (e.g. CBT [BALL]) have the disadvantage of
   creating a lot of merging points (M) in the nodes (N) of the shared
   tree.  Figure 4 shows these merging points resulting from 2 senders
   S1 and S2 on a bidirectional tree.

                 S1                   S2
                 ||                   ||
                 v| <-   <-   <-   <- |v
          <-   <- | ->   ->   ->   -> | ->
          ----N----M----M----M----M----M----N
             ||   ||   ||   ||   ||   ||
             |v   |v   |v   |v   |v   |v
             |    |    |    |    |    |

                                Figure 4.
      Multicast traffic flows from 2 senders on a bidirectional tree

   In Figure 5 the same situation for unidirectional shared trees is
   depicted.  In this case the data of the senders is tunneled towards
   the root node R, yielding only a single merging point, namely the
   root of the shared tree itself.

                 S1
          tunnel ||                  S2
          <----- v|       tunnel     ||
      to R<------------------------- v|
          ->   -> | ->   ->   ->   -> | ->
          ----N----N----N----N----N----N----N
             ||   ||   ||   ||   ||   ||
             |v   |v   |v   |v   |v   |v
             |    |    |    |    |    |

                                Figure 5.
      Multicast traffic flows from 2 senders on a unidirectional tree





Ooms, et al.                 Informational                     [Page 10]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


3.6. Encapsulated Multicast Data

   Sources of unidirectional shared trees and non-member sources of
   bidirectional shared trees encapsulate the data towards the root
   node.  The data is then decapsulated in the root node.  The
   encapsulation and decapsulation of multicast data are L3 processes.

   Thus in case of encapsulation/decapsulation a path can never be
   mapped onto an end-to-end LSP:  the traffic can not be forwarded on
   L2 on the Register interface of the DRsend (encapsulation), nor can
   it cross the root (decapsulation) at L2.

   Remarks:

   1) If the LSR supports mixed L2/L3 forwarding (section 4), the (S, G)
      traffic in DRsend can still be forwarded at L2 on all outgoing
      interfaces other than the Register interface.

   2) The encapsulated traffic can also benefit from MPLS by label
      switching the tunnels.

   3) If the root node decides to join the source (to avoid
      encapsulation/decapsulation), an end-to-end (S, G) LSP can be
      constructed.

3.7. Loop-free-ness

   Multicast routing protocols which depend on a unicast routing
   protocol suffer from the same transient loops as the unicast
   protocols do, however the effect of loops will be much worse in the
   case of multicast.  The reason being, each time a multicast packet
   goes around a loop, copies of the packet may be emitted from the loop
   if branches exist in the loop.

   Currently loop detection is a configurable option in LDP and a
   decision on the mechanism for loop prevention is postponed.

3.8. Mapping of Characteristics on Existing Protocols

   The above characteristics are summarized in Table 1 for a
   non-exhaustive list of existing IP multicast routing protocols:
   DVMRP [PUSA], MOSPF [MOY], CBT [BALL], PIM-DM [ADAM], PIM-SM [DEER],
   SSM [HOLB], SM [PERL].








Ooms, et al.                 Informational                     [Page 11]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   +------------------+------+------+------+------+------+------+------+
   |                  |DVMRP |MOSPF |CBT   |PIM-DM|PIM-SM|SSM   |SM    |
   +------------------+------+------+------+------+------+------+------+
   |Aggregation       |no    |no    |no    |no    |no    |no    |no    |
   +------------------+------+------+------+------+------+------+------+
   |Flood & Prune     |yes   |no    |no    |yes   |no    |no    |option|
   +------------------+------+------+------+------+------+------+------+
   |Tree Type         |source|source|shared|source|both  |source|shared|
   +------------------+------+------+------+------+------+------+------+
   |State Co-existence|no    |no    |no    |no    |yes   |no    |no    |
   +------------------+------+------+------+------+------+------+------+
   |Uni/Bi-directional|N/A   |N/A   |bi    |N/A   |uni   |uni   |bi    |
   +------------------+------+------+------+------+------+------+------+
   |Encapsulation     |no    |no    |yes   |no    |yes   |no    |yes   |
   +------------------+------+------+------+------+------+------+------+
   |Loop Free         |no    |no    |no    |no    |no    |no    |no    |
   +------------------+------+------+------+------+------+------+------+

            Table 1. Taxonomy of IP Multicast Routing Protocols

   From Table 1 one can derive e.g. that DVMRP will consume a lot of
   labels when the Flood & Prune L3 tree is mapped onto a L2 tree.
   Furthermore since DVMRP uses source trees it experiences no merging
   problem when label switching is applied.  The table can be
   interpreted in the same way for the other protocols.

4. Mixed L2/L3 Forwarding in a Single Node

   Since unicast traffic has one incoming and one outgoing interface the
   traffic is either forwarded at L2 OR at L3 (Figure 6).  Because
   multicast traffic can be forwarded to more than one outgoing
   interface one can consider the case that traffic to some branches is
   forwarded on L2 and to other branches on L3 (Figure 7).

                  +--------+            +--------+
                  |   L3   |            |   L3   |
                  |  +>>+  |            |        |
                  |  |  |  |            |        |
                  +--|--|--+            +--------+
                  |  |  |  |            |        |
              ->-----+  +----->     ->------>>----->
                  |   L2   |            |   L2   |
                  +--------+            +--------+

              Figure 6. Unicast forwarding on resp. L3 or L2






Ooms, et al.                 Informational                     [Page 12]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


            +--------+          +--------+         +--------+
            |   L3   |          |   L3   |         |   L3   |
            |  +>>++ |          |  +>>+  |         |        |
            |  |  || |          |  |  |  |         |        |
            +--|--||-+          +--|--|--+         +--------+
            |  |  |+---->       |  |  +----->      |      +---->
        ->-----+  |  |          |  |L2   |      ->----->>-+ |
            |   L2+----->   ->-----+>>------>      |   L2 +---->
            +--------+          +--------+         +--------+

       Figure 7. Multicast forwarding on resp. L3, mixed L2/L3 or L2

   Nodes that support this 'mixed L2/L3 forwarding' feature allow
   splitting of a multicast tree into branches in which some are
   forwarded at L3 while others are switched at L2.

   The L3 forwarding has to take care that the traffic is not forwarded
   on those branches that already get their traffic on L2.  This can be
   accomplished by e.g. providing an extra bit in the Multicast Routing
   Table.

   Although the mixed L2/L3 forwarding requires processing of the
   traffic at L3, the load on the L3 forwarding engine is generally less
   than in a pure L3 node.

   Supporting this 'mixed L2/L3 forwarding' feature has the following
   advantages:

   a) Assume LSR A (Figure 8) is an MPLS edge node for the branch
      towards LSR B and an MPLS core node for the branch towards LSR C.
      The mixed L2/L3 forwarding allows that the branch towards C is not
      disturbed by a return to L3 in LSR A.

                           +-------------+
                           | MPLS cloud  |
                           |     N       |
                           |    / \      |
                           |   /   \     |
                           |  /     \    |
                           | A       N   |
                           |/ \       \  |
                           |   \       \ |
                          /|    \        |
                         B |     C       |
                           |             |
                           +-------------+

                Figure 8.  Mixed L2/L3 forwarding in node A



Ooms, et al.                 Informational                     [Page 13]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   b) Enables the use of the traffic driven trigger with the Downstream
      Unsolicited or Upstream on Demand label distribution mode, as
      explained in section 5.3.1.

5. Taxonomy of IP Multicast LSP Triggers

   The creation of an LSP for multicast streams can be triggered by
   different events, which can be mapped on the well known categories of
   'request driven', 'topology driven' and 'traffic driven'.

   a) Request driven:  intercept the sending or receiving of control
      messages (e.g. multicast routing messages, resource reservation
      messages).

   b) Topology driven:  map the L3 tree, which is available in the
      Multicast Routing Table, to a L2 tree.  The mapping is done even
      if there is no traffic.

   c) Traffic driven:  the L3 tree is mapped onto a L2 tree when data
      arrives on the tree.

5.1. Request Driven

5.1.1. General

   The establishment of LSPs can be triggered by the interception of
   outgoing (requiring that the label is requested by the downstream
   LSR) or incoming (requiring that the label is requested by the
   upstream LSR) control messages.  Figure 9 illustrates these two
   cases.

           LSRu              LSRd      LSRu              LSRd
       -------+              +---      ---+              +-------
              |   control    |            |   control    |
       <---*<-----message-------      <-------message-------*----
           |  |              |            |              |  |
    trigger|  |              |            |              |  |trigger
           |  |    bind      |            |    bind      |  |
           +--------or--------->      <---------or----------+
              | bind-request |            | bind-request |
              |              |            |              |
              |              |            |              |
              |----data----->|            |-----data---->|

                  incoming                    outgoing

                     Figure 9. Request driven trigger
      (interception of resp. incoming and outgoing control messages)



Ooms, et al.                 Informational                     [Page 14]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   The downstream LSR (LSRd) sends a control message to the upstream LSR
   (LSRu).  In the case that incoming control messages are intercepted
   and the MPLS module in LSRu decides to establish an LSP, it will send
   an LDP bind (Upstream Unsolicited mode) or an LDP bind request
   (Downstream on Demand mode) to LSRd.

   Currently, for multicast, we can identify two important types of
   control messages:  the multicast routing messages and the resource
   reservation messages.

5.1.2. Multicast Routing Messages

   In principle, this mechanism can only be used by IP multicast routing
   protocols which use explicit signaling:  e.g. the Join messages in
   PIM-SM or CBT.  Remark that DVMRP and PIM-DM can be adapted to
   support this type of trigger [FARI], however, at the cost of
   modifying the IP multicast routing protocol itself!

   IP multicast routing messages can create both hard states (e.g. CBT
   Join + CBT Join-Ack) and soft states (e.g. PIM-SM Joins are sent
   periodically).  The latter generates more control traffic for tree
   maintenance and thus requires more processing in the MPLS module.

   Triggers based on the multicast routing protocol messages have the
   disadvantage that the 'routing calculations' performed by the
   multicast routing daemon to determine the Multicast Routing Table are
   repeated by the MPLS module.  The former determines the tree that
   will be used at L3, the latter calculates an identical tree to be
   used by L2.  Since the same task is performed twice, it is better to
   create the multicast LSP on the basis of information extracted from
   the Multicast Routing Table itself (see section 5.2 and 5.3).  The
   routing calculations become more complex for protocols which support
   a switch-over from a (*, G) tree to a (S, G) tree because more
   messages have to be interpreted.

   When a host has a point-to-point connection to the first router one
   could create 'LSPs up to the end-user' by intercepting not only the
   multicast routing messages but the IGMP Join/Prune messages ([FENN])
   as well.

5.1.3. Resource Reservation Messages

   As is the case for unicast the RSVP Resv message can be used as a
   trigger to establish LSPs.  A source of a multicast group will send
   an RSVP Path message down the tree, the receivers can then reply with
   an RSVP Resv message.  RSVP scales equally well for multicast as it
   does for unicast because:




Ooms, et al.                 Informational                     [Page 15]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   a) RSVP Resv messages can merge.

   b) RSVP Resv messages are only sent up to the first branch which made
      the required reservation.

5.2. Topology Driven

   The Multicast Routing Table (MRT) is maintained by the IP multicast
   routing protocol daemon.  The MPLS module maps this L3 tree topology
   information to L2 p2mp LSPs.

   The MPLS module can poll the MRT to extract the tree topologies.
   Alternatively, the multicast daemon can be modified to notify the
   MPLS module directly of any change to the MRT.

   The disadvantage of this method is that labels are consumed even when
   no traffic exists.

5.3. Traffic Driven

5.3.1. General

   A traffic driven trigger method will only construct LSPs for trees
   which carry traffic.  It consumes less labels than the topology
   driven method, as labels are only allocated when there is traffic on
   the multicast tree.

   If the mixed L2/L3 forwarding capability (see section 4) is not
   supported, the traffic driven trigger requires a label distribution
   mode in which the label is requested by the LSRu (Downstream on
   Demand or Upstream Unsolicited mode).  In Figure 10, suppose an LSP
   for a certain group exists to LSRd1 and another LSRd2 wants to join
   the tree.  In order for LSRd2 to initiate a trigger, it must already
   receive the traffic from the tree.  This can be either at L2 or at
   L3.  The former case is a chicken and egg problem.  The latter case
   requires a mixed L2/L3 forwarding capability in LSRu to add the L3
   branch.














Ooms, et al.                 Informational                     [Page 16]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


                                    +--------+
                                    |  LSRd1 |
                                    |        |
         +--------+                 |   L3   |
         |  LSRu  |                 +--------+
         |        |                 |        |
         |   L3   |    +-------------------------->
         +--------+   /             |   L2   |
         |        |  /              +--------+
     ->-------------+
         |   L2   |                 +--------+
         +--------+                 |  LSRd2 |
                                    |        |
                                    |   L3   |
                                    +--------+
                                    |        |
                                    |        |
                                    |   L2   |
                                    +--------+

               Figure 10. The LSRu has to request the label.

5.3.2. An Implementation Example

   To illustrate that by choosing an appropriate trigger one can
   conclude that MPLS multicast is independent of the deployed multicast
   routing protocol, the following implementation example is given.

   Current implementations on Unix platforms of IP multicast routing
   protocols (DVMRP, PIM) have a Multicast Forwarding Cache (MFC).  The
   MFC is a cached copy of the Multicast Routing Table.  The MFC
   requests an entry for a certain multicast group when it experiences a
   'cache miss' for an incoming multicast packet.  The missing routing
   information is provided by the multicast daemon.  If at a later point
   in time something changes to the route (outgoing interfaces added or
   removed), the multicast daemon will update the MFC.

   The MFC is implemented as a common component (part of the kernel),
   which makes this trigger very attractive because it can be
   transparently used for any IP multicast routing protocol.

   Entries in the MFC are removed when no traffic is received for this
   entry for a certain period of time.  When label switching is applied
   to a certain MFC-entry, the L3 will not see any packets arriving
   anymore.  To retain the normal MFC behavior, the L3 counters of the
   MFC need to be updated by L2 measurements.





Ooms, et al.                 Informational                     [Page 17]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


5.4. Combinations of Triggers and Label Distribution Modes

   Table 2 shows the valid combinations of label distribution modes and
   trigger types that were discussed in the previous sections.  The (X)
   means that the combination is valid when the mixed L2/L3 forwarding
   feature is supported in the LSR.

     +----------------+---------------------------------------------+
     |                |              label requested by             |
     |                |          LSRu        |          LSRd        |
     |                +----------------------+----------------------+
     |                | upstream  |downstream|downstream |upstream  |
     |                |unsolicited|on demand |unsolicited|on demand |
     +----------------+-----------+----------+-----------+----------+
     |Request Driven  |           |          |           |          |
     |(incoming msg)  |    X      |    X     |           |          |
     +----------------+-----------+----------+-----------+----------+
     |Request Driven  |           |          |           |          |
     |(outgoing msg)  |           |          |     X     |    X     |
     +----------------+-----------+----------+-----------+----------+
     |Topology Driven |    X      |    X     |     X     |    X     |
     +----------------+-----------+----------+-----------+----------+
     |Traffic Driven  |    X      |    X     |    (X)    |   (X)    |
     +----------------+-----------+----------+-----------+----------+

   Table 2. Valid combinations of triggers and label distribution modes

6. Piggy-backing

   In Figure 9 (outgoing case) one can observe that instead of sending 2
   separate messages the label advertisement can be piggy-backed on the
   existing control messages.  For multicast two piggy-back candidates
   exist:

   a) Multicast routing messages:  protocols such as PIM-SM and CBT have
      explicit Join messages which could carry the label mappings.  This
      approach is described in [FARI].  When different multicast routing
      protocols are deployed, an extension to each of these protocols
      has to be defined.

   b) RSVP Resv messages:  a label mapping extension object for RSVP,
      also applicable to multicast, is proposed in [AWDU].

   The pros and cons of piggy-backing on multicast routing messages will
   be described now.






Ooms, et al.                 Informational                     [Page 18]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   Piggy-backing has following advantages:

   a) If the label advertisement is piggy-backed on multicast routing
      messages, then the distribution of routes and the distribution of
      labels is tightly synchronized.  This eliminates difficult corner
      cases such as "what do I do with a label if I don't (yet) have a
      routing table entry to attach it to?".  It also minimizes the
      interval between the establishment of the multicast route and the
      mapping of a label to the route.

   b) The number of control messages needed to support label
      advertisement beyond those needed to support the multicast routing
      itself is zero.

   Following disadvantages of piggy-backing can be identified:

   a) In dense-mode protocols there are no messages on which the label
      advertisement can be piggy-backed.  [FARI] proposes to add
      periodic messages to dense-mode protocols for the purpose of label
      advertisement, which is a heavy impact on the multicast routing
      protocol and it eliminates the message conserving benefit of
      piggy-backing.

   b) The second solution for the state co-existence problem (section
      3.4) cannot be applied in combination with piggy-backing.

   c) Piggy-backing requires extending the multicast routing protocol,
      and hence becomes less attractive if label advertisement needs to
      be supported for multiple multicast routing protocols.  Especially
      when not only the label advertisement but also the other two LDP
      functions (discovery and adjacency) are piggy-backed.

   d) Piggy-backing assumes the Downstream Unsolicited label
      distribution mode, this excludes a number of trigger methods (see
      Table 2).

   e) LDP normally runs on top of TCP, assuring a reliable communication
      between peer nodes.  Piggy-backed label advertisement often
      replaces the reliable communication with periodic soft-state label
      advertisements.  Because of this periodic label advertisement the
      control traffic (in number of bytes) will increase.










Ooms, et al.                 Informational                     [Page 19]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   f) If a VCID notification mechanism [NAGA] is required, the (in-band)
      notification can normally be done by sending the LDP bind through
      the newly established VC.  This way only one message is
      required.  This method cannot be combined with piggy-backing
      because the routing message is sent before the VC can be
      established.  An extra handshake message is thus required,
      diminishing the benefit of piggy-backing.

   So whether piggy-backing makes sense or not depends heavily on which
   and how many multicast routing protocols are deployed, whether LDP is
   already used for unicast, which trigger mechanism is used, ...
   Piggy-backing is just one possible component of an MPLS multicast
   solution.

7. Explicit Routing

   Explicit routing for unicast refers to overriding the unicast routing
   table by using LSPs.

   A first way to interpret "multicast explicit routing" is overriding
   the tree established by the multicast routing protocol by another LSP
   tree (e.g. a Steiner tree calculated by an off-line tool).  In this
   interpretation the current 'shortest path' multicast routing protocol
   becomes obsolete and can be replaced by label advertisement messages
   that follow an explicit route (e.g. a branch of the Steiner tree).

   A second way of interpreting "multicast explicit routing" is that the
   known multicast routing protocols are running, but that the messages
   generated by these protocols use explicit unicast routes (instead of
   the IGP shortest path routes) to construct trees.

8. QoS/CoS

8.1. DiffServ

   The Differentiated Services approach can be applied to multicast as
   well.  It introduces finer stream granularities (DiffServ Codepoint
   (DSCP) as an extra differentiator).  A sender can construct one or
   more trees with different DSCPs.

   These (S, G, DSCP) or (*, G, DSCP) trees can be mapped very easily
   onto LSPs when the traffic driven trigger is used.  In this case one
   can create LSPs with different attributes for the various DSCPs.
   Note however that these LSPs still use the same route as long as the
   tree construction mechanism itself does not take the DSCP as an
   input.





Ooms, et al.                 Informational                     [Page 20]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


8.2. IntServ and RSVP

   RSVP can be used to setup multicast trees with QoS.  An important
   multicast issue is the problem of how to map the 'heterogeneous
   receivers' paradigm onto L2 (remark that it is not solved in IP
   either).  This subject is tackled in [CRAW].  Pragmatic approaches
   are the 'Limited Heterogeneity Model' which allows a best effort
   service and a single alternate QoS (e.g. a QoS proposed by the sender
   in a RSVP Path message) and the 'Homogeneous Model' which allows only
   a single QoS.

   The first approach will construct full trees for each service class.
   The sender has to send its traffic twice across the network (e.g. 1
   best-effort and 1 QoS tree).  Both trees can be label switched.

   The second approach constructs one tree and the best-effort users are
   connected to the QoS tree.  If the branches created for best-effort
   users are not to be label switched, (thus carried by a hop-by-hop
   default LSP) the QoS multicast traffic has to be merged onto these
   default LSPs.  This function can be provided by the 'mixed L2/L3
   forwarding' feature described in section 4.  If this is not
   available, merging is necessary to avoid a return to L3 in the QoS
   LSP.

   The mapping of the IntServ service categories onto L2 for ATM service
   categories is studied in [GARR].

9. Multi-access Networks

   Multicast MPLS on multi-access networks poses a special problem.  An
   LSR that wants to join a group must always be ready to accept the
   label that is already assigned to the group LSP (to another
   downstream LSR on the link).  This can be achieved in three ways:

   1) Each LSR on the multi-access link memorizes all the advertised
      labels on the link, even if it has not received a join for the
      associated group.  If an LSR is added to the multi-access link it
      has to retrieve this information from another LSR on the link or
      in case of soft state label advertisement it can wait a certain
      time before it can allocate labels itself.  If LSRs allocate a
      label 'at the same moment' the LSR with the highest IP address
      could keep it, while the other LSRs withdraw the label.

   2) Each LSR gets its own label range to allocate labels from.  A
      mechanism for label partitioning is described in [FARI].  If an
      LSR is added to the multi-access link, the label ranges have to be
      negotiated again and possibly existing LSPs are torn down and
      are reconstructed with other labels.



Ooms, et al.                 Informational                     [Page 21]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   3) Per multi-access link one LSR could be elected to be responsible
      for label allocation.  When an LSR needs a label, it can request
      it from this Label Allocation LSR.

   Unlike the unicast case, a multicast stream can have more than one
   downstream LSR which all have to use the same label.  Two solutions
   for label advertisement can be thought of:

   1) [FARI] proposes to multicast the label advertisements to all LSRs
      on the shared link.  Since multicast is not reliable this requires
      periodic label advertisements, yielding label advertisement
      duplicates in time.

   2) Another approach is that an LSR unicasts its label advertisements
      in a reliable way (TCP) to all other (or to all interested) LSRs
      on the shared link.  In this approach the hard-state character of
      LDP can be maintained but the label advertisement is duplicated in
      space.

   Since LSPs are only rewarding if they have a long lifetime and since
   the number of LSRs on a shared link is limited the second approach
   seems advantageous.

   Another issue with multicast in multi-access networks is whether to
   use upstream or downstream label assignment.  For multicast traffic,
   upstream label allocation is simpler since there can be only one
   upstream node per link that belongs to a multicast tree.  This
   (upstream) node can assign a unique label for the FEC.  With
   downstream allocation, there may be multiple downstream nodes for a
   given tree on a multi-access link; each node may propose a different
   label assignment for a FEC that would require some resolution process
   in order to come up with a single label per multicast FEC on the
   link.

   Once a label has been assigned, it is possible that the label
   assigner leaves the tree.  With downstream label assignment, this
   could happen when the label allocator leaves the group.  With
   upstream assignment this could happen when the upstream LSR changes
   due to a unicast topology change.

10. More Issues

10.1. TTL Field

   The TTL field in the IP header is typically used for loop detection.
   In IP multicast it is also used to limit the scope of the multicast
   packets by setting an appropriate TTL value.




Ooms, et al.                 Informational                     [Page 22]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   Thus in LSRs that do not support a TTL decrement function (e.g. ATM
   LSR), the scope restriction function is affected.  Suppose one could
   calculate in advance the number of hops an LSP traverses.  In a
   unicast LSP the TTL value could then be decremented at the ingress or
   the egress node.  For multicast all the branches of the tree can have
   different lengths so the TTL can only be decremented at the egress
   node, potentially wasting bandwidth if the TTL turns out to be zero
   or negative.

10.2. Independent vs. Ordered Label Distribution Control

   Current Label Distribution Terminology is only defined for unicast.
   The following sections explore what this terminology might mean in a
   multicast context.

   In Independent Control ([ANDE]) each LSR can take the initiative to
   do a label mapping.  In Ordered Control ([ANDE]) an LSR only maps a
   label when it already received a label from its next-hop.

   All the previously described trigger methods (section 5) combine with
   Independent Control.  Note that if the request driven approach is
   used with Independent Control the label distribution still behaves as
   in Ordered Control:  the control messages flow from the egress node
   upstream, imposing the same sequence to the label advertisement.

   Ordered Control is not applicable for a traffic driven trigger in
   case the node does not support mixed L2/L3 forwarding.  According to
   Table 2, this case implies that labels are requested by the upstream
   LSR.  Suppose in Figure 11 that an LSP exists from S to R1 and a new
   branch must be added to R2.  B will only accept a label on the A-B
   link if a label is already assigned on the B-C link.  However, to
   establish a label on the B-C link, B must already receive traffic on
   the A-B link.

                                     N---N---R1
                                    /
                                   /
                           S -----A
                                   \
                                    \
                                     B---C---R2

                                Figure 11.








Ooms, et al.                 Informational                     [Page 23]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


10.3. Conservative vs. Liberal Label Retention Mode

   In the Conservative Mode ([ANDE]) only the labels that are used for
   forwarding data (if the next-hop for the FEC is the LSR which
   advertised the label) are allocated and maintained.  In the Liberal
   Mode labels are advertised and maintained to all neighbors.  Liberal
   Mode does not make sense in multicast.  Two reasons can be identified
   for this:

   1) All LSRs have a route for each unicast FEC.  This is not true for
      multicast FECs.

   2) For multicast an LSR always knows to which neighbor to send the
      label request or the label map messages.  In e.g. unicast
      Downstream Unsolicited mode (see below) the LSR does not know
      where to send the label mappings and thus has to send the mapping
      to all its neighbors.  In this case supporting the Liberal Mode
      does not generate extra messages (it still requires extra state
      information and label space) and thus the threshold to support
      Liberal Mode could be considered lower.

   Table 3 shows the cases where it is known by an LSR where to send its
   label requests.

              +---------+----------------------------------+
              |         |       label requested by         |
              |         |      LSRu      |      LSRd       |
              +---------+----------------+-----------------|
              |unicast  |      Yes       |       No        |
              +---------+----------------+-----------------|
              |multicast|      Yes       |      Yes        |
              +---------+----------------+-----------------+

       Table 3. Does an LSR know where to send its label requests ?

   For a unicast flow, an LSR can determine the next hop LSR, which is
   the one to send the request to in case of Upstream Unsolicited or
   Downstream on Demand mode.  The LSR is however not able to find the
   previous hop.  The previous hop is not necessarily the next hop
   towards the source, because the path from A to B is not necessarily
   the same as the path from B to A.  Such a situation can occur as a
   result of asymmetric link measures or in the event that multiple
   equal cost paths exist [PAXS].

   In the case of multicast, an LSR knows both the next hop(s) and the
   previous hop.  Because multicast trees are constructed using the
   reverse shortest path method, the previous hop is always the next hop
   towards the source or towards the root of the tree.



Ooms, et al.                 Informational                     [Page 24]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


10.4. Downstream vs. Upstream Label Allocation

   The label can be allocated by either the downstream LSR (Downstream
   on Demand, Downstream Unsolicited) or the upstream LSR (Upstream on
   Demand, Upstream Unsolicited, implicit).  The advantages of
   downstream label allocation are:

   a) It is the same mode as for unicast LDP, thus eliminating the need
      to develop upstream label distribution procedures.

   b) The same label can be kept when the upstream LSR changes due to a
      route change, which is an advantage on multi-access networks (see
      section 9).

   c) Compatible with piggy-backing (especially the downstream
      distribution mode).

   The advantages of upstream label allocation are:

   a) Easier label allocation in multi-access networks (see section 9).

   b) The same label can be kept when the downstream LSR (which would
      have been the label allocator in downstream mode in a multi-access
      network) leaves the group (see section 9).

   c) The upstream and implicit distribution mode allow a faster LSP
      setup when the LSP is traffic triggered.

   Whether to use upstream or downstream label distribution is outside
   the scope of this framework.  The relative complexity between the
   necessary protocol extensions and the resolution mechanism needed, as
   well as the relative operational complexity, will influence which way
   to go.

10.5. Explicit vs. Implicit Label Distribution

   Beside the explicit distribution modes (which use a signaling
   protocol), [ACHA] proposes an implicit label distribution method by
   using unknown labels.  This method has all the advantages of the
   upstream label allocation method and is probably the fastest label
   advertisement method for traffic triggered LSPs.

   Implicit label distribution is not applicable if the FEC-to-label
   binding has been advertised prior to traffic arrival, e.g. explicit
   routing (i.e. if all the information necessary to identify the FEC is
   not present in the packet).





Ooms, et al.                 Informational                     [Page 25]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   Explicit distribution allows pre-establishment (before the arrival of
   data) of LSPs with topology or request driven triggers.

11. Security Considerations

   In general, the use of multicast in an MPLS environment poses no
   extra security issues beyond the ones that already exist in multicast
   and MPLS protocols as such.

   The protocols described in this document are however not suited to
   cross administrative boundaries.

   When the multicast tree is determined by an existing multicast
   routing protocol (this is the assumption made in this document,
   except for the Explicit Routing section), clearly no additional
   security issues are introduced with respect to the shape of the tree
   (e.g.  unauthorized joining, tapping, blackholing, injecting traffic,
   ...).  These security issues should have been addressed in the
   specifications of the multicast routing protocols.

   In the MPLS context it is possible that control messages trigger L2
   resource allocations (e.g. LSPs).  If security flaws would still be
   present in the existing protocols (which possibly are not too harmful
   in its original context) the abusive sending of such control messages
   can yield more severe DoS attacks.

   In case of an "explicit routed" tree that is calculated centrally,
   sufficient authentication must be done on the control messages that
   set up the tree in the network nodes.

12. Acknowledgements

   The authors would like to thank Eric Rosen, Piet Van Mieghem, Philip
   Dumortier, Hans De Neve, Jan Vanhoutte, Alex Mondrus and Gerard
   Gastaud for the fruitful discussions and/or their thorough revision
   of this document.















Ooms, et al.                 Informational                     [Page 26]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


Informative References

   [ACHA]  A. Acharya, R. Dighe and F. Ansari, "IP Switching Over Fast
           ATM Cell Transport (IPSOFACTO) : Switching Multicast flows",
           IEEE Globecom '97.

   [ADAM]  A. Adams, J. Nicholas, W. Siadak, Protocol Independent
           Multicast Version 2 Dense Mode Specification", Work In
           Progress.

   [ANDE]  Andersson, L., Doolan, P., Feldman, N., Fredette, A. and
           R. Thomas, "LDP Specification", RFC 3036, January 2001.

   [AWDU]  Awduche, D., Berger, L., Gan, D., Li, T., Swallow, G.  and
           V. Srinivasan, "RSVP-TE: Extensions to RSVP for LSP Tunnels",
           RFC 3209, December 2001.

   [BALL]  Ballardie, A., "Core Based Trees (CBT) Multicast Routing
           Architecture", RFC 2201, September 1997.

   [CONT]  Conta, D., Doolan, P. and A. Malis, "Use of Label Switching
           on Frame Relay Networks", RFC 3034, January 2001.

   [CRAW]  Crawley, E., Berger, L., Berson, S., Baker, F., Borden, M.
           and J. Krawczyk, "A Framework for Integrated Services and
           RSVP over ATM", RFC 2382, August 1998.

   [DAVI]  Davie, B., Lawrence, J., McCloghrie, K., Rekhter, Y., Rosen,
           E., Swallow, G. and P. Doolan, "MPLS using LDP and ATM VC
           switching", RFC 3035, January 2001.

   [DEER]  Deering, S., Estrin, D., Farinacci, D., Helmy, A., Thaler,
           D., Handley, M., Jacobson, V., Liu, C., Sharma, P. and L Wei,
           "Protocol Independent Multicast-Sparse Mode (PIM-SM):
           Protocol Specification", RFC 2362, June 1998.

   [FARI]  D. Farinacci, Y. Rekhter, E. Rosen and T. Qian, "Using PIM to
           Distribute MPLS Labels for Multicast Routes", Work In
           Progress.

   [FENN]  Fenner, W., "Internet Group Management Protocol, IGMP,
           Version 2", RFC 2236, November 1997.

   [GARR]  Garrett, M. and M. Borden, "Interoperation of Controlled-Load
           Service and Guaranteed Service with ATM", RFC 2381, August
           1998.





Ooms, et al.                 Informational                     [Page 27]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   [HOLB]  H. Holbrook, B. Cain, "Source-Specific Multicast for IP",
           Work In Progress.

   [MOY]   Moy, J., "Multicast Extensions to OSPF", RFC 1584, March
           1994.

   [NAGA]  Nagami, K., Demizu, N., Esaki, H., Katsube, Y. and P. Doolan,
           "VCID Notification over ATM link for LDP", RFC 3038, January
           2001.

   [PERL]  R. Perlman, C-Y. Lee, A. Ballardie, J. Crowcroft, Z. Wang, T.
           Maufer, "Simple Multicast", Work In Progress.

   [PUSA]  T. Pusateri, "Distance Vector Multicast Routing Protocol",
           Work In Progress.

   [PAXS]  V. Paxson, "End-to-End Routing Behavior in the Internet",
           IEEE/ACM Transactions on Networking 5(5), pp. 601-615.

   [ROSE]  Rosen, E., Rekhter, Y., Tappan, D., Farinacci, D., Fedorkow,
           G., Li, T. and A. Conta, "MPLS Label Stack Encoding",
           RFC 3032, January 2001.

Authors Addresses

   Dirk Ooms
   Alcatel Corporate Research Center
   Fr. Wellesplein 1, 2018 Antwerp, Belgium.
   Phone : 32 3 2404732
   Fax   : 32 3 2409879
   EMail: Dirk.Ooms@alcatel.be

   Bernard Sales
   Alcatel Corporate Research Center
   Fr. Wellesplein 1, 2018 Antwerp, Belgium.
   Phone : 32 3 2409574
   EMail: Bernard.Sales@alcatel.be

   Wim Livens
   Colt Telecom
   Zweefvliegtuigstraat 10, 1130 Brussels, Belgium
   Phone : 32 2 7901705
   Fax   : 32 2 7901711
   EMail: WLivens@colt-telecom.be







Ooms, et al.                 Informational                     [Page 28]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


   Arup Acharya
   IBM TJ Watson Research Center
   30 Saw Mill River Road, Hawthorne
   NY 10532
   Phone : 1 914 784 7481
   EMail: arup@us.ibm.com

   Frederic Griffoul
   Ulticom, Inc.
   Les Algorithmes, 2000 Route des Lucioles, BP29
   06901 Sophia-Antipolis, FRANCE
   EMail: griffoul@ulticom.com

   Furquan Ansari
   Bell Labs, Lucent Tech.
   101 Crawfords Corner Rd., Holmdel, NJ 07733
   Phone : 1 732 949 5249
   Fax   : 1 732 949 4556
   EMail: furquan@dnrc.bell-labs.com
































Ooms, et al.                 Informational                     [Page 29]
^L
RFC 3353          IP Multicast in an MPLS Environment        August 2002


Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.



















Ooms, et al.                 Informational                     [Page 30]
^L