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) D. Eastlake 3rd
Request for Comments: 8171 L. Dunbar
Category: Standards Track Huawei
ISSN: 2070-1721 R. Perlman
EMC
Y. Li
Huawei
June 2017
Transparent Interconnection of Lots of Links (TRILL):
Edge Directory Assistance Mechanisms
Abstract
This document describes mechanisms for providing directory service to
TRILL (Transparent Interconnection of Lots of Links) edge switches.
The directory information provided can be used in reducing multi-
destination traffic, particularly ARP / Neighbor Discovery (ND) and
unknown unicast flooding. It can also be used to detect traffic with
forged source addresses.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc8171.
Eastlake, et al. Standards Track [Page 1]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Copyright Notice
Copyright (c) 2017 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.
Table of Contents
1. Introduction ....................................................3
1.1. Uses of Directory Information ..............................5
1.2. Terminology ................................................6
2. Push Model Directory Assistance Mechanisms ......................7
2.1. Requesting Push Service ....................................7
2.2. Push Directory Servers .....................................8
2.3. Push Directory Server State Machine ........................9
2.3.1. Push Directory States ...............................9
2.3.2. Push Directory Events and Conditions ...............11
2.3.3. State Transition Diagram and Table .................13
2.4. End Stations and Push Directories .........................15
2.5. Additional Push Details ...................................15
2.6. Providing Secondary Servers with Data from a
Primary Server ............................................16
2.7. Push Directory Configuration ..............................17
3. Pull Model Directory Assistance Mechanisms .....................17
3.1. Pull Directory Message: Common Format .....................19
3.1.1. Version Negotiation ................................20
3.2. Pull Directory Query and Response Messages ................21
3.2.1. Pull Directory Query Message Format ................21
3.2.2. Pull Directory Responses ...........................24
3.2.2.1. Pull Directory Response Message Format ....24
3.2.2.2. Pull Directory Forwarding .................27
3.3. Cache Consistency .........................................28
3.3.1. Update Message Format ..............................32
3.3.2. Acknowledge Message Format .........................33
3.4. Summary of Record Formats in Messages .....................34
Eastlake, et al. Standards Track [Page 2]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.5. End Stations and Pull Directories .........................34
3.5.1. Pull Directory Hosted on an End Station ............35
3.5.2. Use of Pull Directory by End Stations ..............36
3.5.3. Native Pull Directory Messages .....................37
3.6. Pull Directory Message Errors .............................38
3.6.1. Error Codes ........................................39
3.6.2. Sub-errors under Error Codes 1 and 3 ...............39
3.6.3. Sub-errors under Error Codes 128 and 131 ...........40
3.7. Additional Pull Details ...................................40
3.8. The "No Data" Flag ........................................40
3.9. Pull Directory Service Configuration ......................42
4. Directory Use Strategies and Push-Pull Hybrids .................42
5. TRILL ES-IS ....................................................44
5.1. PDUs and System IDs .......................................45
5.2. Adjacency, DRB Election, Port IDs, Hellos, and TLVs .......46
5.3. Link State ................................................47
6. Security Considerations ........................................47
6.1. Directory Information Security ............................47
6.2. Directory Confidentiality and Privacy .....................47
6.3. Directory Message Security Considerations .................48
7. IANA Considerations ............................................48
7.1. ESADI-Parameter Data Extensions ...........................48
7.2. RBridge Channel Protocol Numbers ..........................49
7.3. The Pull Directory (PUL) and No Data (NOD) Bits ...........49
7.4. TRILL Pull Directory QTYPEs ...............................50
7.5. Pull Directory Error Code Registries ......................50
7.6. TRILL-ES-IS MAC Address ...................................51
8. References .....................................................51
8.1. Normative References ......................................51
8.2. Informative References ....................................54
Acknowledgments ...................................................55
Authors' Addresses ................................................55
Eastlake, et al. Standards Track [Page 3]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
1. Introduction
[RFC7067] gives a problem statement and high-level design for using
directory servers to assist TRILL [RFC6325] [RFC7780] edge nodes in
reducing multi-destination ARP / Neighbor Discovery (ND) [ARPND],
reducing unknown unicast flooding traffic, and improving security
against address spoofing within a TRILL campus. Because
multi-destination traffic becomes an increasing burden as a network
scales up in number of nodes, reducing ARP/ND and unknown unicast
flooding improves TRILL network scalability. This document describes
specific mechanisms for TRILL directory servers.
The information held by the directory or directories is address
mapping and reachability information -- most commonly, what MAC
(Media Access Control) address [RFC7042] corresponds to an IP address
within a Data Label (VLAN or FGL (Fine-Grained Label) [RFC7172]) and
the egress TRILL switch (RBridge), and, optionally, what specific
port on that TRILL switch, from which that MAC address is reachable.
But it could be what IP address corresponds to a MAC address or
possibly other address mapping or reachability information.
The mechanism used to initially populate directory data in primary
servers is beyond the scope of this document. A primary server can
use the Push Directory service to provide directory data to secondary
servers, as described in Section 2.6. In the data-center
environment, it is common for orchestration software to know and
control where all the IP addresses, MAC addresses, and VLANs/tenants
are in a data center. Thus, such orchestration software can be
appropriate for providing the directory function or for supplying the
directory or directories with directory information.
Efficient routing of unicast traffic in a TRILL campus assumes that
the mapping of destination MAC addresses to edge RBridges is stable
enough that the default data-plane learning of TRILL and/or the use
of directories reduces to an acceptable level the need to flood
packets where the location of the destination is unknown. Although
not prohibited, "ephemeral" MAC addresses are unlikely to be used in
such an environment. Directories need not be complete, and in the
case that any ephemeral MAC addresses were in use, they would
probably not be included in directory information.
Directory services can be offered in a Push Mode, Pull Mode, or both
[RFC7067] at the discretion of the server. Push Mode, in which a
directory server pushes information to TRILL switches indicating
interest, is specified in Section 2. Pull Mode, in which a TRILL
switch queries a server for the information it wants, is specified in
Section 3. More detail on modes of operation, including hybrid
Push/Pull, are provided in Section 4.
Eastlake, et al. Standards Track [Page 4]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
1.1. Uses of Directory Information
A TRILL switch can consult directory information whenever it wants by
(1) searching through information that has been retained after being
pushed to it or pulled by it or (2) requesting information from a
Pull Directory. However, the following are expected to be the most
common circumstances leading to the use of directory information.
All of these are cases of ingressing (or originating) a native frame.
1. ARP requests and replies [RFC826] are normally broadcast. But a
directory-assisted edge TRILL switch could intercept ARP messages
and reply if the TRILL switch has the relevant information
[ARPND].
2. IPv6 ND [RFC4861] requests and replies are normally multicast.
Except in the case of Secure Neighbor Discovery (SEND) [RFC3971],
where possession of the right keying material might be required, a
directory-assisted edge TRILL switch could intercept ND messages
and reply if the TRILL switch has the relevant information
[ARPND].
3. Unknown destination MAC addresses normally cause a native frame to
be flooded. An edge TRILL switch ingressing a native frame
necessarily has to determine if it knows the egress RBridge from
which the destination MAC address of the frame (in the frame's
VLAN or FGL) is reachable. It might have learned that information
from the directory or could query the directory if it does not
know it. Furthermore, if the edge TRILL switch has complete
directory information, it can detect a forged source MAC or IP
address in any native frame and discard the frame if it finds such
a forged address.
4. RARP [RFC903] (Reverse ARP) is similar to ARP (item 1 above).
Eastlake, et al. Standards Track [Page 5]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
1.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
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
The terminology and abbreviations of [RFC6325] are used herein, along
with the following:
AFN: Address Family Number
(http://www.iana.org/assignments/address-family-numbers/).
CSNP Time: Complete Sequence Number Protocol Data Unit (PDU) time.
See ESADI [RFC7357] and Section 7.1 below.
Data Label: VLAN or FGL.
ESADI: End Station Address Distribution Information [RFC7357].
FGL: Fine-Grained Label [RFC7172].
FR: Flood Record flag bit. See Section 3.2.1.
Host: A physical server or a virtual machine. A host must have a MAC
address and usually has at least one IP address.
Interested Labels sub-TLV: Short for "Interested Labels and Spanning
Tree Roots sub-TLV" [RFC7176].
Interested VLANs sub-TLV: Short for "Interested VLANs and Spanning
Tree Roots sub-TLV" [RFC7176].
IP: Internet Protocol. In this document, IP includes both IPv4
and IPv6.
MAC address: Media Access Control address [RFC7042].
MacDA: Destination MAC address.
MacSA: Source MAC address.
OV: Overflow flag bit. See Section 3.2.2.1.
PDSS: Push Directory Server Status. See Sections 2 and 7.1.
Eastlake, et al. Standards Track [Page 6]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Primary server: A directory server that obtains the information it is
providing by a reliable mechanism designed to assure the freshness
of that information. This mechanism is outside the scope of this
document. (See "Secondary server" below.)
PUL: Pull Directory flag bit. See Sections 3 and 7.3.
RBridge: An alternative name for a TRILL switch.
Secondary server: A directory server that obtains the information it
is providing from one or more primary servers.
TLV: Type, Length, Value.
TRILL: Transparent Interconnection of Lots of Links or Tunneled
Routing in the Link Layer.
TRILL switch: A device that implements the TRILL protocol.
2. Push Model Directory Assistance Mechanisms
In the Push Model [RFC7067], one or more Push Directory servers
reside at TRILL switches and "push down" the address mapping
information for the various addresses associated with end-station
interfaces and the TRILL switches from which those interfaces are
reachable [RFC7961]. This service is scoped by Data Label (VLAN or
FGL [RFC7172]). A Push Directory advertises when, for a Data Label,
it is configured to be a directory having complete information and
also has actually pushed all the information it has. It might be
pushing only a subset of the mapping and/or reachability information
for a Data Label. The Push Model uses the ESADI [RFC7357] protocol
as its distribution mechanism.
With the Push Model, if complete address mapping information for a
Data Label is being pushed, a TRILL switch (RBridge) that has that
complete information and is ingressing a native frame can simply drop
the frame if the destination unicast MAC address can't be found in
the mapping information available, instead of flooding the frame
(ingressing it as an unknown MAC destination TRILL Data frame). But
this will result in lost traffic if the ingress TRILL switch's
directory information is incomplete.
2.1. Requesting Push Service
In the Push Model, it is necessary to have a way for a TRILL switch
to subscribe to information from the directory server(s). TRILL
switches simply use the ESADI [RFC7357] protocol mechanism to
announce, in their core IS-IS Link State PDUs (LSPs), the Data Labels
Eastlake, et al. Standards Track [Page 7]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
for which they are participating in ESADI by using the Interested
VLANs sub-TLV [RFC7176] and/or the Interested Labels sub-TLV
[RFC7176]. This will cause the directory information to be pushed to
them for all such Data Labels that are being served by the one or
more Push Directory servers.
2.2. Push Directory Servers
Push Directory servers advertise, through ESADI, their availability
to push the mapping information for a particular Data Label by
setting the PDSS in their ESADI-Parameter APPsub-TLV for that ESADI
instance (see [RFC7357] and Section 7.1) to a non-zero value. This
PDSS field setting is visible to other ESADI participants, including
other Push Directory servers, for that Data Label. Each Push
Directory server MUST participate in ESADI for the Data Labels for
which it will push mappings and set the PDSS field in its
ESADI-Parameter APPsub-TLV for that Data Label. For increased
robustness, increased bandwidth capability, and improved locality, it
is useful to have multiple Push Directory servers for each
Data Label. Each Push Directory server is configured with a
number N, which is in the range 1 through 8 and defaults to 2, for
each Data Label for which it can push directory information (see
"PushDirServers" in Section 2.7). If the Push Directory servers for
a Data Label are configured consistently with the same N and at least
N servers are available, then N copies of that directory will be
pushed.
Each Push Directory server also has a configurable 8-bit priority
(PushDirPriority) to be Active, which defaults to 0x3F (see
Section 2.7). This priority is treated as an unsigned integer, where
the larger magnitude means higher priority. This priority appears in
its ESADI-Parameter APPsub-TLV (see Section 7.1). In the case of a
tie in this configurable priority, the System ID of the TRILL switch
acting as the server is used as a tiebreaker and is treated as an
unsigned 6-byte integer, where the larger magnitude indicates higher
priority.
For each Data Label it can serve, each Push Directory server checks
to see if there appear to be enough higher-priority servers to push
the desired number of copies. It does this by ordering, by priority,
the Push Directory servers whose advertisements are present in the
ESADI link-state database for that Data Label and that are
data reachable [RFC7780] as indicated by its IS-IS link-state
database. The Push Directory server then determines its own position
in that order. If a Push Directory server's configuration indicates
that N copies of the mappings for a Data Label should be pushed and
the server finds that it is number K in the priority ordering (where
number 1 in the ordered list is highest priority and the last is
Eastlake, et al. Standards Track [Page 8]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
lowest priority), then if K is less than or equal to N, the Push
Directory server is Active. If K is greater than N, it is Stand-By.
Active and Stand-By behavior are specified below in Section 2.3.
For a Push Directory to reside on an end station, one or more TRILL
switches locally connected to that end station must proxy for the
Push Directory server and advertise themselves in ESADI as Push
Directory servers. It appears to the rest of the TRILL campus that
these TRILL switches (that are proxying for the end station) are the
Push Directory server(s). The protocol between such a Push Directory
end station and the one or more proxying TRILL switches acting as
Push Directory servers is beyond the scope of this document.
2.3. Push Directory Server State Machine
The subsections below describe the states, events, and corresponding
actions for Push Directory servers.
The meanings of possible values of the PDSS field in a Push
Directory's ESADI-Parameter APPsub-TLV are summarized in the table
below.
PDSS Meaning
---- ------------------------------------------------------
0 Not a Push Directory server
1 Push Directory server in Stand-By Mode
2 Push Directory server in Active Mode but not complete
3 Push Directory server in Active Mode that has pushed
complete data
2.3.1. Push Directory States
A Push Directory server is in one of seven states, as listed below,
for each Data Label it can serve. The name of each state is followed
by a symbol that starts and ends with an angle bracket (for example,
"<S1>") and represents the state. The value that the Push Directory
server advertises in the PDSS is determined by the state. In
addition, it has an internal State-Transition-Time variable for each
Data Label it serves that is set at each state transition and that
enables it to determine how long it has been in its current state for
that Data Label.
Eastlake, et al. Standards Track [Page 9]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Down <S1>: A completely shut down virtual state, defined for
convenience in specifying state diagrams. A Push Directory server
in this state does not advertise any Push Directory data. It may
be participating in ESADI [RFC7357] with the PDSS field set to 0
in its ESADI-Parameter APPsub-TLV, or it might not be
participating in ESADI at all. All states other than the Down
state are considered to be Up states and imply a non-zero
PDSS field.
Stand-By <S2>: No Push Directory data is advertised. Any outstanding
ESADI-LSP fragments containing directory data are updated to
remove that data, and if the result is an empty fragment (contains
nothing except possibly an Authentication TLV), the fragment is
purged. The Push Directory participates in ESADI [RFC7357] and
advertises its ESADI fragment zero that includes an
ESADI-Parameter APPsub-TLV with the PDSS field set to 1.
Active <S3>: The Push Directory participates in ESADI [RFC7357] and
advertises its ESADI fragment zero that includes an
ESADI-Parameter APPsub-TLV with the PDSS field set to 2. It also
advertises its directory data and any changes through ESADI
[RFC7357] in its ESADI-LSPs, using the Interface Addresses
APPsub-TLV [RFC7961], and updates that information as it changes.
Active Completing <S4>: The same behavior as the Active state, except
that the server responds differently to events. The purpose of
this state is to be sure that there has been enough time for
directory information to propagate to subscribing edge TRILL
switches (see "Time Condition", as defined in Section 2.3.2)
before the directory server advertises that the information is
complete.
Active Complete <S5>: The same behavior as Active, except that the
PDSS field in the ESADI-Parameter APPsub-TLV is set to 3 and the
server responds differently to events.
Going Stand-By Was Complete <S6>: The same behavior as Active, except
that the server responds differently to events. The purpose of
this state is to be sure that the information indicating that the
directory will no longer be complete has enough time to propagate
to edge TRILL switches (see "Time Condition" in Section 2.3.2)
before the directory server stops advertising updates to the
information. (See note below.)
Active Uncompleting <S7>: The same behavior as Active, except that it
responds differently to events. The purpose of this state is to
be sure that the information indicating that the directory will no
longer be complete has enough time to propagate to edge TRILL
Eastlake, et al. Standards Track [Page 10]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
switches (see "Time Condition" in Section 2.3.2) before the
directory server might stop advertising updates to the
information. (See note below.)
Note: It might appear that a Push Directory could transition
directly from Active Complete to Active, since the Active state
continues to advertise updates, eliminating the need for the
Active Uncompleting transition state. But consider the case of
the Push Directory that was complete being configured to be
incomplete and then the Stand-By Condition (see Section 2.3.2)
occurring shortly thereafter. If the first of these two events
caused the server to transition directly to the Active state,
then later, when the Stand-By Condition occurred, it would
immediately transition to Stand-By and stop advertising updates
even though there might not have been enough time for knowledge of
its incompleteness to have propagated to all edge TRILL switches.
The following table lists each state and its corresponding PDSS
value:
State PDSS
-------------------------------- ------
Down <S1> 0
Stand-By <S2> 1
Active <S3> 2
Active Completing <S4> 2
Active Complete <S5> 3
Going Stand-By Was Complete <S6> 2
Active Uncompleting <S7> 2
2.3.2. Push Directory Events and Conditions
Three auxiliary conditions, referenced later in this subsection, are
defined as follows:
The Activate Condition: In order to have the desired number of Push
Directory servers pushing data for Data Label X, this Push
Directory server should be active. This is determined by the
server finding that (a) it is priority K among the data-reachable
Push Directory servers (where the highest-priority server is 1)
for Data Label X, (b) it is configured that there should be
N copies pushed for Data Label X, and (c) K is less than or equal
to N. For example, the Push Directory server is configured so
that two copies should be pushed and finds that it is priority 1
or 2 among the Push Directory servers that are visible in its
ESADI link-state database and that are data reachable, as
indicated by its IS-IS link-state database.
Eastlake, et al. Standards Track [Page 11]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
The Stand-By Condition: In order to have the desired number of Push
Directory servers pushing data for Data Label X, this Push
Directory server should be Stand-By (not Active). This is
determined by the server finding that (a) it is priority K among
the data-reachable Push Directory servers (where the
highest-priority server is 1) for Data Label X, (b) it is
configured that there should be N copies pushed for Data Label X,
and (c) K is greater than N. For example, the Push Directory
server is configured so that two copies should be pushed and finds
that it is priority 3 or lower priority (higher number) among the
available Push Directory servers.
The Time Condition: The Push Directory server has been in its current
state for a configurable amount of time (PushDirTimer) that
defaults to twice its CSNP (Complete Sequence Number PDU) time
(see Sections 2.7 and 7.1).
The events and conditions listed below cause state transitions in
Push Directory servers.
1. The Push Directory server comes up.
2. The Push Directory server or the TRILL switch on which it resides
is being shut down. This is a persistent condition, unless the
shutdown is canceled. So, for example, a Push Directory server in
the Going Stand-By Was Complete state does not transition out of
that state due to this condition but, after (1) the Time Condition
is met and (2) the directory transitions to Stand-By and then
performs the actions required there (such as purging LSPs),
continues to the Down state if this condition is still true.
Similar comments apply to events/conditions 3, 4, and 5.
3. The Activate Condition is met, and the server's configuration
indicates that it does not have complete data.
4. The Stand-By Condition is met.
5. The Activate Condition is met, and the server's configuration
indicates that it has complete data.
6. The server's configuration is changed to indicate that it does not
have complete data.
7. The Time Condition is met.
Eastlake, et al. Standards Track [Page 12]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
2.3.3. State Transition Diagram and Table
The state transition table is as follows:
| | | | Active | Active | Going | Active
State|Down|Stand-By|Active|Completing|Complete| Stand-By |Uncompleting
-----+ | | | | |Was Complete|
Event|<S1>| <S2> | <S3> | <S4> | <S5> | <S6> | <S7>
-----+----+--------+------+----------+--------+------------+------------
1 |<S2>| N/A | N/A | N/A | N/A | N/A | N/A
2 |<S1>| <S1> | <S2> | <S2> | <S6> | <S6> | <S7>
3 |<S1>| <S3> | <S3> | <S3> | <S7> | <S3> | <S7>
4 |<S1>| <S2> | <S2> | <S2> | <S6> | <S6> | <S6>
5 |<S1>| <S4> | <S4> | <S4> | <S5> | <S5> | <S5>
6 |<S1>| <S2> | <S3> | <S3> | <S7> | <S6> | <S7>
7 |<S1>| <S2> | <S3> | <S5> | <S5> | <S2> | <S3>
Eastlake, et al. Standards Track [Page 13]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
The above state table is equivalent to the following transition
diagram:
+-----------+
| Down <S1> |<---------+
+-----------+ |
|1 ^ | 3,4,5,6,7 |
| | +------------+
V |2
+---------------+
| Stand-By <S2> |<--------------------------------------+
+---------------+ ^ ^ ^ |
|5 |3 |1,4,6,7 | | | |
| | +---------+ | | |
| V |2,4 | |
| +---------------------+ | |
| | Active <S3> |<---------|-------------+ |
| +---------------------+ ^ | | |
| |5 ^ |1,3,6,7 ^ | | | |
| | | | | | | | |
| | | +---------+ | | | |
| | | | | | |
V V |3,6 | | | |
+------------------------+ | | | |
| Active Completing <S4> |------------+ | |
+------------------------+ 2,4 | | |
|7 |1,5 ^ | | |
| | | | | |
| +-------+ | | |
| | | |
| +------------------------------------+ | |
| | | | | |
V V |7 |5 |3 |7
+-------------+ 3,6 +----------------+ 4 +----------------+
| Active |------->| Active |--->| Going Stand-By |
| Complete | | Uncompleting | | Was Complete |
| <S5> |<-------| <S7> | | <S6> |
+-------------+ 5 +----------------+ +----------------+
|1,5,7 ^ |2,4 |1,2,3,6 ^ ^ |1,2,4,6 ^
| | | | | | | |
+-------+ | +------------+ | +--------+
| |
+----------------------------------+
Figure 1: Push Server State Diagram
Eastlake, et al. Standards Track [Page 14]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
2.4. End Stations and Push Directories
End-station hosting and end-station use of Push Directories are
outside the scope of this document. Push Directory information
distribution is accomplished using ESADI [RFC7357], which does not
operate to end stations. In the future, ESADI might be extended to
operate to end stations, or some other method, such as BGP, might be
specified as a way to support end-station hosting or end-station use
of Push Directories.
2.5. Additional Push Details
Push Directory mappings can be distinguished from other data
distributed through ESADI, because mappings are distributed only with
the Interface Addresses APPsub-TLV [RFC7961] and are flagged in that
APPsub-TLV as being Push Directory data.
TRILL switches, whether or not they are Push Directory servers, MAY
continue to advertise any locally learned MAC attachment information
in ESADI [RFC7357] using the MAC-Reachability TLV [RFC6165].
However, if a Data Label is being served by complete Push Directory
servers, advertising such a locally learned MAC attachment generally
SHOULD NOT be done, as it would not add anything and would just waste
bandwidth and ESADI link-state space. An exception might be when a
TRILL switch learns local MAC connectivity and that information
appears to be missing from the directory mapping.
Because a Push Directory server needs to advertise interest in one or
more Data Labels even though it might not want to receive
multi-destination TRILL Data packets in those Data Labels, the
"No Data" (NOD) flag bit is provided, as discussed in Section 3.8.
When a Push Directory server is no longer data reachable [RFC7780],
as indicated by the IS-IS link-state database, other TRILL switches
MUST ignore any Push Directory data from that server, because it is
no longer being updated and may be stale.
The nature of dynamic distributed asynchronous systems is such that
it is impossible for a TRILL switch receiving Push Directory
information to be absolutely certain that it has complete
information. However, it can obtain a reasonable assurance of
complete information by requiring that two conditions be met:
1. The PDSS field is 3 in the ESADI fragment zero from the server for
the relevant Data Label.
Eastlake, et al. Standards Track [Page 15]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
2. As far as it can tell, it has had continuous data connectivity to
the server for a configurable amount of time that defaults to
twice the server's CSNP time (see "PushDirTimer" in Section 2.7).
Condition 2 is necessary because a client TRILL switch might be just
coming up and receive an ESADI-LSP meeting the requirement in
condition 1 above but has not yet received all of the ESADI-LSP
fragments from the Push Directory server.
Likewise, due to various delays, when an end station connects to or
disconnects from the campus, there are timing differences between
such a connection or disconnection, the update of directory
information at the directory, and the update of directory information
at any particular RBridge in the TRILL campus. Thus, there is
commonly a small window during which an RBridge using directory
information might either (1) drop or unnecessarily flood a frame as
having an unknown unicast destination or (2) encapsulate a frame to
an edge RBridge where the end station is no longer connected when the
frame arrives at that edge RBridge.
There may be conflicts between mapping information from different
Push Directory servers or conflicts between locally learned
information and information received from a Push Directory server.
In cases of such conflicts, information with a higher confidence
value [RFC6325] [RFC7961] is preferred over information with a lower
confidence value. In cases of equal confidence values, Push
Directory information is preferred to locally learned information,
and if information from Push Directory servers conflicts, the
information from the higher-priority Push Directory server is
preferred.
2.6. Providing Secondary Servers with Data from a Primary Server
A secondary Push or Pull Directory server is one that obtains its
data from a primary directory server. Such systems, where some
directory servers can be populated from others, have been found
useful for multiple-server directory applications -- for example, in
the DNS, where it is the normal case that some authoritative servers
(secondary servers) are populated with data from other authoritative
servers (primary servers).
Other techniques MAY be used, but by default, this data transfer
occurs through the primary server acting as a Push Directory server
for the Data Labels involved, while the secondary directory server
takes the pushed data it receives from the highest-priority Push
Directory server and re-originates it. Such a secondary server
may be a Push Directory server, a Pull Directory server, or both for
any particular Data Label. Because the data from a secondary server
Eastlake, et al. Standards Track [Page 16]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
will necessarily be at least a little less fresh than that from a
primary server, it is RECOMMENDED that the re-originated secondary
server's data be given a confidence level at least one less than that
of the data as received from the primary server (or unchanged if it
is already of minimum confidence).
2.7. Push Directory Configuration
The following configuration parameters, per Data Label, are available
for controlling Push Directory behavior:
Name Range/Setting Default Section
--------------- ------------- --------- ------------
PushDirService true/false false 2.2
PushDirServers 1-8 2 2.2
PushDirPriority 0-255 0x3F 2.2
PushDirComplete true/false false 2.3.1, 2.3.2
PushDirTimer 1-511 2 * CSNP 2.3.2, 2.5
PushDirService is a boolean. When false, Push Directory service is
not provided; when true, it is.
PushDirComplete is a boolean. When false, the server never indicates
that the information it has pushed is complete; when true, it does so
indicate after pushing all the information it knows.
PushDirTimer defaults to two times the ESADI-CSNP configuration value
but not less than 1 second.
3. Pull Model Directory Assistance Mechanisms
In the Pull Model [RFC7067], a TRILL switch (RBridge) pulls directory
information from an appropriate directory server when needed.
A TRILL switch that makes use of Pull Directory services must
implement appropriate connections between its directory utilization
and its link-state database and link-state updating. For example,
Pull Directory servers for a particular Data Label X are found by
looking in the core TRILL IS-IS link-state database for
data-reachable [RFC7780] TRILL switches that advertise themselves by
setting the Pull Directory flag (PUL) to 1 in their Interested VLANs
sub-TLV or Interested Labels sub-TLV (see Section 7.3) for that Data
Label. The set of such switches can change with configuration
changes by network management, such as the following:
o the startup or shutdown of Pull Directory servers
Eastlake, et al. Standards Track [Page 17]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
o changes in network topology, such as the connection or
disconnection of TRILL switches that are Pull Directory servers
o network partition or merger
As described in Section 3.7, a TRILL switch MUST be able to detect
that a Pull Directory from which it has cached data is no longer
data reachable so that it can discard such cached data.
If multiple data-reachable TRILL switches indicate in the link-state
database that they are Pull Directory servers for a particular Data
Label, pull requests can be sent to any one or more of them, but it
is RECOMMENDED that pull requests be preferentially sent to the
server or servers that are lowest cost from the requesting TRILL
switch.
Pull Directory requests are sent by encapsulating them in an RBridge
Channel [RFC7178] message using the Pull Directory channel protocol
number (see Section 7.2). Responses are returned in an RBridge
Channel message using the same channel protocol number. See
Section 3.2 for Query and Response Message formats. For cache
consistency or notification purposes, Pull Directory servers, under
certain conditions, MUST send unsolicited Update Messages to client
TRILL switches they believe may be holding old data. Those clients
can acknowledge such updates, as described in Section 3.3. All these
messages have a common header, as described in Section 3.1. Errors
are returned as described in Section 3.6.
The requests to Pull Directory servers are typically derived from
ingressed ARP [RFC826], ND [RFC4861], RARP [RFC903], or SEND
[RFC3971] messages, or data frames with unknown unicast destination
MAC addresses, intercepted by an ingress TRILL switch, as described
in Section 1.1.
Pull Directory responses include an amount of time for which the
response should be considered valid. This includes negative
responses that indicate that no data is available. It is RECOMMENDED
that both positive responses with data and negative responses be
cached and used to locally handle ARP, ND, RARP, unknown destination
MAC frames, or the like [ARPND], until the responses expire. If
information previously pulled is about to expire, a TRILL switch MAY
try to refresh it by issuing a new pull request but, to avoid
unnecessary requests, SHOULD NOT do so unless it has been recently
used. The validity timer of cached Pull Directory responses is NOT
reset or extended merely because that cache entry is used.
Eastlake, et al. Standards Track [Page 18]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.1. Pull Directory Message: Common Format
All Pull Directory messages are transmitted as the Channel
Protocol-specific payload of RBridge Channel messages [RFC7178].
Pull Directory messages are formatted as described herein, starting
with the following common 8-byte header:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Type | Flags | Count | Err | SubErr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type Specific Payload - variable length
+-+-+- ...
Ver: Version of the Pull Directory protocol. An unsigned integer.
Version 0 (zero) is specified in this document. See
Section 3.1.1 for a discussion of version negotiation.
Type: The Pull Directory message type, as follows:
Type Section Name
---- ------- ------------
0 - Reserved
1 3.2.1 Query
2 3.2.2 Response
3 3.3.1 Update
4 3.3.2 Acknowledge
5-14 - Unassigned
15 - Reserved
Flags: Four flag bits whose meaning depends on the Pull Directory
message type. Flags whose meanings are not specified are
reserved, MUST be sent as zero, and MUST be ignored on receipt.
Count: Some Pull Directory message types specified herein have
zero or more occurrences of a Record as part of the
type-specific payload. The Count field is the number of
occurrences of that Record and is expressed as an unsigned
integer. For any Pull Directory messages not structured with
such occurrences, this field MUST be sent as zero and ignored
on receipt.
Eastlake, et al. Standards Track [Page 19]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Err, SubErr: A two-part error code. These fields are only used in
Reply Messages. In messages that are requests or updates,
these fields MUST be sent as zero and ignored on receipt. An
Err field containing the value zero means no error. The
meaning of values in the SubErr field depends on the value of
the Err field, but in all cases, a zero SubErr field is allowed
and provides no additional information beyond the value of the
Err field.
Sequence Number: An identifying 32-bit quantity set by the TRILL
switch sending a request or other unsolicited message and
returned in every corresponding reply or acknowledgment. It is
used to match up responses with the message to which they
respond.
Type Specific Payload: Format depends on the Pull Directory
message type.
3.1.1. Version Negotiation
The version number (Ver) in the Pull Directory message header is
incremented for a future version with changes such that TRILL
directory messages cannot be parsed correctly by an earlier version.
Ver is not incremented for minor changes such as defining a new field
value for an existing field.
Pull Directory messages come in pairs (Request-Response,
Update-Acknowledgment). The version number in the Request/Update
(Ver1) indicates the format of that message and the format of the
corresponding returned Response/Acknowledgment. The version number
in the returned Response/Acknowledgment (Ver2) indicates the highest
version number that the sender of that Response/Acknowledgment
understands.
In the most common case -- a well-configured network -- Ver1 and Ver2
will be equal.
If Ver2 is less than Ver1, the returned Response/Acknowledgment will
be an error message saying that the version is not understood.
If Ver2 is greater than Ver1 and the responder understands Ver1, it
responds normally in Ver1 format. However, if the responder does not
understand Ver1, it MUST send a "Version not understood" error
message (Section 3.6.2) correctly formatted for Ver1. Thus, all
implementations that support some version X MUST be able to send a
Version not understood error message correctly formatted for all
lower versions down to version 0.
Eastlake, et al. Standards Track [Page 20]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.2. Pull Directory Query and Response Messages
The formats of Pull Directory Query Messages and Pull Directory
Response Messages are specified in Sections 3.2.1 and 3.2.2.1,
respectively.
3.2.1. Pull Directory Query Message Format
A Pull Directory Query Message is sent as the Channel
Protocol-specific content of an RBridge Channel message [RFC7178]
TRILL Data packet or as a native RBridge Channel data frame (see
Section 3.5). The Data Label of the packet is the Data Label in
which the query is being made. The priority of the RBridge Channel
message is a mapping of the priority of the ingressed frame that
caused the query. The default mapping depends, per Data Label, on
the strategy (see Section 4) or a configured priority (see
"DirGenQPriority" in Section 3.9) for generated queries. (Generated
queries are those queries that are not the result of a mapping -- for
example, a query to refresh a cache entry.) The Channel
Protocol-specific data is formatted as a header and a sequence of
zero or more QUERY Records as follows:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Type | Flags | Count | Err | SubErr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| QUERY 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| QUERY 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| QUERY K
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
Ver, Sequence Number: See Section 3.1.
Type: 1 for Query. Queries received by a TRILL switch that is not
a Pull Directory for the relevant Data Label result in an error
response (see Section 3.6) unless inhibited by rate limiting.
(See [RFC7178] for information on the Response Message that is
generated if the recipient implements the RBridge Channel
features but does not implement the Pull Directory RBridge
Channel Protocol.)
Eastlake, et al. Standards Track [Page 21]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Flags, Err, and SubErr: MUST be sent as zero and ignored on
receipt.
Count: Count is the number of QUERY Records present. A
Query Message Count of 0 is explicitly allowed, for the purpose
of pinging a Pull Directory server to see if it is responding.
On receipt of such an empty Query Message, a Response Message
that also has a Count of 0 is returned unless inhibited by rate
limiting.
QUERY: Each QUERY Record within a Pull Directory Query Message is
formatted as follows:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SIZE |FR| RESV | QTYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
If QTYPE = 1
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| AFN |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Query Address ...
+--+--+--+--+--+--+--+--+--+--+--...
If QTYPE = 2 or 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Query Frame ...
+--+--+--+--+--+--+--+--+--+--+--...
SIZE: Size of the QUERY Record in bytes, expressed as an
unsigned integer and not including the SIZE field and
following byte. A value of SIZE so large that the material
doesn't fit in the Query Message indicates a malformed
QUERY Record. A QUERY Record with such an illegal SIZE
value, and any subsequent QUERY Records, MUST be ignored,
and the entire Query Message MAY be ignored.
FR: The Flood Record flag. Ignored if QTYPE is 1. If QTYPE is
2 or 5 and the directory information sought is not found,
the frame provided is flooded; otherwise, it is not
forwarded. See Section 3.2.2.2. For QTYPEs other than 2 or
5, the FR flag has no effect.
RESV: A block of three reserved bits. MUST be sent as zero and
ignored on receipt.
Eastlake, et al. Standards Track [Page 22]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
QTYPE: There are several types of QUERY Records currently
defined in two classes, as follows: (1) a QUERY Record that
provides an explicit address and asks for all addresses for
the interface specified by the Query Address and (2) a
QUERY Record that includes a frame. The fields of each are
specified below. Values of QTYPE are as follows:
QTYPE Description
----- -------------------------------
0 Reserved
1 Address query
2 Frame query
3-4 Unassigned
5 Unknown unicast MAC Query Frame
6-14 Unassigned
15 Reserved
AFN: Address Family Number of the Query Address.
Query Address: The query is asking for any other addresses, and
the nickname of the TRILL switch from which they are
reachable, that correspond to the same interface as this
address, within the Data Label of the query of the address
provided. A typical Query Address would be something like
the following:
1. A 48-bit MAC address, with the querying TRILL switch
primarily interested in either
a. the RBridge by which that MAC address is reachable, so
that the querying RBridge can forward an unknown
(before the query) destination MAC address native
frame as a unicast TRILL Data packet rather than
flooding it, or
b. the IP address corresponding to the MAC address, so
that the RBridge can locally respond to a RARP
[RFC903] native frame.
2. An IPv4 or IPv6 address, with the querying RBridge
interested in the corresponding MAC address so it can
locally respond to an ARP [RFC826] or ND [RFC4861] native
frame [ARPND].
But the Query Address could be some other address type for
which an AFN has been assigned, such as a 64-bit MAC address
[RFC7042] or a CLNS (connectionless-mode network service)
[X.233] address.
Eastlake, et al. Standards Track [Page 23]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Query Frame: Where a QUERY Record is the result of an ARP, ND,
RARP, SEND, or unknown unicast MAC destination address, the
ingress TRILL switch MAY send the frame to a Pull Directory
server if the frame is small enough that the resulting Query
Message fits into a TRILL Data packet within the campus MTU.
The full frame is included, starting with the destination
and source MAC addresses, but does not include the Frame
Check Sequence (FCS).
If no response to a Pull Directory Query Message is received within a
configurable timeout (see "DirQueryTimeout" in Section 3.9), then the
Query Message should be retransmitted with the same Sequence Number
(up to a configurable number of times (see "DirQueryRetries" in
Section 3.9)). If there are multiple QUERY Records in a
Query Message, responses to various subsets of these QUERY Records
can be received before the timeout. In that case, the remaining
unanswered QUERY Records should be resent in a new Query Message with
a new Sequence Number. If a TRILL switch is not capable of handling
partial responses to queries with multiple QUERY Records, it MUST NOT
send a Request Message with more than one QUERY Record in it.
See Section 3.6 for a discussion of how Query Message errors are
handled.
3.2.2. Pull Directory Responses
A Pull Directory Query Message results in a Pull Directory Response
Message as described in Section 3.2.2.1.
In addition, if the QUERY Record QTYPE was 2 or 5, the frame included
in the Query may be modified and forwarded by the Pull Directory
server as described in Section 3.2.2.2.
3.2.2.1. Pull Directory Response Message Format
Pull Directory Response Messages are sent as the
Channel Protocol-specific content of an RBridge Channel message
[RFC7178] TRILL Data packet or as a native RBridge Channel data frame
(see Section 3.5). Responses are sent with the same Data Label and
priority as the Query Message to which they correspond, except that
the Response Message priority is limited to be no more than the
configured value DirRespMaxPriority (Section 3.9).
Eastlake, et al. Standards Track [Page 24]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
The RBridge Channel Protocol-specific data format is as follows:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Type | Flags | Count | Err | SubErr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RESPONSE 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| RESPONSE 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| RESPONSE K
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
Ver, Sequence Number: As specified in Section 3.1.
Type: 2 = Response.
Flags: MUST be sent as zero and ignored on receipt.
Count: Count is the number of RESPONSE Records present in the
Response Message.
Err, SubErr: A two-part error code. Zero, unless there was an
error in the Query Message (in which case, see Section 3.6).
RESPONSE: Each RESPONSE Record within a Pull Directory Response
Message is formatted as follows:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SIZE |OV| RESV | Index |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Lifetime |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Response Data ...
+--+--+--+--+--+--+--+--+--+--+--...
SIZE: The size of the RESPONSE Record is an unsigned integer
number of bytes, not including the SIZE field and following
byte. A value of SIZE so large that the material doesn't
fit in the Query Message indicates a malformed
Eastlake, et al. Standards Track [Page 25]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
RESPONSE Record. A RESPONSE Record with such an excessive
SIZE value, and any subsequent RESPONSE Records, MUST be
ignored, and the entire Response Message MAY be ignored.
OV: The overflow flag. Indicates, as described below, that
there was too much Response Data to include in one Response
Message.
RESV: Three reserved bits that MUST be sent as zero and ignored
on receipt.
Index: The relative index of the QUERY Record in the Query
Message to which this RESPONSE Record corresponds. The
Index will always be 1 for Query Messages containing a
single QUERY Record. If the Index is larger than the Count
was in the corresponding Query, that RESPONSE Record MUST be
ignored, and subsequent RESPONSE Records or the entire
Response Message MAY be ignored.
Lifetime: The length of time, in units of 100 milliseconds,
for which the response should be considered valid, except
that the values zero and 2**16 - 1 are special. If zero,
the response can only be used for the particular query from
which it resulted and MUST NOT be cached. If 2**16 - 1, the
response MAY be kept indefinitely but not after the Pull
Directory server goes down or becomes unreachable. (The
maximum definite time that can be expressed is a little over
1.8 hours.)
Response Data: There are three types of RESPONSE Records:
- If the Err field of the encapsulating Response Message has a
message-level error code in it, then the RESPONSE Records
are omitted and Count will be 0. See Section 3.6 for
additional information on errors.
- If the Err field of the encapsulating Response Message has a
record-level error code in it, then the RESPONSE Records are
those having that error, as further described in
Section 3.6.
- If the Err field of the encapsulating Response Message is 0,
then the Response Data in each RESPONSE Record is formatted
as the value part of an Interface Addresses APPsub-TLV
[RFC7961]. The maximum size of such contents is 255 bytes,
in which case the RESPONSE Record SIZE field is 255.
Eastlake, et al. Standards Track [Page 26]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Multiple RESPONSE Records can appear in a Response Message with the
same Index if an answer to the QUERY Record consists of multiple
Interface Addresses APPsub-TLV values. This would be necessary if,
for example, a MAC address within a Data Label appears to be
reachable by multiple TRILL switches. However, all RESPONSE Records
to any particular QUERY Record MUST occur in the same Response
Message. If a Pull Directory holds more mappings for a queried
address than will fit into one Response Message, it selects which
mappings to include, by some method outside the scope of this
document, and sets the overflow flag (OV) in all of the
RESPONSE Records responding to that Query Address.
See Section 3.6 for a discussion of how errors are handled.
3.2.2.2. Pull Directory Forwarding
Query Messages with QTYPEs 2 and 5 are interpreted and handled as
described below. In these cases, if the information implicitly
sought is not in the directory and the FR flag in the Query Message
was 1 (one), the provided frame is forwarded by the Pull Directory
server as a multi-destination TRILL Data packet with the ingress
nickname of the Pull Directory server (or proxy, if it is hosted on
an end station) in the TRILL Header. If the FR flag is 0, the frame
is not forwarded in this case.
If there was no error in the handling of the encapsulating
Query Message, the Pull Directory server forwards the frame inside
that QUERY Record, after modifying it in some cases, as described
below:
ARP: When QTYPE is 2 and the Ethertype in the QUERY Record indicates
that an ARP [RFC826] frame is included in the Record:
The ar$op field MUST be ares_op$REQUEST, and for the response
described in Section 3.2.2.1, this is treated as a query for the
target protocol address, where the AFN of that address is given by
ar$pro. (ARP fields and value names with embedded dollar signs
("$") are specified in [RFC826].) If (1) ar$op is not
ares_op$REQUEST, (2) the ARP is malformed, or (3) the query fails,
an error is returned. Otherwise, the ARP is modified into the
appropriate ARP response, which is then sent by the Pull Directory
server as a TRILL Data packet.
ND/SEND: When QTYPE is 2 and the Ethertype in the QUERY Record
indicates that an IPv6 ND [RFC4861] or SEND [RFC3971] frame is
included in the Record:
Only Neighbor Solicitation ND frames (corresponding to an ARP
query) are allowed. An error is returned for other ND frames or
if the target address is not found. Otherwise, if the ND is not a
Eastlake, et al. Standards Track [Page 27]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
SEND, an ND Neighbor Advertisement response is returned by the
Pull Directory server as a TRILL Data packet. In the case of
SEND, an error is returned indicating that a SEND frame was
received by the Pull Directory, and the Pull Directory then either
(1) forwards the SEND frame to the holder of the IPv6 address if
that information is in the directory or (2) multicasts the
SEND frame.
RARP: When QTYPE is 2 and the Ethertype in the QUERY Record indicates
that a RARP [RFC903] frame is included in the Record:
If the ar$op field is ares_op$REQUEST, the frame is handled as an
ARP, as described above. Otherwise, the ar$op field MUST be
"reverse request", and for the response described in
Section 3.2.2.1, this is treated as a query for the target
hardware address, where the AFN of that address is given by
ar$hrd. (See [RFC826] for RARP fields.) If (1) ar$op is not one
of these values, (2) the RARP is malformed, or (3) the query
fails, an error is returned. Otherwise, the RARP is modified into
the appropriate RARP response, which is then unicast by the Pull
Directory server as a TRILL Data packet to the source hardware MAC
address.
MacDA: When QTYPE is 5, indicating that a frame is provided in the
QUERY Record whose destination MAC address TRILL switch attachment
is unknown, the only requirement is that this MAC address has to
be unicast. The Ethertype in the QUERY Record is ignored. If
this MAC address is a group address, an error is returned. In the
case of Pull Directory Response Messages (Section 3.2.2.1), this
MAC address is treated as a query for the MacDA. In the creation
of the response described in Section 3.2.2.1, the query is treated
as a query for this MAC address. If the Pull Directory contains
TRILL switch attachment information for the MAC address in the
Data Label of the Query Message, it forwards the frame to that
switch in a unicast TRILL Data packet.
3.3. Cache Consistency
Unless it sends all responses with a Lifetime of 0, a Pull Directory
MUST take action, by sending Update Messages, to minimize the amount
of time that a TRILL switch will continue to use stale information
from that Pull Directory. The formats of Update Messages and the
Acknowledge Messages used to respond to Update Messages are given in
Sections 3.3.1 and 3.3.2, respectively.
Eastlake, et al. Standards Track [Page 28]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
A Pull Directory server MUST maintain one of three sets of records
concerning possible cached data at clients of that server. These are
numbered and listed below in order of increasing specificity:
Method 1, Least Specific. An overall record, per Data Label, of when
the last positive Response Data sent will expire and when the last
negative response sent will expire; the records are retained until
such expiration.
Pro: Minimizes the record-keeping burden on the Pull Directory
server.
Con: Increases the volume of and overhead due to (1) spontaneous
Update Messages and (2) unnecessarily invalidating cached
information.
Method 2, Medium Specificity. For each unit of data (Interface
Addresses APPsub-TLV (IA APPsub-TLV) Address Set [RFC7961]) held
by the server, record when the last response sent with that
positive Response Data will expire. In addition, record each
address about which a negative response was sent by the server and
when the last such negative response will expire. Each such
record of a positive or negative response is discarded upon
expiration.
Pros/Cons: An intermediate level of detail in server
record-keeping; also, an intermediate volume of, and overhead
due to, spontaneous Update Messages with some unnecessary
invalidation of cached information.
Method 3, Most Specific. For each unit of data held by the server
(IA APPsub-TLV Address Set [RFC7961]) and each address about which
a negative response was sent, a list of TRILL switches that were
sent that data as a positive response or sent a negative response
for the address, and the expected time to expiration for that data
or address at each such TRILL switch, assuming that the requester
cached the response. Each list entry is retained until such
expiration time.
Pros: Minimizes spontaneous Update Messages sent to update pull
client TRILL switch caches, and minimizes unnecessary
invalidation of cached information.
Con: Increased record-keeping burden on the Pull Directory server.
Eastlake, et al. Standards Track [Page 29]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
RESPONSE Records sent with a zero Lifetime are considered to have
already expired and so do not need to be tracked. In all cases,
there may still be brief periods of time when directory information
has changed, but information that a pull client has cached has not
yet been updated or expunged.
A Pull Directory server might have a limit as to (1) how many TRILL
switches for which it can maintain detailed expiry information using
method 3 or (2) how many data units or addresses for which it can
maintain expiry information using method 2 or the like. If such
limits are exceeded, it MUST transition to a lower-numbered method
but, in all cases, MUST support, at a minimum, method 1 and SHOULD
support methods 2 and 3. The use of method 1 may be quite
inefficient, due to large amounts of cached positive and negative
information being unnecessarily discarded.
When data at a Pull Directory is changed, deleted, or added and there
may be unexpired stale information at a requesting TRILL switch, the
Pull Directory MUST send an Update Message as discussed below. The
sending of such an Update Message MAY be delayed by a configurable
number of milliseconds (see "DirUpdateDelay" in Section 3.9) to await
other possible changes that could be included in the same
Update Message.
1. If method 1, the least detailed method, is being followed, then
when any Pull Directory information in a Data Label is changed or
deleted and there are outstanding cached positive data
response(s), an all-addresses flush positive data Update Message
is flooded within that Data Label as an RBridge Channel message.
If data is added and there are outstanding cached negative
responses, an all-addresses flush negative message is similarly
flooded. A Count field value of 0 in an Update Message indicates
"all-addresses". On receiving an all-addresses flooded flush
positive Update from a Pull Directory server it has used,
indicated by the F (Flood) and P (Positive) bits being 1 and the
Count being 0, a TRILL switch discards the cached data responses
it has for that Data Label. Similarly, on receiving an
all-addresses flush negative Update, indicated by the F and
N (Negative) bits being 1 and the Count being 0, it discards all
cached negative replies for that Data Label. A combined flush
positive and negative can be flooded by having all of the F, P,
and N bits (see Section 3.3.1) set to 1 and the Count field 0,
resulting in the discard of all positive and negative cached
information for the Data Label.
2. If method 2 is being followed, then a TRILL switch floods
address-specific positive Update Messages when data that might be
cached by a querying TRILL switch is changed or deleted and floods
Eastlake, et al. Standards Track [Page 30]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
address-specific negative Update Messages when data that might be
cached by a querying TRILL switch is added. Such messages are
sent as RBridge Channel messages. The F bit will be 1; however,
the Count field will be non-zero, and either the P bit or the
N bit, but not both, will be 1. There are actually four possible
message types that can be flooded:
a. If data that might still be cached is updated:
An unsolicited Update Message is sent with the P flag set and
the Err field 0. On receipt, the addresses in the RESPONSE
Records are compared to the addresses for which the receiving
TRILL switch is holding cached positive information from that
server. If they match, the cached information is updated.
b. If data that might still be cached is deleted:
An unsolicited Update Message is sent with the P flag set and
the Err field non-zero, giving the error that would now be
encountered in attempting to pull information for the relevant
address from the Pull Directory server. In this non-zero Err
field case, the RESPONSE Record(s) differs from non-zero Err
Reply Message RESPONSE Records in that they do include an
interface address set. Any cached positive information for the
addresses given is deleted, and the negative response is cached
as per the Lifetime given.
c. If data for an address for which a negative response was sent
is added, so that negative response that might still be cached
is now incorrect:
An unsolicited Update Message is sent with the N flag set to 1
and the Err field 0. The addresses in the RESPONSE Records are
compared to the addresses for which the receiving TRILL switch
is holding cached negative information from that server; if
they match, the cached negative information is deleted, and the
positive information provided is cached as per the Lifetime
given.
d. In the rare case where it is desired to change the Lifetime or
error associated with negative information that might still be
cached:
An unsolicited Update Message is sent with the N flag set to 1
and the Err field non-zero. As in case b above, the RESPONSE
Record(s) gives the relevant addresses. Any cached negative
information for the addresses is updated.
3. If method 3 is being followed, unsolicited Update Messages of the
same sort are sent as with method 2 above, except that they are
not normally flooded but unicast only to the specific TRILL
switches the directory server believes may be holding the cached
Eastlake, et al. Standards Track [Page 31]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
positive or negative information that needs deletion or updating.
However, a Pull Directory server MAY flood unsolicited updates
using method 3 -- for example, if it determines that a
sufficiently large fraction of the TRILL switches in some Data
Label are requesters that need to be updated so that flooding is
more efficient than unicast.
A Pull Directory server tracking cached information with method 3
MUST NOT clear the indication that it needs to update cached
information at a querying TRILL switch until it has either (a) sent
an Update Message and received a corresponding Acknowledge Message or
(b) sent a configurable number of updates at a configurable interval
where these parameters default to three updates 100 milliseconds
apart (see Section 3.9).
A Pull Directory server tracking cached information with method 1 or
method 2 SHOULD NOT clear the indication that it needs to update
cached information until it has sent an Update Message and received a
corresponding Acknowledge Message from all of its ESADI neighbors or
it has sent a number of updates at a configurable interval, as
specified in the paragraph above.
3.3.1. Update Message Format
An Update Message is formatted as a Response Message, with the
differences described in Section 3.3 above and the following:
o The Type field in the message header is set to 3.
o The Index field in the RESPONSE Record(s) is set to 0 on
transmission and ignored on receipt (but the Count field in the
Update Message header MUST still correctly indicate the number of
RESPONSE Records present).
o The priority with which the message is sent, DirUpdatePriority, is
configurable and defaults to 5 (see Section 3.9).
Update Messages are initiated by a Pull Directory server. The
Sequence Number space used is controlled by the originating Pull
Directory server. This Sequence Number space for Update Messages is
different from the Sequence Number space used in a Query and the
corresponding Response that are controlled by the querying
TRILL switch.
Eastlake, et al. Standards Track [Page 32]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
The 4-bit Flags field of the message header for an Update Message is
as follows:
+---+---+---+---+
| F | P | N | R |
+---+---+---+---+
F: The Flood bit. If F = 0, the Update Message is unicast. If
F = 1, it is multicast to All-Egress-RBridges.
P, N: Flags used to indicate positive or negative Update Messages.
P = 1 indicates "positive". N = 1 indicates "negative". Both
may be 1 for a flooded all-addresses Update.
R: Reserved. MUST be sent as zero and ignored on receipt.
For tracking methods 2 and 3 in Section 3.3, a particular Update
Message MUST have either the P flag or the N flag set, but not both.
If both are set, the Update Message MUST be ignored, as this
combination is only valid for method 1.
3.3.2. Acknowledge Message Format
An Acknowledge Message is sent in response to an Update Message to
confirm receipt or indicate an error, unless response is inhibited by
rate limiting. It is formatted as a Response Message, but the Type
is set to 4.
If there are no errors in the processing of an Update Message or if
there is an overall message-level error or a header error in an
Update Message, the message is echoed back with the Err and
SubErr fields set appropriately, the Type changed to Acknowledge, and
a null Records section with the Count field set to 0.
If there is a record-level error in an Update Message, one or more
Acknowledge Messages may be returned with the erroneous record(s)
indicated as discussed in Section 3.6.
An Acknowledge Message is sent with the same priority as the Update
Message it acknowledges but not more than a configured priority
called "DirAckMaxPriority", which defaults to 5 (see Section 3.9).
Eastlake, et al. Standards Track [Page 33]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.4. Summary of Record Formats in Messages
As specified in Sections 3.2 and 3.3, the Query, Response, Update,
and Acknowledge Messages can have zero or more repeating Record
structures under different circumstances, as summarized below. The
"Err" column abbreviations in this table have the meanings listed
below. "IA APPsub-TLV value" means the value part of the
IA APPsub-TLV specified in [RFC7961].
MBZ = MUST be zero
Z = zero
NZ = non-zero
NZM = non-zero message-level error
NZR = non-zero record-level error
Message Err Section Record Structure Response Data
----------- --- ------- ---------------- -------------------
Query MBZ 3.2.1 QUERY Record -
Response Z 3.2.2.1 RESPONSE Record IA APPsub-TLV value
Response NZM 3.2.2.1 null -
Response NZR 3.2.2.1 RESPONSE Record Records with error
Update MBZ 3.3.1 RESPONSE Record IA APPsub-TLV value
Acknowledge Z 3.3.2 null -
Acknowledge NZM 3.3.2 null -
Acknowledge NZR 3.3.2 RESPONSE Record Records with error
See Section 3.6 for further details on errors.
3.5. End Stations and Pull Directories
A Pull Directory can be hosted on an end station as specified in
Section 3.5.1.
An end station can use a Pull Directory as specified in
Section 3.5.2. This capability would be useful in supporting an end
station that performs directory-assisted encapsulation [DirAsstEncap]
or that is a "Smart Endnode" [SmartEN].
The native Pull Directory messages used in these cases are as
specified in Section 3.5.3. In these cases, the edge RBridge(s) and
end station(s) involved need to detect each other and exchange some
control information. This is accomplished with the TRILL End System
to Intermediate System (ES-IS) mechanism specified in Section 5.
Eastlake, et al. Standards Track [Page 34]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.5.1. Pull Directory Hosted on an End Station
Optionally, a Pull Directory actually hosted on an end station MAY be
supported. In that case, one or more TRILL switches must act as
indirect Pull Directory servers. That is, they host a Pull Directory
server, which is seen by other TRILL switches in the campus, and a
Pull Directory client, which fetches directory information from one
or more end-station Pull Directory servers, where at least some of
the information provided by the Pull Directory server may be
information fetched from an end station to which it is directly
connected by the co-located Pull Directory client. ("Direct
connection" means a connection not involving any intermediate TRILL
switches.)
End stations hosting a Pull Directory server MUST support TRILL ES-IS
(see Section 5) and advertise the Data Labels for which they are
providing service in one or more Interested VLANs sub-TLVs or
Interested Labels sub-TLVs by setting the PUL flag (see Section 7.3).
* * * * * * *
+---------------+ * *
| End Station 1 | +---------------+ *
| Pull Directory+--------------+ RB1, Pull | *
| Server | | Directory| *
+---------------+ +-------+ Client|Server | +----+
| +---------------+ |RB99|
+---------------+ | * +----+
| End Station 2 | +--+---+ +---------------+ *
| Pull Directory+---+Bridge+---+ RB2, Pull | *
| Server | +--+---+ | Directory| *
+---------------+ | | Client|Server | *
| +---------------+ *
| * TRILL *
. * Campus *
. * *
. * * * * * * *
Figure 2: End-Station Pull Directory Example
Figure 2 gives an example where RB1 and RB2 advertise themselves to
the rest of the TRILL campus, such as RB99, as Pull Directory servers
and obtain at least some of the information they are providing by
issuing Pull Directory queries to End Stations 1 and/or 2. This
example is specific, but many variations are possible. The box
labeled "Bridge" in Figure 2 could be replaced by a complex bridged
LAN or could be a bridgeless LAN through the use of a hub or
repeater. Or, end stations might be connected via point-to-point
links (as shown for End Station 1), including multi-ported
Eastlake, et al. Standards Track [Page 35]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
end stations connected by point-to-point links to multiple RBridges.
Although Figure 2 shows two end stations and two RBridges, there
could be one or more than two RBridges having such indirect Pull
Directory servers. Furthermore, there could be one or more than two
end stations with Pull Directory servers on them. Each TRILL switch
acting as an indirect Pull Directory server could then be differently
configured as to the Data Labels for which it is providing indirect
service selected from the union of the Data Labels supported by the
end-station hosted servers and could select from among those
end-station hosted servers supporting each Data Label the indirect
server is configured to provide.
When an indirect Pull Directory server receives Query Messages from
other TRILL switches, it answers from information it has cached or
issues Pull Directory requests to end-station Pull Directory servers
with which it has TRILL ES-IS adjacency to obtain the information.
Any Response sent by an indirect Pull Directory server MUST NOT have
a validity time longer than the validity period of the data on which
it is based. When an indirect Pull Directory server receives Update
Messages, it updates its cached information and MUST originate Update
Messages to any clients that may have mirrors of the cached
information so updated.
Since an indirect Pull Directory server discards information it has
cached from queries to an end-station Pull Directory server if it
loses adjacency to the server (Section 3.7), if it detects that such
information may be cached at RBridge clients and has no other source
for the information, it MUST send Update Messages to those clients
withdrawing the information. For this reason, indirect Pull
Directory servers may wish to query multiple sources, if available,
and cache multiple copies of returned information from those multiple
sources. Then, if one end-station source becomes inaccessible or
withdraws the information but the indirect Pull Directory server has
the information from another source, it need not originate Update
Messages.
3.5.2. Use of Pull Directory by End Stations
Some special end stations, such as those discussed in [DirAsstEncap]
and [SmartEN], may need to access directory information. How edge
RBridges provide this optional service is specified below.
When Pull Directory support is provided by an edge RBridge to end
stations, the messages used are as specified in Section 3.5.3 below.
The edge RBridge MUST support TRILL ES-IS (Section 5) and advertises
the Data Labels for which it offers this service to end stations by
Eastlake, et al. Standards Track [Page 36]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
setting the Pull Directory flag (PUL) to 1 in its Interested VLANs
sub-TLV or Interested Labels sub-TLV (see Section 7.3) for that Data
Label advertised through TRILL ES-IS.
3.5.3. Native Pull Directory Messages
The Pull Directory messages used between TRILL switches and end
stations are native RBridge Channel messages [RFC7178]. These
RBridge Channel messages use the same Channel Protocol number as the
inter-RBridge Pull Directory RBridge Channel messages. The
Outer.VLAN ID used is the TRILL ES-IS Designated VLAN (see Section 5)
on the link to the end station. Since there is no TRILL Header or
inner Data Label for native RBridge Channel messages, that
information is added to the Pull Directory message header as
specified below.
The protocol-dependent data part of the native RBridge Channel
message is the same as for inter-RBridge Channel messages, except
that the 8-byte header described in Section 3.1 is expanded to 12 or
16 bytes, as follows:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Type | Flags | Count | Err | SubErr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Label ... (4 or 8 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+
| Type Specific Payload - variable length
+-+-+- ...
Fields other than the Data Label field are as defined in Section 3.1.
The Data Label that normally appears right after the Inner.MacSA of
the RBridge Channel Pull Directory message appears in the Data Label
field of the Pull Directory message header in the native RBridge
Channel message version. This Data Label appears in a native Query
Message, to be reflected in a Response Message, or it might appear in
a native Update to be reflected in an Acknowledge Message. Since the
appropriate VLAN or FGL [RFC7172] Ethertype is included, the length
of the Data Label can be determined from the first 2 bytes.
Eastlake, et al. Standards Track [Page 37]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.6. Pull Directory Message Errors
A non-zero Err field in the Pull Directory Response or Acknowledge
Message header indicates an error message.
If there is an error that applies to an entire Query or Update
Message or its header, as indicated by the range of the value of the
Err field, then the QUERY Records probably were not even looked at by
the Pull Directory server and would provide no additional information
in the Response or Acknowledge Message. Therefore, the Records
section of the response to a Query Message or Update Message is
omitted, and the Count field is set to 0 in the Response or
Acknowledge Message.
If errors occur at the QUERY Record level for a Query Message, they
MUST be reported in a Response Message separate from the results of
any successful non-erroneous QUERY Records. If multiple
QUERY Records in a Query Message have different errors, they MUST be
reported in separate Response Messages. If multiple QUERY Records in
a Query Message have the same error, this error response MAY be
reported in one or multiple Response Messages. In an error Response
Message, the QUERY Record or Records being responded to appear,
expanded by the Lifetime for which the server thinks the error might
persist (usually 2**16 - 1, which indicates "indefinitely") and with
their Index inserted, as the RESPONSE Record or Records.
If errors occur at the RESPONSE Record level for an Update Message,
they MUST be reported in an Acknowledge Message separate from the
acknowledgment of any non-erroneous RESPONSE Records. If multiple
RESPONSE Records in an Update have different errors, they MUST be
reported in separate Acknowledge Messages. If multiple
RESPONSE Records in an Update Message have the same error, this error
response MAY be reported in one or multiple Acknowledge Messages. In
an error Acknowledge Message, the RESPONSE Record or Records being
responded to appear, expanded by the time for which the server thinks
the error might persist and with their Index inserted, as a
RESPONSE Record or Records.
Err values 1 through 126 are available for encoding errors at the
Request Message or Update Message level. Err values 128 through 254
are available for encoding errors at the QUERY Record or
RESPONSE Record level. The SubErr field is available for providing
more detail on errors. The meaning of a SubErr field value
depends on the value of the Err field.
Eastlake, et al. Standards Track [Page 38]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.6.1. Error Codes
The following table lists error code values for the Err field, their
meanings, and whether they apply at the message level or the
record level.
Err Level Meaning
------- ------- -----------------------------------------------
0 - No Error
1 Message Unknown or reserved Query Message field value
2 Message Request Message/data too short
3 Message Unknown or reserved Update Message field value
4 Message Update Message/data too short
5-126 Message Unassigned
127 - Reserved
128 Record Unknown or reserved QUERY Record field value
129 Record QUERY Record truncated
130 Record Address not found
131 Record Unknown or reserved RESPONSE Record field value
132 Record RESPONSE Record truncated
133-254 Record Unassigned
255 - Reserved
Note that some error codes are for overall message-level errors,
while some are for errors in the repeating records that occur in
messages.
3.6.2. Sub-errors under Error Codes 1 and 3
The following sub-errors are specified under error codes 1 and 3:
SubErr Field with Error
------ -------------------------------------------
0 Unspecified
1 Version not understood (see Section 3.1.1)
2 Unknown Type field value
3 Specified Data Label not being served
4-254 Unassigned
255 Reserved
Eastlake, et al. Standards Track [Page 39]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.6.3. Sub-errors under Error Codes 128 and 131
The following sub-errors are specified under error codes 128 and 131:
SubErr Field with Error
------ ----------------------------------------------------
0 Unspecified
1 Unknown AFN field value
2 Unknown or Reserved QTYPE field value
3 Invalid or inconsistent SIZE field value
4 Invalid frame for QTYPE 2 (other than SEND)
5 SEND frame sent as QTYPE 2
6 Invalid frame for QTYPE 5 (such as multicast MacDA)
7-254 Unassigned
255 Reserved
3.7. Additional Pull Details
A Pull Directory client MUST be able to detect, by tracking
link-state changes, when a Pull Directory server is no longer
accessible (data reachable [RFC7780] for the inter-RBridge case or
TRILL ES-IS (Section 5) adjacent for the end-station-to-RBridge case)
and MUST promptly discard all pull responses it is retaining from
that server, as it can no longer receive cache consistency Update
Messages from the server.
A secondary Pull Directory server is one that obtains its data from a
primary directory server. See the discussion in Section 2.6
regarding the transfer of directory information from the
primary server to the secondary server.
3.8. The "No Data" Flag
In the TRILL base protocol [RFC6325] as extended for FGL [RFC7172],
the mere presence of any Interested VLANs sub-TLVs or Interested
Labels sub-TLVs in the LSP of a TRILL switch indicates connection to
end stations in the VLAN(s) or FGL(s) listed and thus a need to
receive multi-destination traffic in those Data Labels. However,
with Pull Directories, advertising that you are a directory server
requires using these sub-TLVs to indicate the Data Label(s) you are
serving.
If a directory server does not wish to receive multi-destination
TRILL Data packets for the Data Labels it lists in one of the
Interested VLANs or Interested Labels (FGLs) sub-TLVs (see
Section 1.2), it sets the No Data (NOD) bit to 1 (see Section 7.3).
This means that data on a distribution tree may be pruned so as not
to reach the "No Data" TRILL switch as long as there are no TRILL
Eastlake, et al. Standards Track [Page 40]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
switches interested in the Data Label that are beyond the No Data
TRILL switch on that distribution tree. The NOD bit is backward
compatible, as TRILL switches ignorant of it will simply not prune
when they could; this is safe, although it may cause increased link
utilization by some TRILL switches sending multi-destination traffic
where it is not needed.
Push Directories advertise themselves inside ESADI, which normally
requires the ability to send and receive multi-destination TRILL Data
packets but can be implemented with serial unicast.
An example of a TRILL switch serving as a directory that might not
want multi-destination traffic in some Data Labels would be a TRILL
switch that does not offer end-station service for any of the Data
Labels for which it is serving as a directory and is
- a Pull Directory and/or
- a Push Directory for one or more Data Labels, where all of the
ESADI traffic for those Data Labels will be handled by unicast
ESADI [RFC7357].
A Push Directory MUST NOT set the NOD bit for a Data Label if it
needs to communicate via multi-destination ESADI or RBridge Channel
PDUs in that Data Label, since such PDUs look like TRILL Data packets
to transit TRILL switches and are likely to be incorrectly pruned if
the NOD bit was set.
Eastlake, et al. Standards Track [Page 41]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
3.9. Pull Directory Service Configuration
The following per-RBridge scalar configuration parameters are
available for controlling Pull Directory service behavior. In
addition, there is a configurable mapping, per Data Label, from the
priority of a native frame being ingressed to the priority of any
Pull Directory query it causes. The default mapping depends on the
client strategy, as described in Section 4.
Name Default Section Note Below
------------------ ---------------- ------- ----------
DirQueryTimeout 100 milliseconds 3.2.1 1
DirQueryRetries 3 3.2.1 1
DirGenQPriority 5 3.2.1 2
DirRespMaxPriority 6 3.2.2.1 3
DirUpdateDelay 50 milliseconds 3.3
DirUpdatePriority 5 3.3.1
DirUpdateTimeout 100 milliseconds 3.3.3
DirUpdateRetries 3 3.3.3
DirAckMaxPriority 5 3.3.2 4
Note 1: Pull Directory Query client timeout waiting for response
and maximum number of retries.
Note 2: Priority for client-generated requests (such as a query to
refresh cached information).
Note 3: Pull Directory Response Messages SHOULD NOT be sent with
priority 7, as that priority SHOULD be reserved for messages
critical to network connectivity.
Note 4: Pull Directory Acknowledge Messages SHOULD NOT be sent
with priority 7, as that priority SHOULD be reserved for
messages critical to network connectivity.
4. Directory Use Strategies and Push-Pull Hybrids
For some edge nodes that have a great number of Data Labels enabled,
managing the MAC and Data Label <-> Edge RBridge mapping for hosts
under all those Data Labels can be a challenge. This is especially
true for data-center gateway nodes, which need to communicate with
many, if not all, Data Labels.
Eastlake, et al. Standards Track [Page 42]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
For those edge TRILL switch nodes, a hybrid model should be
considered. That is, the Push Model is used for some Data Labels or
addresses within a Data Label, while the Pull Model is used for other
Data Labels or addresses within a Data Label. The network operator
decides, via configuration, which Data Labels' mapping entries are
pushed down from directories and which Data Labels' mapping entries
are pulled.
For example, assume a data center where hosts in specific Data
Labels, say VLANs 1 through 100, communicate regularly with external
peers. The mapping entries for those 100 VLANs should probably be
pushed down to the data-center gateway routers. For hosts in other
Data Labels that only communicate with external peers occasionally
for management interfacing, the mapping entries for those VLANs
should be pulled down from the directory when needed.
Similarly, within a Data Label, it could be that some addresses, such
as the addresses of gateways, files, DNS, or database server hosts
are commonly referenced by most other hosts but those other hosts,
perhaps compute engines, are typically only referenced by a few hosts
in that Data Label. In that case, the address information for the
commonly referenced hosts could be pushed as an incomplete directory,
while the addresses of the others are pulled when needed.
The mechanisms described in this document for Push and Pull Directory
services make it easy to use Push for some Data Labels or addresses
and Pull for others. In fact, different TRILL switches can even be
configured so that some use Push Directory services and some use Pull
Directory services for the same Data Label if both Push and Pull
Directory services are available for that Data Label. Also, there
can be Data Labels for which directory services are not used at all.
There are a wide variety of strategies that a TRILL switch can adopt
for making use of directory assistance. A few suggestions are given
below.
- Even if a TRILL switch will normally be operating with information
from a complete Push Directory server, there will be a period of
time when it first comes up before the information it holds is
complete. Or, it could be that the only Push Directories that can
push information to it are incomplete or that they are just
starting and may not yet have pushed the entire directory. Thus,
it is RECOMMENDED that all TRILL switches have a strategy for
dealing with the situation where they do not have complete
directory information. Examples are to send a Pull Directory
query or to revert to the behavior described in [RFC6325].
Eastlake, et al. Standards Track [Page 43]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
- If a TRILL switch receives a native frame X resulting in seeking
directory information, a choice needs to be made as to what to do
if it does not already have the directory information it needs.
In particular, it could (1) immediately flood the TRILL Data
packet resulting from ingressing X in parallel with seeking the
directory information, (2) flood that TRILL Data packet after a
delay, if it fails to obtain the directory information, or
(3) discard X if it fails to obtain the information. The choice
might depend on the priority of frame X, since the higher that
priority the more urgent the frame typically is, and the greater
the probability of harm in delaying it. If a Pull Directory
request is sent, it is RECOMMENDED that its priority be derived
from the priority of frame X according to the table below;
however, it SHOULD be possible, on a per-TRILL-switch basis, to
configure the second two columns of this table.
Ingressed If Flooded If Flooded
Priority Immediately After Delay
-------- ----------- -----------
7 5 6
6 5 6
5 4 5
4 3 4
3 2 3
2 0 2
0 1 0
1 1 1
Note: The odd-looking ordering of numbers towards the bottom of
the columns above is because priority 1 is lower than priority
zero. That is to say, the values in the first column are in
priority order. They will look more logical if you think of "0"
as being "1.5".
Priority 7 is normally only used for urgent messages critical to
adjacency and so SHOULD NOT be the default for directory traffic.
Unsolicited updates are sent with a priority that is configured per
Data Label and that defaults to priority 5.
5. TRILL ES-IS
TRILL ES-IS (End System to Intermediate System) is a variation of
TRILL IS-IS [RFC7176] [RFC7177] [RFC7780] designed to operate on a
TRILL link among and between one or more TRILL switches and end
stations on that link. TRILL ES-IS is analogous to the ISO/IEC ES-IS
standard [ISO9542] but is implemented in a significantly different
way as a variation of TRILL IS-IS, as specified in this section.
Support of TRILL ES-IS is generally optional for both the TRILL
Eastlake, et al. Standards Track [Page 44]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
switches and the end stations on a link but may be required to
support certain features. At the time of this writing, the only
features requiring TRILL ES-IS are those listed in this section.
TRILL ES-IS
o is useful for supporting Pull Directory hosting on, or use from,
end stations (see Section 3.5),
o is useful for supporting specialized end stations [DirAsstEncap]
[SmartEN], and
o may have additional future uses.
The advantages of TRILL ES-IS over simply making an "end station" be
a TRILL switch include relieving the end station of having to
maintain a copy of the core link-state database (LSPs) and of having
to perform routing calculations or having the ability to forward
traffic.
Except as provided below in this section, TRILL ES-IS PDUs and TLVs
are the same as TRILL IS-IS PDUs and TLVs.
5.1. PDUs and System IDs
All TRILL ES-IS PDUs (except some MTU-probe and MTU-ack PDUs, which
may be unicast) are multicast using the TRILL-ES-IS multicast MAC
address (see Section 7.6). This use of a different multicast address
assures that TRILL ES-IS and TRILL IS-IS PDUs will not be confused
for one another.
Because end stations do not have IS-IS System IDs, TRILL ES-IS uses
port MAC addresses in their place. This is convenient, since MAC
addresses are 48-bit and almost all IS-IS implementations use 48-bit
System IDs. Logically, TRILL IS-IS operates between the TRILL
switches in a TRILL campus as identified by the System ID, while
TRILL ES-IS operates between Ethernet ports on an Ethernet link
(which may be a bridged LAN) as identified by the MAC address
[RFC6325].
As System IDs of TRILL switches in a campus are required to be
unique, so the MAC addresses of TRILL ES-IS ports on a link MUST be
unique.
Eastlake, et al. Standards Track [Page 45]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
5.2. Adjacency, DRB Election, Port IDs, Hellos, and TLVs
TRILL ES-IS adjacency formation and Designated RBridge (DRB) election
operate between the ports on the link as specified in [RFC7177] for a
broadcast link. The DRB specifies an ES-IS Designated VLAN for the
link. Adjacency determination, DRB election, and Designated VLANs as
described in this section are distinct from TRILL IS-IS adjacency,
DRB election, and Designated VLANs.
Although the "Report state" [RFC7177] exists for TRILL ES-IS
adjacencies, such adjacencies are only reported in TRILL ES-IS LSPs,
not in any TRILL IS-IS LSPs.
End stations supporting TRILL ES-IS MUST assign a unique Port ID to
each of their TRILL ES-IS ports; the Port ID appears in the TRILL
ES-IS Hellos they send.
TRILL ES-IS has nothing to do with Appointed Forwarders. The
Appointed Forwarders sub-TLV and the VLANs Appointed sub-TLV
[RFC7176] are not used and SHOULD NOT be sent in TRILL ES-IS; if such
a sub-TLV is received in TRILL ES-IS, it is ignored. (The Appointed
Forwarders on a link are determined as specified in [RFC8139], using
TRILL IS-IS.)
Although some of the ports sending TRILL ES-IS PDUs are on end
stations and thus not on routers (TRILL switches), they nevertheless
may make use of the Router CAPABILITY (#242) [RFC7981] and
MT-Capability (#144) [RFC6329] IS-IS TLVs to indicate capabilities as
specified in [RFC7176].
TRILL ES-IS Hellos are like TRILL IS-IS Hellos, but note the
following: in the Special VLANs and Flags sub-TLV [RFC7176], any
TRILL switches advertise a nickname they own, but for end stations,
that field MUST be sent as zero and ignored on receipt. In addition,
in the Special VLANs and Flags sub-TLV (Section 2.2.1 of [RFC7176])
in a TRILL ES-IS Hello, the AF and TR flag bits MUST be sent as zero,
the AC flag bit MUST be sent as one (1), and all three are ignored
on receipt.
Eastlake, et al. Standards Track [Page 46]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
5.3. Link State
The only link-state transmission and synchronization that occur in
TRILL ES-IS are for E-L1CS (Extended Level 1 Circuit Scope) PDUs
[RFC7356]. In particular, the end-station Ethernet ports supporting
TRILL ES-IS do not support the core TRILL IS-IS LSPs and do not
support E-L1FS (Extended Level 1 Flooding Scope) LSPs [RFC7780] (or
the CSNPs or PSNPs (Partial Sequence Number PDUs) [RFC7356]
corresponding to either of them). TLVs and sub-TLVs that would
otherwise be sent in TRILL IS-IS LSPs or E-L1FS LSPs are instead sent
in E-L1CS LSPs.
6. Security Considerations
For general TRILL security considerations, see [RFC6325].
6.1. Directory Information Security
Incorrect directory information can result in a variety of security
threats, including those listed below. Directory servers therefore
need to take care to implement and enforce access control policies
that are not overly permissive.
o Incorrect directory mappings can result in data being delivered to
the wrong end stations, or set of end stations in the case of
multi-destination packets, violating security policy.
o Missing, incorrect, or inaccessible directory data can result in
denial of service due to sending data packets to black holes or
discarding data on ingress due to incorrect information that their
destinations are not reachable or that their source addresses are
forged.
For these reasons, whatever server or end station the directory
information resides on, it needs to be protected from unauthorized
modification. Parties authorized to modify directory data can
violate availability and integrity policies.
6.2. Directory Confidentiality and Privacy
In implementations of the base TRILL protocol [RFC6325] [RFC7780],
RBridges deal almost exclusively with MAC addresses. The use of
directories to map to/from IP addresses means that RBridges deal more
actively with IP addresses as well. But RBridges in any case would
be exposed to plain-text ARP/ND/SEND/IP traffic and so can see all
this addressing metadata. So, this more-explicit dealing with IP
addresses has little effect on the privacy of end-station traffic.
Eastlake, et al. Standards Track [Page 47]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Parties authorized to read directory data can violate privacy
policies for such data.
6.3. Directory Message Security Considerations
Push Directory data is distributed through ESADI-LSPs [RFC7357].
ESADI is built on IS-IS, and such data can thus be authenticated with
the widely implemented and deployed IS-IS PDU security. This
mechanism provides authentication and integrity protection. See
[RFC5304], [RFC5310], and the Security Considerations section of
[RFC7357].
Pull Directory queries and responses are transmitted as
RBridge-to-RBridge or native RBridge Channel messages [RFC7178].
Such messages can be secured by the mechanisms specified in
[RFC7978]. These mechanisms can provide authentication and
confidentiality protection. At the time of this writing, these
security mechanisms are believed to be less widely implemented than
IS-IS security.
7. IANA Considerations
7.1. ESADI-Parameter Data Extensions
IANA has created a subregistry in the "TRILL Parameters" registry
as follows:
Subregistry: ESADI-Parameter APPsub-TLV Flag Bits
Registration Procedure(s): Standards Action
References: [RFC7357] [RFC8171]
Bit Mnemonic Description Reference
--- -------- ---------------------------- ---------------
0 UN Supports Unicast ESADI ESADI [RFC7357]
1-2 PDSS Push Directory Server Status [RFC8171]
3-7 - Unassigned
In addition, the ESADI-Parameter APPsub-TLV is optionally extended,
as provided in its original specification in ESADI [RFC7357], by
1 byte as shown below. Therefore, [RFC8171] has also been added as a
second reference to the ESADI-Parameter APPsub-TLV in the "TRILL
APPsub-TLV Types under IS-IS TLV 251 Application Identifier 1"
registry.
Eastlake, et al. Standards Track [Page 48]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
+-+-+-+-+-+-+-+-+
| Type | (1 byte)
+-+-+-+-+-+-+-+-+
| Length | (1 byte)
+-+-+-+-+-+-+-+-+
|R| Priority | (1 byte)
+-+-+-+-+-+-+-+-+
| CSNP Time | (1 byte)
+-+-+-+-+-+-+-+-+
| Flags | (1 byte)
+---------------+
|PushDirPriority| (optional, 1 byte)
+---------------+
| Reserved for (variable)
| expansion
+-+-+-+-...
The meanings of all the fields are as specified in ESADI [RFC7357],
except that the added PushDirPriority is the priority of the
advertising ESADI instance to be a Push Directory as described in
Section 2.3. If the PushDirPriority field is not present
(Length = 3), it is treated as if it were 0x3F. 0x3F is also the
value used and placed here by a TRILL switch whose priority to be a
Push Directory has not been configured.
7.2. RBridge Channel Protocol Numbers
IANA has assigned a new RBridge Channel Protocol number (0x005) from
the range assignable by Standards Action [RFC5226] and updated the
subregistry accordingly in the "TRILL Parameters" registry. The
description is "Pull Directory Services". The reference is
[RFC8171].
7.3. The Pull Directory (PUL) and No Data (NOD) Bits
IANA has assigned a previously reserved bit in the Interested VLANs
field of the Interested VLANs sub-TLV and the Interested Labels field
of the Interested Labels sub-TLV [RFC7176] to indicate a Pull
Directory server (PUL). This bit has been added, with this document
as a reference, to the "Interested VLANs Flag Bits" and "Interested
Labels Flag Bits" subregistries created by [RFC7357], as shown below.
Eastlake, et al. Standards Track [Page 49]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
IANA has assigned a previously reserved bit in the Interested VLANs
field of the Interested VLANs sub-TLV and the Interested Labels field
of the Interested Labels sub-TLV [RFC7176] to indicate No Data (NOD)
(see Section 3.8). This bit has been added, with this document as a
reference, to the "Interested VLANs Flag Bits" and "Interested Labels
Flag Bits" subregistries created by [RFC7357], as shown below.
The bits are as follows:
Registry: Interested VLANs Flag Bits
Bit Mnemonic Description Reference
--- -------- -------------- ---------------
18 PUL Pull Directory [RFC8171]
19 NOD No Data [RFC8171]
Registry: Interested Labels Flag Bits
Bit Mnemonic Description Reference
--- -------- -------------- ---------------
6 PUL Pull Directory [RFC8171]
7 NOD No Data [RFC8171]
7.4. TRILL Pull Directory QTYPEs
IANA has created a new registry as follows:
Name: TRILL Pull Directory Query Types (QTYPEs)
Registration Procedure(s): IETF Review
Reference: [RFC8171]
Initial contents as in Section 3.2.1.
7.5. Pull Directory Error Code Registries
IANA has created a new registry and two new indented subregistries
as follows:
Registry
Name: TRILL Pull Directory Errors
Registration Procedure(s): IETF Review
Reference: [RFC8171]
Initial contents as in Section 3.6.1.
Eastlake, et al. Standards Track [Page 50]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Subregistry
Name: Sub-codes for TRILL Pull Directory Errors 1 and 3
Registration Procedure(s): Expert Review
Reference: [RFC8171]
Initial contents as in Section 3.6.2.
Subregistry
Name: Sub-codes for TRILL Pull Directory Errors 128 and 131
Registration Procedure(s): Expert Review
Reference: [RFC8171]
Initial contents as in Section 3.6.3.
7.6. TRILL-ES-IS MAC Address
IANA has assigned a TRILL multicast MAC address (01-80-C2-00-00-47)
from the "TRILL Multicast Addresses" registry. The description is
"TRILL-ES-IS". The reference is [RFC8171].
8. References
8.1. Normative References
[RFC826] Plummer, D., "Ethernet Address Resolution Protocol: Or
Converting Network Protocol Addresses to 48.bit Ethernet
Address for Transmission on Ethernet Hardware", STD 37,
RFC 826, DOI 10.17487/RFC0826, November 1982,
<http://www.rfc-editor.org/info/rfc826>.
[RFC903] Finlayson, R., Mann, T., Mogul, J., and M. Theimer, "A
Reverse Address Resolution Protocol", STD 38, RFC 903,
DOI 10.17487/RFC0903, June 1984,
<http://www.rfc-editor.org/info/rfc903>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
"SEcure Neighbor Discovery (SEND)", RFC 3971,
DOI 10.17487/RFC3971, March 2005,
<http://www.rfc-editor.org/info/rfc3971>.
Eastlake, et al. Standards Track [Page 51]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007,
<http://www.rfc-editor.org/info/rfc4861>.
[RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic
Authentication", RFC 5304, DOI 10.17487/RFC5304,
October 2008, <http://www.rfc-editor.org/info/rfc5304>.
[RFC5310] Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
and M. Fanto, "IS-IS Generic Cryptographic
Authentication", RFC 5310, DOI 10.17487/RFC5310,
February 2009, <http://www.rfc-editor.org/info/rfc5310>.
[RFC6165] Banerjee, A. and D. Ward, "Extensions to IS-IS for Layer-2
Systems", RFC 6165, DOI 10.17487/RFC6165, April 2011,
<http://www.rfc-editor.org/info/rfc6165>.
[RFC6325] Perlman, R., Eastlake 3rd, D., Dutt, D., Gai, S., and A.
Ghanwani, "Routing Bridges (RBridges): Base Protocol
Specification", RFC 6325, DOI 10.17487/RFC6325, July 2011,
<http://www.rfc-editor.org/info/rfc6325>.
[RFC6329] Fedyk, D., Ed., Ashwood-Smith, P., Ed., Allan, D., Bragg,
A., and P. Unbehagen, "IS-IS Extensions Supporting
IEEE 802.1aq Shortest Path Bridging", RFC 6329,
DOI 10.17487/RFC6329, April 2012,
<http://www.rfc-editor.org/info/rfc6329>.
[RFC7042] Eastlake 3rd, D. and J. Abley, "IANA Considerations and
IETF Protocol and Documentation Usage for IEEE 802
Parameters", BCP 141, RFC 7042, DOI 10.17487/RFC7042,
October 2013, <http://www.rfc-editor.org/info/rfc7042>.
[RFC7172] Eastlake 3rd, D., Zhang, M., Agarwal, P., Perlman, R., and
D. Dutt, "Transparent Interconnection of Lots of Links
(TRILL): Fine-Grained Labeling", RFC 7172,
DOI 10.17487/RFC7172, May 2014,
<http://www.rfc-editor.org/info/rfc7172>.
[RFC7176] Eastlake 3rd, D., Senevirathne, T., Ghanwani, A., Dutt,
D., and A. Banerjee, "Transparent Interconnection of Lots
of Links (TRILL) Use of IS-IS", RFC 7176,
DOI 10.17487/RFC7176, May 2014,
<http://www.rfc-editor.org/info/rfc7176>.
Eastlake, et al. Standards Track [Page 52]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
[RFC7177] Eastlake 3rd, D., Perlman, R., Ghanwani, A., Yang, H., and
V. Manral, "Transparent Interconnection of Lots of Links
(TRILL): Adjacency", RFC 7177, DOI 10.17487/RFC7177,
May 2014, <http://www.rfc-editor.org/info/rfc7177>.
[RFC7178] Eastlake 3rd, D., Manral, V., Li, Y., Aldrin, S., and D.
Ward, "Transparent Interconnection of Lots of Links
(TRILL): RBridge Channel Support", RFC 7178,
DOI 10.17487/RFC7178, May 2014,
<http://www.rfc-editor.org/info/rfc7178>.
[RFC7356] Ginsberg, L., Previdi, S., and Y. Yang, "IS-IS Flooding
Scope Link State PDUs (LSPs)", RFC 7356,
DOI 10.17487/RFC7356, September 2014,
<http://www.rfc-editor.org/info/rfc7356>.
[RFC7357] Zhai, H., Hu, F., Perlman, R., Eastlake 3rd, D., and O.
Stokes, "Transparent Interconnection of Lots of Links
(TRILL): End Station Address Distribution Information
(ESADI) Protocol", RFC 7357, DOI 10.17487/RFC7357,
September 2014, <http://www.rfc-editor.org/info/rfc7357>.
[RFC7780] Eastlake 3rd, D., Zhang, M., Perlman, R., Banerjee, A.,
Ghanwani, A., and S. Gupta, "Transparent Interconnection
of Lots of Links (TRILL): Clarifications, Corrections, and
Updates", RFC 7780, DOI 10.17487/RFC7780, February 2016,
<http://www.rfc-editor.org/info/rfc7780>.
[RFC7961] Eastlake 3rd, D. and L. Yizhou, "Transparent
Interconnection of Lots of Links (TRILL): Interface
Addresses APPsub-TLV", RFC 7961, DOI 10.17487/RFC7961,
August 2016, <http://www.rfc-editor.org/info/rfc7961>.
[RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions
for Advertising Router Information", RFC 7981,
DOI 10.17487/RFC7981, October 2016,
<http://www.rfc-editor.org/info/rfc7981>.
[RFC8139] Eastlake 3rd, D., Li, Y., Umair, M., Banerjee, A., and F.
Hu, "Transparent Interconnection of Lots of Links (TRILL):
Appointed Forwarders", RFC 8139, DOI 10.17487/RFC7961,
June 2017, <http://www.rfc-editor.org/info/rfc8139>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in
RFC 2119 Key Words", BCP 14, RFC 8174,
DOI 10.17487/RFC8174, May 2017,
<http://www.rfc-editor.org/info/rfc8174>.
Eastlake, et al. Standards Track [Page 53]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
8.2. Informative References
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
DOI 10.17487/RFC5226, May 2008,
<http://www.rfc-editor.org/info/rfc5226>.
[RFC7067] Dunbar, L., Eastlake 3rd, D., Perlman, R., and I.
Gashinsky, "Directory Assistance Problem and High-Level
Design Proposal", RFC 7067, DOI 10.17487/RFC7067,
November 2013, <http://www.rfc-editor.org/info/rfc7067>.
[RFC7978] Eastlake 3rd, D., Umair, M., and Y. Li, "Transparent
Interconnection of Lots of Links (TRILL): RBridge Channel
Header Extension", RFC 7978, DOI 10.17487/RFC7978,
September 2016, <http://www.rfc-editor.org/info/rfc7978>.
[ARPND] Li, Y., Eastlake 3rd, D., Dunbar, L., Perlman, R., and M.
Umair, "TRILL: ARP/ND Optimization", Work in Progress,
draft-ietf-trill-arp-optimization-08, April 2017.
[DirAsstEncap]
Dunbar, L., Eastlake 3rd, D., and R. Perlman, "Directory
Assisted TRILL Encapsulation", Work in Progress,
draft-ietf-trill-directory-assisted-encap-05, May 2017.
[ISO9542] ISO 9542:1988, "Information processing systems --
Telecommunications and information exchange between
systems -- End system to Intermediate system routeing
exchange protocol for use in conjunction with the Protocol
for providing the connectionless-mode network service
(ISO 8473)", August 1988.
[SmartEN] Perlman, R., Hu, F., Eastlake 3rd, D., Krupakaran, K., and
T. Liao, "TRILL Smart Endnodes", Work in Progress,
draft-ietf-trill-smart-endnodes-05, February 2017.
[X.233] International Telecommunication Union, ITU-T
Recommendation X.233: "Information technology - Protocol
for providing the connectionless-mode network service:
Protocol specification", August 1997,
<https://www.itu.int/rec/T-REC-X.233/en>.
Eastlake, et al. Standards Track [Page 54]
^L
RFC 8171 TRILL: Directory Service Mechanisms June 2017
Acknowledgments
The contributions of the following persons are gratefully
acknowledged:
Amanda Baber, Matthew Bocci, Alissa Cooper, Stephen Farrell,
Daniel Franke, Igor Gashinsky, Joel Halpern, Susan Hares, Alexey
Melnikov, Gayle Noble, and Tianran Zhou.
Authors' Addresses
Donald Eastlake 3rd
Huawei Technologies
155 Beaver Street
Milford, MA 01757
United States of America
Phone: +1-508-333-2270
Email: d3e3e3@gmail.com
Linda Dunbar
Huawei Technologies
5430 Legacy Drive, Suite #175
Plano, TX 75024
United States of America
Phone: +1-469-277-5840
Email: ldunbar@huawei.com
Radia Perlman
EMC
2010 256th Avenue NE, #200
Bellevue, WA 98007
United States of America
Email: Radia@alum.mit.edu
Yizhou Li
Huawei Technologies
101 Software Avenue
Nanjing 210012
China
Phone: +86-25-56622310
Email: liyizhou@huawei.com
Eastlake, et al. Standards Track [Page 55]
^L
|