From: Francis Dupont Date: Mon, 14 Sep 2015 13:33:24 +0000 (+0200) Subject: [fd4o6] Added DHCP4o6 server option X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a760042eee1ecc2d2995a28611a81d4fd36b8c6a;p=thirdparty%2Fkea.git [fd4o6] Added DHCP4o6 server option --- diff --git a/src/lib/dhcp/dhcp6.h b/src/lib/dhcp/dhcp6.h index 2cef8a7e7c..2a3375598e 100644 --- a/src/lib/dhcp/dhcp6.h +++ b/src/lib/dhcp/dhcp6.h @@ -68,6 +68,7 @@ #define D6O_ERP_LOCAL_DOMAIN_NAME 65 /* RFC6440 */ #define D6O_RSOO 66 /* RFC6422 */ #define D6O_CLIENT_LINKLAYER_ADDR 79 /* RFC6939 */ +#define D6O_DHCPV4_O_DHCPV6_SERVER 88 /* RFC7341 */ /* * Status Codes, from RFC 3315 section 24.4, and RFC 3633, 5007. @@ -102,6 +103,9 @@ #define DHCPV6_RELAY_REPL 13 #define DHCPV6_LEASEQUERY 14 #define DHCPV6_LEASEQUERY_REPLY 15 +/* RFC 7341 */ +#define DHCPV6_DHCPV4_QUERY 20 +#define DHCPV6_DHCPV4_RESPONSE 21 extern const char *dhcpv6_type_names[]; extern const int dhcpv6_type_name_max; diff --git a/src/lib/dhcp/std_option_defs.h b/src/lib/dhcp/std_option_defs.h index c64528e7ee..67b3f872d0 100644 --- a/src/lib/dhcp/std_option_defs.h +++ b/src/lib/dhcp/std_option_defs.h @@ -330,7 +330,9 @@ const OptionDefParams OPTION_DEF_PARAMS6[] = { NO_RECORD_DEF, "" }, { "rsoo", D6O_RSOO, OPT_EMPTY_TYPE, false, NO_RECORD_DEF, "rsoo-opts" }, { "client-linklayer-addr", D6O_CLIENT_LINKLAYER_ADDR, OPT_BINARY_TYPE, false, - NO_RECORD_DEF, "" } + NO_RECORD_DEF, "" }, + { "dhcp4o6-server-addr", D6O_DHCPV4_O_DHCPV6_SERVER, OPT_IPV6_ADDRESS_TYPE, true, + 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 diff --git a/src/lib/dhcp/tests/libdhcp++_unittest.cc b/src/lib/dhcp/tests/libdhcp++_unittest.cc index fd501acff6..1b2aff98e8 100644 --- a/src/lib/dhcp/tests/libdhcp++_unittest.cc +++ b/src/lib/dhcp/tests/libdhcp++_unittest.cc @@ -1168,6 +1168,9 @@ TEST_F(LibDhcpTest, stdOptionDefs6) { LibDhcpTest::testStdOptionDefs6(D6O_ERP_LOCAL_DOMAIN_NAME, fqdn_buf.begin(), fqdn_buf.end(), typeid(OptionCustom)); + + LibDhcpTest::testStdOptionDefs6(D6O_DHCPV4_O_DHCPV6_SERVER, begin, end, + typeid(Option6AddrLst)); } // This test checks if the DHCPv6 option definition can be searched by