summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9667.txt
blob: 963ae9d598e3e842947b78cf41dd39cef8e4d5c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
Internet Engineering Task Force (IETF)                        T. Li, Ed.
Request for Comments: 9667                              Juniper Networks
Category: Experimental                                    P. Psenak, Ed.
ISSN: 2070-1721                                      Cisco Systems, Inc.
                                                                 H. Chen
                                                               Futurewei
                                                                L. Jalil
                                                                 Verizon
                                                              S. Dontula
                                                                    AT&T
                                                            October 2024


                    Dynamic Flooding on Dense Graphs

Abstract

   Routing with link-state protocols in dense network topologies can
   result in suboptimal convergence times due to the overhead associated
   with flooding.  This can be addressed by decreasing the flooding
   topology so that it is less dense.

   This document discusses the problem in some depth and an
   architectural solution.  Specific protocol changes for IS-IS, OSPFv2,
   and OSPFv3 are described in this document.

Status of This Memo

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

   This document defines an Experimental Protocol for the Internet
   community.  This document is a product of the Internet Engineering
   Task Force (IETF).  It represents the consensus of the IETF
   community.  It has received public review and has been approved for
   publication by the Internet Engineering Steering Group (IESG).  Not
   all documents approved by the IESG are candidates for any level of
   Internet Standard; see Section 2 of RFC 7841.

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

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Revised BSD License text as described in Section 4.e of the
   Trust Legal Provisions and are provided without warranty as described
   in the Revised BSD License.

Table of Contents

   1.  Introduction
     1.1.  Requirements Language
   2.  Problem Statement
   3.  Solution Requirements
   4.  Dynamic Flooding
     4.1.  Applicability
     4.2.  Leader Election
     4.3.  Computing the Flooding Topology
     4.4.  Topologies on Complete Bipartite Graphs
       4.4.1.  A Minimal Flooding Topology
       4.4.2.  Xia Topologies
       4.4.3.  Optimization
     4.5.  Encoding the Flooding Topology
     4.6.  Advertising the Local Edges Enabled for Flooding
   5.  Protocol Elements
     5.1.  IS-IS TLVs
       5.1.1.  IS-IS Area Leader Sub-TLV
       5.1.2.  IS-IS Dynamic Flooding Sub-TLV
       5.1.3.  IS-IS Area Node IDs TLV
       5.1.4.  IS-IS Flooding Path TLV
       5.1.5.  IS-IS Flooding Request TLV
       5.1.6.  IS-IS LEEF Advertisement
     5.2.  OSPF LSAs and TLVs
       5.2.1.  OSPF Area Leader Sub-TLV
       5.2.2.  OSPF Dynamic Flooding Sub-TLV
       5.2.3.  OSPFv2 Dynamic Flooding Opaque LSA
       5.2.4.  OSPFv3 Dynamic Flooding LSA
       5.2.5.  OSPF Area Router ID TLVs
         5.2.5.1.  OSPFv2 Area Router ID TLV
         5.2.5.2.  OSPFv3 Area Router ID TLV
       5.2.6.  OSPF Flooding Path TLV
       5.2.7.  OSPF Flooding Request Bit
       5.2.8.  OSPF LEEF Advertisement
   6.  Behavioral Specification
     6.1.  Terminology
     6.2.  Flooding Topology
     6.3.  Leader Election
     6.4.  Area Leader Responsibilities
     6.5.  Distributed Flooding Topology Calculation
     6.6.  Use of LANs in the Flooding Topology
       6.6.1.  Use of LANs in Centralized Mode
       6.6.2.  Use of LANs in Distributed Mode
         6.6.2.1.  Partial Flooding on a LAN in IS-IS
         6.6.2.2.  Partial Flooding on a LAN in OSPF
     6.7.  Flooding Behavior
     6.8.  Treatment of Topology Events
       6.8.1.  Temporary Addition of Links to the Flooding Topology
       6.8.2.  Local Link Addition
       6.8.3.  Node Addition
       6.8.4.  Failures of Links Not on the Flooding Topology
       6.8.5.  Failures of Links On the Flooding Topology
       6.8.6.  Node Deletion
       6.8.7.  Local Link Addition to the Flooding Topology
       6.8.8.  Local Link Deletion from the Flooding Topology
       6.8.9.  Treatment of Disconnected Adjacent Nodes
       6.8.10. Failure of the Area Leader
       6.8.11. Recovery from Multiple Failures
       6.8.12. Rate-Limiting Temporary Flooding
   7.  IANA Considerations
     7.1.  IS-IS
     7.2.  OSPF
       7.2.1.  OSPF Dynamic Flooding LSA TLVs Registry
       7.2.2.  OSPF Link Attributes Sub-TLV Bit Values Registry
     7.3.  IGP
   8.  Security Considerations
   9.  References
     9.1.  Normative References
     9.2.  Informative References
   Acknowledgements
   Authors' Addresses

1.  Introduction

   In recent years, there has been increased focus on how to address the
   dynamic routing of networks that have a bipartite (also known as
   spine-leaf or leaf-spine), Clos [Clos], or Fat-tree [Leiserson]
   topology.  Conventional Interior Gateway Protocols (IGPs; i.e., IS-IS
   [ISO10589], OSPFv2 [RFC2328], and OSPFv3 [RFC5340]) underperform,
   redundantly flooding information throughout the dense topology.  This
   leads to overloaded control plane inputs and thereby create
   operational issues.  For practical considerations, network architects
   have resorted to applying unconventional techniques to address the
   problem, e.g., applying BGP in the data center [RFC7938].  However,
   some network architects feel that using an Exterior Gateway Protocol
   (EGP) as an IGP is suboptimal, perhaps only because of the
   configuration overhead.

   The primary issue that is demonstrated when conventional IGPs are
   applied is the poor reaction of the network to topology changes.
   Normal link-state routing protocols rely on a flooding algorithm for
   state distribution within an area.  In a dense topology, this
   flooding algorithm is highly redundant and results in unnecessary
   overhead.  Each node in the topology receives each link state update
   multiple times.  Ultimately, all of the redundant copies will be
   discarded, but only after they have reached the control plane and
   have been processed.  This creates issues because significant Link
   State Database (LSDB) updates can become queued behind many redundant
   copies of another update.  This delays convergence as the LSDB does
   not stabilize promptly.

   In a real-world implementation, the packet queues leading to the
   control plane are necessarily of finite size, so if the flooding rate
   exceeds the update processing rate for long enough, then the control
   plane will be obligated to drop incoming updates.  If these lost
   updates are of significance, this will further delay the
   stabilization of the LSDB and the convergence of the network.

   This is not a new problem.  Historically, when routing protocols have
   been deployed in networks where the underlying topology is a complete
   graph, there have been similar issues.  This was more common when the
   underlying link-layer fabric presented the network layer with a full
   mesh of virtual connections.  This was addressed by reducing the
   flooding topology through IS-IS Mesh Groups [RFC2973], but this
   approach requires careful configuration of the flooding topology.

   Thus, the root problem is not limited to massively scalable data
   centers.  It exists with any dense topology at scale.

   Link-state routing protocols were conceived when links were very
   expensive and topologies were sparse.  The fact that those same
   designs are suboptimal in a dense topology should not come as a huge
   surprise.  Technology has progressed to the point where links are
   cheap and common.  This represents a complete reversal in the
   economic fundamentals of network engineering.  The original designs
   are to be commended for continuing to provide correct operation to
   this point and optimizations for operation in today's environment are
   to be expected.

1.1.  Requirements Language

   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.

   These words may also appear in this document in lower case as plain
   English words without their normative meanings.

2.  Problem Statement

   In a dense topology, the flooding algorithm that is the heart of
   conventional link-state routing protocols causes a great deal of
   redundant messaging.  This is exacerbated by scale.  While the
   protocol can survive this combination, the redundant messaging is
   unnecessary overhead and delays convergence.  Thus, the problem is
   how to provide routing in dense, scalable topologies with rapid
   convergence.

3.  Solution Requirements

   A solution to this problem must meet the following requirements:

   Requirement 1:  Provide a dynamic routing solution.  Reachability
                   must be restored after any topology change.

   Requirement 2:  Provide a significant improvement in convergence.

   Requirement 3:  The solution should address a variety of dense
                   topologies.  Just addressing a complete bipartite
                   topology such as K5,8 is insufficient (see [Bondy]).
                   Multi-stage Clos topologies must also be addressed,
                   as well as topologies that are slight variants.
                   Addressing complete graphs is a good demonstration of
                   generality.

   Requirement 4:  There must be no single point of failure.  The loss
                   of any link or node should not unduly hinder
                   convergence.

   Requirement 5:  The workload for flooding should be evenly
                   distributed.  A hot spot, where one node has an
                   extreme workload, would be a performance limitation
                   and a vulnerability for resiliency.

   Requirement 6:  Dense topologies are subgraphs of much larger
                   topologies.  Operational efficiency requires that the
                   dense subgraph not operate in a radically different
                   manner than the remainder of the topology.  While
                   some operational differences are permissible, they
                   should be minimized.  Any change to any node outside
                   of the dense subgraph is not acceptable.  These
                   situations occur when massively scaled data centers
                   are part of an overall larger wide-area network.
                   Having a second protocol operating just on this
                   subgraph would add much more complexity at the edge
                   of the subgraph where the two protocols would have to
                   interoperate.

4.  Dynamic Flooding

   The combination of a dense topology and flooding on the physical
   topology is suboptimal for network scaling.  However, if the flooding
   topology is decoupled from the physical topology and restricted to a
   greatly reduced portion of that topology, the result can be efficient
   flooding and the resilience of existing protocols.  A node that
   supports flooding on the decoupled flooding topology is said to
   support dynamic flooding.

   With dynamic flooding, the flooding topology is computed within an
   IGP area with the dense topology either centrally on an elected node,
   termed the Area Leader, or in a distributed manner on all nodes that
   are supporting dynamic flooding.  If the flooding topology is
   computed centrally, it is encoded into and distributed as part of the
   normal LSDB.  This is the centralized mode of operation.  If the
   flooding topology is computed in a distributed fashion, this is the
   distributed mode of operation.  Nodes within such an IGP area would
   only flood on the flooding topology.  On links outside of the
   flooding topology, normal database synchronization mechanisms, i.e.,
   OSPF database exchange and IS-IS Complete Sequence Number PDUs
   (CSNPs), would apply, but flooding may not.  The detailed behavior of
   the nodes participating in IGP is described in Section 6.  New link-
   state information that arrives from outside of the flooding topology
   suggests that the sender has no flooding topology information or that
   it is operating on old information about the flooding topology.  In
   these cases, the new link-state information should be flooded on the
   flooding topology as well.

   The flooding topology covers the full set of nodes within the area,
   but excludes some of the links that standard flooding would employ.

   Since the flooding topology is computed before topology changes, the
   effort required to compute it does not factor into the convergence
   time and can be done when the topology is stable.  In the case of
   centralized mode, the speed of the computation and its distribution
   is not a significant issue.

   Graph theory defines the "degree" of a node to be the number of edges
   that are attached to the node.  To keep the flooding workload
   scalable and distributed, there should be no nodes in the flooding
   topology that have a much higher degree than other nodes.

   If a node does not have any flooding topology information when it
   receives new link-state information, it should flood according to
   standard flooding rules.  This situation will occur when the dense
   topology is first established but is unlikely to recur.

   Link-state protocols are intentionally designed to be asynchronous
   with nodes acting independently.  During the flooding process,
   different nodes will have different information, resulting in
   transient conditions that can temporarily produce suboptimal
   forwarding.  These periods of transient conditions are known as
   "transients."

   When centralized mode is used and if there are multiple flooding
   topologies being advertised during a transient, then nodes should
   flood link-state updates on all of the flooding topologies.  Each
   node should locally evaluate the election of the Area Leader for the
   IGP area and first flood on its flooding topology.  The rationale
   behind this is straightforward: if there is a transient and there has
   been a recent change in Area Leader, then propagating topology
   information promptly along the most likely flooding topology should
   be the priority.

   During transients, loops may form in the flooding topology.  This is
   not problematic, as the standard flooding rules would cause duplicate
   updates to be ignored.  Similarly, during transients, the flooding
   topology may become disconnected.  Section 6.8.11 discusses how such
   conditions are handled.

4.1.  Applicability

   In a complete graph, this approach is appealing because it
   drastically decreases the flooding topology without the manual
   configuration of mesh groups.  By controlling the diameter of the
   flooding topology, as well as the maximum node degree in the flooding
   topology, convergence time goals can be met, and the stability of the
   control plane can be assured.

   Similarly, in a massively scaled data center (where there are many
   opportunities for redundant flooding), this mechanism guarantees that
   flooding is redundant, with each leaf and spine well connected, while
   ensuring that no update takes too many hops and that no node shares
   an undue portion of the flooding effort.

   In a network where only a portion of the nodes support dynamic
   flooding, the remaining nodes will continue to perform standard
   flooding.  This is not an issue for correctness, as no node can
   become isolated.

   Flooding that is initiated by nodes that support dynamic flooding
   will remain within the flooding topology until it reaches a legacy
   node, where standard flooding is resumed.  Standard flooding will be
   bounded by nodes supporting dynamic flooding, which can help limit
   the propagation of unnecessary flooding.  Whether or not the network
   can remain stable in this condition is very dependent on the number
   and location of the nodes that support dynamic flooding.

   During incremental deployment of dynamic flooding, an area will
   consist of one or more sets of connected nodes that support dynamic
   flooding and one or more sets of connected nodes that do not, i.e.,
   nodes that support standard flooding.  The flooding topology is the
   union of these sets of nodes.  Each set of nodes that does not
   support dynamic flooding needs to be part of the flooding topology
   and such a set of nodes may provide connectivity between two or more
   sets of nodes that support dynamic flooding.

4.2.  Leader Election

   A single node within the dense topology is elected as an Area Leader.

   A generalization of the mechanisms used in existing Designated Router
   (OSPF) or Designated Intermediate-System (IS-IS) elections is used
   for leader election.  The elected node is known as the Area Leader.

   In the case of centralized mode, the Area Leader is responsible for
   computing and distributing the flooding topology.  When a new Area
   Leader is elected and has distributed new flooding topology
   information, then any prior Area Leaders should withdraw any of their
   flooding topology information from their LSDB entries.

   In the case of distributed mode, the distributed algorithm advertised
   by the Area Leader MUST be used by all nodes that participate in
   dynamic flooding.

   Not every node needs to be a candidate to be the Area Leader within
   an area, as a single candidate is sufficient for correct operation.
   However, for redundancy, it is strongly RECOMMENDED that there be
   multiple candidates.

4.3.  Computing the Flooding Topology

   There is a great deal of flexibility in how the flooding topology may
   be computed.  For resilience, it needs to at least contain a cycle of
   all nodes in the dense subgraph.  However, additional links could be
   added to decrease the convergence time.  The trade-off between the
   density of the flooding topology and the convergence time is a matter
   for further study.  The exact algorithm for computing the flooding
   topology in the case of the centralized computation need not be
   standardized, as it is not an interoperability issue.  Only the
   encoding of the resultant topology needs to be documented.  In the
   case of distributed mode, all nodes in the IGP area need to use the
   same algorithm to compute the flooding topology.  It is possible to
   use private algorithms to compute flooding topology, so long as all
   nodes in the IGP area use the same algorithm.

   While the flooding topology should be a covering cycle, it need not
   be a Hamiltonian cycle where each node appears only once.  In fact,
   in many relevant topologies, this will not be possible (e.g., K5,8).
   This is fortunate, as computing a Hamiltonian cycle is known to be
   NP-complete.

   A simple algorithm to compute the topology for a complete bipartite
   graph is to simply select unvisited nodes on each side of the graph
   until both sides are completely visited.  If the numbers of nodes on
   each side of the graph are unequal, then revisiting nodes on the less
   populated side of the graph will be inevitable.  This algorithm can
   run in O(N) time, so it is quite efficient.

   While a simple cycle is adequate for correctness and resiliency, it
   may not be optimal for convergence.  At scale, a cycle may have a
   diameter that is half the number of nodes in the graph.  This could
   cause an undue delay in link-state update propagation.  Therefore, it
   may be useful to have a bound on the diameter of the flooding
   topology.  Introducing more links into the flooding topology would
   reduce the diameter but at the trade-off of possibly adding redundant
   messaging.  The optimal trade-off between convergence time and graph
   diameter is for further study.

   Similarly, if additional redundancy is added to the flooding
   topology, specific nodes in that topology may end up with a very high
   degree.  This could result in overloading the control plane of those
   nodes, resulting in poor convergence.  Thus, it may be preferable to
   have an upper bound on the degree of nodes in the flooding topology.
   Again, the optimal trade-off between graph diameter, node degree,
   convergence time, and topology computation time is for further study.

   If the leader chooses to include a multi-access broadcast LAN segment
   as part of the flooding topology, all of the adjacencies in that LAN
   segment should be included as well.  Once updates are flooded on the
   LAN, they will be received by every attached node.

4.4.  Topologies on Complete Bipartite Graphs

   Complete bipartite graph topologies have become popular for data
   center applications and are commonly called leaf-spine or spine-leaf
   topologies.  This section discusses some flooding topologies that are
   of particular interest in these networks.

4.4.1.  A Minimal Flooding Topology

   A minimal flooding topology on a complete bipartite graph is one in
   which the topology is connected and each node has at least degree
   two.  This is of interest because it guarantees that the flooding
   topology has no single point of failure.

   In practice, this implies that every leaf node in the flooding
   topology will have a degree of two.  As there are usually more leaves
   than spines, the degree of the spines will be higher, but the load on
   the individual spines can be evenly distributed.

   This type of flooding topology is also of interest because it scales
   well.  As the number of leaves increases, it is possible to construct
   flooding topologies that perform well.  Specifically, for N spines
   and M leaves, if M >= N(N/2-1), then there is a flooding topology
   that has a diameter of 4.

4.4.2.  Xia Topologies

   A Xia topology on a complete bipartite graph is one in which all
   spine nodes are biconnected through leaves with degree two, but the
   remaining leaves all have degree one and are evenly distributed
   across the spines.

   Constructively, one can create a Xia topology by iterating through
   the spines.  Each spine can be connected to the next spine by
   selecting any unused leaf.  Since leaves are connected to all spines,
   all leaves will have a connection to both the first and second spine
   and one can therefore choose any leaf without loss of generality.
   Continuing this iteration across all of the spines, selecting a new
   leaf at each iteration will result in a path that connects all
   spines.  Adding one more leaf between the last and first spine will
   produce a cycle of N spines and N leaves.

   At this point, M-N leaves remain unconnected.  These can be
   distributed evenly across the remaining spines and connected by a
   single link.

   Xia topologies represent a compromise that trades off increased risk
   and decreased performance for lower flooding amplification.  Xia
   topologies will have a larger diameter.  For M spines, the diameter
   will be M + 2.

   In a Xia topology, some leaves are singly connected.  This represents
   a risk in that convergence may be delayed in some failures.  However,
   there may be some alternate behaviors that can be employed to
   mitigate these risks.  If a leaf node sees that its single link on
   the flooding topology has failed, it can compensate by performing a
   database synchronization check with a different spine.  Similarly, if
   a leaf determines that its connected spine on the flooding topology
   has failed, it can compensate by performing a database
   synchronization check with a different spine.  In both of these
   cases, the synchronization check is intended to ameliorate any delays
   in link-state propagation due to the fragmentation of the flooding
   topology.

   The benefit of this topology is that flooding load is easily
   understood.  Each node in the spine cycle will never receive an
   update more than twice.  For M leaves and N spines, a spine never
   transmits more than (M/N +1) updates.

4.4.3.  Optimization

   If two nodes are adjacent in the flooding topology and there is a set
   of parallel links between them, then any given update MUST be flooded
   over only one of those links.  The selection of the specific link is
   implementation-specific.

4.5.  Encoding the Flooding Topology

   There are a variety of ways that the flooding topology could be
   encoded efficiently.  If the topology was only a cycle, a simple list
   of the nodes in the topology would suffice.  However, this is
   insufficiently flexible, as it would require a slightly different
   encoding scheme as soon as a single additional link is added.
   Instead, this document chooses to encode the flooding topology as a
   set of intersecting paths, where each path is a set of connected
   links.

   Advertisement of the flooding topology includes support for multi-
   access broadcast LANs.  When a LAN is included in the flooding
   topology, all edges between the LAN and nodes connected to the LAN
   are assumed to be part of the flooding topology.  To reduce the size
   of the flooding topology advertisement, explicit advertisement of
   these edges is optional.  Note that this may result in the
   possibility of "hidden nodes" or "stealth nodes", which are part of
   the flooding topology but are not explicitly mentioned in the
   flooding topology advertisements.  These hidden nodes can be found by
   examination of the LSDB where connectivity between a LAN and nodes
   connected to the LAN is fully specified.

   Note that while all nodes MUST be part of the advertised flooding
   topology, not all multi-access LANs need to be included.  Only those
   LANs that are part of the flooding topology need to be included in
   the advertised flooding topology.

   Other encodings are certainly possible.  This document has attempted
   to make a useful trade-off between simplicity, generality, and space.

4.6.  Advertising the Local Edges Enabled for Flooding

   Correct operation of the flooding topology requires that all nodes
   that participate in the flooding topology choose local links for
   flooding that are part of the calculated flooding topology.  Failure
   to do so could result in an unexpected partition of the flooding
   topology and/or suboptimal flooding reduction.  As an aid to
   diagnosing problems when dynamic flooding is in use, this document
   defines a means of advertising the Local Edges Enabled for Flooding
   (LEEF).  The protocol-specific encodings are defined in Sections
   5.1.6 and 5.2.8.

   The following guidelines apply:

   *  Advertisement of LEEF is optional.

   *  As the flooding topology is defined in terms of edges (i.e., pairs
      of nodes) and not in terms of links, the advertisement SHOULD
      indicate that all such links have been enabled in cases where
      parallel adjacencies to the same neighbor exist.

   *  LEEF advertisements MUST NOT include edges enabled for temporary
      flooding (Section 6.7).

   *  LEEF advertisements MUST NOT be used either when calculating a
      flooding topology or when determining what links to add
      temporarily to the flooding topology when the flooding topology is
      temporarily partitioned.

5.  Protocol Elements

5.1.  IS-IS TLVs

   The following TLVs/sub-TLVs are added to IS-IS:

   1.  A sub-TLV that an IS may include in its Link State PDU (LSP) to
       indicate its preference for becoming the Area Leader.

   2.  A sub-TLV that an IS may include in its LSP to indicate that it
       supports dynamic flooding and the algorithms that it supports for
       distributed mode, if any.

   3.  A TLV to advertise the list of system IDs that compose the
       flooding topology for the area.  A system ID is an identifier for
       a node.

   4.  A TLV to advertise a path that is part of the flooding topology.

   5.  A TLV that requests flooding from the adjacent node.

5.1.1.  IS-IS Area Leader Sub-TLV

   The IS-IS Area Leader Sub-TLV allows a system to:

   1.  Indicate its eligibility and priority for becoming the Area
       Leader.

   2.  Indicate whether centralized or distributed mode is to be used to
       compute the flooding topology in the area.

   3.  Indicate the algorithm identifier for the algorithm that is used
       to compute the flooding topology in distributed mode.

   Intermediate Systems (nodes) that are not advertising this sub-TLV
   are not eligible to become the Area Leader.

   The Area Leader is the node with the numerically highest Area Leader
   priority in the area.  In the event of ties, the node with the
   numerically highest system ID is the Area Leader.  Due to transients
   during database flooding, different nodes may not agree on the Area
   Leader.  This is not problematic, as subsequent flooding will cause
   the entire area to converge.

   The IS-IS Area Leader Sub-TLV is advertised as a sub-TLV of the IS-IS
   Router Capability TLV (242) [RFC7981] and has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |   Priority    |   Algorithm   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 1: IS-IS Area Leader Sub-TLV

   Type:  27

   Length:  2 octets

   Priority:  0-255, unsigned integer.  Determination of the priority is
      outside of the scope of this document.

   Algorithm:  A numeric identifier in the range 0-255 that identifies
      the algorithm used to calculate the flooding topology.  The
      following values are defined:

      0:  Centralized computation by the Area Leader.

      1-127:  Standardized distributed algorithms.

      128-254:  Private distributed algorithms.  Individual values are
         to be assigned according to the "Private Use" policy defined in
         Section 4.1 of [RFC8126] (see Section 7.3).

      255:  Reserved

5.1.2.  IS-IS Dynamic Flooding Sub-TLV

   The IS-IS Dynamic Flooding Sub-TLV allows a system to:

   1.  Indicate that it supports dynamic flooding.  This is indicated by
       the advertisement of this sub-TLV.

   2.  Indicate the set of algorithms that it supports.

   In incremental deployments, understanding which nodes support dynamic
   flooding can be used to optimize the flooding topology.  In
   distributed mode, knowing the capabilities of the nodes can allow the
   Area Leader to select the optimal algorithm.

   The IS-IS Dynamic Flooding Sub-TLV is advertised as a sub-TLV of the
   IS-IS Router Capability TLV (242) [RFC7981] and has the following
   format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    | Algorithm...  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 2: IS-IS Dynamic Flooding Sub-TLV

   Type:  28

   Length:  1-255 octets; number of Algorithms

   Algorithm:  Numeric identifiers in the range 0-255 that identify the
      algorithm used to calculate the flooding topology as described in
      Section 5.1.1.

5.1.3.  IS-IS Area Node IDs TLV

   The IS-IS Area Node IDs TLV is only used in centralized mode.

   The IS-IS Area Node IDs TLV is used by the Area Leader to enumerate
   the node IDs (System ID + pseudonode ID) that it has used in
   computing the area flooding topology.  Conceptually, the Area Leader
   creates a list of node IDs for all nodes in the area (including
   pseudonodes for all LANs in the topology) and assigns an index to
   each node, starting with index 0.  Indices are implicitly assigned
   sequentially, with the index of the first node being the Starting
   Index and each subsequent node's index is the previous node's index +
   1.

   Because the space in a single TLV is limited, more than one TLV may
   be required to encode all of the node IDs in the area.  This TLV may
   be present in multiple LSPs.

   The IS-IS Area Node IDs TLV has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    | Starting Index                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |L| Reserved    | Node IDs ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   Node IDs continued ....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 3: IS-IS Area Node IDs TLV

   Type:  17

   Length:  3 + ((System ID Length + 1) * (number of node IDs)) in
      octets

   Starting Index:  The index of the first node ID that appears in this
      TLV.

   L (Last):  This bit is set if the index of the last node ID that
      appears in this TLV is equal to the last index in the full list of
      node IDs for the area.

   Node IDs:  A concatenated list of node IDs for the area.

   If multiple IS-IS Area Node IDs TLVs with the L bit set are
   advertised by the same node, the TLV that specifies the smaller
   maximum index is used and the other TLVs with the L bit set are
   ignored.  TLVs that specify node IDs with indices greater than that
   specified by the TLV with the L bit set are also ignored.

5.1.4.  IS-IS Flooding Path TLV

   The IS-IS Flooding Path TLV is only used in centralized mode.

   The IS-IS Flooding Path TLV is used to denote a path in the flooding
   topology.  The goal is an efficient encoding of the links of the
   topology.  A single link is a simple case of a path that only covers
   two nodes.  A connected path may be described as a sequence of
   indices (I1, I2, I3, ...), denoting a link from the system with index
   1 to the system with index 2, a link from the system with index 2 to
   the system with index 3, and so on.

   If a path exceeds the size that can be stored in a single TLV, then
   the path may be distributed across multiple TLVs by the replication
   of a single system index.

   Complex topologies that are not a single path can be described using
   multiple TLVs.

   The IS-IS Flooding Path TLV contains a list of system indices
   relative to the systems advertised through the IS-IS Area Node IDs
   TLV.  At least 2 indices must be included in the TLV.  Due to the
   length restriction of TLVs, this TLV can contain 126 system indices
   at most.

   The IS-IS Flooding Path TLV has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    | Starting Index                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Index 2                       | Additional indices ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 4: IS-IS Flooding Path TLV

   Type:  18

   Length:  2 * (number of indices in the path) in octets

   Starting Index:  The index of the first system in the path.

   Index 2:  The index of the next system in the path.

   Additional indices (optional):  A sequence of additional indices to
      systems along the path.

5.1.5.  IS-IS Flooding Request TLV

   The IS-IS Flooding Request TLV allows a system to request an adjacent
   node to enable flooding towards it on a specific link in the case
   where the connection to the adjacent node is not part of the existing
   flooding topology.

   A node that supports dynamic flooding MAY include the IS-IS Flooding
   Request TLV in its IS-IS Hello (IIH) Protocol Data Units (PDUs).

   The IS-IS Flooding Request TLV has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |   Levels      |    Scope      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    ...        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 5: IS-IS Flooding Request TLV

   Type:  19

   Length:  1 + number of advertised flooding scopes in octets

   Levels:  The levels for which flooding is requested.  Levels are
      encoded as the circuit type as specified in IS-IS [ISO10589]

   Scope (8 bits):  Flooding scope for which the flooding is requested
      as defined in the LSP Flooding Scope Identifier Registry as
      created by [RFC7356].  Inclusion of flooding scopes is optional
      and is only necessary if [RFC7356] is supported.  Multiple
      flooding scopes MAY be included.  Values are restricted to the
      range 0..127.

   Circuit flooding scope MUST NOT be sent in the Flooding Request TLV
   and MUST be ignored if received.

   When the TLV is received in a level-specific LAN-Hello PDU (L1-LAN-
   IIH or L2-LAN-IIH), only levels that match the PDU type are valid.
   Levels that do not match the PDU type MUST be ignored on receipt.

   When the TLV is received in a Point-to-Point Hello (P2P-IIH), only
   levels that are supported by the established adjacency are valid.
   Levels that are not supported by the adjacency MUST be ignored on
   receipt.

   If flooding was disabled on the received link due to dynamic
   flooding, then flooding MUST be temporarily enabled over the link for
   the specified Circuit Types and flooding scopes received in the in
   the IS-IS Flooding Request TLV.  Flooding MUST be enabled until the
   Circuit Type or Flooding Scope is no longer advertised in the IS-IS
   Flooding Request TLV or the TLV no longer appears in IIH PDUs
   received on the link.

   When flooding is temporarily enabled on the link for any Circuit Type
   or Flooding Scope due to receiving the IS-IS Flooding Request TLV,
   the receiver MUST perform standard database synchronization for the
   corresponding Circuit Types and flooding scopes on the link.  In the
   case of IS-IS, this results in setting the Send Routeing Message
   (SRM) flag for all related LSPs on the link and sending CSNPs.

   So long as the IS-IS Flooding Request TLV is being received, flooding
   MUST NOT be disabled for any of the Circuit Types or flooding scopes
   present in the IS-IS Flooding Request TLV, even if the connection
   between the neighbors is removed from the flooding topology.
   Flooding for such Circuit Types or flooding scopes MUST continue on
   the link and be considered temporarily enabled.

5.1.6.  IS-IS LEEF Advertisement

   In support of advertising which edges are currently enabled in the
   flooding topology, an implementation MAY indicate that a link is part
   of the flooding topology by advertising a bit value in the Link
   Attributes sub-TLV defined by [RFC5029].

   The following bit-value is defined by this document:

   Local Edge Enabled for Flooding (LEEF):  0x4

5.2.  OSPF LSAs and TLVs

   This section defines new Link State Advertisements (LSAs) and TLVs
   for both OSPFv2 and OSPFv3.

   The following LSAs and TLVs/sub-TLVs are added to OSPFv2/OSPFv3:

   1.  A TLV that is used to advertise the preference for becoming the
       Area Leader.

   2.  A TLV that is used to indicate the support for dynamic flooding
       and the algorithms that the advertising node supports for
       distributed mode, if any.

   3.  An OSPFv2 Opaque LSA and OSPFv3 LSA to advertise the flooding
       topology for centralized mode.

   4.  A TLV to advertise the list of Router IDs that comprise the
       flooding topology for the area.

   5.  A TLV to advertise a path that is part of the flooding topology.

   6.  A bit in the Link-Local Signaling (LLS) Type 1 Extended Options
       and Flags that requests flooding from the adjacent node.

5.2.1.  OSPF Area Leader Sub-TLV

   The usage of the OSPF Area Leader Sub-TLV is identical to that of the
   IS-IS Area Leader Sub-TLV described in Section 5.1.1.

   The OSPF Area Leader Sub-TLV is used by both OSPFv2 and OSPFv3.

   The OSPF Area Leader Sub-TLV is advertised as a top-level TLV of the
   Router Information (RI) LSA that is defined in [RFC7770] and has the
   following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Priority   |   Algorithm   |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 6: OSPF Area Leader Sub-TLV

   Type:  17

   Length:  4 octets

   Priority:  0-255, unsigned integer

   Algorithm:  As defined in Section 5.1.1.

5.2.2.  OSPF Dynamic Flooding Sub-TLV

   The usage of the OSPF Dynamic Flooding Sub-TLV is identical to that
   of the IS-IS Dynamic Flooding Sub-TLV described in Section 5.1.2.

   The OSPF Dynamic Flooding Sub-TLV is used by both OSPFv2 and OSPFv3.

   The OSPF Dynamic Flooding Sub-TLV is advertised as a top-level TLV of
   the RI LSA that is defined in [RFC7770] and has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Algorithm ... |                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 7: OSPF Dynamic Flooding Sub-TLV

   Type:  18

   Length:  Number of Algorithms in octets

   Algorithm:  As defined in Section 5.1.1.

5.2.3.  OSPFv2 Dynamic Flooding Opaque LSA

   The OSPFv2 Dynamic Flooding Opaque LSA is only used in centralized
   mode.

   The OSPFv2 Dynamic Flooding Opaque LSA is used to advertise
   additional data related to dynamic flooding in OSPFv2.  OSPFv2 Opaque
   LSAs are described in [RFC5250].

   Multiple OSPFv2 Dynamic Flooding Opaque LSAs can be advertised by an
   OSPFv2 router.  The flooding scope of the OSPFv2 Dynamic Flooding
   Opaque LSA is area-local.

   The format of the OSPFv2 Dynamic Flooding Opaque LSA is as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            LS age             |     Options   |   LS Type     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       10      |                 Opaque ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Advertising Router                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     LS sequence number                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         LS checksum           |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-                            TLVs                             -+
   |                             ...                               |

                Figure 8: OSPFv2 Dynamic Flooding Opaque LSA

   The opaque type used by OSPFv2 Dynamic Flooding Opaque LSA is 10.
   The opaque type is used to differentiate the various types of OSPFv2
   Opaque LSAs as described in Section 3 of [RFC5250].  The LS Type is
   10.  The LSA Length field [RFC2328] represents the total length (in
   octets) of the Opaque LSA including the LSA header and all TLVs
   (including padding).

   The Opaque ID field is an arbitrary value used to maintain multiple
   Dynamic Flooding Opaque LSAs.  For OSPFv2 Dynamic Flooding Opaque
   LSAs, the Opaque ID has no semantic significance other than to
   differentiate Dynamic Flooding Opaque LSAs originated from the same
   OSPFv2 router.

   The format of the TLVs within the body of the OSPFv2 Dynamic Flooding
   Opaque LSA is the same as the format used by the Traffic Engineering
   Extensions to OSPF [RFC3630].

   The Length field defines the length of the value portion in octets
   (thus a TLV with no value portion would have a length of 0 octets).
   The TLV is padded to a 4-octet alignment; padding is not included in
   the length field (so a 3-octet value would have a length of 3 octets,
   but the total size of the TLV would be 8 octets).  Nested TLVs are
   also 32-bit aligned.  For example, a 1-octet value would have the
   length field set to 1, and 3 octets of padding would be added to the
   end of the value portion of the TLV.  The padding is composed of
   zeros.

5.2.4.  OSPFv3 Dynamic Flooding LSA

   The OSPFv3 Dynamic Flooding Opaque LSA is only used in centralized
   mode.

   The OSPFv3 Dynamic Flooding LSA is used to advertise additional data
   related to dynamic flooding in OSPFv3.

   The OSPFv3 Dynamic Flooding LSA has a function code of 16.  The
   flooding scope of the OSPFv3 Dynamic Flooding LSA is area-local.  The
   U bit will be set indicating that the OSPFv3 Dynamic Flooding LSA
   should be flooded even if it is not understood.  The Link State ID
   (LSID) value for this LSA is the Instance ID.  OSPFv3 routers MAY
   advertise multiple OSPFv3 Dynamic Flooding Opaque LSAs in each area.

   The format of the OSPFv3 Dynamic Flooding LSA is as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            LS age             |1|0|1|           16            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Link State ID                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Advertising Router                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    LS sequence number                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        LS checksum            |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-                            TLVs                             -+
   |                             ...                               |

                   Figure 9: OSPFv3 Dynamic Flooding LSA

5.2.5.  OSPF Area Router ID TLVs

   In OSPF, TLVs are defined to advertise indices associated with nodes
   and Broadcast / Non-Broadcast Multi-Access (NBMA) networks.  Due to
   identifier differences between OSPFv2 and OSPFv3, two different TLVs
   are defined as described in the following sub-sections.

   The OSPF Area Router ID TLVs are used by the Area Leader to enumerate
   the Router IDs that it has used in computing the flooding topology.
   This includes the identifiers associated with Broadcast/NBMA networks
   as defined for Network LSAs.  Conceptually, the Area Leader creates a
   list of Router IDs for all routers in the area and assigns an index
   to each router, starting with index 0.  Indices are implicitly
   assigned sequentially, with the index of the first node being the
   Starting Index and each subsequent node's index is the previous
   node's index + 1.

5.2.5.1.  OSPFv2 Area Router ID TLV

   This TLV is a top-level TLV of the OSPFv2 Dynamic Flooding Opaque
   LSA.

   Because the space in a single OSPFv2 opaque LSA is limited, more than
   one LSA may be required to encode all of the Router IDs in the area.
   This TLV MAY be advertised in multiple OSPFv2 Dynamic Flooding Opaque
   LSAs so that all Router IDs can be advertised.

   The OSPFv2 Area Router IDs TLV has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Starting Index             |L| Flags       |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-        OSPFv2 Router ID TLV Entry                           -+
   |                           ...                                 |

                   Figure 10: OSPFv2 Area Router IDs TLV

   Type:  1

   Length:  4 + sum of the lengths of all TLV entries in octets

   Starting Index:  The index of the first Router/Designated Router ID
      that appears in this TLV.

   L (Last):  This bit is set if the index of the last Router/Designated
      Router ID that appears in this TLV is equal to the last index in
      the full list of Router IDs for the area.

   OSPFv2 Router ID TLV Entries:  A concatenated list of Router ID TLV
      Entries for the area.

   If multiple OSPFv2 Area Router ID TLVs with the L bit set are
   advertised by the same router, the TLV that specifies the smaller
   maximum index is used and the other TLVs with L bit set are ignored.
   TLVs that specify Router IDs with indices greater than that specified
   by the TLV with the L bit set are also ignored.

   Each entry in the OSPFv2 Area Router IDs TLV represents either a node
   or a Broadcast/NBMA network identifier.  An entry has the following
   format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    ID Type    |  Number of IDs                |  Reserved     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-    Originating Router ID/DR Address                         -+
   |                     ...                                       |

                   Figure 11: OSPFv2 Router IDs TLV Entry

   ID Type:  1 octet.  The following values are defined:

      1:  Router

      2:  Designated Router

   Number of IDs:  2 octets

   Reserved:  1 octet.  MUST be transmitted as 0 and MUST be ignored on
      receipt.

   Originating Router ID/DR Address:  (4 * Number of IDs) octets as
      indicated by the ID Type.

5.2.5.2.  OSPFv3 Area Router ID TLV

   This TLV is a top-level TLV of the OSPFv3 Dynamic Flooding LSA.

   Because the space in a single OSPFv3 Dynamic Flooding LSA is limited,
   more than one LSA may be required to encode all of the Router IDs in
   the area.  This TLV MAY be advertised in multiple OSPFv3 Dynamic
   Flooding Opaque LSAs so that all Router IDs can be advertised.

   The OSPFv3 Area Router IDs TLV has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Starting Index             |L| Flags       |   Reserved    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-        OSPFv3 Router ID TLV Entry                           -+
   |                           ...                                 |

                   Figure 12: OSPFv3 Area Router IDs TLV

   Type:  1

   Length:  4 + sum of the lengths of all TLV entries in octets

   Starting Index:  The index of the first Router/Designated Router ID
      that appears in this TLV.

   L (Last):  This bit is set if the index of the last Router/Designated
      Router ID that appears in this TLV is equal to the last index in
      the full list of Router IDs for the area.

   OSPFv3 Router ID TLV Entries:  A concatenated list of Router ID TLV
      Entries for the area.

   If multiple OSPFv3 Area Router ID TLVs with the L bit set are
   advertised by the same router the TLV that specifies the smaller
   maximum index is used and the other TLVs with L bit set are ignored.
   TLVs that specify Router IDs with indices greater than that specified
   by the TLV with the L bit set are also ignored.

   Each entry in the OSPFv3 Area Router IDs TLV represents either a
   router or a Broadcast/NBMA network identifier.  An entry has the
   following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    ID Type    |  Number of IDs                |  Reserved     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-    Originating ID Entry                                     -+
   |                    ...                                        |

                   Figure 13: OSPFv3 Router ID TLV Entry

   ID Type:  1 octet.  The following values are defined:

      1:  Router

      2:  Designated Router

   Number of IDs:  2 octets

   Reserved:  1 octet.  MUST be transmitted as 0 and MUST be ignored on
      receipt.

   The Originating ID Entry takes one of the following forms, depending
   on the ID Type.

   For a Router:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Originating Router ID                                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The length of the Originating ID Entry is (4 * Number of IDs) octets.

   For a Designated Router:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Originating Router ID                                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Interface ID                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The length of the Originating ID Entry is (8 * Number of IDs) octets.

5.2.6.  OSPF Flooding Path TLV

   The OSPF Flooding Path TLV is a top-level TLV of the OSPFv2 Dynamic
   Flooding Opaque LSAs and OSPFv3 Dynamic Flooding LSA.

   The usage of the OSPF Flooding Path TLV is identical to that of the
   IS-IS Flooding Path TLV described in Section 5.1.4.

   The OSPF Flooding Path TLV contains a list of Router ID indices
   relative to the Router IDs advertised through the OSPF Area Router
   IDs TLV.  At least 2 indices must be included in the TLV.

   Multiple OSPF Flooding Path TLVs can be advertised in a single OSPFv2
   Dynamic Flooding Opaque LSA or OSPFv3 Dynamic Flooding LSA.  OSPF
   Flooding Path TLVs can also be advertised in multiple OSPFv2 Dynamic
   Flooding Opaque LSAs or OSPFv3 Dynamic Flooding LSAs if they all
   cannot fit in a single LSA.

   The OSPF Flooding Path TLV has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Starting Index             |       Index 2                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-                        Additional Indices                   -+
   |                           ...                                 |

                     Figure 14: OSPF Flooding Path TLV

   Type:  2

   Length:  2 * (number of indices in the path) in octets

   Starting Index:  The index of the first Router ID in the path.

   Index 2:  The index of the next Router ID in the path.

   Additional indices (optional):  A sequence of additional indices to
      Router IDs along the path.

5.2.7.  OSPF Flooding Request Bit

   A single new option bit, the Flooding Request (FR) bit, is defined in
   the LLS Type 1 Extended Options and Flags field [RFC5613].  The FR
   bit allows a router to request an adjacent node to enable flooding
   towards it on a specific link in the case where the connection to the
   adjacent node is not part of the current flooding topology.

   A node that supports dynamic flooding MAY include the FR bit in its
   OSPF LLS Extended Options and Flags TLV.

   If the FR bit is signaled for a link on which flooding was disabled
   due to dynamic flooding, then flooding MUST be temporarily enabled
   over the link.  Flooding MUST be enabled until the FR bit is no
   longer advertised in the OSPF LLS Extended Options and Flags TLV or
   the OSPF LLS Extended Options and Flags TLV no longer appears in the
   OSPF Hellos.

   When flooding is temporarily enabled on the link for any area due to
   receiving the FR bit in the OSPF LLS Extended Options and Flags TLV,
   the receiver MUST perform standard database synchronization for the
   area corresponding to the link.  If the adjacency is already in the
   FULL state, the mechanism specified in [RFC4811] MUST be used for
   database resynchronization.

   So long as the FR bit is being received in the OSPF LLS Extended
   Options and Flags TLV for a link, flooding MUST NOT be disabled on
   the link, even if the connection between the neighbors is removed
   from the flooding topology.  Flooding MUST continue on the link and
   be considered as temporarily enabled.

5.2.8.  OSPF LEEF Advertisement

   In support of advertising the specific edges that are currently
   enabled in the flooding topology, an implementation MAY indicate that
   a link is part of the flooding topology.  The OSPF Link Attributes
   Bits TLV is defined to support this advertisement.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Type             |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Link Attribute Bits                                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +-            Additional Link Attribute Bits                   -+
   |                           ...                                 |

                  Figure 15: OSPF Link Attributes Bits TLV

   Type:  21 (for OSPFv2) or 10 (for OSPFv3)

   Length:  Size of the Link Attribute Bits in octets.  It MUST be a
      multiple of 4 octets.

   The following bits are defined:

   Bit #0:  Local Edge Enabled for Flooding (LEEF)

   OSPF Link-attribute Bits TLV appears as:

   1.  A sub-TLV of the OSPFv2 Extended Link TLV [RFC7684].

   2.  A sub-TLV of the OSPFv3 Router-Link TLV [RFC8362].

6.  Behavioral Specification

   This section specifies the detailed behavior of the nodes
   participating in the IGP.

6.1.  Terminology

   Some terminology to be used in the following sections:

   Reachable:  A node is considered reachable if it is part of the
      connected network graph.  Note that this is independent of any
      constraints that may be considered when performing IGP shortest-
      path tree calculation, e.g., link metrics, overload bit state,
      etc.  The two-way connectivity check MUST be performed before
      including an edge in the connected network graph.

   Connected:  A node is connected to the flooding topology if it has at
      least one local link, which is part of the flooding topology.

   Disconnected:  A node is disconnected from the flooding topology when
      it is not connected to the flooding topology.

   Current flooding topology:  The latest version of the flooding
      topology that has been received (in the case of centralized mode)
      or calculated locally (in the case of distributed mode).

6.2.  Flooding Topology

   The flooding topology MUST include all reachable nodes in the area.

   If a node's reachability changes, the flooding topology MUST be
   recalculated.  In centralized mode, the Area Leader MUST advertise a
   new flooding topology.

   If a node becomes disconnected from the current flooding topology but
   is still reachable, then a new flooding topology MUST be calculated.
   In centralized mode, the Area Leader MUST advertise the new flooding
   topology.

   The flooding topology SHOULD be biconnected to provide network
   resiliency, but this does incur some amount of redundant flooding.
   Xia topologies (Section 4.4.2) are an example of an explicit decision
   to sacrifice resiliency to avoid redundancy.

6.3.  Leader Election

   Any capable node MAY advertise its eligibility to become the Area
   Leader.

   Nodes that are not reachable are not eligible to become the Area
   Leader.  Nodes that do not advertise their eligibility to become the
   Area Leader are not eligible.  Amongst the eligible nodes, the node
   with the numerically highest priority is the Area Leader.  If
   multiple nodes all have the highest priority, then the node with the
   numerically highest system identifier (in the case of IS-IS) or
   Router ID (in the case of OSPFv2 and OSPFv3) is the Area Leader.

6.4.  Area Leader Responsibilities

   If the Area Leader operates in centralized mode, it MUST advertise
   algorithm 0 in its Area Leader Sub-TLV.  For dynamic flooding to be
   enabled, it also MUST compute and advertise a flooding topology for
   the area.  The Area Leader may update the flooding topology at any
   time.  However, it should not destabilize the network with undue or
   overly frequent topology changes.  If the Area Leader operates in
   centralized mode and needs to advertise a new flooding topology, it
   floods the new flooding topology on both the new and old flooding
   topologies.

   If the Area Leader operates in distributed mode, it MUST advertise a
   nonzero algorithm in its Area Leader Sub-TLV.

   When the Area Leader advertises algorithm 0 in its Area Leader Sub-
   TLV and does not advertise a flooding topology, dynamic flooding is
   disabled for the area.  Note this applies whether the Area Leader
   intends to operate in centralized mode or distributed mode.

   Note that once dynamic flooding is enabled, disabling it risks
   destabilizing the network due to the issues discussed in Section 1.

6.5.  Distributed Flooding Topology Calculation

   If the Area Leader advertises a nonzero algorithm in its Area Leader
   Sub-TLV, all nodes in the area that support dynamic flooding and
   support the algorithm advertised by the Area Leader MUST compute the
   flooding topology based on the Area Leader's advertised algorithm.

   Nodes that do not support the advertised algorithm MUST continue to
   use standard IS-IS/OSPF flooding mechanisms.  Nodes that do not
   support the flooding algorithm advertised by the Area Leader MUST be
   considered as dynamic flooding incapable nodes by the Area Leader.

   If the value of the algorithm advertised by the Area Leader is from
   the range 128-254 (private distributed algorithms), it is the
   responsibility of the network operator to guarantee that all nodes in
   the area agree on the dynamic flooding algorithm corresponding to the
   advertised value.

6.6.  Use of LANs in the Flooding Topology

   The use of LANs in the flooding topology differs depending on whether
   the area is operating in centralized mode or distributed mode.

6.6.1.  Use of LANs in Centralized Mode

   As specified in Section 4.5, when a LAN is advertised as part of the
   flooding topology, all nodes connected to the LAN are assumed to be
   using the LAN as part of the flooding topology.  This assumption is
   made to reduce the size of the flooding topology advertisement.

6.6.2.  Use of LANs in Distributed Mode

   In distributed mode, the flooding topology is NOT advertised; thus,
   the space consumed to advertise it is not a concern.  Therefore, it
   is possible to assign only a subset of the nodes connected to the LAN
   to use the LAN as part of the flooding topology.  Doing so may
   further optimize flooding by reducing the amount of redundant
   flooding on a LAN.  However, support of flooding by a subset of the
   nodes connected to a LAN requires some modest but backward-compatible
   changes in the way flooding is performed on a LAN.

6.6.2.1.  Partial Flooding on a LAN in IS-IS

   The Designated Intermediate System (DIS) for a LAN MUST use the
   standard flooding behavior.

   Non-DIS nodes whose connection to the LAN is included in the flooding
   topology MUST use the standard flooding behavior.

   Non-DIS nodes whose connection to the LAN is NOT included in the
   flooding topology behave as follows:

   *  Received CSNPs from the DIS are ignored.

   *  Partial Sequence Number PDUs (PSNPs) are NOT originated on the
      LAN.

   *  An LSP that is received on the LAN and is newer than the
      corresponding LSP present in the Link State PDU Database (LSPDB)
      is retained and flooded on all local circuits that are part of the
      flooding topology (i.e., do not discard newer LSPs simply because
      they were received on a LAN that the receiving node is not using
      for flooding).

   *  An LSP received on the LAN that is older or the same as the
      corresponding LSP in the LSPDB is silently discarded.

   *  LSPs received on links other than the LAN are NOT flooded on the
      LAN.

   NOTE: If any node connected to the LAN requests the enablement of
   temporary flooding, all nodes MUST revert to the standard flooding
   behavior on the LAN.

6.6.2.2.  Partial Flooding on a LAN in OSPF

   The Designated Router (DR) and Backup Designated Router (BDR) for
   LANs MUST use the standard flooding behavior.

   Non-DR/BDR nodes with a connection to a LAN that is included in the
   flooding topology use the standard flooding behavior on that LAN.

   Non-DR/BDR nodes with a connection to a LAN that is NOT included in
   the flooding topology behave as follows:

   *  LSAs received on the LAN are acknowledged to the DR/BDR.

   *  LSAs received on interfaces other than the LAN are NOT flooded on
      the LAN.

   NOTE: If any node connected to the LAN requests the enablement of
   temporary flooding, all nodes revert to the standard flooding
   behavior.

   NOTE: The sending of LSA Acknowledgements by nodes NOT using the LAN
   as part of the flooding topology eliminates the need for changes on
   the part of the DR/BDR, which might include nodes that do not support
   the dynamic flooding algorithm.

6.7.  Flooding Behavior

   Nodes that support dynamic flooding MUST use the flooding topology
   for flooding when possible and MUST NOT revert to standard flooding
   when a valid flooding topology is available.

   In some cases, a node that supports dynamic flooding may need to add
   local links to the flooding topology temporarily, even though the
   links are not part of the calculated flooding topology.  This is
   termed "temporary flooding" and is discussed in Section 6.8.1.

   In distributed mode, the flooding topology is calculated locally.  In
   centralized mode, the flooding topology is advertised in the area
   LSDB.  Received link-state updates, whether received on a link that
   is in the flooding topology or on a link that is not in the flooding
   topology, MUST be flooded on all links that are in the flooding
   topology except for the link on which the update was received.

   In centralized mode, new information in the form of new paths or new
   node ID assignments can be received at any time.  This may replace
   some or all of the existing information about the flooding topology.
   There may be transient conditions where the information that a node
   has is inconsistent or incomplete.  If a node detects that its
   current information is inconsistent, then the node may wait for an
   implementation-specific amount of time, expecting more information to
   arrive that will provide a consistent, complete view of the flooding
   topology.

   In both centralized and distributed mode, if a node determines that
   some of its adjacencies are to be added to the flooding topology, it
   should add those and begin flooding on those adjacencies immediately.
   If a node determines that adjacencies are to be removed from the
   flooding topology, then it should wait for an implementation-specific
   amount of time before acting on that information.  This serves to
   ensure that new information is flooded promptly and completely,
   allowing all nodes to receive updates in a timely fashion.

6.8.  Treatment of Topology Events

   This section explicitly considers a variety of different topological
   events in the network and how dynamic flooding should address them.

6.8.1.  Temporary Addition of Links to the Flooding Topology

   When temporary flooding is enabled on the link, the flooding needs to
   be enabled in both directions.  To achieve that, the following steps
   MUST be performed:

   *  The LSDB needs to be resynchronised on the link.  This is done
      using the standard protocol mechanisms.  In the case of IS-IS,
      this results in setting the SRM bit for all LSPs on the circuit
      and sending a complete set of CSNPs on the link.  In OSPF, the
      mechanism specified in [RFC4811] is used.

   *  Flooding is enabled locally on the link.

   *  Flooding is requested from the neighbor using the mechanism
      specified in Sections 5.1.5 or 5.2.7.

   The request for temporary flooding MUST be withdrawn on the link when
   all of the following conditions are met:

   *  The node itself is connected to the current flooding topology.

   *  The adjacent node is connected to the current flooding topology.

   Any change in the flooding topology MUST result in an evaluation of
   the above conditions for any link on which temporary flooding was
   enabled.

   Temporary flooding is stopped on the link when both adjacent nodes
   stop requesting temporary flooding on the link.

6.8.2.  Local Link Addition

   If a local link is added to the topology, the protocol will form a
   normal adjacency on the link and update the appropriate LSAs for the
   nodes on either end of the link.  These link state updates will be
   flooded on the flooding topology.

   In centralized mode, the Area Leader may choose to retain the
   existing flooding topology or modify the flooding topology upon
   receiving these updates.  If the Area Leader decides to change the
   flooding topology, it will update the flooding topology in the LSDB
   and flood it using the new flooding topology.

   In distributed mode, any change in the topology, including the link
   addition, MUST trigger the flooding topology recalculation.  This is
   done to ensure that all nodes converge to the same flooding topology,
   regardless of the time of the calculation.

   Temporary flooding MUST be enabled on the newly added local link as
   long as at least one of the following conditions are met:

   *  The node on which the local link was added is not connected to the
      current flooding topology.

   *  The new adjacent node is not connected to the current flooding
      topology.

   Note that in this case there is no need to perform a database
   synchronization as part of the enablement of the temporary flooding
   because it was part of the adjacency bring-up itself.

   If multiple local links are added to the topology before the flooding
   topology is updated, temporary flooding MUST be enabled on a subset
   of these links per the conditions discussed in Section 6.8.12.

6.8.3.  Node Addition

   If a node is added to the topology, then at least one link is also
   added to the topology.  Section 6.8.2 applies.

   A node that has a large number of neighbors is at risk of introducing
   a local flooding storm if all neighbors are brought up at once and
   temporary flooding is enabled on all links simultaneously.  The most
   robust way to address this is to limit the rate of initial adjacency
   formation following bootup.  This reduces unnecessary redundant
   flooding as part of initial database synchronization and minimizes
   the need for temporary flooding, as it allows time for the new node
   to be added to the flooding topology after only a small number of
   adjacencies have been formed.

   In the event a node elects to bring up a large number of adjacencies
   simultaneously, a significant amount of redundant flooding may be
   introduced as multiple neighbors of the new node enable temporary
   flooding to the new node, which initially is not part of the flooding
   topology.

6.8.4.  Failures of Links Not on the Flooding Topology

   If a link that is not part of the flooding topology fails, then the
   adjacent nodes will update their LSAs and flood them on the flooding
   topology.

   In centralized mode, the Area Leader may choose to retain the
   existing flooding topology or modify the flooding topology upon
   receiving these updates.  If it elects to change the flooding
   topology, it will update the flooding topology in the LSDB and flood
   it using the new flooding topology.

   In distributed mode, any change in the topology, including the
   failure of the link that is not part of the flooding topology, MUST
   trigger the flooding topology recalculation.  This is done to ensure
   that all nodes converge to the same flooding topology, regardless of
   the time of the calculation.

6.8.5.  Failures of Links On the Flooding Topology

   If there is a failure on the flooding topology, the adjacent nodes
   will update their LSAs and flood them.  If the original flooding
   topology is biconnected, the flooding topology should still be
   connected despite a single failure.

   If the failed local link represented the only connection to the
   flooding topology on the node where the link failed, the node MUST
   enable temporary flooding on a subset of its local links.  This
   allows the node to send its updated LSAs and receive link-state
   updates from other nodes in the network before the new flooding
   topology is calculated and distributed (in the case of centralized
   mode).

   In centralized mode, the Area Leader will notice the change in the
   flooding topology, recompute the flooding topology, and flood it
   using the new flooding topology.

   In distributed mode, all nodes supporting dynamic flooding will
   notice the change in the topology and recompute the new flooding
   topology.

6.8.6.  Node Deletion

   If a node is deleted from the topology, then at least one link is
   also removed from the topology.  Section 6.8.4 and Section 6.8.5
   apply.

6.8.7.  Local Link Addition to the Flooding Topology

   If the flooding topology changes and a local link that was not part
   of the flooding topology is now part of the flooding topology, then
   the node MUST:

   *  Resynchronize the LSDB over the link.  This is done using the
      standard protocol mechanisms.  In the case of IS-IS, this requires
      sending a complete set of CSNPs.  In OSPF, the mechanism specified
      in [RFC4811] is used.

   *  Make the link part of the flooding topology and start flooding on
      it.

6.8.8.  Local Link Deletion from the Flooding Topology

   If the flooding topology changes and a local link that was part of
   the flooding topology is no longer part of the flooding topology,
   then the node MUST remove the link from the flooding topology.

   The node MUST keep flooding on such link for a limited amount of time
   to allow other nodes to migrate to the new flooding topology.

   If the removed local link represented the only connection to the
   flooding topology on the node, the node MUST enable temporary
   flooding on a subset of its local links.  This allows the node to
   send its updated LSAs and receive link-state updates from other nodes
   in the network before the new flooding topology is calculated and
   distributed (in the case of centralized mode).

6.8.9.  Treatment of Disconnected Adjacent Nodes

   Every time there is a change in the flooding topology, a node MUST
   check if any adjacent nodes are disconnected from the current
   flooding topology.  Temporary flooding MUST be enabled towards a
   subset of the disconnected nodes per Sections 6.8.12 and 6.7.

6.8.10.  Failure of the Area Leader

   The failure of the Area Leader can be detected by observing that it
   is no longer reachable.  In this case, the Area Leader election
   process is repeated and a new Area Leader is elected.

   To minimize disruption to dynamic flooding if the Area Leader becomes
   unreachable, the node that has the second-highest priority for
   becoming Area Leader (including the system identifier / Router ID
   tiebreaker if necessary) SHOULD advertise the same algorithm in its
   Area Leader Sub-TLV as the Area Leader and (in centralized mode)
   SHOULD advertise a flooding topology.  This SHOULD be done even when
   the Area Leader is reachable.

   In centralized mode, the new Area Leader will compute a new flooding
   topology and flood it using the new flooding topology.  To minimize
   disruption, the new flooding topology SHOULD have as much in common
   as possible with the old flooding topology.  This will minimize the
   risk of excess flooding with the new flooding topology.

   In the distributed mode, the new flooding topology will be calculated
   on all nodes that support the algorithm that is advertised by the new
   Area Leader.  Nodes that do not support the algorithm advertised by
   the new Area Leader will no longer participate in dynamic flooding
   and will revert to standard flooding.

6.8.11.  Recovery from Multiple Failures

   In the event of multiple failures on the flooding topology, it may
   become partitioned.  The nodes that remain active on the edges of the
   flooding topology partitions will recognize this and will try to
   repair the flooding topology locally by enabling temporary flooding
   towards the nodes that they consider disconnected from the flooding
   topology until a new flooding topology becomes connected again.

   Nodes, where local failure was detected, update their LSAs and flood
   them on the remainder of the flooding topology.

   In centralized mode, the Area Leader will notice the change in the
   flooding topology, recompute the flooding topology, and flood it
   using the new flooding topology.

   In distributed mode, all nodes that actively participate in dynamic
   flooding will compute the new flooding topology.

   Note that this is very different from the area partition because
   there is still a connected network graph between the nodes in the
   area.  The area may remain connected and forwarding may still be
   functioning correctly.

6.8.12.  Rate-Limiting Temporary Flooding

   As discussed in the previous sections, some events require the
   introduction of temporary flooding on edges that are not part of the
   current flooding topology.  This can occur regardless of whether the
   area is operating in centralized mode or distributed mode.

   Nodes that decide to enable temporary flooding also have to decide
   whether to do so on a subset of the edges that are currently not part
   of the flooding topology or on all the edges that are currently not
   part of the flooding topology.  Doing the former risks a longer
   convergence time as it may miss vital edges and not fully repair the
   flooding topology.  Doing the latter risks introducing a flooding
   storm that destabilizes the network.

   It is recommended that a node rate limit the number of edges on which
   it chooses to enable temporary flooding.  Initial values for the
   number of edges on which to enable temporary flooding and the rate at
   which additional edges may subsequently be enabled is left as an
   implementation decision.

7.  IANA Considerations

7.1.  IS-IS

   The following code points have been assigned in the "IS-IS Sub-TLVs
   for IS-IS Router CAPABILITY TLV" registry (IS-IS TLV 242).

       +======+========================+==========================+
       | Type | Description            | Reference                |
       +======+========================+==========================+
       | 27   | IS-IS Area Leader      | RFC 9667 (Section 5.1.1) |
       +------+------------------------+--------------------------+
       | 28   | IS-IS Dynamic Flooding | RFC 9667 (Section 5.1.2) |
       +------+------------------------+--------------------------+

                                 Table 1

   IANA has assigned code points from the "IS-IS Top-Level TLV
   Codepoints" registry, one for each of the following TLVs:

       +======+========================+==========================+
       | Type | Description            | Reference                |
       +======+========================+==========================+
       | 17   | IS-IS Area Node IDs    | RFC 9667 (Section 5.1.3) |
       +------+------------------------+--------------------------+
       | 18   | IS-IS Flooding Path    | RFC 9667 (Section 5.1.4) |
       +------+------------------------+--------------------------+
       | 19   | IS-IS Flooding Request | RFC 9667 (Section 5.1.5) |
       +------+------------------------+--------------------------+

                                 Table 2

   IANA has extended the "IS-IS Neighbor Link-Attribute Bit Values"
   registry to contain an "L2BM" column that indicates if a bit may
   appear in an L2 Bundle Member Attributes TLV.  All existing rows have
   the value "N" for "L2BM".  The following explanatory note has been
   added to the registry:

   |  The "L2BM" column indicates applicability to the L2 Bundle Member
   |  Attributes TLV.  The options for the "L2BM" column are:
   |  
   |  Y - This bit MAY appear in the L2 Bundle Member Attributes TLV.
   |  
   |  N - This bit MUST NOT appear in the L2 Bundle Member Attributes
   |  TLV.

   IANA has allocated a new bit-value from the "IS-IS Neighbor Link-
   Attribute Bit Values" registry.

   +=======+======+========================================+===========+
   | Value | L2BM | Name                                   | Reference |
   +=======+======+========================================+===========+
   | 0x4   | N    | Local Edge Enabled                     | RFC 9667  |
   |       |      | for Flooding (LEEF)                    |           |
   +-------+------+----------------------------------------+-----------+

                                  Table 3

7.2.  OSPF

   The following code points have been assigned in the "OSPF Router
   Information (RI) TLVs" registry:

       +=======+=======================+==========================+
       | Value | TLV Name              | Reference                |
       +=======+=======================+==========================+
       | 17    | OSPF Area Leader      | RFC 9667 (Section 5.2.1) |
       +-------+-----------------------+--------------------------+
       | 18    | OSPF Dynamic Flooding | RFC 9667 (Section 5.2.2) |
       +-------+-----------------------+--------------------------+

                                 Table 4

   The following code points have been assigned in the "Opaque Link-
   State Advertisements (LSA) Option Types" registry:

     +=======+====================================+=================+
     | Value | Opaque Type                        | Reference       |
     +=======+====================================+=================+
     | 10    | OSPFv2 Dynamic Flooding Opaque LSA | RFC 9667        |
     |       |                                    | (Section 5.2.3) |
     +-------+------------------------------------+-----------------+

                                 Table 5

   The following code point has been assigned in the "OSPFv3 LSA
   Function Codes" registry:

    +=======+=============================+==========================+
    | Value | LSA Function Code Name      | Reference                |
    +=======+=============================+==========================+
    | 16    | OSPFv3 Dynamic Flooding LSA | RFC 9667 (Section 5.2.4) |
    +-------+-----------------------------+--------------------------+

                                 Table 6

   IANA has assigned a new bit in the "LLS Type 1 Extended Options and
   Flags" registry:

    +==============+======================+==========================+
    | Bit Position | Description          | Reference                |
    +==============+======================+==========================+
    | 0x00000020   | Flooding Request bit | RFC 9667 (Section 5.2.7) |
    +--------------+----------------------+--------------------------+

                                 Table 7

   The following code point has been assigned in the "OSPFv2 Extended
   Link TLV Sub-TLVs" registry:

     +======+========================+===========+===================+
     | Type | Description            | Reference | L2 Bundle Member  |
     |      |                        |           | Attributes (L2BM) |
     +======+========================+===========+===================+
     | 21   | OSPFv2 Link Attributes | RFC 9667  | Y                 |
     |      | Bits Sub-TLV           | (Section  |                   |
     |      |                        | 5.2.8)    |                   |
     +------+------------------------+-----------+-------------------+

                                  Table 8

   The following code point has been assigned in the "OSPFv3 Extended
   LSA Sub-TLVs" registry:

     +======+========================+===========+===================+
     | Type | Description            | Reference | L2 Bundle Member  |
     |      |                        |           | Attributes (L2BM) |
     +======+========================+===========+===================+
     | 10   | OSPFv3 Link Attributes | RFC 9667  | Y                 |
     |      | Bits Sub-TLV           | (Section  |                   |
     |      |                        | 5.2.8)    |                   |
     +------+------------------------+-----------+-------------------+

                                  Table 9

7.2.1.  OSPF Dynamic Flooding LSA TLVs Registry

   A new registry has been created: "OSPF Dynamic Flooding LSA TLVs".
   New values can be allocated via IETF Review or IESG Approval.

   The "OSPF Dynamic Flooding LSA TLVs" registry defines top-level TLVs
   for the OSPFv2 Dynamic Flooding Opaque LSA and OSPFv3 Dynamic
   Flooding LSAs.  It has been added to the "Open Shortest Path First
   (OSPF) Parameters" registry group.

   The following initial values have been allocated:

        +======+======================+==========================+
        | Type | Description          | Reference                |
        +======+======================+==========================+
        | 0    | Reserved             | RFC 9667                 |
        +------+----------------------+--------------------------+
        | 1    | OSPF Area Router IDs | RFC 9667 (Section 5.2.5) |
        +------+----------------------+--------------------------+
        | 2    | OSPF Flooding Path   | RFC 9667 (Section 5.2.6) |
        +------+----------------------+--------------------------+

                                 Table 10

   Types in the range 32768-33023 are Reserved for Experimental Use;
   these will not be registered with IANA and MUST NOT be mentioned by
   RFCs.

   Types in the range 33024-65535 are Reserved.  They are not to be
   assigned at this time.  Before any assignments can be made in the
   33024-65535 range, there MUST be an IETF specification that specifies
   IANA Considerations that cover the range being assigned.

7.2.2.  OSPF Link Attributes Sub-TLV Bit Values Registry

   A new registry has been created: "OSPF Link Attributes Sub-TLV Bit
   Values".  New values can be allocated via IETF Review or IESG
   Approval.

   The "OSPF Link Attributes Sub-TLV Bit Values" registry defines Link
   Attribute bit-values for the OSPFv2 Link Attributes Sub-TLV and
   OSPFv3 Link Attributes Sub-TLV.  It has been added to the "Open
   Shortest Path First (OSPF) Parameters" registry group.  This registry
   contains a column "L2BM" that indicates if a bit may appear in an L2
   Bundle Member Attributes (L2BM) Sub-TLV.  The following explanatory
   note has been added to the registry:

   |  The "L2BM" column indicates applicability to the L2 Bundle Member
   |  Attributes sub-TLV.  The options for the "L2BM" column are:
   |  
   |  Y - This bit MAY appear in the L2 Bundle Member Attributes sub-
   |  TLV.
   |  
   |  N - This bit MUST NOT appear in the L2 Bundle Member Attributes
   |  sub-TLV.

   The following initial value is allocated:

     +========+=====================+===========+===================+
     | Bit    | Description         | Reference | L2 Bundle Member  |
     | Number |                     |           | Attributes (L2BM) |
     +========+=====================+===========+===================+
     | 0      | Local Edge Enabled  | RFC 9667  | N                 |
     |        | for Flooding (LEEF) | (Section  |                   |
     |        |                     | 5.2.8)    |                   |
     +--------+---------------------+-----------+-------------------+

                                 Table 11

7.3.  IGP

   IANA has created a registry called "IGP Algorithm Type For Computing
   Flooding Topology" in the existing "Interior Gateway Protocol (IGP)
   Parameters" registry group.

   The registration policy for this registry is Expert Review.

   Values in this registry come from the range 0-255.

   The initial values in the "IGP Algorithm Type For Computing Flooding
   Topology" registry are as follows:

      +=========+==================================================+
      | Value   | Description                                      |
      +=========+==================================================+
      | 0       | Reserved for centralized mode                    |
      +---------+--------------------------------------------------+
      | 1-127   | Unassigned.  Individual values are to be         |
      |         | assigned according to the "Expert Review" policy |
      |         | defined in [RFC8126].  The designated experts    |
      |         | should require a clear, public specification of  |
      |         | the algorithm and comply with [RFC7370].         |
      +---------+--------------------------------------------------+
      | 128-254 | Reserved for Private Use                         |
      +---------+--------------------------------------------------+
      | 255     | Reserved                                         |
      +---------+--------------------------------------------------+

                                 Table 12

8.  Security Considerations

   This document introduces no new security issues.  Security of routing
   within a domain is already addressed as part of the routing protocols
   themselves.  This document proposes no changes to those security
   architectures.

   An attacker could become the Area Leader and introduce a flawed
   flooding algorithm into the network thus compromising the operation
   of the protocol.  Authentication methods as described in [RFC5304]
   and [RFC5310] for IS-IS, [RFC2328] and [RFC7474] for OSPFv2, and
   [RFC5340] and [RFC4552] for OSPFv3 SHOULD be used to prevent such
   attacks.

9.  References

9.1.  Normative References

   [ISO10589] ISO, "Information technology - Telecommunications and
              information exchange between systems - Intermediate System
              to Intermediate System intra-domain routeing information
              exchange protocol for use in conjunction with the protocol
              for providing the connectionless-mode network service (ISO
              8473)", Second Edition, ISO/IEC 10589:2002, November 2002,
              <https://www.iso.org/standard/30932.html>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC2328]  Moy, J., "OSPF Version 2", STD 54, RFC 2328,
              DOI 10.17487/RFC2328, April 1998,
              <https://www.rfc-editor.org/info/rfc2328>.

   [RFC4552]  Gupta, M. and N. Melam, "Authentication/Confidentiality
              for OSPFv3", RFC 4552, DOI 10.17487/RFC4552, June 2006,
              <https://www.rfc-editor.org/info/rfc4552>.

   [RFC5029]  Vasseur, JP. and S. Previdi, "Definition of an IS-IS Link
              Attribute Sub-TLV", RFC 5029, DOI 10.17487/RFC5029,
              September 2007, <https://www.rfc-editor.org/info/rfc5029>.

   [RFC5250]  Berger, L., Bryskin, I., Zinin, A., and R. Coltun, "The
              OSPF Opaque LSA Option", RFC 5250, DOI 10.17487/RFC5250,
              July 2008, <https://www.rfc-editor.org/info/rfc5250>.

   [RFC5304]  Li, T. and R. Atkinson, "IS-IS Cryptographic
              Authentication", RFC 5304, DOI 10.17487/RFC5304, October
              2008, <https://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, <https://www.rfc-editor.org/info/rfc5310>.

   [RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
              for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
              <https://www.rfc-editor.org/info/rfc5340>.

   [RFC5613]  Zinin, A., Roy, A., Nguyen, L., Friedman, B., and D.
              Yeung, "OSPF Link-Local Signaling", RFC 5613,
              DOI 10.17487/RFC5613, August 2009,
              <https://www.rfc-editor.org/info/rfc5613>.

   [RFC7356]  Ginsberg, L., Previdi, S., and Y. Yang, "IS-IS Flooding
              Scope Link State PDUs (LSPs)", RFC 7356,
              DOI 10.17487/RFC7356, September 2014,
              <https://www.rfc-editor.org/info/rfc7356>.

   [RFC7474]  Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed.,
              "Security Extension for OSPFv2 When Using Manual Key
              Management", RFC 7474, DOI 10.17487/RFC7474, April 2015,
              <https://www.rfc-editor.org/info/rfc7474>.

   [RFC7684]  Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
              Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
              Advertisement", RFC 7684, DOI 10.17487/RFC7684, November
              2015, <https://www.rfc-editor.org/info/rfc7684>.

   [RFC7770]  Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
              S. Shaffer, "Extensions to OSPF for Advertising Optional
              Router Capabilities", RFC 7770, DOI 10.17487/RFC7770,
              February 2016, <https://www.rfc-editor.org/info/rfc7770>.

   [RFC7981]  Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions
              for Advertising Router Information", RFC 7981,
              DOI 10.17487/RFC7981, October 2016,
              <https://www.rfc-editor.org/info/rfc7981>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8362]  Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and
              F. Baker, "OSPFv3 Link State Advertisement (LSA)
              Extensibility", RFC 8362, DOI 10.17487/RFC8362, April
              2018, <https://www.rfc-editor.org/info/rfc8362>.

9.2.  Informative References

   [Bondy]    Bondy, J. A. and U. S. R. Murty, "Graph Theory With
              Applications", Elsevier Science Publishing Co., Inc.,
              ISBN 0-444-19451-7, 1976,
              <https://www.zib.de/groetschel/teaching/WS1314/
              BondyMurtyGTWA.pdf>.

   [Clos]     Clos, C., "A study of non-blocking switching networks",
              The Bell System Technical Journal, Volume 32, Issue 2, pp.
              406-424, DOI 10.1002/j.1538-7305.1953.tb01433.x, March
              1953,
              <https://doi.org/10.1002/j.1538-7305.1953.tb01433.x>.

   [Leiserson]
              Leiserson, C. E., "Fat-trees: Universal networks for
              hardware-efficient supercomputing", IEEE Transactions on
              Computers, Volume C-34, Issue 10, pp. 892-901,
              DOI 10.1109/TC.1985.6312192, October 1985,
              <https://doi.org/10.1109/TC.1985.6312192>.

   [RFC2973]  Balay, R., Katz, D., and J. Parker, "IS-IS Mesh Groups",
              RFC 2973, DOI 10.17487/RFC2973, October 2000,
              <https://www.rfc-editor.org/info/rfc2973>.

   [RFC3630]  Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
              (TE) Extensions to OSPF Version 2", RFC 3630,
              DOI 10.17487/RFC3630, September 2003,
              <https://www.rfc-editor.org/info/rfc3630>.

   [RFC4811]  Nguyen, L., Roy, A., and A. Zinin, "OSPF Out-of-Band Link
              State Database (LSDB) Resynchronization", RFC 4811,
              DOI 10.17487/RFC4811, March 2007,
              <https://www.rfc-editor.org/info/rfc4811>.

   [RFC7370]  Ginsberg, L., "Updates to the IS-IS TLV Codepoints
              Registry", RFC 7370, DOI 10.17487/RFC7370, September 2014,
              <https://www.rfc-editor.org/info/rfc7370>.

   [RFC7938]  Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of
              BGP for Routing in Large-Scale Data Centers", RFC 7938,
              DOI 10.17487/RFC7938, August 2016,
              <https://www.rfc-editor.org/info/rfc7938>.

Acknowledgements

   The authors would like to thank Sarah Chen, Tony Przygienda, Dave
   Cooper, Gyan Mishra, and Les Ginsberg for their contributions to this
   work.  The authors would also like to thank Arista Networks for
   supporting the development of this technology.

   The authors would like to thank Zeqing (Fred) Xia, Naiming Shen, Adam
   Sweeney, Acee Lindem, and Olufemi Komolafe for their helpful
   comments.

   The authors would like to thank Tom Edsall for initially introducing
   them to the problem.

   Advertising Local Edges Enabled for Flooding (LEEF) is based on an
   idea proposed by Huaimo Chen, Mehmet Toy, Yi Yang, Aijun Wang, Xufeng
   Liu, Yanhe Fan, and Lei Liu.  The authors wish to thank them for
   their contributions.

Authors' Addresses

   Tony Li (editor)
   Juniper Networks
   1133 Innovation Way
   Sunnyvale, California 94089
   United States of America
   Email: tony.li@tony.li


   Peter Psenak (editor)
   Cisco Systems, Inc.
   Eurovea Centre, Central 3
   Pribinova Street 10
   81109 Bratislava
   Slovakia
   Email: ppsenak@cisco.com


   Huaimo Chen
   Futurewei
   Boston, Massachusetts
   United States of America
   Email: hchen.ietf@gmail.com


   Luay Jalil
   Verizon
   Richardson, Texas 75081
   United States of America
   Email: luay.jalil@verizon.com


   Srinath Dontula
   AT&T
   200 S Laurel Ave
   Middletown, New Jersey 07748
   United States of America
   Email: sd947e@att.com