summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6621.txt
blob: 17ef851d0af21ff997c4782b4ba910be08855b71 (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
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
Internet Engineering Task Force (IETF)                    J. Macker, Ed.
Request for Comments: 6621                                           NRL
Category: Experimental                                          May 2012
ISSN: 2070-1721


                    Simplified Multicast Forwarding

Abstract

   This document describes a Simplified Multicast Forwarding (SMF)
   mechanism that provides basic Internet Protocol (IP) multicast
   forwarding suitable for limited wireless mesh and mobile ad hoc
   network (MANET) use.  It is mainly applicable in situations where
   efficient flooding represents an acceptable engineering design trade-
   off.  It defines techniques for multicast duplicate packet detection
   (DPD), to be applied in the forwarding process, for both IPv4 and
   IPv6 protocol use.  This document also specifies optional mechanisms
   for using reduced relay sets to achieve more efficient multicast data
   distribution within a mesh topology as compared to Classic Flooding.
   Interactions with other protocols, such as use of information
   provided by concurrently running unicast routing protocols or
   interaction with other multicast protocols, as well as multiple
   deployment approaches are also described.  Distributed algorithms for
   selecting reduced relay sets and related discussion are provided in
   the appendices.  Basic issues relating to the operation of multicast
   MANET border routers are discussed, but ongoing work remains in this
   area and is beyond the scope of this document.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for examination, experimental implementation, and
   evaluation.

   This document defines an Experimental Protocol for the Internet
   community.  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).  Not
   all documents approved by the IESG are a candidate for any level of
   Internet Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6621.





Macker                        Experimental                      [Page 1]
^L
RFC 6621                           SMF                          May 2012


Copyright Notice

   Copyright (c) 2012 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
   (http://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 Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1. Introduction and Scope ..........................................4
   2. Terminology .....................................................4
   3. Applicability Statement .........................................5
   4. Overview and Functioning ........................................6
   5. SMF Packet Processing and Forwarding ............................8
   6. SMF Duplicate Packet Detection .................................10
      6.1. IPv6 Duplicate Packet Detection ...........................11
           6.1.1. IPv6 SMF_DPD Option Header .........................12
           6.1.2. IPv6 Identification-Based DPD ......................14
           6.1.3. IPv6 Hash-Based DPD ................................16
      6.2. IPv4 Duplicate Packet Detection ...........................17
           6.2.1. IPv4 Identification-Based DPD ......................18
           6.2.2. IPv4 Hash-Based DPD ................................19
   7. Relay Set Selection ............................................20
      7.1. Non-Reduced Relay Set Forwarding ..........................20
      7.2. Reduced Relay Set Forwarding ..............................20
   8. SMF Neighborhood Discovery Requirements ........................23
      8.1. SMF Relay Algorithm TLV Types .............................24
           8.1.1. SMF Message TLV Type ...............................24



Macker                        Experimental                      [Page 2]
^L
RFC 6621                           SMF                          May 2012


           8.1.2. SMF Address Block TLV Type .........................25
   9. SMF Border Gateway Considerations ..............................26
      9.1. Forwarded Multicast Groups ................................27
      9.2. Multicast Group Scoping ...................................28
      9.3. Interface with Exterior Multicast Routing Protocols .......29
      9.4. Multiple Border Routers ...................................29
   10. Security Considerations .......................................31
   11. IANA Considerations ...........................................32
      11.1. IPv6 SMF_DPD Header Extension Option Type ................33
      11.2. TaggerId Types (TidTy) ...................................33
      11.3. Well-Known Multicast Address .............................34
      11.4. SMF TLVs .................................................34
           11.4.1. Expert Review for Created Type Extension
                   Registries ........................................34
           11.4.2. SMF Message TLV Type (SMF_TYPE) ...................34
           11.4.3. SMF Address Block TLV Type (SMF_NBR_TYPE) .........35
           11.4.4. SMF Relay Algorithm ID Registry ...................35
   12. Acknowledgments ...............................................36
   13. References ....................................................37
      13.1. Normative References .....................................37
      13.2. Informative References ...................................38
   Appendix A.  Essential Connecting Dominating Set (E-CDS)
                Algorithm ............................................40
     A.1.  E-CDS Relay Set Selection Overview ........................40
     A.2.  E-CDS Forwarding Rules ....................................41
     A.3.  E-CDS Neighborhood Discovery Requirements .................41
     A.4.  E-CDS Selection Algorithm .................................44
   Appendix B.  Source-Based Multipoint Relay (S-MPR) Algorithm ......46
     B.1.  S-MPR Relay Set Selection Overview ........................46
     B.2.  S-MPR Forwarding Rules ....................................47
     B.3.  S-MPR Neighborhood Discovery Requirements .................48
     B.4.  S-MPR Selection Algorithm .................................50
   Appendix C.  Multipoint Relay Connected Dominating Set
                (MPR-CDS) Algorithm ..................................52
     C.1.  MPR-CDS Relay Set Selection Overview ......................52
     C.2.  MPR-CDS Forwarding Rules ..................................53
     C.3.  MPR-CDS Neighborhood Discovery Requirements ...............53
     C.4.  MPR-CDS Selection Algorithm ...............................54













Macker                        Experimental                      [Page 3]
^L
RFC 6621                           SMF                          May 2012


1.  Introduction and Scope

   Unicast routing protocols, designed for MANET and wireless mesh use,
   often apply distributed algorithms to flood routing control plane
   messages within a MANET routing domain.  For example, algorithms
   specified within [RFC3626] and [RFC3684] provide distributed methods
   of dynamically electing reduced relay sets that attempt to
   efficiently flood routing control messages while maintaining a
   connected set under dynamic topological conditions.

   Simplified Multicast Forwarding (SMF) extends the efficient flooding
   concept to the data forwarding plane, providing an appropriate
   multicast forwarding capability for use cases where localized,
   efficient flooding is considered an effective design approach.  The
   baseline design is intended to provide a basic, best-effort multicast
   forwarding capability that is constrained to operate within a single
   MANET routing domain.

   An SMF routing domain is an instance of an SMF routing protocol with
   common policies, under a single network administration authority.
   The main design goals of this document are to:

   o  adapt efficient relay sets in MANET environments [RFC2501], and

   o  define the needed IPv4 and IPv6 multicast duplicate packet
      detection (DPD) mechanisms to support multi-hop packet forwarding.

2.  Terminology

   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
   [RFC2119].

   The terms introduced in [RFC5444], including "packet", "message",
   "TLV Block", "TLV", and "address", are to be interpreted as described
   therein.














Macker                        Experimental                      [Page 4]
^L
RFC 6621                           SMF                          May 2012


   The following abbreviations are used throughout this document:

   +--------------+----------------------------------------------------+
   | Abbreviation | Definition                                         |
   +--------------+----------------------------------------------------+
   | MANET        | Mobile Ad Hoc Network                              |
   | SMF          | Simplified Multicast Forwarding                    |
   | CF           | Classic Flooding                                   |
   | CDS          | Connected Dominating Set                           |
   | MPR          | Multipoint Relay                                   |
   | S-MPR        | Source-based MPR                                   |
   | MPR-CDS      | MPR-based CDS                                      |
   | E-CDS        | Essential CDS                                      |
   | NHDP         | Neighborhood Discovery Protocol                    |
   | DPD          | Duplicate Packet Detection                         |
   | I-DPD        | Identification-based DPD                           |
   | H-DPD        | Hash-based DPD                                     |
   | HAV          | Hash assist value                                  |
   | FIB          | Forwarding Information Base                        |
   | TLV          | type-length-value encoding                         |
   | DoS          | Denial of Service                                  |
   | SMF Router   | A MANET Router implementing the protocol specified |
   |              | in this document                                   |
   | SMF Routing  | A MANET Routing Domain wherein the protocol        |
   | Domain       | specified in this document is operating            |
   +--------------+----------------------------------------------------+

3.  Applicability Statement

   Within dynamic wireless routing topologies, maintaining traditional
   forwarding trees to support a multicast routing protocol is often not
   as effective as in wired networks due to the reduced reliability and
   increased dynamics of mesh topologies [MGL04][GM99].  A basic packet
   forwarding service reaching all connected routers running the SMF
   protocol within a MANET routing domain may provide a useful group
   communication paradigm for various classes of applications, for
   example, multimedia streaming, interactive group-based messaging and
   applications, peer-to-peer middleware multicasting, and multi-hop
   mobile discovery or registration services.  SMF is likely only
   appropriate for deployment in limited dynamic MANET routing domains
   (further defined as administratively scoped multicast forwarding
   domains in Section 9.2) so that the flooding process can be
   contained.

   A design goal is that hosts may also participate in multicast traffic
   transmission and reception with standard IP network-layer semantics
   (e.g., special or unnecessary encapsulation of IP packets should be
   avoided in this case).  SMF deployments are able to connect and



Macker                        Experimental                      [Page 5]
^L
RFC 6621                           SMF                          May 2012


   interoperate with existing standard multicast protocols operating
   within more conventional Internet infrastructures.  To this end, a
   multicast border router or proxy mechanism MUST be used when deployed
   alongside more fixed-infrastructure IP multicast routing such
   Protocol Independent Multicast (PIM) variants [RFC3973][RFC4601].
   Experimental SMF implementations and deployments have demonstrated
   gateway functionality at MANET border routers operating with existing
   external IP multicast routing protocols [CDHM07][DHS08][DHG09].  SMF
   may be extended or combined with other mechanisms to provide
   increased reliability and group-specific filtering; the details for
   this are out of the scope of this document.

   This document does not presently support forwarding of packets with
   directed broadcast addresses as a destination [RFC2644].

4.  Overview and Functioning

   Figure 1 provides an overview of the logical SMF router architecture,
   consisting of "Neighborhood Discovery", "Relay Set Selection", and
   "Forwarding Process" components.  Typically, relay set selection (or
   self-election) occurs based on dynamic input from a neighborhood
   discovery process.  SMF supports the case where neighborhood
   discovery and/or relay set selection information is obtained from a
   coexistent process (e.g., a lower-layer mechanism or a unicast
   routing protocol using relay sets).  In some algorithm designs, the
   forwarding decision for a packet can also depend on previous hop or
   incoming interface information.  The asterisks (*) in Figure 1 mark
   the primitives and relationships needed by relay set algorithms
   requiring previous-hop packet-forwarding knowledge.
                ______________                _____________
               |              |              |             |
               | Neighborhood |              |  Relay Set  |
               |  Discovery   |------------->|  Selection  |
               |              |   neighbor   |             |
               |______________|     info     |_____________|
                      \                              /
                       \                            /
                neighbor\                          /forwarding
                  info*  \      ____________      /  status
                          \    |            |    /
                           `-->| Forwarding |<--'
                               |  Process   |
             ~~~~~~~~~~~~~~~~~>|____________|~~~~~~~~~~~~~~~~~>
             incoming packet,                 forwarded packets
             interface id*, and
             previous hop*

                     Figure 1: SMF Router Architecture



Macker                        Experimental                      [Page 6]
^L
RFC 6621                           SMF                          May 2012


   Certain IP multicast packets, defined in Sections 9.2 and 5, are
   "non-forwardable".  These multicast packets MUST be ignored by the
   SMF forwarding engine.  The SMF forwarding engine MAY also work with
   policies and management interfaces to allow additional filtering
   control over which multicast packets are considered for potential SMF
   forwarding.  This interface would allow more refined dynamic
   forwarding control once such techniques are matured for MANET
   operation.  At present, further discussion of dynamic control is left
   to future work.

   Interoperable SMF implementations MUST use compatible DPD approaches
   and be able to process the header options defined in this document
   for IPv6 operation.

   Classic Flooding (CF) is defined as the simplest case of SMF
   multicast forwarding.  With CF, all SMF routers forward each received
   multicast packet exactly once.  In this case, the need for any relay
   set selection or neighborhood topology information is eliminated, at
   the expense of additional network overhead incurred from unnecessary
   packet retransmissions.  With CF, the SMF DPD functionality is still
   required.  While SMF supports CF as a mode of operation, the use of
   more efficient relay set modes is RECOMMENDED in order to reduce
   contention and congestion caused by unnecessary packet
   retransmissions [NTSC99].

   An efficient reduced relay set is constructed by selecting and
   updating, as needed, a subset of all possible routers in a MANET
   routing domain to act as SMF forwarders.  Known distributed relay set
   selection algorithms have demonstrated the ability to provide and
   maintain a dynamic connected set for forwarding multicast IP packets
   [MDC04].  A few such relay set selection algorithms are described in
   the appendices of this document, and the basic designs borrow
   directly from previously documented IETF work.  SMF relay set
   configuration is extensible, and additional relay set algorithms
   beyond those specified here can be accommodated in future work.

   Determining and maintaining an optimized set of relays generally
   requires dynamic neighborhood topology information.  Neighborhood
   topology discovery functions MAY be provided by a MANET unicast
   routing protocol or by using the MANET Neighborhood Discovery
   Protocol (NHDP) [RFC6130], operating concurrently with SMF.  This
   specification also allows alternative lower-layer interfaces (e.g.,
   radio router interfaces) to provide the necessary neighborhood
   information to aid in supporting more effective relay set selection.
   An SMF implementation SHOULD provide the ability for multicast
   forwarding state to be dynamically managed per operating network
   interface.  The relay state maintenance options and interactions are
   outlined in Section 7.  This document states specific requirements



Macker                        Experimental                      [Page 7]
^L
RFC 6621                           SMF                          May 2012


   for neighborhood discovery with respect to the forwarding process and
   the relay set selection algorithms described herein.  For determining
   dynamic relay sets in the absence of other control protocols, SMF
   relies on NHDP to assist in IP-layer 2-hop neighborhood discovery and
   maintenance for relay set selection.  "SMF_TYPE" and "SMF_NBR_TYPE"
   Message and Address Block TLV structures (per [RFC5444]) are defined
   by this document for use with NHDP to carry SMF-specific information.
   It is RECOMMENDED that all routers performing SMF operation in
   conjunction with NHDP include these TLV types in any NHDP HELLO
   messages generated.  This capability allows for routers participating
   in SMF to be explicitly identified along with their respective
   dynamic relay set algorithm configuration.

5.  SMF Packet Processing and Forwarding

   The SMF packet processing and forwarding actions are conducted with
   the following packet handling activities:

   1.  Processing of outbound, locally generated multicast packets.

   2.  Reception and processing of inbound packets on specific network
       interfaces.

   The purpose of intercepting outbound, locally generated multicast
   packets is to apply any added packet marking needed to satisfy the
   DPD requirements so that proper forwarding may be conducted.  Note
   that for some system configurations, the interception of outbound
   packets for this purpose is not necessary.

   Inbound multicast packets are received by the SMF implementation and
   processed for possible forwarding.  SMF implementations MUST be
   capable of forwarding IP multicast packets with destination addresses
   that are not router-local and link-local for IPv6, as defined in
   [RFC4291], and that are not within the local network control block as
   defined by [RFC5771].

   This will support generic multi-hop multicast application needs or
   distribute designated multicast traffic ingressing the SMF routing
   domain via border routers.  The multicast addresses to be forwarded
   should be maintained by an a priori list or a dynamic forwarding
   information base (FIB) that MAY interact with future MANET dynamic
   group membership extensions or management functions.

   The SL-MANET-ROUTERS multicast group is defined to contain all
   routers within an SMF routing domain, so that packets transmitted to
   the multicast address associated with the group will be attempted to
   be delivered to all connected routers running SMF.  Due to the mobile
   nature of a MANET, routers running SMF may not be topologically



Macker                        Experimental                      [Page 8]
^L
RFC 6621                           SMF                          May 2012


   connected at particular times.  For IPv6, SL-MANET-ROUTERS is
   specified to be "site-local".  Minimally, SMF MUST forward, as
   instructed by the relay set selection algorithm, unique (non-
   duplicate) packets received for SL-MANET-ROUTERS when the Time to
   Live (TTL) / hop limit or hop limit value in the IP header is greater
   than 1.  SMF MUST forward all additional global-scope multicast
   addresses specified within the dynamic FIB or configured list as
   well.  In all cases, the following rules MUST be observed for SMF
   multicast forwarding:

   1.  Any IP packets not addressed to an IP multicast address MUST NOT
       be forwarded by the SMF forwarding engine.

   2.  IP multicast packets with TTL/hop limit <= 1 MUST NOT be
       forwarded.

   3.  Link local IP multicast packets MUST NOT be forwarded.

   4.  Incoming IP multicast packets with an IP source address matching
       one of those of the local SMF router interface(s) MUST NOT be
       forwarded.

   5.  Received frames with the Media Access Control (MAC) source
       address matching any MAC address of the router's interfaces MUST
       NOT be forwarded.

   6.  Received packets for which SMF cannot reasonably ensure temporal
       DPD uniqueness MUST NOT be forwarded.

   7.  Prior to being forwarded, the TTL/hop limit of the forwarded
       packet MUST be decremented by one.

   Note that rule #4 is important because over some types of wireless
   interfaces, the originating SMF router may receive retransmissions of
   its own packets when they are forwarded by adjacent routers.  This
   rule avoids unnecessary retransmission of locally generated packets
   even when other forwarding decision rules would apply.

   An additional processing rule also needs to be considered based upon
   a potential security threat.  As discussed in Section 10, there is a
   potential DoS attack that can be conducted by remotely "previewing"
   (e.g., via a directional receive antenna) packets that an SMF router
   would be forwarding and conducting a "pre-play" attack by
   transmitting the packet before the SMF router would otherwise receive
   it, but with a reduced TTL/hop limit field value.  This form of
   attack can cause an SMF router to create a DPD entry that would block
   the proper forwarding of the valid packet (with correct TTL/hop
   limit) through the SMF routing domain.  A RECOMMENDED approach to



Macker                        Experimental                      [Page 9]
^L
RFC 6621                           SMF                          May 2012


   prevent this attack, when it is a concern, would be to cache temporal
   packet TTL/hop limit values along with the per-packet DPD state (hash
   value(s) and/or identifier as described in Section 6).  Then, if a
   subsequent matching (with respect to DPD) packet arrives with a
   larger TTL/hop limit value than the packet that was previously
   forwarded, SMF should forward the new packet and update the TTL/hop
   limit value cached with corresponding DPD state to the new, larger
   TTL/hop limit value.  There may be temporal cases where SMF would
   unnecessarily forward some duplicate packets using this approach, but
   those cases are expected to be minimal and acceptable when compared
   with the potential threat of denied service.

   Once the SMF multicast forwarding rules have been applied, an SMF
   implementation MUST make a forwarding decision dependent upon the
   relay set selection algorithm in use.  If the SMF implementation is
   using Classic Flooding (CF), the forwarding decision is implicit once
   DPD uniqueness is determined.  Otherwise, a forwarding decision
   depends upon the current interface-specific relay set state.  The
   descriptions of the relay set selection algorithms in the appendices
   to this document specify the respective heuristics for multicast
   packet forwarding and specific DPD or other processing required to
   achieve correct SMF behavior in each case.  For example, one class of
   forwarding is based upon relay set selection status and the packet's
   previous hop, while other classes designate the local SMF router as a
   forwarder for all neighboring routers.

6.  SMF Duplicate Packet Detection

   Duplicate packet detection (DPD) is often a requirement in MANET or
   wireless mesh packet forwarding mechanisms because packets may be
   transmitted out via the same physical interface as the one over which
   they were received.  Routers may also receive multiple copies of the
   same packets from different neighbors or interfaces.  SMF operation
   requires DPD, and implementations MUST provide mechanisms to detect
   and reduce the likelihood of forwarding duplicate multicast packets
   using temporal packet identification.  It is RECOMMENDED this be
   implemented by keeping a history of recently processed multicast
   packets for comparison with incoming packets.  A DPD packet cache
   history SHOULD be kept long enough so as to span the maximum network
   traversal lifetime, MAX_PACKET_LIFETIME, of multicast packets being
   forwarded within an SMF routing domain.  The DPD mechanism SHOULD
   avoid keeping unnecessary state for packet flows such as those that
   are locally generated or link-local destinations that would not be
   considered for forwarding, as presented in Section 5.

   For both IPv4 and IPv6, this document describes two basic multicast
   duplicate packet detection mechanisms: header content identification-
   based (I-DPD) and hash-based (H-DPD) duplicate packet detection.



Macker                        Experimental                     [Page 10]
^L
RFC 6621                           SMF                          May 2012


   I-DPD is a mechanism using specific packet headers, and option
   headers in the case of IPv6, in combination with flow state to
   estimate the temporal uniqueness of a packet.  H-DPD uses hashing
   over header fields and payload of a multicast packet to provide an
   estimation of temporal uniqueness.

   Trade-offs of the two approaches to DPD merit different
   considerations dependent upon the specific SMF deployment scenario.

   Because of the potential addition of a hop-by-hop option header with
   IPv6, all SMF routers in the same SMF deployments MUST be configured
   so as to use a common mechanism and DPD algorithm.  The main
   difference between IPv4 and IPv6 SMF DPD specifications is the
   avoidance of any additional header options for IPv4.

   For each network interface, SMF implementations MUST maintain DPD
   packet state as needed to support the forwarding heuristics of the
   relay set algorithm used.  In general, this involves keeping track of
   previously forwarded packets so that duplicates are not forwarded,
   but some relay techniques have additional considerations, such as
   those discussed in Appendix B.2.

   Additional details of I-DPD and H-DPD processing and maintenance for
   different classes of packets are described in the following
   subsections.

6.1.  IPv6 Duplicate Packet Detection

   This section describes the mechanisms and options for SMF IPv6 DPD.
   The base IPv6 packet header does not provide an explicit packet
   identification header field that can be exploited for I-DPD.  The
   following options are therefore described to support IPv6 DPD:

   1.  a hop-by-hop SMF_DPD option header, defined in this document
       (Section 6.1.1),

   2.  the use of IPv6 fragment header fields for I-DPD, if one is
       present (Section 6.1.2),

   3.  the use of IPsec sequencing for I-DPD when a non-fragmented,
       IPsec header is detected (Section 6.1.2), and

   4.  an H-DPD approach assisted, as needed, by the SMF_DPD option
       header (Section 6.1.3).

   SMF MUST provide a DPD marking module that can insert the hop-by-hop
   IPv6 header option, defined in Section 6.1.1.  This module MUST be
   invoked after any source-based fragmentation that may occur with



Macker                        Experimental                     [Page 11]
^L
RFC 6621                           SMF                          May 2012


   IPv6, so as to ensure that all fragments are suitably marked.  SMF
   IPv6 DPD is presently specified to allow either a packet hash or
   header identification method for DPD.  An SMF implementation MUST be
   configured to operate either in I-DPD or H-DPD mode and perform the
   corresponding tasks, outlined in Sections 6.1.2 and 6.1.3.

6.1.1.  IPv6 SMF_DPD Option Header

   This section defines an IPv6 Hop-by-Hop Option [RFC2460], SMF_DPD, to
   serve the purpose of unique packet identification for IPv6 I-DPD.
   Additionally, the SMF_DPD option header provides a mechanism to
   guarantee non-collision of hash values for different packets when
   H-DPD is used.

   If this is the only hop-by-hop option present, the optional TaggerId
   field (see below) is not included, and the size of the DPD packet
   identifier (sequence number) or hash token is 24 bits or less, this
   will result in the addition of 8 bytes to the IPv6 packet header
   including the "Next Header", "Header Extension Length", SMF_DPD
   option fields, and padding.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              |0|0|0|  01000  | Opt. Data Len |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |H|  DPD Identifier Option Fields or Hash Assist Value  ...
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Figure 2: IPv6 SMF_DPD Hop-by-Hop Option Header

   "Option Type" = 00001000.  The highest order three bits are 000
   because this specification requires that routers not recognizing this
   option type skip over this option and continue processing the header
   and that the option must not change en route [RFC2460].

   "Opt. Data Len" = Length of option content (i.e., 1 + (<IdType> ?
   (<IdLen> + 1): 0) + Length(DPD ID)).

   "H-bit" = a hash indicator bit value identifying DPD marking type. 0
   == sequence-based approach with optional TaggerId and a tuple-based
   sequence number. 1 == indicates a hash assist value (HAV) field
   follows to aid in avoiding hash-based DPD collisions.

   When the "H-bit" is cleared (zero value), the SMF_DPD format to
   support I-DPD operation is specified as shown in Figure 3 and defines
   the extension header in accordance with [RFC2460].




Macker                        Experimental                     [Page 12]
^L
RFC 6621                           SMF                          May 2012


        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      ...              |0|0|0|  01000  | Opt. Data Len |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |0|TidTy| TidLen|             TaggerId (optional) ...           |
       +-+-+-+-+-+-+-+-+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                               |            Identifier  ...
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 3: IPv6 SMF_DPD Option Header in I-DPD mode

   "TidTy" = a 3-bit field indicating the presence and type of the
   optional TaggerId field.

   "TidLen" = a 4-bit field indicating the length (in octets) of the
   following TaggerId field.

   "TaggerId" = a field, is used to differentiate multiple ingressing
   border gateways that may commonly apply the SMF_DPD option header to
   packets from a particular source.  Table 1 lists the TaggerId types
   used in this document:

   +---------+---------------------------------------------------------+
   | Name    | Purpose                                                 |
   +---------+---------------------------------------------------------+
   | NULL    | Indicates no TaggerId field is present. "TidLen" MUST   |
   |         | also be set to ZERO.                                    |
   | DEFAULT | A TaggerId of non-specific context is present. "TidLen  |
   |         | + 1" defines the length of the TaggerId field in bytes. |
   | IPv4    | A TaggerId representing an IPv4 address is present. The |
   |         | "TidLen" MUST be set to 3.                              |
   | IPv6    | A TaggerId representing an IPv6 address is present. The |
   |         | "TidLen" MUST be set to 15.                             |
   +---------+---------------------------------------------------------+

                          Table 1: TaggerId Types

   This format allows a quick check of the "TidTy" field to determine if
   a TaggerId field is present.  If "TidTy" is NULL, then the length of
   the DPD packet <Identifier> field corresponds to (<Opt. Data Len> -
   1).  If the <TidTy> is non-NULL, then the length of the TaggerId
   field is equal to (<TidLen> - 1), and the remainder of the option
   data comprises the DPD packet <Identifier> field.  When the TaggerId
   field is present, the <Identifier> field can be considered a unique
   packet identifier in the context of the <TaggerId:srcAddr:dstAddr>
   tuple.  When the TaggerId field is not present, then it is assumed
   that the source applied the SMF_DPD option and the <Identifier> can



Macker                        Experimental                     [Page 13]
^L
RFC 6621                           SMF                          May 2012


   be considered unique in the context of the IPv6 packet header
   <srcAddr:dstAddr> tuple.  IPv6 I-DPD operation details are in
   Section 6.1.2.

   When the "H-bit" in the SMF_DPD option data is set, the data content
   value is interpreted as a hash assist value (HAV) used to facilitate
   H-DPD operation.  In this case, the source or ingressing gateways
   apply the SMF_DPD with an HAV only when required to differentiate the
   hash value of a new packet with respect to hash values in the DPD
   cache.  This situation can be detected locally on the router by
   running the hash algorithm and checking the DPD cache, prior to
   ingressing a previously unmarked packet or a locally sourced packet.
   This helps to guarantee the uniqueness of generated hash values when
   H-DPD is used.  Additionally, this avoids the added overhead of
   applying the SMF_DPD option header to every packet.  For many hash
   algorithms, it is expected that only sparse use of the SMF_DPD option
   may be required.  The format of the SMF_DPD option header for H-DPD
   operation is given in Figure 4.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              |0|0|0| OptType | Opt. Data Len |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1|    Hash Assist Value (HAV) ...
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 4: IPv6 SMF_DPD Option Header in H-DPD Mode

   The SMF_DPD option should be applied with an HAV to produce a unique
   hash digest for packets within the context of the IPv6 packet header
   <srcAddr>.  The size of the HAV field is implied by "Opt. Data Len".
   The appropriate size of the field depends upon the collision
   properties of the specific hash algorithm used.  More details on IPv6
   H-DPD operation are provided in Section 6.1.3.

6.1.2.  IPv6 Identification-Based DPD

   Table 2 summarizes the IPv6 I-DPD processing and forwarding decision
   approach.  Within the table, '*' indicates an ignore field condition.











Macker                        Experimental                     [Page 14]
^L
RFC 6621                           SMF                          May 2012


   +-------------+-----------+-----------+-----------------------------+
   | IPv6        | IPv6      | IPv6      | SMF IPv6 I-DPD Mode Action  |
   | Fragment    | IPsec     | I-DPD     |                             |
   | Header      | Header    | Header    |                             |
   +-------------+-----------+-----------+-----------------------------+
   | Present     | *         | Not       | Use Fragment Header I-DPD   |
   |             |           | Present   | Check and Process for       |
   |             |           |           | Forwarding                  |
   | Not Present | Present   | Not       | Use IPsec Header I-DPD      |
   |             |           | Present   | Check and Process for       |
   |             |           |           | Forwarding                  |
   | Present     | *         | Present   | Invalid; do not forward.    |
   | Not Present | Present   | Present   | Invalid; do not forward.    |
   | Not Present | Not       | Not       | Add I-DPD Header, and       |
   |             | Present   | Present   | Process for Forwarding      |
   | Not Present | Not       | Present   | Use I-DPD Header Check and  |
   |             | Present   |           | Process for Forwarding      |
   +-------------+-----------+-----------+-----------------------------+

                   Table 2: IPv6 I-DPD Processing Rules

   1.  If a received IPv6 multicast packet is an IPv6 fragment, SMF MUST
       use the fragment extension header fields for packet
       identification.  This identifier can be considered unique in the
       context of the <srcAddr:dstAddr> of the IP packet.

   2.  If the packet is an unfragmented IPv6 IPsec packet, SMF MUST use
       IPsec fields for packet identification.  The IPsec header
       <sequence> field can be considered a unique identifier in the
       context of the <IPsecType:srcAddr:dstAddr:SPI> where "IPsecType"
       is either Authentication Header (AH) or Encapsulating Security
       Payload (ESP) [RFC4302].

   3.  For unfragmented, non-IPsec IPv6 packets, the use of the SMF_DPD
       option header is necessary to support I-DPD operation.  The
       SMF_DPD option header is applied in the context of the <srcAddr>
       of the IP packet.  Hosts or ingressing SMF gateways are
       responsible for applying this option to support DPD.  Table 3
       summarizes these packet identification types:












Macker                        Experimental                     [Page 15]
^L
RFC 6621                           SMF                          May 2012


   +-----------+---------------------------------+---------------------+
   | IPv6      | Packet DPD ID Context           | Packet DPD ID       |
   | Packet    |                                 |                     |
   | Type      |                                 |                     |
   +-----------+---------------------------------+---------------------+
   | Fragment  | <srcAddr:dstAddr>               | <fragmentOffset:id> |
   | IPsec     | <IPsecType:srcAddr:dstAddr:SPI> | <sequence>          |
   | Packet    |                                 |                     |
   | Regular   | <[TaggerId:]srcAddr:dstAddr>    | <SMF_DPD option     |
   | Packet    |                                 | header id>          |
   +-----------+---------------------------------+---------------------+

              Table 3: IPv6 I-DPD Packet Identification Types

   "IPsecType" is either Authentication Header (AH) or Encapsulating
   Security Payload (ESP).

   The "TaggerId" is an optional field of the IPv6 SMF_DPD option
   header.

6.1.3.  IPv6 Hash-Based DPD

   A default hash-based DPD approach (H-DPD) for use by SMF is specified
   as follows.  An SHA-1 [RFC3174] hash of the non-mutable header
   fields, options fields, and data content of the IPv6 multicast packet
   is used to produce a 160-bit digest.  The approach for calculating
   this hash value SHOULD follow the same guidelines described for
   calculating the Integrity Check Value (ICV) described in [RFC4302]
   with respect to non-mutable fields.  This approach should have a
   reasonably low probability of digest collision when packet headers
   and content are varying.  SHA-1 is being applied in SMF only to
   provide a low probability of collision and is not being used for
   cryptographic or authentication purposes.  A history of the packet
   hash values SHOULD be maintained within the context of the IPv6
   packet header <srcAddr>.  SMF ingress points (i.e., source hosts or
   gateways) use this history to confirm that new packets are unique
   with respect to their hash value.  The hash assist value (HAV) field
   described in Section 6.1.1 is provided as a differentiating field
   when a digest collision would otherwise occur.  Note that the HAV is
   an immutable option field, and SMF MUST process any included HAV
   values (see Section 6.1.1) in its hash calculation.

   If a packet results in a digest collision (i.e., by checking the
   H-DPD digest history) within the DPD cache kept by SMF forwarders,
   the packet SHOULD be silently dropped.  If a digest collision is
   detected at an SMF ingress point, the H-DPD option header is
   constructed with a randomly generated HAV.  An HAV is recalculated as
   needed to produce a non-colliding hash value prior to forwarding.



Macker                        Experimental                     [Page 16]
^L
RFC 6621                           SMF                          May 2012


   The multicast packet is then forwarded with the added IPv6 SMF_DPD
   option header.  A common hash approach MUST be used by SMF routers
   for the applied HAV to consistently avoid hash collision and thus
   inadvertent packet drops.

   The SHA-1 indexing and IPv6 HAV approaches are specified at present
   for consistency and robustness to suit experimental uses.  Future
   approaches and experimentation may discover design trade-offs in hash
   robustness and efficiency worth considering.  Enhancements MAY
   include reducing the maximum payload length that is processed,
   determining shorter indexes, or applying more efficient hashing
   algorithms.  Use of the HAV functionality may allow for application
   of "lighter-weight" hashing techniques that might not have been
   initially considered otherwise due to poor collision properties.
   Such techniques could reduce packet-processing overhead and memory
   requirements.

6.2.  IPv4 Duplicate Packet Detection

   This section describes the mechanisms and options for IPv4 DPD.  The
   following areas are described to support IPv4 DPD:

   1.  the use of IPv4 fragment header fields for I-DPD when they exist
       (Section 6.2.1),

   2.  the use of IPsec sequencing for I-DPD when a non-fragmented IPv4
       IPsec packet is detected (Section 6.2.1), and

   3.  an H-DPD approach(Section 6.2.2) when neither of the above cases
       can be applied.

   Although the IPv4 datagram has a 16-bit Identification (ID) field as
   specified in [RFC0791], it cannot be relied upon for DPD purposes due
   to common computer operating system implementation practices and the
   reasons described in the updated specification of the IPv4 ID Field
   [IPV4-ID-UPDATE].  An SMF IPv4 DPD marking option like the IPv6
   SMF_DPD option header is not specified since IPv4 header options are
   not as tractable for hosts as they are for IPv6.  However, when IPsec
   is applied or IPv4 packets have been fragmented, the I-DPD approach
   can be applied reliably using the corresponding packet identifier
   fields described in Section 6.2.1.  For the general IPv4 case (non-
   IPsec and non-fragmented packets), the H-DPD approach of
   Section 6.2.2 is RECOMMENDED.








Macker                        Experimental                     [Page 17]
^L
RFC 6621                           SMF                          May 2012


   Since IPv4 SMF does not specify an option header, the
   interoperability constraints are looser than in the IPv6 version, and
   forwarders may operate with mixed H-DPD and I-DPD modes as long as
   they consistently perform the appropriate DPD routines outlined in
   the following sections.  However, it is RECOMMENDED that a deployment
   be configured with a common mode for operational consistency.

6.2.1.  IPv4 Identification-Based DPD

   Table 4 summarizes the IPv4 I-DPD processing approach once a packet
   has passed the basic forwardable criteria described in Section 5.  To
   summarize, for IPv4, I-DPD is applicable only for packets that have
   been fragmented or have IPsec applied.  In Table 4, '*' indicates an
   ignore field condition.  DF, MF, and Fragment offset correspond to
   related fields and flags defined in [RFC0791].

   +------+------+----------+---------+--------------------------------+
   | DF   | MF   | Fragment | IPsec   | IPv4 I-DPD Action              |
   | flag | flag | offset   |         |                                |
   +------+------+----------+---------+--------------------------------+
   | 1    | 1    | *        | *       | Invalid; do not forward.       |
   | 1    | 0    | nonzero  | *       | Invalid; do not forward.       |
   | *    | 0    | zero     | not     | Use H-DPD check instead        |
   |      |      |          | Present |                                |
   | *    | 0    | zero     | Present | IPsec enhanced Tuple I-DPD     |
   |      |      |          |         | Check and Process for          |
   |      |      |          |         | Forwarding                     |
   | 0    | 0    | nonzero  | *       | Extended Fragment Offset Tuple |
   |      |      |          |         | I-DPD Check and Process for    |
   |      |      |          |         | Forwarding                     |
   | 0    | 1    | zero or  | *       | Extended Fragment Offset Tuple |
   |      |      | nonzero  |         | I-DPD Check and Process for    |
   |      |      |          |         | Forwarding                     |
   +------+------+----------+---------+--------------------------------+

                   Table 4: IPv4 I-DPD Processing Rules

   For performance reasons, IPv4 network fragmentation and reassembly of
   multicast packets within wireless MANET networks should be minimized,
   yet SMF provides the forwarding of fragments when they occur.  If the
   IPv4 multicast packet is a fragment, SMF MUST use the fragmentation
   header fields for packet identification.  This identification can be
   considered temporally unique in the context of the <protocol:srcAddr:
   dstAddr> of the IPv4 packet.  If the packet is an unfragmented IPv4
   IPsec packet, SMF MUST use IPsec fields for packet identification.
   The IPsec header <sequence> field can be considered a unique





Macker                        Experimental                     [Page 18]
^L
RFC 6621                           SMF                          May 2012


   identifier in the context of the <IPsecType:srcAddr:dstAddr:SPI>
   where "IPsecType" is either AH or ESP [RFC4302].  Table 5 summarizes
   these packet identification types:

   +-----------+---------------------------------+---------------------+
   | IPv4      | Packet Identification Context   | Packet Identifier   |
   | Packet    |                                 |                     |
   | Type      |                                 |                     |
   +-----------+---------------------------------+---------------------+
   | Fragment  | <protocol:srcAddr:dstAddr>      | <fragmentOffset:id> |
   | IPsec     | <IPsecType:srcAddr:dstAddr:SPI> | <sequence>          |
   | Packet    |                                 |                     |
   +-----------+---------------------------------+---------------------+

              Table 5: IPv4 I-DPD Packet Identification Types

   "IPsecType" is either Authentication Header (AH) or Encapsulating
   Security Payload (ESP).

6.2.2.  IPv4 Hash-Based DPD

   The hashing technique here is similar to that specified for IPv6 in
   Section 6.1.3, but the H-DPD header option with HAV is not
   considered.  To ensure consistent IPv4 H-DPD operation among SMF
   routers, a default hashing approach is specified.  A common DPD
   hashing algorithm for an SMF routing area is RECOMMENDED because
   colliding hash values for different packets result in "false
   positive" duplicate packet detection, and there is small probability
   that valid packets may be dropped based on the hashing technique
   used.  Since the "hash assist value" approach is not available for
   IPv4, use of a common hashing approach minimizes the probability of
   hash collision packet drops over multiple hops of forwarding.

   SMF MUST perform a SHA-1 [RFC3174] hash of the immutable header
   fields, option fields, and data content of the IPv4 multicast packet
   resulting in a 160-bit digest.  The approach for calculating the hash
   value SHOULD follow the same guidelines described for calculating the
   Integrity Check Value (ICV) described in [RFC4302] with respect to
   non-mutable fields.  A history of the packet hash values SHOULD be
   maintained in the context of <protocol:srcAddr:dstAddr>.  The context
   for IPv4 is more specific than that of IPv6 since the SMF_DPD HAV
   cannot be employed to mitigate hash collisions.  A RECOMMENDED
   implementation detail for IPv4 H-DPD is to concatenate the 16-bit
   IPv4 ID value with the computed hash value as an extended DPD hash
   value that may provide reduced hash collisions in the cases where the
   IPv4 ID field is being set by host operating systems or gateways.





Macker                        Experimental                     [Page 19]
^L
RFC 6621                           SMF                          May 2012


   When this approach is taken, the use of the supplemental "internal
   hash" technique as described in Section 10 is RECOMMENDED as a
   security measure.

   The SHA-1 hash is specified at present for consistency and
   robustness.  Future approaches and experimentation may discover
   design trade-offs in hash robustness and efficiency worth considering
   for future revisions of SMF.  This MAY include reducing the packet
   payload length that is processed, determining shorter indexes, or
   applying a more efficient hashing algorithm.

7.  Relay Set Selection

   SMF is flexible in its support of different reduced relay set
   mechanisms for efficient flooding, the constraints imposed herein
   being detailed in this section.

7.1.  Non-Reduced Relay Set Forwarding

   SMF implementations MUST support CF as a basic forwarding mechanism
   when reduced relay set information is not available or not selected
   for operation.  In CF mode, each router transmits a packet once that
   has passed the SMF forwarding rules.  The DPD techniques described in
   Section 6 are critical to proper operation and prevention of
   duplicate packet retransmissions by the same relays.

7.2.  Reduced Relay Set Forwarding

   MANET reduced relay sets are often achieved by distributed algorithms
   that can dynamically calculate a topological connected dominating set
   (CDS).

   A goal of SMF is to apply reduced relay sets for more efficient
   multicast dissemination within dynamic topologies.  To accomplish
   this, an SMF implementation MUST support the ability to modify its
   multicast packet forwarding rules based upon relay set state received
   dynamically during operation.  In this way, SMF operates effectively
   as neighbor adjacencies or multicast forwarding policies within the
   topology change.

   In early SMF experimental prototyping, the relay set information was
   derived from coexistent unicast routing control plane traffic
   flooding processes [MDC04].  From this experience, extra pruning
   considerations were sometimes required when utilizing a relay set
   from a separate routing protocol process.  As an example, relay sets
   formed for the unicast control plane flooding MAY include additional
   redundancy that may not be desired for multicast forwarding use
   (e.g., biconnected relay set).



Macker                        Experimental                     [Page 20]
^L
RFC 6621                           SMF                          May 2012


   Here is a recommended criteria list for SMF relay set selection
   algorithm candidates:

   1.  Robustness to topological dynamics and mobility

   2.  Localized election or coordination of any relay sets

   3.  Reasonable minimization of CDS relay set size given the above
       constraints

   4.  Heuristic support for preference or election metrics

   Some relay set algorithms meeting these criteria are described in the
   appendices of this document.  Additional relay set selection
   algorithms may be specified in separate specifications in the future.
   Each appendix subsection in this document can serve as a template for
   specifying additional relay algorithms.

   Figure 5 depicts an information flow diagram of possible relay set
   control options.  The SMF Relay Set State represents the information
   base that is used by SMF in the forwarding decision process.  The
   diagram demonstrates that the SMF Relay Set State may be determined
   by three fundamentally different methods:

   o  Independent operation with NHDP [RFC6130] input providing dynamic
      network neighborhood adjacency information, used by a particular
      relay set selection algorithm.

   o  Slave operation with an existing unicast MANET routing protocol,
      capable of providing CDS election information for use by SMF.

   o  Cross-layer operation that may involve L2 triggers or information
      describing neighbors or links.

   Other heuristics to influence and control election can come from
   network management or other interfaces as shown on the right of
   Figure 5.  CF mode simplifies the control and does not require other
   input but relies solely on DPD.













Macker                        Experimental                     [Page 21]
^L
RFC 6621                           SMF                          May 2012


                       Possible L2 Trigger/Information
                                      |
                                      |
    ______________              ______v_____         __________________
   |    MANET     |            |            |       |                  |
   | Neighborhood |            | Relay Set  |       | Other Heuristics |
   |  Discovery   |----------->| Selection  |<------|(Preference, etc.)|
   |   Protocol   | neighbor   | Algorithm  |       |  Net Management  |
   |______________|   info     |____________|       |__________________|
          \                              /
           \                            /
    neighbor\                          / Dynamic Relay
      info*  \      ____________      /    Set Status
              \    |    SMF     |    / (State, {neighbor info})
               `-->| Relay Set  |<--'
                   |   State    |
                -->|____________|
               /
              /
    ______________
   |  Coexistent  |
   |    MANET     |
   |   Unicast    |
   |   Process    |
   |______________|

             Figure 5: SMF Reduced Relay Set Information Flow

   Following is further discussion of the three styles of SMF operation
   with reduced relay sets as illustrated in Figure 5:

   1.  Independent operation: In this case, SMF operates independently
       from any unicast routing protocols.  To support reduced relay
       sets, SMF MUST perform its own relay set selection using
       information gathered from signaling.  It is RECOMMENDED that an
       associated NHDP process be used for this signaling.  NHDP
       messaging SHOULD be appended with additional [RFC5444] type-
       length-value (TLV) content as to support SMF-specific
       requirements as discussed in [RFC6130] and to support specific
       relay set operation as described in the appendices of this
       document or future specifications.  Unicast routing protocols may
       coexist, even using the same NHDP process, but signaling that
       supports reduced relay set selection for SMF is independent of
       these protocols.







Macker                        Experimental                     [Page 22]
^L
RFC 6621                           SMF                          May 2012


   2.  Operation with CDS-aware unicast routing protocol: In this case,
       a coexistent unicast routing protocol provides dynamic relay set
       state based upon its own control plane CDS or neighborhood
       discovery information.

   3.  Cross-layer operation: In this case, SMF operates using
       neighborhood status and triggers from a cross-layer information
       base for dynamic relay set selection and maintenance (e.g.,
       lower-link layer).

8.  SMF Neighborhood Discovery Requirements

   This section defines the requirements for use of the MANET
   Neighborhood Discovery Protocol (NHDP) [RFC6130] to support SMF
   operation.  Note that basic CF forwarding requires no neighborhood
   topology knowledge since in this configured mode, every SMF router
   relays all traffic.  Supporting more reduced SMF relay set operation
   requires the discovery and maintenance of dynamic neighborhood
   topology information.  NHDP can be used to provide this necessary
   information; however, there are SMF-specific requirements for NHDP
   use.  This is the case for both "independent" SMF operation where
   NHDP is being used specifically to support SMF or when one NHDP
   instance is used for both SMF and a coexistent MANET unicast routing
   protocol.

   NHDP HELLO messages and the resultant neighborhood information base
   are described separately within the NHDP specification.  To
   summarize, NHDP provides the following basic functions:

   1.  1-hop neighbor link sensing and bidirectionality checks of
       neighbor links,

   2.  2-hop neighborhood discovery including collection of 2-hop
       neighbors and connectivity information,

   3.  Collection and maintenance of the above information across
       multiple interfaces, and

   4.  A method for signaling SMF information throughout the 2-hop
       neighborhood through the use of TLV extensions.

   Appendices A-C of this document describe CDS-based relay set
   selection algorithms that can achieve efficient SMF operation, even
   in dynamic, mobile networks and each of the algorithms has been
   initially experimented with in a working SMF prototype [MDDA07].
   When using these algorithms in conjunction with NHDP, a method
   verifying neighbor SMF operation is required in order to ensure
   correct relay set selection.  NHDP, along with SMF operation



Macker                        Experimental                     [Page 23]
^L
RFC 6621                           SMF                          May 2012


   verification, provides the necessary information required by these
   algorithms to conduct relay set selection.  Verification of SMF
   operation may be done administratively or through the use of the SMF
   relay algorithms TLVs defined in the following subsections.  Use of
   the SMF relay algorithm TLVs is RECOMMENDED when using NHDP for SMF
   neighborhood discovery.

   Section 8.1 specifies SMF-specific TLV types, supporting general SMF
   operation or supporting the algorithms described in the appendices.
   The appendices describing several relay set algorithms also specify
   any additional requirements for use with NHDP and reference the
   applicable TLV types as needed.

8.1.  SMF Relay Algorithm TLV Types

   This section specifies TLV types to be used within NHDP messages to
   identify the CDS relay set selection algorithm(s) in use.  Two TLV
   types are defined: one Message TLV type and one Address Block TLV
   type.

8.1.1.  SMF Message TLV Type

   The Message TLV type denoted SMF_TYPE is used to identify the
   existence of an SMF instance operating in conjunction with NHDP.
   This Message TLV type makes use of the extended type field as defined
   by [RFC5444] to convey the CDS relay set selection algorithm
   currently in use by the SMF message originator.  When NHDP is used to
   support SMF operation, the SMF_TYPE TLV, containing the extended type
   field with the appropriate value, SHOULD be included in NHDP_HELLO
   messages (HELLO messages as defined in [RFC6130]).  This allows SMF
   routers to learn when neighbors are configured to use NHDP for
   information exchange including algorithm type and related algorithm
   information.  This information can be used to take action, such as
   ignoring neighbor information using incompatible algorithms.  It is
   possible that SMF neighbors MAY be configured differently and still
   operate cooperatively, but these cases will vary dependent upon the
   algorithm types designated.

   This document defines a Message TLV type as specified in Table 6
   conforming to [RFC5444].  The TLV extended type field is used to
   contain the sender's "Relay Algorithm Type".  The interpretation of
   the "value" content of these TLVs is defined per "Relay Algorithm
   Type" and may contain algorithm-specific information.








Macker                        Experimental                     [Page 24]
^L
RFC 6621                           SMF                          May 2012


          +---------------+----------------+--------------------+
          |               | TLV Syntax     | Field Values       |
          +---------------+----------------+--------------------+
          | type          | <tlv-type>     | SMF_TYPE           |
          | extended type | <tlv-type-ext> | <relayAlgorithmId> |
          | length        | <length>       | variable           |
          | value         | <value>        | variable           |
          +---------------+----------------+--------------------+

                       Table 6: SMF Type Message TLV

   In Table 6, <relayAlgorithmId> is an 8-bit field containing a number
   0-255 representing the "Relay Algorithm Type" of the originator
   address of the corresponding NHDP message.

   Values for the <relayAlgorithmId> are defined in Table 7.  The table
   provides value assignments, future IANA assignment spaces, and an
   experimental space.  The experimental space use MUST NOT assume
   uniqueness; thus, it SHOULD NOT be used for general interoperable
   deployment prior to official IANA assignment.

   +-------------+--------------------+--------------------------------+
   |  Type Value |    Extended Type   |            Algorithm           |
   |             |        Value       |                                |
   +-------------+--------------------+--------------------------------+
   |   SMF_TYPE  |          0         |               CF               |
   |   SMF_TYPE  |          1         |              S-MPR             |
   |   SMF_TYPE  |          2         |              E-CDS             |
   |   SMF_TYPE  |          3         |             MPR-CDS            |
   |   SMF_TYPE  |        4-127       |  Future Assignment STD action  |
   |   SMF_TYPE  |       128-239      |     No STD action required     |
   |   SMF_TYPE  |       240-255      |       Experimental Space       |
   +-------------+--------------------+--------------------------------+

                 Table 7: SMF Relay Algorithm Type Values

   Acceptable <length> and <value> fields of an SMF_TYPE TLV are
   dependent on the extended type value (i.e., relay algorithm type).
   The appropriate algorithm type, as conveyed in the <tlv-type-ext>
   field, defines the meaning and format of its TLV <value> field.  For
   the algorithms defined by this document, see the appropriate appendix
   for the <value> field format.

8.1.2.  SMF Address Block TLV Type

   An Address Block TLV type, denoted SMF_NBR_TYPE (i.e., SMF neighbor
   relay algorithm) is specified in Table 8.  This TLV enables CDS relay
   algorithm operation and configuration to be shared among 2-hop



Macker                        Experimental                     [Page 25]
^L
RFC 6621                           SMF                          May 2012


   neighborhoods.  Some relay algorithms require 2-hop neighbor
   configuration in order to correctly select relay sets.  It is also
   useful when mixed relay algorithm operation is possible.  Some
   examples of mixed use are outlined in the appendices.

   The message SMF_TYPE TLV and Address Block SMF_NBR_TYPE TLV types
   share a common format.

          +---------------+----------------+--------------------+
          |               | TLV syntax     | Field Values       |
          +---------------+----------------+--------------------+
          | type          | <tlv-type>     | SMF_NBR_TYPE       |
          | extended type | <tlv-type-ext> | <relayAlgorithmId> |
          | length        | <length>       | variable           |
          | value         | <value>        | variable           |
          +---------------+----------------+--------------------+

                    Table 8: SMF Type Address Block TLV

   <relayAlgorithmId> in Table 8 is an 8-bit unsigned integer field
   containing a number 0-255 representing the "Relay Algorithm Type"
   value that corresponds to any associated address in the address
   block.  Note that "Relay Algorithm Type" values for 2-hop neighbors
   can be conveyed in a single TLV or multiple value TLVs as described
   in [RFC5444].  It is expected that SMF routers using NHDP construct
   address blocks with SMF_NBR_TYPE TLVs to advertise "Relay Algorithm
   Type" and to advertise neighbor algorithm values received in SMF_TYPE
   TLVs from those neighbors.

   Again, values for the <relayAlgorithmId> are defined in Table 7.

   The interpretation of the "value" field of SMF_NBR_TYPE TLVs is
   defined per "Relay Algorithm Type" and may contain algorithm-specific
   information.  See the appropriate appendix for definitions of value
   fields for the algorithms defined by this document.

9.  SMF Border Gateway Considerations

   It is expected that SMF will be used to provide simple forwarding of
   multicast traffic within a MANET or mesh routing topology.  A border
   router gateway approach should be used to allow interconnection of
   SMF routing domains with networks using other multicast routing
   protocols, such as PIM.  It is important to note that there are many
   scenario-specific issues that should be addressed when discussing
   border multicast routers.  At the present time, experimental
   deployments of SMF and PIM border router approaches have been
   demonstrated [DHS08].  Some of the functionality border routers may
   need to address includes the following:



Macker                        Experimental                     [Page 26]
^L
RFC 6621                           SMF                          May 2012


   1.  Determination of which multicast group traffic transits the
       border router whether entering or exiting the attached SMF
       routing domain.

   2.  Enforcement of TTL/hop limit threshold or other scoping policies.

   3.  Any marking or labeling to enable DPD on ingressing packets.

   4.  Interface with exterior multicast routing protocols.

   5.  Possible operation with multiple border routers (presently beyond
       the scope of this document).

   6.  Provisions for participating non-SMF devices (routers or hosts).

   Each of these areas is discussed in more detail in the following
   subsections.  Note the behavior of SMF border routers is the same as
   that of non-border SMF routers when forwarding packets on interfaces
   within the SMF routing domain.  Packets that are passed outbound to
   interfaces operating fixed-infrastructure multicast routing protocols
   SHOULD be evaluated for duplicate packet status since present
   standard multicast forwarding mechanisms do not usually perform this
   function.

9.1.  Forwarded Multicast Groups

   Mechanisms for dynamically determining groups for forwarding into a
   MANET SMF routing domain is an evolving technology area.  Ideally,
   only traffic for which there is active group membership should be
   injected into the SMF domain.  This can be accomplished by providing
   an IPv4 Internet Group Membership Protocol (IGMP) or IPv6 Multicast
   Listener Discovery (MLD) proxy protocol so that MANET SMF routers can
   inform attached border routers (and hence multicast networks) of
   their current group membership status.  For specific systems and
   services, it may be possible to statically configure group membership
   joins in border routers, but it is RECOMMENDED that some form of
   IGMP/MLD proxy or other explicit, dynamic control of membership be
   provided.  Specification of such an IGMP/MLD proxy protocol is beyond
   the scope of this document.

   For outbound traffic, SMF border routers perform duplicate packet
   detection and forward non-duplicate traffic that meets TTL/hop limit
   and scoping criteria to interfaces external to the SMF routing
   domain.  Appropriate IP multicast routing (e.g., PIM-based solutions)
   on those interfaces can make further forwarding decisions with
   respect to the multicast packet.  Note that the presence of multiple





Macker                        Experimental                     [Page 27]
^L
RFC 6621                           SMF                          May 2012


   border routers associated with a MANET routing domain raises
   additional issues.  This is further discussed in Section 9.4 but
   further work is expected to be needed here.

9.2.  Multicast Group Scoping

   Multicast scoping is used by network administrators to control the
   network routing domains reachable by multicast packets.  This is
   usually done by configuring external interfaces of border routers in
   the border of a routing domain to not forward multicast packets that
   must be kept within the SMF routing domain.  This is commonly done
   based on TTL/hop limit of messages or by using administratively
   scoped group addresses.  These schemes are known respectively as:

   1.  TTL scoping.

   2.  Administrative scoping.

   For IPv4, network administrators can configure border routers with
   the appropriate TTL/hop limit thresholds or administratively scoped
   multicast groups for the router interfaces as with any traditional
   multicast router.  However, for the case of TTL/hop limit scoping, it
   SHOULD be taken into account that the packet could traverse multiple
   hops within the MANET SMF routing domain before reaching the border
   router.  Thus, TTL thresholds SHOULD be selected carefully.

   For IPv6, multicast address spaces include information about the
   scope of the group.  Thus, border routers of an SMF routing domain
   know if they must forward a packet based on the IPv6 multicast group
   address.  For the case of IPv6, it is RECOMMENDED that a MANET SMF
   routing domain be designated a site-scoped multicast domain.  Thus,
   all IPv6 site-scoped multicast packets in the range FF05::/16 SHOULD
   be kept within the MANET SMF routing domain by border routers.  IPv6
   packets in any other wider range scopes (i.e., FF08::/16, FF0B::/16,
   and FF0E::16) MAY traverse border routers unless other restrictions
   different from the scope applies.

   Given that scoping of multicast packets is performed at the border
   routers and given that existing scoping mechanisms are not designed
   to work with mobile routers, it is assumed that non-border routers
   running SMF will not stop forwarding multicast data packets of an
   appropriate site scoping.  That is, it is assumed that an SMF routing
   domain is a site-scoped multicast area.








Macker                        Experimental                     [Page 28]
^L
RFC 6621                           SMF                          May 2012


9.3.  Interface with Exterior Multicast Routing Protocols

   The traditional operation of multicast routing protocols is tightly
   integrated with the group membership function.  Leaf routers are
   configured to periodically gather group membership information, while
   intermediate routers conspire to create multicast trees connecting
   routers with directly connected multicast sources and routers with
   active multicast receivers.  In the concrete case of SMF, border
   routers can be considered leaf routers.  Mechanisms for multicast
   sources and receivers to interoperate with border routers over the
   multi-hop MANET SMF routing domain as if they were directly connected
   to the router need to be defined.  The following issues need to be
   addressed:

   1.  A mechanism by which border routers gather membership information

   2.  A mechanism by which multicast sources are known by the border
       router

   3.  A mechanism for exchange of exterior routing protocol messages
       across the SMF routing domain if the SMF routing domain is to
       provide transit connectivity for multicast traffic.

   It is beyond the scope of this document to address implementation
   solutions to these issues.  As described in Section 9.1, IGMP/MLD
   proxy mechanisms can address some of these issues.  Similarly,
   exterior routing protocol messages could be tunneled or conveyed
   across an SMF routing domain but doing this robustly in a distributed
   wireless environment likely requires additional considerations
   outside the scope of this document.

   The need for the border router to receive traffic from recognized
   multicast sources within the SMF routing domain is important to
   achieve interoperability with some existing routing protocols.  For
   instance, PIM-S requires routers with locally attached multicast
   sources to register them to the Rendezvous Point (RP) so that routers
   can join the multicast tree.  In addition, if those sources are not
   advertised to other autonomous systems (ASes) using Multicast Source
   Discovery Protocol (MSDP), receivers in those external networks are
   not able to join the multicast tree for that source.

9.4.  Multiple Border Routers

   An SMF routing domain might be deployed with multiple participating
   routers having connectivity to external, fixed-infrastructure
   networks.  Allowing multiple routers to forward multicast traffic to/
   from the SMF routing domain can be beneficial since it can increase
   reliability and provide better service.  For example, if the SMF



Macker                        Experimental                     [Page 29]
^L
RFC 6621                           SMF                          May 2012


   routing domain were to fragment with different SMF routers
   maintaining connectivity to different border routers, multicast
   service could still continue successfully.  But, the case of multiple
   border routers connecting an SMF routing domain to external networks
   presents several challenges for SMF:

   1.  Handling duplicate unmarked IPv4 or IPv6 (without IPsec
       encapsulation or DPD option) packets possibly injected by
       multiple border routers.

   2.  Handling of duplicate traffic injected by multiple border routers
       by source-based relay algorithms.

   3.  Determining which border router(s) will forward outbound
       multicast traffic.

   4.  Additional challenges with interfaces to exterior multicast
       routing protocols.

   When multiple border routers are present, they may be alternatively
   (due to route changes) or simultaneously injecting common traffic
   into the SMF routing domain that has not been previously marked for
   IPv6 SMF_DPD.  Different border routers would not be able to
   implicitly synchronize sequencing of injected traffic since they may
   not receive exactly the same messages due to packet losses.  For IPv6
   I-DPD operation, the optional TaggerId field described for the
   SMF_DPD option header can be used to mitigate this issue.  When
   multiple border routers are injecting a flow into an SMF routing
   domain, there are two forwarding policies that SMF routers running
   I-DPD may implement:

   1.  Redundantly forward the multicast flows (identified by <srcAddr:
       dstAddr>) from each border router, performing DPD processing on a
       <TaggerID:dstAddr> or <TaggerID:srcAddr:dstAddr> basis, or

   2.  Use some basis to select the flow of one tagger (border router)
       over the others and forward packets for applicable flows
       (identified by <sourceAddress:dstAddr>) only for the selected
       TaggerId until timeout or some other criteria to favor another
       tagger occurs.

   It is RECOMMENDED that the first approach be used in the case of
   I-DPD operation.  Additional specification may be required to
   describe an interoperable forwarding policy based on this second
   option.  Note that the implementation of the second option requires
   that per-flow (i.e., <srcAddr::dstAddr>) state be maintained for the
   selected TaggerId.




Macker                        Experimental                     [Page 30]
^L
RFC 6621                           SMF                          May 2012


   The deployment of H-DPD operation may alleviate DPD resolution when
   ingressing traffic comes from multiple border routers.  Non-colliding
   hash indexes (those not requiring the H-DPD options header in IPv6)
   should be resolved effectively.

10.  Security Considerations

   Gratuitous use of option headers can cause problems in routers.
   Other IP routers external to an SMF routing domain that might receive
   forwarded multicast SHOULD ignore SMF-specific IPv6 header options
   when encountered.  The header option types are encoded appropriately
   to allow for this behavior.

   This section briefly discusses several SMF denial-of-service (DoS)
   attack scenarios and provides some initial recommended mitigation
   strategies.

   A potential denial-of-service attack against SMF forwarding is
   possible when a malicious router has a form of wormhole access to
   non-adjacent parts of a network topology.  In the wireless ad hoc
   case, a directional antenna is one way to provide such a wormhole
   physically.  If such a router can preview forwarded packets in a non-
   adjacent part of the network and forward modified versions to another
   part of the network, it can perform the following attack.  The
   malicious router could reduce the TTL/hop limit or hop limit of the
   packet and transmit it to the SMF router causing it to forward the
   packet with a limited TTL/hop limit (or even drop it) and make a DPD
   entry that could block or limit the subsequent forwarding of later-
   arriving valid packets with correct TTL/hop limit values.  This would
   be a relatively low-cost, high-payoff attack that would be hard to
   detect and thus attractive to potential attackers.  An approach of
   caching TTL/hop limit information with DPD state and taking
   appropriate forwarding actions is identified in Section 5 to mitigate
   this form of attack.

   Sequence-based packet identifiers are predictable and thus provide an
   opportunity for a DoS attack against forwarding.  Forwarding
   protocols that use DPD techniques, such as SMF, may be vulnerable to
   DoS attacks based on spoofing packets with apparently valid packet
   identifier fields.  In wireless environments, where SMF will most
   likely be used, the opportunity for such attacks may be more
   prevalent than in wired networks.  In the case of IPv4 packets,
   fragmented IP packets, or packets with IPsec headers applied, the DPD
   "identifier portions" of potential future packets that might be
   forwarded is highly predictable and easily subject to DoS attacks
   against forwarding.  A RECOMMENDED technique to counter this concern
   is for SMF implementations to generate an "internal" hash value that
   is concatenated with the explicit I-DPD packet identifier to form a



Macker                        Experimental                     [Page 31]
^L
RFC 6621                           SMF                          May 2012


   unique identifier that is a function of the packet content as well as
   the visible identifier.  SMF implementations could seed their hash
   generation with a random value to make it unlikely that an external
   observer could guess how to spoof packets used in a denial-of-service
   attack against forwarding.  Since the hash computation and state is
   kept completely internal to SMF routers, the cryptographic properties
   of this hashing would not need to be extensive and thus possibly of
   low complexity.  Experimental implementations may determine that even
   a lightweight hash of only portions of packets may suffice to serve
   this purpose.

   While H-DPD is not as readily susceptible to this form of DoS attack,
   it is possible that a sophisticated adversary could use side
   information to construct spoofing packets to mislead forwarders using
   a well-known hash algorithm.  Thus, similarly, a separate "internal"
   hash value could be concatenated with the well-known hash value to
   alleviate this security concern.

   The support of forwarding IPsec packets without further modification
   for both IPv4 and IPv6 is supported by this specification.

   Authentication mechanisms to identify the source of IPv6 option
   headers should be considered to reduce vulnerability to a variety of
   attacks.

   Furthermore, when the MANET Neighborhood Discovery Protocol [RFC6130]
   is used, the security considerations described in [RFC6130] also
   apply.

11.  IANA Considerations

   This document defines one IPv6 Hop-by-Hop Option, a type for which
   has been allocated from the IPv6 "Destination Options and Hop-by-Hop
   Options" registry of [RFC2780].

   This document creates one registry called "TaggerId Types" for
   recording TaggerId types, (TidTy), as a sub-registry in the "IPv6
   Parameters" registry.

   This document registers one well-known multicast address from each of
   the IPv4 and IPv6 multicast address spaces.

   This document defines one Message TLV, a type for which has been
   allocated from the "Message TLV Types" registry of [RFC5444].

   Finally, this document defines one Address Block TLV, a type for
   which has been allocated from the "Address Block TLV Types" registry
   of [RFC5444].



Macker                        Experimental                     [Page 32]
^L
RFC 6621                           SMF                          May 2012


11.1.  IPv6 SMF_DPD Header Extension Option Type

   IANA has allocated an IPv6 Option Type from the IPv6 "Destination
   Options and Hop-by-Hop Options" registry of [RFC2780], as specified
   in Table 9.

   +-----------+-------------------------+-------------+---------------+
   | Hex Value |       Binary Value      | Description | Reference     |
   |           |    act | chg | rest     |             |               |
   +-----------+-------------------------+-------------+---------------+
   |     8     |     00 |  0  | 01000    | SMF_DPD     | This Document |
   +-----------+-------------------------+-------------+---------------+

                   Table 9: IPv6 Option Type Allocation

11.2.  TaggerId Types (TidTy)

   A portion of the option data content in the SMF_DPD is the Tagger
   Identifier Type (TidTy), which provides a context for the optionally
   included TaggerId.

   IANA has created a registry for recording TaggerId Types (TidTy),
   with initial assignments and allocation policies, as specified in
   Table 10.

   +------+----------+------------------------------------+------------+
   | Type | Mnemonic | Description                        | Reference  |
   +------+----------+------------------------------------+------------+
   |   0  |   NULL   | No TaggerId field is present       | This       |
   |      |          |                                    | document   |
   |   1  |  DEFAULT | A TaggerId of non-specific context | This       |
   |      |          | is present                         | document   |
   |   2  |   IPv4   | A TaggerId representing an IPv4    | This       |
   |      |          | address is present                 | document   |
   |   3  |   IPv6   | A TaggerId representing an IPv6    | This       |
   |      |          | address is present                 | document   |
   |  4-7 |          | Unassigned                         |            |
   +------+----------+------------------------------------+------------+

                         Table 10: TaggerId Types

   For allocation of unassigned values 4-7, IETF Review [RFC5226] is
   required.








Macker                        Experimental                     [Page 33]
^L
RFC 6621                           SMF                          May 2012


11.3.  Well-Known Multicast Address

   IANA has allocated an IPv4 multicast address "SL-MANET-ROUTERS"
   (224.0.1.186) from the "Internetwork Control Block (224.0.1.0-
   224.0.1.255 (224.0.1/24))" sub-registry of the "IPv4 Multicast
   Address" registry.

   IANA has allocated an IPv6 multicast address "SL-MANET-ROUTERS" from
   the "Site-Local Scope Multicast Addresses" sub-sub-registry of the
   "Fixed Scope Multicast Addresses" sub-registry of the "INTERNET
   PROTOCOL VERSION 6 MULTICAST ADDRESSES" registry.

11.4.  SMF TLVs

11.4.1.  Expert Review for Created Type Extension Registries

   Creation of Address Block TLV Types and Message TLV Types in
   registries of [RFC5444], and hence in the HELLO-message-specific
   registries of [RFC6130], entails creation of corresponding Type
   Extension registries for each such type.  For such Type Extension
   registries, where an Expert Review is required, the designated expert
   SHOULD take the same general recommendations into consideration as
   those specified by [RFC5444].

11.4.2.  SMF Message TLV Type (SMF_TYPE)

   This document defines one Message TLV Type, "SMF_TYPE", which has
   been allocated from the "HELLO Message-Type-specific Message TLV
   Types" registry, defined in [RFC6130].

   This created a new Type Extension registry, with initial assignments
   as specified in Table 11.

   +----------+------+-----------+--------------------+----------------+
   |   Name   | Type |    Type   | Description        | Allocation     |
   |          |      | Extension |                    | Policy         |
   +----------+------+-----------+--------------------+----------------+
   | SMF_TYPE |  128 |   0-255   | Specifies relay    | Section 11.4.4 |
   |          |      |           | algorithm          |                |
   |          |      |           | supported by the   |                |
   |          |      |           | SMF router,        |                |
   |          |      |           | originating the    |                |
   |          |      |           | HELLO message,     |                |
   |          |      |           | according to       |                |
   |          |      |           | Section 11.4.4.    |                |
   +----------+------+-----------+--------------------+----------------+

          Table 11: SMF_TYPE Message TLV Type Extension Registry



Macker                        Experimental                     [Page 34]
^L
RFC 6621                           SMF                          May 2012


11.4.3.  SMF Address Block TLV Type (SMF_NBR_TYPE)

   This document defines one Address Block TLV Type, "SMF_NBR_TYPE",
   which has been allocated from the "HELLO Message-Type-specific
   Address Block TLV Types" registry, defined in [RFC6130].

   This has created a new Type Extension registry, with initial
   assignments as specified in Table 12.

   +--------------+--------+-----------+-----------------+-------------+
   |     Name     |  Type  |    Type   | Description     | Allocation  |
   |              |        | Extension |                 | Policy      |
   +--------------+--------+-----------+-----------------+-------------+
   | SMF_NBR_TYPE |   128  |   0-255   | Specifies relay | Section     |
   |              |        |           | algorithm       | 11.4.4      |
   |              |        |           | supported by    |             |
   |              |        |           | the SMF router  |             |
   |              |        |           | corresponding   |             |
   |              |        |           | to the          |             |
   |              |        |           | advertised      |             |
   |              |        |           | address,        |             |
   |              |        |           | according to    |             |
   |              |        |           | Section 11.4.4. |             |
   +--------------+--------+-----------+-----------------+-------------+

     Table 12: SMF_NBR_TYPE Address Block TLV Type Extension Registry

11.4.4.  SMF Relay Algorithm ID Registry

   Types for the Type Extension Registries for the SMF_TYPE Message TLV
   and the SMF_NBR_TYPE Address Block TLV are unified in this single SMF
   Relay Algorithm ID Registry, defined in this section.

   IANA has created a registry for recording Relay Algorithm
   Identifiers, with initial assignments and allocation policies as
   specified in Table 13.















Macker                        Experimental                     [Page 35]
^L
RFC 6621                           SMF                          May 2012


          +---------+---------+-------------+-------------------+
          | Value   | Name    | Description | Allocation Policy |
          +---------+---------+-------------+-------------------+
          | 0       | CF      | Section 4   |                   |
          | 1       | S-MPR   | Appendix B  |                   |
          | 2       | E-CDS   | Appendix A  |                   |
          | 3       | MPR-CDS | Appendix C  |                   |
          | 4-127   |         | Unassigned  | Expert Review     |
          | 128-255 |         | Unassigned  | Experimental Use  |
          +---------+---------+-------------+-------------------+

                 Table 13: Relay Set Algorithm Type Values

   A specification requesting an allocation from the 4-127 range from
   the SMF Relay Algorithm ID Registry MUST specify the interpretation
   of the <value> field (if any).

12.  Acknowledgments

   Many of the concepts and mechanisms used and adopted by SMF resulted
   over several years of discussion and related work within the MANET
   working group since the late 1990s.  There are obviously many
   contributors to past discussions and related draft documents within
   the working group that have influenced the development of SMF
   concepts, and they deserve acknowledgment.  In particular, this
   document is largely a direct product of the earlier SMF design team
   within the IETF MANET working group and borrows text and
   implementation ideas from the related individuals and activities.
   Some of the direct contributors who have been involved in design,
   content editing, prototype implementation, major commenting, and core
   discussions are listed below in alphabetical order.  We appreciate
   all the input and feedback from the many community members and early
   implementation users we have heard from that are not on this list as
   well.

      Brian Adamson
      Teco Boot
      Ian Chakeres
      Thomas Clausen
      Justin Dean
      Brian Haberman
      Ulrich Herberg
      Charles Perkins
      Pedro Ruiz
      Fred Templin
      Maoyu Wang





Macker                        Experimental                     [Page 36]
^L
RFC 6621                           SMF                          May 2012


13.  References

13.1.  Normative References

   [MPR-CDS]  Adjih, C., Jacquet, P., and L. Viennot, "Computing
              Connected Dominating Sets with Multipoint Relays", Ad Hoc
              and Sensor Wireless Networks, January 2005.

   [RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791,
              September 1981.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", RFC 2460, December 1998.

   [RFC2644]  Senie, D., "Changing the Default for Directed Broadcasts
              in Routers", BCP 34, RFC 2644, August 1999.

   [RFC2780]  Bradner, S. and V. Paxson, "IANA Allocation Guidelines For
              Values In the Internet Protocol and Related Headers",
              BCP 37, RFC 2780, March 2000.

   [RFC3174]  Eastlake, D. and P. Jones, "US Secure Hash Algorithm 1
              (SHA1)", RFC 3174, September 2001.

   [RFC3626]  Clausen, T. and P. Jacquet, "Optimized Link State Routing
              Protocol (OLSR)", RFC 3626, October 2003.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing
              Architecture", RFC 4291, February 2006.

   [RFC4302]  Kent, S., "IP Authentication Header", RFC 4302,
              December 2005.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              May 2008.

   [RFC5444]  Clausen, T., Dearlove, C., Dean, J., and C. Adjih,
              "Generalized Mobile Ad Hoc Network (MANET) Packet/Message
              Format", RFC 5444, February 2009.

   [RFC5614]  Ogier, R. and P. Spagnolo, "Mobile Ad Hoc Network (MANET)
              Extension of OSPF Using Connected Dominating Set (CDS)
              Flooding", RFC 5614, August 2009.




Macker                        Experimental                     [Page 37]
^L
RFC 6621                           SMF                          May 2012


   [RFC5771]  Cotton, M., Vegoda, L., and D. Meyer, "IANA Guidelines for
              IPv4 Multicast Address Assignments", BCP 51, RFC 5771,
              March 2010.

   [RFC6130]  Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc
              Network (MANET) Neighborhood Discovery Protocol (NHDP)",
              RFC 6130, April 2011.

13.2.  Informative References

   [CDHM07]   Chakeres, I., Danilov, C., Henderson, T., and J. Macker,
              "Connecting MANET Multicast", IEEE MILCOM
              2007 Proceedings, 2007.

   [DHG09]    Danilov, C., Henderson, T., Goff, T., Kim, J., Macker, J.,
              Weston, J., Neogi, N., Ortiz, A., and D. Uhlig,
              "Experiment and field demonstration of a 802.11-based
              ground-UAV mobile ad-hoc network", Proceedings of the 28th
              IEEE conference on Military Communications, 2009.

   [DHS08]    Danilov, C., Henderson, T., Spagnolo, T., Goff, T., and J.
              Kim, "MANET Multicast with Multiple Gateways", IEEE MILCOM
              2008 Proceedings, 2008.

   [GM99]     Garcia-Luna-Aceves, JJ. and E. Madruga, "The Core-Assisted
              Mesh Protocol", Selected Areas in Communications, IEEE
              Journal,  Volume 17, Issue 8, August 1999.

   [IPV4-ID-UPDATE]
              Touch, J., "Updated Specification of the IPv4 ID Field",
              Work in Progress, September 2011.

   [JLMV02]   Jacquet, P., Laouiti, V., Minet, P., and L. Viennot,
              "Performance of Multipoint Relaying in Ad Hoc Mobile
              Routing Protocols", Networking , 2002.

   [MDC04]    Macker, J., Dean, J., and W. Chao, "Simplified Multicast
              Forwarding in Mobile Ad hoc Networks", IEEE MILCOM 2004
              Proceedings, 2004.

   [MDDA07]   Macker, J., Downard, I., Dean, J., and R. Adamson,
              "Evaluation of Distributed Cover Set Algorithms in Mobile
              Ad hoc Network for Simplified Multicast Forwarding", ACM
              SIGMOBILE Mobile Computing and Communications
              Review, Volume 11, Issue 3, July 2007.






Macker                        Experimental                     [Page 38]
^L
RFC 6621                           SMF                          May 2012


   [MGL04]    Mohapatra, P., Gui, C., and J. Li, "Group Communications
              in Mobile Ad hoc Networks", IEEE Computer, Vol. 37, No. 2,
              February 2004.

   [NTSC99]   Ni, S., Tseng, Y., Chen, Y., and J. Sheu, "The Broadcast
              Storm Problem in a Mobile Ad Hoc Network", Proceedings of
              ACM Mobicom 99, 1999.

   [RFC2501]  Corson, M. and J. Macker, "Mobile Ad hoc Networking
              (MANET): Routing Protocol Performance Issues and
              Evaluation Considerations", RFC 2501, January 1999.

   [RFC3684]  Ogier, R., Templin, F., and M. Lewis, "Topology
              Dissemination Based on Reverse-Path Forwarding (TBRPF)",
              RFC 3684, February 2004.

   [RFC3973]  Adams, A., Nicholas, J., and W. Siadak, "Protocol
              Independent Multicast - Dense Mode (PIM-DM): Protocol
              Specification (Revised)", RFC 3973, January 2005.

   [RFC4601]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
              "Protocol Independent Multicast - Sparse Mode (PIM-SM):
              Protocol Specification (Revised)", RFC 4601, August 2006.




























Macker                        Experimental                     [Page 39]
^L
RFC 6621                           SMF                          May 2012


Appendix A.  Essential Connecting Dominating Set (E-CDS) Algorithm

   The "Essential Connected Dominating Set" (E-CDS) algorithm [RFC5614]
   forms a single CDS mesh for the SMF operating region.  It allows
   routers to use 2-hop neighborhood topology information to dynamically
   perform relay self-election to form a CDS.  Its packet-forwarding
   rules are not dependent upon previous hop knowledge.  Additionally,
   E-CDS SMF forwarders can be easily mixed without problems with CF SMF
   forwarders, even those not participating in NHDP.  Another benefit is
   that packets opportunistically received from non-symmetric neighbors
   may be forwarded without compromising flooding efficiency or
   correctness.  Furthermore, multicast sources not participating in
   NHDP may freely inject their traffic, and any neighboring E-CDS
   relays will properly forward the traffic.  The E-CDS-based relay set
   selection algorithm is based upon [RFC5614].  E-CDS was originally
   discussed in the context of forming partial adjacencies and efficient
   flooding for MANET OSPF extensions work, and the core algorithm is
   applied here for SMF.

   It is RECOMMENDED that the SMF_TYPE:E-CDS Message TLV be included in
   NHDP_HELLO messages that are generated by routers conducting E-CDS
   SMF operation.  It is also RECOMMENDED that the SMF_NBR_TYPE:E-CDS
   Address Block TLV be used to advertise neighbor routers that are also
   conducting E-CDS SMF operation.

A.1.  E-CDS Relay Set Selection Overview

   The E-CDS relay set selection requires 2-hop neighborhood information
   collected through NHDP or another process.  Relay routers, in E-CDS
   SMF selection, are "self-elected" using a Router Identifier (Router
   ID) and an optional nodal metric, referred to here as Router Priority
   for all 1-hop and 2-hop neighbors.  To ensure proper relay set self-
   election, the Router ID and Router Priority MUST be consistent among
   participating routers.  It is RECOMMENDED that NHDP be used to share
   Router ID and Router Priority through the use of SMF_TYPE:E-CDS TLVs
   as described in this appendix.  The Router ID is a logical
   identification that MUST be consistent across interoperating SMF
   neighborhoods, and it is RECOMMENDED to be chosen as the numerically
   largest address contained in a router's "Neighbor Address List" as
   defined in NHDP.  The E-CDS self-election process can be summarized
   as follows:

   1.  If an SMF router has a higher ordinal (Router Priority, Router
       ID) than all of its symmetric neighbors, it elects itself to act
       as a forwarder for all received multicast packets.






Macker                        Experimental                     [Page 40]
^L
RFC 6621                           SMF                          May 2012


   2.  Else, if there does not exist a path from the neighbor with
       largest (Router Priority, Router ID) to any other neighbor, via
       neighbors with larger values of (Router Priority, Router ID),
       then it elects itself to the relay set.

   The basic form of E-CDS described and applied within this
   specification does not provide for redundant relay set selection
   (e.g., bi-connected), but such capability is supported by the basic
   E-CDS design.

A.2.  E-CDS Forwarding Rules

   With E-CDS, any SMF router that has selected itself as a relay
   performs DPD and forwards all non-duplicative multicast traffic
   allowed by the present forwarding policy.  Packet previous-hop
   knowledge is not needed for forwarding decisions when using E-CDS.

   1.  Upon packet reception, DPD is performed.  Note E-CDS requires a
       single duplicate table for the set of interfaces associated with
       the relay set selection.

   2.  If the packet is a duplicate, no further action is taken.

   3.  If the packet is non-duplicative:

       A.  A DPD entry is made for the packet identifier.

       B.  The packet is forwarded out to all interfaces associated with
           the relay set selection.

   As previously mentioned, even packets sourced (or relayed) by routers
   not participating in NHDP and/or the E-CDS relay set selection may be
   forwarded by E-CDS forwarders without problem.  A particular
   deployment MAY choose to not forward packets from previous hop
   routers that have been not explicitly identified via NHDP or other
   means as operating as part of a different relay set algorithm (e.g.,
   S-MPR) to allow coexistent deployments to operate correctly.  Also,
   E-CDS relay set selection may be configured to be influenced by
   statically configured CF relays that are identified via NHDP or other
   means.

A.3.  E-CDS Neighborhood Discovery Requirements

   It is possible to perform E-CDS relay set selection without
   modification of NHDP, basing the self-election process exclusively on
   the "Neighbor Address List" of participating SMF routers, for
   example, by setting the Router Priority to a default value and
   selecting the Router ID as the numerically largest address contained



Macker                        Experimental                     [Page 41]
^L
RFC 6621                           SMF                          May 2012


   in the "Neighbor Address List".  However, steps MUST be taken to
   ensure that all NHDP-enabled routers not using SMF_TYPE:E-CDS full
   type Message TLVs are, in fact, running SMF E-CDS with the same
   methods for selecting Router Priority and Router ID; otherwise,
   incorrect forwarding may occur.  Note that SMF routers with higher
   Router Priority values will be favored as relays over routers with
   lower Router Priority.  Thus, preferred relays MAY be
   administratively configured to be selected when possible.
   Additionally, other metrics (e.g., nodal degree, energy capacity,
   etc.) may also be taken into account in constructing a Router
   Priority value.  When using Router Priority with multiple interfaces,
   all interfaces on a router MUST use and advertise a common Router
   Priority value.  A router's Router Priority value may be
   administratively or algorithmically selected.  The method of
   selection does not need to be the same among different routers.

   E-CDS relay set selection may be configured to be influenced by
   statically configured CF relays that are identified via NHDP or other
   means.  Nodes advertising CF through NHDP may be considered E-CDS SMF
   routers with maximal Router Priority.

   To share a router's Router Priority with its 1-hop neighbors, the
   SMF_TYPE:E-CDS Message TLV's <value> field is defined as shown in
   Table 14.

              +----------------+---------+-----------------+
              | Length (bytes) | Value   | Router Priority |
              +----------------+---------+-----------------+
              | 0              | N/A     | 64              |
              | 1              | <value> | 0-127           |
              +----------------+---------+-----------------+

                    Table 14: E-CDS Message TLV Values

   Where <value> is a one-octet-long bit field that is defined as:

   bit 0: the leftmost bit is reserved and SHOULD be set to 0.

   bits 1-7: contain the unsigned Router Priority value, 0-127, which is
   associated with the "Neighbor Address List".

   Combinations of value field lengths and values other than specified
   here are NOT permitted and SHOULD be ignored.  Figure 6 shows an
   example SMF_TYPE:E-CDS Message TLV.







Macker                        Experimental                     [Page 42]
^L
RFC 6621                           SMF                          May 2012


       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              |   SMF_TYPE    |1|0|0|1|0|0|   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     E-CDS     |0|0|0|0|0|0|0|1|R|  priority   |     ...       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 6: E-CDS Message TLV Example

   To convey Router Priority values among 2-hop neighborhoods, the
   SMF_NBR_TYPE:E-CDS Address Block TLV's <value> field is used.  Multi-
   index and multivalue TLV layouts as defined in [RFC5444] are
   supported.  SMF_NBR_TYPE:E-CDS value fields are defined thus:

   +---------------+--------+----------+-------------------------------+
   | Length(bytes) | # Addr | Value    | Router Priority               |
   +---------------+--------+----------+-------------------------------+
   | 0             | Any    | N/A      | 64                            |
   | 1             | Any    | <value>  | <value> is for all addresses  |
   | N             | N      | <value>* | Each address gets its own     |
   |               |        |          | <value>                       |
   +---------------+--------+----------+-------------------------------+

                 Table 15: E-CDS Address Block TLV Values

   Where <value> is a one-byte bit field that is defined as:

   bit 0: the leftmost bit is reserved and SHOULD be set to 0.

   bits 1-7: contain the unsigned Router Priority value, 0-127, which is
   associated with the appropriate address(es).

   Combinations of value field lengths and # of addresses other than
   specified here are NOT permitted and SHOULD be ignored.  A default
   technique of using nodal degree (i.e., count of 1-hop neighbors) is
   RECOMMENDED for the value field of these TLV types.  Below are two
   example SMF_NBR_TYPE:E-CDS Address Block TLVs.

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              | SMF_NBR_TYPE  |1|0|0|1|0|0|   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     E-CDS     |0|0|0|0|0|0|0|1|R|  priority   |     ...       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 7: E-CDS Address Block TLV Example 1



Macker                        Experimental                     [Page 43]
^L
RFC 6621                           SMF                          May 2012


   The single value example TLV, depicted in Figure 7, specifies that
   all address(es) contained in the address block are running SMF using
   the E-CDS algorithm and all address(es) share the value field and
   therefore the same Router Priority.
       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              | SMF_NBR_TYPE  |1|0|1|1|0|1|   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     E-CDS     |  index-start  |   index-end   |    length     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |R|  priority0  |R|  priority1  |      ...      |R|  priorityN  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 8: E-CDS Address Block TLV Example 2

   The example multivalued TLV, depicted in Figure 8, specifies that
   address(es) contained in the address block from index-start to index-
   end inclusive are running SMF using the E-CDS algorithm.  Each
   address is associated with its own value byte and therefore its own
   Router Priority.

A.4.  E-CDS Selection Algorithm

   This section describes an algorithm for E-CDS relay selection (self-
   election).  The algorithm described uses 2-hop information.  Note
   that it is possible to extend this algorithm to use k-hop information
   with added computational complexity and mechanisms for sharing k-hop
   topology information that are not described in this document or
   within the NHDP specification.  It should also be noted that this
   algorithm does not impose the hop limit bound described in [RFC5614]
   when performing the path search that is used for relay selection.
   However, the algorithm below could be easily augmented to accommodate
   this additional criterion.  It is not expected that the hop limit
   bound will provide significant benefit to the algorithm defined in
   this appendix.

   The tuple of Router Priority and Router ID is used in E-CDS relay set
   selection.  Precedence is given to the Router Priority portion, and
   the Router ID value is used as a tiebreaker.  The evaluation of this
   tuple is referred to as "RtrPri(n)" in the description below where
   "n" references a specific router.  Note that it is possible that the
   Router Priority portion may be optional and the evaluation of
   "RtrPri()" be solely based upon the unique Router ID.  Since there
   MUST NOT be any duplicate Router ID values among SMF routers, a
   comparison of "RtrPri(n)" between any two routers will always be an
   inequality.  The use of nodal degree for calculating Router Priority
   is RECOMMENDED as default, and the largest IP address in the



Macker                        Experimental                     [Page 44]
^L
RFC 6621                           SMF                          May 2012


   "Neighbor Address List" as advertised by NHDP MUST be used as the
   Router ID.  NHDP provides all interface addresses throughout the
   2-hop neighborhood through HELLO messages, so explicitly conveying a
   Router ID is not necessary.  The following steps describe a basic
   algorithm for conducting E-CDS relay selection for a router "n0":

   1.  Initialize the set "N1" with tuples ("Router Priority", "Router
       ID", "Neighbor Address List") for each 1-hop neighbor of "n0".

   2.  If "N1" has less than 2 tuples, then "n0" does not elect itself
       as a relay, and no further steps are taken.

   3.  Initialize the set "N2" with tuples ("Router Priority", "Router
       ID", "2-hop address") for each "2-hop address" of "n0", where
       "2-hop address" is defined in NHDP.

   4.  If "RtrPri(n0)" is greater than that of all tuples in the union
       of "N1" and "N2", then "n0" selects itself as a relay, and no
       further steps are taken.

   5.  Initialize all tuples in the union of "N1" and "N2" as
       "unvisited".

   6.  Find the tuple "n1_Max" that has the largest "RtrPri()" of all
       tuples in "N1".

   7.  Initialize queue "Q" to contain "n1_Max", marking "n1_Max" as
       "visited".

   8.  While router queue "Q" is not empty, remove router "x" from the
       head of "Q", and for each 1-hop neighbor "n" of router "x"
       (excluding "n0") that is not marked "visited".

       A.  Mark router "n" as "visited".

       B.  If "RtrPri(n)" is greater than "RtrPri(n0)", append "n" to
           "Q".

   9.  If any tuple in "N1" remains "unvisited", then "n0" selects
       itself as a relay.  Otherwise, "n0" does not act as a relay.

   Note these steps are re-evaluated upon neighborhood status changes.
   Steps 5 through 8 of this procedure describe an approach to a path
   search.  The purpose of this path search is to determine if paths
   exist from the 1-hop neighbor with maximum "RtrPri()" to all other
   1-hop neighbors without traversing an intermediate router with a
   "RtrPri()" value less than "RtrPri(n0)".  These steps comprise a
   breadth-first traversal that evaluates only paths that meet that



Macker                        Experimental                     [Page 45]
^L
RFC 6621                           SMF                          May 2012


   criteria.  If all 1-hop neighbors of "n0" are "visited" during this
   traversal, then the path search has succeeded, and router "n0" does
   not need to provide relay.  It can be assumed that other routers will
   provide relay operation to ensure SMF connectivity.

   It is possible to extend this algorithm to consider neighboring SMF
   routers that are known to be statically configured for CF (always
   relaying).  The modification to the above algorithm is to process
   such routers as having a maximum possible Router Priority value.  It
   is expected that routers configured for CF and participating in NHDP
   would indicate this with use of the SMF_TYPE:CF and SMF_NBR_TYPE:CF
   TLV types in their NHDP_HELLO message and address blocks,
   respectively.

Appendix B.  Source-Based Multipoint Relay (S-MPR) Algorithm

   The source-based multipoint relay (S-MPR) set selection algorithm
   enables individual routers, using 2-hop topology information, to
   select relays from their set of neighboring routers.  Relays are
   selected so that forwarding to the router's complete 2-hop neighbor
   set is covered.  This distributed relay set selection technique has
   been shown to approximate a minimal connected dominating set (MCDS)
   in [JLMV02].  Individual routers must collect 2-hop neighborhood
   information from neighbors, determine an appropriate current relay
   set, and inform selected neighbors of their relay status.  Note that
   since each router picks its neighboring relays independently, S-MPR
   forwarders depend upon previous hop information (e.g., source MAC
   address) to operate correctly.  The Optimized Link State Routing
   (OLSR) protocol has used this algorithm and protocol for relay of
   link state updates and other control information [RFC3626], and it
   has been demonstrated operationally in dynamic network environments.

   It is RECOMMENDED that the SMF_TYPE:S-MPR Message TLV be included in
   NHDP_HELLO messages that are generated by routers conducting S-MPR
   SMF operation.  It is also RECOMMENDED that the SMF_NBR_TYPE:S-MPR
   Address Block TLV be used to specify which neighbor routers are
   conducting S-MPR SMF operation.

B.1.  S-MPR Relay Set Selection Overview

   The S-MPR algorithm uses bi-directional 1-hop and 2-hop neighborhood
   information collected via NHDP to select, from a router's 1-hop
   neighbors, a set of relays that will cover the router's entire 2-hop
   neighbor set upon forwarding.  The algorithm described uses a
   "greedy" heuristic of first picking the 1-hop neighbor who will cover
   the most 2-hop neighbors.  Then, excluding those 2-hop neighbors that
   have been covered, additional relays from its 1-hop neighbor set are




Macker                        Experimental                     [Page 46]
^L
RFC 6621                           SMF                          May 2012


   iteratively selected until the entire 2-hop neighborhood is covered.
   Note that 1-hop neighbors also identified as 2-hop neighbors are
   considered as 1-hop neighbors only.

   NHDP HELLO messages supporting S-MPR forwarding operation SHOULD use
   the TLVs defined in Section 8.1 using the S-MPR extended type.  The
   value field of an Address Block TLV that has a full type value of
   SMF_NBR_TYPE:S-MPR is defined in Table 17 such that signaling of MPR
   selections to 1-hop neighbors is possible.  The value field of a
   message block TLV that has a full type value of SMF_TYPE:S-MPR is
   defined in Table 16 such that signaling of Router Priority (described
   as "WILLINGNESS" in [RFC3626]) to 1-hop neighbors is possible.  It is
   important to note that S-MPR forwarding is dependent upon the
   previous hop of an incoming packet.  An S-MPR router MUST forward
   packets only for neighbors that have explicitly selected it as a
   multipoint relay (i.e., its "selectors").  There are also some
   additional requirements for duplicate packet detection to support
   S-MPR SMF operation that are described below.

   For multiple interface operation, MPR selection SHOULD be conducted
   on a per-interface basis.  However, it is possible to economize MPR
   selection among multiple interfaces by selecting common MPRs to the
   extent possible.

B.2.  S-MPR Forwarding Rules

   An S-MPR SMF router MUST only forward packets for neighbors that have
   explicitly selected it as an MPR.  The source-based forwarding
   technique also stipulates some additional duplicate packet detection
   operations.  For multiple network interfaces, independent DPD state
   MUST be maintained for each separate interface.  The following
   provides the procedure for S-MPR packet forwarding given the arrival
   of a packet on a given interface, denoted <srcIface>.  There are
   three possible actions, depending upon the previous-hop transmitter:

   1.  If the previous-hop transmitter has selected the current router
       as an MPR,

       A.  The packet identifier is checked against the DPD state for
           each possible outbound interface, including the <srcIface>.

       B.  If the packet is not a duplicate for an outbound interface,
           the packet is forwarded on that interface and a DPD entry is
           made for the given packet identifier for the interface.

       C.  If the packet is a duplicate, no action is taken for that
           interface.




Macker                        Experimental                     [Page 47]
^L
RFC 6621                           SMF                          May 2012


   2.  Else, if the previous-hop transmitter is a 1-hop symmetric
       neighbor, a DPD entry is added for that packet for the
       <srcIface>, but the packet is not forwarded.

   3.  Otherwise, no action is taken.

   Action number two in the list above is non-intuitive but important to
   ensure correctness of S-MPR SMF operation.  The selection of source-
   based relays does not result in a common set among neighboring
   routers, so relays MUST mark, in their DPD state, packets received
   from non-selector, symmetric, 1-hop neighbors (for a given interface)
   and not forward subsequent duplicates of that packet if received on
   that interface.  Deviation here can result in unnecessary, repeated
   packet forwarding throughout the network or incomplete flooding.

   Nodes not participating in neighborhood discovery and relay set
   selection will not be able to source multicast packets into the area
   and have SMF forward them, unlike E-CDS or MPR-CDS where forwarding
   may occur dependent on topology.  Correct S-MPR relay behavior will
   occur with the introduction of repeaters (non-NHDP/SMF participants
   that relay multicast packets using duplicate detection and CF), but
   the repeaters will not efficiently contribute to S-MPR forwarding as
   these routers will not be identified as neighbors (symmetric or
   otherwise) in the S-MPR forwarding process.  NHDP/SMF participants
   MUST NOT forward packets that are not selected by the algorithm, as
   this can disrupt network-wide S-MPR flooding, resulting in incomplete
   or inefficient flooding.  The result is that non-S-MPR SMF routers
   will be unable to source multicast packets and have them forwarded by
   other S-MPR SMF routers.

B.3.  S-MPR Neighborhood Discovery Requirements

   Nodes may optionally signal a Router Priority value to their 1-hop
   neighbors by using the SMF_TYPE:S-MPR message block TLV value field.
   If the value field is omitted, a default Router Priority value of 64
   is to be assumed.  This is summarized here:

               +---------------+---------+-----------------+
               | Length(bytes) | Value   | Router Priority |
               +---------------+---------+-----------------+
               | 0             | N/A     | 64              |
               | 1             | <value> | 0-127           |
               +---------------+---------+-----------------+

                    Table 16: S-MPR Message TLV Values






Macker                        Experimental                     [Page 48]
^L
RFC 6621                           SMF                          May 2012


   Where <value> is a one-octet-long bit field defined as:

   bit 0: the leftmost bit is reserved and SHOULD be set to 0.

   bits 1-7: contain the Router Priority value, 0-127, which is
   associated with the "Neighbor Address List".

   Router Priority values for S-MPR are interpreted in the same fashion
   as "WILLINGNESS" ([RFC3626]), with the value 0 indicating a router
   will NEVER forward and value 127 indicating a router will ALWAYS
   forward.  Values 1-126 indicate how likely a S-MPR SMF router will be
   selected as an MPR by a neighboring SMF router, with higher values
   increasing the likelihood.  Combinations of value field lengths and
   values other than those specified here are NOT permitted and SHOULD
   be ignored.  Below is an example SMF_TYPE:S-MPR Message TLV.

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              |   SMF_TYPE    |1|0|0|1|0|0|   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     S-MPR     |0|0|0|0|0|0|0|1|R|  priority   |     ...       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 9: S-MPR Message TLV Example

   S-MPR election operation requires 2-hop neighbor knowledge as
   provided by NHDP [RFC6130] or from external sources.  MPRs are
   dynamically selected by each router, and selections MUST be
   advertised and dynamically updated within NHDP or an equivalent
   protocol or mechanism.  For NHDP use, the SMF_NBR_TYPE:S-MPR Address
   Block TLV value field is defined as such:

   +---------------+--------+----------+-------------------------------+
   | Length(bytes) | # Addr | Value    | Meaning                       |
   +---------------+--------+----------+-------------------------------+
   | 0             | Any    | N/A      | NOT MPRs                      |
   | 1             | Any    | <value>  | <value> is for all addresses  |
   | N             | N      | <value>* | Each address gets its own     |
   |               |        |          | <value>                       |
   +---------------+--------+----------+-------------------------------+

                 Table 17: S-MPR Address Block TLV Values








Macker                        Experimental                     [Page 49]
^L
RFC 6621                           SMF                          May 2012


   Where <value>, if present, is a one-octet bit field defined as:

   bit 0: The leftmost bit is the M bit that, when set, indicates MPR
   selection of the relevant interface, represented by the associated
   address(es), by the originator router of the NHDP HELLO message.
   When unset, it indicates the originator router of the NHDP HELLO
   message has not selected the relevant interfaces, represented by the
   associated address(es), as its MPR.

   bits 1-7: These bits are reserved and SHOULD be set to 0.

   Combinations of value field lengths and number of addresses other
   than specified here are NOT permitted and SHOULD be ignored.  All
   bits, excepting the leftmost bit, are RESERVED and SHOULD be set to
   0.

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                     ...              | SMF_NBR_TYPE  |1|1|0|1|0|0|   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     S-MPR     |  start-index  |0|0|0|0|0|0|0|1|M|  reserved   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                Figure 10: S-MPR Address Block TLV Example

   The single index TLV example, depicted in Figure 10, indicates that
   the address specified by the <start-index> field is running SMF using
   S-MPR and has been selected by the originator of the NHDP HELLO
   message as an MPR forwarder if the M bit is set.  Multivalued TLVs
   may also be used to specify MPR selection status of multiple
   addresses using only one TLV.  See Figure 8 for a similar example on
   how this may be done.

B.4.  S-MPR Selection Algorithm

   This section describes a basic algorithm for the S-MPR selection
   process.  Note that the selection is with respect to a specific
   interface of the router performing selection, and other router
   interfaces referenced are reachable from this reference router
   interface.  This is consistent with the S-MPR forwarding rules
   described above.  When multiple interfaces per router are used, it is
   possible to enhance the overall selection process across multiple
   interfaces such that common routers are selected as MPRs for each
   interface to avoid unnecessary inefficiencies in flooding.  The
   following steps describe a basic algorithm for conducting S-MPR
   selection for a router interface "n0":




Macker                        Experimental                     [Page 50]
^L
RFC 6621                           SMF                          May 2012


   1.  Initialize the set "MPR" to empty.

   2.  Initialize the set "N1" to include all 1-hop neighbors of "n0".

   3.  Initialize the set "N2" to include all 2-hop neighbors, excluding
       "n0" and any routers in "N1".  Nodes that are only reachable via
       "N1" routers with router priority values of NEVER are also
       excluded.

   4.  For each interface "y" in "N1", initialize a set "N2(y)" to
       include any interfaces in "N2" that are 1-hop neighbors of "y".

   5.  For each interface "x" in "N1" with a router priority value of
       "ALWAYS" (or using the CF relay algorithm), select "x" as an MPR:

       A.  Add "x" to the set "MPR" and remove "x" from "N1".

       B.  For each interface "z" in "N2(x)", remove "z" from "N2".

       C.  For each interface "y" in "N1", remove any interfaces in
           "N2(x)" from "N2(y)".

   6.  For each interface "z" in "N2", initialize the set "N1(z)" to
       include any interfaces in "N1" that are 1-hop neighbors of "z".

   7.  For each interface "x" in "N2" where "N1(x)" has only one member,
       select "x" as an MPR:

       A.  Add "x" to the set "MPR" and remove "x" from "N1".

       B.  For each interface "z" in "N2(x)", remove "z" from "N2" and
           delete "N1(z)".

       C.  For each interface "y" in "N1", remove any interfaces in
           "N2(x)" from "N2(y)".

   8.  While "N2" is not empty, select the interface "x" in "N1" with
       the largest router priority that has the number of members in
       "N_2(x)" as an MPR:

       A.  Add "x" to the set "MPR" and remove "x" from "N1".

       B.  For each interface "z" in "N2(x)", remove "z" from "N2".

       C.  For each interface "y" in "N1", remove any interfaces in
           "N2(x)" from "N2(y)".





Macker                        Experimental                     [Page 51]
^L
RFC 6621                           SMF                          May 2012


   After the set of routers "MPR" is selected, router "n_0" must signal
   its selections to its neighbors.  With NHDP, this is done by using
   the MPR Address Block TLV to mark selected neighbor addresses in
   NHDP_HELLO messages.  Neighbors MUST record their MPR selection
   status and the previous hop address (e.g., link or MAC layer) of the
   selector.  Note these steps are re-evaluated upon neighborhood status
   changes.

Appendix C.  Multipoint Relay Connected Dominating Set (MPR-CDS)
             Algorithm

   The MPR-CDS algorithm is an extension to the basic S-MPR election
   algorithm that results in a shared (non-source-specific) SMF CDS.
   Thus, its forwarding rules are not dependent upon previous hop
   information, similar to E-CDS.  An overview of the MPR-CDS selection
   algorithm is provided in [MPR-CDS].

   It is RECOMMENDED that the SMF_TYPE Message TLV be included in
   NHDP_HELLO messages that are generated by routers conducting MPR-CDS
   SMF operation.

C.1.  MPR-CDS Relay Set Selection Overview

   The MPR-CDS relay set selection process is based upon the MPR
   selection process of the S-MPR algorithm with the added refinement of
   a distributed technique for subsequently down-selecting to a common
   reduced, shared relay set.  A router ordering (or "prioritization")
   metric is used as part of this down-selection process; like the E-CDS
   algorithm, this metric can be based upon router address(es) or some
   other unique router identifier (e.g., Router ID based on largest
   address contained within the "Neighbor Address List") as well as an
   additional Router Priority measure, if desired.  The process for MPR-
   CDS relay selection is as follows:

   1.  First, MPR selection per the S-MPR algorithm is conducted, with
       selectors informing their MPRs (via NHDP) of their selection.

   2.  Then, the following rules are used on a distributed basis by
       selected routers to possibly deselect themselves and thus jointly
       establish a common set of shared SMF relays:

       A.  If a selected router has a larger "RtrPri()" than all of its
           1-hop symmetric neighbors, then it acts as a relay for all
           multicast traffic, regardless of the previous hop.







Macker                        Experimental                     [Page 52]
^L
RFC 6621                           SMF                          May 2012


       B.  Else, if the 1-hop symmetric neighbor with the largest
           "RtrPri()" value has selected the router, then it also acts
           as a relay for all multicast traffic, regardless of the
           previous hop.

       C.  Otherwise, it deselects itself as a relay and does not
           forward any traffic unless changes occur that require re-
           evaluation of the above steps.

   This technique shares many of the desirable properties of the E-CDS
   technique with regards to compatibility with multicast sources not
   participating in NHDP and the opportunity for statically configured
   CF routers to be present, regardless of their participation in NHDP.

C.2.  MPR-CDS Forwarding Rules

   The forwarding rules for MPR-CDS are similar to those for E-CDS.  Any
   SMF router that has selected itself as a relay performs DPD and
   forwards all non-duplicative multicast traffic allowed by the present
   forwarding policy.  Packet previous hop knowledge is not needed for
   forwarding decisions when using MPR-CDS.

   1.  Upon packet reception, DPD is performed.  Note that MPR-CDS
       requires one duplicate table for the set of interfaces associated
       with the relay set selection.

   2.  If the packet is a duplicate, no further action is taken.

   3.  If the packet is non-duplicative:

       A.  A DPD entry is added for the packet identifier

       B.  The packet is forwarded out to all interfaces associated with
           the relay set selection.

   As previously mentioned, even packets sourced (or relayed) by routers
   not participating in NHDP and/or the MPR-CDS relay set selection may
   be forwarded by MPR-CDS forwarders without problem.  A particular
   deployment MAY choose to not forward packets from sources or relays
   that have been explicitly identified via NHDP or other means as
   operating as part of a different relay set algorithm (e.g., S-MPR) to
   allow coexistent deployments to operate correctly.

C.3.  MPR-CDS Neighborhood Discovery Requirements

   The neighborhood discovery requirements for MPR-CDS have commonality
   with both the S-MPR and E-CDS algorithms.  MPR-CDS selection
   operation requires 2-hop neighbor knowledge as provided by NHDP



Macker                        Experimental                     [Page 53]
^L
RFC 6621                           SMF                          May 2012


   [RFC6130] or from external sources.  Unlike S-MPR operation, there is
   no need for associating link-layer address information with 1-hop
   neighbors since MPR-CDS forwarding is independent of the previous hop
   similar to E-CDS forwarding.

   To advertise an optional Router Priority value or "WILLINGNESS", an
   originating router may use the Message TLV of type SMF_TYPE:MPR-CDS,
   which shares a common <value> format with both SMF_TYPE:E-CDS
   (Table 14) and SMF_TYPE:S-MPR (Table 16).

   MPR-CDS only requires 1-hop knowledge of Router Priority for correct
   operation.  In the S-MPR phase of MPR-CDS selection, MPRs are
   dynamically determined by each router, and selections MUST be
   advertised and dynamically updated using NHDP or an equivalent
   protocol or mechanism.  The <value> field of the SMF_NBR_TYPE:MPR-CDS
   type TLV shares a common format with SMF_NBR_TYPE:S-MPR (Table 17) to
   convey MPR selection.

C.4.  MPR-CDS Selection Algorithm

   This section describes an algorithm for the MPR-CDS selection
   process.  Note that the selection described is with respect to a
   specific interface of the router performing selection, and other
   router interfaces referenced are reachable from this reference router
   interface.  An ordered tuple of Router Priority and Router ID is used
   in MPR-CDS relay set selection.  The Router ID value should be set to
   the largest advertised address of a given router; this information is
   provided to one-hop neighbors via NHDP by default.  Precedence is
   given to the Router Priority portion, and the Router ID value is used
   as a tiebreaker.  The evaluation of this tuple is referred to as
   "RtrPri(n)" in the description below where "n" references a specific
   router.  Note that it is possible that the Router Priority portion
   may be optional and the evaluation of "RtrPri()" be solely based upon
   the unique Router ID.  Since there MUST NOT be any duplicate address
   values among SMF routers, a comparison of "RtrPri(n)" between any two
   routers will always be an inequality.  The following steps, repeated
   upon any changes detected within the 1-hop and 2-hop neighborhood,
   describe a basic algorithm for conducting MPR-CDS selection for a
   router interface "n0":

   1.  Perform steps 1-8 of Appendix B.4 to select MPRs from the set of
       1-hop neighbors of "n0" and notify/update neighbors of
       selections.

   2.  Upon being selected as an MPR (or any change in the set of
       routers selecting "n0" as an MPR):





Macker                        Experimental                     [Page 54]
^L
RFC 6621                           SMF                          May 2012


       A.  If no neighbors have selected "n0" as an MPR, "n0" does not
           act as a relay, and no further steps are taken until a change
           in neighborhood topology or selection status occurs.

       B.  Determine the router "n1_max" that has the maximum "RtrPri()"
           of all 1-hop neighbors.

       C.  If "RtrPri(n0)" is greater than "RtrPri(n1_max)", then "n0"
           selects itself as a relay for all multicast packets.

       D.  Else, if "n1_max" has selected "n0" as an MPR, then "0"
           selects itself as a relay for all multicast packets.

       E.  Otherwise, "n0" does not act as a relay.

   It is possible to extend this algorithm to consider neighboring SMF
   routers that are known to be statically configured for CF (always
   relaying).  The modification to the above algorithm is to process
   such routers as having a maximum possible Router Priority value.
   This is the same as the case for participating routers that have been
   configured with a S-MPR "WILLINGNESS" value of "WILL_ALWAYS".  It is
   expected that routers configured for CF and participating in NHDP
   would indicate their status with use of the SMF_TYPE TLV type in
   their NHDP_HELLO message TLV block.  It is important to note,
   however, that CF routers will not select MPR routers and therefore
   cannot guarantee connectedness.

Author's Address

   Joseph Macker (editor)
   NRL
   Washington, DC  20375
   USA

   EMail: macker@itd.nrl.navy.mil
















Macker                        Experimental                     [Page 55]
^L