Commit 7a36a3b3 authored by Francis Dupont's avatar Francis Dupont

[65-libyang-option-data] Moved syntax comments - capitalized YANG

parents feda02a3 3c58cafc
1455. [func] fdupont
Implemented hexstring(value, separator) operator that can be used
in any expression, such as client classification, flex-id or
RADIUS attribute.
(Gitlab #67,!34, git 004d9a29db09b1c203c52e23585bd275c52095fa)
1454. [func] fdupont
Unused interface-id and rapid-commit parameters removed from
DHCPv4 parser.
(Gitlab #116,!24, git 7e47292f10acb9179241c991d3591e9bfa47c37d)
1453. [func] marcin
Updated MySQL schema to facilitate Kea Configuration Backend
feature.
(Gitlab #89,!22, git e28c0c7b3e7a7729167cdad993f634ed1f0ac53b)
1452. [func] marcin
Implemented libkea-cb library which includes basic class
hierarchy for the Kea Configuration Backend.
(Gitlab #28,!20, git fb5c031ecaf4182e56f62874e9a6bd4c1d755a77)
1451. [build] tmark
Resolved a namespace issue with std::distance() in libdhcp++.cc
when building with Boost 1.68. Thanks to Huy Vu and Khem Raj
......
......@@ -1534,6 +1534,8 @@ AC_CONFIG_FILES([Makefile
src/lib/config/tests/Makefile
src/lib/config/tests/data_def_unittests_config.h
src/lib/config/tests/testdata/Makefile
src/lib/config_backend/Makefile
src/lib/config_backend/tests/Makefile
src/lib/cryptolink/Makefile
src/lib/cryptolink/tests/Makefile
src/lib/database/Makefile
......
......@@ -718,6 +718,7 @@
<row><entry>Concat</entry><entry>concat('foo','bar')</entry><entry>Return the
concatenation of the strings</entry></row>
<row><entry>Ifelse</entry><entry>ifelse('foo' == 'bar','us','them')</entry><entry>Return the branch value according to the condition</entry></row>
<row><entry>Hexstring</entry><entry>hexstring('foo', '-')</entry><entry>Converts the value to a hexadecimal string, e.g. 0a:1b:2c:3e</entry></row>
</tbody>
</tgroup>
</table>
......@@ -772,6 +773,16 @@ concatenation of the strings</entry></row>
ifelse(option[230].exists, option[230].hex, 'none')
</screen>
</section>
<section>
<title>Hexstring</title>
The hexstring function "hexstring(binary, separator)" returns
the binary value as its hexadecimal string representation:
pairs of hexadecimal digits separated by the separator, e.g
':', '-', '' (empty separator).
<screen>
hexstring(pkt4.mac, ':')
</screen>
</section>
</section>
<note>
......
......@@ -569,7 +569,7 @@ Please make sure that your compilation has the following:
// the incoming packet or even its metadata (e.g. the interface
// it was received over from)
"name": "Configuration-Token",
"expr": "pkt.iface"
"expr": "hexstring(pkt4.mac,':')"
}
] // End of attributes
} // End of access
......
......@@ -1215,7 +1215,9 @@ $
can be represented as 626174. Alternatively, it can be expressed
as quoted value (using double and single quotes), e.g. "'bar'".
The former is more convenient for printable characters, while hex
string values are more convenient for non-printable characters.
string values are more convenient for non-printable characters
and does not require the use of the <command>hexstring</command>
operator.
</para>
<screen>
"Dhcp6": {
......
......@@ -245,7 +245,7 @@ mysql_upgrade_schema_to_version() {
mysql_upgrade_test() {
test_start "mysql.host_reservation-upgrade"
test_start "mysql.upgrade"
# Let's wipe the whole database
mysql_wipe
......@@ -469,11 +469,126 @@ EOF
ERRCODE=$?
assert_eq 0 $ERRCODE "logs table is missing or broken. (expected status code %d, returned %d)"
# table: modification (upgrade 6.0 -> 7.0)
qry="select id, modification_type from modification"
run_statement "modification" "$qry"
# table: modification table should have 3 entries (upgrade 6.0 -> 7.0)
qry="select count(*) from modification"
run_statement "modification count" "$qry" 3
# table: dhcp4_server
qry="select id, tag, description, modification_ts from dhcp4_server"
run_statement "dhcp4_server" "$qry"
# table: dhcp4_audit
qry="select id, object_type, object_id, modification_type, modification_ts, log_message from dhcp4_audit"
run_statement "dhcp4_audit" "$qry"
# table: dhcp4_global_parameter
qry="select id, name, value, modification_ts from dhcp4_global_parameter"
run_statement "dhcp4_global_parameter" "$qry"
# table: dhcp4_global_parameter_server
qry="select parameter_id, server_id, modification_ts from dhcp4_global_parameter_server"
run_statement "dhcp4_global_parameter_server" "$qry"
# table: dhcp4_option_def
qry="select id, code, space, modification_ts, array, encapsulate, record_types, user_context from dhcp4_option_def"
run_statement "dhcp4_option_def" "$qry"
# table: dhcp4_option_def_server
qry="select option_def_id, server_id, modification_ts from dhcp4_option_def_server"
run_statement "dhcp4_option_def_server" "$qry"
# table: dhcp4_shared_network
qry="select id, name, client_class, interface, match_client_id, modification_ts, rebind_timer, relay, renew_timer, require_client_classes, reservation_mode, server_hostname, user_context, valid_lifetime from dhcp4_shared_network"
run_statement "dhcp4_shared_network" "$qry"
# table: dhcp4_shared_network_server
qry="select shared_network_id, server_id, modification_ts from dhcp4_shared_network_server"
run_statement "dhcp4_shared_network_server" "$qry"
# table: dhcp4_subnet
qry="select subnet_prefix, 4o6_interface, 4o6_interface_id, 4o6_subnet, boot_file_name, client_class, interface, match_client_id, modification_ts, next_server, rebind_timer, relay, renew_timer, require_client_classes, reservation_mode, server_hostname, shared_network_name, subnet_id, user_context, valid_lifetime from dhcp4_subnet"
run_statement "dhcp4_subnet" "$qry"
# table: dhcp4_pool
qry="select id, start_address, end_address, subnet_id, modification_ts from dhcp4_pool"
run_statement "dhcp4_pool" "$qry"
# table: dhcp4_subnet_server
qry="select subnet_id, server_id, modification_ts from dhcp4_subnet_server"
run_statement "dhcp4_subnet_server" "$qry"
# table: dhcp4_options (should include three new columns)
qry="select shared_network_name, pool_id, modification_ts from dhcp4_options"
run_statement "dhcp4_options" "$qry"
# table: dhcp4_options_server
qry="select option_id, server_id, modification_ts from dhcp4_options_server"
run_statement "dhcp4_options_server" "$qry"
# table: dhcp6_server
qry="select id, tag, description, modification_ts from dhcp6_server"
run_statement "dhcp6_server" "$qry"
# table: dhcp6_audit
qry="select id, object_type, object_id, modification_type, modification_ts, log_message from dhcp6_audit"
run_statement "dhcp6_audit" "$qry"
# table: dhcp6_global_parameter
qry="select id, name, value, modification_ts from dhcp6_global_parameter"
run_statement "dhcp6_global_parameter" "$qry"
# table: dhcp6_global_parameter_server
qry="select parameter_id, server_id, modification_ts from dhcp6_global_parameter_server"
run_statement "dhcp6_global_parameter_server" "$qry"
# table: dhcp6_option_def
qry="select id, code, space, modification_ts, array, encapsulate, record_types, user_context from dhcp6_option_def"
run_statement "dhcp6_option_def" "$qry"
# table: dhcp6_option_def_server
qry="select option_def_id, server_id, modification_ts from dhcp6_option_def_server"
run_statement "dhcp6_option_def_server" "$qry"
# table: dhcp6_shared_network
qry="select id, name, client_class, interface, modification_ts, preferred_lifetime, rapid_commit, rebind_timer, relay, renew_timer, require_client_classes, reservation_mode, server_hostname, user_context, valid_lifetime from dhcp6_shared_network"
run_statement "dhcp6_shared_network" "$qry"
# table: dhcp6_shared_network_server
qry="select shared_network_id, server_id, modification_ts from dhcp6_shared_network_server"
run_statement "dhcp6_shared_network" "$qry"
# table: dhcp6_subnet
qry="select subnet_prefix, client_class, interface, modification_ts, preferred_lifetime, rapid_commit, rebind_timer, relay, renew_timer, require_client_classes, reservation_mode, shared_network_name, subnet_id, user_context, valid_lifetime from dhcp6_subnet"
run_statement "dhcp6_subnet" "$qry"
# table: dhcp6_subnet_server
qry="select subnet_id, server_id, modification_ts from dhcp6_subnet_server"
run_statement "dhcp6_subnet_server" "$qry"
# table: dhcp6_pd_pool
qry="select id, prefix_length, delegated_prefix_length, dhcp6_subnet_id, modification_ts from dhcp6_pd_pool"
run_statement "dhcp6_pd_pool" "$qry"
# table: dhcp6_pool
qry="select id, start_address, end_address, dhcp6_subnet_id, modification_ts from dhcp6_pool"
run_statement "dhcp6_pool" "$qry"
# table: dhcp6_options (should include four new columns)
qry="select shared_network_name, pool_id, pd_pool_id, modification_ts from dhcp6_options"
run_statement "dhcp6_options" "$qry"
# table: dhcp6_options_server
qry="select option_id, server_id, modification_ts from dhcp6_options_server"
run_statement "dhcp6_options_server" "$qry"
# Verify upgraded schema reports version 7.0
version=$(${keaadmin} lease-version mysql -u $db_user -p $db_password -n $db_name -d $db_scripts_dir)
assert_str_eq "7.0" ${version} "Expected kea-admin to return %s, returned value was %s"
# Let's wipe the whole database
mysql_wipe
......
This diff is collapsed.
......@@ -712,15 +712,6 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence}
}
}
\"interface-id\" {
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
return isc::dhcp::Dhcp4Parser::make_INTERFACE_ID(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("interface-id", driver.loc_);
}
}
\"id\" {
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
......@@ -730,15 +721,6 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence}
}
}
\"rapid-commit\" {
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
return isc::dhcp::Dhcp4Parser::make_RAPID_COMMIT(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("rapid-commit", driver.loc_);
}
}
\"reservation-mode\" {
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
......
This diff is collapsed.
......@@ -421,96 +421,94 @@ namespace isc { namespace dhcp {
TOKEN_COMMENT = 328,
TOKEN_SUBNET = 329,
TOKEN_INTERFACE = 330,
TOKEN_INTERFACE_ID = 331,
TOKEN_ID = 332,
TOKEN_RAPID_COMMIT = 333,
TOKEN_RESERVATION_MODE = 334,
TOKEN_DISABLED = 335,
TOKEN_OUT_OF_POOL = 336,
TOKEN_GLOBAL = 337,
TOKEN_ALL = 338,
TOKEN_HOST_RESERVATION_IDENTIFIERS = 339,
TOKEN_CLIENT_CLASSES = 340,
TOKEN_REQUIRE_CLIENT_CLASSES = 341,
TOKEN_TEST = 342,
TOKEN_ONLY_IF_REQUIRED = 343,
TOKEN_CLIENT_CLASS = 344,
TOKEN_RESERVATIONS = 345,
TOKEN_DUID = 346,
TOKEN_HW_ADDRESS = 347,
TOKEN_CIRCUIT_ID = 348,
TOKEN_CLIENT_ID = 349,
TOKEN_HOSTNAME = 350,
TOKEN_FLEX_ID = 351,
TOKEN_RELAY = 352,
TOKEN_IP_ADDRESS = 353,
TOKEN_IP_ADDRESSES = 354,
TOKEN_HOOKS_LIBRARIES = 355,
TOKEN_LIBRARY = 356,
TOKEN_PARAMETERS = 357,
TOKEN_EXPIRED_LEASES_PROCESSING = 358,
TOKEN_RECLAIM_TIMER_WAIT_TIME = 359,
TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 360,
TOKEN_HOLD_RECLAIMED_TIME = 361,
TOKEN_MAX_RECLAIM_LEASES = 362,
TOKEN_MAX_RECLAIM_TIME = 363,
TOKEN_UNWARNED_RECLAIM_CYCLES = 364,
TOKEN_DHCP4O6_PORT = 365,
TOKEN_CONTROL_SOCKET = 366,
TOKEN_SOCKET_TYPE = 367,
TOKEN_SOCKET_NAME = 368,
TOKEN_DHCP_DDNS = 369,
TOKEN_ENABLE_UPDATES = 370,
TOKEN_QUALIFYING_SUFFIX = 371,
TOKEN_SERVER_IP = 372,
TOKEN_SERVER_PORT = 373,
TOKEN_SENDER_IP = 374,
TOKEN_SENDER_PORT = 375,
TOKEN_MAX_QUEUE_SIZE = 376,
TOKEN_NCR_PROTOCOL = 377,
TOKEN_NCR_FORMAT = 378,
TOKEN_ALWAYS_INCLUDE_FQDN = 379,
TOKEN_OVERRIDE_NO_UPDATE = 380,
TOKEN_OVERRIDE_CLIENT_UPDATE = 381,
TOKEN_REPLACE_CLIENT_NAME = 382,
TOKEN_GENERATED_PREFIX = 383,
TOKEN_TCP = 384,
TOKEN_JSON = 385,
TOKEN_WHEN_PRESENT = 386,
TOKEN_NEVER = 387,
TOKEN_ALWAYS = 388,
TOKEN_WHEN_NOT_PRESENT = 389,
TOKEN_HOSTNAME_CHAR_SET = 390,
TOKEN_HOSTNAME_CHAR_REPLACEMENT = 391,
TOKEN_LOGGING = 392,
TOKEN_LOGGERS = 393,
TOKEN_OUTPUT_OPTIONS = 394,
TOKEN_OUTPUT = 395,
TOKEN_DEBUGLEVEL = 396,
TOKEN_SEVERITY = 397,
TOKEN_FLUSH = 398,
TOKEN_MAXSIZE = 399,
TOKEN_MAXVER = 400,
TOKEN_DHCP6 = 401,
TOKEN_DHCPDDNS = 402,
TOKEN_CONTROL_AGENT = 403,
TOKEN_TOPLEVEL_JSON = 404,
TOKEN_TOPLEVEL_DHCP4 = 405,
TOKEN_SUB_DHCP4 = 406,
TOKEN_SUB_INTERFACES4 = 407,
TOKEN_SUB_SUBNET4 = 408,
TOKEN_SUB_POOL4 = 409,
TOKEN_SUB_RESERVATION = 410,
TOKEN_SUB_OPTION_DEFS = 411,
TOKEN_SUB_OPTION_DEF = 412,
TOKEN_SUB_OPTION_DATA = 413,
TOKEN_SUB_HOOKS_LIBRARY = 414,
TOKEN_SUB_DHCP_DDNS = 415,
TOKEN_SUB_LOGGING = 416,
TOKEN_STRING = 417,
TOKEN_INTEGER = 418,
TOKEN_FLOAT = 419,
TOKEN_BOOLEAN = 420
TOKEN_ID = 331,
TOKEN_RESERVATION_MODE = 332,
TOKEN_DISABLED = 333,
TOKEN_OUT_OF_POOL = 334,
TOKEN_GLOBAL = 335,
TOKEN_ALL = 336,
TOKEN_HOST_RESERVATION_IDENTIFIERS = 337,
TOKEN_CLIENT_CLASSES = 338,
TOKEN_REQUIRE_CLIENT_CLASSES = 339,
TOKEN_TEST = 340,
TOKEN_ONLY_IF_REQUIRED = 341,
TOKEN_CLIENT_CLASS = 342,
TOKEN_RESERVATIONS = 343,
TOKEN_DUID = 344,
TOKEN_HW_ADDRESS = 345,
TOKEN_CIRCUIT_ID = 346,
TOKEN_CLIENT_ID = 347,
TOKEN_HOSTNAME = 348,
TOKEN_FLEX_ID = 349,
TOKEN_RELAY = 350,
TOKEN_IP_ADDRESS = 351,
TOKEN_IP_ADDRESSES = 352,
TOKEN_HOOKS_LIBRARIES = 353,
TOKEN_LIBRARY = 354,
TOKEN_PARAMETERS = 355,
TOKEN_EXPIRED_LEASES_PROCESSING = 356,
TOKEN_RECLAIM_TIMER_WAIT_TIME = 357,
TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 358,
TOKEN_HOLD_RECLAIMED_TIME = 359,
TOKEN_MAX_RECLAIM_LEASES = 360,
TOKEN_MAX_RECLAIM_TIME = 361,
TOKEN_UNWARNED_RECLAIM_CYCLES = 362,
TOKEN_DHCP4O6_PORT = 363,
TOKEN_CONTROL_SOCKET = 364,
TOKEN_SOCKET_TYPE = 365,
TOKEN_SOCKET_NAME = 366,
TOKEN_DHCP_DDNS = 367,
TOKEN_ENABLE_UPDATES = 368,
TOKEN_QUALIFYING_SUFFIX = 369,
TOKEN_SERVER_IP = 370,
TOKEN_SERVER_PORT = 371,
TOKEN_SENDER_IP = 372,
TOKEN_SENDER_PORT = 373,
TOKEN_MAX_QUEUE_SIZE = 374,
TOKEN_NCR_PROTOCOL = 375,
TOKEN_NCR_FORMAT = 376,
TOKEN_ALWAYS_INCLUDE_FQDN = 377,
TOKEN_OVERRIDE_NO_UPDATE = 378,
TOKEN_OVERRIDE_CLIENT_UPDATE = 379,
TOKEN_REPLACE_CLIENT_NAME = 380,
TOKEN_GENERATED_PREFIX = 381,
TOKEN_TCP = 382,
TOKEN_JSON = 383,
TOKEN_WHEN_PRESENT = 384,
TOKEN_NEVER = 385,
TOKEN_ALWAYS = 386,
TOKEN_WHEN_NOT_PRESENT = 387,
TOKEN_HOSTNAME_CHAR_SET = 388,
TOKEN_HOSTNAME_CHAR_REPLACEMENT = 389,
TOKEN_LOGGING = 390,
TOKEN_LOGGERS = 391,
TOKEN_OUTPUT_OPTIONS = 392,
TOKEN_OUTPUT = 393,
TOKEN_DEBUGLEVEL = 394,
TOKEN_SEVERITY = 395,
TOKEN_FLUSH = 396,
TOKEN_MAXSIZE = 397,
TOKEN_MAXVER = 398,
TOKEN_DHCP6 = 399,
TOKEN_DHCPDDNS = 400,
TOKEN_CONTROL_AGENT = 401,
TOKEN_TOPLEVEL_JSON = 402,
TOKEN_TOPLEVEL_DHCP4 = 403,
TOKEN_SUB_DHCP4 = 404,
TOKEN_SUB_INTERFACES4 = 405,
TOKEN_SUB_SUBNET4 = 406,
TOKEN_SUB_POOL4 = 407,
TOKEN_SUB_RESERVATION = 408,
TOKEN_SUB_OPTION_DEFS = 409,
TOKEN_SUB_OPTION_DEF = 410,
TOKEN_SUB_OPTION_DATA = 411,
TOKEN_SUB_HOOKS_LIBRARY = 412,
TOKEN_SUB_DHCP_DDNS = 413,
TOKEN_SUB_LOGGING = 414,
TOKEN_STRING = 415,
TOKEN_INTEGER = 416,
TOKEN_FLOAT = 417,
TOKEN_BOOLEAN = 418
};
};
......@@ -921,18 +919,10 @@ namespace isc { namespace dhcp {
symbol_type
make_INTERFACE (const location_type& l);
static inline
symbol_type
make_INTERFACE_ID (const location_type& l);
static inline
symbol_type
make_ID (const location_type& l);
static inline
symbol_type
make_RAPID_COMMIT (const location_type& l);
static inline
symbol_type
make_RESERVATION_MODE (const location_type& l);
......@@ -1488,12 +1478,12 @@ namespace isc { namespace dhcp {
enum
{
yyeof_ = 0,
yylast_ = 965, ///< Last index in yytable_.
yynnts_ = 363, ///< Number of nonterminal symbols.
yylast_ = 956, ///< Last index in yytable_.
yynnts_ = 360, ///< Number of nonterminal symbols.
yyfinal_ = 28, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
yyntokens_ = 166 ///< Number of tokens.
yyntokens_ = 164 ///< Number of tokens.
};
......@@ -1551,10 +1541,9 @@ namespace isc { namespace dhcp {
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
155, 156, 157, 158, 159, 160, 161, 162, 163
};
const unsigned user_token_number_max_ = 420;
const unsigned user_token_number_max_ = 418;
const token_number_type undef_token_ = 2;
if (static_cast<int> (t) <= yyeof_)
......@@ -1585,30 +1574,30 @@ namespace isc { namespace dhcp {
{
switch (other.type_get ())
{
case 181: // value
case 185: // map_value
case 223: // socket_type
case 226: // outbound_interface_value
case 248: // db_type
case 332: // hr_mode
case 480: // ncr_protocol_value
case 488: // replace_client_name_value
case 179: // value
case 183: // map_value
case 221: // socket_type
case 224: // outbound_interface_value
case 246: // db_type
case 328: // hr_mode
case 475: // ncr_protocol_value
case 483: // replace_client_name_value
value.copy< ElementPtr > (other.value);
break;
case 165: // "boolean"
case 163: // "boolean"
value.copy< bool > (other.value);
break;
case 164: // "floating point"
case 162: // "floating point"
value.copy< double > (other.value);
break;
case 163: // "integer"
case 161: // "integer"
value.copy< int64_t > (other.value);
break;
case 162: // "constant string"
case 160: // "constant string"
value.copy< std::string > (other.value);
break;
......@@ -1627,30 +1616,30 @@ namespace isc { namespace dhcp {
(void) v;
switch (this->type_get ())
{
case 181: // value
case 185: // map_value
case 223: // socket_type
case 226: // outbound_interface_value
case 248: // db_type
case 332: // hr_mode
case 480: // ncr_protocol_value
case 488: // replace_client_name_value
case 179: // value
case 183: // map_value
case 221: // socket_type
case 224: // outbound_interface_value
case 246: // db_type
case 328: // hr_mode
case 475: // ncr_protocol_value
case 483: // replace_client_name_value
value.copy< ElementPtr > (v);
break;
case 165: // "boolean"
case 163: // "boolean"
value.copy< bool > (v);
break;
case 164: // "floating point"
case 162: // "floating point"
value.copy< double > (v);
break;
case 163: // "integer"
case 161: // "integer"
value.copy< int64_t > (v);
break;
case 162: // "constant string"
case 160: // "constant string"
value.copy< std::string > (v);
break;
......@@ -1728,30 +1717,30 @@ namespace isc { namespace dhcp {
// Type destructor.
switch (yytype)
{
case 181: // value
case 185: // map_value
case 223: // socket_type
case 226: // outbound_interface_value
case 248: // db_type
case 332: // hr_mode
case 480: // ncr_protocol_value
case 488: // replace_client_name_value
case 179: // value
case 183: // map_value
case 221: // socket_type
case 224: // outbound_interface_value
case 246: // db_type
case 328: // hr_mode
case 475: // ncr_protocol_value
case 483: // replace_client_name_value
value.template destroy< ElementPtr > ();
break;
case 165: // "boolean"
case 163: // "boolean"
value.template destroy< bool > ();
break;
case 164: // "floating point"
case 162: // "floating point"
value.template destroy< double > ();
break;
case 163: // "integer"
case 161: // "integer"
value.template destroy< int64_t > ();
break;
case 162: // "constant string"
case 160: // "constant string"
value.template destroy< std::string > ();
break;
......@@ -1776,30 +1765,30 @@ namespace isc { namespace dhcp {
super_type::move (s);
switch (this->type_get ())
{
case 181: // value
case 185: // map_value
case 223: // socket_type
case 226: // outbound_interface_value
case 248: // db_type
case 332: // hr_mode