1 2Grammar generated on 2021-12-14 13:12. See Chapter :ref:`dhcp6` for an explanation. 3 4.. code-block:: BNF 5 :linenos: 6 7 Grammar 8 9 $accept ::= start EOF 10 11 start ::= TOPLEVEL_JSON sub_json 12 13 start ::= TOPLEVEL_DHCP6 syntax_map 14 15 start ::= SUB_DHCP6 sub_dhcp6 16 17 start ::= SUB_INTERFACES6 sub_interfaces6 18 19 start ::= SUB_SUBNET6 sub_subnet6 20 21 start ::= SUB_POOL6 sub_pool6 22 23 start ::= SUB_PD_POOL sub_pd_pool 24 25 start ::= SUB_RESERVATION sub_reservation 26 27 start ::= SUB_OPTION_DEFS sub_option_def_list 28 29 start ::= SUB_OPTION_DEF sub_option_def 30 31 start ::= SUB_OPTION_DATA sub_option_data 32 33 start ::= SUB_HOOKS_LIBRARY sub_hooks_library 34 35 start ::= SUB_DHCP_DDNS sub_dhcp_ddns 36 37 start ::= SUB_CONFIG_CONTROL sub_config_control 38 39 value ::= INTEGER 40 | FLOAT 41 | BOOLEAN 42 | STRING 43 | NULL 44 | map2 45 | list_generic 46 47 sub_json ::= value 48 49 map2 ::= "{" map_content "}" 50 51 map_value ::= map2 52 53 map_content ::= 54 | not_empty_map 55 56 not_empty_map ::= STRING ":" value 57 | not_empty_map "," STRING ":" value 58 59 list_generic ::= "[" list_content "]" 60 61 list_content ::= 62 | not_empty_list 63 64 not_empty_list ::= value 65 | not_empty_list "," value 66 67 list_strings ::= "[" list_strings_content "]" 68 69 list_strings_content ::= 70 | not_empty_list_strings 71 72 not_empty_list_strings ::= STRING 73 | not_empty_list_strings "," STRING 74 75 unknown_map_entry ::= STRING ":" 76 77 syntax_map ::= "{" global_object "}" 78 79 global_object ::= "Dhcp6" ":" "{" global_params "}" 80 81 sub_dhcp6 ::= "{" global_params "}" 82 83 global_params ::= global_param 84 | global_params "," global_param 85 86 global_param ::= data_directory 87 | preferred_lifetime 88 | min_preferred_lifetime 89 | max_preferred_lifetime 90 | valid_lifetime 91 | min_valid_lifetime 92 | max_valid_lifetime 93 | renew_timer 94 | rebind_timer 95 | decline_probation_period 96 | subnet6_list 97 | shared_networks 98 | interfaces_config 99 | lease_database 100 | hosts_database 101 | hosts_databases 102 | mac_sources 103 | relay_supplied_options 104 | host_reservation_identifiers 105 | client_classes 106 | option_def_list 107 | option_data_list 108 | hooks_libraries 109 | expired_leases_processing 110 | server_id 111 | dhcp4o6_port 112 | control_socket 113 | dhcp_queue_control 114 | dhcp_ddns 115 | user_context 116 | comment 117 | sanity_checks 118 | reservations 119 | config_control 120 | server_tag 121 | reservation_mode 122 | reservations_global 123 | reservations_in_subnet 124 | reservations_out_of_pool 125 | calculate_tee_times 126 | t1_percent 127 | t2_percent 128 | cache_threshold 129 | cache_max_age 130 | loggers 131 | hostname_char_set 132 | hostname_char_replacement 133 | ddns_send_updates 134 | ddns_override_no_update 135 | ddns_override_client_update 136 | ddns_replace_client_name 137 | ddns_generated_prefix 138 | ddns_qualifying_suffix 139 | ddns_update_on_renew 140 | ddns_use_conflict_resolution 141 | store_extended_info 142 | statistic_default_sample_count 143 | statistic_default_sample_age 144 | dhcp_multi_threading 145 | ip_reservations_unique 146 | compatibility 147 | parked_packet_limit 148 | unknown_map_entry 149 150 data_directory ::= "data-directory" ":" STRING 151 152 preferred_lifetime ::= "preferred-lifetime" ":" INTEGER 153 154 min_preferred_lifetime ::= "min-preferred-lifetime" ":" INTEGER 155 156 max_preferred_lifetime ::= "max-preferred-lifetime" ":" INTEGER 157 158 valid_lifetime ::= "valid-lifetime" ":" INTEGER 159 160 min_valid_lifetime ::= "min-valid-lifetime" ":" INTEGER 161 162 max_valid_lifetime ::= "max-valid-lifetime" ":" INTEGER 163 164 renew_timer ::= "renew-timer" ":" INTEGER 165 166 rebind_timer ::= "rebind-timer" ":" INTEGER 167 168 calculate_tee_times ::= "calculate-tee-times" ":" BOOLEAN 169 170 t1_percent ::= "t1-percent" ":" FLOAT 171 172 t2_percent ::= "t2-percent" ":" FLOAT 173 174 cache_threshold ::= "cache-threshold" ":" FLOAT 175 176 cache_max_age ::= "cache-max-age" ":" INTEGER 177 178 decline_probation_period ::= "decline-probation-period" ":" INTEGER 179 180 ddns_send_updates ::= "ddns-send-updates" ":" BOOLEAN 181 182 ddns_override_no_update ::= "ddns-override-no-update" ":" BOOLEAN 183 184 ddns_override_client_update ::= "ddns-override-client-update" ":" BOOLEAN 185 186 ddns_replace_client_name ::= "ddns-replace-client-name" ":" ddns_replace_client_name_value 187 188 ddns_replace_client_name_value ::= "when-present" 189 | "never" 190 | "always" 191 | "when-not-present" 192 | BOOLEAN 193 194 ddns_generated_prefix ::= "ddns-generated-prefix" ":" STRING 195 196 ddns_qualifying_suffix ::= "ddns-qualifying-suffix" ":" STRING 197 198 ddns_update_on_renew ::= "ddns-update-on-renew" ":" BOOLEAN 199 200 ddns_use_conflict_resolution ::= "ddns-use-conflict-resolution" ":" BOOLEAN 201 202 hostname_char_set ::= "hostname-char-set" ":" STRING 203 204 hostname_char_replacement ::= "hostname-char-replacement" ":" STRING 205 206 store_extended_info ::= "store-extended-info" ":" BOOLEAN 207 208 statistic_default_sample_count ::= "statistic-default-sample-count" ":" INTEGER 209 210 statistic_default_sample_age ::= "statistic-default-sample-age" ":" INTEGER 211 212 server_tag ::= "server-tag" ":" STRING 213 214 parked_packet_limit ::= "parked-packet-limit" ":" INTEGER 215 216 ip_reservations_unique ::= "ip-reservations-unique" ":" BOOLEAN 217 218 interfaces_config ::= "interfaces-config" ":" "{" interfaces_config_params "}" 219 220 sub_interfaces6 ::= "{" interfaces_config_params "}" 221 222 interfaces_config_params ::= interfaces_config_param 223 | interfaces_config_params "," interfaces_config_param 224 225 interfaces_config_param ::= interfaces_list 226 | re_detect 227 | user_context 228 | comment 229 | unknown_map_entry 230 231 interfaces_list ::= "interfaces" ":" list_strings 232 233 re_detect ::= "re-detect" ":" BOOLEAN 234 235 lease_database ::= "lease-database" ":" "{" database_map_params "}" 236 237 hosts_database ::= "hosts-database" ":" "{" database_map_params "}" 238 239 hosts_databases ::= "hosts-databases" ":" "[" database_list "]" 240 241 database_list ::= 242 | not_empty_database_list 243 244 not_empty_database_list ::= database 245 | not_empty_database_list "," database 246 247 database ::= "{" database_map_params "}" 248 249 database_map_params ::= database_map_param 250 | database_map_params "," database_map_param 251 252 database_map_param ::= database_type 253 | user 254 | password 255 | host 256 | port 257 | name 258 | persist 259 | lfc_interval 260 | readonly 261 | connect_timeout 262 | contact_points 263 | max_reconnect_tries 264 | reconnect_wait_time 265 | on_fail 266 | request_timeout 267 | tcp_keepalive 268 | tcp_nodelay 269 | keyspace 270 | consistency 271 | serial_consistency 272 | max_row_errors 273 | unknown_map_entry 274 275 database_type ::= "type" ":" db_type 276 277 db_type ::= "memfile" 278 | "mysql" 279 | "postgresql" 280 | "cql" 281 282 user ::= "user" ":" STRING 283 284 password ::= "password" ":" STRING 285 286 host ::= "host" ":" STRING 287 288 port ::= "port" ":" INTEGER 289 290 name ::= "name" ":" STRING 291 292 persist ::= "persist" ":" BOOLEAN 293 294 lfc_interval ::= "lfc-interval" ":" INTEGER 295 296 readonly ::= "readonly" ":" BOOLEAN 297 298 connect_timeout ::= "connect-timeout" ":" INTEGER 299 300 reconnect_wait_time ::= "reconnect-wait-time" ":" INTEGER 301 302 on_fail ::= "on-fail" ":" on_fail_mode 303 304 on_fail_mode ::= "stop-retry-exit" 305 | "serve-retry-exit" 306 | "serve-retry-continue" 307 308 max_row_errors ::= "max-row-errors" ":" INTEGER 309 310 request_timeout ::= "request-timeout" ":" INTEGER 311 312 tcp_keepalive ::= "tcp-keepalive" ":" INTEGER 313 314 tcp_nodelay ::= "tcp-nodelay" ":" BOOLEAN 315 316 contact_points ::= "contact-points" ":" STRING 317 318 max_reconnect_tries ::= "max-reconnect-tries" ":" INTEGER 319 320 keyspace ::= "keyspace" ":" STRING 321 322 consistency ::= "consistency" ":" STRING 323 324 serial_consistency ::= "serial-consistency" ":" STRING 325 326 sanity_checks ::= "sanity-checks" ":" "{" sanity_checks_params "}" 327 328 sanity_checks_params ::= sanity_checks_param 329 | sanity_checks_params "," sanity_checks_param 330 331 sanity_checks_param ::= lease_checks 332 333 lease_checks ::= "lease-checks" ":" STRING 334 335 mac_sources ::= "mac-sources" ":" "[" mac_sources_list "]" 336 337 mac_sources_list ::= mac_sources_value 338 | mac_sources_list "," mac_sources_value 339 340 mac_sources_value ::= duid_id 341 | string_id 342 343 duid_id ::= "duid" 344 345 string_id ::= STRING 346 347 host_reservation_identifiers ::= "host-reservation-identifiers" ":" "[" host_reservation_identifiers_list "]" 348 349 host_reservation_identifiers_list ::= host_reservation_identifier 350 | host_reservation_identifiers_list "," host_reservation_identifier 351 352 host_reservation_identifier ::= duid_id 353 | hw_address_id 354 | flex_id 355 356 hw_address_id ::= "hw-address" 357 358 flex_id ::= "flex-id" 359 360 relay_supplied_options ::= "relay-supplied-options" ":" "[" list_content "]" 361 362 dhcp_multi_threading ::= "multi-threading" ":" "{" multi_threading_params "}" 363 364 multi_threading_params ::= multi_threading_param 365 | multi_threading_params "," multi_threading_param 366 367 multi_threading_param ::= enable_multi_threading 368 | thread_pool_size 369 | packet_queue_size 370 | user_context 371 | comment 372 | unknown_map_entry 373 374 enable_multi_threading ::= "enable-multi-threading" ":" BOOLEAN 375 376 thread_pool_size ::= "thread-pool-size" ":" INTEGER 377 378 packet_queue_size ::= "packet-queue-size" ":" INTEGER 379 380 hooks_libraries ::= "hooks-libraries" ":" "[" hooks_libraries_list "]" 381 382 hooks_libraries_list ::= 383 | not_empty_hooks_libraries_list 384 385 not_empty_hooks_libraries_list ::= hooks_library 386 | not_empty_hooks_libraries_list "," hooks_library 387 388 hooks_library ::= "{" hooks_params "}" 389 390 sub_hooks_library ::= "{" hooks_params "}" 391 392 hooks_params ::= hooks_param 393 | hooks_params "," hooks_param 394 | unknown_map_entry 395 396 hooks_param ::= library 397 | parameters 398 399 library ::= "library" ":" STRING 400 401 parameters ::= "parameters" ":" map_value 402 403 expired_leases_processing ::= "expired-leases-processing" ":" "{" expired_leases_params "}" 404 405 expired_leases_params ::= expired_leases_param 406 | expired_leases_params "," expired_leases_param 407 408 expired_leases_param ::= reclaim_timer_wait_time 409 | flush_reclaimed_timer_wait_time 410 | hold_reclaimed_time 411 | max_reclaim_leases 412 | max_reclaim_time 413 | unwarned_reclaim_cycles 414 415 reclaim_timer_wait_time ::= "reclaim-timer-wait-time" ":" INTEGER 416 417 flush_reclaimed_timer_wait_time ::= "flush-reclaimed-timer-wait-time" ":" INTEGER 418 419 hold_reclaimed_time ::= "hold-reclaimed-time" ":" INTEGER 420 421 max_reclaim_leases ::= "max-reclaim-leases" ":" INTEGER 422 423 max_reclaim_time ::= "max-reclaim-time" ":" INTEGER 424 425 unwarned_reclaim_cycles ::= "unwarned-reclaim-cycles" ":" INTEGER 426 427 subnet6_list ::= "subnet6" ":" "[" subnet6_list_content "]" 428 429 subnet6_list_content ::= 430 | not_empty_subnet6_list 431 432 not_empty_subnet6_list ::= subnet6 433 | not_empty_subnet6_list "," subnet6 434 435 subnet6 ::= "{" subnet6_params "}" 436 437 sub_subnet6 ::= "{" subnet6_params "}" 438 439 subnet6_params ::= subnet6_param 440 | subnet6_params "," subnet6_param 441 442 subnet6_param ::= preferred_lifetime 443 | min_preferred_lifetime 444 | max_preferred_lifetime 445 | valid_lifetime 446 | min_valid_lifetime 447 | max_valid_lifetime 448 | renew_timer 449 | rebind_timer 450 | option_data_list 451 | pools_list 452 | pd_pools_list 453 | subnet 454 | interface 455 | interface_id 456 | id 457 | rapid_commit 458 | client_class 459 | require_client_classes 460 | reservations 461 | reservation_mode 462 | reservations_global 463 | reservations_in_subnet 464 | reservations_out_of_pool 465 | relay 466 | user_context 467 | comment 468 | calculate_tee_times 469 | t1_percent 470 | t2_percent 471 | cache_threshold 472 | cache_max_age 473 | hostname_char_set 474 | hostname_char_replacement 475 | ddns_send_updates 476 | ddns_override_no_update 477 | ddns_override_client_update 478 | ddns_replace_client_name 479 | ddns_generated_prefix 480 | ddns_qualifying_suffix 481 | ddns_update_on_renew 482 | ddns_use_conflict_resolution 483 | store_extended_info 484 | unknown_map_entry 485 486 subnet ::= "subnet" ":" STRING 487 488 interface ::= "interface" ":" STRING 489 490 interface_id ::= "interface-id" ":" STRING 491 492 client_class ::= "client-class" ":" STRING 493 494 require_client_classes ::= "require-client-classes" ":" list_strings 495 496 reservations_global ::= "reservations-global" ":" BOOLEAN 497 498 reservations_in_subnet ::= "reservations-in-subnet" ":" BOOLEAN 499 500 reservations_out_of_pool ::= "reservations-out-of-pool" ":" BOOLEAN 501 502 reservation_mode ::= "reservation-mode" ":" hr_mode 503 504 hr_mode ::= "disabled" 505 | "out-of-pool" 506 | "global" 507 | "all" 508 509 id ::= "id" ":" INTEGER 510 511 rapid_commit ::= "rapid-commit" ":" BOOLEAN 512 513 shared_networks ::= "shared-networks" ":" "[" shared_networks_content "]" 514 515 shared_networks_content ::= 516 | shared_networks_list 517 518 shared_networks_list ::= shared_network 519 | shared_networks_list "," shared_network 520 521 shared_network ::= "{" shared_network_params "}" 522 523 shared_network_params ::= shared_network_param 524 | shared_network_params "," shared_network_param 525 526 shared_network_param ::= name 527 | subnet6_list 528 | interface 529 | interface_id 530 | renew_timer 531 | rebind_timer 532 | option_data_list 533 | relay 534 | reservation_mode 535 | reservations_global 536 | reservations_in_subnet 537 | reservations_out_of_pool 538 | client_class 539 | require_client_classes 540 | preferred_lifetime 541 | min_preferred_lifetime 542 | max_preferred_lifetime 543 | rapid_commit 544 | valid_lifetime 545 | min_valid_lifetime 546 | max_valid_lifetime 547 | user_context 548 | comment 549 | calculate_tee_times 550 | t1_percent 551 | t2_percent 552 | cache_threshold 553 | cache_max_age 554 | hostname_char_set 555 | hostname_char_replacement 556 | ddns_send_updates 557 | ddns_override_no_update 558 | ddns_override_client_update 559 | ddns_replace_client_name 560 | ddns_generated_prefix 561 | ddns_qualifying_suffix 562 | ddns_update_on_renew 563 | ddns_use_conflict_resolution 564 | store_extended_info 565 | unknown_map_entry 566 567 option_def_list ::= "option-def" ":" "[" option_def_list_content "]" 568 569 sub_option_def_list ::= "{" option_def_list "}" 570 571 option_def_list_content ::= 572 | not_empty_option_def_list 573 574 not_empty_option_def_list ::= option_def_entry 575 | not_empty_option_def_list "," option_def_entry 576 577 option_def_entry ::= "{" option_def_params "}" 578 579 sub_option_def ::= "{" option_def_params "}" 580 581 option_def_params ::= 582 | not_empty_option_def_params 583 584 not_empty_option_def_params ::= option_def_param 585 | not_empty_option_def_params "," option_def_param 586 587 option_def_param ::= option_def_name 588 | option_def_code 589 | option_def_type 590 | option_def_record_types 591 | option_def_space 592 | option_def_encapsulate 593 | option_def_array 594 | user_context 595 | comment 596 | unknown_map_entry 597 598 option_def_name ::= name 599 600 code ::= "code" ":" INTEGER 601 602 option_def_code ::= code 603 604 option_def_type ::= "type" ":" STRING 605 606 option_def_record_types ::= "record-types" ":" STRING 607 608 space ::= "space" ":" STRING 609 610 option_def_space ::= space 611 612 option_def_encapsulate ::= "encapsulate" ":" STRING 613 614 option_def_array ::= "array" ":" BOOLEAN 615 616 option_data_list ::= "option-data" ":" "[" option_data_list_content "]" 617 618 option_data_list_content ::= 619 | not_empty_option_data_list 620 621 not_empty_option_data_list ::= option_data_entry 622 | not_empty_option_data_list "," option_data_entry 623 624 option_data_entry ::= "{" option_data_params "}" 625 626 sub_option_data ::= "{" option_data_params "}" 627 628 option_data_params ::= 629 | not_empty_option_data_params 630 631 not_empty_option_data_params ::= option_data_param 632 | not_empty_option_data_params "," option_data_param 633 634 option_data_param ::= option_data_name 635 | option_data_data 636 | option_data_code 637 | option_data_space 638 | option_data_csv_format 639 | option_data_always_send 640 | user_context 641 | comment 642 | unknown_map_entry 643 644 option_data_name ::= name 645 646 option_data_data ::= "data" ":" STRING 647 648 option_data_code ::= code 649 650 option_data_space ::= space 651 652 option_data_csv_format ::= "csv-format" ":" BOOLEAN 653 654 option_data_always_send ::= "always-send" ":" BOOLEAN 655 656 pools_list ::= "pools" ":" "[" pools_list_content "]" 657 658 pools_list_content ::= 659 | not_empty_pools_list 660 661 not_empty_pools_list ::= pool_list_entry 662 | not_empty_pools_list "," pool_list_entry 663 664 pool_list_entry ::= "{" pool_params "}" 665 666 sub_pool6 ::= "{" pool_params "}" 667 668 pool_params ::= pool_param 669 | pool_params "," pool_param 670 671 pool_param ::= pool_entry 672 | option_data_list 673 | client_class 674 | require_client_classes 675 | user_context 676 | comment 677 | unknown_map_entry 678 679 pool_entry ::= "pool" ":" STRING 680 681 user_context ::= "user-context" ":" map_value 682 683 comment ::= "comment" ":" STRING 684 685 pd_pools_list ::= "pd-pools" ":" "[" pd_pools_list_content "]" 686 687 pd_pools_list_content ::= 688 | not_empty_pd_pools_list 689 690 not_empty_pd_pools_list ::= pd_pool_entry 691 | not_empty_pd_pools_list "," pd_pool_entry 692 693 pd_pool_entry ::= "{" pd_pool_params "}" 694 695 sub_pd_pool ::= "{" pd_pool_params "}" 696 697 pd_pool_params ::= pd_pool_param 698 | pd_pool_params "," pd_pool_param 699 700 pd_pool_param ::= pd_prefix 701 | pd_prefix_len 702 | pd_delegated_len 703 | option_data_list 704 | client_class 705 | require_client_classes 706 | excluded_prefix 707 | excluded_prefix_len 708 | user_context 709 | comment 710 | unknown_map_entry 711 712 pd_prefix ::= "prefix" ":" STRING 713 714 pd_prefix_len ::= "prefix-len" ":" INTEGER 715 716 excluded_prefix ::= "excluded-prefix" ":" STRING 717 718 excluded_prefix_len ::= "excluded-prefix-len" ":" INTEGER 719 720 pd_delegated_len ::= "delegated-len" ":" INTEGER 721 722 reservations ::= "reservations" ":" "[" reservations_list "]" 723 724 reservations_list ::= 725 | not_empty_reservations_list 726 727 not_empty_reservations_list ::= reservation 728 | not_empty_reservations_list "," reservation 729 730 reservation ::= "{" reservation_params "}" 731 732 sub_reservation ::= "{" reservation_params "}" 733 734 reservation_params ::= 735 | not_empty_reservation_params 736 737 not_empty_reservation_params ::= reservation_param 738 | not_empty_reservation_params "," reservation_param 739 740 reservation_param ::= duid 741 | reservation_client_classes 742 | ip_addresses 743 | prefixes 744 | hw_address 745 | hostname 746 | flex_id_value 747 | option_data_list 748 | user_context 749 | comment 750 | unknown_map_entry 751 752 ip_addresses ::= "ip-addresses" ":" list_strings 753 754 prefixes ::= "prefixes" ":" list_strings 755 756 duid ::= "duid" ":" STRING 757 758 hw_address ::= "hw-address" ":" STRING 759 760 hostname ::= "hostname" ":" STRING 761 762 flex_id_value ::= "flex-id" ":" STRING 763 764 reservation_client_classes ::= "client-classes" ":" list_strings 765 766 relay ::= "relay" ":" "{" relay_map "}" 767 768 relay_map ::= ip_address 769 | ip_addresses 770 771 ip_address ::= "ip-address" ":" STRING 772 773 client_classes ::= "client-classes" ":" "[" client_classes_list "]" 774 775 client_classes_list ::= client_class_entry 776 | client_classes_list "," client_class_entry 777 778 client_class_entry ::= "{" client_class_params "}" 779 780 client_class_params ::= 781 | not_empty_client_class_params 782 783 not_empty_client_class_params ::= client_class_param 784 | not_empty_client_class_params "," client_class_param 785 786 client_class_param ::= client_class_name 787 | client_class_test 788 | only_if_required 789 | option_data_list 790 | user_context 791 | comment 792 | preferred_lifetime 793 | min_preferred_lifetime 794 | max_preferred_lifetime 795 | valid_lifetime 796 | min_valid_lifetime 797 | max_valid_lifetime 798 | unknown_map_entry 799 800 client_class_name ::= name 801 802 client_class_test ::= "test" ":" STRING 803 804 only_if_required ::= "only-if-required" ":" BOOLEAN 805 806 server_id ::= "server-id" ":" "{" server_id_params "}" 807 808 server_id_params ::= server_id_param 809 | server_id_params "," server_id_param 810 811 server_id_param ::= server_id_type 812 | identifier 813 | time 814 | htype 815 | enterprise_id 816 | persist 817 | user_context 818 | comment 819 | unknown_map_entry 820 821 server_id_type ::= "type" ":" duid_type 822 823 duid_type ::= "LLT" 824 | "EN" 825 | "LL" 826 827 htype ::= "htype" ":" INTEGER 828 829 identifier ::= "identifier" ":" STRING 830 831 time ::= "time" ":" INTEGER 832 833 enterprise_id ::= "enterprise-id" ":" INTEGER 834 835 dhcp4o6_port ::= "dhcp4o6-port" ":" INTEGER 836 837 control_socket ::= "control-socket" ":" "{" control_socket_params "}" 838 839 control_socket_params ::= control_socket_param 840 | control_socket_params "," control_socket_param 841 842 control_socket_param ::= socket_type 843 | socket_name 844 | user_context 845 | comment 846 | unknown_map_entry 847 848 socket_type ::= "socket-type" ":" STRING 849 850 socket_name ::= "socket-name" ":" STRING 851 852 dhcp_queue_control ::= "dhcp-queue-control" ":" "{" queue_control_params "}" 853 854 queue_control_params ::= queue_control_param 855 | queue_control_params "," queue_control_param 856 857 queue_control_param ::= enable_queue 858 | queue_type 859 | capacity 860 | user_context 861 | comment 862 | arbitrary_map_entry 863 864 enable_queue ::= "enable-queue" ":" BOOLEAN 865 866 queue_type ::= "queue-type" ":" STRING 867 868 capacity ::= "capacity" ":" INTEGER 869 870 arbitrary_map_entry ::= STRING ":" value 871 872 dhcp_ddns ::= "dhcp-ddns" ":" "{" dhcp_ddns_params "}" 873 874 sub_dhcp_ddns ::= "{" dhcp_ddns_params "}" 875 876 dhcp_ddns_params ::= dhcp_ddns_param 877 | dhcp_ddns_params "," dhcp_ddns_param 878 879 dhcp_ddns_param ::= enable_updates 880 | server_ip 881 | server_port 882 | sender_ip 883 | sender_port 884 | max_queue_size 885 | ncr_protocol 886 | ncr_format 887 | dep_override_no_update 888 | dep_override_client_update 889 | dep_replace_client_name 890 | dep_generated_prefix 891 | dep_qualifying_suffix 892 | dep_hostname_char_set 893 | dep_hostname_char_replacement 894 | user_context 895 | comment 896 | unknown_map_entry 897 898 enable_updates ::= "enable-updates" ":" BOOLEAN 899 900 dep_qualifying_suffix ::= "qualifying-suffix" ":" STRING 901 902 server_ip ::= "server-ip" ":" STRING 903 904 server_port ::= "server-port" ":" INTEGER 905 906 sender_ip ::= "sender-ip" ":" STRING 907 908 sender_port ::= "sender-port" ":" INTEGER 909 910 max_queue_size ::= "max-queue-size" ":" INTEGER 911 912 ncr_protocol ::= "ncr-protocol" ":" ncr_protocol_value 913 914 ncr_protocol_value ::= "UDP" 915 | "TCP" 916 917 ncr_format ::= "ncr-format" ":" "JSON" 918 919 dep_override_no_update ::= "override-no-update" ":" BOOLEAN 920 921 dep_override_client_update ::= "override-client-update" ":" BOOLEAN 922 923 dep_replace_client_name ::= "replace-client-name" ":" ddns_replace_client_name_value 924 925 dep_generated_prefix ::= "generated-prefix" ":" STRING 926 927 dep_hostname_char_set ::= "hostname-char-set" ":" STRING 928 929 dep_hostname_char_replacement ::= "hostname-char-replacement" ":" STRING 930 931 config_control ::= "config-control" ":" "{" config_control_params "}" 932 933 sub_config_control ::= "{" config_control_params "}" 934 935 config_control_params ::= config_control_param 936 | config_control_params "," config_control_param 937 938 config_control_param ::= config_databases 939 | config_fetch_wait_time 940 941 config_databases ::= "config-databases" ":" "[" database_list "]" 942 943 config_fetch_wait_time ::= "config-fetch-wait-time" ":" INTEGER 944 945 loggers ::= "loggers" ":" "[" loggers_entries "]" 946 947 loggers_entries ::= logger_entry 948 | loggers_entries "," logger_entry 949 950 logger_entry ::= "{" logger_params "}" 951 952 logger_params ::= logger_param 953 | logger_params "," logger_param 954 955 logger_param ::= name 956 | output_options_list 957 | debuglevel 958 | severity 959 | user_context 960 | comment 961 | unknown_map_entry 962 963 debuglevel ::= "debuglevel" ":" INTEGER 964 965 severity ::= "severity" ":" STRING 966 967 output_options_list ::= "output_options" ":" "[" output_options_list_content "]" 968 969 output_options_list_content ::= output_entry 970 | output_options_list_content "," output_entry 971 972 output_entry ::= "{" output_params_list "}" 973 974 output_params_list ::= output_params 975 | output_params_list "," output_params 976 977 output_params ::= output 978 | flush 979 | maxsize 980 | maxver 981 | pattern 982 983 output ::= "output" ":" STRING 984 985 flush ::= "flush" ":" BOOLEAN 986 987 maxsize ::= "maxsize" ":" INTEGER 988 989 maxver ::= "maxver" ":" INTEGER 990 991 pattern ::= "pattern" ":" STRING 992 993 compatibility ::= "compatibility" ":" "{" compatibility_params "}" 994 995 compatibility_params ::= compatibility_param 996 | compatibility_params "," compatibility_param 997 998 compatibility_param ::= lenient_option_parsing 999 | unknown_map_entry 1000 1001 lenient_option_parsing ::= "lenient-option-parsing" ":" BOOLEAN 1002 1003