2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-28 20:47:48 +00:00
kea/doc/sphinx/grammar/grammar-dhcp6-parser.rst

1214 lines
39 KiB
ReStructuredText
Raw Normal View History

2021-12-13 23:30:53 +00:00
This grammar is generated from ``dhcp6_parser.yy``. See :ref:`dhcp6` for more details.
2021-06-22 19:46:09 +02:00
.. code-block:: BNF
:linenos:
Grammar
$accept ::= start EOF
start ::= TOPLEVEL_JSON sub_json
start ::= TOPLEVEL_DHCP6 syntax_map
start ::= SUB_DHCP6 sub_dhcp6
start ::= SUB_INTERFACES6 sub_interfaces6
start ::= SUB_SUBNET6 sub_subnet6
start ::= SUB_POOL6 sub_pool6
start ::= SUB_PD_POOL sub_pd_pool
start ::= SUB_RESERVATION sub_reservation
start ::= SUB_OPTION_DEFS sub_option_def_list
start ::= SUB_OPTION_DEF sub_option_def
start ::= SUB_OPTION_DATA sub_option_data
start ::= SUB_HOOKS_LIBRARY sub_hooks_library
start ::= SUB_DHCP_DDNS sub_dhcp_ddns
start ::= SUB_CONFIG_CONTROL sub_config_control
value ::= INTEGER
| FLOAT
| BOOLEAN
| STRING
| NULL
| map2
| list_generic
sub_json ::= value
map2 ::= "{" map_content "}"
map_value ::= map2
map_content ::=
| not_empty_map
not_empty_map ::= STRING ":" value
| not_empty_map "," STRING ":" value
2022-01-25 18:17:54 +02:00
| not_empty_map ","
2021-06-22 19:46:09 +02:00
list_generic ::= "[" list_content "]"
list_content ::=
| not_empty_list
not_empty_list ::= value
| not_empty_list "," value
2022-01-25 18:17:54 +02:00
| not_empty_list ","
2021-06-22 19:46:09 +02:00
list_strings ::= "[" list_strings_content "]"
list_strings_content ::=
| not_empty_list_strings
not_empty_list_strings ::= STRING
| not_empty_list_strings "," STRING
2022-01-25 18:17:54 +02:00
| not_empty_list_strings ","
2021-06-22 19:46:09 +02:00
unknown_map_entry ::= STRING ":"
syntax_map ::= "{" global_object "}"
global_object ::= "Dhcp6" ":" "{" global_params "}"
2022-01-25 18:17:54 +02:00
| global_object_comma
global_object_comma ::= global_object ","
2021-06-22 19:46:09 +02:00
sub_dhcp6 ::= "{" global_params "}"
global_params ::= global_param
| global_params "," global_param
2022-01-25 18:17:54 +02:00
| global_params ","
2021-06-22 19:46:09 +02:00
global_param ::= data_directory
| preferred_lifetime
| min_preferred_lifetime
| max_preferred_lifetime
| valid_lifetime
| min_valid_lifetime
| max_valid_lifetime
| renew_timer
| rebind_timer
| decline_probation_period
| subnet6_list
| shared_networks
| interfaces_config
| lease_database
| hosts_database
| hosts_databases
| mac_sources
| relay_supplied_options
| host_reservation_identifiers
| client_classes
| option_def_list
| option_data_list
| hooks_libraries
| expired_leases_processing
| server_id
| dhcp4o6_port
| control_socket
2024-08-26 17:00:03 +03:00
| control_sockets
2021-06-22 19:46:09 +02:00
| dhcp_queue_control
| dhcp_ddns
| user_context
| comment
| sanity_checks
| reservations
| config_control
| server_tag
| reservations_global
| reservations_in_subnet
| reservations_out_of_pool
| calculate_tee_times
| t1_percent
| t2_percent
| cache_threshold
| cache_max_age
| loggers
| hostname_char_set
| hostname_char_replacement
| ddns_send_updates
| ddns_override_no_update
| ddns_override_client_update
| ddns_replace_client_name
| ddns_generated_prefix
| ddns_qualifying_suffix
| ddns_update_on_renew
| ddns_use_conflict_resolution
2023-07-20 16:13:13 +03:00
| ddns_conflict_resolution_mode
2023-03-24 23:51:18 +01:00
| ddns_ttl_percent
2025-01-28 10:06:26 +01:00
| ddns_ttl
| ddns_ttl_min
| ddns_ttl_max
2021-06-22 19:46:09 +02:00
| store_extended_info
| statistic_default_sample_count
| statistic_default_sample_age
| dhcp_multi_threading
2022-03-28 01:56:00 -07:00
| early_global_reservations_lookup
2021-06-22 19:46:09 +02:00
| ip_reservations_unique
2022-02-21 10:36:48 +02:00
| reservations_lookup_first
2021-06-22 19:46:09 +02:00
| compatibility
2021-11-22 12:59:15 +02:00
| parked_packet_limit
2023-01-23 09:49:20 -08:00
| allocator
| pd_allocator
2021-06-22 19:46:09 +02:00
| unknown_map_entry
data_directory ::= "data-directory" ":" STRING
preferred_lifetime ::= "preferred-lifetime" ":" INTEGER
min_preferred_lifetime ::= "min-preferred-lifetime" ":" INTEGER
max_preferred_lifetime ::= "max-preferred-lifetime" ":" INTEGER
valid_lifetime ::= "valid-lifetime" ":" INTEGER
min_valid_lifetime ::= "min-valid-lifetime" ":" INTEGER
max_valid_lifetime ::= "max-valid-lifetime" ":" INTEGER
renew_timer ::= "renew-timer" ":" INTEGER
rebind_timer ::= "rebind-timer" ":" INTEGER
calculate_tee_times ::= "calculate-tee-times" ":" BOOLEAN
t1_percent ::= "t1-percent" ":" FLOAT
t2_percent ::= "t2-percent" ":" FLOAT
cache_threshold ::= "cache-threshold" ":" FLOAT
cache_max_age ::= "cache-max-age" ":" INTEGER
decline_probation_period ::= "decline-probation-period" ":" INTEGER
ddns_send_updates ::= "ddns-send-updates" ":" BOOLEAN
ddns_override_no_update ::= "ddns-override-no-update" ":" BOOLEAN
ddns_override_client_update ::= "ddns-override-client-update" ":" BOOLEAN
ddns_replace_client_name ::= "ddns-replace-client-name" ":" ddns_replace_client_name_value
ddns_replace_client_name_value ::= "when-present"
| "never"
| "always"
| "when-not-present"
| BOOLEAN
ddns_generated_prefix ::= "ddns-generated-prefix" ":" STRING
ddns_qualifying_suffix ::= "ddns-qualifying-suffix" ":" STRING
ddns_update_on_renew ::= "ddns-update-on-renew" ":" BOOLEAN
ddns_use_conflict_resolution ::= "ddns-use-conflict-resolution" ":" BOOLEAN
2023-07-20 16:13:13 +03:00
ddns_conflict_resolution_mode ::= "ddns-conflict-resolution-mode" ":" ddns_conflict_resolution_mode_value
ddns_conflict_resolution_mode_value ::= "check-with-dhcid"
| "no-check-with-dhcid"
| "check-exists-with-dhcid"
| "no-check-without-dhcid"
2023-03-24 23:51:18 +01:00
ddns_ttl_percent ::= "ddns-ttl-percent" ":" FLOAT
2025-01-28 10:06:26 +01:00
ddns_ttl ::= "ddns-ttl" ":" INTEGER
ddns_ttl_min ::= "ddns-ttl-min" ":" INTEGER
ddns_ttl_max ::= "ddns-ttl-mix" ":" INTEGER
2021-06-22 19:46:09 +02:00
hostname_char_set ::= "hostname-char-set" ":" STRING
hostname_char_replacement ::= "hostname-char-replacement" ":" STRING
store_extended_info ::= "store-extended-info" ":" BOOLEAN
statistic_default_sample_count ::= "statistic-default-sample-count" ":" INTEGER
statistic_default_sample_age ::= "statistic-default-sample-age" ":" INTEGER
server_tag ::= "server-tag" ":" STRING
2021-11-22 12:59:15 +02:00
parked_packet_limit ::= "parked-packet-limit" ":" INTEGER
2023-01-23 09:49:20 -08:00
allocator ::= "allocator" ":" STRING
pd_allocator ::= "pd-allocator" ":" STRING
2022-03-28 01:56:00 -07:00
early_global_reservations_lookup ::= "early-global-reservations-lookup" ":" BOOLEAN
2021-06-22 19:46:09 +02:00
ip_reservations_unique ::= "ip-reservations-unique" ":" BOOLEAN
2022-02-21 10:36:48 +02:00
reservations_lookup_first ::= "reservations-lookup-first" ":" BOOLEAN
2021-06-22 19:46:09 +02:00
interfaces_config ::= "interfaces-config" ":" "{" interfaces_config_params "}"
sub_interfaces6 ::= "{" interfaces_config_params "}"
interfaces_config_params ::= interfaces_config_param
| interfaces_config_params "," interfaces_config_param
2022-01-25 18:17:54 +02:00
| interfaces_config_params ","
2021-06-22 19:46:09 +02:00
interfaces_config_param ::= interfaces_list
| re_detect
2022-03-28 12:02:50 +02:00
| service_sockets_require_all
| service_sockets_retry_wait_time
| service_sockets_max_retries
2021-06-22 19:46:09 +02:00
| user_context
| comment
| unknown_map_entry
interfaces_list ::= "interfaces" ":" list_strings
re_detect ::= "re-detect" ":" BOOLEAN
2022-03-28 12:02:50 +02:00
service_sockets_require_all ::= "service-sockets-require-all" ":" BOOLEAN
service_sockets_retry_wait_time ::= "service-sockets-retry-wait-time" ":" INTEGER
service_sockets_max_retries ::= "service-sockets-max-retries" ":" INTEGER
2021-06-22 19:46:09 +02:00
lease_database ::= "lease-database" ":" "{" database_map_params "}"
hosts_database ::= "hosts-database" ":" "{" database_map_params "}"
hosts_databases ::= "hosts-databases" ":" "[" database_list "]"
database_list ::=
| not_empty_database_list
not_empty_database_list ::= database
| not_empty_database_list "," database
2022-01-25 18:17:54 +02:00
| not_empty_database_list ","
2021-06-22 19:46:09 +02:00
database ::= "{" database_map_params "}"
database_map_params ::= database_map_param
| database_map_params "," database_map_param
2022-01-25 18:17:54 +02:00
| database_map_params ","
2021-06-22 19:46:09 +02:00
database_map_param ::= database_type
| user
| password
| host
| port
| name
| persist
| lfc_interval
| readonly
| connect_timeout
2023-01-23 09:49:20 -08:00
| read_timeout
| write_timeout
| tcp_user_timeout
2021-06-22 19:46:09 +02:00
| max_reconnect_tries
| reconnect_wait_time
| on_fail
2024-01-29 10:17:26 +01:00
| retry_on_startup
2021-06-22 19:46:09 +02:00
| max_row_errors
2022-01-25 18:17:54 +02:00
| trust_anchor
| cert_file
| key_file
| cipher_list
2021-06-22 19:46:09 +02:00
| unknown_map_entry
2024-10-29 12:53:12 +01:00
database_type ::= "type" ":" STRING
2021-06-22 19:46:09 +02:00
user ::= "user" ":" STRING
password ::= "password" ":" STRING
host ::= "host" ":" STRING
port ::= "port" ":" INTEGER
name ::= "name" ":" STRING
persist ::= "persist" ":" BOOLEAN
lfc_interval ::= "lfc-interval" ":" INTEGER
readonly ::= "readonly" ":" BOOLEAN
connect_timeout ::= "connect-timeout" ":" INTEGER
2023-01-23 09:49:20 -08:00
read_timeout ::= "read-timeout" ":" INTEGER
write_timeout ::= "write-timeout" ":" INTEGER
tcp_user_timeout ::= "tcp-user-timeout" ":" INTEGER
2021-06-22 19:46:09 +02:00
reconnect_wait_time ::= "reconnect-wait-time" ":" INTEGER
on_fail ::= "on-fail" ":" on_fail_mode
on_fail_mode ::= "stop-retry-exit"
| "serve-retry-exit"
| "serve-retry-continue"
2024-01-29 10:17:26 +01:00
retry_on_startup ::= "retry-on-startup" ":" BOOLEAN
2021-06-22 19:46:09 +02:00
max_row_errors ::= "max-row-errors" ":" INTEGER
max_reconnect_tries ::= "max-reconnect-tries" ":" INTEGER
2022-01-25 18:17:54 +02:00
trust_anchor ::= "trust-anchor" ":" STRING
cert_file ::= "cert-file" ":" STRING
key_file ::= "key-file" ":" STRING
cipher_list ::= "cipher-list" ":" STRING
2021-06-22 19:46:09 +02:00
sanity_checks ::= "sanity-checks" ":" "{" sanity_checks_params "}"
sanity_checks_params ::= sanity_checks_param
| sanity_checks_params "," sanity_checks_param
2022-01-25 18:17:54 +02:00
| sanity_checks_params ","
2021-06-22 19:46:09 +02:00
sanity_checks_param ::= lease_checks
2022-10-25 02:27:05 -07:00
| extended_info_checks
2021-06-22 19:46:09 +02:00
lease_checks ::= "lease-checks" ":" STRING
2022-10-25 02:27:05 -07:00
extended_info_checks ::= "extended-info-checks" ":" STRING
2021-06-22 19:46:09 +02:00
mac_sources ::= "mac-sources" ":" "[" mac_sources_list "]"
mac_sources_list ::= mac_sources_value
| mac_sources_list "," mac_sources_value
2022-01-25 18:17:54 +02:00
| mac_sources_list ","
2021-06-22 19:46:09 +02:00
mac_sources_value ::= duid_id
| string_id
duid_id ::= "duid"
string_id ::= STRING
host_reservation_identifiers ::= "host-reservation-identifiers" ":" "[" host_reservation_identifiers_list "]"
host_reservation_identifiers_list ::= host_reservation_identifier
| host_reservation_identifiers_list "," host_reservation_identifier
2022-01-25 18:17:54 +02:00
| host_reservation_identifiers_list ","
2021-06-22 19:46:09 +02:00
host_reservation_identifier ::= duid_id
| hw_address_id
| flex_id
hw_address_id ::= "hw-address"
flex_id ::= "flex-id"
relay_supplied_options ::= "relay-supplied-options" ":" "[" list_content "]"
dhcp_multi_threading ::= "multi-threading" ":" "{" multi_threading_params "}"
multi_threading_params ::= multi_threading_param
| multi_threading_params "," multi_threading_param
2022-01-25 18:17:54 +02:00
| multi_threading_params ","
2021-06-22 19:46:09 +02:00
multi_threading_param ::= enable_multi_threading
| thread_pool_size
| packet_queue_size
| user_context
| comment
| unknown_map_entry
enable_multi_threading ::= "enable-multi-threading" ":" BOOLEAN
thread_pool_size ::= "thread-pool-size" ":" INTEGER
packet_queue_size ::= "packet-queue-size" ":" INTEGER
hooks_libraries ::= "hooks-libraries" ":" "[" hooks_libraries_list "]"
hooks_libraries_list ::=
| not_empty_hooks_libraries_list
not_empty_hooks_libraries_list ::= hooks_library
| not_empty_hooks_libraries_list "," hooks_library
2022-01-25 18:17:54 +02:00
| not_empty_hooks_libraries_list ","
2021-06-22 19:46:09 +02:00
hooks_library ::= "{" hooks_params "}"
sub_hooks_library ::= "{" hooks_params "}"
hooks_params ::= hooks_param
| hooks_params "," hooks_param
2022-01-25 18:17:54 +02:00
| hooks_params ","
2021-06-22 19:46:09 +02:00
| unknown_map_entry
hooks_param ::= library
| parameters
library ::= "library" ":" STRING
parameters ::= "parameters" ":" map_value
expired_leases_processing ::= "expired-leases-processing" ":" "{" expired_leases_params "}"
expired_leases_params ::= expired_leases_param
| expired_leases_params "," expired_leases_param
2022-01-25 18:17:54 +02:00
| expired_leases_params ","
2021-06-22 19:46:09 +02:00
expired_leases_param ::= reclaim_timer_wait_time
| flush_reclaimed_timer_wait_time
| hold_reclaimed_time
| max_reclaim_leases
| max_reclaim_time
| unwarned_reclaim_cycles
reclaim_timer_wait_time ::= "reclaim-timer-wait-time" ":" INTEGER
flush_reclaimed_timer_wait_time ::= "flush-reclaimed-timer-wait-time" ":" INTEGER
hold_reclaimed_time ::= "hold-reclaimed-time" ":" INTEGER
max_reclaim_leases ::= "max-reclaim-leases" ":" INTEGER
max_reclaim_time ::= "max-reclaim-time" ":" INTEGER
unwarned_reclaim_cycles ::= "unwarned-reclaim-cycles" ":" INTEGER
subnet6_list ::= "subnet6" ":" "[" subnet6_list_content "]"
subnet6_list_content ::=
| not_empty_subnet6_list
not_empty_subnet6_list ::= subnet6
| not_empty_subnet6_list "," subnet6
2022-01-25 18:17:54 +02:00
| not_empty_subnet6_list ","
2021-06-22 19:46:09 +02:00
subnet6 ::= "{" subnet6_params "}"
sub_subnet6 ::= "{" subnet6_params "}"
subnet6_params ::= subnet6_param
| subnet6_params "," subnet6_param
2022-01-25 18:17:54 +02:00
| subnet6_params ","
2021-06-22 19:46:09 +02:00
subnet6_param ::= preferred_lifetime
| min_preferred_lifetime
| max_preferred_lifetime
| valid_lifetime
| min_valid_lifetime
| max_valid_lifetime
| renew_timer
| rebind_timer
| option_data_list
| pools_list
| pd_pools_list
| subnet
| interface
| interface_id
| id
| rapid_commit
| client_class
2024-12-06 19:57:06 +01:00
| network_client_classes
2021-06-22 19:46:09 +02:00
| require_client_classes
2024-10-29 12:53:12 +01:00
| evaluate_additional_classes
2021-06-22 19:46:09 +02:00
| reservations
| reservations_global
| reservations_in_subnet
| reservations_out_of_pool
| relay
| user_context
| comment
| calculate_tee_times
| t1_percent
| t2_percent
| cache_threshold
| cache_max_age
| hostname_char_set
| hostname_char_replacement
| ddns_send_updates
| ddns_override_no_update
| ddns_override_client_update
| ddns_replace_client_name
| ddns_generated_prefix
| ddns_qualifying_suffix
| ddns_update_on_renew
| ddns_use_conflict_resolution
2023-07-20 16:13:13 +03:00
| ddns_conflict_resolution_mode
2023-03-24 23:51:18 +01:00
| ddns_ttl_percent
2025-01-28 10:06:26 +01:00
| ddns_ttl
| ddns_ttl_min
| ddns_ttl_max
2021-06-22 19:46:09 +02:00
| store_extended_info
2023-01-23 09:49:20 -08:00
| allocator
| pd_allocator
2021-06-22 19:46:09 +02:00
| unknown_map_entry
subnet ::= "subnet" ":" STRING
interface ::= "interface" ":" STRING
interface_id ::= "interface-id" ":" STRING
client_class ::= "client-class" ":" STRING
2024-12-06 19:57:06 +01:00
network_client_classes ::= "client-classes" ":" list_strings
2021-06-22 19:46:09 +02:00
require_client_classes ::= "require-client-classes" ":" list_strings
2024-10-29 12:53:12 +01:00
evaluate_additional_classes ::= "evaluate-additional-classes" ":" list_strings
2021-06-22 19:46:09 +02:00
reservations_global ::= "reservations-global" ":" BOOLEAN
reservations_in_subnet ::= "reservations-in-subnet" ":" BOOLEAN
reservations_out_of_pool ::= "reservations-out-of-pool" ":" BOOLEAN
id ::= "id" ":" INTEGER
rapid_commit ::= "rapid-commit" ":" BOOLEAN
shared_networks ::= "shared-networks" ":" "[" shared_networks_content "]"
shared_networks_content ::=
| shared_networks_list
shared_networks_list ::= shared_network
| shared_networks_list "," shared_network
2022-01-25 18:17:54 +02:00
| shared_networks_list ","
2021-06-22 19:46:09 +02:00
shared_network ::= "{" shared_network_params "}"
shared_network_params ::= shared_network_param
| shared_network_params "," shared_network_param
2022-01-25 18:17:54 +02:00
| shared_network_params ","
2021-06-22 19:46:09 +02:00
shared_network_param ::= name
| subnet6_list
| interface
| interface_id
| renew_timer
| rebind_timer
| option_data_list
| relay
| reservations_global
| reservations_in_subnet
| reservations_out_of_pool
| client_class
2024-12-06 19:57:06 +01:00
| network_client_classes
2021-06-22 19:46:09 +02:00
| require_client_classes
2024-10-29 12:53:12 +01:00
| evaluate_additional_classes
2021-06-22 19:46:09 +02:00
| preferred_lifetime
| min_preferred_lifetime
| max_preferred_lifetime
| rapid_commit
| valid_lifetime
| min_valid_lifetime
| max_valid_lifetime
| user_context
| comment
| calculate_tee_times
| t1_percent
| t2_percent
| cache_threshold
| cache_max_age
| hostname_char_set
| hostname_char_replacement
| ddns_send_updates
| ddns_override_no_update
| ddns_override_client_update
| ddns_replace_client_name
| ddns_generated_prefix
| ddns_qualifying_suffix
| ddns_update_on_renew
| ddns_use_conflict_resolution
2023-07-20 16:13:13 +03:00
| ddns_conflict_resolution_mode
2023-03-24 23:51:18 +01:00
| ddns_ttl_percent
2025-01-28 10:06:26 +01:00
| ddns_ttl
| ddns_ttl_min
| ddns_ttl_max
2021-06-22 19:46:09 +02:00
| store_extended_info
2023-01-23 09:49:20 -08:00
| allocator
| pd_allocator
2021-06-22 19:46:09 +02:00
| unknown_map_entry
option_def_list ::= "option-def" ":" "[" option_def_list_content "]"
sub_option_def_list ::= "{" option_def_list "}"
option_def_list_content ::=
| not_empty_option_def_list
not_empty_option_def_list ::= option_def_entry
| not_empty_option_def_list "," option_def_entry
2022-01-25 18:17:54 +02:00
| not_empty_option_def_list ","
2021-06-22 19:46:09 +02:00
option_def_entry ::= "{" option_def_params "}"
sub_option_def ::= "{" option_def_params "}"
option_def_params ::=
| not_empty_option_def_params
not_empty_option_def_params ::= option_def_param
| not_empty_option_def_params "," option_def_param
2022-01-25 18:17:54 +02:00
| not_empty_option_def_params ","
2021-06-22 19:46:09 +02:00
option_def_param ::= option_def_name
| option_def_code
| option_def_type
| option_def_record_types
| option_def_space
| option_def_encapsulate
| option_def_array
| user_context
| comment
| unknown_map_entry
option_def_name ::= name
code ::= "code" ":" INTEGER
option_def_code ::= code
option_def_type ::= "type" ":" STRING
option_def_record_types ::= "record-types" ":" STRING
space ::= "space" ":" STRING
option_def_space ::= space
option_def_encapsulate ::= "encapsulate" ":" STRING
option_def_array ::= "array" ":" BOOLEAN
option_data_list ::= "option-data" ":" "[" option_data_list_content "]"
option_data_list_content ::=
| not_empty_option_data_list
not_empty_option_data_list ::= option_data_entry
| not_empty_option_data_list "," option_data_entry
2022-01-25 18:17:54 +02:00
| not_empty_option_data_list ","
2021-06-22 19:46:09 +02:00
option_data_entry ::= "{" option_data_params "}"
sub_option_data ::= "{" option_data_params "}"
option_data_params ::=
| not_empty_option_data_params
not_empty_option_data_params ::= option_data_param
| not_empty_option_data_params "," option_data_param
2022-01-25 18:17:54 +02:00
| not_empty_option_data_params ","
2021-06-22 19:46:09 +02:00
option_data_param ::= option_data_name
| option_data_data
| option_data_code
| option_data_space
| option_data_csv_format
| option_data_always_send
2023-03-24 23:51:18 +01:00
| option_data_never_send
2021-06-22 19:46:09 +02:00
| user_context
| comment
2024-10-29 12:53:12 +01:00
| option_data_client_classes
2021-06-22 19:46:09 +02:00
| unknown_map_entry
option_data_name ::= name
option_data_data ::= "data" ":" STRING
option_data_code ::= code
option_data_space ::= space
option_data_csv_format ::= "csv-format" ":" BOOLEAN
option_data_always_send ::= "always-send" ":" BOOLEAN
2023-03-24 23:51:18 +01:00
option_data_never_send ::= "never-send" ":" BOOLEAN
2024-10-29 12:53:12 +01:00
option_data_client_classes ::= "client-classes" ":" list_strings
2021-06-22 19:46:09 +02:00
pools_list ::= "pools" ":" "[" pools_list_content "]"
pools_list_content ::=
| not_empty_pools_list
not_empty_pools_list ::= pool_list_entry
| not_empty_pools_list "," pool_list_entry
2022-01-25 18:17:54 +02:00
| not_empty_pools_list ","
2021-06-22 19:46:09 +02:00
pool_list_entry ::= "{" pool_params "}"
sub_pool6 ::= "{" pool_params "}"
pool_params ::= pool_param
| pool_params "," pool_param
2022-01-25 18:17:54 +02:00
| pool_params ","
2021-06-22 19:46:09 +02:00
pool_param ::= pool_entry
| pool_id
2021-06-22 19:46:09 +02:00
| option_data_list
| client_class
2024-12-06 19:57:06 +01:00
| network_client_classes
2021-06-22 19:46:09 +02:00
| require_client_classes
2024-10-29 12:53:12 +01:00
| evaluate_additional_classes
2025-01-28 10:06:26 +01:00
| ddns_send_updates
| ddns_override_no_update
| ddns_override_client_update
| ddns_replace_client_name
| ddns_generated_prefix
| ddns_qualifying_suffix
| ddns_update_on_renew
| ddns_conflict_resolution_mode
| ddns_ttl_percent
| ddns_ttl
| ddns_ttl_min
| ddns_ttl_max
| hostname_char_set
| hostname_char_replacement
2021-06-22 19:46:09 +02:00
| user_context
| comment
| unknown_map_entry
pool_entry ::= "pool" ":" STRING
pool_id ::= "pool-id" ":" INTEGER
2021-06-22 19:46:09 +02:00
user_context ::= "user-context" ":" map_value
comment ::= "comment" ":" STRING
pd_pools_list ::= "pd-pools" ":" "[" pd_pools_list_content "]"
pd_pools_list_content ::=
| not_empty_pd_pools_list
not_empty_pd_pools_list ::= pd_pool_entry
| not_empty_pd_pools_list "," pd_pool_entry
2022-01-25 18:17:54 +02:00
| not_empty_pd_pools_list ","
2021-06-22 19:46:09 +02:00
pd_pool_entry ::= "{" pd_pool_params "}"
sub_pd_pool ::= "{" pd_pool_params "}"
pd_pool_params ::= pd_pool_param
| pd_pool_params "," pd_pool_param
2022-01-25 18:17:54 +02:00
| pd_pool_params ","
2021-06-22 19:46:09 +02:00
pd_pool_param ::= pd_prefix
| pd_prefix_len
| pd_delegated_len
2024-05-24 17:22:24 +03:00
| pool_id
2021-06-22 19:46:09 +02:00
| option_data_list
| client_class
2024-12-06 19:57:06 +01:00
| network_client_classes
2021-06-22 19:46:09 +02:00
| require_client_classes
2024-10-29 12:53:12 +01:00
| evaluate_additional_classes
2021-06-22 19:46:09 +02:00
| excluded_prefix
| excluded_prefix_len
| user_context
| comment
| unknown_map_entry
pd_prefix ::= "prefix" ":" STRING
pd_prefix_len ::= "prefix-len" ":" INTEGER
excluded_prefix ::= "excluded-prefix" ":" STRING
excluded_prefix_len ::= "excluded-prefix-len" ":" INTEGER
pd_delegated_len ::= "delegated-len" ":" INTEGER
reservations ::= "reservations" ":" "[" reservations_list "]"
reservations_list ::=
| not_empty_reservations_list
not_empty_reservations_list ::= reservation
| not_empty_reservations_list "," reservation
2022-01-25 18:17:54 +02:00
| not_empty_reservations_list ","
2021-06-22 19:46:09 +02:00
reservation ::= "{" reservation_params "}"
sub_reservation ::= "{" reservation_params "}"
reservation_params ::=
| not_empty_reservation_params
not_empty_reservation_params ::= reservation_param
| not_empty_reservation_params "," reservation_param
2022-01-25 18:17:54 +02:00
| not_empty_reservation_params ","
2021-06-22 19:46:09 +02:00
reservation_param ::= duid
| reservation_client_classes
| ip_addresses
| prefixes
2024-09-23 07:34:07 +00:00
| excluded_prefixes
2021-06-22 19:46:09 +02:00
| hw_address
| hostname
| flex_id_value
| option_data_list
| user_context
| comment
| unknown_map_entry
ip_addresses ::= "ip-addresses" ":" list_strings
prefixes ::= "prefixes" ":" list_strings
2024-09-23 07:34:07 +00:00
excluded_prefixes ::= "excluded-prefixes" ":" list_strings
2021-06-22 19:46:09 +02:00
duid ::= "duid" ":" STRING
hw_address ::= "hw-address" ":" STRING
hostname ::= "hostname" ":" STRING
flex_id_value ::= "flex-id" ":" STRING
reservation_client_classes ::= "client-classes" ":" list_strings
relay ::= "relay" ":" "{" relay_map "}"
2024-05-24 17:22:24 +03:00
relay_map ::= ip_addresses
2021-06-22 19:46:09 +02:00
client_classes ::= "client-classes" ":" "[" client_classes_list "]"
client_classes_list ::= client_class_entry
| client_classes_list "," client_class_entry
2022-01-25 18:17:54 +02:00
| client_classes_list ","
2021-06-22 19:46:09 +02:00
client_class_entry ::= "{" client_class_params "}"
client_class_params ::=
| not_empty_client_class_params
not_empty_client_class_params ::= client_class_param
| not_empty_client_class_params "," client_class_param
2022-01-25 18:17:54 +02:00
| not_empty_client_class_params ","
2021-06-22 19:46:09 +02:00
client_class_param ::= client_class_name
| client_class_test
2022-10-25 02:27:05 -07:00
| client_class_template_test
2021-06-22 19:46:09 +02:00
| only_if_required
2024-10-29 12:53:12 +01:00
| only_in_additional_list
2021-06-22 19:46:09 +02:00
| option_data_list
| user_context
| comment
2021-11-22 12:59:15 +02:00
| preferred_lifetime
| min_preferred_lifetime
| max_preferred_lifetime
| valid_lifetime
| min_valid_lifetime
| max_valid_lifetime
2021-06-22 19:46:09 +02:00
| unknown_map_entry
client_class_name ::= name
client_class_test ::= "test" ":" STRING
2022-10-25 02:27:05 -07:00
client_class_template_test ::= "template-test" ":" STRING
2021-06-22 19:46:09 +02:00
only_if_required ::= "only-if-required" ":" BOOLEAN
2024-10-29 12:53:12 +01:00
only_in_additional_list ::= "only-in-additional-list" ":" BOOLEAN
2021-06-22 19:46:09 +02:00
server_id ::= "server-id" ":" "{" server_id_params "}"
server_id_params ::= server_id_param
| server_id_params "," server_id_param
2022-01-25 18:17:54 +02:00
| server_id_params ","
2021-06-22 19:46:09 +02:00
server_id_param ::= server_id_type
| identifier
| time
| htype
| enterprise_id
| persist
| user_context
| comment
| unknown_map_entry
server_id_type ::= "type" ":" duid_type
duid_type ::= "LLT"
| "EN"
| "LL"
htype ::= "htype" ":" INTEGER
identifier ::= "identifier" ":" STRING
time ::= "time" ":" INTEGER
enterprise_id ::= "enterprise-id" ":" INTEGER
dhcp4o6_port ::= "dhcp4o6-port" ":" INTEGER
control_socket ::= "control-socket" ":" "{" control_socket_params "}"
2024-08-26 17:00:03 +03:00
control_sockets ::= "control-sockets" ":" "[" control_socket_list "]"
control_socket_list ::=
| not_empty_control_socket_list
not_empty_control_socket_list ::= control_socket_entry
| not_empty_control_socket_list "," control_socket_entry
| not_empty_control_socket_list ","
control_socket_entry ::= "{" control_socket_params "}"
2021-06-22 19:46:09 +02:00
control_socket_params ::= control_socket_param
| control_socket_params "," control_socket_param
2022-01-25 18:17:54 +02:00
| control_socket_params ","
2021-06-22 19:46:09 +02:00
2024-08-26 17:00:03 +03:00
control_socket_param ::= control_socket_type
| control_socket_name
| control_socket_address
| control_socket_port
| authentication
| trust_anchor
| cert_file
| key_file
| cert_required
2024-12-06 19:57:06 +01:00
| http_headers
2021-06-22 19:46:09 +02:00
| user_context
| comment
| unknown_map_entry
2024-08-26 17:00:03 +03:00
control_socket_type ::= "socket-type" ":" control_socket_type_value
control_socket_type_value ::= "unix"
| "http"
| "https"
control_socket_name ::= "socket-name" ":" STRING
control_socket_address ::= "socket-address" ":" STRING
control_socket_port ::= "socket-port" ":" INTEGER
cert_required ::= "cert-required" ":" BOOLEAN
2024-12-06 19:57:06 +01:00
http_headers ::= "http-headers" ":" "[" http_header_list "]"
http_header_list ::=
| not_empty_http_header_list
not_empty_http_header_list ::= http_header
| not_empty_http_header_list "," http_header
| not_empty_http_header_list ","
http_header ::= "{" http_header_params "}"
http_header_params ::= http_header_param
| http_header_params "," http_header_param
| http_header_params ","
http_header_param ::= name
| header_value
| user_context
| comment
| unknown_map_entry
header_value ::= "value" ":" STRING
2024-08-26 17:00:03 +03:00
authentication ::= "authentication" ":" "{" auth_params "}"
auth_params ::= auth_param
| auth_params "," auth_param
| auth_params ","
auth_param ::= auth_type
| realm
| directory
| clients
| comment
| user_context
| unknown_map_entry
auth_type ::= "type" ":" auth_type_value
auth_type_value ::= "basic"
realm ::= "realm" ":" STRING
directory ::= "directory" ":" STRING
clients ::= "clients" ":" "[" clients_list "]"
clients_list ::=
| not_empty_clients_list
not_empty_clients_list ::= basic_auth
| not_empty_clients_list "," basic_auth
| not_empty_clients_list ","
basic_auth ::= "{" clients_params "}"
clients_params ::= clients_param
| clients_params "," clients_param
| clients_params ","
clients_param ::= user
| user_file
| password
| password_file
| user_context
| comment
| unknown_map_entry
user_file ::= "user-file" ":" STRING
2021-06-22 19:46:09 +02:00
2024-08-26 17:00:03 +03:00
password_file ::= "password-file" ":" STRING
2021-06-22 19:46:09 +02:00
dhcp_queue_control ::= "dhcp-queue-control" ":" "{" queue_control_params "}"
queue_control_params ::= queue_control_param
| queue_control_params "," queue_control_param
2022-01-25 18:17:54 +02:00
| queue_control_params ","
2021-06-22 19:46:09 +02:00
queue_control_param ::= enable_queue
| queue_type
| capacity
| user_context
| comment
| arbitrary_map_entry
enable_queue ::= "enable-queue" ":" BOOLEAN
queue_type ::= "queue-type" ":" STRING
capacity ::= "capacity" ":" INTEGER
arbitrary_map_entry ::= STRING ":" value
dhcp_ddns ::= "dhcp-ddns" ":" "{" dhcp_ddns_params "}"
sub_dhcp_ddns ::= "{" dhcp_ddns_params "}"
dhcp_ddns_params ::= dhcp_ddns_param
| dhcp_ddns_params "," dhcp_ddns_param
2022-01-25 18:17:54 +02:00
| dhcp_ddns_params ","
2021-06-22 19:46:09 +02:00
dhcp_ddns_param ::= enable_updates
| server_ip
| server_port
| sender_ip
| sender_port
| max_queue_size
| ncr_protocol
| ncr_format
| user_context
| comment
| unknown_map_entry
enable_updates ::= "enable-updates" ":" BOOLEAN
server_ip ::= "server-ip" ":" STRING
server_port ::= "server-port" ":" INTEGER
sender_ip ::= "sender-ip" ":" STRING
sender_port ::= "sender-port" ":" INTEGER
max_queue_size ::= "max-queue-size" ":" INTEGER
ncr_protocol ::= "ncr-protocol" ":" ncr_protocol_value
ncr_protocol_value ::= "UDP"
| "TCP"
ncr_format ::= "ncr-format" ":" "JSON"
config_control ::= "config-control" ":" "{" config_control_params "}"
sub_config_control ::= "{" config_control_params "}"
config_control_params ::= config_control_param
| config_control_params "," config_control_param
2022-01-25 18:17:54 +02:00
| config_control_params ","
2021-06-22 19:46:09 +02:00
config_control_param ::= config_databases
| config_fetch_wait_time
config_databases ::= "config-databases" ":" "[" database_list "]"
config_fetch_wait_time ::= "config-fetch-wait-time" ":" INTEGER
loggers ::= "loggers" ":" "[" loggers_entries "]"
loggers_entries ::= logger_entry
| loggers_entries "," logger_entry
2022-01-25 18:17:54 +02:00
| loggers_entries ","
2021-06-22 19:46:09 +02:00
logger_entry ::= "{" logger_params "}"
logger_params ::= logger_param
| logger_params "," logger_param
2022-01-25 18:17:54 +02:00
| logger_params ","
2021-06-22 19:46:09 +02:00
logger_param ::= name
| output_options_list
| debuglevel
| severity
| user_context
| comment
| unknown_map_entry
debuglevel ::= "debuglevel" ":" INTEGER
severity ::= "severity" ":" STRING
2023-09-15 18:43:21 +03:00
output_options_list ::= "output-options" ":" "[" output_options_list_content "]"
2021-06-22 19:46:09 +02:00
output_options_list_content ::= output_entry
| output_options_list_content "," output_entry
2022-01-25 18:17:54 +02:00
| output_options_list_content ","
2021-06-22 19:46:09 +02:00
output_entry ::= "{" output_params_list "}"
output_params_list ::= output_params
| output_params_list "," output_params
2022-01-25 18:17:54 +02:00
| output_params_list ","
2021-06-22 19:46:09 +02:00
output_params ::= output
| flush
| maxsize
| maxver
| pattern
output ::= "output" ":" STRING
flush ::= "flush" ":" BOOLEAN
maxsize ::= "maxsize" ":" INTEGER
maxver ::= "maxver" ":" INTEGER
pattern ::= "pattern" ":" STRING
compatibility ::= "compatibility" ":" "{" compatibility_params "}"
compatibility_params ::= compatibility_param
| compatibility_params "," compatibility_param
2022-01-25 18:17:54 +02:00
| compatibility_params ","
2021-06-22 19:46:09 +02:00
compatibility_param ::= lenient_option_parsing
| unknown_map_entry
lenient_option_parsing ::= "lenient-option-parsing" ":" BOOLEAN