]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3683] Added addr-reg-enable
authorFrancis Dupont <fdupont@isc.org>
Thu, 19 Dec 2024 12:15:07 +0000 (13:15 +0100)
committerFrancis Dupont <fdupont@isc.org>
Fri, 21 Feb 2025 17:23:21 +0000 (18:23 +0100)
doc/sphinx/arm/dhcp6-srv.rst
src/lib/dhcp/dhcp6.h
src/lib/dhcp/std_option_defs.h
src/lib/dhcp/tests/libdhcp++_unittest.cc

index bf1739649a027a943ec83a4aa4bcd958ebd2bba2..f86fe26c10daffa597d67d35b428c4ce8930c6cf 100644 (file)
@@ -1858,6 +1858,8 @@ types are given in :ref:`dhcp-types`.
    |                          |                 | uint16, fqdn,   |                 |
    |                          |                 | binary)         |                 |
    +--------------------------+-----------------+-----------------+-----------------+
+   | addr-reg-enable          | 148             | empty           | false           |
+   +--------------------------+-----------------+-----------------+-----------------+
 
 Options marked with (1) have option definitions, but the logic behind
 them is not implemented. That means that, technically, Kea knows how to
index cc7574a40f152772df9a83f28d216b239d30808f..1afbfbfc5d6609621557ed03cc9692edae018c2b 100644 (file)
@@ -154,9 +154,19 @@ enum DHCPv6OptionType {
 // D6O_F_STATE_EXPIRATION_TIME            = 134, /* RFC8156 */
    D6O_RELAY_SOURCE_PORT                  = 135, /* RFC8357 */
    D6O_V6_SZTP_REDIRECT                   = 136, /* RFC8572 */
-   // Option codes 137-142 are unassigned.
+// D6O_S46_BIND_IPV6_PREFIX               = 137, /* RFC8539 */
+// D6O_IA_LL                              = 138, /* RFC8947 */
+// D6O_LLADDR                             = 139, /* RFC8947 */
+// D6O_SLAP_QUAD                          = 140, /* RFC8958 */
+// D6O_V6_DOTS_RI                         = 141, /* RFC8973 */
+// D6O_V6_DOTS_ADDRESS                    = 142, /* RFC8973 */
    D6O_IPV6_ADDRESS_ANDSF                 = 143, /* RFC6153 */
-   D6O_V6_DNR                             = 144 /* RFC9463 */
+   D6O_V6_DNR                             = 144, /* RFC9463 */
+// D6O_REGISTERED_DOMAIN                  = 145, /* RFC9527 */
+// D6O_FORWARD_DIST_MANAGER               = 146, /* RFC9527 */
+// D6O_REVERSE_DIST_MANAGER               = 147, /* RFC9527 */
+   D6O_ADDR_REG_ENABLE                    = 148 /* RFC3683 */
+// 149 and 150 temporary assigned.
 };
 
 /*
@@ -236,6 +246,8 @@ enum DHCPv6MessageType {
    DHCPV6_DISCONNECT           = 33,
    DHCPV6_STATE                = 34,
    DHCPV6_CONTACT              = 35,
+   DHCPV6_ADD_REG_INFORM       = 36,
+   DHCPV6_ADD_REG_REPLY        = 37,
    DHCPV6_TYPES_EOF
 };
 
index ad125a2a1c0c7cedcf3b789a5ffac786e1702d7b..887459e9dea1066cef55c490bdcc338990f0cb14 100644 (file)
@@ -661,7 +661,9 @@ const OptionDefParams STANDARD_V6_OPTION_DEFINITIONS[] = {
     { "s46-cont-lw", D6O_S46_CONT_LW, DHCP6_OPTION_SPACE, OPT_EMPTY_TYPE,
       false, NO_RECORD_DEF, LW_V6_OPTION_SPACE },
     { "v6-dnr", D6O_V6_DNR, DHCP6_OPTION_SPACE, OPT_INTERNAL_TYPE,
-     false, NO_RECORD_DEF, "" }
+      false, NO_RECORD_DEF, "" },
+    { "addr-reg-enable", D6O_ADDR_REG_ENABLE, DHCP6_OPTION_SPACE,
+      OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "" }
 
     // @todo There is still a bunch of options for which we have to provide
     // definitions but we don't do it because they are not really
index 43dbd7c4a8f93e9c93e2cec7fdb905450778b032..c4a9f8f05755e3280f5a26e3e696ce5d7fdfeb49 100644 (file)
@@ -3324,6 +3324,9 @@ TEST_F(LibDhcpTest, stdOptionDefs6) {
     LibDhcpTest::testStdOptionDefs6(D6O_IPV6_ADDRESS_ANDSF, begin, end,
                                     typeid(Option6AddrLst));
 
+    LibDhcpTest::testStdOptionDefs6(D6O_ADDR_REG_ENABLE, begin, end,
+                                    typeid(Option));
+
     // RFC7598 options
     LibDhcpTest::testOptionDefs6(MAPE_V6_OPTION_SPACE, D6O_S46_RULE, begin, end,
                                  typeid(OptionCustom), V4V6_RULE_OPTION_SPACE);