Commit bb65e8c
committed
dhcpv6: implement RFC9686
Registering Self-Generated IPv6 Addresses Using DHCPv6
This functionality registers a clients SLAAC or static address in
the DHCPv6 pool, primarily for diagnostic purposes as outlined in §1.
Most of the machinery required for this functionality already exists,
so we perform a few additional sets and checks in the IA code.
The address registration mechanism overview:
```
+--------+ +------------------+ +---------------+
| CLIENT | | FIRST-HOP ROUTER | | DHCPv6 SERVER |
+--------+ +---------+--------+ +-------+-------+
| SLAAC | |
|<--------------------> | |
| | |
| |
| src: link-local address |
| --------------------------------------------> |
| INFORMATION-REQUEST or SOLICIT/... |
| - OPTION REQUEST OPTION |
| -- OPTION_ADDR_REG_ENABLE |
| |
| ... |
| |
| |
|<--------------------------------------------- |
| REPLY or ADVERTISE MESSAGE |
| - OPTION_ADDR_REG_ENABLE |
| |
| |
| src: address being registered |
| --------------------------------------------> |
| ADDR-REG-INFORM MESSAGE |Register/
| |log addresses
| |
| |
| <-------------------------------------------- |
| ADDR-REG-REPLY MESSAGE |
| |
```
Closes #349
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: #3531 parent 017b1c7 commit bb65e8c
3 files changed
Lines changed: 135 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
862 | 862 | | |
863 | 863 | | |
864 | 864 | | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
865 | 868 | | |
866 | 869 | | |
867 | 870 | | |
| |||
985 | 988 | | |
986 | 989 | | |
987 | 990 | | |
| 991 | + | |
| 992 | + | |
988 | 993 | | |
989 | 994 | | |
990 | 995 | | |
| |||
1052 | 1057 | | |
1053 | 1058 | | |
1054 | 1059 | | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
1055 | 1073 | | |
1056 | 1074 | | |
1057 | 1075 | | |
| |||
1138 | 1156 | | |
1139 | 1157 | | |
1140 | 1158 | | |
1141 | | - | |
| 1159 | + | |
| 1160 | + | |
1142 | 1161 | | |
1143 | 1162 | | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
1144 | 1184 | | |
1145 | 1185 | | |
1146 | 1186 | | |
| |||
1162 | 1202 | | |
1163 | 1203 | | |
1164 | 1204 | | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
1165 | 1212 | | |
1166 | 1213 | | |
1167 | 1214 | | |
| |||
1237 | 1284 | | |
1238 | 1285 | | |
1239 | 1286 | | |
1240 | | - | |
| 1287 | + | |
| 1288 | + | |
1241 | 1289 | | |
1242 | 1290 | | |
1243 | 1291 | | |
| |||
1248 | 1296 | | |
1249 | 1297 | | |
1250 | 1298 | | |
1251 | | - | |
1252 | | - | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
1253 | 1309 | | |
1254 | 1310 | | |
1255 | 1311 | | |
| |||
1295 | 1351 | | |
1296 | 1352 | | |
1297 | 1353 | | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
1298 | 1357 | | |
1299 | 1358 | | |
1300 | 1359 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
193 | 194 | | |
194 | 195 | | |
195 | 196 | | |
| |||
347 | 348 | | |
348 | 349 | | |
349 | 350 | | |
| 351 | + | |
350 | 352 | | |
351 | 353 | | |
352 | 354 | | |
| |||
358 | 360 | | |
359 | 361 | | |
360 | 362 | | |
| 363 | + | |
361 | 364 | | |
362 | 365 | | |
363 | 366 | | |
| |||
424 | 427 | | |
425 | 428 | | |
426 | 429 | | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
427 | 439 | | |
428 | 440 | | |
429 | 441 | | |
| |||
611 | 623 | | |
612 | 624 | | |
613 | 625 | | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
614 | 630 | | |
615 | 631 | | |
616 | 632 | | |
| |||
667 | 683 | | |
668 | 684 | | |
669 | 685 | | |
670 | | - | |
| 686 | + | |
| 687 | + | |
671 | 688 | | |
672 | 689 | | |
673 | 690 | | |
| |||
687 | 704 | | |
688 | 705 | | |
689 | 706 | | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
690 | 711 | | |
691 | 712 | | |
692 | 713 | | |
693 | 714 | | |
694 | 715 | | |
695 | 716 | | |
696 | 717 | | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
697 | 723 | | |
698 | 724 | | |
699 | 725 | | |
| |||
751 | 777 | | |
752 | 778 | | |
753 | 779 | | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
754 | 787 | | |
755 | 788 | | |
756 | 789 | | |
| |||
805 | 838 | | |
806 | 839 | | |
807 | 840 | | |
808 | | - | |
| 841 | + | |
| 842 | + | |
809 | 843 | | |
810 | 844 | | |
811 | 845 | | |
| |||
957 | 991 | | |
958 | 992 | | |
959 | 993 | | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
960 | 998 | | |
961 | 999 | | |
962 | 1000 | | |
| |||
970 | 1008 | | |
971 | 1009 | | |
972 | 1010 | | |
| 1011 | + | |
973 | 1012 | | |
974 | 1013 | | |
975 | 1014 | | |
976 | 1015 | | |
977 | 1016 | | |
978 | 1017 | | |
979 | 1018 | | |
| 1019 | + | |
980 | 1020 | | |
981 | 1021 | | |
982 | 1022 | | |
| |||
991 | 1031 | | |
992 | 1032 | | |
993 | 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 | + | |
994 | 1059 | | |
995 | 1060 | | |
996 | 1061 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
44 | 47 | | |
45 | 48 | | |
46 | 49 | | |
| |||
77 | 80 | | |
78 | 81 | | |
79 | 82 | | |
| 83 | + | |
| 84 | + | |
80 | 85 | | |
81 | 86 | | |
82 | 87 | | |
| |||
0 commit comments