Kea Configuration File Syntax (BNF)

Kea consists of several daemons, each with its own configuration syntax. The following sections provide a complete syntax of all possible parameters, written in Backus-Naur Form (BNF). See this Wikipedia article on BNF for more information.

BNF Grammar for DHCPv4

This grammar is generated from dhcp4_parser.yy. See The DHCPv4 Server for more details.

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

BNF Grammar for DHCPv6

This grammar is generated from dhcp6_parser.yy. See The DHCPv6 Server for more details.

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

BNF Grammar for Control Agent

This grammar is generated from agent_parser.yy. See The Kea Control Agent for more details.

  1  Grammar
  2
  3  $accept ::= start EOF
  4
  5  start ::= START_JSON json
  6
  7  start ::= START_AGENT agent_syntax_map
  8
  9  start ::= START_SUB_AGENT sub_agent
 10
 11  sub_agent ::= "{" global_params "}"
 12
 13  json ::= value
 14
 15  value ::= INTEGER
 16       | FLOAT
 17       | BOOLEAN
 18       | STRING
 19       | NULL
 20       | map
 21       | list_generic
 22
 23  map ::= "{" map_content "}"
 24
 25  map_value ::= map
 26
 27  map_content ::=
 28             | not_empty_map
 29
 30  not_empty_map ::= STRING ":" value
 31               | not_empty_map "," STRING ":" value
 32               | not_empty_map ","
 33
 34  list_generic ::= "[" list_content "]"
 35
 36  list_content ::=
 37              | not_empty_list
 38
 39  not_empty_list ::= value
 40                | not_empty_list "," value
 41                | not_empty_list ","
 42
 43  unknown_map_entry ::= STRING ":"
 44
 45  agent_syntax_map ::= "{" global_object "}"
 46
 47  global_object ::= "Control-agent" ":" "{" global_params "}"
 48               | global_object_comma
 49
 50  global_object_comma ::= global_object ","
 51
 52  global_params ::= global_param
 53               | global_params "," global_param
 54               | global_params ","
 55
 56  global_param ::= http_host
 57              | http_port
 58              | trust_anchor
 59              | cert_file
 60              | key_file
 61              | cert_required
 62              | authentication
 63              | control_sockets
 64              | hooks_libraries
 65              | loggers
 66              | user_context
 67              | comment
 68              | unknown_map_entry
 69
 70  http_host ::= "http-host" ":" STRING
 71
 72  http_port ::= "http-port" ":" INTEGER
 73
 74  trust_anchor ::= "trust-anchor" ":" STRING
 75
 76  cert_file ::= "cert-file" ":" STRING
 77
 78  key_file ::= "key-file" ":" STRING
 79
 80  cert_required ::= "cert-required" ":" BOOLEAN
 81
 82  user_context ::= "user-context" ":" map_value
 83
 84  comment ::= "comment" ":" STRING
 85
 86  hooks_libraries ::= "hooks-libraries" ":" "[" hooks_libraries_list "]"
 87
 88  hooks_libraries_list ::=
 89                      | not_empty_hooks_libraries_list
 90
 91  not_empty_hooks_libraries_list ::= hooks_library
 92                                | not_empty_hooks_libraries_list "," hooks_library
 93                                | not_empty_hooks_libraries_list ","
 94
 95  hooks_library ::= "{" hooks_params "}"
 96
 97  hooks_params ::= hooks_param
 98              | hooks_params "," hooks_param
 99              | hooks_params ","
100              | unknown_map_entry
101
102  hooks_param ::= library
103             | parameters
104
105  library ::= "library" ":" STRING
106
107  parameters ::= "parameters" ":" map_value
108
109  control_sockets ::= "control-sockets" ":" "{" control_sockets_params "}"
110
111  control_sockets_params ::= control_socket
112                        | control_sockets_params "," control_socket
113                        | control_sockets_params ","
114
115  control_socket ::= dhcp4_server_socket
116                | dhcp6_server_socket
117                | d2_server_socket
118                | unknown_map_entry
119
120  dhcp4_server_socket ::= "dhcp4" ":" "{" control_socket_params "}"
121
122  dhcp6_server_socket ::= "dhcp6" ":" "{" control_socket_params "}"
123
124  d2_server_socket ::= "d2" ":" "{" control_socket_params "}"
125
126  control_socket_params ::= control_socket_param
127                       | control_socket_params "," control_socket_param
128                       | control_socket_params ","
129
130  control_socket_param ::= socket_name
131                      | socket_type
132                      | user_context
133                      | comment
134                      | unknown_map_entry
135
136  socket_name ::= "socket-name" ":" STRING
137
138  socket_type ::= "socket-type" ":" socket_type_value
139
140  socket_type_value ::= "unix"
141
142  authentication ::= "authentication" ":" "{" auth_params "}"
143
144  auth_params ::= auth_param
145             | auth_params "," auth_param
146             | auth_params ","
147
148  auth_param ::= auth_type
149            | realm
150            | directory
151            | clients
152            | comment
153            | user_context
154            | unknown_map_entry
155
156  auth_type ::= "type" ":" auth_type_value
157
158  auth_type_value ::= "basic"
159
160  realm ::= "realm" ":" STRING
161
162  directory ::= "directory" ":" STRING
163
164  clients ::= "clients" ":" "[" clients_list "]"
165
166  clients_list ::=
167              | not_empty_clients_list
168
169  not_empty_clients_list ::= basic_auth
170                        | not_empty_clients_list "," basic_auth
171                        | not_empty_clients_list ","
172
173  basic_auth ::= "{" clients_params "}"
174
175  clients_params ::= clients_param
176                | clients_params "," clients_param
177                | clients_params ","
178
179  clients_param ::= user
180               | user_file
181               | password
182               | password_file
183               | user_context
184               | comment
185               | unknown_map_entry
186
187  user ::= "user" ":" STRING
188
189  user_file ::= "user-file" ":" STRING
190
191  password ::= "password" ":" STRING
192
193  password_file ::= "password-file" ":" STRING
194
195  loggers ::= "loggers" ":" "[" loggers_entries "]"
196
197  loggers_entries ::= logger_entry
198                 | loggers_entries "," logger_entry
199                 | loggers_entries ","
200
201  logger_entry ::= "{" logger_params "}"
202
203  logger_params ::= logger_param
204               | logger_params "," logger_param
205               | logger_params ","
206
207  logger_param ::= name
208              | output_options_list
209              | debuglevel
210              | severity
211              | user_context
212              | comment
213              | unknown_map_entry
214
215  name ::= "name" ":" STRING
216
217  debuglevel ::= "debuglevel" ":" INTEGER
218
219  severity ::= "severity" ":" STRING
220
221  output_options_list ::= "output-options" ":" "[" output_options_list_content "]"
222
223  output_options_list_content ::= output_entry
224                             | output_options_list_content "," output_entry
225                             | output_options_list_content ","
226
227  output_entry ::= "{" output_params_list "}"
228
229  output_params_list ::= output_params
230                    | output_params_list "," output_params
231                    | output_params_list ","
232
233  output_params ::= output
234               | flush
235               | maxsize
236               | maxver
237               | pattern
238
239  output ::= "output" ":" STRING
240
241  flush ::= "flush" ":" BOOLEAN
242
243  maxsize ::= "maxsize" ":" INTEGER
244
245  maxver ::= "maxver" ":" INTEGER
246
247  pattern ::= "pattern" ":" STRING

BNF Grammar for DHCP-DDNS

This grammar is generated from d2_parser.yy. See The DHCP-DDNS Server for more details.

  1  Grammar
  2
  3  $accept ::= start EOF
  4
  5  start ::= TOPLEVEL_JSON sub_json
  6
  7  start ::= TOPLEVEL_DHCPDDNS syntax_map
  8
  9  start ::= SUB_DHCPDDNS sub_dhcpddns
 10
 11  start ::= SUB_TSIG_KEY sub_tsig_key
 12
 13  start ::= SUB_TSIG_KEYS sub_tsig_keys
 14
 15  start ::= SUB_DDNS_DOMAIN sub_ddns_domain
 16
 17  start ::= SUB_DDNS_DOMAINS sub_ddns_domains
 18
 19  start ::= SUB_DNS_SERVER sub_dns_server
 20
 21  start ::= SUB_DNS_SERVERS sub_dns_servers
 22
 23  start ::= SUB_HOOKS_LIBRARY sub_hooks_library
 24
 25  value ::= INTEGER
 26       | FLOAT
 27       | BOOLEAN
 28       | STRING
 29       | NULL
 30       | map2
 31       | list_generic
 32
 33  sub_json ::= value
 34
 35  map2 ::= "{" map_content "}"
 36
 37  map_value ::= map2
 38
 39  map_content ::=
 40             | not_empty_map
 41
 42  not_empty_map ::= STRING ":" value
 43               | not_empty_map "," STRING ":" value
 44               | not_empty_map ","
 45
 46  list_generic ::= "[" list_content "]"
 47
 48  list_content ::=
 49              | not_empty_list
 50
 51  not_empty_list ::= value
 52                | not_empty_list "," value
 53                | not_empty_list ","
 54
 55  unknown_map_entry ::= STRING ":"
 56
 57  syntax_map ::= "{" global_object "}"
 58
 59  global_object ::= "DhcpDdns" ":" "{" dhcpddns_params "}"
 60               | global_object_comma
 61
 62  global_object_comma ::= global_object ","
 63
 64  sub_dhcpddns ::= "{" dhcpddns_params "}"
 65
 66  dhcpddns_params ::= dhcpddns_param
 67                 | dhcpddns_params "," dhcpddns_param
 68                 | dhcpddns_params ","
 69
 70  dhcpddns_param ::= ip_address
 71                | port
 72                | dns_server_timeout
 73                | ncr_protocol
 74                | ncr_format
 75                | forward_ddns
 76                | reverse_ddns
 77                | tsig_keys
 78                | control_socket
 79                | control_sockets
 80                | hooks_libraries
 81                | loggers
 82                | user_context
 83                | comment
 84                | unknown_map_entry
 85
 86  ip_address ::= "ip-address" ":" STRING
 87
 88  port ::= "port" ":" INTEGER
 89
 90  dns_server_timeout ::= "dns-server-timeout" ":" INTEGER
 91
 92  ncr_protocol ::= "ncr-protocol" ":" ncr_protocol_value
 93
 94  ncr_protocol_value ::= "UDP"
 95                    | "TCP"
 96
 97  ncr_format ::= "ncr-format" ":" "JSON"
 98
 99  user_context ::= "user-context" ":" map_value
100
101  comment ::= "comment" ":" STRING
102
103  forward_ddns ::= "forward-ddns" ":" "{" ddns_mgr_params "}"
104
105  reverse_ddns ::= "reverse-ddns" ":" "{" ddns_mgr_params "}"
106
107  ddns_mgr_params ::=
108                 | not_empty_ddns_mgr_params
109
110  not_empty_ddns_mgr_params ::= ddns_mgr_param
111                           | ddns_mgr_params "," ddns_mgr_param
112                           | ddns_mgr_params ","
113
114  ddns_mgr_param ::= ddns_domains
115                | unknown_map_entry
116
117  ddns_domains ::= "ddns-domains" ":" "[" ddns_domain_list "]"
118
119  sub_ddns_domains ::= "[" ddns_domain_list "]"
120
121  ddns_domain_list ::=
122                  | not_empty_ddns_domain_list
123
124  not_empty_ddns_domain_list ::= ddns_domain
125                            | not_empty_ddns_domain_list "," ddns_domain
126                            | not_empty_ddns_domain_list ","
127
128  ddns_domain ::= "{" ddns_domain_params "}"
129
130  sub_ddns_domain ::= "{" ddns_domain_params "}"
131
132  ddns_domain_params ::= ddns_domain_param
133                    | ddns_domain_params "," ddns_domain_param
134                    | ddns_domain_params ","
135
136  ddns_domain_param ::= ddns_domain_name
137                   | ddns_key_name
138                   | dns_servers
139                   | user_context
140                   | comment
141                   | unknown_map_entry
142
143  ddns_domain_name ::= "name" ":" STRING
144
145  ddns_key_name ::= "key-name" ":" STRING
146
147  dns_servers ::= "dns-servers" ":" "[" dns_server_list "]"
148
149  sub_dns_servers ::= "[" dns_server_list "]"
150
151  dns_server_list ::= dns_server
152                 | dns_server_list "," dns_server
153                 | dns_server_list ","
154
155  dns_server ::= "{" dns_server_params "}"
156
157  sub_dns_server ::= "{" dns_server_params "}"
158
159  dns_server_params ::= dns_server_param
160                   | dns_server_params "," dns_server_param
161                   | dns_server_params ","
162
163  dns_server_param ::= dns_server_hostname
164                  | dns_server_ip_address
165                  | dns_server_port
166                  | ddns_key_name
167                  | user_context
168                  | comment
169                  | unknown_map_entry
170
171  dns_server_hostname ::= "hostname" ":" STRING
172
173  dns_server_ip_address ::= "ip-address" ":" STRING
174
175  dns_server_port ::= "port" ":" INTEGER
176
177  tsig_keys ::= "tsig-keys" ":" "[" tsig_keys_list "]"
178
179  sub_tsig_keys ::= "[" tsig_keys_list "]"
180
181  tsig_keys_list ::=
182                | not_empty_tsig_keys_list
183
184  not_empty_tsig_keys_list ::= tsig_key
185                          | not_empty_tsig_keys_list "," tsig_key
186                          | not_empty_tsig_keys_list ","
187
188  tsig_key ::= "{" tsig_key_params "}"
189
190  sub_tsig_key ::= "{" tsig_key_params "}"
191
192  tsig_key_params ::= tsig_key_param
193                 | tsig_key_params "," tsig_key_param
194                 | tsig_key_params ","
195
196  tsig_key_param ::= tsig_key_name
197                | tsig_key_algorithm
198                | tsig_key_digest_bits
199                | tsig_key_secret
200                | tsig_key_secret_file
201                | user_context
202                | comment
203                | unknown_map_entry
204
205  tsig_key_name ::= "name" ":" STRING
206
207  tsig_key_algorithm ::= "algorithm" ":" STRING
208
209  tsig_key_digest_bits ::= "digest-bits" ":" INTEGER
210
211  tsig_key_secret ::= "secret" ":" STRING
212
213  tsig_key_secret_file ::= "secret-file" ":" STRING
214
215  control_socket ::= "control-socket" ":" "{" control_socket_params "}"
216
217  control_sockets ::= "control-sockets" ":" "[" control_socket_list "]"
218
219  control_socket_list ::=
220                     | not_empty_control_socket_list
221
222  not_empty_control_socket_list ::= control_socket_entry
223                               | not_empty_control_socket_list "," control_socket_entry
224                               | not_empty_control_socket_list ","
225
226  control_socket_entry ::= "{" control_socket_params "}"
227
228  control_socket_params ::= control_socket_param
229                       | control_socket_params "," control_socket_param
230                       | control_socket_params ","
231
232  control_socket_param ::= control_socket_type
233                      | control_socket_name
234                      | control_socket_address
235                      | control_socket_port
236                      | authentication
237                      | trust_anchor
238                      | cert_file
239                      | key_file
240                      | cert_required
241                      | user_context
242                      | comment
243                      | unknown_map_entry
244
245  control_socket_type ::= "socket-type" ":" control_socket_type_value
246
247  control_socket_type_value ::= "unix"
248                           | "http"
249                           | "https"
250
251  control_socket_name ::= "socket-name" ":" STRING
252
253  control_socket_address ::= "socket-address" ":" STRING
254
255  control_socket_port ::= "socket-port" ":" INTEGER
256
257  trust_anchor ::= "trust-anchor" ":" STRING
258
259  cert_file ::= "cert-file" ":" STRING
260
261  key_file ::= "key-file" ":" STRING
262
263  cert_required ::= "cert-required" ":" BOOLEAN
264
265  authentication ::= "authentication" ":" "{" auth_params "}"
266
267  auth_params ::= auth_param
268             | auth_params "," auth_param
269             | auth_params ","
270
271  auth_param ::= auth_type
272            | realm
273            | directory
274            | clients
275            | comment
276            | user_context
277            | unknown_map_entry
278
279  auth_type ::= "type" ":" auth_type_value
280
281  auth_type_value ::= "basic"
282
283  realm ::= "realm" ":" STRING
284
285  directory ::= "directory" ":" STRING
286
287  clients ::= "clients" ":" "[" clients_list "]"
288
289  clients_list ::=
290              | not_empty_clients_list
291
292  not_empty_clients_list ::= basic_auth
293                        | not_empty_clients_list "," basic_auth
294                        | not_empty_clients_list ","
295
296  basic_auth ::= "{" clients_params "}"
297
298  clients_params ::= clients_param
299                | clients_params "," clients_param
300                | clients_params ","
301
302  clients_param ::= user
303               | user_file
304               | password
305               | password_file
306               | user_context
307               | comment
308               | unknown_map_entry
309
310  user ::= "user" ":" STRING
311
312  user_file ::= "user-file" ":" STRING
313
314  password ::= "password" ":" STRING
315
316  password_file ::= "password-file" ":" STRING
317
318  hooks_libraries ::= "hooks-libraries" ":" "[" hooks_libraries_list "]"
319
320  hooks_libraries_list ::=
321                      | not_empty_hooks_libraries_list
322
323  not_empty_hooks_libraries_list ::= hooks_library
324                                | not_empty_hooks_libraries_list "," hooks_library
325                                | not_empty_hooks_libraries_list ","
326
327  hooks_library ::= "{" hooks_params "}"
328
329  sub_hooks_library ::= "{" hooks_params "}"
330
331  hooks_params ::= hooks_param
332              | hooks_params "," hooks_param
333              | hooks_params ","
334              | unknown_map_entry
335
336  hooks_param ::= library
337             | parameters
338
339  library ::= "library" ":" STRING
340
341  parameters ::= "parameters" ":" map_value
342
343  loggers ::= "loggers" ":" "[" loggers_entries "]"
344
345  loggers_entries ::= logger_entry
346                 | loggers_entries "," logger_entry
347                 | loggers_entries ","
348
349  logger_entry ::= "{" logger_params "}"
350
351  logger_params ::= logger_param
352               | logger_params "," logger_param
353               | logger_params ","
354
355  logger_param ::= name
356              | output_options_list
357              | debuglevel
358              | severity
359              | user_context
360              | comment
361              | unknown_map_entry
362
363  name ::= "name" ":" STRING
364
365  debuglevel ::= "debuglevel" ":" INTEGER
366
367  severity ::= "severity" ":" STRING
368
369  output_options_list ::= "output-options" ":" "[" output_options_list_content "]"
370
371  output_options_list_content ::= output_entry
372                             | output_options_list_content "," output_entry
373                             | output_options_list_content ","
374
375  output_entry ::= "{" output_params_list "}"
376
377  output_params_list ::= output_params
378                    | output_params_list "," output_params
379                    | output_params_list ","
380
381  output_params ::= output
382               | flush
383               | maxsize
384               | maxver
385               | pattern
386
387  output ::= "output" ":" STRING
388
389  flush ::= "flush" ":" BOOLEAN
390
391  maxsize ::= "maxsize" ":" INTEGER
392
393  maxver ::= "maxver" ":" INTEGER
394
395  pattern ::= "pattern" ":" STRING

BNF Grammar for the Kea NETCONF Agent

This grammar is generated from netconf_parser.yy. See YANG/NETCONF for more details.

  1  Grammar
  2
  3  $accept ::= start EOF
  4
  5  start ::= START_JSON json
  6
  7  start ::= START_NETCONF netconf_syntax_map
  8
  9  start ::= START_SUB_NETCONF sub_netconf
 10
 11  sub_netconf ::= "{" global_params "}"
 12
 13  json ::= value
 14
 15  value ::= INTEGER
 16       | FLOAT
 17       | BOOLEAN
 18       | STRING
 19       | NULL
 20       | map
 21       | list_generic
 22
 23  map ::= "{" map_content "}"
 24
 25  map_value ::= map
 26
 27  map_content ::=
 28             | not_empty_map
 29
 30  not_empty_map ::= STRING ":" value
 31               | not_empty_map "," STRING ":" value
 32               | not_empty_map ","
 33
 34  list_generic ::= "[" list_content "]"
 35
 36  list_content ::=
 37              | not_empty_list
 38
 39  not_empty_list ::= value
 40                | not_empty_list "," value
 41                | not_empty_list ","
 42
 43  unknown_map_entry ::= STRING ":"
 44
 45  netconf_syntax_map ::= "{" global_object "}"
 46
 47  global_object ::= "Netconf" ":" "{" global_params "}"
 48               | global_object_comma
 49
 50  global_object_comma ::= global_object ","
 51
 52  global_params ::=
 53               | not_empty_global_params
 54
 55  not_empty_global_params ::= global_param
 56                         | not_empty_global_params "," global_param
 57                         | not_empty_global_params ","
 58
 59  global_param ::= boot_update
 60              | subscribe_changes
 61              | validate_changes
 62              | managed_servers
 63              | hooks_libraries
 64              | loggers
 65              | user_context
 66              | comment
 67              | unknown_map_entry
 68
 69  boot_update ::= "boot-update" ":" BOOLEAN
 70
 71  subscribe_changes ::= "subscribe-changes" ":" BOOLEAN
 72
 73  validate_changes ::= "validate-changes" ":" BOOLEAN
 74
 75  user_context ::= "user-context" ":" map_value
 76
 77  comment ::= "comment" ":" STRING
 78
 79  hooks_libraries ::= "hooks-libraries" ":" "[" hooks_libraries_list "]"
 80
 81  hooks_libraries_list ::=
 82                      | not_empty_hooks_libraries_list
 83
 84  not_empty_hooks_libraries_list ::= hooks_library
 85                                | not_empty_hooks_libraries_list "," hooks_library
 86                                | not_empty_hooks_libraries_list ","
 87
 88  hooks_library ::= "{" hooks_params "}"
 89
 90  hooks_params ::= hooks_param
 91              | hooks_params "," hooks_param
 92              | hooks_params ","
 93              | unknown_map_entry
 94
 95  hooks_param ::= library
 96             | parameters
 97
 98  library ::= "library" ":" STRING
 99
100  parameters ::= "parameters" ":" map_value
101
102  managed_servers ::= "managed-servers" ":" "{" servers_entries "}"
103
104  servers_entries ::=
105                 | not_empty_servers_entries
106
107  not_empty_servers_entries ::= server_entry
108                           | not_empty_servers_entries "," server_entry
109                           | not_empty_servers_entries ","
110
111  server_entry ::= dhcp4_server
112              | dhcp6_server
113              | d2_server
114              | ca_server
115              | unknown_map_entry
116
117  dhcp4_server ::= "dhcp4" ":" "{" managed_server_params "}"
118
119  dhcp6_server ::= "dhcp6" ":" "{" managed_server_params "}"
120
121  d2_server ::= "d2" ":" "{" managed_server_params "}"
122
123  ca_server ::= "ca" ":" "{" managed_server_params "}"
124
125  managed_server_params ::= managed_server_param
126                       | managed_server_params "," managed_server_param
127                       | managed_server_params ","
128
129  managed_server_param ::= model
130                      | boot_update
131                      | subscribe_changes
132                      | validate_changes
133                      | control_socket
134                      | user_context
135                      | comment
136                      | unknown_map_entry
137
138  model ::= "model" ":" STRING
139
140  control_socket ::= "control-socket" ":" "{" control_socket_params "}"
141
142  control_socket_params ::= control_socket_param
143                       | control_socket_params "," control_socket_param
144                       | control_socket_params ","
145
146  control_socket_param ::= socket_type
147                      | socket_name
148                      | socket_url
149                      | user_context
150                      | comment
151                      | unknown_map_entry
152
153  socket_type ::= "socket-type" ":" socket_type_value
154
155  socket_type_value ::= "unix"
156                   | "http"
157                   | "stdout"
158
159  socket_name ::= "socket-name" ":" STRING
160
161  socket_url ::= "socket-url" ":" STRING
162
163  loggers ::= "loggers" ":" "[" loggers_entries "]"
164
165  loggers_entries ::= logger_entry
166                 | loggers_entries "," logger_entry
167                 | loggers_entries ","
168
169  logger_entry ::= "{" logger_params "}"
170
171  logger_params ::= logger_param
172               | logger_params "," logger_param
173               | logger_params ","
174
175  logger_param ::= name
176              | output_options_list
177              | debuglevel
178              | severity
179              | user_context
180              | comment
181              | unknown_map_entry
182
183  name ::= "name" ":" STRING
184
185  debuglevel ::= "debuglevel" ":" INTEGER
186
187  severity ::= "severity" ":" STRING
188
189  output_options_list ::= "output-options" ":" "[" output_options_list_content "]"
190
191  output_options_list_content ::= output_entry
192                             | output_options_list_content "," output_entry
193                             | output_options_list_content ","
194
195  output_entry ::= "{" output_params_list "}"
196
197  output_params_list ::= output_params
198                    | output_params_list "," output_params
199                    | output_params_list ","
200
201  output_params ::= output
202               | flush
203               | maxsize
204               | maxver
205               | pattern
206
207  output ::= "output" ":" STRING
208
209  flush ::= "flush" ":" BOOLEAN
210
211  maxsize ::= "maxsize" ":" INTEGER
212
213  maxver ::= "maxver" ":" INTEGER
214
215  pattern ::= "pattern" ":" STRING