1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777
|
<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-chz-simple-cu-separation-bng-protocol-06" indexInclude="true" ipr="trust200902" number="8772" prepTime="2020-05-11T16:49:12" scripts="Common,Latin" sortRefs="false" submissionType="independent" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
<link href="https://datatracker.ietf.org/doc/draft-chz-simple-cu-separation-bng-protocol-06" rel="prev"/>
<link href="https://dx.doi.org/10.17487/rfc8772" rel="alternate"/>
<link href="urn:issn:2070-1721" rel="alternate"/>
<front>
<title abbrev="Simple BNG CUSP">The China Mobile, Huawei, and ZTE Broadband Network Gateway (BNG) Simple Control and User Plane Separation Protocol (S-CUSP)</title>
<seriesInfo name="RFC" value="8772" stream="independent"/>
<author fullname="Shujun Hu" initials="S." surname="Hu">
<organization showOnFrontPage="true">China Mobile</organization>
<address>
<postal>
<street>32 Xuanwumen West Ave</street>
<cityarea>Xicheng District</cityarea>
<city>Beijing</city>
<code>100053</code>
<country>China</country>
</postal>
<email>hushujun@chinamobile.com</email>
</address>
</author>
<author fullname="Donald Eastlake 3rd" initials="D." surname="Eastlake 3rd">
<organization showOnFrontPage="true">Futurewei Technologies</organization>
<address>
<postal>
<street>2386 Panoramic Circle</street>
<city>Apopka</city>
<region>FL</region>
<code>32703</code>
<country>US</country>
</postal>
<phone>+1-508-333-2270</phone>
<email>d3e3e3@gmail.com</email>
</address>
</author>
<author fullname="Fengwei Qin" initials="F." surname="Qin">
<organization showOnFrontPage="true">China Mobile</organization>
<address>
<postal>
<street>32 Xuanwumen West Ave</street>
<cityarea>Xicheng District</cityarea>
<city>Beijing</city>
<code>100053</code>
<country>China</country>
</postal>
<email>qinfengwei@chinamobile.com</email>
</address>
</author>
<author fullname="Tee Mong Chua" initials="T." surname="Chua">
<organization abbrev="Singapore Telecommunications" showOnFrontPage="true">Singapore Telecommunications Limited</organization>
<address>
<postal>
<street>31 Exeter Road, #05-04 Comcentre Podium Block</street>
<city>Singapore</city>
<code>239732</code>
<country>Singapore</country>
</postal>
<email>teemong@singtel.com</email>
</address>
</author>
<author fullname="Daniel Huang" initials="D." surname="Huang">
<organization showOnFrontPage="true">ZTE</organization>
<address>
<email>huang.guangping@zte.com.cn</email>
</address>
</author>
<date month="05" year="2020"/>
<keyword>CUPS</keyword>
<keyword>CUSP</keyword>
<keyword>BRAS</keyword>
<keyword>BBRAS</keyword>
<abstract pn="section-abstract">
<t pn="section-abstract-1">
A Broadband Network Gateway (BNG) in a fixed wireline access network is an
Ethernet-centric IP edge router and the aggregation point for subscriber
traffic. Control and User Plane Separation (CUPS) for such a BNG improves
flexibility and scalability but requires various communication between the
User Plane (UP) and the Control Plane (CP). China Mobile, Huawei
Technologies, and ZTE have developed a simple CUPS control channel protocol
to support such communication: the
Simple Control and User Plane Separation Protocol (S-CUSP). S-CUSP is
defined in this document.
</t>
<t pn="section-abstract-2">
This document is not an IETF standard and does not have IETF
consensus. S-CUSP is presented here to make its specification
conveniently available to the Internet community to enable diagnosis
and interoperability.</t>
</abstract>
<boilerplate>
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
<t pn="section-boilerplate.1-1">
This document is not an Internet Standards Track specification; it is
published for informational purposes.
</t>
<t pn="section-boilerplate.1-2">
This is a contribution to the RFC Series, independently of any
other RFC stream. The RFC Editor has chosen to publish this
document at its discretion and makes no statement about its value
for implementation or deployment. Documents approved for
publication by the RFC Editor are not candidates for any level of
Internet Standard; see Section 2 of RFC 7841.
</t>
<t pn="section-boilerplate.1-3">
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
<eref target="https://www.rfc-editor.org/info/rfc8772" brackets="none"/>.
</t>
</section>
<section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
<name slugifiedName="name-copyright-notice">Copyright Notice</name>
<t pn="section-boilerplate.2-1">
Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved.
</t>
<t pn="section-boilerplate.2-2">
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
</t>
</section>
</boilerplate>
<toc>
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
<name slugifiedName="name-table-of-contents">Table of Contents</name>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
<li pn="section-toc.1-1.1">
<t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
</li>
<li pn="section-toc.1-1.2">
<t pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
<li pn="section-toc.1-1.2.2.1">
<t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation-requirement-">Implementation Requirement Keywords</xref></t>
</li>
<li pn="section-toc.1-1.2.2.2">
<t keepWithNext="true" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terms">Terms</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.3">
<t pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-overview">BNG CUPS Overview</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
<li pn="section-toc.1-1.3.2.1">
<t pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-motivation">BNG CUPS Motivation</xref></t>
</li>
<li pn="section-toc.1-1.3.2.2">
<t pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-architecture-overv">BNG CUPS Architecture Overview</xref></t>
</li>
<li pn="section-toc.1-1.3.2.3">
<t pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-interfaces">BNG CUPS Interfaces</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.3.2">
<li pn="section-toc.1-1.3.2.3.2.1">
<t pn="section-toc.1-1.3.2.3.2.1.1"><xref derivedContent="3.3.1" format="counter" sectionFormat="of" target="section-3.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-service-interface-si">Service Interface (Si)</xref></t>
</li>
<li pn="section-toc.1-1.3.2.3.2.2">
<t pn="section-toc.1-1.3.2.3.2.2.1"><xref derivedContent="3.3.2" format="counter" sectionFormat="of" target="section-3.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-interface-ci">Control Interface (Ci)</xref></t>
</li>
<li pn="section-toc.1-1.3.2.3.2.3">
<t pn="section-toc.1-1.3.2.3.2.3.1"><xref derivedContent="3.3.3" format="counter" sectionFormat="of" target="section-3.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-management-interface-mi">Management Interface (Mi)</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.3.2.4">
<t pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bng-cups-procedure-overview">BNG CUPS Procedure Overview</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.4">
<t pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-protocol-overview">S-CUSP Protocol Overview</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
<li pn="section-toc.1-1.4.2.1">
<t pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-channel-procedures">Control Channel Procedures</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
<li pn="section-toc.1-1.4.2.1.2.1">
<t pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-session-establishmen">S-CUSP Session Establishment</xref></t>
</li>
<li pn="section-toc.1-1.4.2.1.2.2">
<t pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keepalive-timer-and-deadtim">Keepalive Timer and DeadTimer</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.4.2.2">
<t pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-node-procedures">Node Procedures</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
<li pn="section-toc.1-1.4.2.2.2.1">
<t pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-up-resource-report">UP Resource Report</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2.2.2">
<t pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-bas-function-on-acce">Update BAS Function on Access Interface</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2.2.3">
<t pn="section-toc.1-1.4.2.2.2.3.1"><xref derivedContent="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-network-routing">Update Network Routing</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2.2.4">
<t pn="section-toc.1-1.4.2.2.2.4.1"><xref derivedContent="4.2.4" format="counter" sectionFormat="of" target="section-4.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-public-ip-address-alloc">CGN Public IP Address Allocation</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2.2.5">
<t pn="section-toc.1-1.4.2.2.2.5.1"><xref derivedContent="4.2.5" format="counter" sectionFormat="of" target="section-4.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-synchronization-betwee">Data Synchronization between the CP and UP</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.4.2.3">
<t pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-session-procedur">Subscriber Session Procedures</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.3.2">
<li pn="section-toc.1-1.4.2.3.2.1">
<t pn="section-toc.1-1.4.2.3.2.1.1"><xref derivedContent="4.3.1" format="counter" sectionFormat="of" target="section-4.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-create-subscriber-session">Create Subscriber Session</xref></t>
</li>
<li pn="section-toc.1-1.4.2.3.2.2">
<t pn="section-toc.1-1.4.2.3.2.2.1"><xref derivedContent="4.3.2" format="counter" sectionFormat="of" target="section-4.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update-subscriber-session">Update Subscriber Session</xref></t>
</li>
<li pn="section-toc.1-1.4.2.3.2.3">
<t pn="section-toc.1-1.4.2.3.2.3.1"><xref derivedContent="4.3.3" format="counter" sectionFormat="of" target="section-4.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-delete-subscriber-session">Delete Subscriber Session</xref></t>
</li>
<li pn="section-toc.1-1.4.2.3.2.4">
<t pn="section-toc.1-1.4.2.3.2.4.1"><xref derivedContent="4.3.4" format="counter" sectionFormat="of" target="section-4.3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-session-events-r">Subscriber Session Events Report</xref></t>
</li>
</ul>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5">
<t pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-call-flows">S-CUSP Call Flows</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
<li pn="section-toc.1-1.5.2.1">
<t pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipoe">IPoE</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.1.2">
<li pn="section-toc.1-1.5.2.1.2.1">
<t pn="section-toc.1-1.5.2.1.2.1.1"><xref derivedContent="5.1.1" format="counter" sectionFormat="of" target="section-5.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv4-access">DHCPv4 Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.1.2.2">
<t pn="section-toc.1-1.5.2.1.2.2.1"><xref derivedContent="5.1.2" format="counter" sectionFormat="of" target="section-5.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-access">DHCPv6 Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.1.2.3">
<t pn="section-toc.1-1.5.2.1.2.3.1"><xref derivedContent="5.1.3" format="counter" sectionFormat="of" target="section-5.1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-stateless-address-auto">IPv6 Stateless Address Autoconfiguration (SLAAC) Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.1.2.4">
<t pn="section-toc.1-1.5.2.1.2.4.1"><xref derivedContent="5.1.4" format="counter" sectionFormat="of" target="section-5.1.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-and-slaac-access">DHCPv6 and SLAAC Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.1.2.5">
<t pn="section-toc.1-1.5.2.1.2.5.1"><xref derivedContent="5.1.5" format="counter" sectionFormat="of" target="section-5.1.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcp-dual-stack-access">DHCP Dual-Stack Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.1.2.6">
<t pn="section-toc.1-1.5.2.1.2.6.1"><xref derivedContent="5.1.6" format="counter" sectionFormat="of" target="section-5.1.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2-static-subscriber-access">L2 Static Subscriber Access</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5.2.2">
<t pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pppoe">PPPoE</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.2.2">
<li pn="section-toc.1-1.5.2.2.2.1">
<t pn="section-toc.1-1.5.2.2.2.1.1"><xref derivedContent="5.2.1" format="counter" sectionFormat="of" target="section-5.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-pppoe-access">IPv4 PPPoE Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.2.2.2">
<t pn="section-toc.1-1.5.2.2.2.2.1"><xref derivedContent="5.2.2" format="counter" sectionFormat="of" target="section-5.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-pppoe-access">IPv6 PPPoE Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.2.2.3">
<t pn="section-toc.1-1.5.2.2.2.3.1"><xref derivedContent="5.2.3" format="counter" sectionFormat="of" target="section-5.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pppoe-dual-stack-access">PPPoE Dual-Stack Access</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5.2.3">
<t pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-wlan-access">WLAN Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.4">
<t pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp">L2TP</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.4.2">
<li pn="section-toc.1-1.5.2.4.2.1">
<t pn="section-toc.1-1.5.2.4.2.1.1"><xref derivedContent="5.4.1" format="counter" sectionFormat="of" target="section-5.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lac-access">L2TP LAC Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.4.2.2">
<t pn="section-toc.1-1.5.2.4.2.2.1"><xref derivedContent="5.4.2" format="counter" sectionFormat="of" target="section-5.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-ipv4-access">L2TP LNS IPv4 Access</xref></t>
</li>
<li pn="section-toc.1-1.5.2.4.2.3">
<t pn="section-toc.1-1.5.2.4.2.3.1"><xref derivedContent="5.4.3" format="counter" sectionFormat="of" target="section-5.4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-ipv6-access">L2TP LNS IPv6 Access</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5.2.5">
<t pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-carrier-grade-nat">CGN (Carrier Grade NAT)</xref></t>
</li>
<li pn="section-toc.1-1.5.2.6">
<t pn="section-toc.1-1.5.2.6.1"><xref derivedContent="5.6" format="counter" sectionFormat="of" target="section-5.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l3-leased-line-access">L3 Leased Line Access</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2.6.2">
<li pn="section-toc.1-1.5.2.6.2.1">
<t pn="section-toc.1-1.5.2.6.2.1.1"><xref derivedContent="5.6.1" format="counter" sectionFormat="of" target="section-5.6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-web-authentication">Web Authentication</xref></t>
</li>
<li pn="section-toc.1-1.5.2.6.2.2">
<t pn="section-toc.1-1.5.2.6.2.2.1"><xref derivedContent="5.6.2" format="counter" sectionFormat="of" target="section-5.6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-user-traffic-trigger">User Traffic Trigger</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5.2.7">
<t pn="section-toc.1-1.5.2.7.1"><xref derivedContent="5.7" format="counter" sectionFormat="of" target="section-5.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multicast-service-access">Multicast Service Access</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.6">
<t pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-message-formats">S-CUSP Message Formats</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
<li pn="section-toc.1-1.6.2.1">
<t pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-common-message-header">Common Message Header</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2">
<t pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-control-messages">Control Messages</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.2.2">
<li pn="section-toc.1-1.6.2.2.2.1">
<t pn="section-toc.1-1.6.2.2.2.1.1"><xref derivedContent="6.2.1" format="counter" sectionFormat="of" target="section-6.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hello-message">Hello Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.2">
<t pn="section-toc.1-1.6.2.2.2.2.1"><xref derivedContent="6.2.2" format="counter" sectionFormat="of" target="section-6.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keepalive-message">Keepalive Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.3">
<t pn="section-toc.1-1.6.2.2.2.3.1"><xref derivedContent="6.2.3" format="counter" sectionFormat="of" target="section-6.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_request-message">Sync_Request Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.4">
<t pn="section-toc.1-1.6.2.2.2.4.1"><xref derivedContent="6.2.4" format="counter" sectionFormat="of" target="section-6.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_begin-message">Sync_Begin Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.5">
<t pn="section-toc.1-1.6.2.2.2.5.1"><xref derivedContent="6.2.5" format="counter" sectionFormat="of" target="section-6.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_data-message">Sync_Data Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.6">
<t pn="section-toc.1-1.6.2.2.2.6.1"><xref derivedContent="6.2.6" format="counter" sectionFormat="of" target="section-6.2.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sync_end-message">Sync_End Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.7">
<t pn="section-toc.1-1.6.2.2.2.7.1"><xref derivedContent="6.2.7" format="counter" sectionFormat="of" target="section-6.2.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update_request-message">Update_Request Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.2.2.8">
<t pn="section-toc.1-1.6.2.2.2.8.1"><xref derivedContent="6.2.8" format="counter" sectionFormat="of" target="section-6.2.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-update_response-message">Update_Response Message</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.6.2.3">
<t pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-event-message">Event Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.4">
<t pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-report-message">Report Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5">
<t pn="section-toc.1-1.6.2.5.1"><xref derivedContent="6.5" format="counter" sectionFormat="of" target="section-6.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-messages">CGN Messages</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.5.2">
<li pn="section-toc.1-1.6.2.5.2.1">
<t pn="section-toc.1-1.6.2.5.2.1.1"><xref derivedContent="6.5.1" format="counter" sectionFormat="of" target="section-6.5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_allocation_req-message">Addr_Allocation_Req Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5.2.2">
<t pn="section-toc.1-1.6.2.5.2.2.1"><xref derivedContent="6.5.2" format="counter" sectionFormat="of" target="section-6.5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_allocation_ack-message">Addr_Allocation_Ack Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5.2.3">
<t pn="section-toc.1-1.6.2.5.2.3.1"><xref derivedContent="6.5.3" format="counter" sectionFormat="of" target="section-6.5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_renew_req-message">Addr_Renew_Req Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5.2.4">
<t pn="section-toc.1-1.6.2.5.2.4.1"><xref derivedContent="6.5.4" format="counter" sectionFormat="of" target="section-6.5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_renew_ack-message">Addr_Renew_Ack Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5.2.5">
<t pn="section-toc.1-1.6.2.5.2.5.1"><xref derivedContent="6.5.5" format="counter" sectionFormat="of" target="section-6.5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_release_req-message">Addr_Release_Req Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.5.2.6">
<t pn="section-toc.1-1.6.2.5.2.6.1"><xref derivedContent="6.5.6" format="counter" sectionFormat="of" target="section-6.5.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-addr_release_ack-message">Addr_Release_Ack Message</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.6.2.6">
<t pn="section-toc.1-1.6.2.6.1"><xref derivedContent="6.6" format="counter" sectionFormat="of" target="section-6.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-vendor-message">Vendor Message</xref></t>
</li>
<li pn="section-toc.1-1.6.2.7">
<t pn="section-toc.1-1.6.2.7.1"><xref derivedContent="6.7" format="counter" sectionFormat="of" target="section-6.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-error-message">Error Message</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7">
<t pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-s-cusp-tlvs-and-sub-tlvs">S-CUSP TLVs and Sub-TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
<li pn="section-toc.1-1.7.2.1">
<t pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-common-tlv-header">Common TLV Header</xref></t>
</li>
<li pn="section-toc.1-1.7.2.2">
<t pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-basic-data-fields">Basic Data Fields</xref></t>
</li>
<li pn="section-toc.1-1.7.2.3">
<t pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sub-tlv-format-and-sub-tlvs">Sub-TLV Format and Sub-TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.3.2">
<li pn="section-toc.1-1.7.2.3.2.1">
<t pn="section-toc.1-1.7.2.3.2.1.1"><xref derivedContent="7.3.1" format="counter" sectionFormat="of" target="section-7.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-name-sub-tlvs">Name Sub-TLVs</xref></t>
</li>
<li pn="section-toc.1-1.7.2.3.2.2">
<t pn="section-toc.1-1.7.2.3.2.2.1"><xref derivedContent="7.3.2" format="counter" sectionFormat="of" target="section-7.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ingress-car-sub-tlv">Ingress-CAR Sub-TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.3.2.3">
<t pn="section-toc.1-1.7.2.3.2.3.1"><xref derivedContent="7.3.3" format="counter" sectionFormat="of" target="section-7.3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-egress-car-sub-tlv">Egress-CAR Sub-TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.3.2.4">
<t pn="section-toc.1-1.7.2.3.2.4.1"><xref derivedContent="7.3.4" format="counter" sectionFormat="of" target="section-7.3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-if-desc-sub-tlv">If-Desc Sub-TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.3.2.5">
<t pn="section-toc.1-1.7.2.3.2.5.1"><xref derivedContent="7.3.5" format="counter" sectionFormat="of" target="section-7.3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-address-list-sub-tlv">IPv6 Address List Sub-TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.3.2.6">
<t pn="section-toc.1-1.7.2.3.2.6.1"><xref derivedContent="7.3.6" format="counter" sectionFormat="of" target="section-7.3.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-vendor-sub-tlv">Vendor Sub-TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7.2.4">
<t pn="section-toc.1-1.7.2.4.1"><xref derivedContent="7.4" format="counter" sectionFormat="of" target="section-7.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hello-tlv">Hello TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.5">
<t pn="section-toc.1-1.7.2.5.1"><xref derivedContent="7.5" format="counter" sectionFormat="of" target="section-7.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-keepalive-tlv">Keepalive TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.6">
<t pn="section-toc.1-1.7.2.6.1"><xref derivedContent="7.6" format="counter" sectionFormat="of" target="section-7.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-error-information-tlv">Error Information TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.7">
<t pn="section-toc.1-1.7.2.7.1"><xref derivedContent="7.7" format="counter" sectionFormat="of" target="section-7.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bas-function-tlv">BAS Function TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.8">
<t pn="section-toc.1-1.7.2.8.1"><xref derivedContent="7.8" format="counter" sectionFormat="of" target="section-7.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-routing-tlvs">Routing TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.8.2">
<li pn="section-toc.1-1.7.2.8.2.1">
<t pn="section-toc.1-1.7.2.8.2.1.1"><xref derivedContent="7.8.1" format="counter" sectionFormat="of" target="section-7.8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-routing-tlv">IPv4 Routing TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.8.2.2">
<t pn="section-toc.1-1.7.2.8.2.2.1"><xref derivedContent="7.8.2" format="counter" sectionFormat="of" target="section-7.8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-routing-tlv">IPv6 Routing TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7.2.9">
<t pn="section-toc.1-1.7.2.9.1"><xref derivedContent="7.9" format="counter" sectionFormat="of" target="section-7.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-tlvs">Subscriber TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.9.2">
<li pn="section-toc.1-1.7.2.9.2.1">
<t pn="section-toc.1-1.7.2.9.2.1.1"><xref derivedContent="7.9.1" format="counter" sectionFormat="of" target="section-7.9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-basic-subscriber-tlv">Basic Subscriber TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.2">
<t pn="section-toc.1-1.7.2.9.2.2.1"><xref derivedContent="7.9.2" format="counter" sectionFormat="of" target="section-7.9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ppp-subscriber-tlv">PPP Subscriber TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.3">
<t pn="section-toc.1-1.7.2.9.2.3.1"><xref derivedContent="7.9.3" format="counter" sectionFormat="of" target="section-7.9.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-subscriber-tlv">IPv4 Subscriber TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.4">
<t pn="section-toc.1-1.7.2.9.2.4.1"><xref derivedContent="7.9.4" format="counter" sectionFormat="of" target="section-7.9.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-subscriber-tlv">IPv6 Subscriber TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.5">
<t pn="section-toc.1-1.7.2.9.2.5.1"><xref derivedContent="7.9.5" format="counter" sectionFormat="of" target="section-7.9.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv4-static-subscriber-dete">IPv4 Static Subscriber Detect TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.6">
<t pn="section-toc.1-1.7.2.9.2.6.1"><xref derivedContent="7.9.6" format="counter" sectionFormat="of" target="section-7.9.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6-static-subscriber-dete">IPv6 Static Subscriber Detect TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.7">
<t pn="section-toc.1-1.7.2.9.2.7.1"><xref derivedContent="7.9.7" format="counter" sectionFormat="of" target="section-7.9.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lac-subscriber-tlv">L2TP-LAC Subscriber TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.8">
<t pn="section-toc.1-1.7.2.9.2.8.1"><xref derivedContent="7.9.8" format="counter" sectionFormat="of" target="section-7.9.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-subscriber-tlv">L2TP-LNS Subscriber TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.9">
<t pn="section-toc.1-1.7.2.9.2.9.1"><xref derivedContent="7.9.9" format="counter" sectionFormat="of" target="section-7.9.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lac-tunnel-tlv">L2TP-LAC Tunnel TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.10">
<t pn="section-toc.1-1.7.2.9.2.10.1"><xref derivedContent="7.9.10" format="counter" sectionFormat="of" target="section-7.9.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-l2tp-lns-tunnel-tlv">L2TP-LNS Tunnel TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.11">
<t pn="section-toc.1-1.7.2.9.2.11.1"><xref derivedContent="7.9.11" format="counter" sectionFormat="of" target="section-7.9.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-update-response-tlv">Update Response TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.12">
<t pn="section-toc.1-1.7.2.9.2.12.1"><xref derivedContent="7.9.12" format="counter" sectionFormat="of" target="section-7.9.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-policy-tlv">Subscriber Policy TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.9.2.13">
<t pn="section-toc.1-1.7.2.9.2.13.1"><xref derivedContent="7.9.13" format="counter" sectionFormat="of" target="section-7.9.13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-cgn-port-range-t">Subscriber CGN Port Range TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7.2.10">
<t pn="section-toc.1-1.7.2.10.1"><xref derivedContent="7.10" format="counter" sectionFormat="of" target="section-7.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-device-status-tlvs">Device Status TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.10.2">
<li pn="section-toc.1-1.7.2.10.2.1">
<t pn="section-toc.1-1.7.2.10.2.1.1"><xref derivedContent="7.10.1" format="counter" sectionFormat="of" target="section-7.10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interface-status-tlv">Interface Status TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.10.2.2">
<t pn="section-toc.1-1.7.2.10.2.2.1"><xref derivedContent="7.10.2" format="counter" sectionFormat="of" target="section-7.10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-board-status-tlv">Board Status TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7.2.11">
<t pn="section-toc.1-1.7.2.11.1"><xref derivedContent="7.11" format="counter" sectionFormat="of" target="section-7.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-cgn-tlvs">CGN TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.11.2">
<li pn="section-toc.1-1.7.2.11.2.1">
<t pn="section-toc.1-1.7.2.11.2.1.1"><xref derivedContent="7.11.1" format="counter" sectionFormat="of" target="section-7.11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-allocation-request-">Address Allocation Request TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.11.2.2">
<t pn="section-toc.1-1.7.2.11.2.2.1"><xref derivedContent="7.11.2" format="counter" sectionFormat="of" target="section-7.11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-allocation-response">Address Allocation Response TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.11.2.3">
<t pn="section-toc.1-1.7.2.11.2.3.1"><xref derivedContent="7.11.3" format="counter" sectionFormat="of" target="section-7.11.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-renewal-request-tlv">Address Renewal Request TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.11.2.4">
<t pn="section-toc.1-1.7.2.11.2.4.1"><xref derivedContent="7.11.4" format="counter" sectionFormat="of" target="section-7.11.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-renewal-response-tl">Address Renewal Response TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.11.2.5">
<t pn="section-toc.1-1.7.2.11.2.5.1"><xref derivedContent="7.11.5" format="counter" sectionFormat="of" target="section-7.11.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-release-request-tlv">Address Release Request TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.11.2.6">
<t pn="section-toc.1-1.7.2.11.2.6.1"><xref derivedContent="7.11.6" format="counter" sectionFormat="of" target="section-7.11.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-release-response-tl">Address Release Response TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7.2.12">
<t pn="section-toc.1-1.7.2.12.1"><xref derivedContent="7.12" format="counter" sectionFormat="of" target="section-7.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-event-tlvs">Event TLVs</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2.12.2">
<li pn="section-toc.1-1.7.2.12.2.1">
<t pn="section-toc.1-1.7.2.12.2.1.1"><xref derivedContent="7.12.1" format="counter" sectionFormat="of" target="section-7.12.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-traffic-statisti">Subscriber Traffic Statistics TLV</xref></t>
</li>
<li pn="section-toc.1-1.7.2.12.2.2">
<t pn="section-toc.1-1.7.2.12.2.2.1"><xref derivedContent="7.12.2" format="counter" sectionFormat="of" target="section-7.12.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-subscriber-detection-result">Subscriber Detection Result TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.7.2.13">
<t pn="section-toc.1-1.7.2.13.1"><xref derivedContent="7.13" format="counter" sectionFormat="of" target="section-7.13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-vendor-tlv">Vendor TLV</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.8">
<t pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tables-of-s-cusp-codepoints">Tables of S-CUSP Codepoints</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
<li pn="section-toc.1-1.8.2.1">
<t pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-message-types">Message Types</xref></t>
</li>
<li pn="section-toc.1-1.8.2.2">
<t pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tlv-types">TLV Types</xref></t>
</li>
<li pn="section-toc.1-1.8.2.3">
<t pn="section-toc.1-1.8.2.3.1"><xref derivedContent="8.3" format="counter" sectionFormat="of" target="section-8.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tlv-operation-codes">TLV Operation Codes</xref></t>
</li>
<li pn="section-toc.1-1.8.2.4">
<t pn="section-toc.1-1.8.2.4.1"><xref derivedContent="8.4" format="counter" sectionFormat="of" target="section-8.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sub-tlv-types">Sub-TLV Types</xref></t>
</li>
<li pn="section-toc.1-1.8.2.5">
<t pn="section-toc.1-1.8.2.5.1"><xref derivedContent="8.5" format="counter" sectionFormat="of" target="section-8.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-error-codes">Error Codes</xref></t>
</li>
<li pn="section-toc.1-1.8.2.6">
<t pn="section-toc.1-1.8.2.6.1"><xref derivedContent="8.6" format="counter" sectionFormat="of" target="section-8.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-if-type-values">If-Type Values</xref></t>
</li>
<li pn="section-toc.1-1.8.2.7">
<t pn="section-toc.1-1.8.2.7.1"><xref derivedContent="8.7" format="counter" sectionFormat="of" target="section-8.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-access-mode-values">Access-Mode Values</xref></t>
</li>
<li pn="section-toc.1-1.8.2.8">
<t pn="section-toc.1-1.8.2.8.1"><xref derivedContent="8.8" format="counter" sectionFormat="of" target="section-8.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-access-method-bits">Access Method Bits</xref></t>
</li>
<li pn="section-toc.1-1.8.2.9">
<t pn="section-toc.1-1.8.2.9.1"><xref derivedContent="8.9" format="counter" sectionFormat="of" target="section-8.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-route-type-values">Route-Type Values</xref></t>
</li>
<li pn="section-toc.1-1.8.2.10">
<t pn="section-toc.1-1.8.2.10.1"><xref derivedContent="8.10" format="counter" sectionFormat="of" target="section-8.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-access-type-values">Access-Type Values</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.9">
<t pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
</li>
<li pn="section-toc.1-1.10">
<t pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
</li>
<li pn="section-toc.1-1.11">
<t pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
<li pn="section-toc.1-1.11.2.1">
<t pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
</li>
<li pn="section-toc.1-1.11.2.2">
<t pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.12">
<t pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
</li>
<li pn="section-toc.1-1.13">
<t pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-contributors">Contributors</xref></t>
</li>
<li pn="section-toc.1-1.14">
<t pn="section-toc.1-1.14.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
</li>
</ul>
</section>
</toc>
</front>
<middle>
<section anchor="sect-1" numbered="true" toc="include" removeInRFC="false" pn="section-1">
<name slugifiedName="name-introduction">Introduction</name>
<t pn="section-1-1">
A Broadband Network Gateway (BNG) in a fixed wireline access network is an
Ethernet-centric IP edge router and the aggregation point for subscriber
traffic. To provide centralized session management, flexible address
allocation, high scalability for subscriber management capacity, and
cost-efficient redundancy, the CU-separated (CP/UP-separated) BNG framework is
described in a technical report <xref target="TR-384" format="default" sectionFormat="of" derivedContent="TR-384"/>
from the Broadband Forum (BBF). The CU-separated service CP, which is
responsible for user access authentication and setting forwarding entries
in UPs, can be virtualized and centralized. The routing
control and forwarding plane, i.e., the BNG UP (local), can be distributed
across the infrastructure. Other structures can also be supported, such as
the CP and UP being virtual or both being physical.</t>
<t pn="section-1-2">
Note: In this document, the terms "user" and "subscriber" are used
interchangeably.</t>
<t pn="section-1-3">
This document specifies the Simple CU Separation Protocol (S-CUSP) for
communications over the BNG control channel between a BNG CP
and a set of UPs. S-CUSP is designed to be flexible
and extensible so as to allow for easy addition of messages and data
items, should further requirements be expressed in the future.</t>
<t pn="section-1-4">
This document is not an IETF standard and does not have IETF
consensus. S-CUSP was designed by China Mobile, Huawei Technologies,
and ZTE. It is presented here to make the S-CUSP specification
conveniently available to the Internet community to enable diagnosis
and interoperability.</t>
<t pn="section-1-5">
At the time of writing this document, the BBF is
working to produce <xref target="WT-459" format="default" sectionFormat="of" derivedContent="WT-459"/>, which will describe an architecture and
requirements for a CP and UP separation of a
disaggregated BNG. Future work may attempt to show how the protocol
described in this document addresses those requirements and may
modify this specification to handle unaddressed requirements.</t>
</section>
<section anchor="sect-2" numbered="true" toc="include" removeInRFC="false" pn="section-2">
<name slugifiedName="name-terminology">Terminology</name>
<t pn="section-2-1">
This section specifies implementation requirement keywords and terms
used in this document. S-CUSP messages are described in this document
using Routing Backus-Naur Form (RBNF) as defined in <xref target="RFC5511" format="default" sectionFormat="of" derivedContent="RFC5511"/>.</t>
<section anchor="sect-2.1" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
<name slugifiedName="name-implementation-requirement-">Implementation Requirement Keywords</name>
<t pn="section-2.1-1">
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCPÂ 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section>
<section anchor="sect-2.2" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
<name slugifiedName="name-terms">Terms</name>
<t pn="section-2.2-1">
This section specifies terms used in this document.</t>
<dl newline="false" spacing="normal" indent="13" pn="section-2.2-2">
<dt pn="section-2.2-2.1">AAA:</dt>
<dd pn="section-2.2-2.2"> Authentication Authorization Accounting.</dd>
<dt pn="section-2.2-2.3">ACK:</dt>
<dd pn="section-2.2-2.4"> Acknowledgement message.</dd>
<dt pn="section-2.2-2.5">BAS:</dt>
<dd pn="section-2.2-2.6"> Broadband Access Server, also known as a BBRAS, BNG, or BRAS.</dd>
<dt pn="section-2.2-2.7">BNG:</dt>
<dd pn="section-2.2-2.8"> Broadband Network Gateway. A BNG (or Broadband Remote Access
Server (BRAS)) routes traffic to and from broadband remote
access devices such as digital subscriber line access
multiplexers (DSLAM) on an Internet Service Provider's (ISP)
network. BNG / BRAS can also be referred to as a BAS or BBRAS.</dd>
<dt pn="section-2.2-2.9">BRAS:</dt>
<dd pn="section-2.2-2.10"> Broadband Remote Access Server, also known as a BAS, BBRAS, or BNG.</dd>
<dt pn="section-2.2-2.11">CAR:</dt>
<dd pn="section-2.2-2.12"> Committed Access Rate.</dd>
<dt pn="section-2.2-2.13">CBS:</dt>
<dd pn="section-2.2-2.14"> Committed Burst Size.</dd>
<dt pn="section-2.2-2.15">CGN:</dt>
<dd pn="section-2.2-2.16"> Carrier Grade NAT.</dd>
<dt pn="section-2.2-2.17">Ci:</dt>
<dd pn="section-2.2-2.18"> Control Interface.</dd>
<dt pn="section-2.2-2.19">CIR:</dt>
<dd pn="section-2.2-2.20"> Committed Information Rate.</dd>
<dt pn="section-2.2-2.21">CoA:</dt>
<dd pn="section-2.2-2.22"> Change of Authorization.</dd>
<dt pn="section-2.2-2.23">CP:</dt>
<dd pn="section-2.2-2.24"> Control Plane. CP is a user control management
component that supports the management of the UP's resources such as
the user entry and forwarding policy.</dd>
<dt pn="section-2.2-2.25">CU:</dt>
<dd pn="section-2.2-2.26"> Control Plane / User Plane.</dd>
<dt pn="section-2.2-2.27">CUSP:</dt>
<dd pn="section-2.2-2.28"> Control and User Plane Separation Protocol.</dd>
<dt pn="section-2.2-2.29">DEI:</dt>
<dd pn="section-2.2-2.30"> Drop Eligibility Indicator as defined in
<xref target="IEEE-802.1Q" format="default" sectionFormat="of" derivedContent="802.1Q"/>. A bit in a VLAN
tag after the priority and before the VLAN ID. (This bit was formerly
the CFI (Canonical Format Indicator).)</dd>
<dt pn="section-2.2-2.31">DHCP:</dt>
<dd pn="section-2.2-2.32"> Dynamic Host Configuration Protocol <xref target="RFC2131" format="default" sectionFormat="of" derivedContent="RFC2131"/>.</dd>
<dt pn="section-2.2-2.33">dial-up:</dt>
<dd pn="section-2.2-2.34"> This refers to the initial connection messages
when a new subscriber appears. The name is left over from when
subscribers literally dialed up on a modem-equipped phone line but
herein is applied to other initial connection techniques. Initial
connection is frequently indicated by the receipt of packets over
PPPoE <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/> or IPoE.</dd>
<dt pn="section-2.2-2.35">EMS:</dt>
<dd pn="section-2.2-2.36"> Element Management System.</dd>
<dt pn="section-2.2-2.37">IPoE:</dt>
<dd pn="section-2.2-2.38"> IP over Ethernet.</dd>
<dt pn="section-2.2-2.39">L2TP:</dt>
<dd pn="section-2.2-2.40"> Layer 2 Tunneling Protocol <xref target="RFC2661" format="default" sectionFormat="of" derivedContent="RFC2661"/>.</dd>
<dt pn="section-2.2-2.41">LAC:</dt>
<dd pn="section-2.2-2.42"> L2TP Access Concentrator.</dd>
<dt pn="section-2.2-2.43">LNS:</dt>
<dd pn="section-2.2-2.44"> L2TP Network Server.</dd>
<dt pn="section-2.2-2.45">MAC:</dt>
<dd pn="section-2.2-2.46"> 48-bit Media Access Control address <xref target="RFC7042" format="default" sectionFormat="of" derivedContent="RFC7042"/>.</dd>
<dt pn="section-2.2-2.47">MANO:</dt>
<dd pn="section-2.2-2.48"> Management and Orchestration.</dd>
<dt pn="section-2.2-2.49">Mi:</dt>
<dd pn="section-2.2-2.50"> Management Interface.</dd>
<dt pn="section-2.2-2.51">MSS:</dt>
<dd pn="section-2.2-2.52"> Maximum Segment Size.</dd>
<dt pn="section-2.2-2.53">MRU:</dt>
<dd pn="section-2.2-2.54"> Maximum Receive Unit.</dd>
<dt pn="section-2.2-2.55">NAT:</dt>
<dd pn="section-2.2-2.56"> Network Address Translation <xref target="RFC3022" format="default" sectionFormat="of" derivedContent="RFC3022"/>.</dd>
<dt pn="section-2.2-2.57">ND:</dt>
<dd pn="section-2.2-2.58"> Neighbor Discovery.</dd>
<dt pn="section-2.2-2.59">NFV:</dt>
<dd pn="section-2.2-2.60"> Network Function Virtualization.</dd>
<dt pn="section-2.2-2.61">NFVI:</dt>
<dd pn="section-2.2-2.62"> NFV Infrastructure.</dd>
<dt pn="section-2.2-2.63">PBS:</dt>
<dd pn="section-2.2-2.64"> Peak Burst Size.</dd>
<dt pn="section-2.2-2.65">PD:</dt>
<dd pn="section-2.2-2.66"> Prefix Delegation.</dd>
<dt pn="section-2.2-2.67">PIR:</dt>
<dd pn="section-2.2-2.68"> Peak Information Rate.</dd>
<dt pn="section-2.2-2.69">PPP:</dt>
<dd pn="section-2.2-2.70"> Point-to-Point Protocol <xref target="RFC1661" format="default" sectionFormat="of" derivedContent="RFC1661"/>.</dd>
<dt pn="section-2.2-2.71">PPPoE:</dt>
<dd pn="section-2.2-2.72"> PPP over Ethernet <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/>.</dd>
<dt pn="section-2.2-2.73">RBNF:</dt>
<dd pn="section-2.2-2.74"> Routing Backus-Naur Form <xref target="RFC5511" format="default" sectionFormat="of" derivedContent="RFC5511"/>.</dd>
<dt pn="section-2.2-2.75">RG:</dt>
<dd pn="section-2.2-2.76"> Residential Gateway.</dd>
<dt pn="section-2.2-2.77">S-CUSP:</dt>
<dd pn="section-2.2-2.78"> Simple Control and User Plane Separation Protocol.</dd>
<dt pn="section-2.2-2.79">Subscriber:</dt>
<dd pn="section-2.2-2.80"> The remote user gaining network accesses
via a BNG.</dd>
<dt pn="section-2.2-2.81">Si:</dt>
<dd pn="section-2.2-2.82"> Service Interface.</dd>
<dt pn="section-2.2-2.83">TLV:</dt>
<dd pn="section-2.2-2.84"> Type-Length-Value. See Sections <xref target="sect-7.1" format="counter" sectionFormat="of" derivedContent="7.1"/> and <xref target="sect-7.3" format="counter" sectionFormat="of" derivedContent="7.3"/>.</dd>
<dt pn="section-2.2-2.85">UP:</dt>
<dd pn="section-2.2-2.86"> User Plane. UP is a network edge and user policy
implementation component. The traditional router's control plane and
forwarding plane are both preserved on BNG devices in the form of a
user plane.</dd>
<dt pn="section-2.2-2.87">URPF:</dt>
<dd pn="section-2.2-2.88"> Unicast Reverse Path Forwarding.</dd>
<dt pn="section-2.2-2.89">User:</dt>
<dd pn="section-2.2-2.90"> Equivalent to "customer" or "subscriber".</dd>
<dt pn="section-2.2-2.91">VRF:</dt>
<dd pn="section-2.2-2.92"> Virtual Routing and Forwarding.</dd>
</dl>
</section>
</section>
<section anchor="sect-3" numbered="true" toc="include" removeInRFC="false" pn="section-3">
<name slugifiedName="name-bng-cups-overview">BNG CUPS Overview</name>
<section anchor="sect-3.1" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
<name slugifiedName="name-bng-cups-motivation">BNG CUPS Motivation</name>
<t pn="section-3.1-1">
The rapid development of new services, such as 4K TV, Internet of Things (IoT), etc., and
increasing numbers of home broadband service users present some new
challenges for BNGs such as:</t>
<dl newline="false" spacing="normal" indent="3" pn="section-3.1-2">
<dt pn="section-3.1-2.1">Low resource utilization:</dt>
<dd pn="section-3.1-2.2"> The traditional BNG acts as both a gateway for user
access authentication and accounting and also an IP network's Layer 3
edge. The mutually affecting nature of the tightly coupled control
plane and forwarding plane makes it difficult to achieve the maximum
performance of either plane.
</dd>
<dt pn="section-3.1-2.3">Complex management and maintenance:</dt>
<dd pn="section-3.1-2.4"> Due to the large
numbers of traditional BNGs, configuring each device in a network is
very tedious when deploying global service policies. As the network
expands and new services are introduced, this deployment mode will
cease to be feasible as it is unable to manage services effectively
and to rectify faults rapidly.
</dd>
<dt pn="section-3.1-2.5">Slow service provisioning:</dt>
<dd pn="section-3.1-2.6"> The coupling of the CP and the forwarding plane, in addition to being a distributed network
control mechanism, means that any new technology has to rely heavily
on the existing network devices.
</dd>
</dl>
<t pn="section-3.1-3">
The framework for a cloud-based BNG with
CU separation to address these challenges for fixed networks is
described in <xref target="TR-384" format="default" sectionFormat="of" derivedContent="TR-384"/>. The main idea of CU separation is to extract
and centralize the user management functions of multiple BNG devices,
forming a unified and centralized CP. The
traditional router's CP and forwarding plane are both
preserved on BNG devices in the form of a UP.</t>
</section>
<section anchor="sect-3.2" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
<name slugifiedName="name-bng-cups-architecture-overv">BNG CUPS Architecture Overview</name>
<t pn="section-3.2-1">
The functions in a traditional BNG can be divided into two parts:
(1) the user access management function and (2) the routing
function. The user access management function can be deployed as
a centralized module or device, called the BNG Control Plane
(BNG-CP). The routing function, which includes routing control
and the forwarding engine, can be deployed in the form of the BNG
User Plane (BNG-UP).
</t>
<t pn="section-3.2-2">
<xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/> shows the architecture of a CU-separated BNG:</t>
<figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
<name slugifiedName="name-architecture-of-a-cu-separa">Architecture of a CU-Separated BNG</name>
<artwork name="" type="" align="left" alt="" pn="section-3.2-3.1">
+------------------------------------------------------------------+
| Neighboring policy and resource management systems |
| |
| +-------------+ +-----------+ +---------+ +----------+ |
| | AAA Server | |DHCP Server| | EMS | | MANO | |
| +-------------+ +-----------+ +---------+ +----------+ |
+------------------------------------------------------------------+
+------------------------------------------------------------------+
| CU-separated BNG system |
| +--------------------------------------------------------------+ |
| | +----------+ +----------+ +------++------++-----------+ | |
| | | Address | |Subscriber| | AAA ||Access|| UP | | |
| | |management| |management| | || mgt ||management | | |
| | +----------+ +----------+ +------++------++-----------+ | |
| | CP | |
| +--------------------------------------------------------------+ |
| |
| |
| |
| +---------------------------+ +--------------------------+ |
| | +------------------+ | | +------------------+ | |
| | | Routing control | | | | Routing control | | |
| | +------------------+ | ... | +------------------+ | |
| | +------------------+ | | +------------------+ | |
| | |Forwarding engine | | | |Forwarding engine | | |
| | +------------------+ UP | | +------------------+ UP| |
| +---------------------------+ +--------------------------+ |
+------------------------------------------------------------------+
</artwork>
</figure>
<t pn="section-3.2-4">
As shown in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>, the BNG-CP could be
virtualized and centralized, which provides benefits such as centralized
session management, flexible address allocation, high scalability for
subscriber management capacity, cost-efficient redundancy, etc. The
functional components inside the BNG-CP can be implemented as
Virtual Network Functions (VNFs) and hosted in an NFVI.</t>
<t pn="section-3.2-5">
The UP management module in the BNG-CP centrally manages
the distributed BNG-UPs (e.g., load balancing), as well as the
setup, deletion, and maintenance of channels between CPs and
UPs. Other modules in the BNG-CP, such as address
management, AAA, etc., are responsible for the connection with external
subsystems in order to fulfill those services. Note that the UP
<bcp14>SHOULD</bcp14> support both physical and virtual network functions. For example,
network functions related to BNG-UP L3 forwarding can be disaggregated
and distributed across the physical infrastructure, and the other CP
management functions in the CU-separated BNG can be moved
into the NFVI for virtualization <xref target="TR-384" format="default" sectionFormat="of" derivedContent="TR-384"/>.</t>
<t pn="section-3.2-6">
The details of the CU-separated BNG's function components are as follows:</t>
<t pn="section-3.2-7">
The CP is responsible for the following:</t>
<ul spacing="normal" bare="false" empty="false" pn="section-3.2-8">
<li pn="section-3.2-8.1">Address management: Unified address pool management and CGN subscriber
address traceability management.
</li>
<li pn="section-3.2-8.2">AAA: This component performs Authentication,
Authorization, and Accounting, together with RADIUS/Diameter. The BNG
communicates with the AAA server to check whether the subscriber who
sent an access request has network access authority. Once the
subscriber goes online, this component (together with the Service
Control component) implements accounting, data capacity limitation, and
QoS enforcement policies.
</li>
<li pn="section-3.2-8.3">Subscriber management: User entry management and
forwarding policy management.
</li>
<li pn="section-3.2-8.4">Access management: Process user dial-up packets, such
as PPPoE, DHCP, L2TP, etc.
</li>
<li pn="section-3.2-8.5">UP management: Management of UP interface status and
the setup, deletion, and maintenance of channels between CP and UP.
</li>
</ul>
<t pn="section-3.2-9">
The UP is responsible for the following:</t>
<ul spacing="normal" bare="false" empty="false" pn="section-3.2-10">
<li pn="section-3.2-10.1">Routing control functions: Responsible for instantiating routing forwarding plane
(e.g., routing, multicast, MPLS, etc.).
</li>
<li pn="section-3.2-10.2">Routing and service forwarding plane functions: Responsibilities
include traffic forwarding, QoS, and traffic statistics collection.
</li>
<li pn="section-3.2-10.3">Subscriber detection: Responsible for detecting whether
a subscriber is still online.
</li>
</ul>
</section>
<section anchor="sect-3.3" numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
<name slugifiedName="name-bng-cups-interfaces">BNG CUPS Interfaces</name>
<t pn="section-3.3-1">
The three interfaces defined below support the communication between the
CP and UP. These are referred to as the Service
Interface (Si), Control Interface (Ci), and Management Interface (Mi)
as shown in <xref target="fig2" format="default" sectionFormat="of" derivedContent="Figure 2"/>.</t>
<figure anchor="fig2" align="left" suppress-title="false" pn="figure-2">
<name slugifiedName="name-interfaces-between-the-cp-a">Interfaces between the CP and UP of the BNG</name>
<artwork name="" type="" align="left" alt="" pn="section-3.3-2.1">
+-----------------------------------+
| |
| BNG-CP |
| |
+--+--------------+--------------+--+
| | |
1. Service | 2. Control | 3. Management|
Interface | Interface | Interface |
(Si) | (Ci) | (Mi) |
| | |
| ___|___ |
| ___( )___ |
_|______( )______|_
( )
( Network/Internet )
(________ ________)
| (___ ___) |
| (_______) |
| | |
| | |
+--+--------------+--------------+--+
| |
| BNG-UP |
| |
+-----------------------------------+
</artwork>
</figure>
<section anchor="sect-3.3.1" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.1">
<name slugifiedName="name-service-interface-si">Service Interface (Si)</name>
<t pn="section-3.3.1-1">
For a traditional BNG (without CU separation), the user dial-up
signals are terminated and processed by the CP of a BNG.
When the CP and UP of a BNG are separated, there needs to be a way to
relay these signals between the CP and the UP.</t>
<t pn="section-3.3.1-2">
The Si is used to establish tunnels between the
CP and UP. The tunnels are responsible for relaying the PPPoE-, IPoE-,
and L2TP-related control packets that are received from a Residential
Gateway (RG) over those tunnels. An appropriate tunnel type is
Virtual eXtensible Local Area Network (VXLAN)
<xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>.</t>
<t pn="section-3.3.1-3">
The detailed definition of Si is out of scope for this document.</t>
</section>
<section anchor="sect-3.3.2" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.2">
<name slugifiedName="name-control-interface-ci">Control Interface (Ci)</name>
<t pn="section-3.3.2-1">
The CP uses the Ci to deliver subscriber session
states, network routing entries, etc., to the UP (see <xref target="sect-6.2.7" format="default" sectionFormat="of" derivedContent="Section 6.2.7"/>).
The UP uses this interface to report subscriber service statistics,
subscriber detection results, etc., to the CP (see Sections <xref target="sect-6.3" format="counter" sectionFormat="of" derivedContent="6.3"/> and
<xref target="sect-6.4" format="counter" sectionFormat="of" derivedContent="6.4"/>). A carrying protocol for this interface is specified in this
document.</t>
</section>
<section anchor="sect-3.3.3" numbered="true" toc="include" removeInRFC="false" pn="section-3.3.3">
<name slugifiedName="name-management-interface-mi">Management Interface (Mi)</name>
<t pn="section-3.3.3-1">
The Network Configuration Protocol (NETCONF) <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> is the protocol used on the Mi between a CP and UP. It
is used to configure the parameters of the Ci, Si, access interfaces,
and QoS/ACL Templates. It is expected that implementations will make use of
existing YANG models where possible but that new YANG models specific to
S-CUSP will need to be defined. The definitions of the parameters that can
be configured are out of scope for this document.</t>
</section>
</section>
<section anchor="sect-3.4" numbered="true" toc="include" removeInRFC="false" pn="section-3.4">
<name slugifiedName="name-bng-cups-procedure-overview">BNG CUPS Procedure Overview</name>
<t pn="section-3.4-1">
The following numbered sequences (<xref target="fig3" format="default" sectionFormat="of" derivedContent="Figure 3"/>) give a high-level view
of the main BNG CUPS procedures.</t>
<figure anchor="fig3" align="left" suppress-title="false" pn="figure-3">
<name slugifiedName="name-bng-cups-procedures-overvie">BNG CUPS Procedures Overview</name>
<artwork name="" type="" align="left" alt="" pn="section-3.4-2.1">
RG UP CP AAA
| |Establish S-CUSP Channel| |
| 1|<---------------------->| |
| | | |
| | Report board interface | |
| | information | |
| 2|------to CP via Ci----->| |
| | | |
| | Update BAS function | |
| 3| request/response | |
| |<-----on UP via Ci----->| |
| | | |
| | Update network routing | |
| | request/response | |
| 4|<------- via Ci-------->| |
| Online Req | | |
5.1|-------------->| | |
| | Relay the Online Req | |
| 5.2|-----to CP via Si------>| Authentication|
| | | Req/Rep |
| | 5.3|<------------->|
| | Send the Online Rep | |
| 5.4|<----to UP via Si-------| |
| | | |
| | Create subscriber | |
| | session on UP | |
| 5.5|<--------via Ci-------->| |
| Online Rep | | |
5.6|<--------------| | |
| | | CoA Request |
| | 6.1|<--------------|
| | Update session on UP | |
| 6.2|<--------via Ci-------->| |
| | | CoA Response |
| Offline Req | 6.3|-------------->|
7.1|-------------->| | |
| | Relay the Offline Req | |
| 7.2|------to CP via Si----->| |
| | | |
| | Send the Offline Rep | |
| 7.3|<-----to UP via Si------| |
| Offline Rep | | |
7.4|<--------------| | |
| | Delete session on UP | |
| 7.5|<--------via Ci-------->| |
| | | |
| | Event report | |
| 8|---------via Ci-------->| |
| | | |
| | Data synchronization | |
| 9|<--------via Ci-------->| |
| | | |
| | CGN address allocation | |
| 10|<--------via Ci-------->| |
| | | |</artwork>
</figure>
<ol spacing="normal" type="(%d)" start="1" pn="section-3.4-3">
<li pn="section-3.4-3.1" derivedCounter="(1)"> S-CUSP session establishment: This is the first step of the BNG
CUPS procedures. Once the Ci parameters are
configured on a UP, it will start to set up S-CUSP sessions with the
specified CPs. The detailed definition of S-CUSP session establishment
can be found in <xref target="sect-4.1.1" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/>.
</li>
<li pn="section-3.4-3.2" derivedCounter="(2)"> Board and interface report: Once the S-CUSP session is
established between the UP and a CP, the UP will report status
information on the boards and subscriber-facing interfaces of this
UP to the CP. A board can also be called a Line/Service Process Unit
(LPU/SPU) card. The subscriber-facing interfaces refer to the
interfaces that connect the access network nodes (e.g., Optical Line
Terminal (OLT), DSLAM, etc.). The CP can use this information to
enable the Broadband Access Server (BAS) function (e.g., IPoE,
PPPoE, etc.) on the specified interfaces. See Sections <xref target="sect-4.2.1" format="counter" sectionFormat="of" derivedContent="4.2.1"/> and <xref target="sect-7.10" format="counter" sectionFormat="of" derivedContent="7.10"/> for more details on resource reporting.
</li>
<li pn="section-3.4-3.3" derivedCounter="(3)"> BAS function enable: To enable the BAS
function on the specified interfaces of a UP.
</li>
<li pn="section-3.4-3.4" derivedCounter="(4)"> Subscriber network route advertisement: The CP will allocate one
or more IP address blocks to a UP. Each address block contains a
series of IP addresses. Those IP addresses will be allocated to
subscribers who are dialing up from the UP. To enable other nodes in
the network to learn how to reach the subscribers, the CP needs to
notify the UP to advertise to the network the routes that can reach
those IP addresses.
</li>
<li pn="section-3.4-3.5" derivedCounter="(5)"> 5.1-5.6 is a complete call flow of a subscriber dial-up (as
defined in <xref target="sect-4.3.1" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/>) process. When a UP receives a
dial-up request, it will relay the request packet to a CP through the
Si. The CP will parse the request. If everything is OK,
it will send an authentication request to the AAA server to
authenticate the subscriber. Once the subscriber passes the
authentication, the AAA server will return a positive response to the
CP. Then the CP will send the dial-up response packet to the UP, and
the UP will forward the response packet to the subscriber (RG). At the
same time, the CP will create a subscriber session on the UP,
enabling the subscriber to access the network. For different access
types, the process may be a bit different, but the high-level process
is similar. For each access type, the detailed process can be found in
<xref target="sect-5" format="default" sectionFormat="of" derivedContent="Section 5"/>.
</li>
<li pn="section-3.4-3.6" derivedCounter="(6)"> 6.1-6.3 is the sequence when updating an existing subscriber
session. The AAA server initiates a Change of Authorization (CoA) and
sends the CoA to the CP. The CP will then update the session according
to the CoA. See <xref target="sect-4.3.2" format="default" sectionFormat="of" derivedContent="Section 4.3.2"/> for more detail on CP
messages updating UP tables.
</li>
<li pn="section-3.4-3.7" derivedCounter="(7)"> 7.1-7.5 is the sequence for deleting an existing subscriber
session. When a UP receives an Offline Request, it will relay the
request to a CP through the Si. The CP will send back a
response to the UP through the Si. The UP will then
forward the Offline Response to the subscriber. Then the CP will
delete the session on the UP through the Ci.
</li>
<li pn="section-3.4-3.8" derivedCounter="(8)">
<t pn="section-3.4-3.8.1"> Event reports include the following two parts (more detail can
be found in <xref target="sect-4.3.4" format="default" sectionFormat="of" derivedContent="Section 4.3.4"/>). Both
are reported using the Event message: </t>
<ul empty="true" spacing="normal" bare="false" pn="section-3.4-3.8.2">
<li pn="section-3.4-3.8.2.1">
8.1. Subscriber Traffic Statistics Report
</li>
<li pn="section-3.4-3.8.2.2">
8.2. Subscriber Detection Result Report
</li>
</ul>
</li>
<li pn="section-3.4-3.9" derivedCounter="(9)"> Data synchronization: See <xref target="sect-4.2.5" format="default" sectionFormat="of" derivedContent="Section 4.2.5"/> for more detail on CP and
UP synchronization.
</li>
<li pn="section-3.4-3.10" derivedCounter="(10)"> CGN address allocation: See <xref target="sect-4.2.4" format="default" sectionFormat="of" derivedContent="Section 4.2.4"/> for more detail on CGN
address allocation.
</li>
</ol>
</section>
</section>
<section anchor="sect-4" numbered="true" toc="include" removeInRFC="false" pn="section-4">
<name slugifiedName="name-s-cusp-protocol-overview">S-CUSP Protocol Overview</name>
<section anchor="sect-4.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
<name slugifiedName="name-control-channel-procedures">Control Channel Procedures</name>
<section anchor="sect-4.1.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.1">
<name slugifiedName="name-s-cusp-session-establishmen">S-CUSP Session Establishment</name>
<t pn="section-4.1.1-1">
A UP is associated with a CP and is controlled by that CP. In the
case of a hot-standby or cold-standby, a UP is associated with two
CPs: the master CP and standby CP.
The association between a UP and its CPs is implemented by dynamic
configuration.</t>
<t pn="section-4.1.1-2">
Once a UP knows its CPs, the UP starts to establish S-CUSP sessions
with those CPs, as shown in <xref target="fig4" format="default" sectionFormat="of" derivedContent="Figure 4"/>.</t>
<figure anchor="fig4" align="left" suppress-title="false" pn="figure-4">
<name slugifiedName="name-s-cusp-session-establishment">S-CUSP Session Establishment</name>
<artwork name="" type="" align="left" alt="" pn="section-4.1.1-3.1">
UP CP
| TCP Session Establishment |
|<------------------------------->|
| |
| Hello (version, capability) |
|-------------------------------->|
| |
| Hello (version, capability) |
|<--------------------------------|
| |</artwork>
</figure>
<t pn="section-4.1.1-4">
The S-CUSP session establishment consists of two successive steps:</t>
<ol spacing="normal" type="(%d)" start="1" pn="section-4.1.1-5">
<li pn="section-4.1.1-5.1" derivedCounter="(1)"> Establishment of a TCP connection (3-way handshake) <xref target="RFC0793" format="default" sectionFormat="of" derivedContent="RFC793"/> between the CP and
the UP using a configured port from the dynamic port range
(49152-65535).
</li>
<li pn="section-4.1.1-5.2" derivedCounter="(2)"> Establishment of an S-CUSP session over the TCP connection.</li>
</ol>
<t pn="section-4.1.1-6"> Once the TCP connection is established, the CP and the UP initialize
the S-CUSP session, during which the version and Keepalive timers are
negotiated.</t>
<t pn="section-4.1.1-7">
The version information (Hello TLV, see <xref target="sect-7.4" format="default" sectionFormat="of" derivedContent="Section 7.4"/>) is carried
within Hello messages (see <xref target="sect-6.2.1" format="default" sectionFormat="of" derivedContent="Section 6.2.1"/>). A CP can support multiple
versions, but a UP can only support one version; thus the version
negotiation is based on whether a version can be supported by both
the CP and the UP.
If a CP or UP receives a Hello message that does not indicate
a version supported by both, it responds with a Hello message
containing an Error Information TLV to notify the peer of the
Version-Mismatch error, and the session establishment phase
fails.</t>
<t pn="section-4.1.1-8">
Keepalive negotiation is performed by carrying a Keepalive TLV in the
Hello message. The Keepalive TLV includes a Keepalive timer and
DeadTimer field. The CP and UP have to agree on the Keepalive Timer and
DeadTimer. Otherwise, a subsequent Hello message with an Error
Information TLV will be sent to its peer, and the session
establishment phase fails.</t>
<t pn="section-4.1.1-9">
The S-CUSP session establishment phase fails if the CP or UP disagree
on the version and keepalive parameters or if one of the CP or UP
does not answer after the expiration of the Establishment timer.
When the S-CUSP session establishment fails, the TCP connection is
promptly closed. Successive retries are permitted, but an
implementation <bcp14>SHOULD</bcp14> make use of an exponential backoff session
establishment retry procedure.</t>
<t pn="section-4.1.1-10">
The S-CUSP session timer values that need to be configured are
summarized in <xref target="tab-sess-timers" format="default" sectionFormat="of" derivedContent="Table 1"/>.</t>
<table anchor="tab-sess-timers" align="center" pn="table-1">
<name slugifiedName="name-s-cusp-session-timers">S-CUSP Session Timers</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Timer Name</th>
<th align="left" colspan="1" rowspan="1">Range in Seconds</th>
<th align="left" colspan="1" rowspan="1">Default Value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">Establishment Timer</td>
<td align="left" colspan="1" rowspan="1">1-32767</td>
<td align="left" colspan="1" rowspan="1">45</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">Keepalive Timer</td>
<td align="left" colspan="1" rowspan="1">0-255</td>
<td align="left" colspan="1" rowspan="1">30</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">DeadTimer</td>
<td align="left" colspan="1" rowspan="1">1-32767</td>
<td align="left" colspan="1" rowspan="1">4 * Keepalive</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-4.1.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.1.2">
<name slugifiedName="name-keepalive-timer-and-deadtim">Keepalive Timer and DeadTimer</name>
<t pn="section-4.1.2-1">
Once an S-CUSP session has been established, a UP or CP may want to
know that its S-CUSP peer is still connected.</t>
<t pn="section-4.1.2-2">
Each end of an S-CUSP session runs a Keepalive timer. It restarts
the timer every time it sends a message on the session. When the
timer expires, it sends a Keepalive message. Thus, a message is
transmitted at least as often as the value to which the Keepalive timer is
reset, unless, as explained below, that value is the special value
zero.</t>
<t pn="section-4.1.2-3">
Each end of an S-CUSP session also runs a DeadTimer and restarts that
DeadTimer whenever a message is received on the session. If the
DeadTimer expires at an end of the session, that end declares the
session dead and the session will be closed, unless their DeadTimer
is set to the special value zero, in which case the session will not
time out.</t>
<t pn="section-4.1.2-4">
The minimum value of the Keepalive timer is 1 second, and it is
specified in units of 1 second. The <bcp14>RECOMMENDED</bcp14> default value is 30
seconds. The recommended default for the DeadTimer is four times the
value of the Keepalive timer used by the remote peer. As above, the
timers may be disabled by setting them to zero.</t>
<t pn="section-4.1.2-5">
The Keepalive timer and DeadTimer are negotiated through the
Keepalive TLV carried in the Hello message.</t>
</section>
</section>
<section anchor="sect-4.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
<name slugifiedName="name-node-procedures">Node Procedures</name>
<section anchor="sect-4.2.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.1">
<name slugifiedName="name-up-resource-report">UP Resource Report</name>
<t pn="section-4.2.1-1">
Once an S-CUSP session has been established between a CP and a UP, the UP
reports the state information of the boards and access-facing interfaces on
the UP to the CP, as shown in <xref target="fig5" format="default" sectionFormat="of" derivedContent="Figure 5"/>. Report messages are
unacknowledged and are assumed to be delivered because the session runs
over TCP.</t>
<t pn="section-4.2.1-2">
The CP can use that information to activate/enable the
BAS functions (e.g., IPoE, PPPoE, etc.) on the
specified interfaces.</t>
<t pn="section-4.2.1-3">
In addition, the UP resource report may trigger a UP warm-standby
process. In the case of warm-standby, a failure on a UP may trigger
the CP to start a warm-standby process, by moving the online
subscriber sessions to a standby UP and then directing the affected
subscribers to access the Internet through the standby UP.</t>
<figure anchor="fig5" align="left" suppress-title="false" pn="figure-5">
<name slugifiedName="name-up-board-and-interface-repo">UP Board and Interface Report</name>
<artwork name="" type="" align="left" alt="" pn="section-4.2.1-4.1">
UP CP
| Report Board Status |
|------to CP via Ci----->|
| |
| Report Interface Status|
|------to CP via Ci----->|
| |</artwork>
</figure>
<t pn="section-4.2.1-5">
Board status information is carried in the Board Status TLV (<xref target="sect-7.10.2" format="default" sectionFormat="of" derivedContent="Section 7.10.2"/>),
and interface status information is carried in the
Interface Status TLV (<xref target="sect-7.10.1" format="default" sectionFormat="of" derivedContent="Section 7.10.1"/>). Both Board Status and
Interface Status TLVs are carried in the Report message (<xref target="sect-6.4" format="default" sectionFormat="of" derivedContent="Section 6.4"/>).</t>
</section>
<section anchor="sect-4.2.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.2">
<name slugifiedName="name-update-bas-function-on-acce">Update BAS Function on Access Interface</name>
<t pn="section-4.2.2-1"> Once the CP collects the interface status of a
UP, it will activate/deactivate/modify the BAS functions on specified
interfaces through the Update_Request and Update_Response message exchanges
(<xref target="sect-6.2" format="default" sectionFormat="of" derivedContent="Section 6.2"/>), carrying the BAS Function TLV
(<xref target="sect-7.7" format="default" sectionFormat="of" derivedContent="Section 7.7"/>).</t>
<figure anchor="fig6" align="left" suppress-title="false" pn="figure-6">
<name slugifiedName="name-update-bas-function">Update BAS Function</name>
<artwork name="" type="" align="left" alt="" pn="section-4.2.2-2.1">
UP CP
| Update BAS Function |
| Request |
|<-----on UP via Ci-------|
| |
| Update BAS Function |
| Response |
|------on UP via Ci------>|
| |</artwork>
</figure>
</section>
<section anchor="sect-4.2.3" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.3">
<name slugifiedName="name-update-network-routing">Update Network Routing</name>
<t pn="section-4.2.3-1">
The CP will allocate one or more address blocks to a UP. Each address
block contains a series of IP addresses. Those IP addresses will be
assigned to subscribers who are dialing up to the UP. To enable the
other nodes in the network to learn how to reach the subscribers, the
CP needs to install the routes on the UP and notify the UP to
advertise the routes to the network.</t>
<figure anchor="fig7" align="left" suppress-title="false" pn="figure-7">
<name slugifiedName="name-update-network-routing-2">Update Network Routing</name>
<artwork name="" type="" align="left" alt="" pn="section-4.2.3-2.1">
UP CP
| Subscriber network route|
| update request |
|<------- via Ci----------|
| |
| Subscriber network route|
| update response |
|-------- via Ci--------->|
| | </artwork>
</figure>
<t pn="section-4.2.3-3">
The Update_Request and Update_Response message exchanges, carrying the
IPv4/IPv6 Routing TLVs (<xref target="sect-7.8" format="default" sectionFormat="of" derivedContent="Section 7.8"/>), update the
subscriber's network routing information.</t>
</section>
<section anchor="sect-4.2.4" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.4">
<name slugifiedName="name-cgn-public-ip-address-alloc">CGN Public IP Address Allocation</name>
<t pn="section-4.2.4-1">
The following sequences (<xref target="fig8" format="default" sectionFormat="of" derivedContent="Figure 8"/>) describe the procedures related to CGN address
management. Three independent procedures are defined: one each
for CGN address allocation request/response, CGN address renewal
request/response, and CGN address release request/response.</t>
<t pn="section-4.2.4-2">
CGN address allocation/renew/release procedures are designed for the case
where the CGN function is running on the UP. The UP has to map the
subscriber private IP addresses to public IP addresses, and such mapping
is performed by the UP locally when a subscriber dials up. That means the
UP has to ask for public IPv4 address blocks for CGN subscribers from the
CP.</t>
<t pn="section-4.2.4-3">
In addition, when a public IP address is allocated to a UP, there
will be a lease time (e.g., one day). Before the lease time expires,
the UP can ask for renewal of the IP address lease from the CP. It is
achieved by the exchange of the Addr_Renew_Req and Addr_Renew_Ack
messages.</t>
<t pn="section-4.2.4-4">
If the public IP address will not be used anymore, the UP <bcp14>SHOULD</bcp14>
release the address by sending an Addr_Release_Req message to the CP.</t>
<t pn="section-4.2.4-5">
If the CP wishes to withdraw addresses that it has previously leased
to a UP, it uses the same procedures as above. The Oper code
(see <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>) in the IPv4/IPv6 Routing TLV
(see <xref target="sect-7.8" format="default" sectionFormat="of" derivedContent="Section 7.8"/>) determines whether the
request is an update or withdraw.</t>
<t pn="section-4.2.4-6">
The relevant messages are defined in <xref target="sect-6.5" format="default" sectionFormat="of" derivedContent="Section 6.5"/>.</t>
<figure anchor="fig8" align="left" suppress-title="false" pn="figure-8">
<name slugifiedName="name-cgn-public-ip-address-alloca">CGN Public IP Address Allocation</name>
<artwork name="" type="" align="left" alt="" pn="section-4.2.4-7.1">
UP CP
| CGN Address Allocation |
| Request |
1.1|-------- via Ci--------->|
| CGN Address Allocation |
| Response |
1.2|<------- via Ci----------|
| |
| CGN Address Renew |
| Request |
2.1|-------- via Ci--------->|
| CGN Address Renew |
| Response |
2.2|<------- via Ci----------|
| |
| CGN Address Release |
| Request |
3.1|-------- via Ci--------->|
| CGN Address Release |
| Response |
3.3|<------- via Ci----------|
| |</artwork>
</figure>
</section>
<section anchor="sect-4.2.5" numbered="true" toc="include" removeInRFC="false" pn="section-4.2.5">
<name slugifiedName="name-data-synchronization-betwee">Data Synchronization between the CP and UP</name>
<t pn="section-4.2.5-1">
For a CU-separated BNG, the UP will continue to function using the
state that has been installed in it even if the CP fails or the
session between the UP and CP fails.</t>
<t pn="section-4.2.5-2">
Under some circumstances, it is necessary to synchronize state
between the CP and UP, for example, if a CP fails and the UP is
switched to a different CP.</t>
<t pn="section-4.2.5-3">
Synchronization includes two directions. One direction is from UP to
CP; in that case, the synchronization information is mainly about the
board/interface status of the UP. The other direction is from CP to
UP; in that case, the subscriber sessions, subscriber network routes,
L2TP tunnels, etc., will be synchronized to the UP.</t>
<t pn="section-4.2.5-4">
The synchronization is triggered by a Sync_Request message, to which
the receiver will (1) reply with a Sync_Begin message to notify the
requester that synchronization will begin and (2) then start the
synchronization using the Sync_Data message. When synchronization
finishes, a Sync_End message will be sent.</t>
<t pn="section-4.2.5-5">
<xref target="fig9" format="default" sectionFormat="of" derivedContent="Figure 9"/> shows the process of data synchronization
between a UP and a CP.</t>
<figure anchor="fig9" align="left" suppress-title="false" pn="figure-9">
<name slugifiedName="name-data-synchronization">Data Synchronization</name>
<artwork name="" type="" align="left" alt="" pn="section-4.2.5-6.1">
UP CP
| Synchronization Request |
|<------- via Ci----------|
| |
| Synchronization Begin |
|-------- via Ci--------->|
| |
| Board/Interface Report |
|-------- via Ci--------->|
| |
| Synchronization End |
|-------- via Ci--------->|
| |
1) Synchronization from UP to CP
UP CP
| Synchronization Request |
|-------- via Ci--------->|
| |
| Synchronization Begin |
|<-------- via Ci---------|
| |
| Synchronizes |
|Subscriber Session States|
| Network Route Entries |
|<------- via Ci----------|
| |
| Synchronization End |
|<-------- via Ci---------|
| |
2) Synchronization from CP to UP </artwork>
</figure>
</section>
</section>
<section anchor="sect-4.3" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
<name slugifiedName="name-subscriber-session-procedur">Subscriber Session Procedures</name>
<t pn="section-4.3-1">
A subscriber session consists of a set of forwarding states, policies, and
security rules that are applied to the subscriber. It is used for
forwarding subscriber traffic in a UP. To initialize a session on a UP, a
collection of hardware resources (e.g., NP, TCAM, etc.) has to be allocated to
a session on a UP as part of its initiation.</t>
<t pn="section-4.3-2">
Procedures related to subscriber sessions include subscriber session creation,
update, deletion, and statistics reporting. The following subsections give a
high-level view of the procedures.</t>
<section anchor="sect-4.3.1" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.1">
<name slugifiedName="name-create-subscriber-session">Create Subscriber Session</name>
<t pn="section-4.3.1-1">
The sequence below (<xref target="fig10" format="default" sectionFormat="of" derivedContent="Figure 10"/>) describes the DHCP IPv4 dial-up process. It is an
example that shows how a subscriber session is created. (An example
for IPv6 appears in <xref target="sect-5.1.2" format="default" sectionFormat="of" derivedContent="Section 5.1.2"/>.)</t>
<figure anchor="fig10" align="left" suppress-title="false" pn="figure-10">
<name slugifiedName="name-creating-a-subscriber-sessi">Creating a Subscriber Session</name>
<artwork name="" type="" align="left" alt="" pn="section-4.3.1-2.1">
RG UP CP AAA
| Online Request| | |
1|-------------->| | |
| |Relay the Online Request| |
| 2|-----to CP via Si------>| Authentication|
| | | Req/Rep |
| | 3|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 4|<--------via Ci---------| |
| | | |
| | Create Subscriber | |
| | Session Response | |
| 5|---------via Ci-------->| |
| | | Accounting |
| | 6|<------------->|
| | Send Online Response | |
| 7|<----to UP via Si-------| |
| | | |
|Online Response| | |
8|<--------------| | |
| | | |</artwork>
</figure>
<t pn="section-4.3.1-3">
The request starts from an Online Request message (step 1) from the
RG (for example, a DHCP Discovery packet). When the UP receives the
Online Request from the RG, it will tunnel the Online Request to the
CP through the Si (step 2). A tunneling technology
implements the Si.</t>
<t pn="section-4.3.1-4">
When the CP receives the Online Request from the UP, it will send an
authentication request to the AAA server to authenticate and
authorize the subscriber (step 3). When a positive reply is received
from the AAA server, the CP starts to create a subscriber session for
the request. Relevant resources (e.g., IP address, bandwidth, etc.)
will be allocated to the subscriber. Policies and security rules will
be generated for the subscriber. Then the CP sends a request to
create a session to the UP through the Ci (step
4), and a response is expected from the UP to confirm the creation
(step 5).</t>
<t pn="section-4.3.1-5">
Finally, the CP will notify the AAA server to start accounting (step
6). At the same time, an Online Response message (for example, a
DHCP Ack packet) will be sent to the UP through the Si (step 7).
The UP will then forward the Online Response to the RG (step 8).</t>
<t pn="section-4.3.1-6">
That completes the subscriber activation process.</t>
</section>
<section anchor="sect-4.3.2" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.2">
<name slugifiedName="name-update-subscriber-session">Update Subscriber Session</name>
<t pn="section-4.3.2-1">
The following numbered sequence (<xref target="fig11" format="default" sectionFormat="of" derivedContent="Figure 11"/>) shows the process of updating the
subscriber session.</t>
<figure anchor="fig11" align="left" suppress-title="false" pn="figure-11">
<name slugifiedName="name-updating-a-subscriber-sessi">Updating a Subscriber Session</name>
<artwork name="" type="" align="left" alt="" pn="section-4.3.2-2.1">
UP CP AAA
| | CoA Request |
| 1|<--------------|
| Session Update Request | |
2|<--------via Ci---------| |
| | |
| Session Update Response| |
3|---------via Ci-------->| |
| | CoA Response |
| 4|-------------->|
| | |</artwork>
</figure>
<t pn="section-4.3.2-3">
When a subscriber session has been created on a UP, there may be
requirements to update the session with new parameters (e.g.,
bandwidth, QoS, policies, etc.).</t>
<t pn="section-4.3.2-4">
This procedure is triggered by a Change of Authorization (CoA)
request message sent by the AAA server. The CP will update the
session on the UP according to the new parameters through the Ci.</t>
</section>
<section anchor="sect-4.3.3" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.3">
<name slugifiedName="name-delete-subscriber-session">Delete Subscriber Session</name>
<t pn="section-4.3.3-1">
The call flow below shows how S-CUSP deals with a subscriber Offline
Request.</t>
<figure anchor="fig12" align="left" suppress-title="false" pn="figure-12">
<name slugifiedName="name-deleting-a-subscriber-sessi">Deleting a Subscriber Session</name>
<artwork name="" type="" align="left" alt="" pn="section-4.3.3-2.1">
RG UP CP
|Offline Request | |
1|--------------->| |
| | Relay the Offline |
| | Request |
| 2|------to CP via Si----->|
| | |
| | Send the Offline |
| | Response |
| 3|<-----to UP via Si------|
|Offline Response| |
4|<---------------| |
| | Session Delete |
| | Request |
| |<--------via Ci---------|
| | Session Delete |
| | Response |
| |---------via Ci-------->|
| | |</artwork>
</figure>
<t pn="section-4.3.3-3">
Similar to the session creation process, when a UP receives an
Offline Request from an RG, it will tunnel the request to a CP
through the Si.</t>
<t pn="section-4.3.3-4">
When the CP receives the Offline Request, it will withdraw/release
the resources (e.g., IP address, bandwidth) that have been allocated
to the subscriber. It then sends a reply to the UP through the
Si, and the UP will forward the reply to the RG. At
the same time, it will delete all the status of the session on the UP
through the Ci.</t>
</section>
<section anchor="sect-4.3.4" numbered="true" toc="include" removeInRFC="false" pn="section-4.3.4">
<name slugifiedName="name-subscriber-session-events-r">Subscriber Session Events Report</name>
<figure anchor="fig13" align="left" suppress-title="false" pn="figure-13">
<name slugifiedName="name-events-report">Events Report</name>
<artwork name="" type="" align="left" alt="" pn="section-4.3.4-1.1">
UP CP
| Statistic/Detect Report|
|---------via Ci-------->|
| |</artwork>
</figure>
<t pn="section-4.3.4-2">
When a session is created on a UP, the UP will periodically report statistics
information and subscriber detection results of the session to the CP. </t>
</section>
</section>
</section>
<section anchor="sect-5" numbered="true" toc="include" removeInRFC="false" pn="section-5">
<name slugifiedName="name-s-cusp-call-flows">S-CUSP Call Flows</name>
<t pn="section-5-1">
The subsections below give an overview of various "dial-up"
interactions over the Si followed by an overview of
the setting of information in the UP by the CP using S-CUSP over the
Ci.</t>
<t pn="section-5-2">
S-CUSP messages are described in this document using Routing Backus
Naur Form (RBNF) as defined in <xref target="RFC5511" format="default" sectionFormat="of" derivedContent="RFC5511"/>.</t>
<section anchor="sect-5.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
<name slugifiedName="name-ipoe">IPoE</name>
<section anchor="sect-5.1.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.1">
<name slugifiedName="name-dhcpv4-access">DHCPv4 Access</name>
<t pn="section-5.1.1-1">The following sequence (<xref target="fig14" format="default" sectionFormat="of" derivedContent="Figure 14"/>) shows detailed procedures for DHCPv4 access.</t>
<figure anchor="fig14" align="left" suppress-title="false" pn="figure-14">
<name slugifiedName="name-dhcpv4-access-2">DHCPv4 Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.1.1-2.1">
RG UP CP AAA
| DHCP Discovery| | |
1|-------------->| | |
| |Relay the DHCP Discovery| |
| 2|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 3|<------------->|
| | Send the DHCP Offer | |
| 4|<----to UP via Si-------| |
| DHCP Offer | | |
5|<--------------| | |
| DHCP Request | | |
6|-------------->| | |
| | Relay the DHCP Request | |
| 7|-----to CP via Si------>| |
| | | |
| | Create Subscriber | |
| | Session Request | |
| 8|<--------via Ci---------| |
| | Create Subscriber | |
| | Session Response | |
| 9|---------via Ci-------->| |
| | | Accounting |
| | 10|<------------->|
| | Send DHCP ACK | |
| 11|<----to UP via Si-------| |
| | | |
| DHCP ACK | | |
12|<--------------| | |
| | | |</artwork>
</figure>
<t pn="section-5.1.1-3">
S-CUSP implements steps 8 and 9.</t>
<t pn="section-5.1.1-4">
After a subscriber is authenticated and authorized by the AAA server,
the CP creates a new subscriber session on the UP. This is achieved
by sending an Update_Request message to the UP.</t>
<t pn="section-5.1.1-5">
The format of the Update_Request message is shown as follows using
RBNF:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.1-6">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
</sourcecode>
<t pn="section-5.1.1-7">
The UP will reply with an Update_Response message. The format of the
Update_Response message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.1-8">
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
</section>
<section anchor="sect-5.1.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.2">
<name slugifiedName="name-dhcpv6-access">DHCPv6 Access</name>
<t pn="section-5.1.2-1"> The following sequence (<xref target="fig15" format="default" sectionFormat="of" derivedContent="Figure 15"/>) shows detailed procedures for DHCPv6 access.
</t>
<figure anchor="fig15" align="left" suppress-title="false" pn="figure-15">
<name slugifiedName="name-dhcpv6-access-2">DHCPv6 Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.1.2-2.1">
RG UP CP AAA
| Solicit | | |
1|-------------->| | |
| | Relay the Solicit | |
| 2|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 3|<------------->|
| | Send the Advertise | |
| 4|<----to UP via Si-------| |
| Advertise | | |
5|<--------------| | |
| | | |
| Request | | |
6|-------------->| | |
| | Relay the Request | |
| 7|-----to CP via Si------>| |
| | | |
| | Create Subscriber | |
| | Session Request | |
| 8|<--------via Ci-------->| |
| | | |
| | Create Subscriber | |
| | Session Response | |
| 9|---------via Ci-------->| |
| | | Accounting |
| | 10|<------------->|
| | Send Reply | |
| 11|<----to UP via Si-------| |
| Reply | | |
12|<--------------| | |
| | | |</artwork>
</figure>
<t pn="section-5.1.2-3">
Steps 1-7 are a standard DHCP IPv6 access process. The subscriber
creation is triggered by a DHCP IPv6 request message. When this
message is received, it means that the subscriber has passed the AAA
authentication and authorization. Then the CP will create a
subscriber session on the UP. This is achieved by sending an
Update_Request message to the UP (step 8).</t>
<t pn="section-5.1.2-4">
The format of the Update_Request message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.2-5">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
</sourcecode>
<t pn="section-5.1.2-6">
The UP will reply with an Update_Response message (step 9). The
format of the Update_Response message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.2-7">
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.1.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.3">
<name slugifiedName="name-ipv6-stateless-address-auto">IPv6 Stateless Address Autoconfiguration (SLAAC) Access</name>
<t pn="section-5.1.3-1">The following flow (<xref target="fig16" format="default" sectionFormat="of" derivedContent="Figure 16"/>) shows the IPv6 SLAAC access process.</t>
<figure anchor="fig16" align="left" suppress-title="false" pn="figure-16">
<name slugifiedName="name-ipv6-slaac-access">IPv6 SLAAC Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.1.3-2.1">
RG UP CP AAA
| RS | | |
1|-------------->| | |
| | Relay the Router | |
| | Solicit (RS) | |
| 2|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 3|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 4|<--------via Ci---------| |
| | | |
| | Create Subscriber | |
| | Session Response | |
| 5|---------via Ci-------->| |
| | | |
| | Send Router Advertise | |
| | (RA) | |
| 6|<----to UP via Si-------| |
| RA | | |
7|<--------------| | |
| | | |
| NS | | |
8|-------------->| | |
| | Relay the Neighbor | |
| | Solicit (NS) | |
| 9|-----to CP via Si------>| |
| | | Accounting |
| | 10|<------------->|
| | Send a Neighbor | |
| | Advertise (NA) | |
| 11|<----to UP via Si-------| |
| NA | | |
12|<--------------| | |
| | | |</artwork>
</figure>
<t pn="section-5.1.3-3">
It starts with a Router Solicit (RS) request from an RG that is
tunneled to the CP by the UP. After the AAA authentication and
authorization, the CP will create a subscriber session on the UP.</t>
<t pn="section-5.1.3-4">
This is achieved by sending an Update_Request message to the UP (step
4).</t>
<t pn="section-5.1.3-5">
The format of the Update_Request message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.3-6">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
</sourcecode>
<t pn="section-5.1.3-7">
The UP will reply with an Update_Response message (step 5). The
format of the Update_Response message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.3-8">
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.1.4" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.4">
<name slugifiedName="name-dhcpv6-and-slaac-access">DHCPv6 and SLAAC Access</name>
<t pn="section-5.1.4-1"> The following call flow (<xref target="fig17" format="default" sectionFormat="of" derivedContent="Figure 17"/>) shows the DHCP IPv6 and SLAAC access
process.</t>
<figure anchor="fig17" align="left" suppress-title="false" pn="figure-17">
<name slugifiedName="name-dhcpv6-and-slaac-access-2">DHCPv6 and SLAAC Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.1.4-2.1">
RG UP CP AAA
| RS | | |
1|-------------->| | |
| | Relay the RS | |
| 2|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 3|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 4|<--------via Ci---------| |
| | | |
| | Create Subscriber | |
| | Session Response | |
| 5|---------via Ci-------->| |
| | | |
| | Send RA | |
| 6|<----to UP via Si-------| |
| RA | | |
7|<--------------| | |
| | | |
|DHCPv6 Solicit | | |
8|-------------->| | |
| | Relay DHCPv6 Solicit | |
| 9|-----to CP via Si------>| |
| | | |
| | Update Subscriber | |
| | Session Request | |
| 10|<--------via Ci---------| |
| | | |
| | Update Subscriber | |
| | Session Response | |
| 11|---------via Ci-------->| |
| | | Accounting |
| | 12|<------------->|
| | Send DHCPv6 Reply | |
| 13|<----to UP via Si-------| |
| | | |
| DHCPv6 Reply | | |
14|<--------------| | |
| | | |</artwork>
</figure>
<t pn="section-5.1.4-3">
When a subscriber passes AAA authentication, the CP will create a
subscriber session on the UP. This is achieved by sending an
Update_Request message to the UP (step 4).</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.4-4">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
</sourcecode>
<t pn="section-5.1.4-5">
The UP will reply with an Update_Response message (step 5). The
format of the Update_Response is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.4-6">
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.1.4-7">
After receiving a DHCPv6 Solicit, the CP will update the subscriber
session by sending an Update_Request message with new parameters to
the UP (step 10).</t>
<t pn="section-5.1.4-8">
The format of the Update_Request message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.4-9">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
</sourcecode>
<t pn="section-5.1.4-10">
The UP will reply with an Update_Response message (step 11). The
format of the Update_Response is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.4-11">
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.1.5" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.5">
<name slugifiedName="name-dhcp-dual-stack-access">DHCP Dual-Stack Access</name>
<t pn="section-5.1.5-1">
The following sequence (<xref target="fig18" format="default" sectionFormat="of" derivedContent="Figure 18"/>) is a combination of DHCP IPv4 and DHCP IPv6
access processes.</t>
<figure anchor="fig18" align="left" suppress-title="false" pn="figure-18">
<name slugifiedName="name-dhcp-dual-stack-access-2">DHCP Dual-Stack Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.1.5-2.1">
RG UP CP AAA
| DHCP Discovery| | |
1|-------------->| | |
| |Relay the DHCP Discovery| |
| 2|-----to CP via Si------>| AAA |
| | | Req/Resp |
| | 3|<------------->|
| | Send the DHCP Offer | |
| 4|<----to UP via Si-------| |
| DHCP Offer | | |
5|<--------------| | |
| DHCP Request | | |
6|-------------->| | |
| | Relay the DHCP Request| |
| 7|-----to CP via Si------>| |
| | | |
| | Create Subscriber | |
| | Session Request | |
| 8|<--------via Ci-------->| |
| | Create Subscriber | |
| | Session Response | |
| 9|---------via Ci-------->| |
| | | Accounting |
| | 10|<------------->|
| | Send DHCP ACK | |
| 11|<----to UP via Si-------| |
| DHCP ACK | | |
12|<--------------| | |
| RS | | |
13|-------------->| | |
| | Relay the RS | |
| 14|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 15|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 16|<--------via Ci---------| |
| | Create Subscriber | |
| | Session Response | |
| 17|---------via Ci-------->| |
| | | |
| | Send the RA | |
| 18|<----to UP via Si-------| |
| RA | | |
19|<--------------| | |
|DHCPv6 Solicit | | |
20|-------------->| | |
| | Relay DHCPv6 Solicit | |
| 21|-----to CP via Si------>| |
| | | |
| | Update Subscriber | |
| | Session Request | |
| 22|<--------via Ci---------| |
| | Update Subscriber | |
| | Session Response | |
| 23|---------via Ci-------->| |
| | | Accounting |
| | 24|<------------->|
| | Send DHCPv6 Reply | |
| 25|<----to UP via Si-------| |
| DHCPv6 Reply | | |
26|<--------------| | |
| | | |</artwork>
</figure>
<t pn="section-5.1.5-3">
The DHCP dual-stack access includes three sets of
Update_Request/Update_Response exchanges to create/update a DHCPv4/v6
subscriber session.</t>
<ol spacing="normal" type="(%d)" start="1" pn="section-5.1.5-4">
<li pn="section-5.1.5-4.1" derivedCounter="(1)">
<t pn="section-5.1.5-4.1.1">Create a DHCPv4 session (steps 8 and 9):
</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.5-4.1.2">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
</li>
<li pn="section-5.1.5-4.2" derivedCounter="(2)">
<t pn="section-5.1.5-4.2.1">Create a DHCPv6 session (steps 16 and 17):
</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.5-4.2.2">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</li>
<li pn="section-5.1.5-4.3" derivedCounter="(3)">
<t pn="section-5.1.5-4.3.1">Update DHCPv6 session (steps 22 and 23):
</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.5-4.3.2">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</li>
</ol>
</section>
<section anchor="sect-5.1.6" numbered="true" toc="include" removeInRFC="false" pn="section-5.1.6">
<name slugifiedName="name-l2-static-subscriber-access">L2 Static Subscriber Access</name>
<t pn="section-5.1.6-1">L2 static subscriber access processes are as follows:</t>
<figure anchor="fig19" align="left" suppress-title="false" pn="figure-19">
<name slugifiedName="name-l2-static-subscriber-access-2">L2 Static Subscriber Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.1.6-2.1">
RG UP CP AAA
| | Static Subscriber | |
| | Detection Req. | |
| 1|<-----to UP via Ci------| |
| | Static Subscriber | |
| | Detection Rep. | |
| 2|------to UP via Ci----->| |
| ARP/ND(REQ) | | |
3.1|<--------------| | |
| ARP/ND(ACK) | | |
3.2|-------------->| | |
| | Relay the ARP/ND | |
| 3.3|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 3.4|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 3.5|<--------via Ci---------| |
| | Create Subscriber | |
| | Session Response | |
| 3.6|---------via Ci-------->| |
| ARP/ND(REQ) | | |
4.1|-------------->| | |
| | Relay the ARP/ND | |
| 4.2|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 4.3|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 4.4|<--------via Ci---------| |
| | Create Subscriber | |
| | Session Response | |
| 4.5|---------via Ci-------->| |
| ARP/ND(ACK) | | |
4.6|<--------------| | |
| IP Traffic | | |
5.1|-------------->| | |
| | Relay the IP Traffic | |
| 5.2|-----to CP via Si------>| AAA |
| | | Req/Rep |
| | 5.3|<------------->|
| | Create Subscriber | |
| | Session Request | |
| 5.4|<--------via Ci-------->| |
| | Create Subscriber | |
| | Session Response | |
| 5.5|---------via Ci-------->| |
| ARP/ND(REQ) | | |
5.6|<--------------| | |
| ARP/ND(ACK) | | |
5.7|-------------->| | |
| | | |</artwork>
</figure>
<t pn="section-5.1.6-3">
For L2 static subscriber access, the process starts with a CP
installing a static subscriber detection list on a UP. The list
determines which subscribers will be detected. That is implemented
by exchanging Update_Request and Update_Response messages between CP
and UP. The formats of the messages are as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.6-4">
<Update_Request Message> ::= <Common Header>
<IPv4 Static Subscriber Detect TLVs>
<IPv6 Static Subscriber Detect TLVs>
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.1.6-5">
For L2 static subscriber access, there are three ways to trigger the
access process:</t>
<ol spacing="normal" type="(%d)" start="1" pn="section-5.1.6-6">
<li pn="section-5.1.6-6.1" derivedCounter="(1)"> Triggered by UP (steps 3.1-3.6): This assumes that the UP knows the IP
address, the access interface, and the VLAN of the RG. The UP will
actively trigger the access flow by sending an ARP/ND packet to the RG.
If the RG is online, it will reply with an ARP/ND to the UP. The UP
will tunnel the ARP/ND to the CP through the Si. The CP then triggers
the authentication process. If the authentication result is positive,
the CP will create a corresponding subscriber session on the UP.
</li>
<li pn="section-5.1.6-6.2" derivedCounter="(2)"> Triggered by RG ARP/ND (steps 4.1-4.6): Most of the process is the same as
option 1 (triggered by UP). The difference is that the RG will
actively send the ARP/ND to trigger the process.
</li>
<li pn="section-5.1.6-6.3" derivedCounter="(3)"> Triggered by RG IP traffic (steps 5.1-5.7): This is for the case where
the RG has the ARP/ND information, but the subscriber session on the
UP is lost (e.g., due to failure on the UP or the UP restarting).
That means the RG may keep sending IP packets to the UP. The packets
will trigger the UP to start a new access process.
</li>
</ol>
<t pn="section-5.1.6-7">
From a subscriber session point of view, the procedures and the
message formats for the three cases above are the same, as follows.</t>
<t pn="section-5.1.6-8">IPv4 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.6-9">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.1.6-10">IPv6 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.1.6-11">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
</section>
<section anchor="sect-5.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
<name slugifiedName="name-pppoe">PPPoE</name>
<section anchor="sect-5.2.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.2.1">
<name slugifiedName="name-ipv4-pppoe-access">IPv4 PPPoE Access</name>
<t pn="section-5.2.1-1"><xref target="fig20" format="default" sectionFormat="of" derivedContent="Figure 20"/> shows the IPv4 PPPoE access call flow.
</t>
<figure anchor="fig20" align="left" suppress-title="false" pn="figure-20">
<name slugifiedName="name-ipv4-pppoe-access-2">IPv4 PPPoE Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.2.1-2.1">
RG UP CP AAA
| PPPoE Disc | PPPoE Disc | |
1|<------------->|<---------via Si------->| |
| | | |
| PPP LCP | PPP LCP | |
2|<------------->|<---------via Si------->| |
| | | AAA |
| PPP PAP/CHAP | PPP PAP/CHAP | Req/Rep |
3|<------------->|<---------via Si------->|<------------->|
| | | |
| PPP IPCP | PPP IPCP | |
4|<------------->|<---------via Si------->| |
| | | |
| | Create Subscriber | |
| | Session Request | |
| 5|<--------via Ci---------| |
| | Create Subscriber | |
| | Session Response | |
| 6|---------via Ci-------->| |
| | | Accounting |
| | 7|<------------->|
| | | |</artwork>
</figure>
<t pn="section-5.2.1-3">
In the above sequence, steps 1-4 are the standard PPPoE call flow.
The UP is responsible for redirecting the PPPoE control packets to
the CP or RG. The PPPoE control packets are transmitted between the
CP and UP through the Si.</t>
<t pn="section-5.2.1-4">
After the PPPoE call flow, if the subscriber passed the AAA
authentication and authorization, the CP will create a corresponding
session on the UP through the Ci. The formats of the messages are as
follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.2.1-5">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
</section>
<section anchor="sect-5.2.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.2.2">
<name slugifiedName="name-ipv6-pppoe-access">IPv6 PPPoE Access</name>
<t pn="section-5.2.2-1"><xref target="fig21" format="default" sectionFormat="of" derivedContent="Figure 21"/> describes the IPv6 PPPoE access call flow.</t>
<figure anchor="fig21" align="left" suppress-title="false" pn="figure-21">
<name slugifiedName="name-ipv6-pppoe-access-2">IPv6 PPPoE Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.2.2-2.1">
RG UP CP AAA
| PPPoE Disc | PPPoE Disc | |
1|<------------->|<--------via Si-------->| |
| | | |
| PPP LCP | PPP LCP | |
2|<------------->|<---------via Si------->| |
| | | AAA |
| PPP PAP/CHAP | PPP PAP/CHAP | Req/Rep |
3|<------------->|<---------via Si------->|<------------->|
| | | |
| PPP IP6CP | PPP IP6CP | |
4|<------------->|<---------via Si------->| |
| | | |
| | Create Subscriber | |
| | Session Request | |
| 5|<--------via Ci---------| |
| | Create Subscriber | |
| | Session Response | |
| 6|---------via Ci-------->| |
| | | |
| ND Negotiation| ND Negotiation | |
7|<------------->|<---------via Si------->| |
| | | |
| | Update Subscriber | |
| | Session Request | |
| 8|<--------via Ci---------| |
| | Update Subscriber | |
| | Session Response | |
| 9|---------via Ci-------->| |
| | | Accounting |
| | 10|<------------->|
| DHCPv6 | DHCPv6 | |
| Negotiation | Negotiation | |
7'|<------------->|<---------via Si------->| |
| | | |
| | Update Subscriber | |
| | Session Request | |
| 8'|<---------via Ci--------| |
| | Update Subscriber | |
| | Session Response | |
| 9'|---------via Ci-------->| |
| | | Accounting |
| | 10'|<------------->|
| | | |</artwork>
</figure>
<t pn="section-5.2.2-3">
From the above sequence, steps 1-4 are the standard PPPoE call flow.
The UP is responsible for redirecting the PPPoE control packets to
the CP or RG. The PPPoE control packets are transmitted between the
CP and UP through the Si.</t>
<t pn="section-5.2.2-4">
After the PPPoE call flow, if the subscriber passed the AAA
authentication and authorization, the CP will create a corresponding
session on the UP through the Ci. The formats of the messages are as
follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.2.2-5">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.2.2-6">
Then, the RG will initialize an ND/DHCPv6 negotiation process with
the CP (see steps 7 and 7'); after that, it will trigger an update
(steps 8-9 and 8'-9') to the subscriber session. The formats of the update
messages are as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.2.2-7">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.2.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.2.3">
<name slugifiedName="name-pppoe-dual-stack-access">PPPoE Dual-Stack Access</name>
<t pn="section-5.2.3-1">
<xref target="fig22" format="default" sectionFormat="of" derivedContent="Figure 22"/> shows a combination of IPv4 and IPv6 PPPoE
access call flows.</t>
<figure anchor="fig22" align="left" suppress-title="false" pn="figure-22">
<name slugifiedName="name-pppoe-dual-stack-access-2">PPPoE Dual-Stack Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.2.3-2.1">
RG UP CP AAA
|PPPoE Discovery| PPPoE Discovery | |
1|<------------->|<---------via Si------->| |
| | | |
| PPP LCP | PPP LCP | |
2|<------------->|<---------via Si------->| |
| | | AAA |
| PPP PAP/CHAP | PPP PAP/CHAP | Req/Rep |
3|<------------->|<---------via Si------->|<------------->|
| | | |
| PPP IPCP | PPP IPCP | |
4|<------------->|<---------via Si------->| |
| | | |
| | Create v4 Subscriber | |
| | Session Request | |
| 5|<--------via Ci---------| |
| | Create v4 Subscriber | |
| | Session Response | |
| 6|---------via Ci-------->| |
| | | Accounting |
| | 7|<------------->|
| PPP IP6CP | PPP IP6CP | |
4'|<------------->|<---------via Si------->| |
| | | |
| | Create V6 Subscriber | |
| | Session Request | |
| 5'|<--------via Ci---------| |
| | Create v6 Subscriber | |
| | Session Response | |
| 6'|---------via Ci-------->| |
| | | |
| ND Negotiation| ND Negotiation | |
8|<------------->|<---------via Si------->| |
| | | |
| | Update v6 Subscriber | |
| | Session Request | |
| 9|<---------via Ci--------| |
| | Update v6 Subscriber | |
| | Session Response | |
| 10|---------via Ci-------->| |
| | | Accounting |
| | 7'|<------------->|
| DHCPv6 | DHCPv6 | |
| Negotiation | Negotiation | |
8'|<------------->|<---------via Si------->| |
| | | |
| | Update v6 Subscriber | |
| | Session Request | |
| 9'|<--------via Ci---------| |
| | Update v6 Subscriber | |
| | Session Response | |
| 10'|---------via Ci-------->| |
| | | Accounting |
| | 7"|<------------->|
| | | |</artwork>
</figure>
<t pn="section-5.2.3-3">
PPPoE dual stack is a combination of IPv4 PPPoE and IPv6 PPPoE
access. The process is as above. The formats of the messages are as
follows:</t>
<ol spacing="normal" type="(%d)" start="1" pn="section-5.2.3-4">
<li pn="section-5.2.3-4.1" derivedCounter="(1)">
<t pn="section-5.2.3-4.1.1"> Create an IPv4 PPPoE subscriber session (steps 5-6):
</t>
<sourcecode type="rbnf" markers="false" pn="section-5.2.3-4.1.2">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
</li>
<li pn="section-5.2.3-4.2" derivedCounter="(2)">
<t pn="section-5.2.3-4.2.1"> Create an IPv6 PPPoE subscriber session (steps 5'-6'):
</t>
<sourcecode type="rbnf" markers="false" pn="section-5.2.3-4.2.2">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</li>
<li pn="section-5.2.3-4.3" derivedCounter="(3)">
<t pn="section-5.2.3-4.3.1"> Update the IPv6 PPPoE subscriber session (steps 9-10 and 9'-10'):
</t>
<sourcecode type="rbnf" markers="false" pn="section-5.2.3-4.3.2">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</li>
</ol>
</section>
</section>
<section anchor="sect-5.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
<name slugifiedName="name-wlan-access">WLAN Access</name>
<t pn="section-5.3-1"><xref target="fig23" format="default" sectionFormat="of" derivedContent="Figure 23"/> shows the WLAN access call flow.</t>
<figure anchor="fig23" align="left" suppress-title="false" pn="figure-23">
<name slugifiedName="name-wlan-access-2">WLAN Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.3-2.1">
RG UP CP AAA Web Server
| DHCP | | | |
| Discovery | | | |
1|------------>| | | |
| | DHCP Discovery | | |
| 2|-----via Si---->| AAA | |
| | DHCP Offer |<-------->| |
| 3|<----via Si-----| | |
| DHCP Offer | | | |
4|<------------| | | |
| DHCP Request| | | |
5|------------>| | | |
| | DHCP Request | | |
| 6|-----via Si---->| | |
| | | | |
| | Create Session | | |
| | Request | | |
| 7|<----via Ci-----| | |
| | Create Session | | |
| | Response | | |
| 8|----via Ci----->| | |
| | | | |
| | DHCP ACK | | |
| 9|<----via Si-----| | |
| DHCP ACK | | | |
10|<------------| | | |
| | | | |
| Subscriber | | | |
| HTTP Traffic| | | |
11|------------>|--> | | |
| | | Web URL | | |
| Traffic | | Redirect | | |
| Redirection | | | | |
12|<------------|<-+ | | |
| |
13|-----------------Redirect to Web Server------------->|
| |
14|<----------------Push HTTP Log-in Page---------------|
| |
15|-----------------User Authentication---------------->|
| |
| | | Portal Interchange |
| | 16|<-------------------->|
| | | |
| | | AAA | |
| | | Req/Rep | |
| | 17|<-------->| |
| | | | |
| | Update Session | | |
| | Request | | |
| 18|<----via Ci-----| | |
| | Update Session | | |
| | Response | | |
| 19|-----via Ci---->| | |
| | | | |</artwork>
</figure>
<t pn="section-5.3-3">
WLAN access starts with the DHCP dial-up process (steps 1-6). After
that, the CP will create a subscriber session on the UP (steps 7-8).
The formats of the session creation messages are as follows:</t>
<t pn="section-5.3-4">IPv4 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.3-5">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.3-6">IPv6 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.3-7">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.3-8">
After step 10, the RG will be allocated an IP address, and its first
HTTP packet will be redirected to a web server for subscriber
authentication (steps 11-17). After the web authentication, if the
result is positive, the CP will update the subscriber session by
using the following message exchanges:</t>
<t pn="section-5.3-9">IPv4 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.3-10">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.3-11">IPv6 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.3-12">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.4" numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
<name slugifiedName="name-l2tp">L2TP</name>
<section anchor="sect-5.4.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.1">
<name slugifiedName="name-l2tp-lac-access">L2TP LAC Access</name>
<figure anchor="fig24" align="left" suppress-title="false" pn="figure-24">
<name slugifiedName="name-l2tp-lac-access-2">L2TP LAC Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.4.1-1.1">
RG UP(LAC) CP(LAC) AAA LNS
| PPPoE | PPPoE | | |
| Discovery | Discovery | | |
1|<---------->|<---via Si--->| | |
| | | | |
| PPP LCP | PPP LCP | | |
2|<---------->|<---via Si--->| | |
| | | AAA | |
|PPP PAP/CHAP| PPP PAP/CHAP | Req/Rep| |
3|<---------->|<---via Si--->|<------>| |
| | | | |
| PPP IPCP | PPP IPCP | | |
4|<---------->|<---via Si--->| | |
| | | | |
| | L2TP Tunnel | | |
| | Negotiation | | |
| | SCCRQ/ | | |
| | SCCRP/ | | |
| | SCCCN | | |
| 5|<---via Si--->| | |
| | /\ |
| | || Forward |
| | \/ |
| |<-----------via Routing---------->|
| | |
| | L2TP Session | | |
| | Negotiation | | |
| | ICRQ/ | | |
| | ICRP/ | | |
| | ICCN | | |
| 6|<---via Si--->| | |
| | /\ |
| | || Forward |
| | \/ |
| |<-----------via Routing---------->|
| | |
| | Create | | |
| | Subscriber | | |
| | Session Req | | |
| 7|<---via Ci----| | |
| | Create | | |
| | Subscriber | | |
| | Session Rep | | |
| 8|----via Ci--->| | |
| | | | |
| |
| PAP/CHAP (Triggered by LNS) |
9|<-----------------via Routing----------------->|
| |</artwork>
</figure>
<t pn="section-5.4.1-2">
Steps 1-4 are a standard PPPoE access process. After that, the LAC-CP
starts to negotiate an L2TP session and tunnel with the LNS. After the
negotiation, the CP will create an L2TP LAC subscriber session on the UP
through the following messages:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.4.1-3">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<L2TP-LAC Subscriber TLV>
<L2TP-LAC Tunnel TLV>
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.4.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.2">
<name slugifiedName="name-l2tp-lns-ipv4-access">L2TP LNS IPv4 Access</name>
<figure anchor="fig25" align="left" suppress-title="false" pn="figure-25">
<name slugifiedName="name-l2tp-lns-ipv4-access-2">L2TP LNS IPv4 Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.4.2-1.1">
RG LAC UP(LNS) AAA CP(LNS)
| PPPoE | | | |
| Discovery | | | |
1|<---------->| | | |
| | | | |
| PPP LCP | | | |
2|<---------->| | |
| | AAA | |
|PPP PAP/CHAP| Req/Rep | |
3|<---------->|<--------------------->| |
| | |
| | L2TP Tunnel | L2TP Tunnel |
| | Negotiation | Negotiation |
| | SCCRQ/ | SCCRQ/ |
| | SCCRP/ | SCCRP/ |
| | SCCCN | SCCCN |
| 4|<------------>|<------via Si----->|
| | | |
| | L2TP Session | L2TP Session |
| | Negotiation | Negotiation |
| | ICRQ/ | ICRQ/ |
| | ICRP/ | ICRP/ |
| | ICCN | ICCN |
| 5|<------------>|<------via Si----->|
| | | |
| | | Create Subscriber |
| | | Session Request |
| | 6|<-----via Ci-------|
| | | Create Subscriber |
| | | Session Response |
| | 7|------via Ci------>|
| |
| PAP/CHAP (Triggered by LNS) |
8|<--------------------------------------------->|
| |
| | | | AAA |
| | | | Req/Rep |
| | | 9|<-------->|
| | | |
| |
| PPP IPCP |
10|<--------------------------------------------->|
| |
| | | Update Subscriber |
| | | Session Request |
| | 11|<-----via Ci-------|
| | | Update Subscriber |
| | | Session Response |
| | 12|------via Ci------>|
| | | |</artwork>
</figure>
<t pn="section-5.4.2-2">
In this case, the BNG is running as an LNS and separated into LNS-CP
and LNS-UP. Steps 1-5 finish the normal L2TP dial-up process. When
the L2TP session and tunnel negotiations are finished, the LNS-CP
will create an L2TP LNS subscriber session on the LNS-UP. The format
of the messages is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.4.2-3">
<Update_Request Message> ::= <Common Header>
<L2TP-LNS Subscriber TLV>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
<L2TP-LNS Tunnel TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.4.2-4">
After that, the LNS-CP will trigger a AAA authentication. If the
authentication result is positive, a PPP IP Control Protocol (IPCP) process
will follow, and
then the CP will update the session with the following message
exchanges:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.4.2-5">
<Update_Request Message> ::= <Common Header>
<L2TP-LNS Subscriber TLV>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
<L2TP-LNS Tunnel TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
</section>
<section anchor="sect-5.4.3" numbered="true" toc="include" removeInRFC="false" pn="section-5.4.3">
<name slugifiedName="name-l2tp-lns-ipv6-access">L2TP LNS IPv6 Access</name>
<figure anchor="fig26" align="left" suppress-title="false" pn="figure-26">
<name slugifiedName="name-l2tp-lns-ipv6-access-2">L2TP LNS IPv6 Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.4.3-1.1">
RG LAC UP(LNS) AAA CP(LNS)
| PPPoE | | | |
| Discovery | | | |
1|<---------->| | | |
| | | | |
| PPP LCP | | | |
2|<---------->| | |
| | AAA | |
|PPP PAP/CHAP| Req/Rep | |
3|<---------->|<--------------------->| |
| | |
| | L2TP Tunnel | L2TP Tunnel |
| | Negotiation | Negotiation |
| | SCCRQ/ | SCCRQ/ |
| | SCCRP/ | SCCRP/ |
| | SCCCN | SCCCN |
| 4|<------------>|<------via Si----->|
| | | |
| | L2TP Session | L2TP Session |
| | Negotiation | Negotiation |
| | ICRQ/ | ICRQ/ |
| | ICRP/ | ICRP/ |
| | ICCN | ICCN |
| 5|<------------>|<------via Si----->|
| | | |
| | | Create Subscriber |
| | | Session Request |
| | 6|<-----via Ci-------|
| | | Create Subscriber |
| | | Session Response |
| | 7|------via Ci------>|
| |
| PAP/CHAP (Triggered by LNS) |
8|<--------------------------------------------->|
| |
| | | | AAA |
| | | | Req/Rep |
| | | 9|<-------->|
| | | | |
| |
| PPP IP6CP |
10|<--------------------------------------------->|
| |
| | | Update Subscriber |
| | | Session Request |
| | 11|<-----via Ci-------|
| | | Update Subscriber |
| | | Session Response |
| | 12|------via Ci------>|
| | |
| ND Negotiation | ND Negotiation |
13|<------------------------->|<-----via Si------>|
| | |
| | | Update Subscriber |
| | | Session Request |
| | 14|<-----via Ci-------|
| | | Update Subscriber |
| | | Session Response |
| | 15|------via Ci------>|
| | | |</artwork>
</figure>
<t pn="section-5.4.3-2">
Steps 1-12 are the same as L2TP LNS IPv4 access. Steps 1-5
finish the normal L2TP dial-up process. When the L2TP session and
tunnel negotiations are finished, the LNS-CP will create an L2TP LNS
subscriber session on the LNS-UP. The format of the messages is as
follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.4.3-3">
<Update_Request Message> ::= <Common Header>
<L2TP-LNS Subscriber TLV>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
<L2TP-LNS Tunnel TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.4.3-4">
After that, the LNS-CP will trigger a AAA authentication. If the
authentication result is positive, a PPP IP6CP process will follow, and
then the CP will update the session with the following message
exchanges:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.4.3-5">
<Update_Request Message> ::= <Common Header>
<L2TP-LNS Subscriber TLV>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
<L2TP-LNS Tunnel TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.4.3-6">
Then, an ND negotiation will be triggered by the RG. After the ND
negotiation, the CP will update the session with the following
message exchanges:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.4.3-7">
<Update_Request Message> ::= <Common Header>
<L2TP-LAC Subscriber TLV>
<Basic Subscriber TLV>
<PPP Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
<L2TP-LNS Tunnel TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
</section>
<section anchor="sect-5.5" numbered="true" toc="include" removeInRFC="false" pn="section-5.5">
<name slugifiedName="name-cgn-carrier-grade-nat">CGN (Carrier Grade NAT)</name>
<figure anchor="fig27" align="left" suppress-title="false" pn="figure-27">
<name slugifiedName="name-cgn-access">CGN Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.5-1.1">
RG UP CP AAA
| | Public Address Block | |
| | Allocation Request | |
| 1|<--------via Ci-------->| |
| | Public Address Block | |
| | Allocation Reply | |
| 2|---------via Ci-------->| |
| Subscriber | | |
| Access Request| Subscriber | |
3|-------------->| Access Request | |
| 4|----------via Si------->| |
| | | AAA |
| | Subscriber | Req/Rep |
| Subscriber | Access Reply 5|<------------->|
| Access Reply 6|<---------via Si--------| |
7|<--------------| | |
| | Create Subscriber | |
| | Session Request | |
| 8|<--------via Ci---------| |
| | | |
| | Create Subscriber | |
| | Session Response | |
| | (with NAT information) | |
| 9|---------via Ci-------->| |
| | | Accounting |
| | | with source |
| | | information |
| | 10|<------------->|
| | | Public IP + |
| | | Port Range |
| | | to Private IP|
| | | Mapping |
| | | |</artwork>
</figure>
<t pn="section-5.5-2">
The first steps allocate one or more CGN address blocks to the UP
(steps 1-2). This is achieved by the following message exchanges
between CP and UP:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.5-3">
<Addr_Allocation_Req Message> ::= <Common Header>
<Address Allocation Request TLV>
<Addr_Allocation_Ack Message> ::= <Common Header>
<Address Allocation Response TLV>
</sourcecode>
<t pn="section-5.5-4">
Steps 3-9 show the general dial-up process in the case of CGN mode.
The specific processes (e.g., IPoE, PPPoE, L2TP, etc.) are defined in
above sections.</t>
<t pn="section-5.5-5">
If a subscriber is a CGN subscriber, once the subscriber session is
created/updated, the UP will report the NAT information to the CP.
This is achieved by carrying the Subscriber CGN Port Range TLV in
the Update_Response message.</t>
</section>
<section anchor="sect-5.6" numbered="true" toc="include" removeInRFC="false" pn="section-5.6">
<name slugifiedName="name-l3-leased-line-access">L3 Leased Line Access</name>
<section anchor="sect-5.6.1" numbered="true" toc="include" removeInRFC="false" pn="section-5.6.1">
<name slugifiedName="name-web-authentication">Web Authentication</name>
<figure anchor="fig28" align="left" suppress-title="false" pn="figure-28">
<name slugifiedName="name-web-authentication-based-l3">Web Authentication-Based L3 Leased Line Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.6.1-1.1">
RG UP CP AAA Web Server
| User traffic| | | |
1|------------>| | | |
| | User traffic | | |
| 2|-----via Si---->| AAA | |
| | | Req/Rep | |
| | 3|<-------->| |
| | Create Session | | |
| | Request | | |
| 4|<----via Ci-----| | |
| | Create Session | | |
| | Response | | |
| 5|----via Ci----->| | |
| | | | |
| HTTP traffic| | | |
6|------------>| | | |
| | | | |
| Redirect to | | | |
| Web URL | | | |
7|<------------| | | |
| | | | |
| |
8|-----------------Redirected to Web Server----------->|
| |
9|<----------------Push HTTP Log-in Page---------------|
| |
10|-----------------User Authentication---------------->|
| |
| | | Portal Interchange |
| | 11|<-------------------->|
| | | |
| | | AAA | |
| | | Req/Rep | |
| | 12|<-------->| |
| | | | |
| | Update Session | | |
| | Request | | |
| 13|<----via Ci-----| | |
| | Update Session | | |
| | Response | | |
| 14|----via Ci----->| | |
| | | | |</artwork>
</figure>
<t pn="section-5.6.1-2">
In this case, IP traffic from the RG will trigger the CP to
authenticate the RG by checking the source IP and the exchanges with
the AAA server. Once the RG has passed the authentication, the CP will
create a corresponding subscriber session on the UP through the
following message exchanges:</t>
<t pn="section-5.6.1-3">IPv4 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.6.1-4">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.6.1-5">IPv6 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.6.1-6">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
<t pn="section-5.6.1-7">
Then, the HTTP traffic from the RG will be redirected to a web server
to finish the web authentication. Once the web authentication is
passed, the CP will trigger another AAA authentication. After the
AAA authentication, the CP will update the session with the following
message exchanges:</t>
<t pn="section-5.6.1-8">IPv4 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.6.1-9">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.6.1-10">IPv6 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.6.1-11">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
<section anchor="sect-5.6.2" numbered="true" toc="include" removeInRFC="false" pn="section-5.6.2">
<name slugifiedName="name-user-traffic-trigger">User Traffic Trigger</name>
<figure anchor="fig29" align="left" suppress-title="false" pn="figure-29">
<name slugifiedName="name-user-traffic-triggered-l3-l">User Traffic Triggered L3 Leased Line Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.6.2-1.1">
RG UP CP AAA
| | L3 access | |
| | control list | |
| 1|<----via Ci-----| |
| User | | |
| traffic | | |
2|------------>| | |
| | User traffic | |
| 3|-----via Si---->| |
| | | AAA |
| | | Req/Rep |
| | 4|<-------->|
| | | |
| | Create Session | |
| | Request | |
| 5|<----via Ci-----| |
| | Create Session | |
| | Response | |
| 6|----via Ci----->| |
| | | |</artwork>
</figure>
<t pn="section-5.6.2-2">
In this case, the CP must install on the UP an access
control list, which is used by the UP to determine whether or not
an RG is legal. If the traffic is from a legal RG, it will be
redirected to the CP though the Si. The CP will trigger a AAA
interchange with the AAA server. After that, the CP will create a
corresponding subscriber session on the UP with the following message
exchanges:</t>
<t pn="section-5.6.2-3">IPv4 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.6.2-4">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.6.2-5">IPv6 Case:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.6.2-6">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
[<Subscriber Policy TLV>]
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
</section>
<section anchor="sect-5.7" numbered="true" toc="include" removeInRFC="false" pn="section-5.7">
<name slugifiedName="name-multicast-service-access">Multicast Service Access</name>
<figure anchor="fig30" align="left" suppress-title="false" pn="figure-30">
<name slugifiedName="name-multicast-access">Multicast Access</name>
<artwork name="" type="" align="left" alt="" pn="section-5.7-1.1">
RG UP CP AAA
| User Access | User Access | AAA |
| Request | Request | Req/Rep |
1|<----------->|<----via Si---->|<-------->|
| | | |
| | Create Session | |
| | Request | |
| 2|<----via Ci---->| |
| | | |
| | Create Session | |
| | Response | |
| 3|----via Ci----->| |
| | | |
| Multicast | | |
| negotiation | | |
4|<----------->| | |
| | | |</artwork>
</figure>
<t pn="section-5.7-2">
Multicast access starts with a user access request from the RG. The
request will be redirected to the CP by the Si. A follow-up AAA
interchange between the CP and the AAA server will be triggered.
After the authentication, the CP will create a multicast subscriber
session on the UP through the following messages:</t>
<t pn="section-5.7-3">IPv4 Case, there will be a Multicast-ProfileV4 sub-TLV present in
the Subscriber Policy TLV:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.7-4">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv4 Subscriber TLV>
<IPv4 Routing TLV>
<Subscriber Policy TLV>
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
[<Subscriber CGN Port Range TLV>]
</sourcecode>
<t pn="section-5.7-5">IPv6 Case, there will be a Multicast-ProfileV6 sub-TLV present in
the Subscriber Policy TLV:</t>
<sourcecode type="rbnf" markers="false" pn="section-5.7-6">
<Update_Request Message> ::= <Common Header>
<Basic Subscriber TLV>
<IPv6 Subscriber TLV>
<IPv6 Routing TLV>
<Subscriber Policy TLV>
<Update_Response Message> ::= <Common Header>
<Update Response TLV>
</sourcecode>
</section>
</section>
<section anchor="sect-6" numbered="true" toc="include" removeInRFC="false" pn="section-6">
<name slugifiedName="name-s-cusp-message-formats">S-CUSP Message Formats</name>
<t pn="section-6-1">
An S-CUSP message consists of a common header followed by a variable-length
body consisting entirely of TLVs. Receiving an S-CUSP message with an
unknown message type or missing mandatory TLV <bcp14>MUST</bcp14> trigger an Error message
(see <xref target="sect-6.7" format="default" sectionFormat="of" derivedContent="Section 6.7"/>) or a Response message with an Error Information TLV (see
<xref target="sect-7.6" format="default" sectionFormat="of" derivedContent="Section 7.6"/>).</t>
<t pn="section-6-2">
Conversely, if a TLV is optional, the TLV may or may not be present.
Optional TLVs are indicated in the message formats shown in this document
by being enclosed in square brackets.</t>
<t pn="section-6-3">
This section specifies the format of the common S-CUSP message header
and lists the defined messages.</t>
<t pn="section-6-4">
Network byte order is used for all multi-byte fields.</t>
<section anchor="sect-6.1" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
<name slugifiedName="name-common-message-header">Common Message Header</name>
<figure anchor="fig31" align="left" suppress-title="false" pn="figure-31">
<name slugifiedName="name-s-cusp-message-common-heade">S-CUSP Message Common Header</name>
<artwork name="" type="" align="left" alt="" pn="section-6.1-1.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Resv | Message-Type | Message-Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Transaction-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<dl newline="false" spacing="normal" indent="3" pn="section-6.1-2">
<dt pn="section-6.1-2.1">Ver (4 bits):</dt>
<dd pn="section-6.1-2.2"> The major version of the protocol. This
document specifies version 1. Different major versions of the protocol
may have significantly different message structures and formats except
that the Ver field will always be in the same place at the beginning of
each message. A successful S-CUSP session depends on the CP and the UP
both using the same major version of the protocol.
</dd>
<dt pn="section-6.1-2.3">Resv (4 bits):</dt>
<dd pn="section-6.1-2.4"> Reserved. <bcp14>MUST</bcp14> be sent as zero and
ignored on receipt.
</dd>
<dt pn="section-6.1-2.5">Message-Type (8 bits):</dt>
<dd pn="section-6.1-2.6"> The set of message types
specified in this document is listed in <xref target="sect-9.1" format="default" sectionFormat="of" derivedContent="Section 8.1"/>.
</dd>
<dt pn="section-6.1-2.7">Message-Length (16 bits):</dt>
<dd pn="section-6.1-2.8"> Total length of the S-CUSP
message including the common header, expressed in number of bytes as
an unsigned integer.
</dd>
<dt pn="section-6.1-2.9">Transaction-ID (16 bits):</dt>
<dd pn="section-6.1-2.10"> This field is used to
identify requests. It is echoed back in any corresponding
ACK/Response/Error message. It is <bcp14>RECOMMENDED</bcp14> that a monotonically
increasing value be used in successive messages and that the value wraps
back to zero after 0xFFFF. The content of this field is an opaque
value that the receiver <bcp14>MUST NOT</bcp14> use for any purpose except to echo
back in a corresponding response and, optionally, for logging.
</dd>
</dl>
</section>
<section anchor="sect-6.2" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
<name slugifiedName="name-control-messages">Control Messages</name>
<t pn="section-6.2-1">
This document defines the following control messages:</t>
<table align="center" pn="table-2">
<name slugifiedName="name-control-messages-2">Control Messages</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Type</th>
<th align="left" colspan="1" rowspan="1">Name</th>
<th align="left" colspan="1" rowspan="1">Notes and TLVs that can be carried</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Hello</td>
<td align="left" colspan="1" rowspan="1">Hello TLV, Keepalive TLV</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Keepalive</td>
<td align="left" colspan="1" rowspan="1">A common header with the Keepalive message type</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">Sync_Request</td>
<td align="left" colspan="1" rowspan="1">Synchronization request</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">Sync_Begin</td>
<td align="left" colspan="1" rowspan="1">Synchronization starts</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">Sync_Data</td>
<td align="left" colspan="1" rowspan="1">Synchronization data: TLVs specified in <xref target="sect-7" format="default" sectionFormat="of" derivedContent="Section 7"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">Sync_End</td>
<td align="left" colspan="1" rowspan="1">End synchronization</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">7</td>
<td align="left" colspan="1" rowspan="1">Update_Request</td>
<td align="left" colspan="1" rowspan="1">TLVs specified in Sections <xref target="sect-7.6" format="counter" sectionFormat="of" derivedContent="7.6"/>-<xref target="sect-7.9" format="counter" sectionFormat="of" derivedContent="7.9"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">8</td>
<td align="left" colspan="1" rowspan="1">Update_Response</td>
<td align="left" colspan="1" rowspan="1">TLVs specified in Sections <xref target="sect-7.6" format="counter" sectionFormat="of" derivedContent="7.6"/>-<xref target="sect-7.9" format="counter" sectionFormat="of" derivedContent="7.9"/></td>
</tr>
</tbody>
</table>
<section anchor="sect-6.2.1" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.1">
<name slugifiedName="name-hello-message">Hello Message</name>
<t pn="section-6.2.1-1">
The Hello message is used for S-CUSP session establishment and version
negotiation. The details of S-CUSP session establishment and version
negotiation can be found in <xref target="sect-4.1.1" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/>.</t>
<t pn="section-6.2.1-2">
The format of the Hello message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.1-3">
<Hello Message> ::= <Common Header>
<Hello TLV>
<Keepalive TLV>
[<Error Information TLV>]
</sourcecode>
<t pn="section-6.2.1-4">
The return code and negotiation result will be carried in the Error
Information TLV. They are listed as follows:</t>
<dl newline="false" spacing="normal" indent="3" pn="section-6.2.1-5">
<dt pn="section-6.2.1-5.1">0:</dt>
<dd pn="section-6.2.1-5.2"> Success. Version negotiation success.
</dd>
<dt pn="section-6.2.1-5.3">1:</dt>
<dd pn="section-6.2.1-5.4"> Failure. Malformed message received.
</dd>
<dt pn="section-6.2.1-5.5">2:</dt>
<dd pn="section-6.2.1-5.6"> TLV-Unknown. One or more of the TLVs was not understood.
</dd>
<dt pn="section-6.2.1-5.7">1001:</dt>
<dd pn="section-6.2.1-5.8"> Version-Mismatch. The
version negotiation fails. The S-CUSP session establishment phase
fails.
</dd>
<dt pn="section-6.2.1-5.9">1002:</dt>
<dd pn="section-6.2.1-5.10"> Keepalive Error. The keepalive negotiation fails. The S-CUSP
session establishment phase fails.
</dd>
<dt pn="section-6.2.1-5.11">1003:</dt>
<dd pn="section-6.2.1-5.12"> Timer Expires. The establishment timer expired. Session
establishment phase fails.
</dd>
</dl>
</section>
<section anchor="sect-6.2.2" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.2">
<name slugifiedName="name-keepalive-message">Keepalive Message</name>
<t pn="section-6.2.2-1">
Each end of an S-CUSP session periodically sends a Keepalive message.
It is used to detect whether the peer end is still alive. The
Keepalive procedures are defined in <xref target="sect-4.1.2" format="default" sectionFormat="of" derivedContent="Section 4.1.2"/>.</t>
<t pn="section-6.2.2-2">
The format of the Keepalive message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.2-3">
<Keepalive Message> ::= <Common Header>
</sourcecode>
</section>
<section anchor="sect-6.2.3" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.3">
<name slugifiedName="name-sync_request-message">Sync_Request Message</name>
<t pn="section-6.2.3-1">
The Sync_Request message is used to request synchronization from an
S-CUSP peer. Both CP and UP can request their peer to synchronize
data.</t>
<t pn="section-6.2.3-2">
The format of the Sync_Request message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.3-3">
<Sync_Request Message> ::= <Common Header>
</sourcecode>
<t pn="section-6.2.3-4">
A Sync_Request message may result in a Sync_Begin message from its
peer. The Sync_Begin message is defined in <xref target="sect-6.2.4" format="default" sectionFormat="of" derivedContent="Section 6.2.4"/>.</t>
</section>
<section anchor="sect-6.2.4" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.4">
<name slugifiedName="name-sync_begin-message">Sync_Begin Message</name>
<t pn="section-6.2.4-1">
The Sync_Begin message is a reply to a Sync_Request message. It is
used to notify the synchronization requester whether the
synchronization can be started.</t>
<t pn="section-6.2.4-2">
The format of the Sync_Begin message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.4-3">
<Sync_Begin Message> ::= <Common Header>
<Error Information TLV>
</sourcecode>
<t pn="section-6.2.4-4">
The return codes are carried in the Error Information TLV. The codes
are listed below:</t>
<dl newline="false" spacing="normal" indent="3" pn="section-6.2.4-5">
<dt pn="section-6.2.4-5.1">
0:</dt>
<dd pn="section-6.2.4-5.2"> Success. Be ready to synchronize.</dd>
<dt pn="section-6.2.4-5.3">
1:</dt>
<dd pn="section-6.2.4-5.4"> Failure. Malformed message received.</dd>
<dt pn="section-6.2.4-5.5">
2:</dt>
<dd pn="section-6.2.4-5.6"> TLV-Unknown. One or more of the TLVs was not understood.</dd>
<dt pn="section-6.2.4-5.7">
2001:</dt>
<dd pn="section-6.2.4-5.8"> Synch-NoReady. The data to be synchronized is not ready.</dd>
<dt pn="section-6.2.4-5.9">
2002:</dt>
<dd pn="section-6.2.4-5.10"> Synch-Unsupport. The data synchronization is not supported.</dd>
</dl>
</section>
<section anchor="sect-6.2.5" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.5">
<name slugifiedName="name-sync_data-message">Sync_Data Message</name>
<t pn="section-6.2.5-1">
The Sync_Data message is used to send data being synchronized between
the CP and UP. The Sync_Data message has the same function and
format as the Update_Request message. The difference is that there
is no ACK for a Sync_Data message. An error caused by the Sync_Data
message will result in a Sync_End message.</t>
<t pn="section-6.2.5-2">
There are two scenarios:
</t>
<ul spacing="normal" bare="false" empty="false" pn="section-6.2.5-3">
<li pn="section-6.2.5-3.1">
<t pn="section-6.2.5-3.1.1">Synchronization from UP to CP: Synchronize the resource data to CP.
</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.5-3.1.2">
<Sync_Data Message> ::= <Common Header>
[<Interface Status TLV>]
[<Board Status TLV>]
</sourcecode>
</li>
<li pn="section-6.2.5-3.2">
<t pn="section-6.2.5-3.2.1">Synchronization from CP to UP: Synchronize all subscriber
sessions to the UP. The Subscriber TLVs carried are those appearing in
<xref target="sect-7.9" format="default" sectionFormat="of" derivedContent="Section 7.9"/>. As for which TLVs should be carried, it depends on the
specific session data to be synchronized. The process is equivalent to the
creation of a particular session. Refer to <xref target="sect-5" format="default" sectionFormat="of" derivedContent="Section 5"/> to see
more details.
</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.5-3.2.2">
<Sync_Data Message> ::= <Common Header>
[<IPv4 Routing TLV>]
[<IPv6 Routing TLV>]
[<Subscriber TLVs>]
</sourcecode>
</li>
</ul>
</section>
<section anchor="sect-6.2.6" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.6">
<name slugifiedName="name-sync_end-message">Sync_End Message</name>
<t pn="section-6.2.6-1">
The Sync_End message is used to indicate the end of a synchronization
process. The format of a Sync_End message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.6-2">
<Sync_End Message> ::= <Common Header>
<Error Information TLV>
</sourcecode>
<t pn="section-6.2.6-3">The return/error codes are listed as follows:
</t>
<dl newline="false" spacing="normal" indent="3" pn="section-6.2.6-4">
<dt pn="section-6.2.6-4.1">0:</dt>
<dd pn="section-6.2.6-4.2"> Success. Synchronization finished.</dd>
<dt pn="section-6.2.6-4.3">1:</dt>
<dd pn="section-6.2.6-4.4"> Failure. Malformed message received.</dd>
<dt pn="section-6.2.6-4.5">2:</dt>
<dd pn="section-6.2.6-4.6"> TLV-Unknown. One or more of the TLVs was not understood.</dd>
</dl>
</section>
<section anchor="sect-6.2.7" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.7">
<name slugifiedName="name-update_request-message">Update_Request Message</name>
<t pn="section-6.2.7-1">
The Update_Request message is a multipurpose message; it can be used
to create, update, and delete subscriber sessions on a UP.</t>
<t pn="section-6.2.7-2">
For session operations, the specific operation is controlled by the
Oper field of the carried TLVs. As defined in <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>, the
Oper field can be set to either Update or Delete when a TLV is
carried in an Update_Request message.</t>
<t pn="section-6.2.7-3">
When the Oper field is set to Update, it means to create or update a
subscriber session. If the Oper field is set to Delete, it is a request to
delete a corresponding session.</t>
<t pn="section-6.2.7-4">
The format of the Update_Request message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.7-5">
<Update_Request Message> ::= <Common Header>
[<IPv4 Routing TLV>]
[<IPv6 Routing TLV>]
[<Subscriber TLVs>]
</sourcecode>
<t pn="section-6.2.7-6">
Where the Subscriber TLVs are those appearing in
<xref target="sect-7.9" format="default" sectionFormat="of" derivedContent="Section 7.9"/>.
Each Update_Request message will result in an Update_Response message,
which is defined in <xref target="sect-6.2.8" format="default" sectionFormat="of" derivedContent="Section 6.2.8"/>.</t>
</section>
<section anchor="sect-6.2.8" numbered="true" toc="include" removeInRFC="false" pn="section-6.2.8">
<name slugifiedName="name-update_response-message">Update_Response Message</name>
<t pn="section-6.2.8-1">
The Update_Response message is a response to an Update_Request
message. It is used to confirm the update request (or reject it in
the case of an error). The format of an Update_Response message is
as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.2.8-2">
<Update_Response Message> ::= <Common Header>
[<Subscriber CGN Port Range TLV>]
<Error Information TLV>
</sourcecode>
<t pn="section-6.2.8-3">
The return/error codes are carried in the Error Information TLV.
They are listed as follows:</t>
<dl newline="false" spacing="normal" indent="3" pn="section-6.2.8-4">
<dt pn="section-6.2.8-4.1">0:</dt>
<dd pn="section-6.2.8-4.2"> Success.</dd>
<dt pn="section-6.2.8-4.3">1:</dt>
<dd pn="section-6.2.8-4.4"> Failure. Malformed message received.</dd>
<dt pn="section-6.2.8-4.5">2:</dt>
<dd pn="section-6.2.8-4.6"> TLV-Unknown. One or more of the TLVs was not understood.</dd>
<dt pn="section-6.2.8-4.7">3001:</dt>
<dd pn="section-6.2.8-4.8"> Pool-Mismatch. The corresponding address pool
cannot be found.</dd>
<dt pn="section-6.2.8-4.9">3002:</dt>
<dd pn="section-6.2.8-4.10"> Pool-Full. The address pool is fully allocated,
and no address segment is available.</dd>
<dt pn="section-6.2.8-4.11">3003:</dt>
<dd pn="section-6.2.8-4.12"> Subnet-Mismatch. The address pool subnet cannot
be found.</dd>
<dt pn="section-6.2.8-4.13">3004:</dt>
<dd pn="section-6.2.8-4.14"> Subnet-Conflict. Subnets in the address pool
have been classified into other clients.</dd>
<dt pn="section-6.2.8-4.15">4001:</dt>
<dd pn="section-6.2.8-4.16"> Update-Fail-No-Res. The forwarding table fails
to be delivered because the forwarding resources are insufficient.</dd>
<dt pn="section-6.2.8-4.17">4002:</dt>
<dd pn="section-6.2.8-4.18"> QoS-Update-Success. The QoS policy takes effect.</dd>
<dt pn="section-6.2.8-4.19">4003:</dt>
<dd pn="section-6.2.8-4.20"> QoS-Update-Sq-Fail. Failed to process the queue
in the QoS policy.</dd>
<dt pn="section-6.2.8-4.21">4004:</dt>
<dd pn="section-6.2.8-4.22"> QoS-Update-CAR-Fail. Processing of the CAR in
the QoS policy fails.</dd>
<dt pn="section-6.2.8-4.23">4005:</dt>
<dd pn="section-6.2.8-4.24"> Statistic-Fail-No-Res. Statistics processing
failed due to insufficient statistics resources.</dd>
</dl>
</section>
</section>
<section anchor="sect-6.3" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
<name slugifiedName="name-event-message">Event Message</name>
<t pn="section-6.3-1">
The Event message is used to report subscriber session traffic
statistics and detection information. The format of the Event message is
as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.3-2">
<Event Message> ::= <Common Header>
[<Subscriber Traffic Statistics Report TLV>]
[<Subscriber Detection Result Report TLV>]
</sourcecode>
</section>
<section anchor="sect-6.4" numbered="true" toc="include" removeInRFC="false" pn="section-6.4">
<name slugifiedName="name-report-message">Report Message</name>
<t pn="section-6.4-1">
The Report message is used to report board and interface status on a
UP. The format of the Report message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.4-2">
<Report Message> ::= <Common Header>
[<Board Status TLVs>]
[<Interface Status TLVs>]
</sourcecode>
</section>
<section anchor="sect-6.5" numbered="true" toc="include" removeInRFC="false" pn="section-6.5">
<name slugifiedName="name-cgn-messages">CGN Messages</name>
<t pn="section-6.5-1">
This document defines the following resource allocation messages:</t>
<table align="center" pn="table-3">
<name slugifiedName="name-resource-allocation-message">Resource Allocation Messages</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Type</th>
<th align="left" colspan="1" rowspan="1">Message Name</th>
<th align="left" colspan="1" rowspan="1">TLV that is carried</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">200</td>
<td align="left" colspan="1" rowspan="1">Addr_Allocation_Req</td>
<td align="left" colspan="1" rowspan="1">Address Allocation Request</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">201</td>
<td align="left" colspan="1" rowspan="1">Addr_Allocation_Ack</td>
<td align="left" colspan="1" rowspan="1">Address Allocation Response</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">202</td>
<td align="left" colspan="1" rowspan="1">Addr_Renew_Req</td>
<td align="left" colspan="1" rowspan="1">Address Renewal Request</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">203</td>
<td align="left" colspan="1" rowspan="1">Addr_Renew_Ack</td>
<td align="left" colspan="1" rowspan="1">Address Renewal Response</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">204</td>
<td align="left" colspan="1" rowspan="1">Addr_Release_Req</td>
<td align="left" colspan="1" rowspan="1">Address Release Request</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">205</td>
<td align="left" colspan="1" rowspan="1">Addr_Release_Ack</td>
<td align="left" colspan="1" rowspan="1">Address Release Response</td>
</tr>
</tbody>
</table>
<section anchor="sect-6.5.1" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.1">
<name slugifiedName="name-addr_allocation_req-message">Addr_Allocation_Req Message</name>
<t pn="section-6.5.1-1">
The Addr_Allocation_Req message is used to request CGN address
allocation. The format of the Addr_Allocation_Req message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.5.1-2">
<Addr_Allocation_Req Message> ::= <Common Header>
<Address Allocation Request TLV>
</sourcecode>
</section>
<section anchor="sect-6.5.2" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.2">
<name slugifiedName="name-addr_allocation_ack-message">Addr_Allocation_Ack Message</name>
<t pn="section-6.5.2-1">
The Addr_Allocation_Ack message is a response to an
Addr_Allocation_Req message. The format of the Addr_Allocation_Ack
message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.5.2-2">
<Addr_Allocation_Ack Message> ::= <Common Header>
<Address Allocation Response TLV>
</sourcecode>
</section>
<section anchor="sect-6.5.3" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.3">
<name slugifiedName="name-addr_renew_req-message">Addr_Renew_Req Message</name>
<t pn="section-6.5.3-1">
The Addr_Renew_Req message is used to request address renewal. The
format of the Addr_Renew_Req message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.5.3-2">
<Addr_Renew_Req Message> ::= <Common Header>
<Address Renewal Request TLV>
</sourcecode>
</section>
<section anchor="sect-6.5.4" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.4">
<name slugifiedName="name-addr_renew_ack-message">Addr_Renew_Ack Message</name>
<t pn="section-6.5.4-1">
The Addr_Renew_Ack message is a response to an Addr_Renew_Req
message. The format of the Addr_Renew_Req message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.5.4-2">
<Addr_Renew_Ack Message> ::= <Common Header>
<Address Renewal Response TLV>
</sourcecode>
</section>
<section anchor="sect-6.5.5" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.5">
<name slugifiedName="name-addr_release_req-message">Addr_Release_Req Message</name>
<t pn="section-6.5.5-1">
The Addr_Release_Req message is used to request address release. The
format of the Addr_Release_Req message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.5.5-2">
<Addr_Release_Req Message> ::= <Common Header>
<Address Release Request TLV>
</sourcecode>
</section>
<section anchor="sect-6.5.6" numbered="true" toc="include" removeInRFC="false" pn="section-6.5.6">
<name slugifiedName="name-addr_release_ack-message">Addr_Release_Ack Message</name>
<t pn="section-6.5.6-1">
The Addr_Release_Ack message is a response to an Addr_Release_Req
message. The format of the Addr_Release_Ack message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.5.6-2">
<Addr_Release_Ack Message> ::= <Common Header>
<Address Release Response TLV>
</sourcecode>
</section>
</section>
<section anchor="sect-6.6" numbered="true" toc="include" removeInRFC="false" pn="section-6.6">
<name slugifiedName="name-vendor-message">Vendor Message</name>
<t pn="section-6.6-1">
The Vendor message, in conjunction with the Vendor TLV and Vendor
sub-TLV, can be used by vendors to extend S-CUSP. The
Message-Type is 11. If the receiver does not recognize the message,
an Error message will be returned to the sender.</t>
<t pn="section-6.6-2">
The format of the Vendor message is as follows:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.6-3">
<Vendor Message> ::= <Common Header>
<Vendor TLV>
[<any other TLVs as specified by the vendor>]
</sourcecode>
</section>
<section anchor="sect-6.7" numbered="true" toc="include" removeInRFC="false" pn="section-6.7">
<name slugifiedName="name-error-message">Error Message</name>
<t pn="section-6.7-1">
The Error message is defined to return some critical error
information to the sender. If a receiver does not support the type
of the received message, it <bcp14>MUST</bcp14> return an Error message to the
sender.</t>
<t pn="section-6.7-2">
The format of the Error message is as below:</t>
<sourcecode type="rbnf" markers="false" pn="section-6.7-3">
<Error Message> ::= <Common Header>
<Error Information TLV>
</sourcecode>
</section>
</section>
<section anchor="sect-7" numbered="true" toc="include" removeInRFC="false" pn="section-7">
<name slugifiedName="name-s-cusp-tlvs-and-sub-tlvs">S-CUSP TLVs and Sub-TLVs</name>
<t pn="section-7-1">
This section specifies the following:</t>
<ul spacing="normal" bare="false" empty="false" pn="section-7-2">
<li pn="section-7-2.1">The format of the TLVs that appear in S-CUSP messages,</li>
<li pn="section-7-2.2">The format of the sub-TLVs that appear within the values of some
TLVs, and</li>
<li pn="section-7-2.3">The format of some basic data fields that appear within TLVs or
sub-TLVs.</li>
</ul>
<t pn="section-7-3">
See <xref target="sect-9" format="default" sectionFormat="of" derivedContent="Section 8"/> for a list of all defined TLVs and sub-TLVs.</t>
<section anchor="sect-7.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
<name slugifiedName="name-common-tlv-header">Common TLV Header</name>
<t pn="section-7.1-1">
S-CUSP messages consist of the common header specified in <xref target="sect-6.1" format="default" sectionFormat="of" derivedContent="Section 6.1"/>
followed by TLVs formatted as specified in this section.</t>
<figure anchor="fig32" align="left" suppress-title="false" pn="figure-32">
<name slugifiedName="name-common-tlv-header-2">Common TLV Header</name>
<artwork name="" type="" align="left" alt="" pn="section-7.1-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Oper | TLV-Type | TLV-Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Value ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<dl newline="false" spacing="normal" indent="3" pn="section-7.1-3">
<dt pn="section-7.1-3.1">Oper (4 bits):</dt>
<dd pn="section-7.1-3.2"> For Message-Types that specify an
operation on a data set, the Oper field is interpreted as Update,
Delete, or Reserved as specified in <xref target="sect-9.3" format="default" sectionFormat="of" derivedContent="Section 8.3"/>. For all
other Message-Types, the Oper field <bcp14>MUST</bcp14> be sent as zero and ignored
on receipt.</dd>
<dt pn="section-7.1-3.3">TLV-Type (12 bits):</dt>
<dd pn="section-7.1-3.4"> The type of a TLV. TLV-Type
specifies the interpretation and format of the Value field of the TLV.
See <xref target="sect-9.2" format="default" sectionFormat="of" derivedContent="Section 8.2"/>.</dd>
<dt pn="section-7.1-3.5">TLV-Length (2 bytes):</dt>
<dd pn="section-7.1-3.6"> The length of the Value portion
of the TLV in bytes as an unsigned integer.
</dd>
<dt pn="section-7.1-3.7">Value (variable length):</dt>
<dd pn="section-7.1-3.8"> This is the portion of
the TLV whose size is given by TLV-Length. It consists
of fields, frequently using one of the basic data field types (see
<xref target="sect-7.2" format="default" sectionFormat="of" derivedContent="Section 7.2"/>) and sub-TLVs (see <xref target="sect-7.3" format="default" sectionFormat="of" derivedContent="Section 7.3"/>).
</dd>
</dl>
</section>
<section anchor="sect-7.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.2">
<name slugifiedName="name-basic-data-fields">Basic Data Fields</name>
<t pn="section-7.2-1">
This section specifies the binary format of several standard basic
data fields that are used within other data structures in this
specification.</t>
<dl newline="false" spacing="normal" indent="3" pn="section-7.2-2">
<dt pn="section-7.2-2.1">STRING:</dt>
<dd pn="section-7.2-2.2"> 0 to 255 octets. Will be encoded as a sub-TLV
(see <xref target="sect-7.3" format="default" sectionFormat="of" derivedContent="Section 7.3"/>) to provide the length. The use of this data type in
S-CUSP is to provide convenient labels for use by network operators in
configuring and debugging their networks and interpreting S-CUSP
messages. Subscribers will not normally see these labels. They are
normally interpreted as ASCII <xref target="RFC0020" format="default" sectionFormat="of" derivedContent="RFC20"/>. </dd>
<dt pn="section-7.2-2.3">MAC-Addr:</dt>
<dd pn="section-7.2-2.4"> 6 octets. Ethernet MAC address <xref target="RFC7042" format="default" sectionFormat="of" derivedContent="RFC7042"/>.</dd>
<dt pn="section-7.2-2.5">IPv4-Address:</dt>
<dd pn="section-7.2-2.6"> 8 octets. 4 octets of the IPv4 address
value followed by a 4-octet address mask in the format
XXX.XXX.XXX.XXX.</dd>
<dt pn="section-7.2-2.7">IPv6-Address:</dt>
<dd pn="section-7.2-2.8"> 20 octets. 16 octets of the IPv6 address
followed by a 4-octet integer n in the range of 0 to 128, which gives
the address mask as the one's complement of 2**(128-n) - 1.
</dd>
<dt pn="section-7.2-2.9">VLAN ID:</dt>
<dd pn="section-7.2-2.10">
<t pn="section-7.2-2.10.1">2 octets. As follows <xref target="IEEE-802.1Q" format="default" sectionFormat="of" derivedContent="802.1Q"/>:</t>
<artwork name="" type="" align="left" alt="" pn="section-7.2-2.10.2">
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PRI |D| VLAN-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
<dl newline="false" spacing="normal" indent="3" pn="section-7.2-2.10.3">
<dt pn="section-7.2-2.10.3.1">PRI:</dt>
<dd pn="section-7.2-2.10.3.2"> Priority. Default value 7.</dd>
<dt pn="section-7.2-2.10.3.3">D:</dt>
<dd pn="section-7.2-2.10.3.4"> Drop Eligibility Indicator (DEI). Default value 0.</dd>
<dt pn="section-7.2-2.10.3.5">VLAN-ID:</dt>
<dd pn="section-7.2-2.10.3.6"> Unsigned integer in the range 1-4094. (0 and
4095 are not valid VLAN IDs <xref target="IEEE-802.1Q" format="default" sectionFormat="of" derivedContent="802.1Q"/>.)</dd>
</dl>
</dd>
</dl>
</section>
<section anchor="sect-7.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.3">
<name slugifiedName="name-sub-tlv-format-and-sub-tlvs">Sub-TLV Format and Sub-TLVs</name>
<t pn="section-7.3-1">
In some cases, the Value portion of a TLV, as specified in <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>, can
contain one or more sub-TLVs formatted as follows:</t>
<figure anchor="fig33" align="left" suppress-title="false" pn="figure-33">
<name slugifiedName="name-sub-tlv-header">Sub-TLV Header</name>
<artwork name="" type="" align="left" alt="" pn="section-7.3-2.1">
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
</artwork>
</figure>
<dl newline="false" spacing="normal" indent="3" pn="section-7.3-3">
<dt pn="section-7.3-3.1">Type (2 bytes):</dt>
<dd pn="section-7.3-3.2"> The type of a sub-TLV. The Type field
specifies the interpretation and format of the Value field of the TLV.
Sub-TLV type values have the same meaning regardless of the TLV type of
the TLV within which the sub-TLV occurs. See <xref target="sect-9.4" format="default" sectionFormat="of" derivedContent="Section 8.4"/>.</dd>
<dt pn="section-7.3-3.3">Length (2 bytes):</dt>
<dd pn="section-7.3-3.4"> The length of the Value portion of
the sub-TLV in bytes as an unsigned integer.</dd>
<dt pn="section-7.3-3.5">Value (variable length):</dt>
<dd pn="section-7.3-3.6"> This is the Value portion of
the sub-TLV whose size is given by Length.</dd>
</dl>
<t pn="section-7.3-4">
The sub-TLVs currently specified are defined in the following
subsections.</t>
<section anchor="sect-7.3.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.1">
<name slugifiedName="name-name-sub-tlvs">Name Sub-TLVs</name>
<t pn="section-7.3.1-1">
This document defines the following name sub-TLVs that are used to
carry the name of the corresponding object. The length of each of
these sub-TLVs is variable from 1 to 255 octets. The value is of
type STRING padded with zero octets to a length in octets that is
an integer multiple of 4.</t>
<table align="center" pn="table-4">
<name slugifiedName="name-name-sub-tlvs-2">Name Sub-TLVs</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Type</th>
<th align="left" colspan="1" rowspan="1">Sub-TLV Name</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">VRF-Name</td>
<td align="left" colspan="1" rowspan="1">The name of a VRF</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Ingress-QoS-Profile</td>
<td align="left" colspan="1" rowspan="1">The name of an ingress QoS profile</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">Egress-QoS-Profile</td>
<td align="left" colspan="1" rowspan="1">The name of an egress QoS profile</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">User-ACL-Policy</td>
<td align="left" colspan="1" rowspan="1">The name of an ACL policy</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">Multicast-ProfileV4</td>
<td align="left" colspan="1" rowspan="1">The name of an IPv4 multicast profile</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">Multicast-ProfileV6</td>
<td align="left" colspan="1" rowspan="1">The name of an IPv6 multicast profile</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">9</td>
<td align="left" colspan="1" rowspan="1">NAT-Instance</td>
<td align="left" colspan="1" rowspan="1">The name of a NAT instance</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">10</td>
<td align="left" colspan="1" rowspan="1">Pool-Name</td>
<td align="left" colspan="1" rowspan="1">The name of an address pool</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-7.3.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.2">
<name slugifiedName="name-ingress-car-sub-tlv">Ingress-CAR Sub-TLV</name>
<t pn="section-7.3.2-1">
The Ingress-CAR sub-TLV indicates the authorized upstream Committed
Access Rate (CAR) parameters. The sub-TLV type of the Ingress-CAR
sub-TLV is 7. The sub-TLV length is 16. The format is as shown in
<xref target="fig34" format="default" sectionFormat="of" derivedContent="Figure 34"/>.</t>
<figure anchor="fig34" align="left" suppress-title="false" pn="figure-34">
<name slugifiedName="name-ingress-car-sub-tlv-2">Ingress-CAR Sub-TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.3.2-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CIR (Committed Information Rate) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PIR (Peak Information Rate) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBS (Committed Burst Size) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PBS (Peak Burst Size) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.3.2-3"> Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.3.2-4">
<li pn="section-7.3.2-4.1">
<dl newline="false" spacing="normal" pn="section-7.3.2-4.1.1">
<dt pn="section-7.3.2-4.1.1.1">CIR (4 bytes):</dt>
<dd pn="section-7.3.2-4.1.1.2">Guaranteed rate in bits/second.</dd>
<dt pn="section-7.3.2-4.1.1.3">PIR (4 bytes):</dt>
<dd pn="section-7.3.2-4.1.1.4">Burst rate in bits/second.</dd>
<dt pn="section-7.3.2-4.1.1.5">CBS (4 bytes):</dt>
<dd pn="section-7.3.2-4.1.1.6">The token bucket in bytes.</dd>
<dt pn="section-7.3.2-4.1.1.7">PBS (4 bytes):</dt>
<dd pn="section-7.3.2-4.1.1.8">Burst token bucket in bytes.</dd>
</dl>
</li>
</ul>
<t pn="section-7.3.2-5">
These fields are unsigned integers. More details about CIR, PIR, CBS,
and PBS can be found in <xref target="RFC2698" format="default" sectionFormat="of" derivedContent="RFC2698"/>.</t>
</section>
<section anchor="sect-7.3.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.3">
<name slugifiedName="name-egress-car-sub-tlv">Egress-CAR Sub-TLV</name>
<t pn="section-7.3.3-1">
The Egress-CAR sub-TLV indicates the authorized downstream Committed Access
Rate (CAR) parameters. The sub-TLV type of the Egress-CAR sub-TLV is
8. Its sub-TLV length is 16 octets. The format of the value part is as
defined below.</t>
<figure anchor="fig35" align="left" suppress-title="false" pn="figure-35">
<name slugifiedName="name-egress-car-sub-tlv-2">Egress-CAR Sub-TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.3.3-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CIR (Committed Information Rate) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PIR (Peak Information Rate) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CBS (Committed Burst Size) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PBS (Peak Burst Size) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.3.3-3">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.3.3-4">
<li pn="section-7.3.3-4.1">
<dl newline="false" spacing="normal" pn="section-7.3.3-4.1.1">
<dt pn="section-7.3.3-4.1.1.1">CIR (4 bytes):</dt>
<dd pn="section-7.3.3-4.1.1.2">Guaranteed rate in bits/second.</dd>
<dt pn="section-7.3.3-4.1.1.3">PIR (4 bytes):</dt>
<dd pn="section-7.3.3-4.1.1.4">Burst rate in bits/second.</dd>
<dt pn="section-7.3.3-4.1.1.5">CBS (4 bytes):</dt>
<dd pn="section-7.3.3-4.1.1.6">The token bucket in bytes.</dd>
<dt pn="section-7.3.3-4.1.1.7">PBS (4 bytes):</dt>
<dd pn="section-7.3.3-4.1.1.8">Burst token bucket in bytes.</dd>
</dl>
</li>
</ul>
<t pn="section-7.3.3-5">
These fields are unsigned integers. More details about CIR, PIR, CBS,
and PBS can be found in <xref target="RFC2698" format="default" sectionFormat="of" derivedContent="RFC2698"/>.</t>
</section>
<section anchor="sect-7.3.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.4">
<name slugifiedName="name-if-desc-sub-tlv">If-Desc Sub-TLV</name>
<t pn="section-7.3.4-1">
The If-Desc sub-TLV is defined to designate an interface. It is an
optional sub-TLV that may be carried in those TLVs that have an If-Index
or Out-If-Index field. The If-Desc sub-TLV is used as a locally unique
identifier within a BNG.</t>
<t pn="section-7.3.4-2">
The sub-TLV type is 11. The sub-TLV length is 12 octets. The format
depends on the If-Type (<xref target="sect-9.6" format="default" sectionFormat="of" derivedContent="Section 8.6"/>).
The format of the value part is as follows:</t>
<figure anchor="fig36" align="left" suppress-title="false" pn="figure-36">
<name slugifiedName="name-if-desc-sub-tlv-formats">If-Desc Sub-TLV Formats</name>
<artwork name="" type="" align="left" alt="" pn="section-7.3.4-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Type (1-5)| Chassis | Slot |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Slot | Port Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Port Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
If-Desc Sub-TLV (Physical Port)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Type (6-7) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Logic-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Port Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
If-Desc Sub-TLV (Virtual Port)
</artwork>
</figure>
<t pn="section-7.3.4-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.3.4-5">
<li pn="section-7.3.4-5.1">
<dl newline="false" spacing="normal" pn="section-7.3.4-5.1.1">
<dt pn="section-7.3.4-5.1.1.1">If-Type:</dt>
<dd pn="section-7.3.4-5.1.1.2">8 bits in length. The value of this field indicates the
type of an interface. The If-Type values defined in this document
are listed in <xref target="sect-9.6" format="default" sectionFormat="of" derivedContent="Section 8.6"/>.</dd>
<dt pn="section-7.3.4-5.1.1.3">Chassis (8 bits):</dt>
<dd pn="section-7.3.4-5.1.1.4">Identifies the chassis that the interface
belongs to.</dd>
<dt pn="section-7.3.4-5.1.1.5">Slot (16 bits):</dt>
<dd pn="section-7.3.4-5.1.1.6">Identifies the slot that the interface belongs to.</dd>
<dt pn="section-7.3.4-5.1.1.7">Sub-Slot (16 bits):</dt>
<dd pn="section-7.3.4-5.1.1.8">Identifies the sub-slot the interface belongs to.</dd>
<dt pn="section-7.3.4-5.1.1.9">Port Number (16 bits):</dt>
<dd pn="section-7.3.4-5.1.1.10">An identifier of a physical port/interface
(e.g., If-Type: 1-5). It is locally significant within the
slot/sub-slot.</dd>
<dt pn="section-7.3.4-5.1.1.11">Sub-Port Number (32 bits):</dt>
<dd pn="section-7.3.4-5.1.1.12">An identifier of the sub-port. Locally
significant within its "parent" port (physical or virtual).</dd>
<dt pn="section-7.3.4-5.1.1.13">Logic-ID (32 bits):</dt>
<dd pn="section-7.3.4-5.1.1.14">An identifier of a virtual interface (e.g.,
If-Type: 6-7).</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.3.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.5">
<name slugifiedName="name-ipv6-address-list-sub-tlv">IPv6 Address List Sub-TLV</name>
<t pn="section-7.3.5-1">
The IPv6 Address List sub-TLV is used to convey one or more IPv6
addresses. It is carried in the IPv6 Subscriber TLV. The sub-TLV
type is 12. The sub-TLV length is variable.</t>
<t pn="section-7.3.5-2">The format of the value part of the IPv6 Address List sub-TLV is as follows:</t>
<figure anchor="fig37" align="left" suppress-title="false" pn="figure-37">
<name slugifiedName="name-ipv6-address-list-sub-tlv-2">IPv6 Address List Sub-TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.3.5-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ IPv6 Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ IPv6 Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ... ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ IPv6 Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.3.5-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.3.5-5">
<li pn="section-7.3.5-5.1">
<dl newline="false" spacing="normal" pn="section-7.3.5-5.1.1">
<dt pn="section-7.3.5-5.1.1.1">IPv6 Address (IPv6-Address):</dt>
<dd pn="section-7.3.5-5.1.1.2">Each IP Address is of
type IP-Address and carries an IPv6 address and length.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.3.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.3.6">
<name slugifiedName="name-vendor-sub-tlv">Vendor Sub-TLV</name>
<t pn="section-7.3.6-1">
The Vendor sub-TLV is intended to be used inside the Value portion of
the Vendor TLV (<xref target="sect-7.13" format="default" sectionFormat="of" derivedContent="Section 7.13"/>). It provides a Sub-Type that
effectively extends the sub-TLV type in the sub-TLV header and
provides for versioning of Vendor sub-TLVs.</t>
<t pn="section-7.3.6-2">The value part of the Vendor sub-TLV is formatted as follows:</t>
<figure anchor="fig38" align="left" suppress-title="false" pn="figure-38">
<name slugifiedName="name-vendor-sub-tlv-2">Vendor Sub-TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.3.6-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Type | Sub-Type-Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Value (other as specified by vendor) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.3.6-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.3.6-5">
<li pn="section-7.3.6-5.1">
<dl newline="false" spacing="normal" pn="section-7.3.6-5.1.1">
<dt pn="section-7.3.6-5.1.1.1">Sub-TLV type:</dt>
<dd pn="section-7.3.6-5.1.1.2">13.</dd>
<dt pn="section-7.3.6-5.1.1.3">Sub-TLV length:</dt>
<dd pn="section-7.3.6-5.1.1.4">Variable.</dd>
<dt pn="section-7.3.6-5.1.1.5">Vendor-ID (4 bytes):</dt>
<dd pn="section-7.3.6-5.1.1.6">Vendor ID as defined in RADIUS <xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.</dd>
<dt pn="section-7.3.6-5.1.1.7">Sub-Type (2 bytes):</dt>
<dd pn="section-7.3.6-5.1.1.8">Used by the vendor to distinguish multiple
different sub-TLVs.</dd>
<dt pn="section-7.3.6-5.1.1.9">Sub-Type-Version (2 bytes):</dt>
<dd pn="section-7.3.6-5.1.1.10">Used by the vendor to distinguish
different versions of a vendor-defined sub-TLV Sub-Type.</dd>
<dt pn="section-7.3.6-5.1.1.11">Value:</dt>
<dd pn="section-7.3.6-5.1.1.12">As specified by the vendor.</dd>
</dl>
</li>
</ul>
<t pn="section-7.3.6-6">
Since vendor code will be handling the sub-TLV after the Vendor-ID
field is recognized, the remainder of the sub-TLV can be organized
however the vendor wants. But it desirable for a vendor to be able to
define multiple different Vendor sub-TLVs and to keep track of
different versions of its vendor-defined sub-TLVs. Thus, it is
<bcp14>RECOMMENDED</bcp14> that the vendor assign a Sub-Type value for each of that
vendor's sub-TLVs that is different from other Sub-Type values that
vendor has used. Also, when modifying a vendor-defined sub-TLV in a
way potentially incompatible with a previous definition, the vendor
<bcp14>SHOULD</bcp14> increase the value it is using in the Sub-Type-Version field.</t>
</section>
</section>
<section anchor="sect-7.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.4">
<name slugifiedName="name-hello-tlv">Hello TLV</name>
<t pn="section-7.4-1">
The Hello TLV is defined to be carried in the Hello message for version and
capabilities negotiation. It indicates the S-CUSP sub-version and
capabilities supported. The format of the value part of the Hello TLV is as follows:</t>
<figure anchor="fig39" align="left" suppress-title="false" pn="figure-39">
<name slugifiedName="name-hello-tlv-2">Hello TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.4-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VerSupported |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.4-3">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.4-4">
<li pn="section-7.4-4.1">
<dl newline="false" spacing="normal" pn="section-7.4-4.1.1">
<dt pn="section-7.4-4.1.1.1">TLV type:</dt>
<dd pn="section-7.4-4.1.1.2">100.</dd>
<dt pn="section-7.4-4.1.1.3">TLV length:</dt>
<dd pn="section-7.4-4.1.1.4">12 octets.</dd>
<dt pn="section-7.4-4.1.1.5">VerSupported:</dt>
<dd pn="section-7.4-4.1.1.6">32 bits in length. It is a bit map of the
Sub-Versions of S-CUSP that the sender supports. This document
specifies Sub-Version zero of Major Version 1, that is, Version
1.0. The VerSupported field <bcp14>MUST</bcp14> be nonzero. The
VerSupported bits are numbered from 0 as the most significant
bit. Bit 0 indicates support of Sub-Version zero, bit 1
indicates support of Sub-Version one, etc.</dd>
<dt pn="section-7.4-4.1.1.7">Vendor-ID:</dt>
<dd pn="section-7.4-4.1.1.8">4 bytes in length. Vendor ID, as defined in RADIUS
<xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.</dd>
<dt pn="section-7.4-4.1.1.9">Capabilities:</dt>
<dd pn="section-7.4-4.1.1.10">32 bits in length. Flags that indicate the
support of particular capabilities by the sender of the Hello.
No capabilities are defined in this document, so implementations
of the version specified herein will set this field to zero. The
Capabilities field of the Hello TLV <bcp14>MUST</bcp14> be
checked before any other TLVs in the Hello because capabilities
defined in the future might extend existing TLVs or permit new
TLVs.</dd>
</dl>
</li>
</ul>
<t pn="section-7.4-5">
After the exchange of Hello messages, the CP and UP each perform a
logical AND of the Sub-Version supported by the CP and the UP and
separately perform a logical AND of the Capabilities field for
the CP and the UP.</t>
<t pn="section-7.4-6">
If the result of the AND of the Sub-Versions supported is zero, then
no session can be established, and the connection is torn down. If the
result of the AND of the Sub-Versions supported is nonzero, then the
session uses the highest Sub-Version supported by both the CP and UP.</t>
<t pn="section-7.4-7">
For example, if one side supports Sub-Versions 1, 3, 4, and 5
(VerSupported = 0x5C000000) and the other side supports 2, 3, and 4
(VerSupported = 0x38000000), then 3 and 4 are the Sub-Versions in
common, and 4 is the highest Sub-Version supported by both sides. So
Sub-Version 4 is used for the session that has been negotiated.</t>
<t pn="section-7.4-8">
The result of the logical AND of the Capabilities bits will show what
additional capabilities both sides support. If this result is zero,
there are no such capabilities, so none can be used during the
session. If this result is nonzero, it shows the additional
capabilities that can be used during the session. The CP and the UP
<bcp14>MUST NOT</bcp14> use a capability unless both advertise support.</t>
</section>
<section anchor="sect-7.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.5">
<name slugifiedName="name-keepalive-tlv">Keepalive TLV</name>
<t pn="section-7.5-1">
The Keepalive TLV is carried in the Hello message. It provides
timing information for this feature. The format of the value part of
the Keepalive TLV is as follows:</t>
<figure anchor="fig40" align="left" suppress-title="false" pn="figure-40">
<name slugifiedName="name-keepalive-tlv-2">Keepalive TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.5-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Keepalive | DeadTimer | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.5-3">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.5-4">
<li pn="section-7.5-4.1">
<dl newline="false" spacing="normal" pn="section-7.5-4.1.1">
<dt pn="section-7.5-4.1.1.1">TLV type:</dt>
<dd pn="section-7.5-4.1.1.2">102.</dd>
<dt pn="section-7.5-4.1.1.3">TLV length:</dt>
<dd pn="section-7.5-4.1.1.4">4 octets.</dd>
<dt pn="section-7.5-4.1.1.5">Keepalive (8 bits):</dt>
<dd pn="section-7.5-4.1.1.6">Indicates the maximum interval (in seconds)
between two consecutive S-CUSP messages sent by the sender of the message
containing this TLV as an unsigned integer. The minimum value for the
Keepalive field is 1 second. When set to 0, once the session is established,
no further Keepalive messages are sent to the remote peer. A
<bcp14>RECOMMENDED</bcp14> value for the Keepalive frequency is 30
seconds.</dd>
<dt pn="section-7.5-4.1.1.7">DeadTimer (8 bits in length):</dt>
<dd pn="section-7.5-4.1.1.8">Specifies the amount
of time as an unsigned integer number of seconds, after the expiration of
which, the S-CUSP peer can declare the session with the sender of the Hello
message to be down if no S-CUSP message has been received. The DeadTimer
<bcp14>SHOULD</bcp14> be set to 0 and <bcp14>MUST</bcp14> be ignored if the
Keepalive is set to 0. A <bcp14>RECOMMENDED</bcp14> value for the DeadTimer is
4 times the value of the Keepalive.</dd>
<dt pn="section-7.5-4.1.1.9">Reserved:</dt>
<dd pn="section-7.5-4.1.1.10">The Reserved bits <bcp14>MUST</bcp14> be sent as zero and
ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.6">
<name slugifiedName="name-error-information-tlv">Error Information TLV</name>
<t pn="section-7.6-1">
The Error Information TLV is a common TLV that can be used in many
responses (e.g., Update_Response message) and ACK messages (e.g.,
Addr_Allocation_Ack message). It is used to convey the
information about an error in the received S-CUSP message. The
format of the value part of the Error Information TLV is as follows:</t>
<figure anchor="fig41" align="left" suppress-title="false" pn="figure-41">
<name slugifiedName="name-error-information-tlv-2">Error Information TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.6-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message-Type | Reserved | TLV-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.6-3">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.6-4">
<li pn="section-7.6-4.1">
<dl newline="false" spacing="normal" pn="section-7.6-4.1.1">
<dt pn="section-7.6-4.1.1.1">TLV type:</dt>
<dd pn="section-7.6-4.1.1.2">101.</dd>
<dt pn="section-7.6-4.1.1.3">TLV length:</dt>
<dd pn="section-7.6-4.1.1.4">8 octets.</dd>
<dt pn="section-7.6-4.1.1.5">Message-Type (1 byte):</dt>
<dd pn="section-7.6-4.1.1.6">This parameter is the message type of the
message containing an error.</dd>
<dt pn="section-7.6-4.1.1.7">Reserved (1 byte):</dt>
<dd pn="section-7.6-4.1.1.8">
<bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
<dt pn="section-7.6-4.1.1.9">TLV-Type (2 bytes):</dt>
<dd pn="section-7.6-4.1.1.10">Indicates which TLV caused the error.</dd>
<dt pn="section-7.6-4.1.1.11">Error Code:</dt>
<dd pn="section-7.6-4.1.1.12">4 bytes in length. Indicate the specific Error Code
(see <xref target="sect-9.5" format="default" sectionFormat="of" derivedContent="Section 8.5"/>).</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.7" numbered="true" toc="include" removeInRFC="false" pn="section-7.7">
<name slugifiedName="name-bas-function-tlv">BAS Function TLV</name>
<t pn="section-7.7-1">
The BAS Function TLV is used by a CP to control the access mode,
authentication methods, and other related functions of an interface
on a UP.</t>
<t pn="section-7.7-2">The format of the BAS Function TLV value part is as follows:</t>
<figure anchor="fig42" align="left" suppress-title="false" pn="figure-42">
<name slugifiedName="name-bas-function-tlv-2">BAS Function TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.7-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Access-Mode | Auth-Method4 | Auth-Method6 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.7-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.7-5">
<li pn="section-7.7-5.1">
<dl newline="false" spacing="normal" pn="section-7.7-5.1.1">
<dt pn="section-7.7-5.1.1.1">TLV type:</dt>
<dd pn="section-7.7-5.1.1.2">1.</dd>
<dt pn="section-7.7-5.1.1.3">TLV length:</dt>
<dd pn="section-7.7-5.1.1.4">Variable.</dd>
<dt pn="section-7.7-5.1.1.5">If-Index:</dt>
<dd pn="section-7.7-5.1.1.6">4 bytes in length, a unique identifier of an interface of
a BNG.</dd>
<dt pn="section-7.7-5.1.1.7">Access-Mode:</dt>
<dd pn="section-7.7-5.1.1.8">1 byte in length. It indicates the access mode of the
interface. The defined values are listed in <xref target="sect-9.7" format="default" sectionFormat="of" derivedContent="Section 8.7"/>.</dd>
<dt pn="section-7.7-5.1.1.9">Auth-Method4:</dt>
<dd pn="section-7.7-5.1.1.10">1 byte in length. It indicates the authentication on
this interface for the IPv4 scenario. This field is defined as a
bitmap. The bits defined in this document are listed in <xref target="sect-9.8" format="default" sectionFormat="of" derivedContent="Section 8.8"/>. Other bits are reserved and <bcp14>MUST</bcp14> be sent as zero
and ignored on receipt.</dd>
<dt pn="section-7.7-5.1.1.11">Auth-Method6:</dt>
<dd pn="section-7.7-5.1.1.12">1 byte in length. It indicates the authentication on
this interface for the IPv6 scenario. This field is defined as a
bitmap. The bits defined in this document are listed in <xref target="sect-9.8" format="default" sectionFormat="of" derivedContent="Section 8.8"/>. Other bits are reserved and <bcp14>MUST</bcp14> be sent as zero
and ignored on receipt.</dd>
<dt pn="section-7.7-5.1.1.13">Sub-TLVs:</dt>
<dd pn="section-7.7-5.1.1.14">
<t pn="section-7.7-5.1.1.14.1">The IF-Desc sub-TLV can be carried.</t>
<dl newline="false" spacing="normal" pn="section-7.7-5.1.1.14.2">
<dt pn="section-7.7-5.1.1.14.2.1">If-Desc sub-TLV:</dt>
<dd pn="section-7.7-5.1.1.14.2.2">Carries the interface information.</dd>
</dl>
</dd>
<dt pn="section-7.7-5.1.1.15">Flags:</dt>
<dd pn="section-7.7-5.1.1.16">The Flags field is defined as follows:</dd>
</dl>
</li>
</ul>
<figure anchor="fig43" align="left" suppress-title="false" pn="figure-43">
<name slugifiedName="name-interface-flags">Interface Flags</name>
<artwork name="" type="" align="left" alt="" pn="section-7.7-6.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MBZ |Y|X|P|I|N|A|S|F|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.7-7">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.7-8">
<li pn="section-7.7-8.1">
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1">
<dt pn="section-7.7-8.1.1.1">F (IPv4 Trigger) bit:</dt>
<dd pn="section-7.7-8.1.1.2">
<t pn="section-7.7-8.1.1.2.1">Indicates whether IPv4 packets can trigger a
subscriber to go online.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.2.2">
<dt pn="section-7.7-8.1.1.2.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.2.2.2">Enabled.</dd>
<dt pn="section-7.7-8.1.1.2.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.2.2.4">Disabled.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.3">S (IPv6 Trigger) bit:</dt>
<dd pn="section-7.7-8.1.1.4">
<t pn="section-7.7-8.1.1.4.1">Indicates whether IPv6 packets can trigger a
subscriber to go online.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.4.2">
<dt pn="section-7.7-8.1.1.4.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.4.2.2">Enabled.</dd>
<dt pn="section-7.7-8.1.1.4.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.4.2.4">Disabled.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.5">A (ARP Trigger) bit:</dt>
<dd pn="section-7.7-8.1.1.6">
<t pn="section-7.7-8.1.1.6.1">Indicates whether ARP packets can trigger
a subscriber to go online.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.6.2">
<dt pn="section-7.7-8.1.1.6.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.6.2.2">Enabled.</dd>
<dt pn="section-7.7-8.1.1.6.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.6.2.4">Disabled.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.7">N (ND Trigger) bit:</dt>
<dd pn="section-7.7-8.1.1.8">
<t pn="section-7.7-8.1.1.8.1">Indicates whether ND packets can trigger a
subscriber to go online.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.8.2">
<dt pn="section-7.7-8.1.1.8.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.8.2.2">Enabled.</dd>
<dt pn="section-7.7-8.1.1.8.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.8.2.4">Disabled.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.9">I (IPoE-Flow-Check):</dt>
<dd pn="section-7.7-8.1.1.10">
<t pn="section-7.7-8.1.1.10.1">Used for UP detection.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.10.2">
<dt pn="section-7.7-8.1.1.10.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.10.2.2">Enable traffic detection.</dd>
<dt pn="section-7.7-8.1.1.10.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.10.2.4">Disable traffic detection.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.11">P (PPP-Flow-Check) bit:</dt>
<dd pn="section-7.7-8.1.1.12">
<t pn="section-7.7-8.1.1.12.1">Used for UP detection.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.12.2">
<dt pn="section-7.7-8.1.1.12.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.12.2.2">Enable traffic detection.</dd>
<dt pn="section-7.7-8.1.1.12.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.12.2.4">Disable traffic detection.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.13">X (ARP-Proxy) bit:</dt>
<dd pn="section-7.7-8.1.1.14">
<t pn="section-7.7-8.1.1.14.1">Indicates whether ARP proxy is enabled on the interface.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.14.2">
<dt pn="section-7.7-8.1.1.14.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.14.2.2">The interface is enabled with ARP proxy and can
process ARP requests across different network ports and VLANs.</dd>
<dt pn="section-7.7-8.1.1.14.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.14.2.4">The ARP proxy is not enabled on the interface and
only the ARP requests of the same network port and VLAN are processed.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.15">Y (ND-Proxy) bit:</dt>
<dd pn="section-7.7-8.1.1.16">
<t pn="section-7.7-8.1.1.16.1">Indicates whether ND proxy is enabled on the interface.</t>
<dl newline="false" spacing="normal" pn="section-7.7-8.1.1.16.2">
<dt pn="section-7.7-8.1.1.16.2.1">1:</dt>
<dd pn="section-7.7-8.1.1.16.2.2">The interface is enabled with ND proxy and can
process ND requests across different network ports and VLANs.</dd>
<dt pn="section-7.7-8.1.1.16.2.3">0:</dt>
<dd pn="section-7.7-8.1.1.16.2.4">The ND proxy is not enabled on the interface and
only the ND requests of the same network port and VLAN are processed.</dd>
</dl>
</dd>
<dt pn="section-7.7-8.1.1.17">MBZ:</dt>
<dd pn="section-7.7-8.1.1.18">Reserved bits that <bcp14>MUST</bcp14> be sent as
zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.8" numbered="true" toc="include" removeInRFC="false" pn="section-7.8">
<name slugifiedName="name-routing-tlvs">Routing TLVs</name>
<t pn="section-7.8-1">
Typically, after an S-CUSP session is established between a UP and a
CP, the CP will allocate one or more blocks of IP addresses to the
UP. Those IP addresses will be allocated to subscribers who will
dial-up (as defined in <xref target="sect-4.3.1" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/>) to the UP. To make sure that
other nodes within the network learn how to reach those IP addresses,
the CP needs to install one or more routes that can reach those IP
addresses on the UP and notify the UP to advertise the routes to the
network.</t>
<t pn="section-7.8-2">
The Routing TLVs are used by a CP to notify a UP of the updates to
network routing information. They can be carried in the
Update_Request message and Sync_Data message.</t>
<section anchor="sect-7.8.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.8.1">
<name slugifiedName="name-ipv4-routing-tlv">IPv4 Routing TLV</name>
<t pn="section-7.8.1-1">
The IPv4 Routing TLV is used to carry information related to IPv4
network routing.</t>
<t pn="section-7.8.1-2">The format of the TLV value part is as below:</t>
<figure anchor="fig44" align="left" suppress-title="false" pn="figure-44">
<name slugifiedName="name-ipv4-routing-tlv-2">IPv4 Routing TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.8.1-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dest-Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next-Hop |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Out-If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cost |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route-Type | Reserved |A|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.8.1-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.8.1-5">
<li pn="section-7.8.1-5.1">
<dl newline="false" spacing="normal" pn="section-7.8.1-5.1.1">
<dt pn="section-7.8.1-5.1.1.1">TLV type:</dt>
<dd pn="section-7.8.1-5.1.1.2">7.</dd>
<dt pn="section-7.8.1-5.1.1.3">TLV length:</dt>
<dd pn="section-7.8.1-5.1.1.4">Variable.</dd>
<dt pn="section-7.8.1-5.1.1.5">User-ID:</dt>
<dd pn="section-7.8.1-5.1.1.6">4 bytes in length. This field carries the user
identifier. It is filled with all Fs when a non-user route is
delivered to the UP.</dd>
<dt pn="section-7.8.1-5.1.1.7">Dest-Address (IPv4-Address type):</dt>
<dd pn="section-7.8.1-5.1.1.8">Identifies the destination
address.</dd>
<dt pn="section-7.8.1-5.1.1.9">Next-Hop (IPv4-Address type):</dt>
<dd pn="section-7.8.1-5.1.1.10">Identifies the next-hop address.</dd>
<dt pn="section-7.8.1-5.1.1.11">Out-If-Index (4 bytes):</dt>
<dd pn="section-7.8.1-5.1.1.12">Indicates the interface index.</dd>
<dt pn="section-7.8.1-5.1.1.13">Cost (4 bytes):</dt>
<dd pn="section-7.8.1-5.1.1.14">The cost value of the route.</dd>
<dt pn="section-7.8.1-5.1.1.15">Tag (4 bytes):</dt>
<dd pn="section-7.8.1-5.1.1.16">The tag value of the route.</dd>
<dt pn="section-7.8.1-5.1.1.17">Route-Type (2 bytes):</dt>
<dd pn="section-7.8.1-5.1.1.18">The value of this field
indicates the route type. The values defined in this document are
listed in <xref target="sect-9.9" format="default" sectionFormat="of" derivedContent="Section 8.9"/>.</dd>
<dt pn="section-7.8.1-5.1.1.19">Advertise-Flag:</dt>
<dd pn="section-7.8.1-5.1.1.20">
<t pn="section-7.8.1-5.1.1.20.1">1 bit shown as "A" in the figure above
(<xref target="fig44" format="default" sectionFormat="of" derivedContent="Figure 44"/>). Indicates whether the
UP should advertise the route. The following flag values are
defined:</t>
<dl newline="false" spacing="normal" pn="section-7.8.1-5.1.1.20.2">
<dt pn="section-7.8.1-5.1.1.20.2.1">0:</dt>
<dd pn="section-7.8.1-5.1.1.20.2.2">Not advertised.</dd>
<dt pn="section-7.8.1-5.1.1.20.2.3">1:</dt>
<dd pn="section-7.8.1-5.1.1.20.2.4">Advertised.</dd>
</dl>
</dd>
<dt pn="section-7.8.1-5.1.1.21">Sub-TLVs:</dt>
<dd pn="section-7.8.1-5.1.1.22">
<t pn="section-7.8.1-5.1.1.22.1">The VRF-Name and/or If-Desc sub-TLVs
can be carried.</t>
<dl newline="false" spacing="normal" pn="section-7.8.1-5.1.1.22.2">
<dt pn="section-7.8.1-5.1.1.22.2.1">VRF-Name sub-TLV:</dt>
<dd pn="section-7.8.1-5.1.1.22.2.2">Indicates which VRF the route
belongs to.</dd>
<dt pn="section-7.8.1-5.1.1.22.2.3">If-Desc sub-TLV:</dt>
<dd pn="section-7.8.1-5.1.1.22.2.4">Carries the interface information.</dd>
</dl>
</dd>
<dt pn="section-7.8.1-5.1.1.23">Reserved:</dt>
<dd pn="section-7.8.1-5.1.1.24">The Reserved field <bcp14>MUST</bcp14> be
sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.8.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.8.2">
<name slugifiedName="name-ipv6-routing-tlv">IPv6 Routing TLV</name>
<t pn="section-7.8.2-1">
The IPv6 Routing TLV is used to carry IPv6 network routing
information.</t>
<t pn="section-7.8.2-2">The format of the value part of this TLV is as follows:</t>
<figure anchor="fig45" align="left" suppress-title="false" pn="figure-45">
<name slugifiedName="name-ipv6-routing-tlv-2">IPv6 Routing TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.8.2-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ IPv6 Dest-Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ IPv6 Next-Hop ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Out-If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cost |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route-Type | Reserved |A|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.8.2-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.8.2-5">
<li pn="section-7.8.2-5.1">
<dl newline="false" spacing="normal" pn="section-7.8.2-5.1.1">
<dt pn="section-7.8.2-5.1.1.1">TLV type:</dt>
<dd pn="section-7.8.2-5.1.1.2">8.</dd>
<dt pn="section-7.8.2-5.1.1.3">TLV length:</dt>
<dd pn="section-7.8.2-5.1.1.4">Variable.</dd>
<dt pn="section-7.8.2-5.1.1.5">User-ID:</dt>
<dd pn="section-7.8.2-5.1.1.6">4 bytes in length. This field carries the user identifier.
This field is filled with all Fs when a non-user route is delivered to
the UP.</dd>
<dt pn="section-7.8.2-5.1.1.7">IPv6 Dest-Address (IPv6-Address type):</dt>
<dd pn="section-7.8.2-5.1.1.8">Identifies the destination
address.</dd>
<dt pn="section-7.8.2-5.1.1.9">IPv6 Next-Hop (IPv6-Address type):</dt>
<dd pn="section-7.8.2-5.1.1.10">Identifies the next-hop
address.</dd>
<dt pn="section-7.8.2-5.1.1.11">Out-If-Index (4 bytes):</dt>
<dd pn="section-7.8.2-5.1.1.12">Indicates the interface index.</dd>
<dt pn="section-7.8.2-5.1.1.13">Cost (4 bytes):</dt>
<dd pn="section-7.8.2-5.1.1.14">This is the cost value of the route.</dd>
<dt pn="section-7.8.2-5.1.1.15">Tag (4 bytes):</dt>
<dd pn="section-7.8.2-5.1.1.16">The tag value of the route.</dd>
<dt pn="section-7.8.2-5.1.1.17">Route-Type (2 bytes):</dt>
<dd pn="section-7.8.2-5.1.1.18">The value of this field
indicates the route type. The values defined in this document are
listed in <xref target="sect-9.9" format="default" sectionFormat="of" derivedContent="Section 8.9"/>.</dd>
<dt pn="section-7.8.2-5.1.1.19">Advertise-Flag:</dt>
<dd pn="section-7.8.2-5.1.1.20">
<t pn="section-7.8.2-5.1.1.20.1">1 bit shown as "A" in the figure
above (<xref target="fig45" format="default" sectionFormat="of" derivedContent="Figure 45"/>). Indicates
whether the UP should advertise the route. The following flags
are defined:</t>
<dl newline="false" spacing="normal" pn="section-7.8.2-5.1.1.20.2">
<dt pn="section-7.8.2-5.1.1.20.2.1">0:</dt>
<dd pn="section-7.8.2-5.1.1.20.2.2">Not advertised.</dd>
<dt pn="section-7.8.2-5.1.1.20.2.3">1:</dt>
<dd pn="section-7.8.2-5.1.1.20.2.4">Advertised.</dd>
</dl>
</dd>
<dt pn="section-7.8.2-5.1.1.21">Sub-TLVs:</dt>
<dd pn="section-7.8.2-5.1.1.22">
<t pn="section-7.8.2-5.1.1.22.1">The If-Desc and VRF-Name sub-TLVs can be carried.</t>
<dl newline="false" spacing="normal" pn="section-7.8.2-5.1.1.22.2">
<dt pn="section-7.8.2-5.1.1.22.2.1">VRF-Name sub-TLV:</dt>
<dd pn="section-7.8.2-5.1.1.22.2.2">Indicates the VRF to which the subscriber
belongs.</dd>
<dt pn="section-7.8.2-5.1.1.22.2.3">If-Desc sub-TLV:</dt>
<dd pn="section-7.8.2-5.1.1.22.2.4">Carries the interface information.</dd>
</dl>
</dd>
<dt pn="section-7.8.2-5.1.1.23">Reserved:</dt>
<dd pn="section-7.8.2-5.1.1.24">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
</section>
<section anchor="sect-7.9" numbered="true" toc="include" removeInRFC="false" pn="section-7.9">
<name slugifiedName="name-subscriber-tlvs">Subscriber TLVs</name>
<t pn="section-7.9-1">
The Subscriber TLVs are defined for a CP to send the basic
information about a user to a UP.</t>
<section anchor="sect-7.9.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.1">
<name slugifiedName="name-basic-subscriber-tlv">Basic Subscriber TLV</name>
<t pn="section-7.9.1-1">
The Basic Subscriber TLV is used to carry the common
information for all kinds of access subscribers. It is carried in an
Update_Request message.</t>
<t pn="section-7.9.1-2">The format of the Basic Subscriber TLV value part is as follows:</t>
<figure anchor="fig46" align="left" suppress-title="false" pn="figure-46">
<name slugifiedName="name-basic-subscriber-tlv-2">Basic Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.1-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-MAC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-MAC (cont.) | Oper-ID | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Access-Type |Sub-Access-Type| Account-Type | Address Family|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-VID | P-VID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Detect-Times | Detect-Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.1-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.1-5">
<li pn="section-7.9.1-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1">
<dt pn="section-7.9.1-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.1-5.1.1.2">2.</dd>
<dt pn="section-7.9.1-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.1-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.1-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.1-5.1.1.6">The identifier of a subscriber.</dd>
<dt pn="section-7.9.1-5.1.1.7">Session-ID (4 bytes):</dt>
<dd pn="section-7.9.1-5.1.1.8">Session ID of a PPPoE subscriber.
The value zero identifies a non-PPPoE subscriber.</dd>
<dt pn="section-7.9.1-5.1.1.9">User-MAC (MAC-Addr type):</dt>
<dd pn="section-7.9.1-5.1.1.10">The MAC address of a subscriber.</dd>
<dt pn="section-7.9.1-5.1.1.11">Oper-ID (1 byte):</dt>
<dd pn="section-7.9.1-5.1.1.12">Indicates the ID of an operation performed by a
user. This field is carried in the response from the UP.</dd>
<dt pn="section-7.9.1-5.1.1.13">Reserved (1 byte):</dt>
<dd pn="section-7.9.1-5.1.1.14">
<bcp14>MUST</bcp14> be sent as zero
and ignored on receipt.</dd>
<dt pn="section-7.9.1-5.1.1.15">Access-Type (1 byte):</dt>
<dd pn="section-7.9.1-5.1.1.16">Indicates the type of subscriber
access. Values defined in this document are listed in <xref target="sect-9.10" format="default" sectionFormat="of" derivedContent="Section 8.10"/>.</dd>
<dt pn="section-7.9.1-5.1.1.17">Sub-Access-Type (1 byte):</dt>
<dd pn="section-7.9.1-5.1.1.18">
<t pn="section-7.9.1-5.1.1.18.1">Indicates whether PPP termination or PPP relay is used.</t>
<dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.18.2">
<dt pn="section-7.9.1-5.1.1.18.2.1">0:</dt>
<dd pn="section-7.9.1-5.1.1.18.2.2">Reserved.</dd>
<dt pn="section-7.9.1-5.1.1.18.2.3">1:</dt>
<dd pn="section-7.9.1-5.1.1.18.2.4">PPP Relay (for LAC).</dd>
<dt pn="section-7.9.1-5.1.1.18.2.5">2:</dt>
<dd pn="section-7.9.1-5.1.1.18.2.6">PPP termination (for LNS).</dd>
</dl>
</dd>
<dt pn="section-7.9.1-5.1.1.19">Account-Type (1 byte):</dt>
<dd pn="section-7.9.1-5.1.1.20">
<t pn="section-7.9.1-5.1.1.20.1">Indicates whether traffic statistics are collected independently. </t>
<dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.20.2">
<dt pn="section-7.9.1-5.1.1.20.2.1">0:</dt>
<dd pn="section-7.9.1-5.1.1.20.2.2">Collects statistics on IPv4 and
IPv6 traffic of terminals independently.</dd>
<dt pn="section-7.9.1-5.1.1.20.2.3">1:</dt>
<dd pn="section-7.9.1-5.1.1.20.2.4">Collects statistics on IPv4 and IPv6
traffic of terminals.</dd>
</dl>
</dd>
<dt pn="section-7.9.1-5.1.1.21">Address Family (1 byte):</dt>
<dd pn="section-7.9.1-5.1.1.22">
<t pn="section-7.9.1-5.1.1.22.1">The type of IP address.</t>
<dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.22.2">
<dt pn="section-7.9.1-5.1.1.22.2.1">1:</dt>
<dd pn="section-7.9.1-5.1.1.22.2.2">IPv4.</dd>
<dt pn="section-7.9.1-5.1.1.22.2.3">2:</dt>
<dd pn="section-7.9.1-5.1.1.22.2.4">IPv6.</dd>
<dt pn="section-7.9.1-5.1.1.22.2.5">3:</dt>
<dd pn="section-7.9.1-5.1.1.22.2.6">Dual stack.</dd>
</dl>
</dd>
<dt pn="section-7.9.1-5.1.1.23">C-VID (VLAN-ID):</dt>
<dd pn="section-7.9.1-5.1.1.24">Indicates the inner VLAN ID. The value 0
indicates that the VLAN ID is invalid. The default value of PRI is 7,
the value of DEI is 0, and the value of VID is 1-4094. The PRI value
can also be obtained by parsing terminal packets.</dd>
<dt pn="section-7.9.1-5.1.1.25">P-VID (VLAN-ID):</dt>
<dd pn="section-7.9.1-5.1.1.26">Indicates the outer VLAN ID. The value 0
indicates that the VLAN ID is invalid. The format is the same as that
for C-VID.</dd>
<dt pn="section-7.9.1-5.1.1.27">Detect-Times (2 bytes):</dt>
<dd pn="section-7.9.1-5.1.1.28">Number of detection timeout times. The
value 0 indicates that no detection is performed.</dd>
<dt pn="section-7.9.1-5.1.1.29">Detect-Interval (2 bytes):</dt>
<dd pn="section-7.9.1-5.1.1.30">Detection interval in
seconds.</dd>
<dt pn="section-7.9.1-5.1.1.31">If-Index (4 bytes):</dt>
<dd pn="section-7.9.1-5.1.1.32">Interface index.</dd>
<dt pn="section-7.9.1-5.1.1.33">Sub-TLVs:</dt>
<dd pn="section-7.9.1-5.1.1.34">
<t pn="section-7.9.1-5.1.1.34.1">The VRF-Name sub-TLV and If-Desc sub-TLV can
be carried.</t>
<dl newline="false" spacing="normal" pn="section-7.9.1-5.1.1.34.2">
<dt pn="section-7.9.1-5.1.1.34.2.1">VRF-Name sub-TLV:</dt>
<dd pn="section-7.9.1-5.1.1.34.2.2">Indicates the VRF to which the
subscriber belongs.</dd>
<dt pn="section-7.9.1-5.1.1.34.2.3">If-Desc sub-TLV:</dt>
<dd pn="section-7.9.1-5.1.1.34.2.4">Carries the interface information.</dd>
</dl>
</dd>
<dt pn="section-7.9.1-5.1.1.35">Reserved:</dt>
<dd pn="section-7.9.1-5.1.1.36">The Reserved field <bcp14>MUST</bcp14> be sent as
zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.2">
<name slugifiedName="name-ppp-subscriber-tlv">PPP Subscriber TLV</name>
<t pn="section-7.9.2-1">
The PPP Subscriber TLV is defined to carry PPP information of a user
from a CP to a UP. It will be carried in an Update_Request message
when PPPoE or L2TP access is used.</t>
<t pn="section-7.9.2-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig47" align="left" suppress-title="false" pn="figure-47">
<name slugifiedName="name-ppp-subscriber-tlv-2">PPP Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.2-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MSS-Value | Reserved |M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MRU | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic-Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Peer-Magic-Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.2-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.2-5">
<li pn="section-7.9.2-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.2-5.1.1">
<dt pn="section-7.9.2-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.2-5.1.1.2">3.</dd>
<dt pn="section-7.9.2-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.2-5.1.1.4">12 octets.</dd>
<dt pn="section-7.9.2-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.2-5.1.1.6">The identifier of a subscriber.</dd>
<dt pn="section-7.9.2-5.1.1.7">MSS-Value (2 bytes):</dt>
<dd pn="section-7.9.2-5.1.1.8">Indicates the MSS value (in
bytes).</dd>
<dt pn="section-7.9.2-5.1.1.9">MSS-Enable (M) (1 bit):</dt>
<dd pn="section-7.9.2-5.1.1.10">
<t pn="section-7.9.2-5.1.1.10.1">Indicates whether the MSS
is enabled.</t>
<dl newline="false" spacing="normal" pn="section-7.9.2-5.1.1.10.2">
<dt pn="section-7.9.2-5.1.1.10.2.1">0:</dt>
<dd pn="section-7.9.2-5.1.1.10.2.2">Disabled.</dd>
<dt pn="section-7.9.2-5.1.1.10.2.3">1:</dt>
<dd pn="section-7.9.2-5.1.1.10.2.4">Enabled.</dd>
</dl>
</dd>
<dt pn="section-7.9.2-5.1.1.11">MRU (2 bytes):</dt>
<dd pn="section-7.9.2-5.1.1.12">PPPoE local MRU (in bytes).</dd>
<dt pn="section-7.9.2-5.1.1.13">Magic-Number (4 bytes):</dt>
<dd pn="section-7.9.2-5.1.1.14">Local magic number in PPP negotiation
packets.</dd>
<dt pn="section-7.9.2-5.1.1.15">Peer-Magic-Number (4 bytes):</dt>
<dd pn="section-7.9.2-5.1.1.16">Remote peer magic number.</dd>
<dt pn="section-7.9.2-5.1.1.17">Reserved:</dt>
<dd pn="section-7.9.2-5.1.1.18">The Reserved fields <bcp14>MUST</bcp14> be
sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.3">
<name slugifiedName="name-ipv4-subscriber-tlv">IPv4 Subscriber TLV</name>
<t pn="section-7.9.3-1">
The IPv4 Subscriber TLV is defined to carry IPv4-related information
for a BNG user. It will be carried in an Update_Request message when
IPv4 IPoE or PPPoE access is used.</t>
<t pn="section-7.9.3-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig48" align="left" suppress-title="false" pn="figure-48">
<name slugifiedName="name-ipv4-subscriber-tlv-2">IPv4 Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.3-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-IPv4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway-IPv4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTU | Reserved |U|E|W|P|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ VRF-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.3-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.3-5">
<li pn="section-7.9.3-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1">
<dt pn="section-7.9.3-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.3-5.1.1.2">4.</dd>
<dt pn="section-7.9.3-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.3-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.3-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.3-5.1.1.6">The identifier of a subscriber.</dd>
<dt pn="section-7.9.3-5.1.1.7">User-IPv4 (IPv4-Address):</dt>
<dd pn="section-7.9.3-5.1.1.8">The IPv4 address of the subscriber.</dd>
<dt pn="section-7.9.3-5.1.1.9">Gateway-IPv4 (IPv4-Address):</dt>
<dd pn="section-7.9.3-5.1.1.10">The gateway address of the
subscriber.</dd>
<dt pn="section-7.9.3-5.1.1.11">Portal-Force (P) (1 bit):</dt>
<dd pn="section-7.9.3-5.1.1.12">
<t pn="section-7.9.3-5.1.1.12.1">Push advertisement.</t>
<dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.12.2">
<dt pn="section-7.9.3-5.1.1.12.2.1">0:</dt>
<dd pn="section-7.9.3-5.1.1.12.2.2">Off.</dd>
<dt pn="section-7.9.3-5.1.1.12.2.3">1:</dt>
<dd pn="section-7.9.3-5.1.1.12.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.3-5.1.1.13">Web-Force (W) (1 bit):</dt>
<dd pn="section-7.9.3-5.1.1.14">
<t pn="section-7.9.3-5.1.1.14.1">Push IPv4 Web.</t>
<dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.14.2">
<dt pn="section-7.9.3-5.1.1.14.2.1">0:</dt>
<dd pn="section-7.9.3-5.1.1.14.2.2">Off.</dd>
<dt pn="section-7.9.3-5.1.1.14.2.3">1:</dt>
<dd pn="section-7.9.3-5.1.1.14.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.3-5.1.1.15">Echo-Enable (E) (1 bit):</dt>
<dd pn="section-7.9.3-5.1.1.16">
<t pn="section-7.9.3-5.1.1.16.1">UP returns ARP Req or PPP Echo.</t>
<dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.16.2">
<dt pn="section-7.9.3-5.1.1.16.2.1">0:</dt>
<dd pn="section-7.9.3-5.1.1.16.2.2">Off.</dd>
<dt pn="section-7.9.3-5.1.1.16.2.3">1:</dt>
<dd pn="section-7.9.3-5.1.1.16.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.3-5.1.1.17">IPv4-URPF (U) (1 bit):</dt>
<dd pn="section-7.9.3-5.1.1.18">
<t pn="section-7.9.3-5.1.1.18.1">User Unicast Reverse Path Forwarding (URPF)
flag.</t>
<dl newline="false" spacing="normal" pn="section-7.9.3-5.1.1.18.2">
<dt pn="section-7.9.3-5.1.1.18.2.1">0:</dt>
<dd pn="section-7.9.3-5.1.1.18.2.2">Off.</dd>
<dt pn="section-7.9.3-5.1.1.18.2.3">1:</dt>
<dd pn="section-7.9.3-5.1.1.18.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.3-5.1.1.19">MTU (2 bytes):</dt>
<dd pn="section-7.9.3-5.1.1.20">MTU value. The default value is 1500.</dd>
<dt pn="section-7.9.3-5.1.1.21">VRF-Name Sub-TLV:</dt>
<dd pn="section-7.9.3-5.1.1.22">Indicates the subscriber belongs to which VRF.</dd>
<dt pn="section-7.9.3-5.1.1.23">Reserved:</dt>
<dd pn="section-7.9.3-5.1.1.24">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.4">
<name slugifiedName="name-ipv6-subscriber-tlv">IPv6 Subscriber TLV</name>
<t pn="section-7.9.4-1">
The IPv6 Subscriber TLV is defined to carry IPv6-related information
for a BNG user. It will be carried in an Update_Request message when
IPv6 IPoE or PPPoE access is used.</t>
<t pn="section-7.9.4-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig49" align="left" suppress-title="false" pn="figure-49">
<name slugifiedName="name-ipv6-subscriber-tlv-2">IPv6 Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.4-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ User PD-Address (IPv6 Address List Sub-TLV) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Gateway ND-Address (IPv6 Address List Sub-TLV) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User Link-Local-Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 Interface ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 Interface ID (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTU | Reserved |U|E|W|P|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ VRF Name Sub-TLV (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.4-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.4-5">
<li pn="section-7.9.4-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1">
<dt pn="section-7.9.4-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.4-5.1.1.2">5.</dd>
<dt pn="section-7.9.4-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.4-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.4-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.4-5.1.1.6">The identifier of a subscriber.</dd>
<dt pn="section-7.9.4-5.1.1.7">User PD-Addresses (IPv6 Address List):</dt>
<dd pn="section-7.9.4-5.1.1.8">Carries a list of Prefix
Delegation (PD) addresses of the subscriber.</dd>
<dt pn="section-7.9.4-5.1.1.9">User ND-Addresses (IPv6 Address List):</dt>
<dd pn="section-7.9.4-5.1.1.10">Carries a list of Neighbor
Discovery (ND) addresses of the subscriber.</dd>
<dt pn="section-7.9.4-5.1.1.11">User Link-Local-Address (IPv6-Address):</dt>
<dd pn="section-7.9.4-5.1.1.12">The link-local address of
the subscriber.</dd>
<dt pn="section-7.9.4-5.1.1.13">IPv6 Interface ID (8 bytes):</dt>
<dd pn="section-7.9.4-5.1.1.14">The identifier of an IPv6
interface.</dd>
<dt pn="section-7.9.4-5.1.1.15">Portal-Force 1 bit (P):</dt>
<dd pn="section-7.9.4-5.1.1.16">
<t pn="section-7.9.4-5.1.1.16.1">Push advertisement.</t>
<dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.16.2">
<dt pn="section-7.9.4-5.1.1.16.2.1">0:</dt>
<dd pn="section-7.9.4-5.1.1.16.2.2">Off.</dd>
<dt pn="section-7.9.4-5.1.1.16.2.3">1:</dt>
<dd pn="section-7.9.4-5.1.1.16.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.4-5.1.1.17">Web-Force 1 bit (W):</dt>
<dd pn="section-7.9.4-5.1.1.18">
<t pn="section-7.9.4-5.1.1.18.1">Push IPv6 Web.</t>
<dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.18.2">
<dt pn="section-7.9.4-5.1.1.18.2.1">0:</dt>
<dd pn="section-7.9.4-5.1.1.18.2.2">Off.</dd>
<dt pn="section-7.9.4-5.1.1.18.2.3">1:</dt>
<dd pn="section-7.9.4-5.1.1.18.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.4-5.1.1.19">Echo-Enable 1 bit (E):</dt>
<dd pn="section-7.9.4-5.1.1.20">
<t pn="section-7.9.4-5.1.1.20.1">The UP returns ARP Req or
PPP Echo.</t>
<dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.20.2">
<dt pn="section-7.9.4-5.1.1.20.2.1">0:</dt>
<dd pn="section-7.9.4-5.1.1.20.2.2">Off.</dd>
<dt pn="section-7.9.4-5.1.1.20.2.3">1:</dt>
<dd pn="section-7.9.4-5.1.1.20.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.4-5.1.1.21">IPv6-URPF 1 bit (U):</dt>
<dd pn="section-7.9.4-5.1.1.22">
<t pn="section-7.9.4-5.1.1.22.1">User Reverse Path Forwarding
(URPF) flag.</t>
<dl newline="false" spacing="normal" pn="section-7.9.4-5.1.1.22.2">
<dt pn="section-7.9.4-5.1.1.22.2.1">0:</dt>
<dd pn="section-7.9.4-5.1.1.22.2.2">Off.</dd>
<dt pn="section-7.9.4-5.1.1.22.2.3">1:</dt>
<dd pn="section-7.9.4-5.1.1.22.2.4">On.</dd>
</dl>
</dd>
<dt pn="section-7.9.4-5.1.1.23">MTU (2 bytes):</dt>
<dd pn="section-7.9.4-5.1.1.24">The MTU value. The default value is 1500.</dd>
<dt pn="section-7.9.4-5.1.1.25">VRF-Name Sub-TLV:</dt>
<dd pn="section-7.9.4-5.1.1.26">Indicates the VRF to which the subscriber
belongs.</dd>
<dt pn="section-7.9.4-5.1.1.27">Reserved:</dt>
<dd pn="section-7.9.4-5.1.1.28">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on
receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.5">
<name slugifiedName="name-ipv4-static-subscriber-dete">IPv4 Static Subscriber Detect TLV</name>
<t pn="section-7.9.5-1">
The IPv4 Static Subscriber Detect TLV is defined to carry IPv4-related
information for a static access subscriber. It will be
carried in an Update_Request message when IPv4 static access on a UP
needs to be enabled.</t>
<t pn="section-7.9.5-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig50" align="left" suppress-title="false" pn="figure-50">
<name slugifiedName="name-ipv4-static-subscriber-tlv">IPv4 Static Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.5-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-VID | P-VID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-MAC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-MAC (cont.) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.5-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.5-5">
<li pn="section-7.9.5-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.5-5.1.1">
<dt pn="section-7.9.5-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.5-5.1.1.2">9.</dd>
<dt pn="section-7.9.5-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.5-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.5-5.1.1.5">If-Index (4 bytes):</dt>
<dd pn="section-7.9.5-5.1.1.6">The interface index of the interface from which
the subscriber will dial-up.</dd>
<dt pn="section-7.9.5-5.1.1.7">C-VID (VLAN-ID):</dt>
<dd pn="section-7.9.5-5.1.1.8">Indicates the inner VLAN ID. The value 0
indicates that the VLAN ID is invalid. A valid value is 1-4094.</dd>
<dt pn="section-7.9.5-5.1.1.9">P-VID (VLAN-ID):</dt>
<dd pn="section-7.9.5-5.1.1.10">Indicates the outer VLAN ID. The value 0
indicates that the VLAN ID is invalid. The format is the same as that
of the C-VID. A valid value is 1-4094. </dd>
<dt pn="section-7.9.5-5.1.1.11">User Address (IPv4-Addr):</dt>
<dd pn="section-7.9.5-5.1.1.12">The user's IPv4 address.</dd>
<dt pn="section-7.9.5-5.1.1.13">Gateway Address (IPv4-Addr):</dt>
<dd pn="section-7.9.5-5.1.1.14">The gateway's IPv4 address.</dd>
<dt pn="section-7.9.5-5.1.1.15">User-MAC (MAC-Addr type):</dt>
<dd pn="section-7.9.5-5.1.1.16">The MAC address of the subscriber.</dd>
<dt pn="section-7.9.5-5.1.1.17">Sub-TLVs:</dt>
<dd pn="section-7.9.5-5.1.1.18">
<t pn="section-7.9.5-5.1.1.18.1">The VRF-Name and If-Desc sub-TLVs may be
carried.</t>
<dl newline="false" spacing="normal" pn="section-7.9.5-5.1.1.18.2">
<dt pn="section-7.9.5-5.1.1.18.2.1">VRF-Name sub-TLV:</dt>
<dd pn="section-7.9.5-5.1.1.18.2.2">Indicates the VRF to which the subscriber
belongs.</dd>
<dt pn="section-7.9.5-5.1.1.18.2.3">If-Desc sub-TLV:</dt>
<dd pn="section-7.9.5-5.1.1.18.2.4">Carries the interface information.</dd>
</dl>
</dd>
<dt pn="section-7.9.5-5.1.1.19">Reserved:</dt>
<dd pn="section-7.9.5-5.1.1.20">The Reserved field <bcp14>MUST</bcp14> be
sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.6">
<name slugifiedName="name-ipv6-static-subscriber-dete">IPv6 Static Subscriber Detect TLV</name>
<t pn="section-7.9.6-1">
The IPv6 Static Subscriber Detect TLV is defined to carry IPv6-related
information for a static access subscriber. It will be
carried in an Update_Request message when needed to enable IPv6
static subscriber detection on a UP.</t>
<t pn="section-7.9.6-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig51" align="left" suppress-title="false" pn="figure-51">
<name slugifiedName="name-ipv6-static-subscriber-detec">IPv6 Static Subscriber Detect TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.6-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| C-VID | P-VID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ User Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Gateway Address ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-MAC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-MAC (cont.) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.6-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.6-5">
<li pn="section-7.9.6-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.6-5.1.1">
<dt pn="section-7.9.6-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.6-5.1.1.2">10.</dd>
<dt pn="section-7.9.6-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.6-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.6-5.1.1.5">If-Index (4 bytes):</dt>
<dd pn="section-7.9.6-5.1.1.6">The interface index of the interface from which
the subscriber will dial-up.</dd>
<dt pn="section-7.9.6-5.1.1.7">C-VID (VLAN-ID):</dt>
<dd pn="section-7.9.6-5.1.1.8">Indicates the inner VLAN ID. The value 0
indicates that the VLAN ID is invalid. A valid value is 1-4094.</dd>
<dt pn="section-7.9.6-5.1.1.9">P-VID (VLAN-ID):</dt>
<dd pn="section-7.9.6-5.1.1.10">Indicates the outer VLAN ID. The value 0
indicates that the VLAN ID is invalid. The format is the same as that
the of C-VID. A valid value is 1-4094.</dd>
<dt pn="section-7.9.6-5.1.1.11">User Address (IPv6-Address type):</dt>
<dd pn="section-7.9.6-5.1.1.12">The subscriber's IPv6 address.</dd>
<dt pn="section-7.9.6-5.1.1.13">Gateway Address (IPv6-Address type):</dt>
<dd pn="section-7.9.6-5.1.1.14">The gateway's
IPv6 Address.</dd>
<dt pn="section-7.9.6-5.1.1.15">User-MAC (MAC-Addr type):</dt>
<dd pn="section-7.9.6-5.1.1.16">The MAC
address of the subscriber.</dd>
<dt pn="section-7.9.6-5.1.1.17">Sub-TLVs:</dt>
<dd pn="section-7.9.6-5.1.1.18">
<t pn="section-7.9.6-5.1.1.18.1">VRF-Name and If-Desc sub-TLVs may be carried</t>
<dl newline="false" spacing="normal" pn="section-7.9.6-5.1.1.18.2">
<dt pn="section-7.9.6-5.1.1.18.2.1">VRF-Name sub-TLV:</dt>
<dd pn="section-7.9.6-5.1.1.18.2.2">Indicates the VRF to which the
subscriber belongs.</dd>
<dt pn="section-7.9.6-5.1.1.18.2.3">If-Desc sub-TLV:</dt>
<dd pn="section-7.9.6-5.1.1.18.2.4">Carries the interface information.</dd>
</dl>
</dd>
<dt pn="section-7.9.6-5.1.1.19">Reserved:</dt>
<dd pn="section-7.9.6-5.1.1.20">The Reserved field <bcp14>MUST</bcp14> be
sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.7" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.7">
<name slugifiedName="name-l2tp-lac-subscriber-tlv">L2TP-LAC Subscriber TLV</name>
<t pn="section-7.9.7-1">
The L2TP-LAC Subscriber TLV is defined to carry the related
information for an L2TP LAC access subscriber. It will be carried in
an Update_Request message when L2TP LAC access is used.</t>
<t pn="section-7.9.7-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig52" align="left" suppress-title="false" pn="figure-52">
<name slugifiedName="name-l2tp-lac-subscriber-tlv-2">L2TP-LAC Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.7-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local-Tunnel-ID | Local-Session-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote-Tunnel-ID | Remote-Session-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.7-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.7-5">
<li pn="section-7.9.7-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.7-5.1.1">
<dt pn="section-7.9.7-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.7-5.1.1.2">11.</dd>
<dt pn="section-7.9.7-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.7-5.1.1.4">12 octets.</dd>
<dt pn="section-7.9.7-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.7-5.1.1.6">The identifier of a user/subscriber.</dd>
<dt pn="section-7.9.7-5.1.1.7">Local-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.7-5.1.1.8">The local ID of the L2TP tunnel.</dd>
<dt pn="section-7.9.7-5.1.1.9">Local-Session-ID (2 bytes):</dt>
<dd pn="section-7.9.7-5.1.1.10">The local session ID with the L2TP
tunnel.</dd>
<dt pn="section-7.9.7-5.1.1.11">Remote-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.7-5.1.1.12">The identifier of the L2TP tunnel at
the remote endpoint.</dd>
<dt pn="section-7.9.7-5.1.1.13">Remote-Session-ID (2 bytes):</dt>
<dd pn="section-7.9.7-5.1.1.14">The session ID of the L2TP tunnel at
the remote endpoint.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.8" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.8">
<name slugifiedName="name-l2tp-lns-subscriber-tlv">L2TP-LNS Subscriber TLV</name>
<t pn="section-7.9.8-1">
The L2TP-LNS Subscriber TLV is defined to carry the related
information for a L2TP LNS access subscriber. It will be carried in
an Update_Request message when L2TP LNS access is used.</t>
<t pn="section-7.9.8-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig53" align="left" suppress-title="false" pn="figure-53">
<name slugifiedName="name-l2tp-lns-subscriber-tlv-2">L2TP-LNS Subscriber TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.8-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local-Tunnel-ID | Local-Session-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote-Tunnel-ID | Remote-Session-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.8-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.8-5">
<li pn="section-7.9.8-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.8-5.1.1">
<dt pn="section-7.9.8-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.8-5.1.1.2">12.</dd>
<dt pn="section-7.9.8-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.8-5.1.1.4">12 octets.</dd>
<dt pn="section-7.9.8-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.8-5.1.1.6">The identifier of a user/subscriber.</dd>
<dt pn="section-7.9.8-5.1.1.7">Local-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.8-5.1.1.8">The local ID of the L2TP tunnel.</dd>
<dt pn="section-7.9.8-5.1.1.9">Local-Session-ID (2 bytes):</dt>
<dd pn="section-7.9.8-5.1.1.10">The local session ID with the L2TP tunnel.</dd>
<dt pn="section-7.9.8-5.1.1.11">Remote-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.8-5.1.1.12">The identifier of the L2TP tunnel at
the remote endpoint.</dd>
<dt pn="section-7.9.8-5.1.1.13">Remote-Session-ID (2 bytes):</dt>
<dd pn="section-7.9.8-5.1.1.14">The session ID of the L2TP tunnel at
the remote endpoint.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.9" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.9">
<name slugifiedName="name-l2tp-lac-tunnel-tlv">L2TP-LAC Tunnel TLV</name>
<t pn="section-7.9.9-1">
The L2TP-LAC Tunnel TLV is defined to carry information related to the L2TP LAC tunnel.
It will be carried in the Update_Request
message when L2TP LAC access is used.</t>
<t pn="section-7.9.9-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig54" align="left" suppress-title="false" pn="figure-54">
<name slugifiedName="name-l2tp-lac-tunnel-tlv-2">L2TP-LAC Tunnel TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.9-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local-Tunnel-ID | Remote-Tunnel-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source-Port | Dest-Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Source-IP ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Dest-IP ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ VRF-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.9-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.9-5">
<li pn="section-7.9.9-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.9-5.1.1">
<dt pn="section-7.9.9-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.9-5.1.1.2">13.</dd>
<dt pn="section-7.9.9-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.9-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.9-5.1.1.5">Local-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.9-5.1.1.6">The local ID of the L2TP tunnel.</dd>
<dt pn="section-7.9.9-5.1.1.7">Remote-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.9-5.1.1.8">The remote ID of the L2TP tunnel.</dd>
<dt pn="section-7.9.9-5.1.1.9">Source-Port (2 bytes):</dt>
<dd pn="section-7.9.9-5.1.1.10">The source UDP port number of an L2TP subscriber.</dd>
<dt pn="section-7.9.9-5.1.1.11">Dest-Port (2 bytes):</dt>
<dd pn="section-7.9.9-5.1.1.12">The destination UDP port number of an L2TP
subscriber.</dd>
<dt pn="section-7.9.9-5.1.1.13">Source-IP (IPv4/v6):</dt>
<dd pn="section-7.9.9-5.1.1.14">The source IP address of the tunnel.</dd>
<dt pn="section-7.9.9-5.1.1.15">Dest-IP (IPv4/v6):</dt>
<dd pn="section-7.9.9-5.1.1.16">The destination IP address of the tunnel.</dd>
<dt pn="section-7.9.9-5.1.1.17">VRF-Name Sub-TLV:</dt>
<dd pn="section-7.9.9-5.1.1.18">The VRF name to which the L2TP subscriber tunnel
belongs.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.10" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.10">
<name slugifiedName="name-l2tp-lns-tunnel-tlv">L2TP-LNS Tunnel TLV</name>
<t pn="section-7.9.10-1">
The L2TP-LNS Tunnel TLV is defined to carry information related to the L2TP LNS tunnel.
It will be carried in the Update_Request
message when L2TP LNS access is used.</t>
<t pn="section-7.9.10-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig55" align="left" suppress-title="false" pn="figure-55">
<name slugifiedName="name-l2tp-lns-tunnel-tlv-2">L2TP-LNS Tunnel TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.10-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local-Tunnel-ID | Remote-Tunnel-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source-Port | Dest-Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Source-IP ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Dest-IP ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ VRF-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.10-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.10-5">
<li pn="section-7.9.10-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.10-5.1.1">
<dt pn="section-7.9.10-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.10-5.1.1.2">14.</dd>
<dt pn="section-7.9.10-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.10-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.10-5.1.1.5">Local-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.10-5.1.1.6">The local ID of the L2TP tunnel.</dd>
<dt pn="section-7.9.10-5.1.1.7">Remote-Tunnel-ID (2 bytes):</dt>
<dd pn="section-7.9.10-5.1.1.8">The remote ID of the L2TP tunnel.</dd>
<dt pn="section-7.9.10-5.1.1.9">Source-Port (2 bytes):</dt>
<dd pn="section-7.9.10-5.1.1.10">The source UDP port number of an L2TP subscriber.</dd>
<dt pn="section-7.9.10-5.1.1.11">Dest-Port (2 bytes):</dt>
<dd pn="section-7.9.10-5.1.1.12">The destination UDP port number of an L2TP subscriber.</dd>
<dt pn="section-7.9.10-5.1.1.13">Source-IP (IPv4/v6):</dt>
<dd pn="section-7.9.10-5.1.1.14">The source IP address of the tunnel.</dd>
<dt pn="section-7.9.10-5.1.1.15">Dest-IP (IPv4/v6):</dt>
<dd pn="section-7.9.10-5.1.1.16">The destination IP address of the tunnel.</dd>
<dt pn="section-7.9.10-5.1.1.17">VRF-Name Sub-TLV:</dt>
<dd pn="section-7.9.10-5.1.1.18">The VRF name to which the L2TP subscriber tunnel
belongs.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.11" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.11">
<name slugifiedName="name-update-response-tlv">Update Response TLV</name>
<t pn="section-7.9.11-1">
The Update Response TLV is used to return the operation result of an
update request. It is carried in the Update_Response message as a
response to the Update_Request message.</t>
<t pn="section-7.9.11-2">The format of the value part of the Update Response TLV
is as follows:</t>
<figure anchor="fig56" align="left" suppress-title="false" pn="figure-56">
<name slugifiedName="name-update-response-tlv-2">Update Response TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.11-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-Trans-ID | Oper-Code | Oper-Result | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error-Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.11-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.11-5">
<li pn="section-7.9.11-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.11-5.1.1">
<dt pn="section-7.9.11-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.11-5.1.1.2">302.</dd>
<dt pn="section-7.9.11-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.11-5.1.1.4">12.</dd>
<dt pn="section-7.9.11-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.11-5.1.1.6">A unique identifier of a user/subscriber.</dd>
<dt pn="section-7.9.11-5.1.1.7">User-Trans-ID (1 byte):</dt>
<dd pn="section-7.9.11-5.1.1.8">In the case of dual-stack access or when
modifying a session, User-Trans-ID is used to identify a user
operation transaction. It is used by the CP to correlate a response to
a specific request.</dd>
<dt pn="section-7.9.11-5.1.1.9">Oper-Code (1 byte):</dt>
<dd pn="section-7.9.11-5.1.1.10">
<t pn="section-7.9.11-5.1.1.10.1">Operation code.</t>
<dl newline="false" spacing="normal" pn="section-7.9.11-5.1.1.10.2">
<dt pn="section-7.9.11-5.1.1.10.2.1">1:</dt>
<dd pn="section-7.9.11-5.1.1.10.2.2">Update.</dd>
<dt pn="section-7.9.11-5.1.1.10.2.3">2:</dt>
<dd pn="section-7.9.11-5.1.1.10.2.4">Delete.</dd>
</dl>
</dd>
<dt pn="section-7.9.11-5.1.1.11">Oper-Result (1 byte):</dt>
<dd pn="section-7.9.11-5.1.1.12">
<t pn="section-7.9.11-5.1.1.12.1">Operation Result.</t>
<dl newline="false" spacing="normal" pn="section-7.9.11-5.1.1.12.2">
<dt pn="section-7.9.11-5.1.1.12.2.1">0:</dt>
<dd pn="section-7.9.11-5.1.1.12.2.2">Success.</dd>
<dt pn="section-7.9.11-5.1.1.12.2.3">Others:</dt>
<dd pn="section-7.9.11-5.1.1.12.2.4">Failure.</dd>
</dl>
</dd>
<dt pn="section-7.9.11-5.1.1.13">Error-Code (4 bytes):</dt>
<dd pn="section-7.9.11-5.1.1.14">Operation failure cause code. For details,
see <xref target="sect-9.5" format="default" sectionFormat="of" derivedContent="Section 8.5"/>.</dd>
<dt pn="section-7.9.11-5.1.1.15">Reserved:</dt>
<dd pn="section-7.9.11-5.1.1.16">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.12" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.12">
<name slugifiedName="name-subscriber-policy-tlv">Subscriber Policy TLV</name>
<t pn="section-7.9.12-1">
The Subscriber Policy TLV is used to carry the policies that will be
applied to a subscriber. It is carried in the Update_Request
message.</t>
<t pn="section-7.9.12-2">The format of the TLV value part is as follows:</t>
<figure anchor="fig57" align="left" suppress-title="false" pn="figure-57">
<name slugifiedName="name-subscriber-policy-tlv-2">Subscriber Policy TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.12-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| I-Priority | E-Priority | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.12-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.12-5">
<li pn="section-7.9.12-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.12-5.1.1">
<dt pn="section-7.9.12-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.12-5.1.1.2">6.</dd>
<dt pn="section-7.9.12-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.12-5.1.1.4">Variable.</dd>
<dt pn="section-7.9.12-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.12-5.1.1.6">The identifier of a user/subscriber.</dd>
<dt pn="section-7.9.12-5.1.1.7">Ingress-Priority (1 byte):</dt>
<dd pn="section-7.9.12-5.1.1.8">Indicates the upstream priority. The
value range is 0~7.</dd>
<dt pn="section-7.9.12-5.1.1.9">Egress-Priority (1 byte):</dt>
<dd pn="section-7.9.12-5.1.1.10">Indicates the downstream priority. The
value range is 0~7.</dd>
<dt pn="section-7.9.12-5.1.1.11">Sub-TLVs:</dt>
<dd pn="section-7.9.12-5.1.1.12">
<t pn="section-7.9.12-5.1.1.12.1">The sub-TLVs that are present can occur
in any order.</t>
<dl newline="false" spacing="normal" pn="section-7.9.12-5.1.1.12.2">
<dt pn="section-7.9.12-5.1.1.12.2.1">Ingress-CAR sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.2">Upstream CAR.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.3">Egress-CAR sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.4">Downstream CAR.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.5">Ingress-QoS-Profile sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.6">Indicates the name of
the QoS-Profile that is the profile in the upstream
direction.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.7">Egress-QoS-Profile sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.8">Indicates the name of
the QoS-Profile that is the profile in the downstream
direction.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.9">User-ACL-Policy sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.10">All ACL user policies,
including v4ACLIN, v4ACLOUT, v6ACLIN, v6ACLOUT, v4WEBACL,
v6WEBACL, v4SpecialACL, and v6SpecialACL.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.11">Multicast-Profile4 sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.12">IPv4 multicast policy name.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.13">Multicast-Profile6 sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.14">IPv6 multicast policy name.</dd>
<dt pn="section-7.9.12-5.1.1.12.2.15">NAT-Instance sub-TLV:</dt>
<dd pn="section-7.9.12-5.1.1.12.2.16">Indicates the instance ID of
a NAT user. </dd>
</dl>
</dd>
<dt pn="section-7.9.12-5.1.1.13">Reserved:</dt>
<dd pn="section-7.9.12-5.1.1.14">The Reserved field <bcp14>MUST</bcp14> be sent as
zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.9.13" numbered="true" toc="include" removeInRFC="false" pn="section-7.9.13">
<name slugifiedName="name-subscriber-cgn-port-range-t">Subscriber CGN Port Range TLV</name>
<t pn="section-7.9.13-1">
The Subscriber CGN Port Range TLV is used to carry the NAT public
address and port range. It will be carried in the Update_Response
message when CGN is used.</t>
<t pn="section-7.9.13-2">The format of the value part of this TLV is as follows:</t>
<figure anchor="fig58" align="left" suppress-title="false" pn="figure-58">
<name slugifiedName="name-subscriber-cgn-port-range-tl">Subscriber CGN Port Range TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.9.13-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NAT-Port-Start | NAT-Port-End |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NAT-Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.9.13-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.9.13-5">
<li pn="section-7.9.13-5.1">
<dl newline="false" spacing="normal" pn="section-7.9.13-5.1.1">
<dt pn="section-7.9.13-5.1.1.1">TLV type:</dt>
<dd pn="section-7.9.13-5.1.1.2">15.</dd>
<dt pn="section-7.9.13-5.1.1.3">TLV length:</dt>
<dd pn="section-7.9.13-5.1.1.4">12 octets.</dd>
<dt pn="section-7.9.13-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.9.13-5.1.1.6">The identifier of a user/subscriber.</dd>
<dt pn="section-7.9.13-5.1.1.7">NAT-Port-Start (2 bytes):</dt>
<dd pn="section-7.9.13-5.1.1.8">The start port number.</dd>
<dt pn="section-7.9.13-5.1.1.9">NAT-Port-End (2 bytes):</dt>
<dd pn="section-7.9.13-5.1.1.10">The end port number.</dd>
<dt pn="section-7.9.13-5.1.1.11">NAT-Address (4 bytes):</dt>
<dd pn="section-7.9.13-5.1.1.12">The NAT public network address.</dd>
</dl>
</li>
</ul>
</section>
</section>
<section anchor="sect-7.10" numbered="true" toc="include" removeInRFC="false" pn="section-7.10">
<name slugifiedName="name-device-status-tlvs">Device Status TLVs</name>
<t pn="section-7.10-1">
The TLVs in this section are for reporting interface and board-level
information from the UP to the CP.</t>
<section anchor="sect-7.10.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.10.1">
<name slugifiedName="name-interface-status-tlv">Interface Status TLV</name>
<t pn="section-7.10.1-1">
The Interface Status TLV is used to carry the status information of
an interface on a UP. It is carried in a Report message.</t>
<t pn="section-7.10.1-2">The format of the value part of this TLV is as follows:</t>
<figure anchor="fig59" align="left" suppress-title="false" pn="figure-59">
<name slugifiedName="name-interface-status-tlv-2">Interface Status TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.10.1-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| If-Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC-Address (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC-Address (lower part) | Phy-State | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-TLVs (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.10.1-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.10.1-5">
<li pn="section-7.10.1-5.1">
<dl newline="false" spacing="normal" pn="section-7.10.1-5.1.1">
<dt pn="section-7.10.1-5.1.1.1">TLV type:</dt>
<dd pn="section-7.10.1-5.1.1.2">200.</dd>
<dt pn="section-7.10.1-5.1.1.3">TLV length:</dt>
<dd pn="section-7.10.1-5.1.1.4">Variable.</dd>
<dt pn="section-7.10.1-5.1.1.5">If-Index (4 bytes):</dt>
<dd pn="section-7.10.1-5.1.1.6">Indicates the interface index.</dd>
<dt pn="section-7.10.1-5.1.1.7">MAC-Address (MAC-Addr type):</dt>
<dd pn="section-7.10.1-5.1.1.8">Interface MAC address.</dd>
<dt pn="section-7.10.1-5.1.1.9">Phy-State (1 byte):</dt>
<dd pn="section-7.10.1-5.1.1.10">
<t pn="section-7.10.1-5.1.1.10.1">Physical status of the
interface.</t>
<dl newline="false" spacing="normal" pn="section-7.10.1-5.1.1.10.2">
<dt pn="section-7.10.1-5.1.1.10.2.1">0:</dt>
<dd pn="section-7.10.1-5.1.1.10.2.2">Down.</dd>
<dt pn="section-7.10.1-5.1.1.10.2.3">1:</dt>
<dd pn="section-7.10.1-5.1.1.10.2.4">Up.</dd>
</dl>
</dd>
<dt pn="section-7.10.1-5.1.1.11">MTU (4 bytes):</dt>
<dd pn="section-7.10.1-5.1.1.12">Interface MTU value.</dd>
<dt pn="section-7.10.1-5.1.1.13">Sub-TLVs:</dt>
<dd pn="section-7.10.1-5.1.1.14">The If-Desc and VRF-Name sub-TLVs can be carried.</dd>
<dt pn="section-7.10.1-5.1.1.15">Reserved:</dt>
<dd pn="section-7.10.1-5.1.1.16">The Reserved field <bcp14>MUST</bcp14> be
sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.10.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.10.2">
<name slugifiedName="name-board-status-tlv">Board Status TLV</name>
<t pn="section-7.10.2-1">
The Board Status TLV is used to carry the status information of a
board on an UP. It is carried in a Report message.</t>
<t pn="section-7.10.2-2">The format of the value part of the Board Status TLV is as follows:</t>
<figure anchor="fig60" align="left" suppress-title="false" pn="figure-60">
<name slugifiedName="name-board-status-tlv-2">Board Status TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.10.2-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Board-Type | Board-State | Reserved | Chassis |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Slot | Sub-Slot |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.10.2-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.10.2-5">
<li pn="section-7.10.2-5.1">
<dl newline="false" spacing="normal" pn="section-7.10.2-5.1.1">
<dt pn="section-7.10.2-5.1.1.1">TLV type:</dt>
<dd pn="section-7.10.2-5.1.1.2">201.</dd>
<dt pn="section-7.10.2-5.1.1.3">TLV length:</dt>
<dd pn="section-7.10.2-5.1.1.4">8 octets.</dd>
<dt pn="section-7.10.2-5.1.1.5">Chassis (1 byte):</dt>
<dd pn="section-7.10.2-5.1.1.6">The chassis number of the board.</dd>
<dt pn="section-7.10.2-5.1.1.7">Slot (16 bits):</dt>
<dd pn="section-7.10.2-5.1.1.8">The slot number of the board.</dd>
<dt pn="section-7.10.2-5.1.1.9">Sub-Slot (16 bits):</dt>
<dd pn="section-7.10.2-5.1.1.10">The sub-slot number of the board.</dd>
<dt pn="section-7.10.2-5.1.1.11">Board-Type (1 byte):</dt>
<dd pn="section-7.10.2-5.1.1.12">
<t pn="section-7.10.2-5.1.1.12.1">The type of board used.</t>
<dl newline="false" spacing="normal" pn="section-7.10.2-5.1.1.12.2">
<dt pn="section-7.10.2-5.1.1.12.2.1">1:</dt>
<dd pn="section-7.10.2-5.1.1.12.2.2">CGN Service Process Unit (SPU) board.</dd>
<dt pn="section-7.10.2-5.1.1.12.2.3">2:</dt>
<dd pn="section-7.10.2-5.1.1.12.2.4">Line Process Unit (LPU) board.</dd>
</dl>
</dd>
<dt pn="section-7.10.2-5.1.1.13">Board-State (1 byte):</dt>
<dd pn="section-7.10.2-5.1.1.14">
<t pn="section-7.10.2-5.1.1.14.1">Indicates whether there are issues with the board.</t>
<dl newline="false" spacing="normal" pn="section-7.10.2-5.1.1.14.2">
<dt pn="section-7.10.2-5.1.1.14.2.1">0:</dt>
<dd pn="section-7.10.2-5.1.1.14.2.2">Normal.</dd>
<dt pn="section-7.10.2-5.1.1.14.2.3">1:</dt>
<dd pn="section-7.10.2-5.1.1.14.2.4">Abnormal.</dd>
</dl>
</dd>
<dt pn="section-7.10.2-5.1.1.15">Reserved:</dt>
<dd pn="section-7.10.2-5.1.1.16">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
</section>
<section anchor="sect-7.11" numbered="true" toc="include" removeInRFC="false" pn="section-7.11">
<name slugifiedName="name-cgn-tlvs">CGN TLVs</name>
<section anchor="sect-7.11.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.1">
<name slugifiedName="name-address-allocation-request-">Address Allocation Request TLV</name>
<t pn="section-7.11.1-1">
The Address Allocation Request TLV is used to request address
allocation from the CP. A Pool-Name sub-TLV is carried to
indicate from which address pool to allocate addresses. The Address
Allocation Request TLV is carried in the Addr_Allocation_Req message.</t>
<t pn="section-7.11.1-2">The format of the value part of this TLV is as follows:</t>
<figure anchor="fig61" align="left" suppress-title="false" pn="figure-61">
<name slugifiedName="name-address-allocation-request-t">Address Allocation Request TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.11.1-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Pool-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.11.1-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.11.1-5">
<li pn="section-7.11.1-5.1">
<dl newline="false" spacing="normal" pn="section-7.11.1-5.1.1">
<dt pn="section-7.11.1-5.1.1.1">TLV type:</dt>
<dd pn="section-7.11.1-5.1.1.2">400.</dd>
<dt pn="section-7.11.1-5.1.1.3">TLV length:</dt>
<dd pn="section-7.11.1-5.1.1.4">Variable.</dd>
<dt pn="section-7.11.1-5.1.1.5">Pool-Name sub-TLV:</dt>
<dd pn="section-7.11.1-5.1.1.6">Indicates from which address pool
to allocate address.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.11.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.2">
<name slugifiedName="name-address-allocation-response">Address Allocation Response TLV</name>
<t pn="section-7.11.2-1">
The Address Allocation Response TLV is used to return the address
allocation result; it is carried in the Addr_Allocation_Ack message.</t>
<t pn="section-7.11.2-2">
The value part of the Address Allocation Response TLV is formatted as
follows:</t>
<figure anchor="fig62" align="left" suppress-title="false" pn="figure-62">
<name slugifiedName="name-address-allocation-response-">Address Allocation Response TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.11.2-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Lease Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error-Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Pool-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.11.2-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.11.2-5">
<li pn="section-7.11.2-5.1">
<dl newline="false" spacing="normal" pn="section-7.11.2-5.1.1">
<dt pn="section-7.11.2-5.1.1.1">TLV type:</dt>
<dd pn="section-7.11.2-5.1.1.2">401.</dd>
<dt pn="section-7.11.2-5.1.1.3">TLV length:</dt>
<dd pn="section-7.11.2-5.1.1.4">Variable.</dd>
<dt pn="section-7.11.2-5.1.1.5">Lease Time (4 bytes):</dt>
<dd pn="section-7.11.2-5.1.1.6">Duration of address lease in seconds.</dd>
<dt pn="section-7.11.2-5.1.1.7">Client-IP (IPv4-Address type):</dt>
<dd pn="section-7.11.2-5.1.1.8">The allocated
IPv4 address and mask.</dd>
<dt pn="section-7.11.2-5.1.1.9">Error-Code (4 bytes):</dt>
<dd pn="section-7.11.2-5.1.1.10">
<t pn="section-7.11.2-5.1.1.10.1">Indicates success or an error.</t>
<dl newline="false" spacing="normal" pn="section-7.11.2-5.1.1.10.2">
<dt pn="section-7.11.2-5.1.1.10.2.1">0:</dt>
<dd pn="section-7.11.2-5.1.1.10.2.2">Success.</dd>
<dt pn="section-7.11.2-5.1.1.10.2.3">1:</dt>
<dd pn="section-7.11.2-5.1.1.10.2.4">Failure.</dd>
<dt pn="section-7.11.2-5.1.1.10.2.5">3001:</dt>
<dd pn="section-7.11.2-5.1.1.10.2.6">Pool-Mismatch. The corresponding address pool cannot be
found.</dd>
<dt pn="section-7.11.2-5.1.1.10.2.7">3002:</dt>
<dd pn="section-7.11.2-5.1.1.10.2.8">Pool-Full. The address pool is fully allocated, and no
address segment is available.</dd>
</dl>
</dd>
<dt pn="section-7.11.2-5.1.1.11">Pool-Name sub-TLV:</dt>
<dd pn="section-7.11.2-5.1.1.12">Indicates from which
address pool the address is allocated.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.11.3" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.3">
<name slugifiedName="name-address-renewal-request-tlv">Address Renewal Request TLV</name>
<t pn="section-7.11.3-1">
The Address Renewal Request TLV is used to request address renewal
from the CP. It is carried in the Addr_Renew_Req message.</t>
<t pn="section-7.11.3-2">The format of this TLV value is as follows:</t>
<figure anchor="fig63" align="left" suppress-title="false" pn="figure-63">
<name slugifiedName="name-address-renewal-request-tlv-2">Address Renewal Request TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.11.3-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Pool-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.11.3-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.11.3-5">
<li pn="section-7.11.3-5.1">
<dl newline="false" spacing="normal" pn="section-7.11.3-5.1.1">
<dt pn="section-7.11.3-5.1.1.1">TLV type:</dt>
<dd pn="section-7.11.3-5.1.1.2">402.</dd>
<dt pn="section-7.11.3-5.1.1.3">TLV length:</dt>
<dd pn="section-7.11.3-5.1.1.4">Variable.</dd>
<dt pn="section-7.11.3-5.1.1.5">Client-IP (IPv4-Address type):</dt>
<dd pn="section-7.11.3-5.1.1.6">The IPv4 address and mask to be
renewed.</dd>
<dt pn="section-7.11.3-5.1.1.7">Pool-Name sub-TLV:</dt>
<dd pn="section-7.11.3-5.1.1.8">Indicates from which
address pool to renew the address.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.11.4" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.4">
<name slugifiedName="name-address-renewal-response-tl">Address Renewal Response TLV</name>
<t pn="section-7.11.4-1">
The Address Renewal Response TLV is used to return the address
renewal result. It is carried in the Addr_Renew_Ack message.</t>
<t pn="section-7.11.4-2">The format of this TLV value is as follows:</t>
<figure anchor="fig64" align="left" suppress-title="false" pn="figure-64">
<name slugifiedName="name-address-renewal-response-tlv">Address Renewal Response TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.11.4-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error-Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Pool-Name Sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.11.4-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.11.4-5">
<li pn="section-7.11.4-5.1">
<dl newline="false" spacing="normal" pn="section-7.11.4-5.1.1">
<dt pn="section-7.11.4-5.1.1.1">TLV type:</dt>
<dd pn="section-7.11.4-5.1.1.2">403.</dd>
<dt pn="section-7.11.4-5.1.1.3">TLV length:</dt>
<dd pn="section-7.11.4-5.1.1.4">Variable.</dd>
<dt pn="section-7.11.4-5.1.1.5">Client-IP (IPv4-Address type):</dt>
<dd pn="section-7.11.4-5.1.1.6">The renewed IPv4 address and mask.</dd>
<dt pn="section-7.11.4-5.1.1.7">Error-Code (4 bytes):</dt>
<dd pn="section-7.11.4-5.1.1.8">
<t pn="section-7.11.4-5.1.1.8.1">Indicates success or an error:</t>
<dl newline="false" spacing="normal" pn="section-7.11.4-5.1.1.8.2">
<dt pn="section-7.11.4-5.1.1.8.2.1">0:</dt>
<dd pn="section-7.11.4-5.1.1.8.2.2">Success.</dd>
<dt pn="section-7.11.4-5.1.1.8.2.3">1:</dt>
<dd pn="section-7.11.4-5.1.1.8.2.4">Failure.</dd>
<dt pn="section-7.11.4-5.1.1.8.2.5">3001:</dt>
<dd pn="section-7.11.4-5.1.1.8.2.6">Pool-Mismatch. The corresponding address
pool cannot be found.</dd>
<dt pn="section-7.11.4-5.1.1.8.2.7">3002:</dt>
<dd pn="section-7.11.4-5.1.1.8.2.8">Pool-Full. The address pool is fully allocated, and no
address segment is available.</dd>
<dt pn="section-7.11.4-5.1.1.8.2.9">3003:</dt>
<dd pn="section-7.11.4-5.1.1.8.2.10">Subnet-Mismatch. The address pool subnet
cannot be found.</dd>
<dt pn="section-7.11.4-5.1.1.8.2.11">3004:</dt>
<dd pn="section-7.11.4-5.1.1.8.2.12">Subnet-Conflict. Subnets in the address pool have been
assigned to other clients.</dd>
</dl>
</dd>
<dt pn="section-7.11.4-5.1.1.9">Pool-Name sub-TLV:</dt>
<dd pn="section-7.11.4-5.1.1.10">Indicates from which
address pool to renew the address.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.11.5" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.5">
<name slugifiedName="name-address-release-request-tlv">Address Release Request TLV</name>
<t pn="section-7.11.5-1">
The Address Release Request TLV is used to release an IPv4 address.
It is carried in the Addr_Release_Req message.</t>
<t pn="section-7.11.5-2">The value part of this TLV is formatted as follows:</t>
<figure anchor="fig65" align="left" suppress-title="false" pn="figure-65">
<name slugifiedName="name-address-release-request-tlv-2">Address Release Request TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.11.5-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Pool-Name sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.11.5-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.11.5-5">
<li pn="section-7.11.5-5.1">
<dl newline="false" spacing="normal" pn="section-7.11.5-5.1.1">
<dt pn="section-7.11.5-5.1.1.1">TLV type:</dt>
<dd pn="section-7.11.5-5.1.1.2">404.</dd>
<dt pn="section-7.11.5-5.1.1.3">TLV length:</dt>
<dd pn="section-7.11.5-5.1.1.4">Variable.</dd>
<dt pn="section-7.11.5-5.1.1.5">Client-IP (IPv4-Address type):</dt>
<dd pn="section-7.11.5-5.1.1.6">The IPv4
address and mask to be released.</dd>
<dt pn="section-7.11.5-5.1.1.7">Pool-Name sub-TLV:</dt>
<dd pn="section-7.11.5-5.1.1.8">Indicates from which
address pool to release the address.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.11.6" numbered="true" toc="include" removeInRFC="false" pn="section-7.11.6">
<name slugifiedName="name-address-release-response-tl">Address Release Response TLV</name>
<t pn="section-7.11.6-1">
The Address Release Response TLV is used to return the address
release result. It is carried in the Addr_Release_Ack message.</t>
<t pn="section-7.11.6-2">The format of the value part of this TLV is as follows:</t>
<figure anchor="fig66" align="left" suppress-title="false" pn="figure-66">
<name slugifiedName="name-address-release-response-tlv">Address Release Response TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.11.6-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Client-IP (cont.) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error-Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Pool-Name sub-TLV ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.11.6-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.11.6-5">
<li pn="section-7.11.6-5.1">
<dl newline="false" spacing="normal" pn="section-7.11.6-5.1.1">
<dt pn="section-7.11.6-5.1.1.1">TLV type:</dt>
<dd pn="section-7.11.6-5.1.1.2">405.</dd>
<dt pn="section-7.11.6-5.1.1.3">TLV length:</dt>
<dd pn="section-7.11.6-5.1.1.4">Variable.</dd>
<dt pn="section-7.11.6-5.1.1.5">Client-IP (IPv4-Address type):</dt>
<dd pn="section-7.11.6-5.1.1.6">The released IPv4 address and mask.</dd>
<dt pn="section-7.11.6-5.1.1.7">Error-Code (4 bytes):</dt>
<dd pn="section-7.11.6-5.1.1.8">
<t pn="section-7.11.6-5.1.1.8.1">Indicates success or an error.</t>
<dl newline="false" spacing="normal" pn="section-7.11.6-5.1.1.8.2">
<dt pn="section-7.11.6-5.1.1.8.2.1">0:</dt>
<dd pn="section-7.11.6-5.1.1.8.2.2">Success. Address release success.</dd>
<dt pn="section-7.11.6-5.1.1.8.2.3">1:</dt>
<dd pn="section-7.11.6-5.1.1.8.2.4">Failure. Address release failed.</dd>
<dt pn="section-7.11.6-5.1.1.8.2.5">3001:</dt>
<dd pn="section-7.11.6-5.1.1.8.2.6">Pool-Mismatch. The corresponding address
pool cannot be found.</dd>
<dt pn="section-7.11.6-5.1.1.8.2.7">3003:</dt>
<dd pn="section-7.11.6-5.1.1.8.2.8">Subnet-Mismatch. The address cannot be found.</dd>
<dt pn="section-7.11.6-5.1.1.8.2.9">3004:</dt>
<dd pn="section-7.11.6-5.1.1.8.2.10">Subnet-Conflict. The address has been
allocated to another subscriber.</dd>
</dl>
</dd>
<dt pn="section-7.11.6-5.1.1.9">Pool-Name sub-TLV:</dt>
<dd pn="section-7.11.6-5.1.1.10">Indicates from which
address pool to release the address.</dd>
</dl>
</li>
</ul>
</section>
</section>
<section anchor="sect-7.12" numbered="true" toc="include" removeInRFC="false" pn="section-7.12">
<name slugifiedName="name-event-tlvs">Event TLVs</name>
<section anchor="sect-7.12.1" numbered="true" toc="include" removeInRFC="false" pn="section-7.12.1">
<name slugifiedName="name-subscriber-traffic-statisti">Subscriber Traffic Statistics TLV</name>
<t pn="section-7.12.1-1">
The Subscriber Traffic Statistics TLV is used to return the traffic
statistics of a user/subscriber. The format of the value part of this TLV is as
follows:</t>
<figure anchor="fig67" align="left" suppress-title="false" pn="figure-67">
<name slugifiedName="name-subscriber-traffic-statistic">Subscriber Traffic Statistics TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.12.1-2.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Statistics-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Packets (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Packets (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Bytes (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Bytes (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Loss Packets (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Loss Packets (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Loss Bytes (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ingress Loss Bytes (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Packets (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Packets (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Bytes (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Bytes (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Loss Packets (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Loss Packets (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Loss Bytes (upper part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Egress Loss Bytes (lower part) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.12.1-3">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.12.1-4">
<li pn="section-7.12.1-4.1">
<dl newline="false" spacing="normal" pn="section-7.12.1-4.1.1">
<dt pn="section-7.12.1-4.1.1.1">TLV type:</dt>
<dd pn="section-7.12.1-4.1.1.2">300.</dd>
<dt pn="section-7.12.1-4.1.1.3">TLV length:</dt>
<dd pn="section-7.12.1-4.1.1.4">72 octets.</dd>
<dt pn="section-7.12.1-4.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.6">The subscriber identifier.</dd>
<dt pn="section-7.12.1-4.1.1.7">Statistics-Type (4 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.8">
<t pn="section-7.12.1-4.1.1.8.1">Traffic type. It can be one of the
following options:</t>
<dl newline="false" spacing="normal" pn="section-7.12.1-4.1.1.8.2">
<dt pn="section-7.12.1-4.1.1.8.2.1">0:</dt>
<dd pn="section-7.12.1-4.1.1.8.2.2">IPv4 traffic.</dd>
<dt pn="section-7.12.1-4.1.1.8.2.3">1:</dt>
<dd pn="section-7.12.1-4.1.1.8.2.4">IPv6 traffic.</dd>
<dt pn="section-7.12.1-4.1.1.8.2.5">2:</dt>
<dd pn="section-7.12.1-4.1.1.8.2.6">Dual-stack traffic.</dd>
</dl>
</dd>
<dt pn="section-7.12.1-4.1.1.9">Ingress Packets (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.10">The number of the packets
in the upstream direction.</dd>
<dt pn="section-7.12.1-4.1.1.11">Ingress Bytes (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.12">The bytes of the upstream traffic.</dd>
<dt pn="section-7.12.1-4.1.1.13">Ingress Loss Packets (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.14">The number of the lost
packets in the upstream direction.</dd>
<dt pn="section-7.12.1-4.1.1.15">Ingress Loss Bytes (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.16">The bytes of the lost
upstream packets.</dd>
<dt pn="section-7.12.1-4.1.1.17">Egress Packets (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.18">The number of the packets in
the downstream direction.</dd>
<dt pn="section-7.12.1-4.1.1.19">Egress Bytes (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.20">The bytes of the downstream traffic.</dd>
<dt pn="section-7.12.1-4.1.1.21">Egress Loss Packets (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.22">The number of the lost
packets in the downstream direction.</dd>
<dt pn="section-7.12.1-4.1.1.23">Egress Loss Bytes (8 bytes):</dt>
<dd pn="section-7.12.1-4.1.1.24">The bytes of the lost downstream
packets.</dd>
</dl>
</li>
</ul>
</section>
<section anchor="sect-7.12.2" numbered="true" toc="include" removeInRFC="false" pn="section-7.12.2">
<name slugifiedName="name-subscriber-detection-result">Subscriber Detection Result TLV</name>
<t pn="section-7.12.2-1">
The Subscriber Detection Result TLV is used to return the detection
result of a subscriber. Subscriber detection is a function to detect
whether or not a subscriber is online. The result can be used by the
CP to determine how to deal with the subscriber session (e.g.,
delete the session if detection failed).</t>
<t pn="section-7.12.2-2">The format of this TLV value part is as follows:</t>
<figure anchor="fig68" align="left" suppress-title="false" pn="figure-68">
<name slugifiedName="name-subscriber-detection-result-">Subscriber Detection Result TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.12.2-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| User-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Detect-Type | Detect-Result | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.12.2-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.12.2-5">
<li pn="section-7.12.2-5.1">
<dl newline="false" spacing="normal" pn="section-7.12.2-5.1.1">
<dt pn="section-7.12.2-5.1.1.1">TLV type:</dt>
<dd pn="section-7.12.2-5.1.1.2">301.</dd>
<dt pn="section-7.12.2-5.1.1.3">TLV length:</dt>
<dd pn="section-7.12.2-5.1.1.4">8 octets.</dd>
<dt pn="section-7.12.2-5.1.1.5">User-ID (4 bytes):</dt>
<dd pn="section-7.12.2-5.1.1.6">The subscriber identifier.</dd>
<dt pn="section-7.12.2-5.1.1.7">Detect-Type (1 byte):</dt>
<dd pn="section-7.12.2-5.1.1.8">
<t pn="section-7.12.2-5.1.1.8.1">Type of traffic detected.</t>
<dl newline="false" spacing="normal" pn="section-7.12.2-5.1.1.8.2">
<dt pn="section-7.12.2-5.1.1.8.2.1">0:</dt>
<dd pn="section-7.12.2-5.1.1.8.2.2">IPv4 detection.</dd>
<dt pn="section-7.12.2-5.1.1.8.2.3">1:</dt>
<dd pn="section-7.12.2-5.1.1.8.2.4">IPv6 detection.</dd>
<dt pn="section-7.12.2-5.1.1.8.2.5">2:</dt>
<dd pn="section-7.12.2-5.1.1.8.2.6">PPP detection.</dd>
</dl>
</dd>
<dt pn="section-7.12.2-5.1.1.9">Detect-Result (1 byte):</dt>
<dd pn="section-7.12.2-5.1.1.10">
<t pn="section-7.12.2-5.1.1.10.1">Indicates whether the detection was successful. </t>
<dl newline="false" spacing="normal" pn="section-7.12.2-5.1.1.10.2">
<dt pn="section-7.12.2-5.1.1.10.2.1">0:</dt>
<dd pn="section-7.12.2-5.1.1.10.2.2">Indicates that the detection is successful.</dd>
<dt pn="section-7.12.2-5.1.1.10.2.3">1:</dt>
<dd pn="section-7.12.2-5.1.1.10.2.4">Detection failure. The UP needs to report only
when the detection fails.</dd>
</dl>
</dd>
<dt pn="section-7.12.2-5.1.1.11">Reserved:</dt>
<dd pn="section-7.12.2-5.1.1.12">The Reserved field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
</dl>
</li>
</ul>
</section>
</section>
<section anchor="sect-7.13" numbered="true" toc="include" removeInRFC="false" pn="section-7.13">
<name slugifiedName="name-vendor-tlv">Vendor TLV</name>
<t pn="section-7.13-1">
The Vendor TLV occurs as the first TLV in the Vendor message
(<xref target="sect-6.6" format="default" sectionFormat="of" derivedContent="Section 6.6"/>). It provides a Sub-Type that effectively extends the
message type in the message header, provides for versioning of vendor
TLVs, and can accommodate sub-TLVs.</t>
<t pn="section-7.13-2">The value part of the Vendor TLV is formatted as follows:</t>
<figure anchor="fig69" align="left" suppress-title="false" pn="figure-69">
<name slugifiedName="name-vendor-tlv-2">Vendor TLV</name>
<artwork name="" type="" align="left" alt="" pn="section-7.13-3.1">
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Type | Sub-Type-Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Sub-TLVs (optional) ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
</figure>
<t pn="section-7.13-4">Where:
</t>
<ul empty="true" bare="false" spacing="normal" pn="section-7.13-5">
<li pn="section-7.13-5.1">
<dl newline="false" spacing="normal" indent="3" pn="section-7.13-5.1.1">
<dt pn="section-7.13-5.1.1.1">TLV type:</dt>
<dd pn="section-7.13-5.1.1.2">1024.</dd>
<dt pn="section-7.13-5.1.1.3">TLV length:</dt>
<dd pn="section-7.13-5.1.1.4">Variable.</dd>
<dt pn="section-7.13-5.1.1.5">Vendor-ID (4 bytes):</dt>
<dd pn="section-7.13-5.1.1.6">Vendor ID as defined in RADIUS
<xref target="RFC2865" format="default" sectionFormat="of" derivedContent="RFC2865"/>.</dd>
<dt pn="section-7.13-5.1.1.7">Sub-Type (2 bytes):</dt>
<dd pn="section-7.13-5.1.1.8">Used by the vendor to distinguish multiple
different vendor messages.</dd>
<dt pn="section-7.13-5.1.1.9">Sub-Type-Version (2 bytes):</dt>
<dd pn="section-7.13-5.1.1.10">Used by the vendor to distinguish
different versions of a vendor-defined message Sub-Type.</dd>
<dt pn="section-7.13-5.1.1.11">Sub-TLVs (variable):</dt>
<dd pn="section-7.13-5.1.1.12">Sub-TLVs as specified by the vendor.</dd>
</dl>
</li>
</ul>
<t pn="section-7.13-6">
Since vendor code will be handling the TLV after the Vendor-ID field
is recognized, the remainder of the TLV values can be organized
however the vendor wants. But it is desirable for a vendor to be able
to define multiple different vendor messages and to keep track of
different versions of its vendor-defined messages. Thus, it is
<bcp14>RECOMMENDED</bcp14> that the vendor assign a Sub-Type value for each vendor
message that it defines different from other Sub-Type values that
vendor has used. Also, when modifying a vendor-defined message in a
way potentially incompatible with a previous definition, the vendor
<bcp14>SHOULD</bcp14> increase the value it is using in the Sub-Type-Version field.</t>
</section>
</section>
<section anchor="sect-9" numbered="true" toc="include" removeInRFC="false" pn="section-8">
<name slugifiedName="name-tables-of-s-cusp-codepoints">Tables of S-CUSP Codepoints</name>
<t pn="section-8-1">
This section provides tables of the S-CUSP codepoints, particularly
message types, TLV types, TLV operation codes, sub-TLV types, and
error codes. In most cases, references are provided to relevant
sections elsewhere in this document.</t>
<section anchor="sect-9.1" numbered="true" toc="include" removeInRFC="false" pn="section-8.1">
<name slugifiedName="name-message-types">Message Types</name>
<table align="center" pn="table-5">
<name slugifiedName="name-message-types-2">Message Types</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Type</th>
<th align="left" colspan="1" rowspan="1">Name</th>
<th align="left" colspan="1" rowspan="1">Section of This Document</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Hello</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.1" format="counter" sectionFormat="of" derivedContent="6.2.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Keepalive</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.2" format="counter" sectionFormat="of" derivedContent="6.2.2"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">Sync_Request</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.3" format="counter" sectionFormat="of" derivedContent="6.2.3"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">Sync_Begin</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.4" format="counter" sectionFormat="of" derivedContent="6.2.4"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">Sync_Data</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.5" format="counter" sectionFormat="of" derivedContent="6.2.5"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">Sync_End</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.6" format="counter" sectionFormat="of" derivedContent="6.2.6"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">7</td>
<td align="left" colspan="1" rowspan="1">Update_Request</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.7" format="counter" sectionFormat="of" derivedContent="6.2.7"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">8</td>
<td align="left" colspan="1" rowspan="1">Update_Response</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.2.8" format="counter" sectionFormat="of" derivedContent="6.2.8"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">9</td>
<td align="left" colspan="1" rowspan="1">Report</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.4" format="counter" sectionFormat="of" derivedContent="6.4"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">10</td>
<td align="left" colspan="1" rowspan="1">Event</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.3" format="counter" sectionFormat="of" derivedContent="6.3"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">11</td>
<td align="left" colspan="1" rowspan="1">Vendor</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.6" format="counter" sectionFormat="of" derivedContent="6.6"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">12</td>
<td align="left" colspan="1" rowspan="1">Error</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.7" format="counter" sectionFormat="of" derivedContent="6.7"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">13-199</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">200</td>
<td align="left" colspan="1" rowspan="1">Addr_Allocation_Req</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.5.1" format="counter" sectionFormat="of" derivedContent="6.5.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">201</td>
<td align="left" colspan="1" rowspan="1">Addr_Allocation_Ack</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.5.2" format="counter" sectionFormat="of" derivedContent="6.5.2"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">202</td>
<td align="left" colspan="1" rowspan="1">Addr_Renew_Req</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.5.3" format="counter" sectionFormat="of" derivedContent="6.5.3"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">203</td>
<td align="left" colspan="1" rowspan="1">Addr_Renew_Ack</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.5.4" format="counter" sectionFormat="of" derivedContent="6.5.4"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">204</td>
<td align="left" colspan="1" rowspan="1">Addr_Release_Req</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.5.5" format="counter" sectionFormat="of" derivedContent="6.5.5"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">205</td>
<td align="left" colspan="1" rowspan="1">Addr_Release_Ack</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-6.5.6" format="counter" sectionFormat="of" derivedContent="6.5.6"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">206-254</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">255</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.2" numbered="true" toc="include" removeInRFC="false" pn="section-8.2">
<name slugifiedName="name-tlv-types">TLV Types</name>
<table align="center" pn="table-6">
<name slugifiedName="name-tlv-types-2">TLV Types</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Type</th>
<th align="left" colspan="1" rowspan="1">Name</th>
<th align="left" colspan="1" rowspan="1">Usage Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1">-</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">BAS Function</td>
<td align="left" colspan="1" rowspan="1">Carries the BNG access functions to be enabled or disabled on specified interfaces.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Basic Subscriber</td>
<td align="left" colspan="1" rowspan="1">Carries the basic information about a BNG subscriber.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">PPP Subscriber</td>
<td align="left" colspan="1" rowspan="1">Carries the PPP information about a BNG subscriber.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">IPv4 Subscriber</td>
<td align="left" colspan="1" rowspan="1">Carries the IPv4 address of a BNG subscriber.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">IPv6 Subscriber</td>
<td align="left" colspan="1" rowspan="1">Carries the IPv6 address of a BNG subscriber.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">Subscriber Policy</td>
<td align="left" colspan="1" rowspan="1">Carries the policy information applied to a BNG subscriber.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">7</td>
<td align="left" colspan="1" rowspan="1">IPv4 Routing</td>
<td align="left" colspan="1" rowspan="1">Carries the IPv4 network routing information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">8</td>
<td align="left" colspan="1" rowspan="1">IPv6 Routing</td>
<td align="left" colspan="1" rowspan="1">Carries the IPv6 network routing information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">9</td>
<td align="left" colspan="1" rowspan="1">IPv4 Static Subscriber Detect</td>
<td align="left" colspan="1" rowspan="1">Carries the IPv4 static subscriber detect information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">10</td>
<td align="left" colspan="1" rowspan="1">IPv6 Static Subscriber Detect</td>
<td align="left" colspan="1" rowspan="1">Carries the IPv6 static subscriber detect information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">11</td>
<td align="left" colspan="1" rowspan="1">L2TP-LAC Subscriber</td>
<td align="left" colspan="1" rowspan="1">Carries the L2TP LAC subscriber information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">12</td>
<td align="left" colspan="1" rowspan="1">L2TP-LNS Subscriber</td>
<td align="left" colspan="1" rowspan="1">Carries the L2TP LNS subscriber information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">13</td>
<td align="left" colspan="1" rowspan="1">L2TP-LAC Tunnel</td>
<td align="left" colspan="1" rowspan="1">Carries the L2TP LAC tunnel subscriber information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">14</td>
<td align="left" colspan="1" rowspan="1">L2TP-LNS Tunnel</td>
<td align="left" colspan="1" rowspan="1">Carries the L2TP LNS tunnel subscriber information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">15</td>
<td align="left" colspan="1" rowspan="1">Subscriber CGN Port Range</td>
<td align="left" colspan="1" rowspan="1">Carries the public IPv4 address and related port range of a BNG subscriber.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">16-99</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1">-</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">100</td>
<td align="left" colspan="1" rowspan="1">Hello</td>
<td align="left" colspan="1" rowspan="1">Used for version and Keepalive timers negotiation.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">101</td>
<td align="left" colspan="1" rowspan="1">Error Information</td>
<td align="left" colspan="1" rowspan="1">Carried in the Ack of the control message. Carries the processing result, success, or error.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">102</td>
<td align="left" colspan="1" rowspan="1">Keepalive</td>
<td align="left" colspan="1" rowspan="1">Carried in the Hello message for Keepalive timers negotiation.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">103-199</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"> -</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">200</td>
<td align="left" colspan="1" rowspan="1">Interface Status</td>
<td align="left" colspan="1" rowspan="1">Interfaces status reported by the UP including physical interfaces, sub-interfaces, trunk interfaces, and tunnel interfaces.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">201</td>
<td align="left" colspan="1" rowspan="1">Board Status</td>
<td align="left" colspan="1" rowspan="1">Board information reported by the UP including the board type and in-position status.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">202-299</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1">-</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">300</td>
<td align="left" colspan="1" rowspan="1">Subscriber Traffic Statistics</td>
<td align="left" colspan="1" rowspan="1">User traffic statistics.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">301</td>
<td align="left" colspan="1" rowspan="1">Subscriber Detection Result</td>
<td align="left" colspan="1" rowspan="1">User detection information.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">302</td>
<td align="left" colspan="1" rowspan="1">Update Response</td>
<td align="left" colspan="1" rowspan="1">The processing result of a subscriber session update.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">303-299</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"> -</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">400</td>
<td align="left" colspan="1" rowspan="1">Address Allocation Request</td>
<td align="left" colspan="1" rowspan="1">Request address allocation.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">401</td>
<td align="left" colspan="1" rowspan="1">Address Allocation Response</td>
<td align="left" colspan="1" rowspan="1">Address allocation response.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">402</td>
<td align="left" colspan="1" rowspan="1">Address Renewal Request</td>
<td align="left" colspan="1" rowspan="1">Request for address lease renewal.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">403</td>
<td align="left" colspan="1" rowspan="1">Address Renewal Response</td>
<td align="left" colspan="1" rowspan="1">Response to a request for extending an IP address lease.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">404</td>
<td align="left" colspan="1" rowspan="1">Address Release Request</td>
<td align="left" colspan="1" rowspan="1">Request to release the address.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">405</td>
<td align="left" colspan="1" rowspan="1">Address Release Response</td>
<td align="left" colspan="1" rowspan="1">Ack of a message releasing an IP address.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">406-1023</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"> -</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1024</td>
<td align="left" colspan="1" rowspan="1">Vendor</td>
<td align="left" colspan="1" rowspan="1">As implemented by the vendor.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1039-4095</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"> -</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.3" numbered="true" toc="include" removeInRFC="false" pn="section-8.3">
<name slugifiedName="name-tlv-operation-codes">TLV Operation Codes</name>
<t pn="section-8.3-1">
TLV operation codes appear in the Oper field in the header of some
TLVs. See <xref target="sect-7.1" format="default" sectionFormat="of" derivedContent="Section 7.1"/>.</t>
<table align="center" pn="table-7">
<name slugifiedName="name-tlv-operation-codes-2">TLV Operation Codes</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Code</th>
<th align="left" colspan="1" rowspan="1">Operation</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Update</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Delete</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3-15</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.4" numbered="true" toc="include" removeInRFC="false" pn="section-8.4">
<name slugifiedName="name-sub-tlv-types">Sub-TLV Types</name>
<t pn="section-8.4-1">See <xref target="sect-7.3" format="default" sectionFormat="of" derivedContent="Section 7.3"/>.</t>
<table align="center" pn="table-8">
<name slugifiedName="name-sub-tlv-types-2">Sub-TLV Types</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Type</th>
<th align="left" colspan="1" rowspan="1">Name</th>
<th align="left" colspan="1" rowspan="1">Section of This Document</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">VRF Name</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Ingress-QoS-Profile</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">Egress-QoS-Profile</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">User-ACL-Policy</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">Multicast-ProfileV4</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">Multicast-ProfileV6</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">7</td>
<td align="left" colspan="1" rowspan="1">Ingress-CAR</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.2" format="counter" sectionFormat="of" derivedContent="7.3.2"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">8</td>
<td align="left" colspan="1" rowspan="1">Egress-CAR</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.3" format="counter" sectionFormat="of" derivedContent="7.3.3"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">9</td>
<td align="left" colspan="1" rowspan="1">NAT-Instance</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">10</td>
<td align="left" colspan="1" rowspan="1">Pool-Name</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.1" format="counter" sectionFormat="of" derivedContent="7.3.1"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">11</td>
<td align="left" colspan="1" rowspan="1">If-Desc</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.4" format="counter" sectionFormat="of" derivedContent="7.3.4"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">12</td>
<td align="left" colspan="1" rowspan="1">IPv6-Address List</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.5" format="counter" sectionFormat="of" derivedContent="7.3.5"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">13</td>
<td align="left" colspan="1" rowspan="1">Vendor</td>
<td align="left" colspan="1" rowspan="1">
<xref target="sect-7.3.6" format="counter" sectionFormat="of" derivedContent="7.3.6"/></td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">12-64534</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">65535</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.5" numbered="true" toc="include" removeInRFC="false" pn="section-8.5">
<name slugifiedName="name-error-codes">Error Codes</name>
<table align="center" pn="table-9">
<name slugifiedName="name-error-codes-2">Error Codes</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Value</th>
<th align="left" colspan="1" rowspan="1">Name</th>
<th align="left" colspan="1" rowspan="1">Remarks</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Success</td>
<td align="left" colspan="1" rowspan="1">Success</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Failure</td>
<td align="left" colspan="1" rowspan="1">Malformed message received.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">TLV-Unknown</td>
<td align="left" colspan="1" rowspan="1">One or more of the TLVs was not understood.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">TLV-Length</td>
<td align="left" colspan="1" rowspan="1">The TLV length is abnormal.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4-999</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1">Unassigned basic error codes.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1000</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1001</td>
<td align="left" colspan="1" rowspan="1">Version-Mismatch</td>
<td align="left" colspan="1" rowspan="1">The version negotiation fails. Terminate. The subsequent service processes corresponding to the UP are suspended.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1002</td>
<td align="left" colspan="1" rowspan="1">Keepalive Error</td>
<td align="left" colspan="1" rowspan="1">The keepalive negotiation fails.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1003</td>
<td align="left" colspan="1" rowspan="1">Timer Expires</td>
<td align="left" colspan="1" rowspan="1">The establishment timer expired.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1004-1999</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1">Unassigned error codes for version negotiation.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2000</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2001</td>
<td align="left" colspan="1" rowspan="1">Synch-NoReady</td>
<td align="left" colspan="1" rowspan="1">The data to be smoothed is not ready.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2002</td>
<td align="left" colspan="1" rowspan="1">Synch-Unsupport</td>
<td align="left" colspan="1" rowspan="1">The request for smooth data is not supported.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2003-2999</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1">Unassigned data synchronization error codes.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3000</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3001</td>
<td align="left" colspan="1" rowspan="1">Pool-Mismatch</td>
<td align="left" colspan="1" rowspan="1">The corresponding address pool cannot be found.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3002</td>
<td align="left" colspan="1" rowspan="1">Pool-Full</td>
<td align="left" colspan="1" rowspan="1">The address pool is fully allocated, and no address segment is available.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3003</td>
<td align="left" colspan="1" rowspan="1">Subnet-Mismatch</td>
<td align="left" colspan="1" rowspan="1">The address pool subnet cannot be found.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3004</td>
<td align="left" colspan="1" rowspan="1">Subnet-Conflict</td>
<td align="left" colspan="1" rowspan="1">Subnets in the address pool have been classified into other clients.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3005-3999</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
<td align="left" colspan="1" rowspan="1">Unassigned error codes for address allocation.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4000</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4001</td>
<td align="left" colspan="1" rowspan="1">Update-Fail-No-Res</td>
<td align="left" colspan="1" rowspan="1">The forwarding table fails to be delivered because the forwarding resources are insufficient.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4002</td>
<td align="left" colspan="1" rowspan="1">QoS-Update-Success</td>
<td align="left" colspan="1" rowspan="1">The QoS policy takes effect.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4003</td>
<td align="left" colspan="1" rowspan="1">QoS-Update-Sq-Fail</td>
<td align="left" colspan="1" rowspan="1">Failed to process the queue in the QoS policy.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4004</td>
<td align="left" colspan="1" rowspan="1">QoS-Update-CAR-Fail</td>
<td align="left" colspan="1" rowspan="1">Processing of the CAR in the QoS policy fails.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4005</td>
<td align="left" colspan="1" rowspan="1">Statistic-Fail-No-Res</td>
<td align="left" colspan="1" rowspan="1">Statistics processing failed due to insufficient statistics resources.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4006-4999</td>
<td align="left" colspan="1" rowspan="1">Unassigned </td>
<td align="left" colspan="1" rowspan="1">Unassigned forwarding table delivery error codes.</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5000-4294967295</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
<td align="left" colspan="1" rowspan="1"/>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.6" numbered="true" toc="include" removeInRFC="false" pn="section-8.6">
<name slugifiedName="name-if-type-values">If-Type Values</name>
<t pn="section-8.6-1">
Defined values of the If-Type field in the If-Desc sub-TLV (see
<xref target="sect-7.3.4" format="default" sectionFormat="of" derivedContent="Section 7.3.4"/>) are as follows:</t>
<table align="center" pn="table-10">
<name slugifiedName="name-if-type-values-2">If-Type Values</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Value</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Fast Ethernet (FE)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">GE</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">10GE</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">100GE</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">Eth-Trunk</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">Tunnel</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">7</td>
<td align="left" colspan="1" rowspan="1">VE</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">8-254</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">255</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.7" numbered="true" toc="include" removeInRFC="false" pn="section-8.7">
<name slugifiedName="name-access-mode-values">Access-Mode Values</name>
<t pn="section-8.7-1">
Defined values of the Access-Mode field in the BAS Function TLV (see
<xref target="sect-7.7" format="default" sectionFormat="of" derivedContent="Section 7.7"/>) are as follows:</t>
<table align="center" pn="table-11">
<name slugifiedName="name-access-mode-values-2">Access-Mode Values</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Value</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Layer 2 subscriber</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Layer 3 subscriber</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Layer 2 leased line</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">Layer 3 leased line</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4-254</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">255</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.8" numbered="true" toc="include" removeInRFC="false" pn="section-8.8">
<name slugifiedName="name-access-method-bits">Access Method Bits</name>
<t pn="section-8.8-1">
Defined values of the Auth-Method4 and Auth-Method6 fields in the BAS
Function TLV (see <xref target="sect-7.7" format="default" sectionFormat="of" derivedContent="Section 7.7"/>) are defined as bit fields as follows:</t>
<table align="center" pn="table-12">
<name slugifiedName="name-auth-method4-values">Auth-Method4 Values</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Bit</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0x01</td>
<td align="left" colspan="1" rowspan="1">PPPoE authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x02</td>
<td align="left" colspan="1" rowspan="1">DOT1X authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x04</td>
<td align="left" colspan="1" rowspan="1">Web authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x08</td>
<td align="left" colspan="1" rowspan="1">Web fast authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x10</td>
<td align="left" colspan="1" rowspan="1">Binding authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x20</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x40</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x80</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
</tbody>
</table>
<table align="center" pn="table-13">
<name slugifiedName="name-auth-method6-values">Auth-Method6 Values</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Bit</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0x01</td>
<td align="left" colspan="1" rowspan="1">PPPoE authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x02</td>
<td align="left" colspan="1" rowspan="1">DOT1X authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x04</td>
<td align="left" colspan="1" rowspan="1">Web authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x08</td>
<td align="left" colspan="1" rowspan="1">Web fast authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x10</td>
<td align="left" colspan="1" rowspan="1">Binding authentication</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x20</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x40</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">0x80</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.9" numbered="true" toc="include" removeInRFC="false" pn="section-8.9">
<name slugifiedName="name-route-type-values">Route-Type Values</name>
<t pn="section-8.9-1">
Values of the Route-Type field in the IPv4 and IPv6 Routing TLVs (see Sections
<xref target="sect-7.8.1" format="counter" sectionFormat="of" derivedContent="7.8.1"/> and <xref target="sect-7.8.2" format="counter" sectionFormat="of" derivedContent="7.8.2"/>) defined in this document are as follows:</t>
<table align="center" pn="table-14">
<name slugifiedName="name-route-type-values-2">Route-Type Values</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Value</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">User host route</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">Radius authorization FrameRoute</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">Network segment route</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">Gateway route</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">Radius authorized IP route</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">L2TP LNS side user route</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6-65534</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">65535</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
</tbody>
</table>
</section>
<section anchor="sect-9.10" numbered="true" toc="include" removeInRFC="false" pn="section-8.10">
<name slugifiedName="name-access-type-values">Access-Type Values</name>
<t pn="section-8.10-1">
Values of the Access-Type field in the Basic Subscriber TLV (see
<xref target="sect-7.9.1" format="default" sectionFormat="of" derivedContent="Section 7.9.1"/>) defined in this document are as follows:</t>
<table align="center" pn="table-15">
<name slugifiedName="name-access-type-values-2">Access-Type Values</name>
<thead>
<tr>
<th align="left" colspan="1" rowspan="1">Value</th>
<th align="left" colspan="1" rowspan="1">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="1" rowspan="1">0</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">1</td>
<td align="left" colspan="1" rowspan="1">PPP access (PPP <xref target="RFC1661" format="default" sectionFormat="of" derivedContent="RFC1661"/>)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">2</td>
<td align="left" colspan="1" rowspan="1">PPP over Ethernet over ATM access (PPPoEoA)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">3</td>
<td align="left" colspan="1" rowspan="1">PPP over ATM access (PPPoA <xref target="RFC3336" format="default" sectionFormat="of" derivedContent="RFC3336"/>)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">4</td>
<td align="left" colspan="1" rowspan="1">PPP over Ethernet access (PPPoE <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/>)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">5</td>
<td align="left" colspan="1" rowspan="1">PPPoE over VLAN access (PPPoEoVLAN <xref target="RFC2516" format="default" sectionFormat="of" derivedContent="RFC2516"/>)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">6</td>
<td align="left" colspan="1" rowspan="1">PPP over LNS access (PPPoLNS)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">7</td>
<td align="left" colspan="1" rowspan="1">IP over Ethernet DHCP access (IPoE_DHCP)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">8</td>
<td align="left" colspan="1" rowspan="1">IP over Ethernet EAP authentication access (IPoE_EAP)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">9</td>
<td align="left" colspan="1" rowspan="1">IP over Ethernet Layer 3 access (IPoE_L3)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">10</td>
<td align="left" colspan="1" rowspan="1">IP over Ethernet Layer 2 Static access (IPoE_L2_STATIC)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">11</td>
<td align="left" colspan="1" rowspan="1">Layer 2 Leased Line access (L2_Leased_Line)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">12</td>
<td align="left" colspan="1" rowspan="1">Layer 2 VPN Leased Line access (L2VPN_Leased_Line)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">13</td>
<td align="left" colspan="1" rowspan="1">Layer 3 Leased Line access (L3_Leased_Line)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">14</td>
<td align="left" colspan="1" rowspan="1">Layer 2 Leased line Sub-User access
(L2_Leased_Line_SUB_USER)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">15</td>
<td align="left" colspan="1" rowspan="1">L2TP LAC tunnel access (L2TP_LAC)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">16</td>
<td align="left" colspan="1" rowspan="1">L2TP LNS tunnel access (L2TP_LNS)</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">17-254</td>
<td align="left" colspan="1" rowspan="1">Unassigned</td>
</tr>
<tr>
<td align="left" colspan="1" rowspan="1">255</td>
<td align="left" colspan="1" rowspan="1">Reserved</td>
</tr>
</tbody>
</table>
</section>
</section>
<section anchor="sect-10" numbered="true" toc="include" removeInRFC="false" pn="section-9">
<name slugifiedName="name-iana-considerations">IANA Considerations</name>
<t pn="section-9-1">
This document has no IANA actions.</t>
</section>
<section anchor="sect-11" numbered="true" toc="include" removeInRFC="false" pn="section-10">
<name slugifiedName="name-security-considerations">Security Considerations</name>
<t pn="section-10-1">
The Service, Control, and Management Interfaces between the CP and UP
might be across the general Internet or other hostile environment.
The ability of an adversary to block or corrupt messages or introduce
spurious messages on any one or more of these interfaces would give
the adversary the ability to stop subscribers from accessing network
services, disrupt existing subscriber sessions, divert traffic, mess
up accounting statistics, and generally cause havoc. Damage would not
necessarily be limited to one or a few subscribers but could disrupt
routing or deny service to one or more instances of the CP or
otherwise cause extensive interference. If the adversary knows the
details of the UP equipment and its forwarding rule capabilities, the
adversary may be able to cause a copy of most or all user data to be
sent to an address of the adversary's choosing, thus enabling
eavesdropping.</t>
<t pn="section-10-2">
Thus, appropriate protections <bcp14>MUST</bcp14> be implemented to provide
integrity, authenticity, and secrecy of traffic over those
interfaces. Whether such protection is used is the decision of the network operator.
See <xref target="RFC6241" format="default" sectionFormat="of" derivedContent="RFC6241"/> for Mi/NETCONF security.
Security on the Si is dependent on the tunneling
protocol used, which is out of scope for this document. Security for
the Ci, over which S-CUSP flows, is
further discussed below.</t>
<t pn="section-10-3">
S-CUSP messages do not provide security. Thus, if these messages are
exchanged in an environment where security is a concern, that
security <bcp14>MUST</bcp14> be provided by another protocol such as TLS 1.3
<xref target="RFC8446" format="default" sectionFormat="of" derivedContent="RFC8446"/> or IPsec. TLS 1.3 is the mandatory-to-implement protocol
for interoperability. The use of a particular security protocol on
the Ci is determined by configuration. Such security
protocols need not always be used, and lesser security precautions
might be appropriate because, in some cases, the communication
between the CP and UP is in a benign environment.</t>
</section>
</middle>
<back>
<displayreference target="RFC0020" to="RFC20"/>
<displayreference target="RFC0793" to="RFC793"/>
<displayreference target="IEEE-802.1Q" to="802.1Q"/>
<references pn="section-11">
<name slugifiedName="name-references">References</name>
<references pn="section-11.1">
<name slugifiedName="name-normative-references">Normative References</name>
<reference anchor="RFC0020" target="https://www.rfc-editor.org/info/rfc20" quoteTitle="true" derivedAnchor="RFC20">
<front>
<title>ASCII format for network interchange</title>
<author initials="V.G." surname="Cerf" fullname="V.G. Cerf">
<organization showOnFrontPage="true"/>
</author>
<date year="1969" month="October"/>
</front>
<seriesInfo name="STD" value="80"/>
<seriesInfo name="RFC" value="20"/>
<seriesInfo name="DOI" value="10.17487/RFC0020"/>
</reference>
<reference anchor="RFC0793" target="https://www.rfc-editor.org/info/rfc793" quoteTitle="true" derivedAnchor="RFC793">
<front>
<title>Transmission Control Protocol</title>
<author initials="J." surname="Postel" fullname="J. Postel">
<organization showOnFrontPage="true"/>
</author>
<date year="1981" month="September"/>
</front>
<seriesInfo name="STD" value="7"/>
<seriesInfo name="RFC" value="793"/>
<seriesInfo name="DOI" value="10.17487/RFC0793"/>
</reference>
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials="S." surname="Bradner" fullname="S. Bradner">
<organization showOnFrontPage="true"/>
</author>
<date year="1997" month="March"/>
<abstract>
<t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="2119"/>
<seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC2661" target="https://www.rfc-editor.org/info/rfc2661" quoteTitle="true" derivedAnchor="RFC2661">
<front>
<title>Layer Two Tunneling Protocol "L2TP"</title>
<author initials="W." surname="Townsley" fullname="W. Townsley">
<organization showOnFrontPage="true"/>
</author>
<author initials="A." surname="Valencia" fullname="A. Valencia">
<organization showOnFrontPage="true"/>
</author>
<author initials="A." surname="Rubens" fullname="A. Rubens">
<organization showOnFrontPage="true"/>
</author>
<author initials="G." surname="Pall" fullname="G. Pall">
<organization showOnFrontPage="true"/>
</author>
<author initials="G." surname="Zorn" fullname="G. Zorn">
<organization showOnFrontPage="true"/>
</author>
<author initials="B." surname="Palter" fullname="B. Palter">
<organization showOnFrontPage="true"/>
</author>
<date year="1999" month="August"/>
<abstract>
<t>This document describes the Layer Two Tunneling Protocol (L2TP). [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="2661"/>
<seriesInfo name="DOI" value="10.17487/RFC2661"/>
</reference>
<reference anchor="RFC2865" target="https://www.rfc-editor.org/info/rfc2865" quoteTitle="true" derivedAnchor="RFC2865">
<front>
<title>Remote Authentication Dial In User Service (RADIUS)</title>
<author initials="C." surname="Rigney" fullname="C. Rigney">
<organization showOnFrontPage="true"/>
</author>
<author initials="S." surname="Willens" fullname="S. Willens">
<organization showOnFrontPage="true"/>
</author>
<author initials="A." surname="Rubens" fullname="A. Rubens">
<organization showOnFrontPage="true"/>
</author>
<author initials="W." surname="Simpson" fullname="W. Simpson">
<organization showOnFrontPage="true"/>
</author>
<date year="2000" month="June"/>
<abstract>
<t>This document describes a protocol for carrying authentication, authorization, and configuration information between a Network Access Server which desires to authenticate its links and a shared Authentication Server. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="2865"/>
<seriesInfo name="DOI" value="10.17487/RFC2865"/>
</reference>
<reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" quoteTitle="true" derivedAnchor="RFC6241">
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author initials="R." surname="Enns" fullname="R. Enns" role="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role="editor">
<organization showOnFrontPage="true"/>
</author>
<author initials="A." surname="Bierman" fullname="A. Bierman" role="editor">
<organization showOnFrontPage="true"/>
</author>
<date year="2011" month="June"/>
<abstract>
<t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="6241"/>
<seriesInfo name="DOI" value="10.17487/RFC6241"/>
</reference>
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials="B." surname="Leiba" fullname="B. Leiba">
<organization showOnFrontPage="true"/>
</author>
<date year="2017" month="May"/>
<abstract>
<t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="8174"/>
<seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
</references>
<references pn="section-11.2">
<name slugifiedName="name-informative-references">Informative References</name>
<reference anchor="IEEE-802.1Q" quoteTitle="true" target="https://doi.org/10.1109/IEEESTD.2018.8403927" derivedAnchor="802.1Q">
<front>
<title>IEEE Standard for Local and metropolitan area networks--Bridges and Bridged Networks</title>
<author>
<organization showOnFrontPage="true">IEEE</organization>
</author>
<date month="July" year="2018"/>
</front>
<seriesInfo name="IEEE" value="802.1Q-2018"/>
<seriesInfo name="DOI" value="10.1109/IEEESTD.2018.8403927"/>
</reference>
<reference anchor="RFC1661" target="https://www.rfc-editor.org/info/rfc1661" quoteTitle="true" derivedAnchor="RFC1661">
<front>
<title>The Point-to-Point Protocol (PPP)</title>
<author initials="W." surname="Simpson" fullname="W. Simpson" role="editor">
<organization showOnFrontPage="true"/>
</author>
<date year="1994" month="July"/>
<abstract>
<t>This document defines the PPP organization and methodology, and the PPP encapsulation, together with an extensible option negotiation mechanism which is able to negotiate a rich assortment of configuration parameters and provides additional management functions. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="STD" value="51"/>
<seriesInfo name="RFC" value="1661"/>
<seriesInfo name="DOI" value="10.17487/RFC1661"/>
</reference>
<reference anchor="RFC2131" target="https://www.rfc-editor.org/info/rfc2131" quoteTitle="true" derivedAnchor="RFC2131">
<front>
<title>Dynamic Host Configuration Protocol</title>
<author initials="R." surname="Droms" fullname="R. Droms">
<organization showOnFrontPage="true"/>
</author>
<date year="1997" month="March"/>
<abstract>
<t>The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network. DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="2131"/>
<seriesInfo name="DOI" value="10.17487/RFC2131"/>
</reference>
<reference anchor="RFC2516" target="https://www.rfc-editor.org/info/rfc2516" quoteTitle="true" derivedAnchor="RFC2516">
<front>
<title>A Method for Transmitting PPP Over Ethernet (PPPoE)</title>
<author initials="L." surname="Mamakos" fullname="L. Mamakos">
<organization showOnFrontPage="true"/>
</author>
<author initials="K." surname="Lidl" fullname="K. Lidl">
<organization showOnFrontPage="true"/>
</author>
<author initials="J." surname="Evarts" fullname="J. Evarts">
<organization showOnFrontPage="true"/>
</author>
<author initials="D." surname="Carrel" fullname="D. Carrel">
<organization showOnFrontPage="true"/>
</author>
<author initials="D." surname="Simone" fullname="D. Simone">
<organization showOnFrontPage="true"/>
</author>
<author initials="R." surname="Wheeler" fullname="R. Wheeler">
<organization showOnFrontPage="true"/>
</author>
<date year="1999" month="February"/>
<abstract>
<t>This document describes how to build PPP sessions and encapsulate PPP packets over Ethernet. This memo provides information for the Internet community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="2516"/>
<seriesInfo name="DOI" value="10.17487/RFC2516"/>
</reference>
<reference anchor="RFC2698" target="https://www.rfc-editor.org/info/rfc2698" quoteTitle="true" derivedAnchor="RFC2698">
<front>
<title>A Two Rate Three Color Marker</title>
<author initials="J." surname="Heinanen" fullname="J. Heinanen">
<organization showOnFrontPage="true"/>
</author>
<author initials="R." surname="Guerin" fullname="R. Guerin">
<organization showOnFrontPage="true"/>
</author>
<date year="1999" month="September"/>
<abstract>
<t>This document defines a Two Rate Three Color Marker (trTCM), which can be used as a component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="2698"/>
<seriesInfo name="DOI" value="10.17487/RFC2698"/>
</reference>
<reference anchor="RFC3022" target="https://www.rfc-editor.org/info/rfc3022" quoteTitle="true" derivedAnchor="RFC3022">
<front>
<title>Traditional IP Network Address Translator (Traditional NAT)</title>
<author initials="P." surname="Srisuresh" fullname="P. Srisuresh">
<organization showOnFrontPage="true"/>
</author>
<author initials="K." surname="Egevang" fullname="K. Egevang">
<organization showOnFrontPage="true"/>
</author>
<date year="2001" month="January"/>
<abstract>
<t>The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation. In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail. This memo provides information for the Internet community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="3022"/>
<seriesInfo name="DOI" value="10.17487/RFC3022"/>
</reference>
<reference anchor="RFC3336" target="https://www.rfc-editor.org/info/rfc3336" quoteTitle="true" derivedAnchor="RFC3336">
<front>
<title>PPP Over Asynchronous Transfer Mode Adaptation Layer 2 (AAL2)</title>
<author initials="B." surname="Thompson" fullname="B. Thompson">
<organization showOnFrontPage="true"/>
</author>
<author initials="T." surname="Koren" fullname="T. Koren">
<organization showOnFrontPage="true"/>
</author>
<author initials="B." surname="Buffam" fullname="B. Buffam">
<organization showOnFrontPage="true"/>
</author>
<date year="2002" month="December"/>
</front>
<seriesInfo name="RFC" value="3336"/>
<seriesInfo name="DOI" value="10.17487/RFC3336"/>
</reference>
<reference anchor="RFC5511" target="https://www.rfc-editor.org/info/rfc5511" quoteTitle="true" derivedAnchor="RFC5511">
<front>
<title>Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications</title>
<author initials="A." surname="Farrel" fullname="A. Farrel">
<organization showOnFrontPage="true"/>
</author>
<date year="2009" month="April"/>
<abstract>
<t>Several protocols have been specified in the Routing Area of the IETF using a common variant of the Backus-Naur Form (BNF) of representing message syntax. However, there is no formal definition of this version of BNF.</t>
<t>There is value in using the same variant of BNF for the set of protocols that are commonly used together. This reduces confusion and simplifies implementation.</t>
<t>Updating existing documents to use some other variant of BNF that is already formally documented would be a substantial piece of work.</t>
<t>This document provides a formal definition of the variant of BNF that has been used (that we call Routing BNF) and makes it available for use by new protocols. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="5511"/>
<seriesInfo name="DOI" value="10.17487/RFC5511"/>
</reference>
<reference anchor="RFC7042" target="https://www.rfc-editor.org/info/rfc7042" quoteTitle="true" derivedAnchor="RFC7042">
<front>
<title>IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters</title>
<author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
<organization showOnFrontPage="true"/>
</author>
<author initials="J." surname="Abley" fullname="J. Abley">
<organization showOnFrontPage="true"/>
</author>
<date year="2013" month="October"/>
<abstract>
<t>Some IETF protocols make use of Ethernet frame formats and IEEE 802 parameters. This document discusses several uses of such parameters in IETF protocols, specifies IANA considerations for assignment of points under the IANA OUI (Organizationally Unique Identifier), and provides some values for use in documentation. This document obsoletes RFC 5342.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="141"/>
<seriesInfo name="RFC" value="7042"/>
<seriesInfo name="DOI" value="10.17487/RFC7042"/>
</reference>
<reference anchor="RFC7348" target="https://www.rfc-editor.org/info/rfc7348" quoteTitle="true" derivedAnchor="RFC7348">
<front>
<title>Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks</title>
<author initials="M." surname="Mahalingam" fullname="M. Mahalingam">
<organization showOnFrontPage="true"/>
</author>
<author initials="D." surname="Dutt" fullname="D. Dutt">
<organization showOnFrontPage="true"/>
</author>
<author initials="K." surname="Duda" fullname="K. Duda">
<organization showOnFrontPage="true"/>
</author>
<author initials="P." surname="Agarwal" fullname="P. Agarwal">
<organization showOnFrontPage="true"/>
</author>
<author initials="L." surname="Kreeger" fullname="L. Kreeger">
<organization showOnFrontPage="true"/>
</author>
<author initials="T." surname="Sridhar" fullname="T. Sridhar">
<organization showOnFrontPage="true"/>
</author>
<author initials="M." surname="Bursell" fullname="M. Bursell">
<organization showOnFrontPage="true"/>
</author>
<author initials="C." surname="Wright" fullname="C. Wright">
<organization showOnFrontPage="true"/>
</author>
<date year="2014" month="August"/>
<abstract>
<t>This document describes Virtual eXtensible Local Area Network (VXLAN), which is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants. The scheme and the related protocols can be used in networks for cloud service providers and enterprise data centers. This memo documents the deployed VXLAN protocol for the benefit of the Internet community.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7348"/>
<seriesInfo name="DOI" value="10.17487/RFC7348"/>
</reference>
<reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" quoteTitle="true" derivedAnchor="RFC8446">
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
<author initials="E." surname="Rescorla" fullname="E. Rescorla">
<organization showOnFrontPage="true"/>
</author>
<date year="2018" month="August"/>
<abstract>
<t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
<t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="8446"/>
<seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>
<reference anchor="TR-384" quoteTitle="true" derivedAnchor="TR-384">
<front>
<title>Cloud Central Office Reference Architectural Framework</title>
<seriesInfo name="BBF" value="TR-384"/>
<author>
<organization showOnFrontPage="true">Broadband Forum</organization>
</author>
<date month="January" year="2018"/>
</front>
</reference>
<reference anchor="WT-459" quoteTitle="true" derivedAnchor="WT-459">
<front>
<title>Control and User Plane Separation for a Disaggregated BNG</title>
<seriesInfo name="BBF" value="WT-459"/>
<author>
<organization showOnFrontPage="true">Broadband Forum</organization>
</author>
<date year="2019"/>
</front>
</reference>
</references>
</references>
<section numbered="false" anchor="acknowledgements" toc="include" removeInRFC="false" pn="section-appendix.a">
<name slugifiedName="name-acknowledgements">Acknowledgements</name>
<t pn="section-appendix.a-1">
The helpful comments and suggestions from the following individuals are hereby
acknowledged:
</t>
<ul spacing="normal" bare="false" empty="false" pn="section-appendix.a-2">
<li pn="section-appendix.a-2.1">
<t pn="section-appendix.a-2.1.1"><contact fullname="Loa Andersson"/></t>
</li>
<li pn="section-appendix.a-2.2">
<t pn="section-appendix.a-2.2.1"><contact fullname="Greg Mirsky"/></t>
</li>
</ul>
</section>
<section numbered="false" anchor="contributors" toc="include" removeInRFC="false" pn="section-appendix.b">
<name slugifiedName="name-contributors">Contributors</name>
<contact fullname="Zhenqiang Li">
<organization showOnFrontPage="true">China Mobile</organization>
<address>
<postal>
<street>32 Xuanwumen West Ave</street>
<cityarea>Xicheng District</cityarea>
<city>Beijing</city>
<region/>
<code>100053</code>
<country>China</country>
</postal>
<email>lizhenqiang@chinamobile.com</email>
</address>
</contact>
<contact fullname="Mach(Guoyi) Chen">
<organization showOnFrontPage="true">Huawei Technologies</organization>
<address>
<postal>
<street>Huawei Bldg., No. 156 Beiqing Road</street>
<city>Beijing</city>
<region/>
<code>100095</code>
<country>China</country>
</postal>
<email>mach.chen@huawei.com</email>
</address>
</contact>
<contact fullname="Zhouyi Yu">
<organization showOnFrontPage="true">Huawei Technologies</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<email>yuzhouyi@huawei.com</email>
</address>
</contact>
<contact fullname="Chengguang Niu">
<organization showOnFrontPage="true">Huawei Technologies</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<email>chengguang.niu@huawei.com</email>
</address>
</contact>
<contact fullname="Zitao Wang">
<organization showOnFrontPage="true">Huawei Technologies</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<email>wangzitao@huawei.com</email>
</address>
</contact>
<contact fullname="Jun Song">
<organization showOnFrontPage="true">Huawei Technologies</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<email>song.jun@huawei.com</email>
</address>
</contact>
<contact fullname="Dan Meng">
<organization showOnFrontPage="true">H3C Technologies</organization>
<address>
<postal>
<extaddr>No. 1 Lixing Center</extaddr>
<street>No. 8 Guangxun South Street</street>
<cityarea>Chaoyang District</cityarea>
<city>Beijing</city>
<region/>
<code>100102</code>
<country>China</country>
</postal>
<email>mengdan@h3c.com</email>
</address>
</contact>
<contact fullname="Hanlei Liu">
<organization showOnFrontPage="true">H3C Technologies</organization>
<address>
<postal>
<extaddr>No. 1 Lixing Center</extaddr>
<street>No. 8 Guangxun South Street</street>
<cityarea>Chaoyang District</cityarea>
<city>Beijing</city>
<region/>
<code>100102</code>
<country>China</country>
</postal>
<email>hanlei_liu@h3c.com</email>
</address>
</contact>
<contact fullname="Victor Lopez">
<organization showOnFrontPage="true">Telefonica</organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country>Spain</country>
</postal>
<email>victor.lopezalvarez@telefonica.com</email>
</address>
</contact>
</section>
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
<name slugifiedName="name-authors-addresses">Authors' Addresses</name>
<author fullname="Shujun Hu" initials="S." surname="Hu">
<organization showOnFrontPage="true">China Mobile</organization>
<address>
<postal>
<street>32 Xuanwumen West Ave</street>
<cityarea>Xicheng District</cityarea>
<city>Beijing</city>
<code>100053</code>
<country>China</country>
</postal>
<email>hushujun@chinamobile.com</email>
</address>
</author>
<author fullname="Donald Eastlake 3rd" initials="D." surname="Eastlake 3rd">
<organization showOnFrontPage="true">Futurewei Technologies</organization>
<address>
<postal>
<street>2386 Panoramic Circle</street>
<city>Apopka</city>
<region>FL</region>
<code>32703</code>
<country>US</country>
</postal>
<phone>+1-508-333-2270</phone>
<email>d3e3e3@gmail.com</email>
</address>
</author>
<author fullname="Fengwei Qin" initials="F." surname="Qin">
<organization showOnFrontPage="true">China Mobile</organization>
<address>
<postal>
<street>32 Xuanwumen West Ave</street>
<cityarea>Xicheng District</cityarea>
<city>Beijing</city>
<code>100053</code>
<country>China</country>
</postal>
<email>qinfengwei@chinamobile.com</email>
</address>
</author>
<author fullname="Tee Mong Chua" initials="T." surname="Chua">
<organization abbrev="Singapore Telecommunications" showOnFrontPage="true">Singapore Telecommunications Limited</organization>
<address>
<postal>
<street>31 Exeter Road, #05-04 Comcentre Podium Block</street>
<city>Singapore</city>
<code>239732</code>
<country>Singapore</country>
</postal>
<email>teemong@singtel.com</email>
</address>
</author>
<author fullname="Daniel Huang" initials="D." surname="Huang">
<organization showOnFrontPage="true">ZTE</organization>
<address>
<email>huang.guangping@zte.com.cn</email>
</address>
</author>
</section>
</back>
</rfc>
|