From: Andrei Pavel Date: Wed, 19 Apr 2023 14:58:06 +0000 (+0300) Subject: [#2804] make text edits consistent across the ARM X-Git-Tag: Kea-2.3.7~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab2388767215762edb8df0c592ae6c2182799879;p=thirdparty%2Fkea.git [#2804] make text edits consistent across the ARM --- diff --git a/.gitlab/issue_templates/release_checklist.md b/.gitlab/issue_templates/release_checklist.md index 9cbb673d43..8f439673aa 100644 --- a/.gitlab/issue_templates/release_checklist.md +++ b/.gitlab/issue_templates/release_checklist.md @@ -89,15 +89,15 @@ This is the last moment to freeze code! :snowflake: 1. which were updated? (save results) 1. Do any of the libraries from the current release have lower version than in the previous release? 1. Uninstall Kea, check what left (there should be just configuration files) - 1. Check if all of the installed binaries has man page - 1. if not, is it in the tarball? - 1. are man page up-to-date? + 1. Check if each of the installed binaries has a man page. + 1. If not, is the binary included in the tarball? That might explain it. + 1. Are man pages up to date? 1. Check if documentation is properly formatted, has correct versions and dates. - 1. it's advised to search for previous version numbers, some of them are statically added in statements that are no longer valid + 1. It's advised to search for previous version numbers, some of them are statically added in statements that are no longer valid. 1. [ ] Upload tarballs to repo.isc.org using Jenkins and send sanity checks request. 1. Go to [release-tarball-upload](https://jenkins.aws.isc.org/job/kea-dev/job/release-tarball-upload/) Jenkins job. - 1. Click "Build with Parameters" - 1. In field "Tarball" select picked tarball build + 1. Click "Build with Parameters". + 1. In field "Tarball" select picked tarball build. 1. In field "Release_Candidate" pick: 1. rc1 if this is the first selected build for release, it will push the selected tarballs to repo.isc.org, to a directory suffixed with indicated rc# 1. next rc# if this is a respin after some fixes (note: it is not possible to pick previous rc number - it will result in an error) diff --git a/doc/devel/config-backend.dox b/doc/devel/config-backend.dox index ced3aff88d..3d6929abe3 100644 --- a/doc/devel/config-backend.dox +++ b/doc/devel/config-backend.dox @@ -70,7 +70,7 @@ The following are some details of the JSON backend framework. in src/bin/dhcp4 and src/bin/dhcp6 directories.

-# The current JSON parser in @ref isc::data::Element::fromJSON() has been extended to allow optional - preprocessing. For now, that capability simply removes whole-line + preprocessing. For now, that capability simply removes whole-line comments starting with the hash character, but it is expected to grow over time (in-line comments and file inclusions are the obvious envisaged additions). This is implemented in @ref isc::data::Element::fromJSONFile.

diff --git a/doc/devel/congestion-handling.dox b/doc/devel/congestion-handling.dox index 55ad17e5f4..d9af2aafc7 100644 --- a/doc/devel/congestion-handling.dox +++ b/doc/devel/congestion-handling.dox @@ -55,7 +55,7 @@ always discarding the newest packets, we now always discard the oldest packets. The capacity of the buffer (i.e. the maximum number of packets the buffer can contain) is configurable. -@section custom-implementations Custom Packet Queues +@section custom-implementations Custom Packet Queues It is possible to replace the default packet queue implementation with a custom implementation by registering it with your Kea server via a hook @@ -143,7 +143,7 @@ an isc::data::MapElement instance containing the contents of the configuration element "dhcp-queue-control" from the Kea server's configuration. It will always have the following two values: --# "enable-queue" - used by isc::dhcp::IfaceMgr to know whether or not +-# "enable-queue" - used by isc::dhcp::IfaceMgr to know whether congestion handling is enabled. Your implementation need not do anything with this value. diff --git a/doc/devel/unit-tests.dox b/doc/devel/unit-tests.dox index 2ab129b9c5..178fe9734c 100644 --- a/doc/devel/unit-tests.dox +++ b/doc/devel/unit-tests.dox @@ -343,7 +343,7 @@ GRANT keatest=> \q @endverbatim - Now we should be able to log into the newly created database using both user + Now we should be able to log into the newly created database using both user names: @verbatim $ psql -d keatest -U keatest diff --git a/doc/examples/agent/simple.json b/doc/examples/agent/simple.json index f48a5ecca4..a7227de04f 100644 --- a/doc/examples/agent/simple.json +++ b/doc/examples/agent/simple.json @@ -115,7 +115,7 @@ // Some libraries may support parameters. Make sure you // type this section carefully, as the CA does not validate - // it (because the format is library specific). + // it (because the format is library-specific). "parameters": { "param1": "foo" } @@ -132,7 +132,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/ddns/all-keys-netconf.json b/doc/examples/ddns/all-keys-netconf.json index 27299a8847..2ea6fad859 100644 --- a/doc/examples/ddns/all-keys-netconf.json +++ b/doc/examples/ddns/all-keys-netconf.json @@ -3,7 +3,7 @@ // it may contain mutually exclusive configuration parameters. // // The primary purpose of the example file is to provide a comprehensive -// list of parameters supported by Kea DHCP-DDNS server along with the +// list of parameters supported by the Kea DHCP-DDNS server along with the // brief description of each parameter. // // This stable version is used for YANG as we do not want to update code @@ -37,7 +37,7 @@ // Command control socket configuration parameters for Kea DHCP-DDNS server. "control-socket": { - // Location of the unix domain socket file the DHCP-DDNS server uses + // Location of the UNIX domain socket file the DHCP-DDNS server uses // to receive control commands from the Kea Control Agent or the // local server administrator. "socket-name": "/tmp/kea-ddns-ctrl-socket", @@ -47,14 +47,14 @@ "socket-type": "unix" }, - // List of hooks libraries and their specific configuration parameters + // List of hook libraries and their specific configuration parameters // to be loaded by Kea DHCP-DDNS server. "hooks-libraries": [ { - // Location of the hooks library to be loaded. + // Location of the hook library to be loaded. "library": "/opt/local/ddns-server-commands.so", - // Hook library specific configuration parameters. + // Hook library-specific configuration parameters. "parameters": { } } ], @@ -145,7 +145,7 @@ "loggers": [ { // Debug level, a value between 0..99. The greater the value - // the more detailed debug log. + // the more detailed the debug log. "debuglevel": 99, // Name of the logger. @@ -154,16 +154,16 @@ // Configures how the log should be output. "output_options": [ { - // Determines whether the log should flushed to a file. + // Determines whether the log should be flushed to a file. "flush": true, - // Specifies maximum filesize before the file is being rotated. + // Specifies maximum filesize before the file is rotated. "maxsize": 10240000, - // Specifies the maximum number of rotated files being kept. + // Specifies the maximum number of rotated files to be kept. "maxver": 1, - // Specifies logging destination. + // Specifies the logging destination. "output": "stdout", // Specifies log entry content diff --git a/doc/examples/ddns/all-keys.json b/doc/examples/ddns/all-keys.json index 7de1703e32..674c9860cf 100644 --- a/doc/examples/ddns/all-keys.json +++ b/doc/examples/ddns/all-keys.json @@ -3,11 +3,11 @@ // it may contain mutually exclusive configuration parameters. // // The primary purpose of the example file is to provide a comprehensive -// list of parameters supported by Kea DHCP-DDNS server along with the +// list of parameters supported by the Kea DHCP-DDNS server along with the // brief description of each parameter. // // This current version should be up to date, i.e. new keywords should be -// added in this file at the same time than in the syntax. +// added in this file at the same time as in the parser specification. { // Kea DHCP-DDNS server configuration begins here. "DhcpDdns": { @@ -37,7 +37,7 @@ // Command control socket configuration parameters for Kea DHCP-DDNS server. "control-socket": { - // Location of the unix domain socket file the DHCP-DDNS server uses + // Location of the UNIX domain socket file the DHCP-DDNS server uses // to receive control commands from the Kea Control Agent or the // local server administrator. "socket-name": "/tmp/kea-ddns-ctrl-socket", @@ -47,14 +47,14 @@ "socket-type": "unix" }, - // List of hooks libraries and their specific configuration parameters + // List of hook libraries and their specific configuration parameters // to be loaded by Kea DHCP-DDNS server. "hooks-libraries": [ { - // Location of the hooks library to be loaded. + // Location of the hook library to be loaded. "library": "/opt/local/ddns-server-commands.so", - // Hook library specific configuration parameters. + // Hook library-specific configuration parameters. "parameters": { } } ], @@ -145,7 +145,7 @@ "loggers": [ { // Debug level, a value between 0..99. The greater the value - // the more detailed debug log. + // the more detailed the debug log. "debuglevel": 99, // Name of the logger. @@ -154,16 +154,16 @@ // Configures how the log should be output. "output_options": [ { - // Determines whether the log should flushed to a file. + // Determines whether the log should be flushed to a file. "flush": true, - // Specifies maximum filesize before the file is being rotated. + // Specifies maximum filesize before the file is rotated. "maxsize": 10240000, - // Specifies the maximum number of rotated files being kept. + // Specifies the maximum number of rotated files to be kept. "maxver": 1, - // Specifies logging destination. + // Specifies the logging destination. "output": "stdout", // Specifies log entry content diff --git a/doc/examples/ddns/sample1.json b/doc/examples/ddns/sample1.json index 382c4a92fb..d15486e0ec 100644 --- a/doc/examples/ddns/sample1.json +++ b/doc/examples/ddns/sample1.json @@ -11,7 +11,7 @@ // -------------- Global Parameters ---------------- // // D2 will listen for update requests for Kea DHCP servers at 127.0.0.1 -// on port 53001. Maximum time to we will wait for a DNS server to +// on port 53001. Maximum time to we will wait for a DNS server to // respond to us is 1000 ms. "ip-address": "127.0.0.1", @@ -52,7 +52,7 @@ // Some libraries may support parameters. Make sure you // type this section carefully, as the CA does not validate - // it (because the format is library specific). + // it (because the format is library-specific). "parameters": { "param1": "foo" @@ -66,7 +66,7 @@ // 1. Zone - "four.example.com. // It uses TSIG, key name is "d2.md5.key" // It is served by one DNS server which listens for DDNS requests at -// 172.16.1.1 on the default port 53 (standard DNS port) +// 172.16.1.1 on the default port 53 (standard DNS port) // // 2. Zone - "six.example.com." // It does not use TSIG. @@ -167,7 +167,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/kea4/advanced.json b/doc/examples/kea4/advanced.json index 4b25f46cee..81d182a00f 100644 --- a/doc/examples/kea4/advanced.json +++ b/doc/examples/kea4/advanced.json @@ -35,7 +35,7 @@ // interface the query came in. This is the default ("same-as-inbound"). // However, sometimes it is useful to have the ability to send the // packet as plain UDP packet and let the kernel and the routing tables - // determine the right interface ("use-routing"). This option only works + // determine the right interface ("use-routing"). This option only works // for "dhcp-socket-type" set to "udp" and is ignored otherwise. "outbound-interface": "use-routing", @@ -75,7 +75,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. - // We'll use memfile because it doesn't require any prior set up. + // We'll use memfile because it doesn't require any prior set up. // For memfile, it's important to always specify lfc-interval, so // the lease file would not grow without bounds and be sanitized // once per hour. @@ -186,7 +186,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/kea4/all-keys-netconf.json b/doc/examples/kea4/all-keys-netconf.json index d23c2a8fff..2f63bf6943 100644 --- a/doc/examples/kea4/all-keys-netconf.json +++ b/doc/examples/kea4/all-keys-netconf.json @@ -87,7 +87,7 @@ // Third class name. "name": "late", - // Boolean flag indicating that the class expression is only evaluated + // Boolean flag indicating whether the class expression is only evaluated // when the class is required, e.g. the selected address pool configuration // includes this class name in its "require-client-classes" list. The // default value false means that the class test expression must @@ -118,7 +118,7 @@ "ignore-rai-link-selection": false, // Parse options more leniently where fields can be deduced - // deterministically even if against RFC or common practice. + // deterministically, even if against RFC or common practice. "lenient-option-parsing": true }, @@ -138,30 +138,30 @@ // It may be specified at the global, shared-network, and subnet levels. "ddns-generated-prefix": "myhost", - // Boolean flag indicating that the server should ignore DHCP client + // Boolean flag indicating whether the server should ignore DHCP client // wishes to update DNS on its own. With that flag set to true, // the server will send DNS updates for both forward and // reverse DNS data. The default value is false, which indicates - // that the server will delegate DNS update to the client when + // that the server will delegate a DNS update to the client when // requested. It may be specified at the global, shared-network, // and subnet levels. "ddns-override-client-update": false, - // Boolean flag indicating that the server should override the DHCP + // Boolean flag indicating whether the server should override the DHCP // client's wish to not update the DNS. With this parameter - // set to true, the server will send DNS update even when + // set to true, the server will send a DNS update even when // the client requested no update. It may be specified at the // global, shared-network, and subnet levels. "ddns-override-no-update": false, // Suffix appended to the partial name sent to the DNS. The - // default value is an empty string which indicates that no + // default value is an empty string, which indicates that no // suffix is appended. It may be specified at the global, // shared-network, and subnet levels. "ddns-qualifying-suffix": "", // Enumeration specifying whether the server should honor - // hostname or Client FQDN sent by the client, or replace + // the hostname or Client FQDN sent by the client or replace // this name. The acceptable values are: "never" (use the // name the client sent), "always" (replace the name the // client sent), "when-present" (replace the name the client @@ -186,8 +186,8 @@ // may be specified at the global, shared-network, and subnet levels. "ddns-update-on-renew": true, - // Boolean flag, which is passed to kea-dhcp-ddns with each DDNS - // update request to indicate whether DNS update conflict + // Boolean flag which is passed to kea-dhcp-ddns with each DDNS + // update request, to indicate whether DNS update conflict // resolution as described in RFC 4703 should be employed for the // given update request. The default value for this flag is true. // It may be specified at the global, shared-network, and subnet levels. @@ -197,11 +197,11 @@ // excluded from DHCP assignments. The default value is 86400 (24 hours). "decline-probation-period": 86400, - // Name Change Request forwarding configuration for Kea DHCPv4 server. + // Name Change Request forwarding configuration for the Kea DHCPv4 server. // NCRs are sent to the Kea D2 module to update DNS upon allocation of // DHCP leases. "dhcp-ddns": { - // Boolean flag indicating if Kea DHCPv4 server should connect to + // Boolean flag indicating whether Kea DHCPv4 server should connect to // kea-dhcp-ddns. This must be true for NCRs to be created and // sent to kea-dhcp-ddns. By default, NCRs are not generated. "enable-updates": false, @@ -218,12 +218,12 @@ // only UDP is supported. "ncr-protocol": "UDP", - // IP address that Kea DHCPv4 server should use to send + // IP address that the Kea DHCPv4 server should use to send // NCRs to D2. The default value of zero indicates that Kea // should pick a suitable address. "sender-ip": "0.0.0.0", - // Port number that Kea DHCPv4 server should use to send + // Port number that the Kea DHCPv4 server should use to send // NCRs to D2. The default value of zero indicates that Kea // should pick a suitable port. "sender-port": 0, @@ -254,7 +254,7 @@ "dhcp4o6-port": 6767, // Boolean flag indicating whether the Kea DHCPv4 server - // should send back Client Identifier option in its responses. + // should send back the Client Identifier option in its responses. // The default value is true, which indicates that the option // must be sent back if the client included it. The false // value instructs the server to not send this option for @@ -265,11 +265,11 @@ // Collection of Kea DHCPv4 server parameters configuring how // the server should process expired DHCP leases. "expired-leases-processing": { - // Specifies the number of seconds since last removal of - // the expired leases, when next removal should occur. + // Specifies the number of seconds since the last removal of + // the expired leases, when the next removal should occur. // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release - // message the lease is expired instead of being deleted from the + // message the lease is expired instead of being deleted from // lease storage. "flush-reclaimed-timer-wait-time": 25, @@ -277,30 +277,28 @@ // leases in the lease database (lease affinity). // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release - // message the lease is expired instead of being deleted from the + // message the lease is expired instead of being deleted from // lease storage. "hold-reclaimed-time": 3600, // Specifies the maximum number of expired leases that can be - // processed in a single attempt to clean up the expired - // leases from the lease database. If there are more + // processed in a single attempt to clean up expired leases + // from the lease database. If there are more // expired leases, they will be processed during the next // cleanup attempt. "max-reclaim-leases": 100, - // Specifies the maximum time in milliseconds that a single - // attempt to cleanup the lease database from the expired - // leases may take. + // Specifies the maximum time in milliseconds that a single attempt + // to clean up expired leases from the lease database may take. "max-reclaim-time": 250, - // Specifies the time period in seconds since the last attempt + // Specifies the length of time in seconds since the last attempt // to process expired leases before initiating the next attempt. "reclaim-timer-wait-time": 10, - // Specifies the maximum number of expired lease-processing - // cycles which didn't result in full cleanup of expired leases - // from the lease database, after which a - // warning message is issued. + // Specifies the maximum number of expired lease-processing cycles + // which didn't result in full cleanup of exired leases from the + // lease database, after which a warning message is issued. "unwarned-reclaim-cycles": 5 }, @@ -375,7 +373,7 @@ // Connection reconnect wait time. // This parameter governs how long Kea waits before attempting - // to reconnect, expressed in milliseconds. The default is 0 + // to reconnect. Expressed in milliseconds. The default is 0 // (disabled) for MySQL and PostgreSQL. "reconnect-wait-time": 3000, @@ -387,7 +385,7 @@ // serve-retry-continue "on-fail": "stop-retry-exit", - // Connection connect timeout. + // Connection connect timeout in seconds. "connect-timeout": 100 } ], @@ -397,7 +395,7 @@ // DHCP clients. All identifiers are used by default, which // means that the server will issue multiple queries to the // database to find if there is a reservation for a particular - // client. If the particular deployment uses only a subset, e.g. + // client. If a particular deployment uses only a subset, e.g. // one identifier type, this identifier should be only listed // here to prevent unnecessary queries to the database. "host-reservation-identifiers": [ @@ -412,7 +410,7 @@ // server is listening to the DHCP queries. "interfaces-config": { // Specifies whether the server should use "udp" sockets or - // "raw" sockets to listen to the DHCP traffic. The "raw" + // "raw" sockets to listen to DHCP traffic. The "raw" // sockets are useful when direct DHCP traffic is being // received. "dhcp-socket-type": "udp", @@ -424,7 +422,7 @@ ], // Enumeration which indicates what interface should be used - // to send DHCP response to the client. The default value is + // to send DHCP responses to the client. The default value is // "same-as-inbound", which indicates that the response should // be sent via the interface on which the client's query // was received. The "use-routing" value indicates that the @@ -432,7 +430,7 @@ // suitable interface. "outbound-interface": "same-as-inbound", - // Boolean flag indicating if the available interfaces should + // Boolean flag indicating whether the available interfaces should // be re-detected upon server reconfiguration. The default value // is true, which means that the interfaces are always // re-detected. @@ -516,9 +514,9 @@ "type": "memfile" }, - // Boolean value indicating whether the Kea DHCPv4 server should use client + // Boolean value indicating whether the Kea DHCPv4 server should use the client // identifier value sent by the client or ignore it. The default value - // is true, which indicates that the server should use a client identifier + // is true, which indicates that the server should use the client identifier // and that it takes precedence over the client's MAC address. In deployments // where MAC address should take precedence, this value can be set to // false, in which case the clients will be identified by MAC address. @@ -542,7 +540,7 @@ // kea-dhcp4 from building an insurmountable backlog of updates. "parked-packet-limit": 128, - // List of global DHCP options that Kea DHCPv4 server assigns to the + // List of global DHCP options that the Kea DHCPv4 server assigns to // clients. "option-data": [ { @@ -618,7 +616,7 @@ ], // Global value for the rebind timer, i.e. the time after which the - // DHCP client enters rebind state if it fails to renew the lease. + // DHCP client enters the rebind state if it fails to renew the lease. "rebind-timer": 40, // Global value for the renew timer, i.e. the time after which the @@ -675,8 +673,8 @@ // whether to upgrade from the old format. The following values // are supported: "none" (don't attempt to correct or upgrade // the extended info), "fix" (fix common inconsistencies and - // upgrade from old format; this is the default), "strict" - // (fix inconsistencies with an impact on Lease Query), + // upgrade from the old format; this is the default), "strict" + // (fix inconsistencies with an impact on Leasequery), // "pedantic" (enforce full Kea code format). "extended-info-checks": "fix" }, @@ -685,10 +683,10 @@ // networks group subnets together. "shared-networks": [ { - // Shared network-level authoritative flag. + // Shared-network level authoritative flag. "authoritative": false, - // Shared network-level bootfile name. + // Shared-network level bootfile name. "boot-file-name": "/dev/null", // Restricts this shared network to allow only clients @@ -696,48 +694,48 @@ // empty string is provided, no restriction is applied. "client-class": "", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-generated-prefix": "myhost", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-client-update": false, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-no-update": false, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-qualifying-suffix": "", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-replace-client-name": "never", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-send-updates": true, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-update-on-renew": true, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-use-conflict-resolution": true, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-replacement": "x", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-set": "[^A-Za-z0-9.-]", // Specifies that this shared network is selected for // requests received on a particular interface. "interface": "eth0", - // Shared network-level flag specifying whether the client + // Shared-network level flag specifying whether the client // identifier should be used for identifying clients. "match-client-id": true, // Shared network name. "name": "my-secret-network", - // Shared network-level specification of the next server + // Shared-network level specification of the next server // to be sent in 'siaddr'. "next-server": "192.0.2.123", @@ -750,13 +748,13 @@ "ip-addresses": [] }, - // Shared network-level rebind timer. + // Shared-network level rebind timer. "rebind-timer": 41, - // Shared network-level renew timer. + // Shared-network level renew timer. "renew-timer": 31, - // Shared network-level compute T1 and T2 timers. + // Shared-network level compute T1 and T2 timers. "calculate-tee-times": true, // T1 = valid lifetime * .5. @@ -780,13 +778,13 @@ // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should look up global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should look up in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "subnet4" levels. @@ -800,7 +798,7 @@ // information) with each lease for this shared network. "store-extended-info": false, - // Shared network-level server hostname set in 'sname' field. + // Shared-network level server hostname set in 'sname' field. "server-hostname": "", // List of IPv4 subnets belonging to this shared network. @@ -879,16 +877,16 @@ // Subnet-level list of DHCP options. "option-data": [ { - // Boolean flag indicating if the particular option + // Boolean flag indicating whether the particular option // should be always sent or sent only when requested. "always-send": false, // Option code. "code": 3, - // Boolean flag indicating if the option value specified - // in "data" is a string of hexadecimal values or a - // human-readable CSV value. + // Boolean flag indicating whether the option value specified + // in "data" is a string of hexadecimal values or human-readable + // CSV value. "csv-format": true, // Option data to be included in the option payload. @@ -897,7 +895,7 @@ // Option name. "name": "routers", - // Boolean flag indicating if the given option is never + // Boolean flag indicating whether the given option is never // sent in response. "never-send": false, @@ -962,13 +960,13 @@ // "reservations-in-subnet", and // "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved + // Specify whether the server can assume that all reserved // addresses are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, @@ -1036,7 +1034,7 @@ } ], - // Shared network-level (default) valid lifetime. + // Shared-network level (default) valid lifetime. "valid-lifetime": 6001, // Subnet-level min valid lifetime. @@ -1053,7 +1051,7 @@ // List of IPv4 subnets which don't belong to any shared network. "subnet4": [], - // Global valid (default) lifetime value. + // Global valid lifetime value. "valid-lifetime": 6000, // Global min valid lifetime value. @@ -1078,7 +1076,7 @@ "type": "mysql" } ], - // Intervals between attempts to fetch configuration updates + // Interval between attempts to fetch configuration updates // via the configuration backends used. "config-fetch-wait-time": 30 }, @@ -1103,13 +1101,13 @@ // It is replaced by the "reservations-global", // "reservations-in-subnet", and "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and diff --git a/doc/examples/kea4/all-keys.json b/doc/examples/kea4/all-keys.json index 42af2ee149..98dc9a431b 100644 --- a/doc/examples/kea4/all-keys.json +++ b/doc/examples/kea4/all-keys.json @@ -3,15 +3,14 @@ // mutually exclusive configuration parameters. // // The primary purpose of the example file is to provide a comprehensive -// list of parameters supported by the Kea DHCPv4 server, along with the brief +// list of parameters supported by the Kea DHCPv4 server, along with a brief // description of each parameter. // -// This current version should be up-to-date, i.e. new keywords should be -// added in this file at the same time as in the syntax. +// This current version should be up to date, i.e. new keywords should be +// added in this file at the same time as in the parser specification. { // Kea DHCPv4 server configuration begins here. "Dhcp4": { - // Global flag selecting an IP address allocation strategy for all // subnets. Use "random" for a random allocation strategy. "allocator": "iterative", @@ -61,7 +60,7 @@ "max-valid-lifetime": 8000, // If greater than zero, it is the lifetime of leases temporarily allocated - // on DISCOVER. When zero (the default), leases are not allocated on DISCOVER. + // on DISCOVER. When zero (the default), leases are not allocated on DISCOVER. "offer-lifetime" : 65 }, { @@ -95,7 +94,7 @@ // Third class name. "name": "late", - // Boolean flag indicating that the class expression is only evaluated + // Boolean flag indicating whether the class expression is only evaluated // when the class is required, e.g. the selected address pool configuration // includes this class name in its "require-client-classes" list. The // default value false means that the class test expression must @@ -143,7 +142,7 @@ "exclude-first-last-24": false }, - // Command control socket configuration parameters for Kea DHCPv4 server. + // Command control socket configuration parameters for the Kea DHCPv4 server. "control-socket": { // Location of the UNIX domain socket file the DHCPv4 server uses // to receive control commands from the Kea Control Agent or the @@ -159,18 +158,18 @@ // It may be specified at the global, shared-network, and subnet levels. "ddns-generated-prefix": "myhost", - // Boolean flag indicating that the server should ignore DHCP client + // Boolean flag indicating whether the server should ignore DHCP client // wishes to update DNS on its own. With that flag set to true, // the server will send DNS updates for both forward and // reverse DNS data. The default value is false, which indicates - // that the server will delegate DNS updates to the client when + // that the server will delegate a DNS update to the client when // requested. It may be specified at the global, shared-network, // and subnet levels. "ddns-override-client-update": false, - // Boolean flag indicating that the server should override a DHCP + // Boolean flag indicating whether the server should override the DHCP // client's wish to not update the DNS. With this parameter - // set to true, the server will send DNS updates even when + // set to true, the server will send a DNS update even when // the client requested no update. It may be specified at the // global, shared-network, and subnet levels. "ddns-override-no-update": false, @@ -200,7 +199,7 @@ // to kea-dhcp-ddns. "ddns-send-updates": true, - // Boolean flag which when true instructs the server to always + // Boolean flag, which when true instructs the server to always // update DNS when leases are renewed, even if the DNS information // has not changed. The server's default behavior (i.e. flag is false) // is to only update DNS if the DNS information has changed. It @@ -223,11 +222,11 @@ "decline-probation-period": 86400, // Name Change Request forwarding configuration for the Kea DHCPv4 server. - // NCRs are sent to the Kea D2 module to update DNS upon allocation of the + // NCRs are sent to the Kea D2 module to update DNS upon allocation of // DHCP leases. "dhcp-ddns": { - // Boolean flag indicating if Kea DHCPv4 server should connect to - // kea-dhcp-ddns. This must be true for NCRs to be created and + // Boolean flag indicating whether Kea DHCPv4 server should connect to + // kea-dhcp-ddns. This must be true for NCRs to be created and // sent to kea-dhcp-ddns. By default, NCRs are not generated. "enable-updates": false, @@ -243,12 +242,12 @@ // only UDP is supported. "ncr-protocol": "UDP", - // IP address that Kea DHCPv4 server should use to send + // IP address that the Kea DHCPv4 server should use to send // NCRs to D2. The default value of zero indicates that Kea // should pick a suitable address. "sender-ip": "0.0.0.0", - // Port number that Kea DHCPv4 server should use to send + // Port number that the Kea DHCPv4 server should use to send // NCRs to D2. The default value of zero indicates that Kea // should pick a suitable port. "sender-port": 0, @@ -259,7 +258,7 @@ // Port number on which D2 listens for NCRs. "server-port": 53001, - // The follow parameters are DEPRECATED. They have been + // The following parameters are DEPRECATED. They have been // replaced with parameters that may be set at the global, // shared-network, and subnet4 scopes. They are listed here // as configuration parsing still accepts them. Eventually @@ -291,7 +290,7 @@ // the server should process expired DHCP leases. "expired-leases-processing": { // Specifies the number of seconds since the last removal of - // the expired leases when the next removal should occur. + // the expired leases, when the next removal should occur. // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release // message the lease is expired instead of being deleted from @@ -313,19 +312,17 @@ // cleanup attempt. "max-reclaim-leases": 100, - // Specifies the maximum time in milliseconds that a single - // attempt to clean up expired leases from the lease - // database may take. + // Specifies the maximum time in milliseconds that a single attempt + // to clean up expired leases from the lease database may take. "max-reclaim-time": 250, - // Specifies the time period in seconds since the last attempt + // Specifies the length of time in seconds since the last attempt // to process expired leases before initiating the next attempt. "reclaim-timer-wait-time": 10, - // Specifies the maximum number of expired lease-processing - // cycles which didn't result in full cleanup of expired leases - // from the lease database, after which a - // warning message is issued. + // Specifies the maximum number of expired lease-processing cycles + // which didn't result in full cleanup of exired leases from the + // lease database, after which a warning message is issued. "unwarned-reclaim-cycles": 5 }, @@ -420,7 +417,7 @@ // Connection reconnect wait time. // This parameter governs how long Kea waits before attempting - // to reconnect, expressed in milliseconds. The default is 0 + // to reconnect. Expressed in milliseconds. The default is 0 // (disabled) for MySQL and PostgreSQL. "reconnect-wait-time": 3000, @@ -435,10 +432,10 @@ // Connection connect timeout in seconds. "connect-timeout": 100, - // Data-read from the database timeout in seconds. + // Timeout of database read operations in seconds. "read-timeout": 120, - // Data-write to the database timeout in seconds. + // Timeout of database write operations in seconds. "write-timeout": 180 } ], @@ -469,7 +466,7 @@ "dhcp-socket-type": "udp", // Specifies a list of interfaces on which the Kea DHCPv4 - // server should listen to the DHCP requests. + // server should listen to DHCP requests. "interfaces": [ "eth0" ], @@ -619,7 +616,7 @@ // provided. "name": "domain-name-servers", - // Boolean flag indicating whether the given option is never + // Boolean flag indicating whether the given option is never // sent in response. The default value of false indicates // that it is sent when it should be. When true, the option // is not sent despite any other setting, i.e. it is @@ -726,8 +723,8 @@ // whether to upgrade from the old format. The following values // are supported: "none" (don't attempt to correct or upgrade // the extended info), "fix" (fix common inconsistencies and - // upgrade from old format; this is the default), "strict" - // (fix inconsistencies with an impact on Lease Query), + // upgrade from the old format; this is the default), "strict" + // (fix inconsistencies with an impact on Leasequery), // "pedantic" (enforce full Kea code format). "extended-info-checks": "fix" }, @@ -740,10 +737,10 @@ // subnets in this shared network. "allocator": "random", - // Shared network-level authoritative flag. + // Shared-network level authoritative flag. "authoritative": false, - // Shared network-level bootfile name. + // Shared-network level bootfile name. "boot-file-name": "/dev/null", // Restricts this shared network to allow only clients @@ -751,56 +748,56 @@ // empty string is provided, no restriction is applied. "client-class": "", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-generated-prefix": "myhost", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-client-update": false, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-no-update": false, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-qualifying-suffix": "", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-replace-client-name": "never", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-send-updates": true, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-update-on-renew": true, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-use-conflict-resolution": true, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-ttl-percent": 0.65, - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-replacement": "x", - // Shared network-level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-set": "[^A-Za-z0-9.-]", // Specifies that this shared network is selected for // requests received on a particular interface. "interface": "eth0", - // Shared network-level flag specifying whether the client + // Shared-network level flag specifying whether the client // identifier should be used for identifying clients. "match-client-id": true, // Shared network name. "name": "my-secret-network", - // Shared network-level specification of the next server + // Shared-network level specification of the next server // to be sent in 'siaddr'. "next-server": "192.0.2.123", // If greater than zero, it is the lifetime of leases temporarily allocated - // on DISCOVER. When zero (the default), leases are not allocated on DISCOVER. + // on DISCOVER. When zero (the default), leases are not allocated on DISCOVER. "offer-lifetime" : 60, // List of shared network-specific DHCP options. @@ -812,13 +809,13 @@ "ip-addresses": [] }, - // Shared network-level rebind timer. + // Shared-network level rebind timer. "rebind-timer": 41, - // Shared network-level renew timer. + // Shared-network level renew timer. "renew-timer": 31, - // Shared network-level compute T1 and T2 timers. + // Shared-network level compute T1 and T2 timers. "calculate-tee-times": true, // T1 = valid lifetime * .5. @@ -830,7 +827,7 @@ // Cache threshold = valid lifetime * .25. "cache-threshold": .25, - // Cache maximum: when the client last transmission time + // Cache maximum: when the client last-transmission time // is close enough, the lease is not renewed and the current // lease is returned as it was "cached". "cache-max-age": 1000, @@ -842,13 +839,13 @@ // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should look up global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should look up in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "subnet4" levels. @@ -862,7 +859,7 @@ // information) with each lease for this shared network. "store-extended-info": false, - // Shared network-level server hostname set in 'sname' field. + // Shared-network level server hostname set in 'sname' field. "server-hostname": "", // List of IPv4 subnets belonging to this shared network. @@ -942,7 +939,7 @@ "next-server": "0.0.0.0", // If greater than zero, it is the lifetime of leases temporarily allocated - // on DISCOVER. When zero (the default), leases are not allocated on DISCOVER. + // on DISCOVER. When zero (the default), leases are not allocated on DISCOVER. "offer-lifetime" : 60, // Turn on storage of extended information (e.g. relay agent @@ -952,16 +949,16 @@ // Subnet-level list of DHCP options. "option-data": [ { - // Boolean flag indicating if the particular option + // Boolean flag indicating whether the particular option // should be always sent or sent only when requested. "always-send": false, // Option code. "code": 3, - // Boolean flag indicating if the option value specified - // in "data" is a string of hexadecimal values or a - // human-readable CSV value. + // Boolean flag indicating whether the option value specified + // in "data" is a string of hexadecimal values or human-readable + // CSV value. "csv-format": true, // Option data to be included in the option payload. @@ -970,7 +967,7 @@ // Option name. "name": "routers", - // Boolean flag indicating if the given option is never + // Boolean flag indicating whether the given option is never // sent in response. "never-send": false, @@ -1017,8 +1014,7 @@ // Subnet-level value of the rebind timer. "rebind-timer": 40, - // List of IPv4 relay addresses for which this subnet is - // selected. + // List of IPv4 relay addresses for which this subnet is selected. "relay": { "ip-addresses": [ "192.168.56.1" @@ -1035,13 +1031,13 @@ // "reservations-in-subnet", and // "reservations-out-of-pool" parameters. - // Specify if server should look up global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should look up in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved + // Specify whether the server can assume that all reserved // addresses are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, @@ -1109,13 +1105,13 @@ } ], - // Shared network-level (default) valid lifetime. + // Shared-network level (default) valid lifetime. "valid-lifetime": 6001, - // Subnet-level min valid lifetime. + // Shared-network level min valid lifetime. "min-valid-lifetime": 4001, - // Subnet-level max valid lifetime. + // Shared-network level max valid lifetime. "max-valid-lifetime": 8001 } ], @@ -1126,7 +1122,7 @@ // List of IPv4 subnets which don't belong to any shared network. "subnet4": [], - // Global valid (default) lifetime value. + // Global valid lifetime value. "valid-lifetime": 6000, // Global min valid lifetime value. @@ -1176,13 +1172,13 @@ // It is replaced by the "reservations-global", // "reservations-in-subnet", and "reservations-out-of-pool" parameters. - // Specify if server should look up global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should look up in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and @@ -1236,7 +1232,7 @@ // Specifies the maximum number of rotated files to be kept. "maxver": 1, - // Specifies logging destination. + // Specifies the logging destination. "output": "stdout", // Specifies log entry content diff --git a/doc/examples/kea4/config-backend.json b/doc/examples/kea4/config-backend.json index aae0f34436..208a3d3eb7 100644 --- a/doc/examples/kea4/config-backend.json +++ b/doc/examples/kea4/config-backend.json @@ -1,7 +1,7 @@ // This is an example configuration file for the DHCPv4 server in Kea. // It demonstrates how to enable Kea Configuration Backend using MySQL. // It requires that libdhcp_mysql_cb.so library is available and -// optionally libdhcp_cb_cmds.so hooks library. +// optionally libdhcp_cb_cmds.so hook library. { "Dhcp4": @@ -24,7 +24,7 @@ // This parameter controls how the server accesses the configuration // database. Currently only one database type is available - "mysql". - // It requires that libdhcp_mysql_cb.so hooks library is loaded. + // It requires that the libdhcp_mysql_cb.so hook library is loaded. "config-control": { // A list of database backends to connect to. Currently, it is limited // to a single backend. diff --git a/doc/examples/kea4/global-reservations.json b/doc/examples/kea4/global-reservations.json index d25200c38e..0e8be68fbb 100644 --- a/doc/examples/kea4/global-reservations.json +++ b/doc/examples/kea4/global-reservations.json @@ -52,16 +52,16 @@ // This directive tells Kea that reservations are global. Note that this // can also be specified at shared network and/or subnet level. // "reservation-mode": "global", -// It is replaced by the "reservations-global", "reservations-in-subnet" and +// It is replaced by the "reservations-global", "reservations-in-subnet", and // "reservations-out-of-pool" parameters. -// Specify if server should lookup global reservations. +// Specify whether the server should look up global reservations. "reservations-global": true, -// Specify if server should lookup in-subnet reservations. +// Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": false, -// Specify if server can assume that all reserved addresses +// Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and "subnet4" levels. diff --git a/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json b/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json index e6f2f6d066..3f22ccee75 100644 --- a/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json +++ b/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json @@ -1,5 +1,5 @@ // This is an example configuration of the Kea DHCPv4 server. It uses High -// Availability hooks library and Lease Commands hooks library to enable +// Availability hook library and Lease Commands hook library to enable // High Availability function for the DHCP server. Note that almost exactly // the same configuration must be used on the second server (partner). // The only difference is that "this-server-name" must be set to "server2" @@ -69,7 +69,7 @@ }, // Some phones will be handled by server1. Whether the HA_server1 // or HA_server2 is assigned for the client is a matter of load - // balancing performed by the HA hooks library. + // balancing performed by the HA hook library. { "name": "phones_server1", "test": "member('phones') and member('HA_server1')" @@ -91,7 +91,7 @@ } ], - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. "hooks-libraries": [ @@ -103,7 +103,7 @@ "parameters": { } }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/opt/lib/kea/hooks/libdhcp_ha.so", "parameters": { // High Availability configuration is specified for the HA hook library. @@ -264,7 +264,7 @@ "debuglevel": 0 }, { - // This section specifies configuration of the HA hooks library specific + // This section specifies configuration of the HA hook library-specific // logger. "name": "kea-dhcp4.ha-hooks", "output_options": [ diff --git a/doc/examples/kea4/ha-load-balancing-server2-mt.json b/doc/examples/kea4/ha-load-balancing-server2-mt.json index 51be49a82c..040d43e9dd 100644 --- a/doc/examples/kea4/ha-load-balancing-server2-mt.json +++ b/doc/examples/kea4/ha-load-balancing-server2-mt.json @@ -1,5 +1,5 @@ // This is an example configuration of the Kea DHCPv4 server. It uses High -// Availability hooks library and Lease Commands hooks library to enable +// Availability hook library and Lease Commands hook library to enable // High Availability function for the DHCP server. Note that almost exactly // the same configuration must be used on the second server (partner). // The only difference is that "this-server-name" must be set to "server1" @@ -68,7 +68,7 @@ }, // Some phones will be handled by server1. Whether the HA_server1 // or HA_server2 is assigned for the client is a matter of load - // balancing performed by the HA hooks library. + // balancing performed by the HA hook library. { "name": "phones_server1", "test": "member('phones') and member('HA_server1')" @@ -90,7 +90,7 @@ } ], - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. "hooks-libraries": [ @@ -102,7 +102,7 @@ "parameters": { } }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/opt/lib/kea/hooks/libdhcp_ha.so", "parameters": { // High Availability configuration is specified for the HA hook library. @@ -247,7 +247,7 @@ "debuglevel": 0 }, { - // This section specifies configuration of the HA hooks library specific + // This section specifies configuration of the HA hook library-specific // logger. "name": "kea-dhcp4.ha-hooks", "output_options": [ diff --git a/doc/examples/kea4/hooks-radius.json b/doc/examples/kea4/hooks-radius.json index f00190e1e9..164e6f8577 100644 --- a/doc/examples/kea4/hooks-radius.json +++ b/doc/examples/kea4/hooks-radius.json @@ -1,5 +1,5 @@ // This is an example configuration file for the DHCPv4 server in Kea -// illustrating the configuration of the RADIUS and Host Cache hooks libraries. +// illustrating the configuration of the RADIUS and Host Cache hook libraries. // // It is not intended to be used as is. It tries to showcase some of the // parameters available. @@ -121,7 +121,7 @@ ] } ], - // Set up the hooks libraries. + // Set up the hook libraries. "hooks-libraries": [ { // Load the flex-id hook library. diff --git a/doc/examples/kea4/hooks.json b/doc/examples/kea4/hooks.json index 0d6e29bbec..3b96d621ed 100644 --- a/doc/examples/kea4/hooks.json +++ b/doc/examples/kea4/hooks.json @@ -1,5 +1,5 @@ // This is an example configuration file for the DHCPv4 server in Kea -// illustrating the configuration of hooks libraries. It uses a basic scenario +// illustrating the configuration of hook libraries. It uses a basic scenario // of one IPv4 subnet configured with the default values for all parameters. {"Dhcp4": @@ -26,7 +26,7 @@ } ], -// Set up the hooks libraries. For this example, we assume that two libraries +// Set up the hook libraries. For this example, we assume that two libraries // are loaded, called "security" and "charging". Note that order is important: // "security" is specified first so if both libraries supply a hook function // for a given hook, the function in "security" will be called before that in diff --git a/doc/examples/kea4/leases-expiration.json b/doc/examples/kea4/leases-expiration.json index f2f4332eef..ce73a57a3b 100644 --- a/doc/examples/kea4/leases-expiration.json +++ b/doc/examples/kea4/leases-expiration.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. // Note, we're setting the maximum number of row read errors to 100, // (defaults to 0, meaning unlimited). "lease-database": { @@ -33,7 +33,7 @@ // unreclaimed leases after 10 attempts, a warning message is issued. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are not // 0, when the client sends a release message the lease is expired instead of -// being deleted from the lease storage. +// being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 5, "hold-reclaimed-time": 1800, diff --git a/doc/examples/kea4/multiple-options.json b/doc/examples/kea4/multiple-options.json index 949889127f..cded883116 100644 --- a/doc/examples/kea4/multiple-options.json +++ b/doc/examples/kea4/multiple-options.json @@ -12,7 +12,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea4/mysql-reservations.json b/doc/examples/kea4/mysql-reservations.json index 57429857be..c44c463542 100644 --- a/doc/examples/kea4/mysql-reservations.json +++ b/doc/examples/kea4/mysql-reservations.json @@ -14,7 +14,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/kea4/pgsql-reservations.json b/doc/examples/kea4/pgsql-reservations.json index 9f6d30141e..7d9bd669ba 100644 --- a/doc/examples/kea4/pgsql-reservations.json +++ b/doc/examples/kea4/pgsql-reservations.json @@ -14,7 +14,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea4/reservations.json b/doc/examples/kea4/reservations.json index c00a8e9c0c..b316740ead 100644 --- a/doc/examples/kea4/reservations.json +++ b/doc/examples/kea4/reservations.json @@ -72,13 +72,13 @@ // It is replaced by the "reservations-global", "reservations-in-subnet" // and "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and diff --git a/doc/examples/kea4/several-subnets.json b/doc/examples/kea4/several-subnets.json index 5fb0511264..9bad6a20ef 100644 --- a/doc/examples/kea4/several-subnets.json +++ b/doc/examples/kea4/several-subnets.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea4/shared-network.json b/doc/examples/kea4/shared-network.json index 9f38ee8c87..0452132b96 100644 --- a/doc/examples/kea4/shared-network.json +++ b/doc/examples/kea4/shared-network.json @@ -67,16 +67,16 @@ // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "subnet4" levels. @@ -104,13 +104,13 @@ "renew-timer": 10, // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, @@ -129,13 +129,13 @@ "renew-timer": 10, // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, diff --git a/doc/examples/kea4/single-subnet.json b/doc/examples/kea4/single-subnet.json index 3fa6dfb1ee..701fc56be3 100644 --- a/doc/examples/kea4/single-subnet.json +++ b/doc/examples/kea4/single-subnet.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/kea4/vendor-specific.json b/doc/examples/kea4/vendor-specific.json index 431c04ec29..b48c2d0824 100644 --- a/doc/examples/kea4/vendor-specific.json +++ b/doc/examples/kea4/vendor-specific.json @@ -49,7 +49,7 @@ "option-data": [ { // vendor-encapsulated-options and defined option on global level should -// be also configured with proper "data" parameters in "option-data" list. +// be also configured with proper "data" parameters in "option-data" list. // Because Kea will send only option that client ask for, and there is no way // to ask for suboptions, parameter "always-send" with value set // to true has also be included in all custom suboptions diff --git a/doc/examples/kea4/with-ddns.json b/doc/examples/kea4/with-ddns.json index ba607c8cae..70072f5be2 100644 --- a/doc/examples/kea4/with-ddns.json +++ b/doc/examples/kea4/with-ddns.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/kea6/advanced.json b/doc/examples/kea6/advanced.json index 7704f8df2b..61b6a42b5e 100644 --- a/doc/examples/kea6/advanced.json +++ b/doc/examples/kea6/advanced.json @@ -26,7 +26,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. - // We will use memfile because it doesn't require any prior set up. + // We will use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 @@ -169,7 +169,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/kea6/all-keys-netconf.json b/doc/examples/kea6/all-keys-netconf.json index 148b6ec99e..646253064b 100644 --- a/doc/examples/kea6/all-keys-netconf.json +++ b/doc/examples/kea6/all-keys-netconf.json @@ -3,7 +3,7 @@ // mutually exclusive configuration parameters. // // The primary purpose of the example file is to provide a comprehensive -// list of parameters supported by Kea DHCPv6 server along with the brief +// list of parameters supported by the Kea DHCPv6 server along with the brief // description of each parameter. // // This stable version is used for YANG as we do not want to update code @@ -17,7 +17,7 @@ // Class name. "name": "phones_server1", - // Class specific DHCPv6 options list. + // Class-specific DHCPv6 options list. "option-data": [], // Class selection expression. The DHCP packet is assigned to this @@ -46,7 +46,7 @@ // Second class name. "name": "phones_server2", - // Class specific DHCPv6 options list. + // Class-specific DHCPv6 options list. "option-data": [], // Class selection expression. The DHCP packet is assigned to this @@ -57,8 +57,8 @@ // Third class name. "name": "late", - // Boolean flag indicating that the class expression is only evaluated - // when the class is required, e.g. selected address pool configuration + // Boolean flag indicating whether the class expression is only evaluated + // when the class is required, e.g. the selected address pool configuration // includes this class name in its "require-client-classes" list. The // default value false means that the class test expression must // always be evaluated. @@ -78,16 +78,16 @@ ], // Parameters for triggering behaviors compatible with broken or - // non-compliant clients, relays or other agents + // non-compliant clients, relays, or other agents "compatibility": { // Parse options more leniently where fields can be deduced - // deterministically even if against RFC or common practice. + // deterministically, even if against RFC or common practice. "lenient-option-parsing": true }, - // Command control socket configuration parameters for Kea DHCPv6 server. + // Command control socket configuration parameters for the Kea DHCPv6 server. "control-socket": { - // Location of the unix domain socket file the DHCPv6 server uses + // Location of the UNIX domain socket file the DHCPv6 server uses // to receive control commands from the Kea Control Agent or the // local server administrator. "socket-name": "/tmp/kea6-ctrl-socket", @@ -98,82 +98,82 @@ }, // Specifies a prefix to be prepended to the generated Client FQDN. - // It may be specified at the global, shared-network and subnet levels. + // It may be specified at the global, shared-network, and subnet levels. "ddns-generated-prefix": "myhost", - // Boolean flag indicating that server should ignore DHCP client - // wishes to update DNS on its own. With that flag set to true + // Boolean flag indicating whether the server should ignore DHCP client + // wishes to update DNS on its own. With that flag set to true, // the server will send DNS updates for both forward and // reverse DNS data. The default value is false, which indicates - // that the server will delegate DNS update to the client when - // requested. It may be specified at the global, shared-network + // that the server will delegate a DNS update to the client when + // requested. It may be specified at the global, shared-network, // and subnet levels. "ddns-override-client-update": false, - // Boolean flag indicating that the server should override DHCP + // Boolean flag indicating whether the server should override the DHCP // client's wish to not update the DNS. With this parameter - // set to true the server will send DNS update even when - // the client requested no update. It may be specified at the - // global, shared-network and subnet levels. + // set to true, the server will send a DNS update even when + // the client requested no update. It may be specified at the + // global, shared-network, and subnet levels. "ddns-override-no-update": false, // Suffix appended to the partial name sent to the DNS. The - // default value is an empty string which indicates that no - // suffix is appended. It may be specified at the global, - // shared-network and subnet levels. + // default value is an empty string, which indicates that no + // suffix is appended. It may be specified at the global, + // shared-network, and subnet levels. "ddns-qualifying-suffix": "", // Enumeration specifying whether the server should honor - // hostname or Client FQDN sent by the client or replace + // the hostname or Client FQDN sent by the client or replace // this name. The acceptable values are: "never" (use the // name the client sent), "always" (replace the name the // client sent), "when-present" (replace the name the client - // sent, but do not generate one when the client didn't sent + // sent, but do not generate one when the client didn't send // the name), "when-not-present" (generate the name when // client didn't send one, otherwise leave the name the - // client sent). The default value is "never". It may be - // specified at the global, shared-network and subnet levels. + // client sent). The default value is "never". It may be + // specified at the global, shared-network, and subnet levels. "ddns-replace-client-name": "never", - // Boolean flag which enables or disables the DDNS updating. It - // defaults to true. It may be specified at the global, shared- - // network and subnet levels. It works in conjunction with - // dhcp-ddns:enable-updates which must be true to enable connectivity + // Boolean flag which enables or disables DDNS updating. It + // defaults to true. It may be specified at the global, shared- + // network, and subnet levels. It works in conjunction with + // dhcp-ddns:enable-updates, which must be true to enable connectivity // to kea-dhcp-ddns. "ddns-send-updates": true, // Boolean flag, which when true instructs the server to always // update DNS when leases are renewed, even if the DNS information - // has not changed. The server's default behavior (i.e. flag is false) - // is to only update DNS if the DNS information has changed. It - // may be specified at the global, shared-network and subnet levels. + // has not changed. The server's default behavior (i.e. flag is false) + // is to only update DNS if the DNS information has changed. It + // may be specified at the global, shared-network, and subnet levels. "ddns-update-on-renew": true, - // Boolean flag, which is passed to kea-dhcp-ddns with each DDNS - // update request to indicate whether or not DNS update conflict + // Boolean flag which is passed to kea-dhcp-ddns with each DDNS + // update request, to indicate whether DNS update conflict // resolution as described in RFC 4703 should be employed for the - // given update request. The default value for this flag is true. - // It may be specified at the global, shared-network and subnet levels. + // given update request. The default value for this flag is true. + // It may be specified at the global, shared-network, and subnet levels. "ddns-use-conflict-resolution": true, // Time in seconds specifying how long a declined lease should be // excluded from DHCP assignments. The default value is 24 hours. "decline-probation-period": 86400, - // Name Change Requests forwarding configuration for Kea DHCPv6 server. - // NCRs are sent to Kea D2 module to update DNS upon allocation of the + // Name Change Request forwarding configuration for the Kea DHCPv6 server. + // NCRs are sent to the Kea D2 module to update DNS upon allocation of // DHCP leases. "dhcp-ddns": { - // Boolean flag indicating if Kea DHCPv6 server should connect to - // kea-dhcp-ddns. This must be true for NCRs to be created and - // sent to kea-dhcp-ddns. By default NCRs are not generated. + // Boolean flag indicating whether Kea DHCPv6 server should connect to + // kea-dhcp-ddns. This must be true for NCRs to be created and + // sent to kea-dhcp-ddns. By default, NCRs are not generated. "enable-updates": false, // Specifies maximum number of NCRs to queue waiting to be sent - // to Kea D2 server. + // to the Kea D2 server. "max-queue-size": 1024, - // Packet format to use when sending NCRs to Kea D2 server. + // Packet format to use when sending NCRs to the Kea D2 server. // Currently, only JSON format is supported. "ncr-format": "JSON", @@ -181,14 +181,14 @@ // only UDP is supported. "ncr-protocol": "UDP", - // IP address that Kea DHCPv6 server should use to send - // NCRs to D2. Default value of zero indicates that Kea - // should pick suitable address. + // IP address that the Kea DHCPv6 server should use to send + // NCRs to D2. The default value of zero indicates that Kea + // should pick a suitable address. "sender-ip": "::1", - // Port number that Kea DHCPv6 server should use to send - // NCRs to D2. Default value of zero indicates that Kea - // should pick suitable port. + // Port number that the Kea DHCPv6 server should use to send + // NCRs to D2. The default value of zero indicates that Kea + // should pick a suitable port. "sender-port": 0, // IP address on which D2 listens for NCRs. @@ -197,10 +197,10 @@ // Port number on which D2 listens for NCRs. "server-port": 53001, - // The follow parameters are DEPRECATED. They have been + // The following parameters are DEPRECATED. They have been // replaced with parameters that may be set at the global, - // shared-network, and subnet6 scopes. They are listed here - // as configuration parsing still accepts them. Eventually + // shared-network, and subnet6 scopes. They are listed here + // as configuration parsing still accepts them. Eventually // support for them will be removed. "generated-prefix": "myhost", "hostname-char-replacement": "x", @@ -219,53 +219,51 @@ // Collection of Kea DHCPv6 server parameters configuring how // the server should process expired DHCP leases. "expired-leases-processing": { - // Specifies the number of seconds since last removal of - // the expired leases when next removal should occur. + // Specifies the number of seconds since the last removal of + // the expired leases, when the next removal should occur. // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release - // message the lease is expired instead of being deleted from the + // message the lease is expired instead of being deleted from // lease storage. "flush-reclaimed-timer-wait-time": 25, - // Specifies the time period in seconds to keep expired + // Specifies the length of time in seconds to keep expired // leases in the lease database (lease affinity). // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release - // message the lease is expired instead of being deleted from the + // message the lease is expired instead of being deleted from // lease storage. "hold-reclaimed-time": 3600, // Specifies the maximum number of expired leases that can be - // processed in a single attempt to clean up the lease - // database from the expired leases. If there are more + // processed in a single attempt to clean up expired leases + // from the lease database. If there are more // expired leases, they will be processed during the next // cleanup attempt. "max-reclaim-leases": 100, - // Specifies the maximum time in milliseconds that the single - // attempt to cleanup the lease database from the expired - // leases may take. + // Specifies the maximum time in milliseconds that a single attempt + // to clean up expired leases from the lease database may take. "max-reclaim-time": 250, - // Specifies the time period in seconds since last attempt - // to process expired leases to initiate the next attempt. + // Specifies the length of time in seconds since the last attempt + // to process expired leases before initiating the next attempt. "reclaim-timer-wait-time": 10, - // Specifies the maximum number of expired leases processing - // cycles which didn't result in full cleanup of the lease - // database from the expired leases, after which a - // warning message is issued. + // Specifies the maximum number of expired lease-processing cycles + // which didn't result in full cleanup of exired leases from the + // lease database, after which a warning message is issued. "unwarned-reclaim-cycles": 5 }, - // List of hooks libraries and their specific configuration parameters + // List of hook libraries and their specific configuration parameters // to be loaded by Kea DHCPv4 server. "hooks-libraries": [ { - // Location of the hooks library to be loaded. + // Location of the hook library to be loaded. "library": "/opt/lib/kea/hooks/libdhcp_lease_cmds.so", - // Hook library specific configuration parameters. + // Hook library-specific configuration parameters. "parameters": { } } ], @@ -285,16 +283,17 @@ // Port on which the database is available. "port": 3306, - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "mysql", - // User name to be used to access the database. + // Username to be used to access the database. "user": "keatest", - // Read only mode. + // Read-only mode. "readonly": false, - // Next entries are for the OpenSSL support in MySQL. + // The next entries are for OpenSSL support in MySQL. + // Trust anchor aka certificate authority file or directory. "trust-anchor": "my-ca", @@ -320,10 +319,10 @@ // Port on which the database is available. "port": 5432, - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "postgresql", - // User name to be used to access the database. + // Username to be used to access the database. "user": "keatest", // Connection reconnect wait time. @@ -340,18 +339,18 @@ // serve-retry-continue "on-fail": "stop-retry-exit", - // Connection connect timeout. + // Connection connect timeout in seconds. "connect-timeout": 100 } ], // List of host reservation identifier types to be used by the - // Kea DHCPv6 server to fetch static reservations for the + // Kea DHCPv6 server to fetch static reservations for // DHCP clients. All identifiers are used by default, which // means that the server will issue multiple queries to the - // database to find if there is a reservation for the particular - // client. If the particular deployment uses only subset, e.g. - // one, identifier type, this identifier should be only listed + // database to find if there is a reservation for a particular + // client. If a particular deployment uses only a subset, e.g. + // one identifier type, this identifier should be only listed // here to prevent unnecessary queries to the database. "host-reservation-identifiers": [ "hw-address", @@ -363,27 +362,27 @@ // server is listening to the DHCP queries. "interfaces-config": { // Specifies a list of interfaces on which the Kea DHCPv6 - // server should listen to the DHCP requests. + // server should listen to DHCP requests. "interfaces": [ "eth0" ], - // Boolean flag indicating if the available interfaces should + // Boolean flag indicating whether the available interfaces should // be re-detected upon server reconfiguration. The default value - // is true which means that the interfaces are always + // is true, which means that the interfaces are always // re-detected. "re-detect": true, - // Kea tries to bind the service sockets during initialization. It may - // fail due to a port being already opened or misconfiguration. Kea can - // suppress these errors and only logs them. This flag prevents starting + // Kea tries to bind the service sockets during initialization, but it may + // fail due to a port being already opened or a misconfiguration. Kea can + // suppress these errors and only log them. This flag prevents starting // the DHCP server without binding all sockets. If unspecified, it // defaults to false. "service-sockets-require-all": true, // Kea tries to bind the service sockets during initialization. This // option specifies how many times binding to interface will be retried. - // The default value is 0 which means that the operation will not be + // The default value is 0, which means that the operation will not be // repeated. "service-sockets-max-retries": 5, @@ -400,7 +399,7 @@ // decision table indexed by reservation identifiers. "early-global-reservations-lookup": true, - // Boolean parameter which controls DHCP server's behavior with respect + // Boolean parameter which controls the DHCP server's behavior with respect // to creating host reservations for the same IP address or delegated // prefix. By default this flag is set to true in which case the server // prevents creation of multiple host reservations for the same IP address @@ -421,31 +420,31 @@ /// should be performed before lease lookup. This parameter has effect /// only when multi-threading is disabled. When multi-threading is /// enabled, host reservations lookup is always performed first to avoid - /// lease lookup resource locking. + /// lease-lookup resource locking. "reservations-lookup-first": true, // Specifies credentials to access lease database. "lease-database": { - // memfile backend specific parameter specifying the interval - // in seconds at which lease file should be cleaned up (outdated - // lease entries are removed to prevent lease file from growing + // memfile backend-specific parameter specifying the interval + // in seconds at which the lease file should be cleaned up (outdated + // lease entries are removed to prevent the lease file from growing // infinitely). "lfc-interval": 3600, - // Maximum number of lease file read errors allowed before - // loading the file is abandoned. Defaults to 0 (no limit). + // Maximum number of lease-file read errors allowed before + // loading the file is abandoned. Defaults to 0 (no limit). "max-row-errors": 100, - // Name of the lease file. In case of database it specifies the + // Name of the lease file. In the case of a database it specifies the // database name. "name": "/tmp/kea-dhcp6.csv", - // memfile specific parameter indicating whether leases should + // memfile-specific parameter indicating whether leases should // be saved on persistent storage (disk) or not. The true value - // is the default and it indicates that leases are stored in the + // is the default and it indicates that leases are stored in // persistent storage. This setting must be used in production. // The false value should only be used for testing purposes - // because non stored leases will be lost upon Kea server restart. + // because non-stored leases will be lost upon Kea server restart. "persist": true, // Lease database backend type, i.e. "memfile", "mysql" or @@ -458,11 +457,11 @@ // Kea Administrator Reference Manual. "mac-sources": [ "duid" ], - // List of global DHCP options that Kea DHCPv6 server assigns to the + // List of global DHCP options that the Kea DHCPv6 server assigns to // clients. "option-data": [ { - // Boolean flag indicating if the given option is always + // Boolean flag indicating whether the given option is always // sent in response or only when requested. The default // value of false indicates that it is only sent when // requested. @@ -474,25 +473,25 @@ // Boolean value indicating whether the option data specified // in the "data" field is specified as a string of hexadecimal - // digits or in human readable CSV format. + // digits or in human-readable CSV format. "csv-format": true, // Option data to be stored in the option payload. "data": "2001:db8:2::45, 2001:db8:2::100", - // Option name. It is not required of the option code is + // Option name. It is not required if the option code is // provided. "name": "dns-servers", - // Boolean flag indicating if the given option is never + // Boolean flag indicating whether the given option is never // sent in response. The default value of false indicates - // that it is sent when it should. When true the option - // is not sent despite of any other setting, i.e. it is + // that it is sent when it should be. When true, the option + // is not sent despite any other setting, i.e. it is // a final flag. "never-send": false, // Option space. The default is the "dhcp6" option space which - // groups top level DHCPv6 options. + // groups top-level DHCPv6 options. "space": "dhcp6" } ], @@ -501,8 +500,8 @@ // Kea DHCPv6 server is using. "option-def": [ { - // Boolean flag indicating if the option definition comprises - // an array of values of some type, e.g. array of IPv6 addresses. + // Boolean flag indicating whether the option definition comprises + // an array of values of some type, e.g. an array of IPv6 addresses. // The default value of false means that the option does not // comprise an array of values. "array": false, @@ -512,7 +511,7 @@ // Holds a name of the option space encapsulated by this option. // All options that belong to this option space will be sent - // as sub-options of this option. Empty string means that this + // as sub-options of this option. An empty string means that this // option doesn't encapsulate any option. "encapsulate": "", @@ -520,7 +519,7 @@ "name": "my-option", // Specifies the types of fields within the option if the option - // is said to be a "record" (see "type"). in this particular example + // is said to be a "record" (see "type"). In this particular example // this option comprises two fields, 1 byte and 2 bytes long. "record-types": "uint8, uint16", @@ -536,7 +535,7 @@ // Global value which limits the number of client packets (e.g. // REQUESTs,RENEWs...) that may be parked while waiting for // hook library work to complete, prior to a response (e.g. REPLY) - // being sent back to the client. A typical example is when kea-dhcp6 + // being sent back to the client. A typical example is when kea-dhcp6 // parks a REQUEST while it sends the lease update(s) to its // HA peer(s). The packet is unparked once the update(s) have been // acknowledged. This value limits the number of packets that can @@ -555,13 +554,13 @@ "max-preferred-lifetime": 60, // Global value for the rebind timer, i.e. the time after which the - // DHCP client enters rebind state if it fails to renew the lease. + // DHCP client enters the rebind state if it fails to renew the lease. "rebind-timer": 40, // List of relay supplied option codes. See RFC 6422. "relay-supplied-options": [ "110", "120", "130" ], - // Global value for the renew timer, i.e. the timer after which the + // Global value for the renew timer, i.e. the time after which the // DHCP client renews the lease. "renew-timer": 30, @@ -571,7 +570,7 @@ // Statistics keep some samples per observation point. // There are two default values: maximum count and maximum age. - // Set the maximum count to zero disables it. + // Setting the maximum count to zero disables it. "statistic-default-sample-count": 0, // When the maximum count is 0 the maximum age (in seconds) applies. @@ -586,7 +585,7 @@ // When multi-threading is enabled, Kea will process packets on a // number of multiple threads configurable through this option. The - // value must be a positive integer (0 means auto detect). + // value must be a positive integer (0 means auto-detect). "thread-pool-size": 0, // When multi-threading is enabled, Kea will read packets from the @@ -596,12 +595,12 @@ "packet-queue-size": 0 }, - // Governs how the Kea DHCPv6 server should deal with the invalid + // Governs how the Kea DHCPv6 server should deal with invalid // data received from the client. "sanity-checks": { // Specifies how the Kea DHCPv6 server should behave when invalid // data is read for a lease from the lease file. The following - // values are supported "none" (don't attempt to correct the + // values are supported: "none" (don't attempt to correct the // lease information), "warn" (print a warning for subnet-id // related inconsistencies), "fix" (correct the subnet id by // trying to find the suitable subnet), "fix-del" (similar @@ -612,11 +611,11 @@ // Specifies how Kea DHCPv4 server should behave when invalid // extended info is read for a lease from the lease file, or - // whether to upgrade from old format. The following values - // are supported "none" (don't attempt to correct or upgrade + // whether to upgrade from the old format. The following values + // are supported: "none" (don't attempt to correct or upgrade // the extended info), "fix" (fix common inconsistencies and - // upgrade from old format, this is the default), "strict" - // (fix inconsistencies with an impact on Lease Query), + // upgrade from the old format; this is the default), "strict" + // (fix inconsistencies with an impact on Leasequery), // "pedantic" (enforce full Kea code format). "extended-info-checks": "fix" }, @@ -632,52 +631,52 @@ // Identifier part of the DUID. "identifier": "0123456789", - // Boolean flag indicating if the DUID should be persisted on + // Boolean flag indicating whether the DUID should be persisted on // disk. "persist": false }, - // List of shared networks used by Kea DHCPv6 server. The shared + // List of shared networks used by the Kea DHCPv6 server. The shared // networks group subnets together. "shared-networks": [ { // Restricts this shared network to allow only clients - // that belong to the particular client class. If an + // that belong to a particular client class. If an // empty string is provided, no restriction is applied. "client-class": "", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-generated-prefix": "myhost", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-client-update": false, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-no-update": false, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-qualifying-suffix": "", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-replace-client-name": "never", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-send-updates": true, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-update-on-renew": true, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-use-conflict-resolution": true, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-replacement": "x", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-set": "[^A-Za-z0-9.-]", - // Specifies that this shared network is selected for the - // requests received on the particular interface. + // Specifies that this shared network is selected for + // requests received on a particular interface. "interface": "eth0", // Specifies the content of the interface-id option used @@ -688,19 +687,19 @@ // Shared network name. "name": "my-secret-network", - // List of shared network specific DHCP options. + // List of shared network-specific DHCP options. "option-data": [], - // Shared network specific (default) preferred lifetime. + // Shared network-specific (default) preferred lifetime. "preferred-lifetime": 2000, - // Shared network specific min preferred lifetime. + // Shared network-specific min preferred lifetime. "min-preferred-lifetime": 1500, - // Shared network specific ma xpreferred lifetime. + // Shared network-specific ma xpreferred lifetime. "max-preferred-lifetime": 2500, - // Boolean flag indicating if the server can respond to + // Boolean flag indicating whether the server can respond to // a Solicit message including a Rapid Commit option with // the Reply message (See DHCPv6 rapid commit). "rapid-commit": false, @@ -711,13 +710,13 @@ "ip-addresses": [] }, - // Shared network level rebind timer. + // Shared-network level rebind timer. "rebind-timer": 41, - // Shared network level renew timer. + // Shared-network level renew timer. "renew-timer": 31, - // Shared network level compute T1 and T2 timers. + // Shared-network level compute T1 and T2 timers. "calculate-tee-times": true, // T1 = valid lifetime * .5. @@ -729,25 +728,25 @@ // Cache threshold = valid lifetime * .25. "cache-threshold": .25, - // Cache maximum: when the client last transmission time - // is close enough the lease is not renewed and current + // Cache maximum: when the client last-transmission time + // is close enough, the lease is not renewed and the current // lease is returned as it was "cached". - "cache-max-age": 10, + "cache-max-age": 1000, - // Enumeration specifying server's mode of operation when it + // Enumeration specifying the server's mode of operation when it // fetches host reservations. // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "subnet6" levels. @@ -758,52 +757,52 @@ "require-client-classes": [ "late" ], // Turn off storage of extended information (e.g. relay agent - // information) with each lease for this shared-network. + // information) with each lease for this shared network. "store-extended-info": false, // List of IPv6 subnets belonging to this shared network. "subnet6": [ { // Restricts this subnet to allow only clients that belong - // to the particular client class. If an empty string is + // to a particular client class. If an empty string is // provided, no restriction is applied. "client-class": "", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-generated-prefix": "myhost", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-override-client-update": false, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-override-no-update": false, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-qualifying-suffix": "", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-replace-client-name": "never", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-send-updates": true, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-update-on-renew": true, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-use-conflict-resolution": true, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "hostname-char-replacement": "x", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "hostname-char-set": "[^A-Za-z0-9.-]", // Subnet unique identifier. "id": 1, - // Specifies that this subnet is selected for the requests - // received on the particular interface. + // Specifies that this subnet is selected for requests + // received on a particular interface. "interface": "eth0", // Specifies the content of the interface-id option used @@ -815,19 +814,19 @@ // information) with each lease for this subnet. "store-extended-info": true, - // Subnet level list of DHCP options. + // Subnet-level list of DHCP options. "option-data": [ { - // Boolean flag indicating if the particular option + // Boolean flag indicating whether the particular option // should be always sent or sent only when requested. "always-send": false, // Option code. "code": 7, - // Boolean flag indicating if the option value specified - // in "data" is a string of hexadecimal values or human - // readable CSV value. + // Boolean flag indicating whether the option value specified + // in "data" is a string of hexadecimal values or human-readable + // CSV value. "csv-format": false, // Option data to be included in the option payload. @@ -836,7 +835,7 @@ // Option name. "name": "preference", - // Boolean flag indicating if the given option is never + // Boolean flag indicating whether the given option is never // sent in response. "never-send": false, @@ -880,11 +879,11 @@ "pools": [ { - // Restricts this pool to be only used for the client + // Restricts this pool to only be used for client // requests belonging to a particular client class. "client-class": "phones_server1", - // Pool level list of DHCP options. + // Pool-level list of DHCP options. "option-data": [], // Address range used for client assignments. @@ -895,11 +894,11 @@ "require-client-classes": [ "late" ] }, { - // Restricts this pool to be only used for the client + // Restricts this pool to only be used for client // requests belonging to a particular client class. "client-class": "phones_server2", - // Pool level list of DHCP options. + // Pool-level list of DHCP options. "option-data": [], // Address range used for client assignments. @@ -920,12 +919,12 @@ // Subnet specific max referred lifetime. "max-preferred-lifetime": 2500, - // Boolean flag indicating if the server can respond to + // Boolean flag indicating whether the server can respond to // a Solicit message including a Rapid Commit option with // the Reply message (See DHCPv6 rapid commit). "rapid-commit": false, - // Subnet level rebind timer. + // Subnet-level rebind timer. "rebind-timer": 40, // List of IPv4 relay addresses for which this subnet @@ -936,28 +935,28 @@ ] }, - // Subnet level renew timer. + // Subnet-level renew timer. "renew-timer": 30, - // Enumeration specifying server's mode of operation when it + // Enumeration specifying the server's mode of operation when it // fetches host reservations. // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and + // "reservations-in-subnet", and // "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved + // Specify whether the server can assume that all reserved // addresses are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, - // Subnet level compute T1 and T2 timers. + // Subnet-level compute T1 and T2 timers. "calculate-tee-times": true, // T1 = valid lifetime * .5. @@ -969,11 +968,11 @@ // Cache threshold = valid lifetime * .25. "cache-threshold": .25, - // Subnet level cache maximum. - "cache-max-age": 10, + // Subnet-level cache maximum. + "cache-max-age": 1000, - // List of static IPv6 reservations assigned to the clients belonging - // to this subnet. For detailed example see reservations.json. + // List of static IPv6 reservations assigned to clients belonging + // to this subnet. For a detailed example, see reservations.json. "reservations": [ { // Identifier used for client matching. Supported values are @@ -989,7 +988,7 @@ // Reserved hostname. "hostname": "foo.example.com", - // Reservation specific option data. + // Reservation-specific option data. "option-data": [ { // Option name. @@ -1009,24 +1008,24 @@ // Subnet prefix. "subnet": "2001:db8::/32", - // Subnet level (default) valid lifetime. + // Subnet-level (default) valid lifetime. "valid-lifetime": 6000, - // Subnet level min valid lifetime. + // Subnet-level min valid lifetime. "min-valid-lifetime": 4000, - // Subnet level max valid lifetime. + // Subnet-level max valid lifetime. "max-valid-lifetime": 8000 } ], - // Shared network level (default) valid lifetime. + // Shared-network level (default) valid lifetime. "valid-lifetime": 6001, - // Shared network level min valid lifetime. + // Shared-network level min valid lifetime. "min-valid-lifetime": 4001, - // Shared network level max valid lifetime. + // Shared-network level max valid lifetime. "max-valid-lifetime": 8001 } ], @@ -1034,7 +1033,7 @@ // List of IPv6 subnets which don't belong to any shared network. "subnet6": [], - // Global (default) valid lifetime value. + // Global valid lifetime value. "valid-lifetime": 6000, // Global min valid lifetime value. @@ -1047,19 +1046,19 @@ "reservations": [], // Configuration control (currently not used, i.e. this syntax - // is already defined but corresponding feature is not implemented). + // is already defined but the corresponding feature is not implemented). "config-control": { - // Only configuration databases entry is defined. + // Only the configuration databases entry is defined. "config-databases": [ { // Name of the database to connect to. "name": "config", - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "mysql" } ], - // Intervals between attempts to fetch configuration updates + // Interval between attempts to fetch configuration updates // via the configuration backends used. "config-fetch-wait-time": 30 }, @@ -1067,12 +1066,12 @@ // Server tag. "server-tag": "my DHCPv6 server", - // DHCP queue control parameters. + // DHCP queue-control parameters. "dhcp-queue-control": { // Enable queue is mandatory. "enable-queue": true, - // Queue type was mandatory. + // Queue type is mandatory. "queue-type": "kea-ring6", // Capacity is optional. @@ -1082,15 +1081,15 @@ // Fetches host reservations. // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" parameters. + // "reservations-in-subnet", and "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and @@ -1113,11 +1112,11 @@ "cache-threshold": .25, // Global cache maximum. - "cache-max-age": 10, + "cache-max-age": 1000, // String of zero or more characters with which to replace each // invalid character in the Client FQDN. The default - // value is an empty string which will cause invalid characters + // value is an empty string, which will cause invalid characters // to be omitted rather than replaced. "hostname-char-replacement": "x", @@ -1129,7 +1128,7 @@ "loggers": [ { // Debug level, a value between 0..99. The greater the value - // the more detailed debug log. + // the more detailed the debug log. "debuglevel": 99, // Name of the logger. @@ -1138,16 +1137,16 @@ // Configures how the log should be output. "output_options": [ { - // Determines whether the log should flushed to a file. + // Determines whether the log should be flushed to a file. "flush": true, - // Specifies maximum filesize before the file is being rotated. + // Specifies maximum filesize before the file is rotated. "maxsize": 10240000, - // Specifies the maximum number of rotated files being kept. + // Specifies the maximum number of rotated files to be kept. "maxver": 1, - // Specifies logging destination. + // Specifies the logging destination. "output": "stdout", // Specifies log entry content @@ -1160,7 +1159,7 @@ } ], - // Look at advanced example for the use of user-contexts. + // Look at advanced examples for the use of user-contexts. "user-context": { } } } diff --git a/doc/examples/kea6/all-keys.json b/doc/examples/kea6/all-keys.json index 83c2449f7c..5863e2d6f0 100644 --- a/doc/examples/kea6/all-keys.json +++ b/doc/examples/kea6/all-keys.json @@ -3,11 +3,11 @@ // mutually exclusive configuration parameters. // // The primary purpose of the example file is to provide a comprehensive -// list of parameters supported by Kea DHCPv6 server along with the brief +// list of parameters supported by the Kea DHCPv6 server along with the brief // description of each parameter. // // This current version should be up to date, i.e. new keywords should be -// added in this file at the same time than in the syntax. +// added in this file at the same time as in the parser specification. { // Kea DHCPv6 server configuration begins here. "Dhcp6": { @@ -25,7 +25,7 @@ // Class name. "name": "phones_server1", - // Class specific DHCPv6 options list. + // Class-specific DHCPv6 options list. "option-data": [], // Class selection expression. The DHCP packet is assigned to this @@ -54,7 +54,7 @@ // Second class name. "name": "phones_server2", - // Class specific DHCPv6 options list. + // Class-specific DHCPv6 options list. "option-data": [], // Class selection expression. The DHCP packet is assigned to this @@ -65,8 +65,8 @@ // Third class name. "name": "late", - // Boolean flag indicating that the class expression is only evaluated - // when the class is required, e.g. selected address pool configuration + // Boolean flag indicating whether the class expression is only evaluated + // when the class is required, e.g. the selected address pool configuration // includes this class name in its "require-client-classes" list. The // default value false means that the class test expression must // always be evaluated. @@ -86,16 +86,16 @@ ], // Parameters for triggering behaviors compatible with broken or - // non-compliant clients, relays or other agents + // non-compliant clients, relays, or other agents "compatibility": { // Parse options more leniently where fields can be deduced - // deterministically even if against RFC or common practice. + // deterministically, even if against RFC or common practice. "lenient-option-parsing": true }, - // Command control socket configuration parameters for Kea DHCPv6 server. + // Command control socket configuration parameters for the Kea DHCPv6 server. "control-socket": { - // Location of the unix domain socket file the DHCPv6 server uses + // Location of the UNIX domain socket file the DHCPv6 server uses // to receive control commands from the Kea Control Agent or the // local server administrator. "socket-name": "/tmp/kea6-ctrl-socket", @@ -106,62 +106,62 @@ }, // Specifies a prefix to be prepended to the generated Client FQDN. - // It may be specified at the global, shared-network and subnet levels. + // It may be specified at the global, shared-network, and subnet levels. "ddns-generated-prefix": "myhost", - // Boolean flag indicating that server should ignore DHCP client - // wishes to update DNS on its own. With that flag set to true + // Boolean flag indicating whether the server should ignore DHCP client + // wishes to update DNS on its own. With that flag set to true, // the server will send DNS updates for both forward and // reverse DNS data. The default value is false, which indicates - // that the server will delegate DNS update to the client when - // requested. It may be specified at the global, shared-network + // that the server will delegate a DNS update to the client when + // requested. It may be specified at the global, shared-network, // and subnet levels. "ddns-override-client-update": false, - // Boolean flag indicating that the server should override DHCP + // Boolean flag indicating whether the server should override the DHCP // client's wish to not update the DNS. With this parameter - // set to true the server will send DNS update even when - // the client requested no update. It may be specified at the - // global, shared-network and subnet levels. + // set to true, the server will send a DNS update even when + // the client requested no update. It may be specified at the + // global, shared-network, and subnet levels. "ddns-override-no-update": false, // Suffix appended to the partial name sent to the DNS. The - // default value is an empty string which indicates that no - // suffix is appended. It may be specified at the global, - // shared-network and subnet levels. + // default value is an empty string, which indicates that no + // suffix is appended. It may be specified at the global, + // shared-network, and subnet levels. "ddns-qualifying-suffix": "", // Enumeration specifying whether the server should honor - // hostname or Client FQDN sent by the client or replace + // the hostname or Client FQDN sent by the client or replace // this name. The acceptable values are: "never" (use the // name the client sent), "always" (replace the name the // client sent), "when-present" (replace the name the client - // sent, but do not generate one when the client didn't sent + // sent, but do not generate one when the client didn't send // the name), "when-not-present" (generate the name when // client didn't send one, otherwise leave the name the - // client sent). The default value is "never". It may be - // specified at the global, shared-network and subnet levels. + // client sent). The default value is "never". It may be + // specified at the global, shared-network, and subnet levels. "ddns-replace-client-name": "never", - // Boolean flag which enables or disables the DDNS updating. It - // defaults to true. It may be specified at the global, shared- - // network and subnet levels. It works in conjunction with - // dhcp-ddns:enable-updates which must be true to enable connectivity + // Boolean flag which enables or disables DDNS updating. It + // defaults to true. It may be specified at the global, shared- + // network, and subnet levels. It works in conjunction with + // dhcp-ddns:enable-updates, which must be true to enable connectivity // to kea-dhcp-ddns. "ddns-send-updates": true, // Boolean flag, which when true instructs the server to always // update DNS when leases are renewed, even if the DNS information - // has not changed. The server's default behavior (i.e. flag is false) - // is to only update DNS if the DNS information has changed. It - // may be specified at the global, shared-network and subnet levels. + // has not changed. The server's default behavior (i.e. flag is false) + // is to only update DNS if the DNS information has changed. It + // may be specified at the global, shared-network, and subnet levels. "ddns-update-on-renew": true, - // Boolean flag, which is passed to kea-dhcp-ddns with each DDNS - // update request to indicate whether or not DNS update conflict + // Boolean flag which is passed to kea-dhcp-ddns with each DDNS + // update request, to indicate whether DNS update conflict // resolution as described in RFC 4703 should be employed for the - // given update request. The default value for this flag is true. - // It may be specified at the global, shared-network and subnet levels. + // given update request. The default value for this flag is true. + // It may be specified at the global, shared-network, and subnet levels. "ddns-use-conflict-resolution": true, // When greater than 0.0, it is the percent of the lease's lifetime @@ -172,20 +172,20 @@ // excluded from DHCP assignments. The default value is 24 hours. "decline-probation-period": 86400, - // Name Change Requests forwarding configuration for Kea DHCPv6 server. - // NCRs are sent to Kea D2 module to update DNS upon allocation of the + // Name Change Request forwarding configuration for the Kea DHCPv6 server. + // NCRs are sent to the Kea D2 module to update DNS upon allocation of // DHCP leases. "dhcp-ddns": { - // Boolean flag indicating if Kea DHCPv6 server should connect to - // kea-dhcp-ddns. This must be true for NCRs to be created and - // sent to kea-dhcp-ddns. By default NCRs are not generated. + // Boolean flag indicating whether Kea DHCPv6 server should connect to + // kea-dhcp-ddns. This must be true for NCRs to be created and + // sent to kea-dhcp-ddns. By default, NCRs are not generated. "enable-updates": false, // Specifies maximum number of NCRs to queue waiting to be sent - // to Kea D2 server. + // to the Kea D2 server. "max-queue-size": 1024, - // Packet format to use when sending NCRs to Kea D2 server. + // Packet format to use when sending NCRs to the Kea D2 server. // Currently, only JSON format is supported. "ncr-format": "JSON", @@ -193,14 +193,14 @@ // only UDP is supported. "ncr-protocol": "UDP", - // IP address that Kea DHCPv6 server should use to send - // NCRs to D2. Default value of zero indicates that Kea - // should pick suitable address. + // IP address that the Kea DHCPv6 server should use to send + // NCRs to D2. The default value of zero indicates that Kea + // should pick a suitable address. "sender-ip": "::1", - // Port number that Kea DHCPv6 server should use to send - // NCRs to D2. Default value of zero indicates that Kea - // should pick suitable port. + // Port number that the Kea DHCPv6 server should use to send + // NCRs to D2. The default value of zero indicates that Kea + // should pick a suitable port. "sender-port": 0, // IP address on which D2 listens for NCRs. @@ -209,10 +209,10 @@ // Port number on which D2 listens for NCRs. "server-port": 53001, - // The follow parameters are DEPRECATED. They have been + // The following parameters are DEPRECATED. They have been // replaced with parameters that may be set at the global, - // shared-network, and subnet6 scopes. They are listed here - // as configuration parsing still accepts them. Eventually + // shared-network, and subnet6 scopes. They are listed here + // as configuration parsing still accepts them. Eventually // support for them will be removed. "generated-prefix": "myhost", "hostname-char-replacement": "x", @@ -231,53 +231,51 @@ // Collection of Kea DHCPv6 server parameters configuring how // the server should process expired DHCP leases. "expired-leases-processing": { - // Specifies the number of seconds since last removal of - // the expired leases when next removal should occur. + // Specifies the number of seconds since the last removal of + // the expired leases, when the next removal should occur. // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release - // message the lease is expired instead of being deleted from the + // message the lease is expired instead of being deleted from // lease storage. "flush-reclaimed-timer-wait-time": 25, - // Specifies the time period in seconds to keep expired + // Specifies the length of time in seconds to keep expired // leases in the lease database (lease affinity). // If both "flush-reclaimed-timer-wait-time" and // "hold-reclaimed-time" are not 0, when the client sends a release - // message the lease is expired instead of being deleted from the + // message the lease is expired instead of being deleted from // lease storage. "hold-reclaimed-time": 3600, // Specifies the maximum number of expired leases that can be - // processed in a single attempt to clean up the lease - // database from the expired leases. If there are more + // processed in a single attempt to clean up expired leases + // from the lease database. If there are more // expired leases, they will be processed during the next // cleanup attempt. "max-reclaim-leases": 100, - // Specifies the maximum time in milliseconds that the single - // attempt to cleanup the lease database from the expired - // leases may take. + // Specifies the maximum time in milliseconds that a single attempt + // to clean up expired leases from the lease database may take. "max-reclaim-time": 250, - // Specifies the time period in seconds since last attempt - // to process expired leases to initiate the next attempt. + // Specifies the length of time in seconds since the last attempt + // to process expired leases before initiating the next attempt. "reclaim-timer-wait-time": 10, - // Specifies the maximum number of expired leases processing - // cycles which didn't result in full cleanup of the lease - // database from the expired leases, after which a - // warning message is issued. + // Specifies the maximum number of expired lease-processing cycles + // which didn't result in full cleanup of exired leases from the + // lease database, after which a warning message is issued. "unwarned-reclaim-cycles": 5 }, - // List of hooks libraries and their specific configuration parameters + // List of hook libraries and their specific configuration parameters // to be loaded by Kea DHCPv4 server. "hooks-libraries": [ { - // Location of the hooks library to be loaded. + // Location of the hook library to be loaded. "library": "/opt/lib/kea/hooks/libdhcp_lease_cmds.so", - // Hook library specific configuration parameters. + // Hook library-specific configuration parameters. "parameters": { } } ], @@ -297,16 +295,17 @@ // Port on which the database is available. "port": 3306, - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "mysql", - // User name to be used to access the database. + // Username to be used to access the database. "user": "keatest", - // Read only mode. + // Read-only mode. "readonly": false, - // Next entries are for the OpenSSL support in MySQL. + // The next entries are for OpenSSL support in MySQL. + // Trust anchor aka certificate authority file or directory. "trust-anchor": "my-ca", @@ -332,10 +331,10 @@ // Port on which the database is available. "port": 5432, - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "postgresql", - // User name to be used to access the database. + // Username to be used to access the database. "user": "keatest", // TCP user timeout while communicating with the database. @@ -352,10 +351,10 @@ // Port on which the database is available. "port": 9042, - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "mysql", - // User name to be used to access the database. + // Username to be used to access the database. "user": "keatest", // Connection reconnect wait time. @@ -375,21 +374,21 @@ // Connection connect timeout in seconds. "connect-timeout": 100, - // Data read from the database timeout in seconds. + // Timeout of database read operations in seconds. "read-timeout": 120, - // Data write to the database timeout in seconds. + // Timeout of database write operations in seconds. "write-timeout": 180 } ], // List of host reservation identifier types to be used by the - // Kea DHCPv6 server to fetch static reservations for the + // Kea DHCPv6 server to fetch static reservations for // DHCP clients. All identifiers are used by default, which // means that the server will issue multiple queries to the - // database to find if there is a reservation for the particular - // client. If the particular deployment uses only subset, e.g. - // one, identifier type, this identifier should be only listed + // database to find if there is a reservation for a particular + // client. If a particular deployment uses only a subset, e.g. + // one identifier type, this identifier should be only listed // here to prevent unnecessary queries to the database. "host-reservation-identifiers": [ "hw-address", @@ -401,27 +400,27 @@ // server is listening to the DHCP queries. "interfaces-config": { // Specifies a list of interfaces on which the Kea DHCPv6 - // server should listen to the DHCP requests. + // server should listen to DHCP requests. "interfaces": [ "eth0" ], - // Boolean flag indicating if the available interfaces should + // Boolean flag indicating whether the available interfaces should // be re-detected upon server reconfiguration. The default value - // is true which means that the interfaces are always + // is true, which means that the interfaces are always // re-detected. "re-detect": true, - // Kea tries to bind the service sockets during initialization. It may - // fail due to a port being already opened or misconfiguration. Kea can - // suppress these errors and only logs them. This flag prevents starting + // Kea tries to bind the service sockets during initialization, but it may + // fail due to a port being already opened or a misconfiguration. Kea can + // suppress these errors and only log them. This flag prevents starting // the DHCP server without binding all sockets. If unspecified, it // defaults to false. "service-sockets-require-all": true, // Kea tries to bind the service sockets during initialization. This // option specifies how many times binding to interface will be retried. - // The default value is 0 which means that the operation will not be + // The default value is 0, which means that the operation will not be // repeated. "service-sockets-max-retries": 5, @@ -438,7 +437,7 @@ // decision table indexed by reservation identifiers. "early-global-reservations-lookup": true, - // Boolean parameter which controls DHCP server's behavior with respect + // Boolean parameter which controls the DHCP server's behavior with respect // to creating host reservations for the same IP address or delegated // prefix. By default this flag is set to true in which case the server // prevents creation of multiple host reservations for the same IP address @@ -459,31 +458,31 @@ /// should be performed before lease lookup. This parameter has effect /// only when multi-threading is disabled. When multi-threading is /// enabled, host reservations lookup is always performed first to avoid - /// lease lookup resource locking. + /// lease-lookup resource locking. "reservations-lookup-first": true, // Specifies credentials to access lease database. "lease-database": { - // memfile backend specific parameter specifying the interval - // in seconds at which lease file should be cleaned up (outdated - // lease entries are removed to prevent lease file from growing + // memfile backend-specific parameter specifying the interval + // in seconds at which the lease file should be cleaned up (outdated + // lease entries are removed to prevent the lease file from growing // infinitely). "lfc-interval": 3600, - // Maximum number of lease file read errors allowed before - // loading the file is abandoned. Defaults to 0 (no limit). + // Maximum number of lease-file read errors allowed before + // loading the file is abandoned. Defaults to 0 (no limit). "max-row-errors": 100, - // Name of the lease file. In case of database it specifies the + // Name of the lease file. In the case of a database it specifies the // database name. "name": "/tmp/kea-dhcp6.csv", - // memfile specific parameter indicating whether leases should + // memfile-specific parameter indicating whether leases should // be saved on persistent storage (disk) or not. The true value - // is the default and it indicates that leases are stored in the + // is the default and it indicates that leases are stored in // persistent storage. This setting must be used in production. // The false value should only be used for testing purposes - // because non stored leases will be lost upon Kea server restart. + // because non-stored leases will be lost upon Kea server restart. "persist": true, // Lease database backend type, i.e. "memfile", "mysql" or @@ -496,11 +495,11 @@ // Kea Administrator Reference Manual. "mac-sources": [ "duid" ], - // List of global DHCP options that Kea DHCPv6 server assigns to the + // List of global DHCP options that the Kea DHCPv6 server assigns to // clients. "option-data": [ { - // Boolean flag indicating if the given option is always + // Boolean flag indicating whether the given option is always // sent in response or only when requested. The default // value of false indicates that it is only sent when // requested. @@ -512,25 +511,25 @@ // Boolean value indicating whether the option data specified // in the "data" field is specified as a string of hexadecimal - // digits or in human readable CSV format. + // digits or in human-readable CSV format. "csv-format": true, // Option data to be stored in the option payload. "data": "2001:db8:2::45, 2001:db8:2::100", - // Option name. It is not required of the option code is + // Option name. It is not required if the option code is // provided. "name": "dns-servers", - // Boolean flag indicating if the given option is never + // Boolean flag indicating whether the given option is never // sent in response. The default value of false indicates - // that it is sent when it should. When true the option - // is not sent despite of any other setting, i.e. it is + // that it is sent when it should be. When true, the option + // is not sent despite any other setting, i.e. it is // a final flag. "never-send": false, // Option space. The default is the "dhcp6" option space which - // groups top level DHCPv6 options. + // groups top-level DHCPv6 options. "space": "dhcp6" } ], @@ -539,8 +538,8 @@ // Kea DHCPv6 server is using. "option-def": [ { - // Boolean flag indicating if the option definition comprises - // an array of values of some type, e.g. array of IPv6 addresses. + // Boolean flag indicating whether the option definition comprises + // an array of values of some type, e.g. an array of IPv6 addresses. // The default value of false means that the option does not // comprise an array of values. "array": false, @@ -550,7 +549,7 @@ // Holds a name of the option space encapsulated by this option. // All options that belong to this option space will be sent - // as sub-options of this option. Empty string means that this + // as sub-options of this option. An empty string means that this // option doesn't encapsulate any option. "encapsulate": "", @@ -558,7 +557,7 @@ "name": "my-option", // Specifies the types of fields within the option if the option - // is said to be a "record" (see "type"). in this particular example + // is said to be a "record" (see "type"). In this particular example // this option comprises two fields, 1 byte and 2 bytes long. "record-types": "uint8, uint16", @@ -574,7 +573,7 @@ // Global value which limits the number of client packets (e.g. // REQUESTs,RENEWs...) that may be parked while waiting for // hook library work to complete, prior to a response (e.g. REPLY) - // being sent back to the client. A typical example is when kea-dhcp6 + // being sent back to the client. A typical example is when kea-dhcp6 // parks a REQUEST while it sends the lease update(s) to its // HA peer(s). The packet is unparked once the update(s) have been // acknowledged. This value limits the number of packets that can @@ -593,13 +592,13 @@ "max-preferred-lifetime": 60, // Global value for the rebind timer, i.e. the time after which the - // DHCP client enters rebind state if it fails to renew the lease. + // DHCP client enters the rebind state if it fails to renew the lease. "rebind-timer": 40, // List of relay supplied option codes. See RFC 6422. "relay-supplied-options": [ "110", "120", "130" ], - // Global value for the renew timer, i.e. the timer after which the + // Global value for the renew timer, i.e. the time after which the // DHCP client renews the lease. "renew-timer": 30, @@ -609,7 +608,7 @@ // Statistics keep some samples per observation point. // There are two default values: maximum count and maximum age. - // Set the maximum count to zero disables it. + // Setting the maximum count to zero disables it. "statistic-default-sample-count": 0, // When the maximum count is 0 the maximum age (in seconds) applies. @@ -624,7 +623,7 @@ // When multi-threading is enabled, Kea will process packets on a // number of multiple threads configurable through this option. The - // value must be a positive integer (0 means auto detect). + // value must be a positive integer (0 means auto-detect). "thread-pool-size": 0, // When multi-threading is enabled, Kea will read packets from the @@ -634,12 +633,12 @@ "packet-queue-size": 0 }, - // Governs how the Kea DHCPv6 server should deal with the invalid + // Governs how the Kea DHCPv6 server should deal with invalid // data received from the client. "sanity-checks": { // Specifies how the Kea DHCPv6 server should behave when invalid // data is read for a lease from the lease file. The following - // values are supported "none" (don't attempt to correct the + // values are supported: "none" (don't attempt to correct the // lease information), "warn" (print a warning for subnet-id // related inconsistencies), "fix" (correct the subnet id by // trying to find the suitable subnet), "fix-del" (similar @@ -650,11 +649,11 @@ // Specifies how Kea DHCPv4 server should behave when invalid // extended info is read for a lease from the lease file, or - // whether to upgrade from old format. The following values - // are supported "none" (don't attempt to correct or upgrade + // whether to upgrade from the old format. The following values + // are supported: "none" (don't attempt to correct or upgrade // the extended info), "fix" (fix common inconsistencies and - // upgrade from old format, this is the default), "strict" - // (fix inconsistencies with an impact on Lease Query), + // upgrade from the old format; this is the default), "strict" + // (fix inconsistencies with an impact on Leasequery), // "pedantic" (enforce full Kea code format). "extended-info-checks": "fix" }, @@ -670,12 +669,12 @@ // Identifier part of the DUID. "identifier": "0123456789", - // Boolean flag indicating if the DUID should be persisted on + // Boolean flag indicating whether the DUID should be persisted on // disk. "persist": false }, - // List of shared networks used by Kea DHCPv6 server. The shared + // List of shared networks used by the Kea DHCPv6 server. The shared // networks group subnets together. "shared-networks": [ { @@ -688,45 +687,45 @@ "pd-allocator": "iterative", // Restricts this shared network to allow only clients - // that belong to the particular client class. If an + // that belong to a particular client class. If an // empty string is provided, no restriction is applied. "client-class": "", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-generated-prefix": "myhost", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-client-update": false, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-override-no-update": false, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-qualifying-suffix": "", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-replace-client-name": "never", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-send-updates": true, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-update-on-renew": true, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-use-conflict-resolution": true, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "ddns-ttl-percent": 0.65, - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-replacement": "x", - // Shared network level value. See description at the global level. + // Shared-network level value. See description at the global level. "hostname-char-set": "[^A-Za-z0-9.-]", - // Specifies that this shared network is selected for the - // requests received on the particular interface. + // Specifies that this shared network is selected for + // requests received on a particular interface. "interface": "eth0", // Specifies the content of the interface-id option used @@ -737,19 +736,19 @@ // Shared network name. "name": "my-secret-network", - // List of shared network specific DHCP options. + // List of shared network-specific DHCP options. "option-data": [], - // Shared network specific (default) preferred lifetime. + // Shared network-specific (default) preferred lifetime. "preferred-lifetime": 2000, - // Shared network specific min preferred lifetime. + // Shared network-specific min preferred lifetime. "min-preferred-lifetime": 1500, - // Shared network specific ma xpreferred lifetime. + // Shared network-specific ma xpreferred lifetime. "max-preferred-lifetime": 2500, - // Boolean flag indicating if the server can respond to + // Boolean flag indicating whether the server can respond to // a Solicit message including a Rapid Commit option with // the Reply message (See DHCPv6 rapid commit). "rapid-commit": false, @@ -760,13 +759,13 @@ "ip-addresses": [] }, - // Shared network level rebind timer. + // Shared-network level rebind timer. "rebind-timer": 41, - // Shared network level renew timer. + // Shared-network level renew timer. "renew-timer": 31, - // Shared network level compute T1 and T2 timers. + // Shared-network level compute T1 and T2 timers. "calculate-tee-times": true, // T1 = valid lifetime * .5. @@ -778,25 +777,25 @@ // Cache threshold = valid lifetime * .25. "cache-threshold": .25, - // Cache maximum: when the client last transmission time - // is close enough the lease is not renewed and current + // Cache maximum: when the client last-transmission time + // is close enough, the lease is not renewed and the current // lease is returned as it was "cached". - "cache-max-age": 10, + "cache-max-age": 1000, - // Enumeration specifying server's mode of operation when it + // Enumeration specifying the server's mode of operation when it // fetches host reservations. // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "subnet6" levels. @@ -807,7 +806,7 @@ "require-client-classes": [ "late" ], // Turn off storage of extended information (e.g. relay agent - // information) with each lease for this shared-network. + // information) with each lease for this shared network. "store-extended-info": false, // List of IPv6 subnets belonging to this shared network. @@ -822,48 +821,48 @@ "pd-allocator": "iterative", // Restricts this subnet to allow only clients that belong - // to the particular client class. If an empty string is + // to a particular client class. If an empty string is // provided, no restriction is applied. "client-class": "", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-generated-prefix": "myhost", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-override-client-update": false, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-override-no-update": false, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-qualifying-suffix": "", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-replace-client-name": "never", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-send-updates": true, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-update-on-renew": true, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-use-conflict-resolution": true, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "ddns-ttl-percent": 0.55, - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "hostname-char-replacement": "x", - // Subnet level value. See description at the global level. + // Subnet-level value. See description at the global level. "hostname-char-set": "[^A-Za-z0-9.-]", // Subnet unique identifier. "id": 1, - // Specifies that this subnet is selected for the requests - // received on the particular interface. + // Specifies that this subnet is selected for requests + // received on a particular interface. "interface": "eth0", // Specifies the content of the interface-id option used @@ -875,19 +874,19 @@ // information) with each lease for this subnet. "store-extended-info": true, - // Subnet level list of DHCP options. + // Subnet-level list of DHCP options. "option-data": [ { - // Boolean flag indicating if the particular option + // Boolean flag indicating whether the particular option // should be always sent or sent only when requested. "always-send": false, // Option code. "code": 7, - // Boolean flag indicating if the option value specified - // in "data" is a string of hexadecimal values or human - // readable CSV value. + // Boolean flag indicating whether the option value specified + // in "data" is a string of hexadecimal values or human-readable + // CSV value. "csv-format": false, // Option data to be included in the option payload. @@ -896,7 +895,7 @@ // Option name. "name": "preference", - // Boolean flag indicating if the given option is never + // Boolean flag indicating whether the given option is never // sent in response. "never-send": false, @@ -938,13 +937,14 @@ } ], + // List of IP address pools belonging to the subnet. "pools": [ { - // Restricts this pool to be only used for the client + // Restricts this pool to only be used for client // requests belonging to a particular client class. "client-class": "phones_server1", - // Pool level list of DHCP options. + // Pool-level list of DHCP options. "option-data": [], // Address range used for client assignments. @@ -955,11 +955,11 @@ "require-client-classes": [ "late" ] }, { - // Restricts this pool to be only used for the client + // Restricts this pool to only be used for client // requests belonging to a particular client class. "client-class": "phones_server2", - // Pool level list of DHCP options. + // Pool-level list of DHCP options. "option-data": [], // Address range used for client assignments. @@ -980,44 +980,43 @@ // Subnet specific max referred lifetime. "max-preferred-lifetime": 2500, - // Boolean flag indicating if the server can respond to + // Boolean flag indicating whether the server can respond to // a Solicit message including a Rapid Commit option with // the Reply message (See DHCPv6 rapid commit). "rapid-commit": false, - // Subnet level rebind timer. + // Subnet-level value of the rebind timer. "rebind-timer": 40, - // List of IPv4 relay addresses for which this subnet - // is selected. + // List of IPv6 relay addresses for which this subnet is selected. "relay": { "ip-addresses": [ "2001:db8:0:f::1" ] }, - // Subnet level renew timer. + // Subnet-level renew timer. "renew-timer": 30, - // Enumeration specifying server's mode of operation when it + // Enumeration specifying the server's mode of operation when it // fetches host reservations. // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and + // "reservations-in-subnet", and // "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved + // Specify whether the server can assume that all reserved // addresses are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, - // Subnet level compute T1 and T2 timers. + // Subnet-level compute T1 and T2 timers. "calculate-tee-times": true, // T1 = valid lifetime * .5. @@ -1029,11 +1028,11 @@ // Cache threshold = valid lifetime * .25. "cache-threshold": .25, - // Subnet level cache maximum. - "cache-max-age": 10, + // Subnet-level cache maximum. + "cache-max-age": 1000, - // List of static IPv6 reservations assigned to the clients belonging - // to this subnet. For detailed example see reservations.json. + // List of static IPv6 reservations assigned to clients belonging + // to this subnet. For a detailed example, see reservations.json. "reservations": [ { // Identifier used for client matching. Supported values are @@ -1049,7 +1048,7 @@ // Reserved hostname. "hostname": "foo.example.com", - // Reservation specific option data. + // Reservation-specific option data. "option-data": [ { // Option name. @@ -1069,24 +1068,24 @@ // Subnet prefix. "subnet": "2001:db8::/32", - // Subnet level (default) valid lifetime. + // Subnet-level (default) valid lifetime. "valid-lifetime": 6000, - // Subnet level min valid lifetime. + // Subnet-level min valid lifetime. "min-valid-lifetime": 4000, - // Subnet level max valid lifetime. + // Subnet-level max valid lifetime. "max-valid-lifetime": 8000 } ], - // Shared network level (default) valid lifetime. + // Shared-network level (default) valid lifetime. "valid-lifetime": 6001, - // Shared network level min valid lifetime. + // Shared-network level min valid lifetime. "min-valid-lifetime": 4001, - // Shared network level max valid lifetime. + // Shared-network level max valid lifetime. "max-valid-lifetime": 8001 } ], @@ -1094,7 +1093,7 @@ // List of IPv6 subnets which don't belong to any shared network. "subnet6": [], - // Global (default) valid lifetime value. + // Global valid lifetime value. "valid-lifetime": 6000, // Global min valid lifetime value. @@ -1107,19 +1106,19 @@ "reservations": [], // Configuration control (currently not used, i.e. this syntax - // is already defined but corresponding feature is not implemented). + // is already defined but the corresponding feature is not implemented). "config-control": { - // Only configuration databases entry is defined. + // Only the configuration databases entry is defined. "config-databases": [ { // Name of the database to connect to. "name": "config", - // Type of the database, e.g. "mysql", "postgresql". + // Type of database, e.g. "mysql", "postgresql". "type": "mysql" } ], - // Intervals between attempts to fetch configuration updates + // Interval between attempts to fetch configuration updates // via the configuration backends used. "config-fetch-wait-time": 30 }, @@ -1127,12 +1126,12 @@ // Server tag. "server-tag": "my DHCPv6 server", - // DHCP queue control parameters. + // DHCP queue-control parameters. "dhcp-queue-control": { // Enable queue is mandatory. "enable-queue": true, - // Queue type was mandatory. + // Queue type is mandatory. "queue-type": "kea-ring6", // Capacity is optional. @@ -1142,15 +1141,15 @@ // Fetches host reservations. // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" parameters. + // "reservations-in-subnet", and "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and @@ -1173,11 +1172,11 @@ "cache-threshold": .25, // Global cache maximum. - "cache-max-age": 10, + "cache-max-age": 1000, // String of zero or more characters with which to replace each // invalid character in the Client FQDN. The default - // value is an empty string which will cause invalid characters + // value is an empty string, which will cause invalid characters // to be omitted rather than replaced. "hostname-char-replacement": "x", @@ -1189,7 +1188,7 @@ "loggers": [ { // Debug level, a value between 0..99. The greater the value - // the more detailed debug log. + // the more detailed the debug log. "debuglevel": 99, // Name of the logger. @@ -1198,16 +1197,16 @@ // Configures how the log should be output. "output_options": [ { - // Determines whether the log should flushed to a file. + // Determines whether the log should be flushed to a file. "flush": true, - // Specifies maximum filesize before the file is being rotated. + // Specifies maximum filesize before the file is rotated. "maxsize": 10240000, - // Specifies the maximum number of rotated files being kept. + // Specifies the maximum number of rotated files to be kept. "maxver": 1, - // Specifies logging destination. + // Specifies the logging destination. "output": "stdout", // Specifies log entry content @@ -1220,7 +1219,7 @@ } ], - // Look at advanced example for the use of user-contexts. + // Look at advanced examples for the use of user-contexts. "user-context": { } } } diff --git a/doc/examples/kea6/config-backend.json b/doc/examples/kea6/config-backend.json index eca306d924..ffdae1e5b0 100644 --- a/doc/examples/kea6/config-backend.json +++ b/doc/examples/kea6/config-backend.json @@ -1,7 +1,7 @@ // This is an example configuration file for the DHCPv4 server in Kea. // It demonstrates how to enable Kea Configuration Backend using MySQL. // It requires that libdhcp_mysql_cb.so library is available and -// optionally libdhcp_cb_cmds.so hooks library. +// optionally libdhcp_cb_cmds.so hook library. { "Dhcp6": @@ -24,7 +24,7 @@ // This parameter controls how the server accesses the configuration // database. Currently only one database type is available - "mysql". - // It requires that libdhcp_mysql_cb.so hooks library is loaded. + // It requires that libdhcp_mysql_cb.so hook library is loaded. "config-control": { // A list of database backends to connect to. Currently, it is limited // to a single backend. diff --git a/doc/examples/kea6/duid.json b/doc/examples/kea6/duid.json index 0c00c74e94..49f1874cce 100644 --- a/doc/examples/kea6/duid.json +++ b/doc/examples/kea6/duid.json @@ -33,7 +33,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/kea6/global-reservations.json b/doc/examples/kea6/global-reservations.json index 872a0e2ce5..c7fac51943 100644 --- a/doc/examples/kea6/global-reservations.json +++ b/doc/examples/kea6/global-reservations.json @@ -17,7 +17,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 @@ -41,16 +41,16 @@ // This directive tells Kea that reservations are global. Note that this // can also be specified at shared network and/or subnet level. // "reservation-mode": "global", -// It is replaced by the "reservations-global", "reservations-in-subnet" and +// It is replaced by the "reservations-global", "reservations-in-subnet", and // "reservations-out-of-pool" parameters. -// Specify if server should lookup global reservations. +// Specify whether the server should look up global reservations. "reservations-global": true, -// Specify if server should lookup in-subnet reservations. +// Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": false, -// Specify if server can assume that all reserved addresses +// Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and "subnet6" levels. diff --git a/doc/examples/kea6/ha-hot-standby-server1-with-tls.json b/doc/examples/kea6/ha-hot-standby-server1-with-tls.json index bd57d06365..f9c604be3b 100644 --- a/doc/examples/kea6/ha-hot-standby-server1-with-tls.json +++ b/doc/examples/kea6/ha-hot-standby-server1-with-tls.json @@ -1,5 +1,5 @@ // This is an example configuration of the Kea DHCPv6 server. It uses High -// Availability hooks library and Lease Commands hooks library to enable +// Availability hook library and Lease Commands hook library to enable // High Availability function for the DHCP server. Note that almost exactly // the same configuration must be used on the second server (partner). // The only difference is that "this-server-name" must be set to "server2" @@ -38,7 +38,7 @@ "type": "memfile" }, - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. "hooks-libraries": [ @@ -50,7 +50,7 @@ "parameters": { } }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/opt/lib/kea/hooks/libdhcp_ha.so", "parameters": { // High Availability configuration is specified for the HA hook library. @@ -151,7 +151,7 @@ "debuglevel": 0 }, { - // This section specifies configuration of the HA hooks library specific + // This section specifies configuration of the HA hook library-specific // logger. "name": "kea-dhcp6.ha-hooks", "output_options": [ diff --git a/doc/examples/kea6/ha-hot-standby-server2.json b/doc/examples/kea6/ha-hot-standby-server2.json index cd9de933ff..bb1604e50d 100644 --- a/doc/examples/kea6/ha-hot-standby-server2.json +++ b/doc/examples/kea6/ha-hot-standby-server2.json @@ -1,5 +1,5 @@ // This is an example configuration of the Kea DHCPv6 server. It uses High -// Availability hooks library and Lease Commands hooks library to enable +// Availability hook library and Lease Commands hook library to enable // High Availability function for the DHCP server. Note that almost exactly // the same configuration must be used on the second server (partner). // The only difference is that "this-server-name" must be set to "server1" @@ -37,7 +37,7 @@ "type": "memfile" }, - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. "hooks-libraries": [ @@ -49,7 +49,7 @@ "parameters": { } }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/opt/lib/kea/hooks/libdhcp_ha.so", "parameters": { // High Availability configuration is specified for the HA hook library. @@ -142,7 +142,7 @@ "debuglevel": 0 }, { - // This section specifies configuration of the HA hooks library specific + // This section specifies configuration of the HA hook library-specific // logger. "name": "kea-dhcp6.ha-hooks", "output_options": [ diff --git a/doc/examples/kea6/hooks.json b/doc/examples/kea6/hooks.json index 60fc898235..73a7d0708d 100644 --- a/doc/examples/kea6/hooks.json +++ b/doc/examples/kea6/hooks.json @@ -1,5 +1,5 @@ // This is an example configuration file for the DHCPv6 server in Kea -// illustrating the configuration of hooks libraries. It uses a basic scenario +// illustrating the configuration of hook libraries. It uses a basic scenario // of one IPv6 subnet configured with the default values for all parameters. {"Dhcp6": @@ -34,7 +34,7 @@ } ], -// Set up the hooks libraries. For this example, we assume that two libraries +// Set up the hook libraries. For this example, we assume that two libraries // are loaded, called "security" and "charging". Note that order is important: // "security" is specified first so if both libraries supply a hook function // for a given hook, the function in "security" will be called before that in diff --git a/doc/examples/kea6/leases-expiration.json b/doc/examples/kea6/leases-expiration.json index c5320ff7ed..8c2c1759c1 100644 --- a/doc/examples/kea6/leases-expiration.json +++ b/doc/examples/kea6/leases-expiration.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. // Note, we're setting the maximum number of row read errors to 100, // (defaults to 0, meaning unlimited). "lease-database": { @@ -33,7 +33,7 @@ // leases after 10 attempts, a warning message is issued. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are not // 0, when the client sends a release message the lease is expired instead of -// being deleted from the lease storage. +// being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 5, "hold-reclaimed-time": 1800, diff --git a/doc/examples/kea6/multiple-options.json b/doc/examples/kea6/multiple-options.json index b6d8be857c..2d4defe0ee 100644 --- a/doc/examples/kea6/multiple-options.json +++ b/doc/examples/kea6/multiple-options.json @@ -12,7 +12,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea6/mysql-reservations.json b/doc/examples/kea6/mysql-reservations.json index 769c111a71..74beb2c631 100644 --- a/doc/examples/kea6/mysql-reservations.json +++ b/doc/examples/kea6/mysql-reservations.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/kea6/pgsql-reservations.json b/doc/examples/kea6/pgsql-reservations.json index c7e204c390..6c61019650 100644 --- a/doc/examples/kea6/pgsql-reservations.json +++ b/doc/examples/kea6/pgsql-reservations.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea6/reservations.json b/doc/examples/kea6/reservations.json index f18ba62961..d6452a2778 100644 --- a/doc/examples/kea6/reservations.json +++ b/doc/examples/kea6/reservations.json @@ -15,7 +15,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 @@ -52,13 +52,13 @@ // It is replaced by the "reservations-global", "reservations-in-subnet" // and "reservations-out-of-pool" parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "shared-networks" and diff --git a/doc/examples/kea6/several-subnets.json b/doc/examples/kea6/several-subnets.json index 78bb066b80..8ef391674d 100644 --- a/doc/examples/kea6/several-subnets.json +++ b/doc/examples/kea6/several-subnets.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea6/shared-network.json b/doc/examples/kea6/shared-network.json index 5666e014a5..9655f73b7b 100644 --- a/doc/examples/kea6/shared-network.json +++ b/doc/examples/kea6/shared-network.json @@ -72,16 +72,16 @@ // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. // If specified, it is inherited by "subnet6" levels. @@ -103,13 +103,13 @@ "renew-timer": 10, // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, @@ -130,13 +130,13 @@ "renew-timer": 10, // "reservation-mode": "all", // It is replaced by the "reservations-global", - // "reservations-in-subnet" and "reservations-out-of-pool" + // "reservations-in-subnet", and "reservations-out-of-pool" // parameters. - // Specify if server should lookup global reservations. + // Specify whether the server should look up global reservations. "reservations-global": false, - // Specify if server should lookup in-subnet reservations. + // Specify whether the server should look up in-subnet reservations. "reservations-in-subnet": true, - // Specify if server can assume that all reserved addresses + // Specify whether the server can assume that all reserved addresses // are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, diff --git a/doc/examples/kea6/simple.json b/doc/examples/kea6/simple.json index acd3499b65..342c035320 100644 --- a/doc/examples/kea6/simple.json +++ b/doc/examples/kea6/simple.json @@ -14,7 +14,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/kea6/tee-times.json b/doc/examples/kea6/tee-times.json index e6a21af256..0a0e8605f6 100644 --- a/doc/examples/kea6/tee-times.json +++ b/doc/examples/kea6/tee-times.json @@ -13,7 +13,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile" }, diff --git a/doc/examples/kea6/with-ddns.json b/doc/examples/kea6/with-ddns.json index 078a64feeb..660213bba0 100644 --- a/doc/examples/kea6/with-ddns.json +++ b/doc/examples/kea6/with-ddns.json @@ -14,7 +14,7 @@ // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. -// We'll use memfile because it doesn't require any prior set up. +// We'll use memfile because it doesn't require any prior set up. "lease-database": { "type": "memfile", "lfc-interval": 3600 diff --git a/doc/examples/netconf/simple-dhcp4.json b/doc/examples/netconf/simple-dhcp4.json index 3e2105e2af..c942fa4cb6 100644 --- a/doc/examples/netconf/simple-dhcp4.json +++ b/doc/examples/netconf/simple-dhcp4.json @@ -79,7 +79,7 @@ // // // Some libraries may support parameters. Make sure you // // type this section carefully, as the CA does not validate - // // it (because the format is library specific). + // // it (because the format is library-specific). // "parameters": { // "param1": "foo" // } @@ -97,7 +97,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/netconf/simple-dhcp6.json b/doc/examples/netconf/simple-dhcp6.json index 4393f67606..6fb0554ed4 100644 --- a/doc/examples/netconf/simple-dhcp6.json +++ b/doc/examples/netconf/simple-dhcp6.json @@ -80,7 +80,7 @@ // // // Some libraries may support parameters. Make sure you // // type this section carefully, as the CA does not validate - // // it (because the format is library specific). + // // it (because the format is library-specific). // "parameters": { // "param1": "foo" // } @@ -98,7 +98,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/template-ha-mt-tls/info.md b/doc/examples/template-ha-mt-tls/info.md index f52f250875..f551220340 100644 --- a/doc/examples/template-ha-mt-tls/info.md +++ b/doc/examples/template-ha-mt-tls/info.md @@ -5,7 +5,7 @@ Below are some templates to assist in configuring a secure Kea DHCP server with multi-threading. These templates make the following assumptions: - The administrator wants to set up High Availability (HA) with multi-threading. -- The machines running Kea with multi-threading have at least four CPUs. +- The machines running Kea with multi-threading have at least four CPU cores. - The connection to the peer is secured using TLS. The logical setup consists of two hosts, each running a Kea DHCPv4 server and a Control Agent (CA). diff --git a/doc/examples/template-ha-mt-tls/kea-ca-1.conf b/doc/examples/template-ha-mt-tls/kea-ca-1.conf index 38aed10613..cec984bff5 100644 --- a/doc/examples/template-ha-mt-tls/kea-ca-1.conf +++ b/doc/examples/template-ha-mt-tls/kea-ca-1.conf @@ -72,7 +72,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/template-ha-mt-tls/kea-ca-2.conf b/doc/examples/template-ha-mt-tls/kea-ca-2.conf index 1f08beaffe..3835a49f48 100644 --- a/doc/examples/template-ha-mt-tls/kea-ca-2.conf +++ b/doc/examples/template-ha-mt-tls/kea-ca-2.conf @@ -72,7 +72,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/template-ha-mt-tls/kea-dhcp4-1.conf b/doc/examples/template-ha-mt-tls/kea-dhcp4-1.conf index e50d548322..5db639670d 100644 --- a/doc/examples/template-ha-mt-tls/kea-dhcp4-1.conf +++ b/doc/examples/template-ha-mt-tls/kea-dhcp4-1.conf @@ -1,6 +1,6 @@ // This is an example configuration of the Kea DHCPv4 server 1: // -// - uses High Availability hooks library and Lease Commands hooks library +// - uses High Availability hook library and Lease Commands hook library // to enable High Availability function for the DHCP server. This config // file is for the primary (the active) server. // - uses memfile, which stores lease data in a local CSV file @@ -43,7 +43,7 @@ // When multi-threading is enabled, Kea will process packets on a // number of multiple threads configurable through this option. The - // value must be a positive integer (0 means auto detect). + // value must be a positive integer (0 means auto-detect). "thread-pool-size": 4, // When multi-threading is enabled, Kea will read packets from the @@ -78,7 +78,7 @@ // use host reservation. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are // not 0, when the client sends a release message the lease is expired - // instead of being deleted from the lease storage. + // instead of being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 3600, "hold-reclaimed-time": 172800, @@ -86,7 +86,7 @@ "max-reclaim-time": 0 }, - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. Note the library name // should be the same, but the path is OS specific. @@ -99,7 +99,7 @@ }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so", "parameters": { // Each server should have the same HA configuration, except for the diff --git a/doc/examples/template-ha-mt-tls/kea-dhcp4-2.conf b/doc/examples/template-ha-mt-tls/kea-dhcp4-2.conf index 2b17262f98..a98e6b3866 100644 --- a/doc/examples/template-ha-mt-tls/kea-dhcp4-2.conf +++ b/doc/examples/template-ha-mt-tls/kea-dhcp4-2.conf @@ -1,6 +1,6 @@ // This is an example configuration of the Kea DHCPv4 server 2: // -// - uses High Availability hooks library and Lease Commands hooks library +// - uses High Availability hook library and Lease Commands hook library // to enable High Availability function for the DHCP server. This config // file is for the secondary (the standby) server. // - uses memfile, which stores lease data in a local CSV file @@ -43,7 +43,7 @@ // When multi-threading is enabled, Kea will process packets on a // number of multiple threads configurable through this option. The - // value must be a positive integer (0 means auto detect). + // value must be a positive integer (0 means auto-detect). "thread-pool-size": 4, // When multi-threading is enabled, Kea will read packets from the @@ -78,7 +78,7 @@ // use host reservation. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are // not 0, when the client sends a release message the lease is expired - // instead of being deleted from the lease storage. + // instead of being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 3600, "hold-reclaimed-time": 172800, @@ -86,7 +86,7 @@ "max-reclaim-time": 0 }, - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. Note the library name // should be the same, but the path is OS specific. @@ -99,7 +99,7 @@ }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so", "parameters": { // Each server should have the same HA configuration, except for the diff --git a/doc/examples/template-power-user-home/info.md b/doc/examples/template-power-user-home/info.md index 21baa204dc..9335ff8ccc 100644 --- a/doc/examples/template-power-user-home/info.md +++ b/doc/examples/template-power-user-home/info.md @@ -60,7 +60,7 @@ The whole subnet is split into dynamic and static pools: To deploy this setup, perform the following steps: -1. Install the CA and DHCPv4 daemon on host-1, and copy the configuration files to their typical locations. +1. Install the CA and the DHCPv4 server on host-1, and copy the configuration files to their typical locations. They are usually in ``/etc/kea`` on Linux and ``/usr/local/etc/kea`` on FreeBSD, and the files are typically called ``kea-ctrl-agent.conf`` and ``kea-dhcp4.conf``. Please consult the startup scripts for any specific system. @@ -91,7 +91,7 @@ To deploy this setup, perform the following steps: 4. Verify that communication between the hosts works in the opposite direction as well (host-2 can connect to host-1), by repeating step 3 from host-2 using host-1's IP address and port. -5. Install the CA and DHCPv4 daemon on host-2, as in steps 1 and 2. The config file for the +5. Install the CA and the DHCPv4 server on host-2, as in steps 1 and 2. The config file for the standby server is very similar to the one on the primary server, other than the definition of the ``this-server-name`` field (and possibly the interface names). diff --git a/doc/examples/template-power-user-home/kea-ca-1.conf b/doc/examples/template-power-user-home/kea-ca-1.conf index 2620ea007e..04945c8a3e 100644 --- a/doc/examples/template-power-user-home/kea-ca-1.conf +++ b/doc/examples/template-power-user-home/kea-ca-1.conf @@ -48,7 +48,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/template-power-user-home/kea-ca-2.conf b/doc/examples/template-power-user-home/kea-ca-2.conf index dccf5d9d87..c876012aff 100644 --- a/doc/examples/template-power-user-home/kea-ca-2.conf +++ b/doc/examples/template-power-user-home/kea-ca-2.conf @@ -48,7 +48,7 @@ // Several additional parameters are possible in addition // to the typical output. Flush determines whether logger // flushes output to a file. Maxsize determines maximum - // filesize before the file is being rotated. maxver + // filesize before the file is rotated. maxver // specifies the maximum number of rotated files being // kept. "flush": true, diff --git a/doc/examples/template-power-user-home/kea-dhcp4-1.conf b/doc/examples/template-power-user-home/kea-dhcp4-1.conf index 8d635560ab..48b8c2eb86 100644 --- a/doc/examples/template-power-user-home/kea-dhcp4-1.conf +++ b/doc/examples/template-power-user-home/kea-dhcp4-1.conf @@ -1,6 +1,6 @@ // This is an example configuration of the Kea DHCPv4 server 1: // -// - uses High Availability hooks library and Lease Commands hooks library +// - uses High Availability hook library and Lease Commands hook library // to enable High Availability function for the DHCP server. This config // file is for the primary (the active) server. // - uses memfile, which stores lease data in a local CSV file @@ -59,7 +59,7 @@ // use host reservation. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are // not 0, when the client sends a release message the lease is expired - // instead of being deleted from the lease storage. + // instead of being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 3600, "hold-reclaimed-time": 172800, @@ -67,7 +67,7 @@ "max-reclaim-time": 0 }, - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. Note the library name // should be the same, but the path is OS specific. @@ -80,7 +80,7 @@ }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so", "parameters": { // Each server should have the same HA configuration, except for the diff --git a/doc/examples/template-power-user-home/kea-dhcp4-2.conf b/doc/examples/template-power-user-home/kea-dhcp4-2.conf index 731671bb1e..29d8f4ca06 100644 --- a/doc/examples/template-power-user-home/kea-dhcp4-2.conf +++ b/doc/examples/template-power-user-home/kea-dhcp4-2.conf @@ -1,6 +1,6 @@ // This is an example configuration of the Kea DHCPv4 server 2: // -// - uses High Availability hooks library and Lease Commands hooks library +// - uses High Availability hook library and Lease Commands hook library // to enable High Availability function for the DHCP server. This config // file is for the primary (the active) server. // - uses memfile, which stores lease data in a local CSV file @@ -59,7 +59,7 @@ // use host reservation. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are // not 0, when the client sends a release message the lease is expired - // instead of being deleted from the lease storage. + // instead of being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 3600, "hold-reclaimed-time": 172800, @@ -67,7 +67,7 @@ "max-reclaim-time": 0 }, - // HA requires two hooks libraries to be loaded: libdhcp_lease_cmds.so and + // HA requires two hook libraries to be loaded: libdhcp_lease_cmds.so and // libdhcp_ha.so. The former handles incoming lease updates from the HA peers. // The latter implements high availability feature for Kea. Note the library name // should be the same, but the path is OS specific. @@ -80,7 +80,7 @@ }, { - // The HA hooks library should be loaded. + // The HA hook library should be loaded. "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so", "parameters": { // Each server should have the same HA configuration, except for the diff --git a/doc/sphinx/arm/classify.rst b/doc/sphinx/arm/classify.rst index 164d26a712..6fe13bc2b4 100644 --- a/doc/sphinx/arm/classify.rst +++ b/doc/sphinx/arm/classify.rst @@ -837,7 +837,7 @@ is not mandatory that the flag be set to ``true``. limits that apply to all packets associated with a class spawned at runtime, according to the ``template-test`` expression in the parent template class. For a more detailed description of how to configure limits using the - limits hooks library, see :ref:`hooks-limits-configuration`. + limits hook library, see :ref:`hooks-limits-configuration`. For example, using the configuration below, ingress DHCPv6 packets that have client ID values (in the format expressed by the Kea evaluator) ``foobar`` and ``foofoo`` both amount to the same limit of 60 packets per day, while @@ -944,7 +944,7 @@ bottleneck. Using Static Host Reservations in Classification ================================================ -Classes can be statically assigned to the clients using techniques +Classes can be statically assigned to clients using techniques described in :ref:`reservation4-client-classes` and :ref:`reservation6-client-classes`. diff --git a/doc/sphinx/arm/ctrl-channel.rst b/doc/sphinx/arm/ctrl-channel.rst index cc6fffa108..9dbfe1175e 100644 --- a/doc/sphinx/arm/ctrl-channel.rst +++ b/doc/sphinx/arm/ctrl-channel.rst @@ -572,7 +572,7 @@ as "Dhcp4" or "Dhcp6". For example: If the new configuration proves to be invalid, the server retains its current configuration; however, in some cases a fatal error message is logged -indicating that the server no longer provides any service: a working +indicating that the server is no longer providing any service: a working configuration must be loaded as soon as possible. If the control channel is dead, the configuration file can still be reloaded using the ``SIGHUP`` signal. If that is unsuccessful, restart the server. diff --git a/doc/sphinx/arm/dhcp4-srv.rst b/doc/sphinx/arm/dhcp4-srv.rst index 15225828bc..887ff89214 100644 --- a/doc/sphinx/arm/dhcp4-srv.rst +++ b/doc/sphinx/arm/dhcp4-srv.rst @@ -46,7 +46,7 @@ the following command-line switches: loads it, checks it, and exits. It performs extra checks beyond what ``-t`` offers, such as establishing database connections (for the lease backend, host reservations backend, configuration backend, and forensic logging - backend), loading hook libraries, parsing configurations, etc. + backend), loading hook libraries, parsing hook-library configurations, etc. It does not open UNIX or TCP/UDP sockets, nor does it open or rotate files, as any of these actions could interfere with a running process on the same machine. @@ -870,7 +870,7 @@ server to listen on all available interfaces: "interfaces": [ "*" ] } ... - }, + } The asterisk plays the role of a wildcard and means "listen on all interfaces." However, it is usually a good idea to explicitly specify @@ -1569,7 +1569,7 @@ responses on subnet ``192.0.3.0/24``. ``never-send`` has precedence over inheritance chain, they are applied - even if they are disabled in other places which would normally receive a higher priority. For instance, if one of the flags is enabled in the global scope, - but disabled at the subnet level, it will be enabled, + but disabled at the subnet level, it is enabled, disregarding the subnet-level setting. .. note:: @@ -1762,14 +1762,14 @@ to obtain the addresses of multiple NTP servers. configuration syntax to create custom option definitions (formats). Creation of custom definitions for standard options is generally not permitted, even if the definition being created matches the actual -option format defined in the RFCs. There is an exception to this rule +option format defined in the RFCs. However, there is an exception to this rule for standard options for which Kea currently does not provide a definition. To use such options, a server administrator must create a definition as described in :ref:`dhcp4-custom-options` in the ``dhcp4`` option space. This definition should match the option format described in the relevant RFC, -but the configuration mechanism will allow any option format as it -currently has no means to validate it. +but the configuration mechanism allows any option format as there is +currently no way to validate it. The currently supported standard DHCPv4 options are listed in the table below. "Name" and "Code" are the @@ -2277,12 +2277,12 @@ The option's values are set in an ``option-data`` statement as follows: ... } -``csv-format`` is set to ``"true"`` to indicate that the ``data`` field +``csv-format`` is set to ``true`` to indicate that the ``data`` field comprises a comma-separated list of values. The values in ``data`` must correspond to the types set in the ``record-types`` field of the option definition. -When ``array`` is set to ``"true"`` and ``type`` is set to ``"record"``, the +When ``array`` is set to ``true`` and ``type`` is set to ``"record"``, the last field is an array, i.e. it can contain more than one value, as in: :: @@ -2757,8 +2757,8 @@ defining sub-options for a standard option, because one is created by default if the standard option is meant to convey any sub-options (see :ref:`dhcp4-vendor-opts`). -If we want a DHCPv4 option called ``container`` with code -222, that conveys two sub-options with codes 1 and 2, we first need to +If we want a DHCPv4 option called ``container`` with code 222, +that conveys two sub-options with codes 1 and 2, we first need to define the new sub-options: :: @@ -2900,7 +2900,7 @@ specified: Support for Long Options ------------------------ -The kea-dhcp4 server partially supports long options (RFC3396). +The ``kea-dhcp4`` server partially supports long options (RFC3396). Since Kea 2.1.6, the server accepts configuring long options and sub-options (longer than 255 bytes). The options and sub-options are stored internally in their unwrapped form and they can be processed as usual using the parser @@ -3524,14 +3524,14 @@ control this communication: Either an IPv4 or IPv6 address may be specified. - ``server-port`` - This is the port on which D2 listens for requests. The default - value is 53001. + value is ``53001``. - ``sender-ip`` - This is the IP address which ``kea-dhcp4`` uses to send requests to D2. The default value is blank, which instructs ``kea-dhcp4`` to select a suitable address. - ``sender-port`` - This is the port which ``kea-dhcp4`` uses to send requests to D2. - The default value of 0 instructs ``kea-dhcp4`` to select a suitable port. + The default value of ``0`` instructs ``kea-dhcp4`` to select a suitable port. - ``max-queue-size`` - This is the maximum number of requests allowed to queue while waiting to be sent to D2. This value guards against requests @@ -3541,7 +3541,7 @@ control this communication: until the queue backlog has been sufficiently reduced. The intent is to allow the ``kea-dhcp4`` server to continue lease operations without running the risk that its memory usage grows without limit. The - default value is 1024. + default value is ``1024``. - ``ncr-protocol`` - This specifies the socket protocol to use when sending requests to D2. Currently only UDP is supported. @@ -4362,18 +4362,18 @@ An example configuration that sets these parameters looks as follows: Multi-Threading Settings With Different Database Backends --------------------------------------------------------- -Both ``kea-dhcp4`` and ``kea-dhcp6`` are tested by ISC to determine which settings +The Kea DHCPv4 server is benchmarked by ISC to determine which settings give the best performance. Although this section describes our results, they are merely recommendations and are very dependent on the particular hardware used -for testing. We strongly advise that administrators run their own performance tests. +for benchmarking. We strongly advise that administrators run their own performance benchmarks. A full report of performance results for the latest stable Kea version can be found `here `_. -This includes hardware and test scenario descriptions, as well as +This includes hardware and benchmark scenario descriptions, as well as current results. After enabling multi-threading, the number of threads is set by the ``thread-pool-size`` -parameter. Results from our tests show that the best settings for +parameter. Results from our experiments show that the best settings for ``kea-dhcp4`` are: - ``thread-pool-size``: 4 when using ``memfile`` for storing leases. @@ -4382,11 +4382,11 @@ parameter. Results from our tests show that the best settings for - ``thread-pool-size``: 8 when using ``postgresql``. -Another very important parameter is ``packet-queue-size``; in our tests we +Another very important parameter is ``packet-queue-size``; in our benchmarks we used it as a multiplier of ``thread-pool-size``. The actual setting strongly depends on ``thread-pool-size``. -We saw the best results in our tests with the following settings: +We saw the best results in our benchmarks with the following settings: - ``packet-queue-size``: 7 * ``thread-pool-size`` when using ``memfile`` for storing leases; in our case it was 7 * 4 = 28. This means that at any given @@ -5485,13 +5485,13 @@ following can be used: "valid-lifetime": 600, "subnet4": [ { "subnet": "10.0.0.0/24", - # It is replaced by the "reservations-global" - # "reservations-in-subnet" and "reservations-out-of-pool" + # It is replaced by the "reservations-global", + # "reservations-in-subnet", and "reservations-out-of-pool" # parameters. # "reservation-mode": "global", - # Specify if the server should lookup global reservations. + # Specify if the server should look up global reservations. "reservations-global": true, - # Specify if the server should lookup in-subnet reservations. + # Specify if the server should look up in-subnet reservations. "reservations-in-subnet": false, # Specify if the server can assume that all reserved addresses # are out-of-pool. It can be ignored because "reservations-in-subnet" @@ -5599,11 +5599,11 @@ following example: "hw-address": "aa:bb:cc:dd:ee:fe", "client-classes": [ "reserved_class" ] }], - # It is replaced by the "reservations-global" - # "reservations-in-subnet" and "reservations-out-of-pool" parameters. - # Specify if the server should lookup global reservations. + # It is replaced by the "reservations-global", + # "reservations-in-subnet", and "reservations-out-of-pool" parameters. + # Specify if the server should look up global reservations. "reservations-global": true, - # Specify if the server should lookup in-subnet reservations. + # Specify if the server should look up in-subnet reservations. "reservations-in-subnet": false, # Specify if the server can assume that all reserved addresses # are out-of-pool. It can be ignored because "reservations-in-subnet" @@ -5921,7 +5921,7 @@ introduced: # and it must be unique among all shared networks. "name": "my-secret-lair-level-1", - # The subnet selector can be specified at the shared network level. + # The subnet selector can be specified at the shared-network level. # Subnets from this shared network will be selected for directly # connected clients sending requests to the server's "eth0" interface. "interface": "eth0", @@ -6040,7 +6040,7 @@ assigned to the second subnet, it will get a 10-minute lease, a Local and Relayed Traffic in Shared Networks -------------------------------------------- -It is possible to specify an interface name at the shared network level, +It is possible to specify an interface name at the shared-network level, to tell the server that this specific shared network is reachable directly (not via relays) using the local network interface. As all subnets in a shared network are expected to be used on the same physical @@ -7199,11 +7199,12 @@ of LED devices could be configured in the following way: } ] } -Kea does not interpret or use the user-context information; it simply stores it and makes it -available to the hook libraries. It is up to each hook library to -extract that information and use it. The parser translates a ``comment`` -entry into a user context with the entry, which allows a comment to be -attached inside the configuration itself. +Kea does not interpret or use the user-context information; it simply +stores it and makes it available to the hook libraries. It is up to each +hook library to extract that information and use it. The parser +translates a ``comment`` entry into a user context with the entry, which +allows a comment to be attached inside the configuration itself. + .. _dhcp4-std: @@ -7307,7 +7308,7 @@ DHCPv4 Server Limitations These are the current known limitations of the Kea DHCPv4 server software. Most of them are reflections of the current stage of development and should be -treated as “not implemented yet,” rather than as actual limitations. +treated as “not implemented yet”, rather than as actual limitations. However, some of them are implications of the design choices made. Those are clearly marked as such. @@ -7731,8 +7732,8 @@ selects the random allocation instead. The random allocation will be used for the subnet with ID 2, while the iterative allocation will be used for the subnet with ID 1. -The following sections describe the supported allocators and -their recommended uses. +The following sections describe the supported allocators and their +recommended uses. .. note:: diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst index 242f09474e..1e9f595e34 100644 --- a/doc/sphinx/arm/dhcp6-srv.rst +++ b/doc/sphinx/arm/dhcp6-srv.rst @@ -44,9 +44,9 @@ the following command-line switches: - ``-T file`` - specifies a configuration file to be tested. ``kea-dhcp6`` loads it, checks it, and exits. It performs extra checks beyond what ``-t`` - offers, such as establising database connections (for the lease backend, + offers, such as establishing database connections (for the lease backend, host reservations backend, configuration backend, and forensic logging - backend), loading hook libraries, parsing configurations, etc. + backend), loading hook libraries, parsing hook-library configurations, etc. It does not open UNIX or TCP/UDP sockets, nor does it open or rotate files, as any of these actions could interfere with a running process on the same machine. @@ -811,7 +811,6 @@ Tuning Database Timeouts for Hosts Storage See :ref:`tuning-database-timeouts6`. - .. _dhcp6-interface-configuration: Interface Configuration @@ -1267,7 +1266,7 @@ and which is delegated a prefix from this pool. +-------------------------------------------------------------------------------+---------+------------------------------------------------------------------------------------+ | Prefix delegation pools not matching the subnet prefix | Yes | It is common in many deployments to configure the prefix delegation pools not | | | | matching the subnet prefix, e.g. a prefix pool of 3000::/96 within the | - | | | 2001:db8:1::/64 subnet. Such use cases are supported by Kea DHCPv6 server. | + | | | 2001:db8:1::/64 subnet. Such use cases are supported by the Kea DHCPv6 server. | +-------------------------------------------------------------------------------+---------+------------------------------------------------------------------------------------+ .. _dhcp6-std-options: @@ -1496,7 +1495,7 @@ on subnet ``2001:db8:1::/64``. ``never-send`` has precedence over inheritance chain, they are applied - even if they are disabled in other places which would normally receive a higher priority. For instance, if one of the flags is enabled in the global scope, - but disabled at the subnet level, it will be enabled, + but disabled at the subnet level, it is enabled, disregarding the subnet-level setting. .. note:: @@ -1577,13 +1576,13 @@ obtains an address from the given pool: } Options can also be specified in class or host-reservation scope. The -current Kea options precedence order is (from most important): host +current Kea options precedence order is (from most important to least): host reservation, pool, subnet, shared network, class, global. When a data field is a string and that string contains the comma (``,``; U+002C) character, the comma must be escaped with two backslashes (``\\,``; U+005C). This double escape is required because both the routine -splitting CSV data into fields and JSON use the same escape character; a +splitting of CSV data into fields and JSON use the same escape character; a single escape (``\,``) would make the JSON invalid. For example, the string "EST5EDT4,M3.2.0/02:00,M11.1.0/02:00" must be represented as: @@ -2094,7 +2093,7 @@ defined in the following way: ... } -The ``type`` is set to ``record`` to indicate that the option contains +The ``type`` is set to ``"record"`` to indicate that the option contains multiple values of different types. These types are given as a comma-separated list in the ``record-types`` field and should be ones from those listed in :ref:`dhcp-types`. @@ -2122,7 +2121,7 @@ comprises a comma-separated list of values. The values in ``data`` must correspond to the types set in the ``record-types`` field of the option definition. -When ``array`` is set to ``"true"`` and ``type`` is set to ``"record"``, the +When ``array`` is set to ``true`` and ``type`` is set to ``"record"``, the last field is an array, i.e. it can contain more than one value, as in: :: @@ -2288,8 +2287,8 @@ defining sub-options for a standard option, because one is created by default if the standard option is meant to convey any sub-options (see :ref:`dhcp6-vendor-opts`). -If we want a DHCPv6 option called ``container`` with code -102, that conveys two sub-options with codes 1 and 2, we first need to +If we want a DHCPv6 option called ``container`` with code 102, +that conveys two sub-options with codes 1 and 2, we first need to define the new sub-options: :: @@ -2343,8 +2342,8 @@ and specify that it should include options from the new option space: } The name of the option space in which the sub-options are defined is set -in the ``encapsulate`` field. The ``type`` field is set to ``"empty"``, -to indicate that this option does not carry any data other than +in the ``encapsulate`` field. The ``type`` field is set to ``"empty"``, to +indicate that this option does not carry any data other than sub-options. Finally, we can set values for the new options: @@ -2843,8 +2842,8 @@ Required Classification In some cases it is useful to limit the scope of a class to a shared network, subnet, or pool. There are two parameters which are used -to limit the scope of the class by instructing the server to evaluate -test expressions when required. +to limit the scope of the class by instructing the server to evaluate test +expressions when required. The first one is the per-class ``only-if-required`` flag, which is ``false`` by default. When it is set to ``true``, the test expression of the class @@ -2903,10 +2902,10 @@ way in which ``option-data`` is processed. DDNS for DHCPv6 --------------- -As mentioned earlier, kea-dhcp6 can be configured to generate requests -to the DHCP-DDNS server (referred to here as "D2") to update DNS -entries. These requests are known as NameChangeRequests or NCRs. Each -NCR contains the following information: +As mentioned earlier, ``kea-dhcp6`` can be configured to generate requests +to the DHCP-DDNS server, ``kea-dhcp-ddns``, (referred to herein as "D2") to +update DNS entries. These requests are known as NameChangeRequests or +NCRs. Each NCR contains the following information: 1. Whether it is a request to add (update) or remove DNS entries. @@ -3086,7 +3085,7 @@ The parameter ``ddns-ttl-percent``, when specified, causes the TTL to be calculated as a simple percentage of the lease's lifetime, using the parameter's value as the percentage. It is specified as a decimal percent (e.g. .25, .75, 1.00) and may be specified at the -global, shared-network, and subnet levels. By default it is unspecified. +global, shared-network, and subnet levels. By default it is unspecified. .. _dhcpv6-d2-io-config: @@ -3098,7 +3097,8 @@ with it. ``kea-dhcp6`` uses the following configuration parameters to control this communication: - ``enable-updates`` - Enables connectivity to ``kea-dhcp-ddns`` such that DDNS - updates can be constructed and sent. It must be ``true`` for NCRs to be generated and sent to D2. + updates can be constructed and sent. + It must be ``true`` for NCRs to be generated and sent to D2. It defaults to ``false``. - ``server-ip`` - This is the IP address on which D2 listens for requests. The @@ -3106,14 +3106,14 @@ control this communication: Either an IPv4 or IPv6 address may be specified. - ``server-port`` - This is the port on which D2 listens for requests. The default - value is 53001. + value is ``53001``. - ``sender-ip`` - This is the IP address which ``kea-dhcp6`` uses to send requests to D2. The default value is blank, which instructs ``kea-dhcp6`` to select a suitable address. - ``sender-port`` - This is the port which ``kea-dhcp6`` uses to send requests to D2. - The default value of 0 instructs kea-dhcp6 to select a suitable port. + The default value of ``0`` instructs ``kea-dhcp6`` to select a suitable port. - ``max-queue-size`` - This is the maximum number of requests allowed to queue while waiting to be sent to D2. This value guards against requests @@ -3121,9 +3121,9 @@ control this communication: they can be delivered. If the number of requests queued for transmission reaches this value, DDNS updating is turned off until the queue backlog has been sufficiently reduced. The intent is - to allow the ``kea-dhcp6`` server to continue lease operations without running the - risk that its memory usage grows without limit. The default value is - 1024. + to allow the ``kea-dhcp4`` server to continue lease operations without + running the risk that its memory usage grows without limit. The + default value is ``1024``. - ``ncr-protocol`` - This specifies the socket protocol to use when sending requests to D2. Currently only UDP is supported. @@ -3265,7 +3265,7 @@ To override client delegation, issue the following commands: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Each NameChangeRequest must of course include the fully qualified -domain name whose DNS entries are to be affected. kea-dhcp6 can be +domain name whose DNS entries are to be affected. ``kea-dhcp6`` can be configured to supply a portion or all of that name, based upon what it receives from the client in the DHCPREQUEST. @@ -3423,7 +3423,7 @@ qualifying suffix (if one is defined and needed). then re-assembled. If clients are sending values that differ only by characters - considered as invalid by the hostname-char-set, be aware that + considered as invalid by the ``hostname-char-set``, be aware that scrubbing them will yield identical values. In such cases, DDNS conflict rules will permit only one of them to register the name. @@ -3728,18 +3728,18 @@ An example configuration that sets these parameters looks as follows: Multi-Threading Settings With Different Database Backends --------------------------------------------------------- -Both ``kea-dhcp4`` and ``kea-dhcp6`` are tested by ISC to determine which settings +The Kea DHCPv6 server is benchmarked by ISC to determine which settings give the best performance. Although this section describes our results, they are merely recommendations and are very dependent on the particular hardware used -for testing. We strongly advise that administrators run their own performance tests. +for benchmarking. We strongly advise that administrators run their own performance benchmarks. A full report of performance results for the latest stable Kea version can be found `here `_. -This includes hardware and test scenario descriptions, as well as +This includes hardware and benchmark scenario descriptions, as well as current results. After enabling multi-threading, the number of threads is set by the ``thread-pool-size`` -parameter. Results from our tests show that best configurations for +parameter. Results from our experiments show that the best settings for ``kea-dhcp6`` are: - ``thread-pool-size``: 4 when using ``memfile`` for storing leases. @@ -3748,11 +3748,11 @@ parameter. Results from our tests show that best configurations for - ``thread-pool-size``: 6 when using ``postgresql``. -Another very important parameter is ``packet-queue-size``; in our tests we +Another very important parameter is ``packet-queue-size``; in our benchmarks we used it as a multiplier of ``thread-pool-size``. The actual setting strongly depends on ``thread-pool-size``. -We saw the best results in our tests with the following settings: +We saw the best results in our benchmarks with the following settings: - ``packet-queue-size``: 150 * ``thread-pool-size`` when using ``memfile`` for storing leases; in our case it was 150 * 4 = 600. This means that at any given @@ -3779,7 +3779,7 @@ does not require disk operations. The two parameters are the ``cache-threshold`` double and the ``cache-max-age`` integer; they have no default setting, i.e. the lease caching feature must be explicitly enabled. These parameters can be configured -at the global, shared-network and subnet levels. The subnet level has +at the global, shared-network, and subnet levels. The subnet level has the precedence over the shared-network level, while the global level is used as a last resort. For example: @@ -4712,13 +4712,13 @@ following can be used: "valid-lifetime": 600, "subnet4": [ { "subnet": "2001:db8:1::/64", - # It is replaced by the "reservations-global" - # "reservations-in-subnet" and "reservations-out-of-pool" + # It is replaced by the "reservations-global", + # "reservations-in-subnet", and "reservations-out-of-pool" # parameters. # "reservation-mode": "global", - # Specify if the server should lookup global reservations. + # Specify if the server should look up global reservations. "reservations-global": true, - # Specify if the server should lookup in-subnet reservations. + # Specify if the server should look up in-subnet reservations. "reservations-in-subnet": false, # Specify if the server can assume that all reserved addresses # are out-of-pool. It can be ignored because "reservations-in-subnet" @@ -4826,11 +4826,11 @@ following example: "hw-address": "aa:bb:cc:dd:ee:fe", "client-classes": [ "reserved_class" ] }], - # It is replaced by the "reservations-global" - # "reservations-in-subnet" and "reservations-out-of-pool" parameters. - # Specify if the server should lookup global reservations. + # It is replaced by the "reservations-global", + # "reservations-in-subnet", and "reservations-out-of-pool" parameters. + # Specify if the server should look up global reservations. "reservations-global": true, - # Specify if the server should lookup in-subnet reservations. + # Specify if the server should look up in-subnet reservations. "reservations-in-subnet": false, # Specify if the server can assume that all reserved addresses # are out-of-pool. It can be ignored because "reservations-in-subnet" @@ -5289,7 +5289,7 @@ However, each subnet must have the same value. Local and Relayed Traffic in Shared Networks -------------------------------------------- -It is possible to specify an interface name at the shared network level, +It is possible to specify an interface name at the shared-network level, to tell the server that this specific shared network is reachable directly (not via relays) using the local network interface. As all subnets in a shared network are expected to be used on the same physical @@ -7005,7 +7005,7 @@ The following standards are currently supported in Kea: DHCPv6 Server Limitations ========================= -These are the current limitations of the DHCPv6 server software. Most of +These are the current known limitations of the Kea DHCPv6 server software. Most of them are reflections of the current stage of development and should be treated as “not implemented yet”, rather than actual limitations. @@ -7050,15 +7050,15 @@ Supported Parameters The ultimate goal for the CB is to serve as a central configuration repository for one or multiple Kea servers connected to a database. In currently supported Kea versions, only a subset of -the DHCPv6 server parameters can be stored in the database. All other +the DHCPv6 server parameters can be configured in the database. All other parameters must be specified in the JSON configuration file, if required. -All supported parameters can be configured via ``cb_cmds`` hook library +All supported parameters can be configured via the ``cb_cmds`` hook library described in the :ref:`hooks-cb-cmds` section. The general rule is that scalar global parameters are set using ``remote-global-parameter6-set``; shared-network-specific parameters -are set using ``remote-network6-set``; and subnet- and pool-level +are set using ``remote-network6-set``; and subnet-level and pool-level parameters are set using ``remote-subnet6-set``. Whenever there is an exception to this general rule, it is highlighted in the table. Non-scalar global parameters have dedicated commands; for example, @@ -7187,10 +7187,10 @@ at which it is currently supported. Enabling the Configuration Backend ---------------------------------- -The following configuration snippet demonstrates how to enable the MySQL -Configuration Backend for the DHCPv6 server: +Consider the following configuration snippet, which uses a MySQL configuration +database: -:: +.. code-block:: json { "Dhcp6": { @@ -7215,8 +7215,7 @@ Configuration Backend for the DHCPv6 server: { "library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so" } - ], - ... + ] } } @@ -7431,7 +7430,7 @@ proportional to the total size of the pools for which this allocator is used. Finally, lease reclamation must be enabled with a low value of the ``reclaim-timer-wait-time`` parameter, to ensure that the server frequently collects expired leases and makes them available for allocation via the -allocator's free lease queue. Expired leases are not considered free by +free lease queue. Expired leases are not considered free by the allocator until they are reclaimed by the server. See :ref:`lease-reclamation` for more details about the lease reclamation process. diff --git a/doc/sphinx/arm/ext-netconf.rst b/doc/sphinx/arm/ext-netconf.rst index db063bc38f..b70cbd08a3 100644 --- a/doc/sphinx/arm/ext-netconf.rst +++ b/doc/sphinx/arm/ext-netconf.rst @@ -614,7 +614,7 @@ Kea sources. // Currently there are no hook points defined in kea-netconf // processing. "hooks-libraries": [ - // The hooks libraries list may contain more than one library. + // The hook libraries list may contain more than one library. { // The only necessary parameter is the library filename. "library": "/opt/local/netconf-commands.so", @@ -640,9 +640,9 @@ Kea sources. // Flush determines whether logger flushes output // to a file. // Maxsize determines maximum filesize before - // the file is being rotated. + // the file is rotated. // Maxver specifies the maximum number of - // rotated files being kept. + // rotated files to be kept. "flush": true, "maxsize": 204800, "maxver": 4 diff --git a/doc/sphinx/arm/hooks-cb-cmds.rst b/doc/sphinx/arm/hooks-cb-cmds.rst index 6f914b370f..46b27be9a7 100644 --- a/doc/sphinx/arm/hooks-cb-cmds.rst +++ b/doc/sphinx/arm/hooks-cb-cmds.rst @@ -5,11 +5,11 @@ This hook library is used to manage Kea servers' configurations in a configuration backend database. This library must -be used in conjunction with the available CB hooks libraries implementing +be used in conjunction with the available CB hook libraries implementing the common APIs to create, read, update, and delete (CRUD) the configuration information in the respective databases. For example: -the ``mysql_cb`` hooks library implements this API for MySQL while the -``pgsql_cg`` hooks library implements this API for PostgreSQL. +the ``mysql_cb`` hook library implements this API for MySQL while the +``pgsql_cg`` hook library implements this API for PostgreSQL. To manage the configuration information in a MySQL database, both the ``mysql_cb`` and ``cb_cmds`` libraries must be loaded by the server used for the configuration management. @@ -109,7 +109,7 @@ Control Commands for DHCP Servers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes and gives some examples of the control commands -implemented by the ``cb_cmds`` hooks library, to manage the +implemented by the ``cb_cmds`` hook library, to manage the configuration information of the DHCPv4 and DHCPv6 servers. Many of the commands are almost identical between DHCPv4 and DHCPv6; they only differ by the command name. Other commands differ slightly by the @@ -876,7 +876,7 @@ database: This command includes the ``interface`` parameter, which sets the shared -network-level interface name. Any remaining shared network-level parameters, +network-level interface name. Any remaining shared-network level parameters, which are not specified with the command, will be marked as "unspecified" in the database. The DHCP server uses the global values for unspecified parameters or, if the global values are not @@ -1266,7 +1266,7 @@ be deleted. If the option is not explicitly specified for this shared network, no option is deleted. In particular, the given option may be present for a subnet belonging to the shared network. Such an option instance is not affected by this command as this -command merely deletes the shared-network-level option. To +command merely deletes the shared-network level option. To delete a subnet-level option, the ``remote-option[46]-subnet-del`` command must be used instead. diff --git a/doc/sphinx/arm/hooks-lease-query.rst b/doc/sphinx/arm/hooks-lease-query.rst index 75d1478157..1e3f7a64ae 100644 --- a/doc/sphinx/arm/hooks-lease-query.rst +++ b/doc/sphinx/arm/hooks-lease-query.rst @@ -435,7 +435,7 @@ not yet used by the hook library. Kea attempts to map link address parameters to the prefixes of configured subnets. If a given address falls outside all configured subnet prefixes, - the query fails with a status code of STATUS_NotConfigured. If + the query fails with a status code of ``STATUS_NotConfigured``. If the link address parameter for ``query-by-relay-id`` or ``query-by-remote-id`` is not ``::`` (i.e. not empty), only delegated prefixes that lie within matching subnet prefixes are returned. Currently, ``query-by-address`` does not diff --git a/doc/sphinx/arm/hooks-subnet-cmds.rst b/doc/sphinx/arm/hooks-subnet-cmds.rst index 7e5f78d2ad..45a9db7592 100644 --- a/doc/sphinx/arm/hooks-subnet-cmds.rst +++ b/doc/sphinx/arm/hooks-subnet-cmds.rst @@ -473,7 +473,7 @@ belonging to the subnet. The server may also be configured with static host reservations which are associated with this subnet. The current implementation of the ``subnet4-del`` command removes neither the leases nor the host reservations associated with a subnet. This is the safest approach -because the server does not lose track of leases assigned to the clients +because the server does not lose track of leases assigned to clients from this subnet. However, removal of the subnet may still cause configuration errors and conflicts. For example: after removal of the subnet, the server administrator may update a new subnet with the ID @@ -528,7 +528,7 @@ belonging to the subnet. The server may also be configured with static host reservations which are associated with this subnet. The current implementation of the ``subnet6-del`` command removes neither the leases nor the host reservations associated with a subnet. This is the safest approach -because the server does not lose track of leases assigned to the clients +because the server does not lose track of leases assigned to clients from this subnet. However, removal of the subnet may still cause configuration errors and conflicts. For example: after removal of the subnet, the server administrator may add a new subnet with the ID used @@ -989,12 +989,12 @@ An example response could look as follows: }, "renew-timer": 60, # "reservation-mode": "all", - # It is replaced by the "reservations-global" - # "reservations-in-subnet" and "reservations-out-of-pool" + # It is replaced by the "reservations-global", + # "reservations-in-subnet", and "reservations-out-of-pool" # parameters. - # Specify if the server should lookup global reservations. + # Specify if the server should look up global reservations. "reservations-global": false, - # Specify if the server should lookup in-subnet reservations. + # Specify if the server should look up in-subnet reservations. "reservations-in-subnet": true, # Specify if the server can assume that all reserved addresses # are out-of-pool. diff --git a/doc/sphinx/arm/hooks.rst b/doc/sphinx/arm/hooks.rst index 22991e26df..8da712f058 100644 --- a/doc/sphinx/arm/hooks.rst +++ b/doc/sphinx/arm/hooks.rst @@ -478,7 +478,7 @@ loaded by the correct process per the table below. | | | leases, and to periodically test whether their partners are | | | | still operational. The hook library also provides an ability | | | | to send lease updates to external backup servers, making it | - | | | much easier to have a replacement that is up-to-date. | + | | | much easier to have a replacement that is up to date. | +-----------------------------------------------------------+--------------+--------------------------------------------------------------+ | :ref:`Host Cache ` | ISC support | Some database backends, such as RADIUS, | | | customers | may take a long time to respond. Since | diff --git a/doc/sphinx/arm/install.rst b/doc/sphinx/arm/install.rst index 26ff0e884c..c5b078a997 100644 --- a/doc/sphinx/arm/install.rst +++ b/doc/sphinx/arm/install.rst @@ -108,7 +108,7 @@ The following is the directory layout of the complete Kea installation. - ``lib/`` — libraries. -- ``lib/kea/hooks`` — additional hooks libraries. +- ``lib/kea/hooks`` — additional hook libraries. - ``sbin/`` — server software and commands used by the system administrator. diff --git a/doc/sphinx/arm/keactrl.rst b/doc/sphinx/arm/keactrl.rst index f88ce05f32..5a89168091 100644 --- a/doc/sphinx/arm/keactrl.rst +++ b/doc/sphinx/arm/keactrl.rst @@ -119,7 +119,7 @@ specified with the ``dhcp4_srv``, ``dhcp6_srv``, ``dhcp_ddns_srv``, ``ctrl_agent_srv``, and ``netconf_srv`` parameters should be modified. The ``kea_verbose`` parameter specifies the verbosity of the servers -being started. When ``kea_verbose`` is set to "yes," the logging level of +being started. When ``kea_verbose`` is set to ``yes``, the logging level of the server is set to DEBUG. Modification of the logging severity in a configuration file, as described in :ref:`logging`, will have no effect as long as ``kea_verbose`` is set to "yes." Setting it to @@ -220,7 +220,7 @@ it rereads its configuration file and, if the new configuration is valid, uses the new configuration. If the new configuration proves to be invalid, the server retains its current configuration; however, in some cases a fatal error message is logged -indicating that the server no longer provides any service: a working +indicating that the server is no longer providing any service: a working configuration must be loaded as soon as possible. A reload is executed as follows: diff --git a/doc/sphinx/arm/lease-expiration.rst b/doc/sphinx/arm/lease-expiration.rst index 05d5ffe707..e854958c4b 100644 --- a/doc/sphinx/arm/lease-expiration.rst +++ b/doc/sphinx/arm/lease-expiration.rst @@ -65,7 +65,7 @@ involves the following steps for each reclaimed lease: Please refer to :ref:`dhcp-ddns-server` to see how to configure DNS updates in Kea, and to :ref:`hooks-libraries` for information about -using hooks libraries. +using hook libraries. .. _lease-reclamation-defaults: @@ -83,14 +83,14 @@ processing expired leases, with their default values: often the server initiates the lease reclamation procedure. Expressed in seconds; the default value is 25. If both ``flush-reclaimed-timer-wait-time`` and ``hold-reclaimed-time`` are not 0, when the client sends a release - message the lease is expired instead of being deleted from the lease storage. + message the lease is expired instead of being deleted from lease storage. - ``hold-reclaimed-time`` - this parameter governs how long the lease should be kept after it is reclaimed. This enables lease affinity when set to a non-zero value. Expressed in seconds; the default value is 3600. If both ``flush-reclaimed-timer-wait-time`` and ``hold-reclaimed-time`` are not 0, when the client sends a release message - the lease is expired instead of being deleted from the lease storage. + the lease is expired instead of being deleted from lease storage. - ``max-reclaim-leases`` - this parameter specifies the maximum number of reclaimed leases that can be processed at one time. Zero means @@ -266,7 +266,7 @@ parameters described in :ref:`lease-reclaim-config`, but the reclaimed leases are held in the database for a specified amount of time rather than removed. If both ``flush-reclaimed-timer-wait-time`` and ``hold-reclaimed-time`` are greater than zero, the lease is expired immediately when the client sends a -release message, instead of being deleted from the lease storage. When the client +release message, instead of being deleted from lease storage. When the client returns, the server first verifies whether there are any reclaimed leases associated with this client and then reassigns them if possible. However, it is important to note that any reclaimed lease may be assigned to another client if diff --git a/doc/sphinx/arm/quickstart.rst b/doc/sphinx/arm/quickstart.rst index 02b267dffb..1fbb76d380 100644 --- a/doc/sphinx/arm/quickstart.rst +++ b/doc/sphinx/arm/quickstart.rst @@ -87,7 +87,7 @@ easier to install Kea using native packages. # apk update 4. Kea is split into various packages. The entire list is available on - `cloudsmith.io `__ or using apt/yum/dnf. + `cloudsmith.io `__ or using apt/yum/dnf. For example, on Debian/Ubuntu: .. code-block:: console @@ -130,7 +130,7 @@ easier to install Kea using native packages. .. code-block:: console - $ sudo apt install isc-kea*=2.4.0-isc0000920201106154401 + $ sudo apt install isc-kea*=2.4.0-isc20230531000000 .. note:: Not all package managers support installing packages with a glob (``*``), diff --git a/doc/sphinx/man/kea-dhcp4.8.rst b/doc/sphinx/man/kea-dhcp4.8.rst index 7458f4bf3c..2d4f6a9e43 100644 --- a/doc/sphinx/man/kea-dhcp4.8.rst +++ b/doc/sphinx/man/kea-dhcp4.8.rst @@ -54,7 +54,7 @@ The arguments are as follows: It performs extra checks beyond what -t offers, such as establishing database connections (for the lease backend, host reservations backend, configuration backend, and forensic logging backend), loading hook libraries, - parsing configurations, etc. It does not open UNIX or TCP/UDP sockets, + parsing hook-library configurations, etc. It does not open UNIX or TCP/UDP sockets, nor does it open or rotate files, as any of these actions could interfere with a running process on the same machine. diff --git a/doc/sphinx/man/kea-dhcp6.8.rst b/doc/sphinx/man/kea-dhcp6.8.rst index e818a462df..7caefe1e04 100644 --- a/doc/sphinx/man/kea-dhcp6.8.rst +++ b/doc/sphinx/man/kea-dhcp6.8.rst @@ -54,7 +54,7 @@ The arguments are as follows: It performs extra checks beyond what -t offers, such as establishing database connections (for the lease backend, host reservations backend, configuration backend, and forensic logging backend), loading hook libraries, - parsing configurations, etc. It does not open UNIX or TCP/UDP sockets, nor + parsing hook-library configurations, etc. It does not open UNIX or TCP/UDP sockets, nor does it open or rotate files, as any of these actions could interfere with a running process on the same machine. diff --git a/src/lib/config/config_messages.mes b/src/lib/config/config_messages.mes index 00e6726edd..f05b0cd404 100644 --- a/src/lib/config/config_messages.mes +++ b/src/lib/config/config_messages.mes @@ -76,7 +76,7 @@ information may be provided by the system as second parameter. % COMMAND_SOCKET_CLOSED_BY_FOREIGN_HOST Closed command socket %1 by foreign host, %2 This is an information message indicating that the command connection has been -closed by a command control client, and whether or not any partially read data +closed by a command control client, and whether any partially read data was discarded. % COMMAND_SOCKET_CONNECTION_CANCEL_FAIL Failed to cancel read operation on socket %1: %2