Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Kea
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
445
Issues
445
List
Boards
Labels
Service Desk
Milestones
Merge Requests
71
Merge Requests
71
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ISC Open Source Projects
Kea
Commits
7a36a3b3
Commit
7a36a3b3
authored
Sep 22, 2018
by
Francis Dupont
Browse files
Options
Browse Files
Download
Plain Diff
[65-libyang-option-data] Moved syntax comments - capitalized YANG
parents
feda02a3
3c58cafc
Changes
68
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
68 changed files
with
9752 additions
and
4350 deletions
+9752
-4350
ChangeLog
ChangeLog
+21
-0
configure.ac
configure.ac
+2
-0
doc/guide/classify.xml
doc/guide/classify.xml
+11
-0
doc/guide/hooks-radius.xml
doc/guide/hooks-radius.xml
+1
-1
doc/guide/hooks.xml
doc/guide/hooks.xml
+3
-1
src/bin/admin/tests/mysql_tests.sh.in
src/bin/admin/tests/mysql_tests.sh.in
+117
-2
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_lexer.cc
+919
-952
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_lexer.ll
+0
-18
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.cc
+1462
-1500
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/dhcp4_parser.h
+143
-166
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp4/dhcp4_parser.yy
+0
-17
src/bin/dhcp4/location.hh
src/bin/dhcp4/location.hh
+1
-1
src/bin/dhcp4/position.hh
src/bin/dhcp4/position.hh
+1
-1
src/bin/dhcp4/stack.hh
src/bin/dhcp4/stack.hh
+1
-1
src/bin/netconf/Makefile.am
src/bin/netconf/Makefile.am
+1
-1
src/lib/Makefile.am
src/lib/Makefile.am
+1
-1
src/lib/asiolink/addr_utilities.h
src/lib/asiolink/addr_utilities.h
+1
-5
src/lib/config_backend/Makefile.am
src/lib/config_backend/Makefile.am
+23
-0
src/lib/config_backend/base_config_backend.h
src/lib/config_backend/base_config_backend.h
+67
-0
src/lib/config_backend/base_config_backend_mgr.h
src/lib/config_backend/base_config_backend_mgr.h
+175
-0
src/lib/config_backend/base_config_backend_pool.h
src/lib/config_backend/base_config_backend_pool.h
+504
-0
src/lib/config_backend/tests/.gitignore
src/lib/config_backend/tests/.gitignore
+1
-0
src/lib/config_backend/tests/Makefile.am
src/lib/config_backend/tests/Makefile.am
+39
-0
src/lib/config_backend/tests/config_backend_mgr_unittest.cc
src/lib/config_backend/tests/config_backend_mgr_unittest.cc
+529
-0
src/lib/config_backend/tests/run_unittests.cc
src/lib/config_backend/tests/run_unittests.cc
+19
-0
src/lib/database/Makefile.am
src/lib/database/Makefile.am
+4
-1
src/lib/database/backend_selector.cc
src/lib/database/backend_selector.cc
+152
-0
src/lib/database/backend_selector.h
src/lib/database/backend_selector.h
+208
-0
src/lib/database/db_exceptions.h
src/lib/database/db_exceptions.h
+16
-0
src/lib/database/server_selector.h
src/lib/database/server_selector.h
+126
-0
src/lib/database/tests/Makefile.am
src/lib/database/tests/Makefile.am
+3
-1
src/lib/database/tests/backend_selector_unittest.cc
src/lib/database/tests/backend_selector_unittest.cc
+174
-0
src/lib/database/tests/server_selector_unittest.cc
src/lib/database/tests/server_selector_unittest.cc
+51
-0
src/lib/dhcpsrv/Makefile.am
src/lib/dhcpsrv/Makefile.am
+4
-3
src/lib/dhcpsrv/config_backend_dhcp4.h
src/lib/dhcpsrv/config_backend_dhcp4.h
+323
-0
src/lib/dhcpsrv/config_backend_pool_dhcp4.cc
src/lib/dhcpsrv/config_backend_pool_dhcp4.cc
+346
-0
src/lib/dhcpsrv/config_backend_pool_dhcp4.h
src/lib/dhcpsrv/config_backend_pool_dhcp4.h
+394
-0
src/lib/eval/eval.dox
src/lib/eval/eval.dox
+3
-1
src/lib/eval/eval_messages.mes
src/lib/eval/eval_messages.mes
+9
-0
src/lib/eval/lexer.cc
src/lib/eval/lexer.cc
+170
-162
src/lib/eval/lexer.ll
src/lib/eval/lexer.ll
+2
-1
src/lib/eval/location.hh
src/lib/eval/location.hh
+15
-17
src/lib/eval/parser.cc
src/lib/eval/parser.cc
+459
-409
src/lib/eval/parser.h
src/lib/eval/parser.h
+107
-102
src/lib/eval/parser.yy
src/lib/eval/parser.yy
+6
-0
src/lib/eval/position.hh
src/lib/eval/position.hh
+16
-16
src/lib/eval/stack.hh
src/lib/eval/stack.hh
+21
-21
src/lib/eval/tests/context_unittest.cc
src/lib/eval/tests/context_unittest.cc
+33
-0
src/lib/eval/tests/evaluate_unittest.cc
src/lib/eval/tests/evaluate_unittest.cc
+7
-1
src/lib/eval/tests/token_unittest.cc
src/lib/eval/tests/token_unittest.cc
+30
-1
src/lib/eval/token.cc
src/lib/eval/token.cc
+36
-1
src/lib/eval/token.h
src/lib/eval/token.h
+40
-1
src/lib/yang/Makefile.am
src/lib/yang/Makefile.am
+3
-1
src/lib/yang/adaptor.cc
src/lib/yang/adaptor.cc
+306
-0
src/lib/yang/adaptor.h
src/lib/yang/adaptor.h
+133
-0
src/lib/yang/models/ietf-dhcpv6-client.yang
src/lib/yang/models/ietf-dhcpv6-client.yang
+5
-1
src/lib/yang/models/ietf-dhcpv6-options.yang
src/lib/yang/models/ietf-dhcpv6-options.yang
+300
-292
src/lib/yang/models/ietf-dhcpv6-relay.yang
src/lib/yang/models/ietf-dhcpv6-relay.yang
+6
-0
src/lib/yang/models/ietf-dhcpv6-server.yang
src/lib/yang/models/ietf-dhcpv6-server.yang
+715
-600
src/lib/yang/models/ietf-dhcpv6-types.yang
src/lib/yang/models/ietf-dhcpv6-types.yang
+5
-0
src/lib/yang/tests/Makefile.am
src/lib/yang/tests/Makefile.am
+2
-1
src/lib/yang/tests/adaptor_unittests.cc
src/lib/yang/tests/adaptor_unittests.cc
+394
-0
src/lib/yang/translator.h
src/lib/yang/translator.h
+9
-9
src/lib/yang/translator_option_data.h
src/lib/yang/translator_option_data.h
+40
-32
src/lib/yang/yang.dox
src/lib/yang/yang.dox
+17
-7
src/share/database/scripts/mysql/dhcpdb_create.mysql
src/share/database/scripts/mysql/dhcpdb_create.mysql
+515
-2
src/share/database/scripts/mysql/dhcpdb_drop.mysql
src/share/database/scripts/mysql/dhcpdb_drop.mysql
+26
-0
src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in
src/share/database/scripts/mysql/upgrade_6.0_to_7.0.sh.in
+479
-0
No files found.
ChangeLog
View file @
7a36a3b3
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
...
...
configure.ac
View file @
7a36a3b3
...
...
@@ -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
...
...
doc/guide/classify.xml
View file @
7a36a3b3
...
...
@@ -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>
...
...
doc/guide/hooks-radius.xml
View file @
7a36a3b3
...
...
@@ -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
...
...
doc/guide/hooks.xml
View file @
7a36a3b3
...
...
@@ -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": {
...
...
src/bin/admin/tests/mysql_tests.sh.in
View file @
7a36a3b3
...
...
@@ -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
...
...
src/bin/dhcp4/dhcp4_lexer.cc
View file @
7a36a3b3
This diff is collapsed.
Click to expand it.
src/bin/dhcp4/dhcp4_lexer.ll
View file @
7a36a3b3
...
...
@@ -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:
...
...
src/bin/dhcp4/dhcp4_parser.cc
View file @
7a36a3b3
This diff is collapsed.
Click to expand it.
src/bin/dhcp4/dhcp4_parser.h
View file @
7a36a3b3
...
...
@@ -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_
=
9
65
,
///< Last index in yytable_.
yynnts_
=
36
3
,
///< Number of nonterminal symbols.
yylast_
=
9
56
,
///< Last index in yytable_.
yynnts_
=
36
0
,
///< Number of nonterminal symbols.
yyfinal_
=
28
,
///< Termination state number.
yyterror_
=
1
,
yyerrcode_
=
256
,
yyntokens_
=
16
6
///< Number of tokens.
yyntokens_
=
16
4
///< 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_
=
4
20
;
const
unsigned
user_token_number_max_
=
4
18
;
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
1
81
:
// value
case
18
5
:
// map_value
case
22
3
:
// socket_type
case
22
6
:
// outbound_interface_value
case
24
8
:
// db_type
case
3
32
:
// hr_mode
case
4
80
:
// ncr_protocol_value
case
48
8
:
// replace_client_name_value
case
1
79
:
// value
case
18
3
:
// map_value
case
22
1
:
// socket_type
case
22
4
:
// outbound_interface_value
case
24
6
:
// db_type
case
3
28
:
// hr_mode
case
4
75
:
// ncr_protocol_value
case
48
3
:
// replace_client_name_value
value
.
copy
<
ElementPtr
>
(
other
.
value
);
break
;
case
16
5
:
// "boolean"
case
16
3
:
// "boolean"
value
.
copy
<
bool
>
(
other
.
value
);
break
;
case
16
4
:
// "floating point"
case
16
2
:
// "floating point"
value
.
copy
<
double
>
(
other
.
value
);
break
;
case
16
3
:
// "integer"
case
16
1
:
// "integer"
value
.
copy
<
int64_t
>
(
other
.
value
);
break
;
case
16
2
:
// "constant string"
case
16
0
:
// "constant string"
value
.
copy
<
std
::
string
>
(
other
.
value
);
break
;
...
...
@@ -1627,30 +1616,30 @@ namespace isc { namespace dhcp {
(
void
)
v
;
switch
(
this
->
type_get
())
{
case
1
81
:
// value
case
18
5
:
// map_value
case
22
3
:
// socket_type
case
22
6
:
// outbound_interface_value
case
24
8
:
// db_type
case
3
32
:
// hr_mode
case
4
80
:
// ncr_protocol_value
case
48
8
:
// replace_client_name_value
case
1
79
:
// value
case
18
3
:
// map_value
case
22
1
:
// socket_type
case
22
4
:
// outbound_interface_value
case
24
6
:
// db_type
case
3
28
:
// hr_mode
case
4
75
:
// ncr_protocol_value
case
48
3
:
// replace_client_name_value
value
.
copy
<
ElementPtr
>
(
v
);
break
;
case
16
5
:
// "boolean"
case
16
3
:
// "boolean"
value
.
copy
<
bool
>
(
v
);
break
;
case
16
4
:
// "floating point"
case
16
2
:
// "floating point"
value
.
copy
<
double
>
(
v
);
break
;
case
16
3
:
// "integer"
case
16
1
:
// "integer"
value
.
copy
<
int64_t
>
(
v
);
break
;
case
16
2
:
// "constant string"
case
16
0
:
// "constant string"
value
.
copy
<
std
::
string
>
(
v
);
break
;
...
...
@@ -1728,30 +1717,30 @@ namespace isc { namespace dhcp {
// Type destructor.
switch
(
yytype
)
{
case
1
81
:
// value
case
18
5
:
// map_value
case
22
3
:
// socket_type
case
22
6
:
// outbound_interface_value
case
24
8
:
// db_type
case
3
32
:
// hr_mode
case
4
80
:
// ncr_protocol_value
case
48
8
:
// replace_client_name_value
case
1
79
:
// value
case
18
3
:
// map_value
case
22
1
:
// socket_type
case
22
4
:
// outbound_interface_value
case
24
6
:
// db_type
case
3
28
:
// hr_mode
case
4
75
:
// ncr_protocol_value
case
48
3
:
// replace_client_name_value
value
.
template
destroy
<
ElementPtr
>
();
break
;
case
16
5
:
// "boolean"
case
16
3
:
// "boolean"