]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2883] added documentation for pool stats
authorRazvan Becheriu <razvan@isc.org>
Tue, 13 Jun 2023 17:36:20 +0000 (20:36 +0300)
committerRazvan Becheriu <razvan@isc.org>
Wed, 21 Jun 2023 08:54:26 +0000 (11:54 +0300)
doc/sphinx/arm/dhcp4-srv.rst
doc/sphinx/arm/dhcp6-srv.rst
doc/sphinx/arm/stats.rst
src/bin/dhcp4/tests/fqdn_unittest.cc
src/bin/dhcp6/tests/fqdn_unittest.cc
src/hooks/dhcp/stat_cmds/stat_cmds.dox
src/share/api/config-set.json
src/share/api/config-test.json
src/share/api/stat-lease4-get.json
src/share/api/stat-lease6-get.json
src/share/api/statistic-get-all.json

index 8595b718082171d1dc12b28c9edf97b78ea9ae6c..928d69fb219ca509a3c6d425af91821fbce35038 100644 (file)
@@ -6719,454 +6719,541 @@ The DHCPv4 server supports the following statistics:
    :widths: 20 10 70
 
 
-   +----------------------------------------------+----------------+------------------------------------+
-   | Statistic                                    | Data Type      | Description                        |
-   +==============================================+================+====================================+
-   | pkt4-received                                | integer        | Number of DHCPv4 packets received. |
-   |                                              |                | This includes all packets: valid,  |
-   |                                              |                | bogus, corrupted, rejected, etc.   |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | rapidly.                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-discover-received                       | integer        | Number of DHCPDISCOVER packets     |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow; its increase     |
-   |                                              |                | means that clients that just       |
-   |                                              |                | booted started their configuration |
-   |                                              |                | process and their initial packets  |
-   |                                              |                | reached the Kea server.            |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-offer-received                          | integer        | Number of DHCPOFFER packets        |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to remain zero at all     |
-   |                                              |                | times, as DHCPOFFER packets are    |
-   |                                              |                | sent by the server and the server  |
-   |                                              |                | is never expected to receive them. |
-   |                                              |                | A non-zero value indicates an      |
-   |                                              |                | error. One likely cause would be a |
-   |                                              |                | misbehaving relay agent that       |
-   |                                              |                | incorrectly forwards DHCPOFFER     |
-   |                                              |                | messages towards the server,       |
-   |                                              |                | rather than back to the clients.   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-request-received                        | integer        | Number of DHCPREQUEST packets      |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow. Its increase     |
-   |                                              |                | means that clients that just       |
-   |                                              |                | booted received the server's       |
-   |                                              |                | response (DHCPOFFER) and accepted  |
-   |                                              |                | it, and are now requesting an      |
-   |                                              |                | address (DHCPREQUEST).             |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-ack-received                            | integer        | Number of DHCPACK packets          |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to remain zero at all     |
-   |                                              |                | times, as DHCPACK packets are sent |
-   |                                              |                | by the server and the server is    |
-   |                                              |                | never expected to receive them. A  |
-   |                                              |                | non-zero value indicates an error. |
-   |                                              |                | One likely cause would be a        |
-   |                                              |                | misbehaving relay agent that       |
-   |                                              |                | incorrectly forwards DHCPACK       |
-   |                                              |                | messages towards the server,       |
-   |                                              |                | rather than back to the clients.   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-nak-received                            | integer        | Number of DHCPNAK packets          |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to remain zero at all     |
-   |                                              |                | times, as DHCPNAK packets are sent |
-   |                                              |                | by the server and the server is    |
-   |                                              |                | never expected to receive them. A  |
-   |                                              |                | non-zero value indicates an error. |
-   |                                              |                | One likely cause would be a        |
-   |                                              |                | misbehaving relay agent that       |
-   |                                              |                | incorrectly forwards DHCPNAK       |
-   |                                              |                | messages towards the server,       |
-   |                                              |                | rather than back to the clients.   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-release-received                        | integer        | Number of DHCPRELEASE packets      |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow. Its increase     |
-   |                                              |                | means that clients that had an     |
-   |                                              |                | address are shutting down or       |
-   |                                              |                | ceasing to use their addresses.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-decline-received                        | integer        | Number of DHCPDECLINE packets      |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to remain close to zero.  |
-   |                                              |                | Its increase means that a client   |
-   |                                              |                | leased an address, but discovered  |
-   |                                              |                | that the address is currently      |
-   |                                              |                | used by an unknown device          |
-   |                                              |                | elsewhere in the network.          |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-inform-received                         | integer        | Number of DHCPINFORM packets       |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow. Its increase     |
-   |                                              |                | means that there are clients       |
-   |                                              |                | that either do not need an address |
-   |                                              |                | or already have an address and are |
-   |                                              |                | interested only in getting         |
-   |                                              |                | additional configuration           |
-   |                                              |                | parameters.                        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-unknown-received                        | integer        | Number of packets received of an   |
-   |                                              |                | unknown type. A non-zero value of  |
-   |                                              |                | this statistic indicates that the  |
-   |                                              |                | server received a packet that it   |
-   |                                              |                | was not able to recognize, either  |
-   |                                              |                | with an unsupported type or        |
-   |                                              |                | possibly malformed (without a      |
-   |                                              |                | message-type option).              |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-sent                                    | integer        | Number of DHCPv4 packets sent.     |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | every time the server transmits a  |
-   |                                              |                | packet. In general, it should      |
-   |                                              |                | roughly match pkt4-received, as    |
-   |                                              |                | most incoming packets cause the    |
-   |                                              |                | server to respond. There are       |
-   |                                              |                | exceptions (e.g. DHCPRELEASE), so  |
-   |                                              |                | do not worry if it is less than    |
-   |                                              |                | pkt4-received.                     |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-offer-sent                              | integer        | Number of DHCPOFFER packets sent.  |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | in most cases after a DHCPDISCOVER |
-   |                                              |                | is processed. There are certain    |
-   |                                              |                | uncommon, but valid, cases where   |
-   |                                              |                | incoming DHCPDISCOVER packets are  |
-   |                                              |                | dropped, but in general this       |
-   |                                              |                | statistic is expected to be close  |
-   |                                              |                | to pkt4-discover-received.         |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-ack-sent                                | integer        | Number of DHCPACK packets sent.    |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | in most cases after a DHCPREQUEST  |
-   |                                              |                | is processed. There are certain    |
-   |                                              |                | cases where DHCPNAK is sent        |
-   |                                              |                | instead. In general, the sum of    |
-   |                                              |                | pkt4-ack-sent and pkt4-nak-sent    |
-   |                                              |                | should be close to                 |
-   |                                              |                | pkt4-request-received.             |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-nak-sent                                | integer        | Number of DHCPNAK packets sent.    |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | when the server chooses not to     |
-   |                                              |                | honor the address requested by a   |
-   |                                              |                | client. In general, the sum of     |
-   |                                              |                | pkt4-ack-sent and pkt4-nak-sent    |
-   |                                              |                | should be close to                 |
-   |                                              |                | pkt4-request-received.             |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-parse-failed                            | integer        | Number of incoming packets that    |
-   |                                              |                | could not be parsed. A non-zero    |
-   |                                              |                | value of this statistic indicates  |
-   |                                              |                | that the server received a         |
-   |                                              |                | malformed or truncated packet.     |
-   |                                              |                | This may indicate problems in the  |
-   |                                              |                | network, faulty clients, or a bug  |
-   |                                              |                | in the server.                     |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-receive-drop                            | integer        | Number of incoming packets that    |
-   |                                              |                | were dropped. The exact reason for |
-   |                                              |                | dropping packets is logged, but    |
-   |                                              |                | the most common reasons may be: an |
-   |                                              |                | unacceptable packet type was       |
-   |                                              |                | received, direct responses are     |
-   |                                              |                | forbidden, or the server-id sent   |
-   |                                              |                | by the client does not match the   |
-   |                                              |                | server's server-id.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].total-addresses                   | integer        | Total number of addresses          |
-   |                                              |                | available for DHCPv4 management;   |
-   |                                              |                | in other words, this is the sum of |
-   |                                              |                | all addresses in all configured    |
-   |                                              |                | pools. This statistic changes only |
-   |                                              |                | during configuration updates. It   |
-   |                                              |                | does not take into account any     |
-   |                                              |                | addresses that may be reserved due |
-   |                                              |                | to host reservation. The *id* is   |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | cumulative-assigned-addresses                | integer        | Cumulative number of addresses     |
-   |                                              |                | that have been assigned since      |
-   |                                              |                | server startup. It is incremented  |
-   |                                              |                | each time an address is assigned   |
-   |                                              |                | and is not reset when the server   |
-   |                                              |                | is reconfigured.                   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].cumulative-assigned-addresses     | integer        | Cumulative number of assigned      |
-   |                                              |                | addresses in a given subnet. It    |
-   |                                              |                | increases every time a new lease   |
-   |                                              |                | is allocated (as a result of       |
-   |                                              |                | receiving a DHCPREQUEST message)   |
-   |                                              |                | and never decreases. The *id* is   |
-   |                                              |                | the subnet-id of the subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].assigned-addresses                | integer        | Number of assigned addresses in a  |
-   |                                              |                | given subnet. It increases every   |
-   |                                              |                | time a new lease is allocated (as  |
-   |                                              |                | a result of receiving a            |
-   |                                              |                | DHCPREQUEST message) and decreases |
-   |                                              |                | every time a lease is released (a  |
-   |                                              |                | DHCPRELEASE message is received)   |
-   |                                              |                | or expires. The *id* is the        |
-   |                                              |                | subnet-id of the subnet. This      |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | reclaimed-leases                             | integer        | Number of expired leases that have |
-   |                                              |                | been reclaimed since server        |
-   |                                              |                | startup. It is incremented each    |
-   |                                              |                | time an expired lease is reclaimed |
-   |                                              |                | and never decreases. It can be     |
-   |                                              |                | used as a long-term indicator of   |
-   |                                              |                | how many actual leases have been   |
-   |                                              |                | reclaimed. This is a global        |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].reclaimed-leases                  | integer        | Number of expired leases           |
-   |                                              |                | associated with a given subnet     |
-   |                                              |                | (*id* is the subnet-id) that have  |
-   |                                              |                | been reclaimed since server        |
-   |                                              |                | startup. It is incremented each    |
-   |                                              |                | time an expired lease is           |
-   |                                              |                | reclaimed. The *id* is the         |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | declined-addresses                           | integer        | Number of IPv4 addresses that are  |
-   |                                              |                | currently declined; a count of the |
-   |                                              |                | number of leases currently         |
-   |                                              |                | unavailable. Once a lease is       |
-   |                                              |                | recovered, this statistic is       |
-   |                                              |                | decreased; ideally, this statistic |
-   |                                              |                | should be zero. If this statistic  |
-   |                                              |                | is non-zero or increasing, a       |
-   |                                              |                | network administrator should       |
-   |                                              |                | investigate whether there is a     |
-   |                                              |                | misbehaving device in the network. |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].declined-addresses                | integer        | Number of IPv4 addresses that are  |
-   |                                              |                | currently declined in a given      |
-   |                                              |                | subnet; a count of the number of   |
-   |                                              |                | leases currently unavailable. Once |
-   |                                              |                | a lease is recovered, this         |
-   |                                              |                | statistic is decreased; ideally,   |
-   |                                              |                | this statistic should be zero. If  |
-   |                                              |                | this statistic is non-zero or      |
-   |                                              |                | increasing, a network              |
-   |                                              |                | administrator should investigate   |
-   |                                              |                | whether there is a misbehaving     |
-   |                                              |                | device in the network. The *id* is |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | reclaimed-declined-addresses                 | integer        | Number of IPv4 addresses that were |
-   |                                              |                | declined, but have now been        |
-   |                                              |                | recovered. Unlike                  |
-   |                                              |                | declined-addresses, this statistic |
-   |                                              |                | never decreases. It can be used as |
-   |                                              |                | a long-term indicator of how many  |
-   |                                              |                | actual valid declines were         |
-   |                                              |                | processed and recovered from. This |
-   |                                              |                | is a global statistic that covers  |
-   |                                              |                | all subnets.                       |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].reclaimed-declined-addresses      | integer        | Number of IPv4 addresses that were |
-   |                                              |                | declined, but have now been        |
-   |                                              |                | recovered. Unlike                  |
-   |                                              |                | declined-addresses, this statistic |
-   |                                              |                | never decreases. It can be used as |
-   |                                              |                | a long-term indicator of how many  |
-   |                                              |                | actual valid declines were         |
-   |                                              |                | processed and recovered from. The  |
-   |                                              |                | *id* is the subnet-id of a given   |
-   |                                              |                | subnet. This statistic is exposed  |
-   |                                              |                | for each subnet separately.        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-lease-query-received                    | integer        | Number of IPv4 DHCPLEASEQUERY      |
-   |                                              |                | packets received. (Only exists if  |
-   |                                              |                | Leasequery hook library is         |
-   |                                              |                | loaded.)                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-lease-query-response-unknown-sent       | integer        | Number of IPv4 DHCPLEASEUNKNOWN    |
-   |                                              |                | responses sent. (Only exists if    |
-   |                                              |                | Leasequery hook library is         |
-   |                                              |                | loaded.)                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-lease-query-response-unassigned-sent    | integer        | Number of IPv4 DHCPLEASEUNASSIGNED |
-   |                                              |                | responses sent. (Only exists if    |
-   |                                              |                | Leasequery hook library is         |
-   |                                              |                | loaded.)                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt4-lease-query-response-active-sent        | integer        | Number of IPv4 DHCPLEASEACTIVE     |
-   |                                              |                | responses sent. (Only exists if    |
-   |                                              |                | Leasequery hook library is         |
-   |                                              |                | loaded.)                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-allocation-fail                           | integer        | Number of total address allocation |
-   |                                              |                | failures for a particular client.  |
-   |                                              |                | This consists in the number of     |
-   |                                              |                | lease allocation attempts that the |
-   |                                              |                | server made before giving up and   |
-   |                                              |                | was unable to use any of the       |
-   |                                              |                | address pools. This is a global    |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-allocation-fail                | integer        | Number of total address allocation |
-   |                                              |                | failures for a particular client.  |
-   |                                              |                | This consists in the number of     |
-   |                                              |                | lease allocation attempts that the |
-   |                                              |                | server made before giving up and   |
-   |                                              |                | was unable to use any of the       |
-   |                                              |                | address pools. The *id* is the     |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-allocation-fail-shared-network            | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a shared network.     |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-allocation-fail-shared-network | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a shared network.     |
-   |                                              |                | The *id* is the subnet-id of a     |
-   |                                              |                | given subnet. This statistic is    |
-   |                                              |                | exposed for each subnet            |
-   |                                              |                | separately.                        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-allocation-fail-subnet                    | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a subnet that does    |
-   |                                              |                | not belong to a shared network.    |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-allocation-fail-subnet         | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a subnet that does    |
-   |                                              |                | not belong to a shared network.    |
-   |                                              |                | The *id* is the subnet-id of a     |
-   |                                              |                | given subnet. This statistic is    |
-   |                                              |                | exposed for each subnet            |
-   |                                              |                | separately.                        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-allocation-fail-no-pools                  | integer        | Number of address allocation       |
-   |                                              |                | failures because the server could  |
-   |                                              |                | not use any configured pools for   |
-   |                                              |                | a particular client. It is also    |
-   |                                              |                | possible that all of the subnets   |
-   |                                              |                | from which the server attempted to |
-   |                                              |                | assign an address lack address     |
-   |                                              |                | pools. In this case, it should be  |
-   |                                              |                | considered misconfiguration if an  |
-   |                                              |                | operator expects that some clients |
-   |                                              |                | should be assigned dynamic         |
-   |                                              |                | addresses. This is a global        |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-allocation-fail-no-pools       | integer        | Number of address allocation       |
-   |                                              |                | failures because the server could  |
-   |                                              |                | not use any configured pools for   |
-   |                                              |                | a particular client. It is also    |
-   |                                              |                | possible that all of the subnets   |
-   |                                              |                | from which the server attempted to |
-   |                                              |                | assign an address lack address     |
-   |                                              |                | pools. In this case, it should be  |
-   |                                              |                | considered misconfiguration if an  |
-   |                                              |                | operator expects that some clients |
-   |                                              |                | should be assigned dynamic         |
-   |                                              |                | addresses. The *id* is the         |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-allocation-fail-classes                   | integer        | Number of address allocation       |
-   |                                              |                | failures when the client's packet  |
-   |                                              |                | belongs to one or more classes.    |
-   |                                              |                | There may be several reasons why a |
-   |                                              |                | lease was not assigned. One of     |
-   |                                              |                | them may be a case when all pools  |
-   |                                              |                | require packet to belong to        |
-   |                                              |                | certain classes and the incoming   |
-   |                                              |                | packet didn't belong to any of     |
-   |                                              |                | them. Another case where this      |
-   |                                              |                | information may be useful is to    |
-   |                                              |                | point out that the pool reserved   |
-   |                                              |                | to a given class has ran out of    |
-   |                                              |                | addresses. This is a global        |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-allocation-fail-classes        | integer        | Number of address allocation       |
-   |                                              |                | failures when the client's packet  |
-   |                                              |                | belongs to one or more classes.    |
-   |                                              |                | There may be several reasons why a |
-   |                                              |                | lease was not assigned. One of     |
-   |                                              |                | them may be a case when all pools  |
-   |                                              |                | require packet to belong to        |
-   |                                              |                | certain classes and the incoming   |
-   |                                              |                | packet didn't belong to any of     |
-   |                                              |                | them. Another case where this      |
-   |                                              |                | information may be useful is to    |
-   |                                              |                | point out that the pool reserved   |
-   |                                              |                | to a given class has ran out of    |
-   |                                              |                | addresses. The *id* is the         |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-lease-reuses                              | integer        | Number of times an IPv4 lease had  |
-   |                                              |                | its CLTT increased in memory and   |
-   |                                              |                | its expiration time left unchanged |
-   |                                              |                | in persistent storage as part of   |
-   |                                              |                | the lease caching feature. This is |
-   |                                              |                | referred to as a lease reuse.      |
-   |                                              |                | This statistic is global.          |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-lease-reuses                   | integer        | Number of times an IPv4 lease had  |
-   |                                              |                | its CLTT increased in memory and   |
-   |                                              |                | its expiration time left unchanged |
-   |                                              |                | in persistent storage as part of   |
-   |                                              |                | the lease caching feature. This is |
-   |                                              |                | referred to as a lease reuse.      |
-   |                                              |                | This statistic is on a per-subnet  |
-   |                                              |                | basis. The *id* is the subnet-id   |
-   |                                              |                | of a given subnet.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v4-reservation-conflicts                     | integer        | Number of host reservation         |
-   |                                              |                | allocation conflicts which have    |
-   |                                              |                | occurred across every subnet. When |
-   |                                              |                | a client sends a DHCP Discover and |
-   |                                              |                | is matched to a host reservation   |
-   |                                              |                | which is already leased to another |
-   |                                              |                | client, this counter is increased  |
-   |                                              |                | by 1.                              |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v4-reservation-conflicts          | integer        | Number of host reservation         |
-   |                                              |                | allocation conflicts which have    |
-   |                                              |                | occurred in a specific subnet.     |
-   |                                              |                | When a client sends a DHCP         |
-   |                                              |                | Discover and is matched to a host  |
-   |                                              |                | reservation which is already       |
-   |                                              |                | leased to another client, this     |
-   |                                              |                | counter is increased by 1.         |
-   +----------------------------------------------+----------------+------------------------------------+
+   +----------------------------------------------------+----------------+------------------------------------+
+   | Statistic                                          | Data Type      | Description                        |
+   +====================================================+================+====================================+
+   | pkt4-received                                      | integer        | Number of DHCPv4 packets received. |
+   |                                                    |                | This includes all packets: valid,  |
+   |                                                    |                | bogus, corrupted, rejected, etc.   |
+   |                                                    |                | This statistic is expected to grow |
+   |                                                    |                | rapidly.                           |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-discover-received                             | integer        | Number of DHCPDISCOVER packets     |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to grow; its increase     |
+   |                                                    |                | means that clients that just       |
+   |                                                    |                | booted started their configuration |
+   |                                                    |                | process and their initial packets  |
+   |                                                    |                | reached the Kea server.            |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-offer-received                                | integer        | Number of DHCPOFFER packets        |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to remain zero at all     |
+   |                                                    |                | times, as DHCPOFFER packets are    |
+   |                                                    |                | sent by the server and the server  |
+   |                                                    |                | is never expected to receive them. |
+   |                                                    |                | A non-zero value indicates an      |
+   |                                                    |                | error. One likely cause would be a |
+   |                                                    |                | misbehaving relay agent that       |
+   |                                                    |                | incorrectly forwards DHCPOFFER     |
+   |                                                    |                | messages towards the server,       |
+   |                                                    |                | rather than back to the clients.   |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-request-received                              | integer        | Number of DHCPREQUEST packets      |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to grow. Its increase     |
+   |                                                    |                | means that clients that just       |
+   |                                                    |                | booted received the server's       |
+   |                                                    |                | response (DHCPOFFER) and accepted  |
+   |                                                    |                | it, and are now requesting an      |
+   |                                                    |                | address (DHCPREQUEST).             |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-ack-received                                  | integer        | Number of DHCPACK packets          |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to remain zero at all     |
+   |                                                    |                | times, as DHCPACK packets are sent |
+   |                                                    |                | by the server and the server is    |
+   |                                                    |                | never expected to receive them. A  |
+   |                                                    |                | non-zero value indicates an error. |
+   |                                                    |                | One likely cause would be a        |
+   |                                                    |                | misbehaving relay agent that       |
+   |                                                    |                | incorrectly forwards DHCPACK       |
+   |                                                    |                | messages towards the server,       |
+   |                                                    |                | rather than back to the clients.   |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-nak-received                                  | integer        | Number of DHCPNAK packets          |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to remain zero at all     |
+   |                                                    |                | times, as DHCPNAK packets are sent |
+   |                                                    |                | by the server and the server is    |
+   |                                                    |                | never expected to receive them. A  |
+   |                                                    |                | non-zero value indicates an error. |
+   |                                                    |                | One likely cause would be a        |
+   |                                                    |                | misbehaving relay agent that       |
+   |                                                    |                | incorrectly forwards DHCPNAK       |
+   |                                                    |                | messages towards the server,       |
+   |                                                    |                | rather than back to the clients.   |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-release-received                              | integer        | Number of DHCPRELEASE packets      |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to grow. Its increase     |
+   |                                                    |                | means that clients that had an     |
+   |                                                    |                | address are shutting down or       |
+   |                                                    |                | ceasing to use their addresses.    |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-decline-received                              | integer        | Number of DHCPDECLINE packets      |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to remain close to zero.  |
+   |                                                    |                | Its increase means that a client   |
+   |                                                    |                | leased an address, but discovered  |
+   |                                                    |                | that the address is currently      |
+   |                                                    |                | used by an unknown device          |
+   |                                                    |                | elsewhere in the network.          |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-inform-received                               | integer        | Number of DHCPINFORM packets       |
+   |                                                    |                | received. This statistic is        |
+   |                                                    |                | expected to grow. Its increase     |
+   |                                                    |                | means that there are clients       |
+   |                                                    |                | that either do not need an address |
+   |                                                    |                | or already have an address and are |
+   |                                                    |                | interested only in getting         |
+   |                                                    |                | additional configuration           |
+   |                                                    |                | parameters.                        |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-unknown-received                              | integer        | Number of packets received of an   |
+   |                                                    |                | unknown type. A non-zero value of  |
+   |                                                    |                | this statistic indicates that the  |
+   |                                                    |                | server received a packet that it   |
+   |                                                    |                | was not able to recognize, either  |
+   |                                                    |                | with an unsupported type or        |
+   |                                                    |                | possibly malformed (without a      |
+   |                                                    |                | message-type option).              |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-sent                                          | integer        | Number of DHCPv4 packets sent.     |
+   |                                                    |                | This statistic is expected to grow |
+   |                                                    |                | every time the server transmits a  |
+   |                                                    |                | packet. In general, it should      |
+   |                                                    |                | roughly match pkt4-received, as    |
+   |                                                    |                | most incoming packets cause the    |
+   |                                                    |                | server to respond. There are       |
+   |                                                    |                | exceptions (e.g. DHCPRELEASE), so  |
+   |                                                    |                | do not worry if it is less than    |
+   |                                                    |                | pkt4-received.                     |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-offer-sent                                    | integer        | Number of DHCPOFFER packets sent.  |
+   |                                                    |                | This statistic is expected to grow |
+   |                                                    |                | in most cases after a DHCPDISCOVER |
+   |                                                    |                | is processed. There are certain    |
+   |                                                    |                | uncommon, but valid, cases where   |
+   |                                                    |                | incoming DHCPDISCOVER packets are  |
+   |                                                    |                | dropped, but in general this       |
+   |                                                    |                | statistic is expected to be close  |
+   |                                                    |                | to pkt4-discover-received.         |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-ack-sent                                      | integer        | Number of DHCPACK packets sent.    |
+   |                                                    |                | This statistic is expected to grow |
+   |                                                    |                | in most cases after a DHCPREQUEST  |
+   |                                                    |                | is processed. There are certain    |
+   |                                                    |                | cases where DHCPNAK is sent        |
+   |                                                    |                | instead. In general, the sum of    |
+   |                                                    |                | pkt4-ack-sent and pkt4-nak-sent    |
+   |                                                    |                | should be close to                 |
+   |                                                    |                | pkt4-request-received.             |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-nak-sent                                      | integer        | Number of DHCPNAK packets sent.    |
+   |                                                    |                | This statistic is expected to grow |
+   |                                                    |                | when the server chooses not to     |
+   |                                                    |                | honor the address requested by a   |
+   |                                                    |                | client. In general, the sum of     |
+   |                                                    |                | pkt4-ack-sent and pkt4-nak-sent    |
+   |                                                    |                | should be close to                 |
+   |                                                    |                | pkt4-request-received.             |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-parse-failed                                  | integer        | Number of incoming packets that    |
+   |                                                    |                | could not be parsed. A non-zero    |
+   |                                                    |                | value of this statistic indicates  |
+   |                                                    |                | that the server received a         |
+   |                                                    |                | malformed or truncated packet.     |
+   |                                                    |                | This may indicate problems in the  |
+   |                                                    |                | network, faulty clients, or a bug  |
+   |                                                    |                | in the server.                     |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-receive-drop                                  | integer        | Number of incoming packets that    |
+   |                                                    |                | were dropped. The exact reason for |
+   |                                                    |                | dropping packets is logged, but    |
+   |                                                    |                | the most common reasons may be: an |
+   |                                                    |                | unacceptable packet type was       |
+   |                                                    |                | received, direct responses are     |
+   |                                                    |                | forbidden, or the server-id sent   |
+   |                                                    |                | by the client does not match the   |
+   |                                                    |                | server's server-id.                |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].total-addresses                         | integer        | Total number of addresses          |
+   |                                                    |                | available for DHCPv4 management    |
+   |                                                    |                | for a given subnet; in other       |
+   |                                                    |                | words, this is the sum of all      |
+   |                                                    |                | addresses in all configured pools. |
+   |                                                    |                | This statistic changes only during |
+   |                                                    |                | configuration updates. It does not |
+   |                                                    |                | take into account any addresses    |
+   |                                                    |                | that may be reserved due to host   |
+   |                                                    |                | reservation. The *id* is the       |
+   |                                                    |                | the subnet-id of a given subnet.   |
+   |                                                    |                | This statistic is exposed for each |
+   |                                                    |                | subnet separately, and is reset    |
+   |                                                    |                | during a reconfiguration event.    |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].total-addresses               | integer        | Total number of addresses          |
+   |                                                    |                | available for DHCPv4 management    |
+   |                                                    |                | for a given subnet pool; in other  |
+   |                                                    |                | words, this is the sum of all      |
+   |                                                    |                | addresses in configured subnet     |
+   |                                                    |                | pool. This statistic changes only  |
+   |                                                    |                | during configuration updates. It   |
+   |                                                    |                | does not take into account any     |
+   |                                                    |                | addresses that may be reserved due |
+   |                                                    |                | to host reservation. The *id* is   |
+   |                                                    |                | the subnet-id of a given subnet.   |
+   |                                                    |                | The *pid* is the pool-id of a      |
+   |                                                    |                | given pool. This statistic is      |
+   |                                                    |                | exposed for each subnet pool       |
+   |                                                    |                | separately, and is reset during a  |
+   |                                                    |                | reconfiguration event.             |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | cumulative-assigned-addresses                      | integer        | Cumulative number of addresses     |
+   |                                                    |                | that have been assigned since      |
+   |                                                    |                | server startup. It is incremented  |
+   |                                                    |                | each time an address is assigned   |
+   |                                                    |                | and is not reset when the server   |
+   |                                                    |                | is reconfigured.                   |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].cumulative-assigned-addresses           | integer        | Cumulative number of assigned      |
+   |                                                    |                | addresses in a given subnet. It    |
+   |                                                    |                | increases every time a new lease   |
+   |                                                    |                | is allocated (as a result of       |
+   |                                                    |                | receiving a DHCPREQUEST message)   |
+   |                                                    |                | and never decreases. The *id* is   |
+   |                                                    |                | the subnet-id of the subnet. This  |
+   |                                                    |                | statistic is exposed for each      |
+   |                                                    |                | subnet separately, and is reset    |
+   |                                                    |                | during a reconfiguration event.    |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].cumulative-assigned-addresses | integer        | Cumulative number of assigned      |
+   |                                                    |                | addresses in a given subnet pool.  |
+   |                                                    |                | It increases every time a new      |
+   |                                                    |                | lease is allocated (as a result of |
+   |                                                    |                | receiving a DHCPREQUEST message)   |
+   |                                                    |                | and never decreases. The *id* is   |
+   |                                                    |                | the subnet-id of the subnet. The   |
+   |                                                    |                | *pid* is the pool-id of the pool.  |
+   |                                                    |                | This statistic is exposed for each |
+   |                                                    |                | subnet pool separately, and is     |
+   |                                                    |                | reset during a reconfiguration     |
+   |                                                    |                | event.                             |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].assigned-addresses                      | integer        | Number of assigned addresses in a  |
+   |                                                    |                | given subnet. It increases every   |
+   |                                                    |                | time a new lease is allocated (as  |
+   |                                                    |                | a result of receiving a            |
+   |                                                    |                | DHCPREQUEST message) and decreases |
+   |                                                    |                | every time a lease is released (a  |
+   |                                                    |                | DHCPRELEASE message is received)   |
+   |                                                    |                | or expires. The *id* is the        |
+   |                                                    |                | subnet-id of the subnet. This      |
+   |                                                    |                | statistic is exposed for each      |
+   |                                                    |                | subnet separately, and is reset    |
+   |                                                    |                | during a reconfiguration event.    |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].assigned-addresses            | integer        | Number of assigned addresses in a  |
+   |                                                    |                | given subnet pool. It increases    |
+   |                                                    |                | every time a new lease is          |
+   |                                                    |                | allocated (as a result of          |
+   |                                                    |                | receiving a DHCPREQUEST message)   |
+   |                                                    |                | and decreases every time a lease   |
+   |                                                    |                | is released (a DHCPRELEASE message |
+   |                                                    |                | is received) or expires. The *id*  |
+   |                                                    |                | is the subnet-id of the subnet.    |
+   |                                                    |                | The *pid* is the pool-id of the    |
+   |                                                    |                | pool. This statistic is exposed    |
+   |                                                    |                | for each subnet pool separately,   |
+   |                                                    |                | and is reset during a              |
+   |                                                    |                | reconfiguration event.             |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | reclaimed-leases                                   | integer        | Number of expired leases that have |
+   |                                                    |                | been reclaimed since server        |
+   |                                                    |                | startup. It is incremented each    |
+   |                                                    |                | time an expired lease is reclaimed |
+   |                                                    |                | and never decreases. It can be     |
+   |                                                    |                | used as a long-term indicator of   |
+   |                                                    |                | how many actual leases have been   |
+   |                                                    |                | reclaimed. This is a global        |
+   |                                                    |                | statistic that covers all subnets. |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].reclaimed-leases                        | integer        | Number of expired leases           |
+   |                                                    |                | associated with a given subnet     |
+   |                                                    |                | that have been reclaimed since     |
+   |                                                    |                | server startup. It is incremented  |
+   |                                                    |                | each time an expired lease is      |
+   |                                                    |                | reclaimed. The *id* is the         |
+   |                                                    |                | subnet-id of a given subnet. This  |
+   |                                                    |                | statistic is exposed for each      |
+   |                                                    |                | subnet separately.                 |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].reclaimed-leases              | integer        | Number of expired leases           |
+   |                                                    |                | associated with a given subnet     |
+   |                                                    |                | pool that have been reclaimed      |
+   |                                                    |                | since server startup. It is        |
+   |                                                    |                | incremented each time an expired   |
+   |                                                    |                | lease is reclaimed. The *id* is    |
+   |                                                    |                | the subnet-id of a given subnet.   |
+   |                                                    |                | The *pid* is the pool-id of the    |
+   |                                                    |                | pool. This statistic is exposed    |
+   |                                                    |                | for each subnet pool separately.   |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | declined-addresses                                 | integer        | Number of IPv4 addresses that are  |
+   |                                                    |                | currently declined; a count of the |
+   |                                                    |                | number of leases currently         |
+   |                                                    |                | unavailable. Once a lease is       |
+   |                                                    |                | recovered, this statistic is       |
+   |                                                    |                | decreased; ideally, this statistic |
+   |                                                    |                | should be zero. If this statistic  |
+   |                                                    |                | is non-zero or increasing, a       |
+   |                                                    |                | network administrator should       |
+   |                                                    |                | investigate whether there is a     |
+   |                                                    |                | misbehaving device in the network. |
+   |                                                    |                | This is a global statistic that    |
+   |                                                    |                | covers all subnets.                |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].declined-addresses                      | integer        | Number of IPv4 addresses that are  |
+   |                                                    |                | currently declined in a given      |
+   |                                                    |                | subnet; a count of the number of   |
+   |                                                    |                | leases currently unavailable. Once |
+   |                                                    |                | a lease is recovered, this         |
+   |                                                    |                | statistic is decreased; ideally,   |
+   |                                                    |                | this statistic should be zero. If  |
+   |                                                    |                | this statistic is non-zero or      |
+   |                                                    |                | increasing, a network              |
+   |                                                    |                | administrator should investigate   |
+   |                                                    |                | whether there is a misbehaving     |
+   |                                                    |                | device in the network. The *id* is |
+   |                                                    |                | the subnet-id of a given subnet.   |
+   |                                                    |                | This statistic is exposed for each |
+   |                                                    |                | subnet separately.                 |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].declined-addresses            | integer        | Number of IPv4 addresses that are  |
+   |                                                    |                | currently declined in a given      |
+   |                                                    |                | subnet pool; a count of the number |
+   |                                                    |                | of leases currently unavailable.   |
+   |                                                    |                | Once a lease is recovered, this    |
+   |                                                    |                | statistic is decreased; ideally,   |
+   |                                                    |                | this statistic should be zero. If  |
+   |                                                    |                | this statistic is non-zero or      |
+   |                                                    |                | increasing, a network              |
+   |                                                    |                | administrator should investigate   |
+   |                                                    |                | whether there is a misbehaving     |
+   |                                                    |                | device in the network. The *id* is |
+   |                                                    |                | the subnet-id of a given subnet.   |
+   |                                                    |                | The *pid* is the pool-id of the    |
+   |                                                    |                | pool. This statistic is exposed    |
+   |                                                    |                | for each subnet pool separately.   |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | reclaimed-declined-addresses                       | integer        | Number of IPv4 addresses that were |
+   |                                                    |                | declined, but have now been        |
+   |                                                    |                | recovered. Unlike                  |
+   |                                                    |                | declined-addresses, this statistic |
+   |                                                    |                | never decreases. It can be used as |
+   |                                                    |                | a long-term indicator of how many  |
+   |                                                    |                | actual valid declines were         |
+   |                                                    |                | processed and recovered from. This |
+   |                                                    |                | is a global statistic that covers  |
+   |                                                    |                | all subnets.                       |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].reclaimed-declined-addresses            | integer        | Number of IPv4 addresses that were |
+   |                                                    |                | declined, but have now been        |
+   |                                                    |                | recovered. Unlike                  |
+   |                                                    |                | declined-addresses, this statistic |
+   |                                                    |                | never decreases. It can be used as |
+   |                                                    |                | a long-term indicator of how many  |
+   |                                                    |                | actual valid declines were         |
+   |                                                    |                | processed and recovered from. The  |
+   |                                                    |                | *id* is the subnet-id of a given   |
+   |                                                    |                | subnet. This statistic is exposed  |
+   |                                                    |                | for each subnet separately.        |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].reclaimed-declined-addresses  | integer        | Number of IPv4 addresses that were |
+   |                                                    |                | declined, but have now been        |
+   |                                                    |                | recovered. Unlike                  |
+   |                                                    |                | declined-addresses, this statistic |
+   |                                                    |                | never decreases. It can be used as |
+   |                                                    |                | a long-term indicator of how many  |
+   |                                                    |                | actual valid declines were         |
+   |                                                    |                | processed and recovered from. The  |
+   |                                                    |                | *id* is the subnet-id of a given   |
+   |                                                    |                | subnet. The *pid* is the pool-id   |
+   |                                                    |                | of the pool. This statistic is     |
+   |                                                    |                | exposed for each subnet pool       |
+   |                                                    |                | separately.                        |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-lease-query-received                          | integer        | Number of IPv4 DHCPLEASEQUERY      |
+   |                                                    |                | packets received. (Only exists if  |
+   |                                                    |                | Leasequery hook library is         |
+   |                                                    |                | loaded.)                           |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-lease-query-response-unknown-sent             | integer        | Number of IPv4 DHCPLEASEUNKNOWN    |
+   |                                                    |                | responses sent. (Only exists if    |
+   |                                                    |                | Leasequery hook library is         |
+   |                                                    |                | loaded.)                           |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-lease-query-response-unassigned-sent          | integer        | Number of IPv4 DHCPLEASEUNASSIGNED |
+   |                                                    |                | responses sent. (Only exists if    |
+   |                                                    |                | Leasequery hook library is         |
+   |                                                    |                | loaded.)                           |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | pkt4-lease-query-response-active-sent              | integer        | Number of IPv4 DHCPLEASEACTIVE     |
+   |                                                    |                | responses sent. (Only exists if    |
+   |                                                    |                | Leasequery hook library is         |
+   |                                                    |                | loaded.)                           |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-allocation-fail                                 | integer        | Number of total address allocation |
+   |                                                    |                | failures for a particular client.  |
+   |                                                    |                | This consists in the number of     |
+   |                                                    |                | lease allocation attempts that the |
+   |                                                    |                | server made before giving up and   |
+   |                                                    |                | was unable to use any of the       |
+   |                                                    |                | address pools. This is a global    |
+   |                                                    |                | statistic that covers all subnets. |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-allocation-fail                      | integer        | Number of total address allocation |
+   |                                                    |                | failures for a particular client.  |
+   |                                                    |                | This consists in the number of     |
+   |                                                    |                | lease allocation attempts that the |
+   |                                                    |                | server made before giving up and   |
+   |                                                    |                | was unable to use any of the       |
+   |                                                    |                | address pools. The *id* is the     |
+   |                                                    |                | subnet-id of a given subnet. This  |
+   |                                                    |                | statistic is exposed for each      |
+   |                                                    |                | subnet separately.                 |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-allocation-fail-shared-network                  | integer        | Number of address allocation       |
+   |                                                    |                | failures for a particular client   |
+   |                                                    |                | connected to a shared network.     |
+   |                                                    |                | This is a global statistic that    |
+   |                                                    |                | covers all subnets.                |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-allocation-fail-shared-network       | integer        | Number of address allocation       |
+   |                                                    |                | failures for a particular client   |
+   |                                                    |                | connected to a shared network.     |
+   |                                                    |                | The *id* is the subnet-id of a     |
+   |                                                    |                | given subnet. This statistic is    |
+   |                                                    |                | exposed for each subnet            |
+   |                                                    |                | separately.                        |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-allocation-fail-subnet                          | integer        | Number of address allocation       |
+   |                                                    |                | failures for a particular client   |
+   |                                                    |                | connected to a subnet that does    |
+   |                                                    |                | not belong to a shared network.    |
+   |                                                    |                | This is a global statistic that    |
+   |                                                    |                | covers all subnets.                |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-allocation-fail-subnet               | integer        | Number of address allocation       |
+   |                                                    |                | failures for a particular client   |
+   |                                                    |                | connected to a subnet that does    |
+   |                                                    |                | not belong to a shared network.    |
+   |                                                    |                | The *id* is the subnet-id of a     |
+   |                                                    |                | given subnet. This statistic is    |
+   |                                                    |                | exposed for each subnet            |
+   |                                                    |                | separately.                        |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-allocation-fail-no-pools                        | integer        | Number of address allocation       |
+   |                                                    |                | failures because the server could  |
+   |                                                    |                | not use any configured pools for   |
+   |                                                    |                | a particular client. It is also    |
+   |                                                    |                | possible that all of the subnets   |
+   |                                                    |                | from which the server attempted to |
+   |                                                    |                | assign an address lack address     |
+   |                                                    |                | pools. In this case, it should be  |
+   |                                                    |                | considered misconfiguration if an  |
+   |                                                    |                | operator expects that some clients |
+   |                                                    |                | should be assigned dynamic         |
+   |                                                    |                | addresses. This is a global        |
+   |                                                    |                | statistic that covers all subnets. |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-allocation-fail-no-pools             | integer        | Number of address allocation       |
+   |                                                    |                | failures because the server could  |
+   |                                                    |                | not use any configured pools for   |
+   |                                                    |                | a particular client. It is also    |
+   |                                                    |                | possible that all of the subnets   |
+   |                                                    |                | from which the server attempted to |
+   |                                                    |                | assign an address lack address     |
+   |                                                    |                | pools. In this case, it should be  |
+   |                                                    |                | considered misconfiguration if an  |
+   |                                                    |                | operator expects that some clients |
+   |                                                    |                | should be assigned dynamic         |
+   |                                                    |                | addresses. The *id* is the         |
+   |                                                    |                | subnet-id of a given subnet. This  |
+   |                                                    |                | statistic is exposed for each      |
+   |                                                    |                | subnet separately.                 |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-allocation-fail-classes                         | integer        | Number of address allocation       |
+   |                                                    |                | failures when the client's packet  |
+   |                                                    |                | belongs to one or more classes.    |
+   |                                                    |                | There may be several reasons why a |
+   |                                                    |                | lease was not assigned. One of     |
+   |                                                    |                | them may be a case when all pools  |
+   |                                                    |                | require packet to belong to        |
+   |                                                    |                | certain classes and the incoming   |
+   |                                                    |                | packet didn't belong to any of     |
+   |                                                    |                | them. Another case where this      |
+   |                                                    |                | information may be useful is to    |
+   |                                                    |                | point out that the pool reserved   |
+   |                                                    |                | to a given class has ran out of    |
+   |                                                    |                | addresses. This is a global        |
+   |                                                    |                | statistic that covers all subnets. |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-allocation-fail-classes              | integer        | Number of address allocation       |
+   |                                                    |                | failures when the client's packet  |
+   |                                                    |                | belongs to one or more classes.    |
+   |                                                    |                | There may be several reasons why a |
+   |                                                    |                | lease was not assigned. One of     |
+   |                                                    |                | them may be a case when all pools  |
+   |                                                    |                | require packet to belong to        |
+   |                                                    |                | certain classes and the incoming   |
+   |                                                    |                | packet didn't belong to any of     |
+   |                                                    |                | them. Another case where this      |
+   |                                                    |                | information may be useful is to    |
+   |                                                    |                | point out that the pool reserved   |
+   |                                                    |                | to a given class has ran out of    |
+   |                                                    |                | addresses. The *id* is the         |
+   |                                                    |                | subnet-id of a given subnet. This  |
+   |                                                    |                | statistic is exposed for each      |
+   |                                                    |                | subnet separately.                 |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-lease-reuses                                    | integer        | Number of times an IPv4 lease had  |
+   |                                                    |                | its CLTT increased in memory and   |
+   |                                                    |                | its expiration time left unchanged |
+   |                                                    |                | in persistent storage as part of   |
+   |                                                    |                | the lease caching feature. This is |
+   |                                                    |                | referred to as a lease reuse.      |
+   |                                                    |                | This statistic is global.          |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-lease-reuses                         | integer        | Number of times an IPv4 lease had  |
+   |                                                    |                | its CLTT increased in memory and   |
+   |                                                    |                | its expiration time left unchanged |
+   |                                                    |                | in persistent storage as part of   |
+   |                                                    |                | the lease caching feature. This is |
+   |                                                    |                | referred to as a lease reuse.      |
+   |                                                    |                | This statistic is on a per-subnet  |
+   |                                                    |                | basis. The *id* is the subnet-id   |
+   |                                                    |                | of a given subnet.                 |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | v4-reservation-conflicts                           | integer        | Number of host reservation         |
+   |                                                    |                | allocation conflicts which have    |
+   |                                                    |                | occurred across every subnet. When |
+   |                                                    |                | a client sends a DHCP Discover and |
+   |                                                    |                | is matched to a host reservation   |
+   |                                                    |                | which is already leased to another |
+   |                                                    |                | client, this counter is increased  |
+   |                                                    |                | by 1.                              |
+   +----------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v4-reservation-conflicts                | integer        | Number of host reservation         |
+   |                                                    |                | allocation conflicts which have    |
+   |                                                    |                | occurred in a specific subnet.     |
+   |                                                    |                | When a client sends a DHCP         |
+   |                                                    |                | Discover and is matched to a host  |
+   |                                                    |                | reservation which is already       |
+   |                                                    |                | leased to another client, this     |
+   |                                                    |                | counter is increased by 1.         |
+   +----------------------------------------------------+----------------+------------------------------------+
 
 .. note::
 
index ea39f8a9df390a13e1a733e0066b2d3fd250879d..81acaf3673355726a6e83922bf325dcbfbc18107 100644 (file)
@@ -6389,523 +6389,672 @@ The DHCPv6 server supports the following statistics:
    :widths: 20 10 70
 
 
-   +----------------------------------------------+----------------+------------------------------------+
-   | Statistic                                    | Data Type      | Description                        |
-   +==============================================+================+====================================+
-   | pkt6-received                                | integer        | Number of DHCPv6 packets received. |
-   |                                              |                | This includes all packets: valid,  |
-   |                                              |                | bogus, corrupted, rejected, etc.   |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | rapidly.                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-receive-drop                            | integer        | Number of incoming packets that    |
-   |                                              |                | were dropped. The exact reason for |
-   |                                              |                | dropping packets is logged, but    |
-   |                                              |                | the most common reasons may be: an |
-   |                                              |                | unacceptable or not supported      |
-   |                                              |                | packet type is received, direct    |
-   |                                              |                | responses are forbidden, the       |
-   |                                              |                | server-id sent by the client does  |
-   |                                              |                | not match the server's server-id,  |
-   |                                              |                | or the packet is malformed.        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-parse-failed                            | integer        | Number of incoming packets that    |
-   |                                              |                | could not be parsed. A non-zero    |
-   |                                              |                | value of this statistic indicates  |
-   |                                              |                | that the server received a         |
-   |                                              |                | malformed or truncated packet.     |
-   |                                              |                | This may indicate problems in the  |
-   |                                              |                | network, faulty clients, faulty    |
-   |                                              |                | relay agents, or a bug in the      |
-   |                                              |                | server.                            |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-solicit-received                        | integer        | Number of SOLICIT packets          |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow; its increase     |
-   |                                              |                | means that clients that just       |
-   |                                              |                | booted started their configuration |
-   |                                              |                | process and their initial packets  |
-   |                                              |                | reached the Kea server.            |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-advertise-received                      | integer        | Number of ADVERTISE packets        |
-   |                                              |                | received. ADVERTISE packets are    |
-   |                                              |                | sent by the server and the server  |
-   |                                              |                | is never expected to receive them. |
-   |                                              |                | A non-zero value of this statistic |
-   |                                              |                | indicates an error occurring in    |
-   |                                              |                | the network. One likely cause      |
-   |                                              |                | would be a misbehaving relay       |
-   |                                              |                | agent that incorrectly forwards    |
-   |                                              |                | ADVERTISE messages towards the     |
-   |                                              |                | server, rather than back to the    |
-   |                                              |                | clients.                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-request-received                        | integer        | Number of DHCPREQUEST packets      |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow. Its increase     |
-   |                                              |                | means that clients that just       |
-   |                                              |                | booted received the server's       |
-   |                                              |                | response (DHCPADVERTISE) and       |
-   |                                              |                | accepted it, and are now           |
-   |                                              |                | requesting an address              |
-   |                                              |                | (DHCPREQUEST).                     |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-reply-received                          | integer        | Number of REPLY packets received.  |
-   |                                              |                | This statistic is expected to      |
-   |                                              |                | remain zero at all times, as REPLY |
-   |                                              |                | packets are sent by the server and |
-   |                                              |                | the server is never expected to    |
-   |                                              |                | receive them. A non-zero value     |
-   |                                              |                | indicates an error. One likely     |
-   |                                              |                | cause would be a misbehaving relay |
-   |                                              |                | agent that incorrectly forwards    |
-   |                                              |                | REPLY messages towards the server, |
-   |                                              |                | rather than back to the clients.   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-renew-received                          | integer        | Number of RENEW packets received.  |
-   |                                              |                | This statistic is expected to      |
-   |                                              |                | grow; its increase means that      |
-   |                                              |                | clients received their addresses   |
-   |                                              |                | and prefixes and are trying to     |
-   |                                              |                | renew them.                        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-rebind-received                         | integer        | Number of REBIND packets received. |
-   |                                              |                | A non-zero value indicates that    |
-   |                                              |                | clients did not receive responses  |
-   |                                              |                | to their RENEW messages (through   |
-   |                                              |                | the regular lease-renewal          |
-   |                                              |                | mechanism) and are attempting to   |
-   |                                              |                | find any server that is able to    |
-   |                                              |                | take over their leases. It may     |
-   |                                              |                | mean that some servers' REPLY      |
-   |                                              |                | messages never reached the         |
-   |                                              |                | clients.                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-release-received                        | integer        | Number of RELEASE packets          |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow when a device is  |
-   |                                              |                | being shut down in the network; it |
-   |                                              |                | indicates that the address or      |
-   |                                              |                | prefix assigned is reported as no  |
-   |                                              |                | longer needed. Note that many      |
-   |                                              |                | devices, especially wireless, do   |
-   |                                              |                | not send RELEASE packets either    |
-   |                                              |                | because of design choice or due to |
-   |                                              |                | the client moving out of range.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-decline-received                        | integer        | Number of DECLINE packets          |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to remain close to zero.  |
-   |                                              |                | Its increase means that a client   |
-   |                                              |                | leased an address, but discovered  |
-   |                                              |                | that the address is currently used |
-   |                                              |                | by an unknown device in the        |
-   |                                              |                | network. If this statistic is      |
-   |                                              |                | growing, it may indicate a         |
-   |                                              |                | misconfigured server or devices    |
-   |                                              |                | that have statically assigned      |
-   |                                              |                | conflicting addresses.             |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-infrequest-received                     | integer        | Number of INFORMATION-REQUEST      |
-   |                                              |                | packets received. This statistic   |
-   |                                              |                | is expected to grow if there are   |
-   |                                              |                | devices that are using stateless   |
-   |                                              |                | DHCPv6. INFORMATION-REQUEST        |
-   |                                              |                | messages are used by clients that  |
-   |                                              |                | request stateless configuration,   |
-   |                                              |                | i.e. options and parameters other  |
-   |                                              |                | than addresses or prefixes.        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-dhcpv4-query-received                   | integer        | Number of DHCPv4-QUERY packets     |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to grow if there are      |
-   |                                              |                | devices that are using             |
-   |                                              |                | DHCPv4-over-DHCPv6. DHCPv4-QUERY   |
-   |                                              |                | messages are used by DHCPv4        |
-   |                                              |                | clients on an IPv6-only line which |
-   |                                              |                | encapsulates the requests over     |
-   |                                              |                | DHCPv6.                            |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-dhcpv4-response-received                | integer        | Number of DHCPv4-RESPONSE packets  |
-   |                                              |                | received. This statistic is        |
-   |                                              |                | expected to remain zero at all     |
-   |                                              |                | times, as DHCPv4-RESPONSE packets  |
-   |                                              |                | are sent by the server and the     |
-   |                                              |                | server is never expected to        |
-   |                                              |                | receive them. A non-zero value     |
-   |                                              |                | indicates an error. One likely     |
-   |                                              |                | cause would be a misbehaving relay |
-   |                                              |                | agent that incorrectly forwards    |
-   |                                              |                | DHCPv4-RESPONSE message towards    |
-   |                                              |                | the server rather than back to the |
-   |                                              |                | clients.                           |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-unknown-received                        | integer        | Number of packets received of an   |
-   |                                              |                | unknown type. A non-zero value of  |
-   |                                              |                | this statistic indicates that the  |
-   |                                              |                | server received a packet that it   |
-   |                                              |                | was unable to recognize; either it |
-   |                                              |                | had an unsupported type or was     |
-   |                                              |                | possibly malformed.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-sent                                    | integer        | Number of DHCPv6 packets sent.     |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | every time the server transmits a  |
-   |                                              |                | packet. In general, it should      |
-   |                                              |                | roughly match pkt6-received, as    |
-   |                                              |                | most incoming packets cause the    |
-   |                                              |                | server to respond. There are       |
-   |                                              |                | exceptions (e.g. server receiving  |
-   |                                              |                | a REQUEST with server-id matching  |
-   |                                              |                | another server), so do not worry   |
-   |                                              |                | if it is less than pkt6-received.  |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-advertise-sent                          | integer        | Number of ADVERTISE packets sent.  |
-   |                                              |                | This statistic is expected to grow |
-   |                                              |                | in most cases after a SOLICIT is   |
-   |                                              |                | processed. There are certain       |
-   |                                              |                | uncommon, but valid, cases where   |
-   |                                              |                | incoming SOLICIT packets are       |
-   |                                              |                | dropped, but in general this       |
-   |                                              |                | statistic is expected to be close  |
-   |                                              |                | to pkt6-solicit-received.          |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-reply-sent                              | integer        | Number of REPLY packets sent. This |
-   |                                              |                | statistic is expected to grow in   |
-   |                                              |                | most cases after a SOLICIT (with   |
-   |                                              |                | rapid-commit), REQUEST, RENEW,     |
-   |                                              |                | REBIND, RELEASE, DECLINE, or       |
-   |                                              |                | INFORMATION-REQUEST is processed.  |
-   |                                              |                | There are certain cases where      |
-   |                                              |                | there is no response.              |
-   +----------------------------------------------+----------------+------------------------------------+
-   | pkt6-dhcpv4-response-sent                    | integer        | Number of DHCPv4-RESPONSE packets  |
-   |                                              |                | sent. This statistic is expected   |
-   |                                              |                | to grow in most cases after a      |
-   |                                              |                | DHCPv4-QUERY is processed. There   |
-   |                                              |                | are certain cases where there is   |
-   |                                              |                | no response.                       |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].total-nas                         | big integer    | Total number of NA addresses       |
-   |                                              |                | available for DHCPv6 management    |
-   |                                              |                | for a given subnet; in other       |
-   |                                              |                | words, this is the sum of all      |
-   |                                              |                | addresses in all configured pools. |
-   |                                              |                | This statistic changes only during |
-   |                                              |                | configuration changes. Note that   |
-   |                                              |                | it does not take into account any  |
-   |                                              |                | addresses that may be reserved due |
-   |                                              |                | to host reservation. The *id* is   |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | cumulative-assigned-nas                      | integer        | Cumulative number of NA addresses  |
-   |                                              |                | that have been assigned since      |
-   |                                              |                | server startup. It is incremented  |
-   |                                              |                | each time a NA address is assigned |
-   |                                              |                | and is not reset when the server   |
-   |                                              |                | is reconfigured.                   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].cumulative-assigned-nas           | integer        | Cumulative number of NA addresses  |
-   |                                              |                | in a given subnet that were        |
-   |                                              |                | assigned. It increases every time  |
-   |                                              |                | a new lease is allocated (as a     |
-   |                                              |                | result of receiving a REQUEST      |
-   |                                              |                | message) and is never decreased.   |
-   |                                              |                | The *id* is the subnet-id of a     |
-   |                                              |                | given subnet. This statistic is    |
-   |                                              |                | exposed for each subnet            |
-   |                                              |                | separately, and is reset during a  |
-   |                                              |                | reconfiguration event.             |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].assigned-nas                      | integer        | Number of NA addresses in a given  |
-   |                                              |                | subnet that are assigned. It       |
-   |                                              |                | increases every time a new lease   |
-   |                                              |                | is allocated (as a result of       |
-   |                                              |                | receiving a REQUEST message) and   |
-   |                                              |                | is decreased every time a lease is |
-   |                                              |                | released (a RELEASE message is     |
-   |                                              |                | received) or expires. The *id* is  |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].total-pds                         | big integer    | Total number of PD prefixes        |
-   |                                              |                | available for DHCPv6 management    |
-   |                                              |                | for a given subnet; in other       |
-   |                                              |                | words, this is the sum of all      |
-   |                                              |                | prefixes in all configured pools.  |
-   |                                              |                | This statistic changes only during |
-   |                                              |                | configuration changes. Note it     |
-   |                                              |                | does not take into account any     |
-   |                                              |                | prefixes that may be reserved due  |
-   |                                              |                | to host reservation. The *id* is   |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | cumulative-assigned-pds                      | integer        | Cumulative number of PD prefixes   |
-   |                                              |                | that have been assigned since      |
-   |                                              |                | server startup. It is incremented  |
-   |                                              |                | each time a PD prefix is assigned  |
-   |                                              |                | and is not reset when the server   |
-   |                                              |                | is reconfigured.                   |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].cumulative-assigned-pds           | integer        | Cumulative number of PD prefixes   |
-   |                                              |                | in a given subnet that were        |
-   |                                              |                | assigned. It increases every time  |
-   |                                              |                | a new lease is allocated (as a     |
-   |                                              |                | result of receiving a REQUEST      |
-   |                                              |                | message) and is never decreased.   |
-   |                                              |                | The *id* is the subnet-id of a     |
-   |                                              |                | given subnet. This statistic is    |
-   |                                              |                | exposed for each subnet            |
-   |                                              |                | separately, and is reset during a  |
-   |                                              |                | reconfiguration event.             |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].assigned-pds                      | integer        | Number of PD prefixes in a given   |
-   |                                              |                | subnet that are assigned. It       |
-   |                                              |                | increases every time a new lease   |
-   |                                              |                | is allocated (as a result of       |
-   |                                              |                | receiving a REQUEST message) and   |
-   |                                              |                | is decreased every time a lease is |
-   |                                              |                | released (a RELEASE message is     |
-   |                                              |                | received) or expires. The *id* is  |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately, and is reset    |
-   |                                              |                | during a reconfiguration event.    |
-   +----------------------------------------------+----------------+------------------------------------+
-   | reclaimed-leases                             | integer        | Number of expired leases that have |
-   |                                              |                | been reclaimed since server        |
-   |                                              |                | startup. It is incremented each    |
-   |                                              |                | time an expired lease is reclaimed |
-   |                                              |                | (counting both NA and PD           |
-   |                                              |                | reclamations). This statistic      |
-   |                                              |                | never decreases. It can be used as |
-   |                                              |                | a long-term indicator of how many  |
-   |                                              |                | actual leases have been reclaimed. |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].reclaimed-leases                  | integer        | Number of expired leases           |
-   |                                              |                | associated with a given subnet     |
-   |                                              |                | that have been reclaimed since     |
-   |                                              |                | server startup. It is incremented  |
-   |                                              |                | each time an expired lease is      |
-   |                                              |                | reclaimed (counting both NA and PD |
-   |                                              |                | reclamations). The *id* is the     |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | declined-addresses                           | integer        | Number of IPv6 addresses that are  |
-   |                                              |                | currently declined; a count of the |
-   |                                              |                | number of leases currently         |
-   |                                              |                | unavailable. Once a lease is       |
-   |                                              |                | recovered, this statistic will be  |
-   |                                              |                | decreased; ideally, this statistic |
-   |                                              |                | should be zero. If this statistic  |
-   |                                              |                | is non-zero or increasing, a       |
-   |                                              |                | network administrator should       |
-   |                                              |                | investigate whether there is a     |
-   |                                              |                | misbehaving device in the network. |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].declined-addresses                | integer        | Number of IPv6 addresses that are  |
-   |                                              |                | currently declined in a given      |
-   |                                              |                | subnet; a count of the number of   |
-   |                                              |                | leases currently unavailable. Once |
-   |                                              |                | a lease is recovered, this         |
-   |                                              |                | statistic will be decreased;       |
-   |                                              |                | ideally, this statistic should be  |
-   |                                              |                | zero. If this statistic is         |
-   |                                              |                | non-zero or increasing, a network  |
-   |                                              |                | administrator should investigate   |
-   |                                              |                | whether there is a misbehaving     |
-   |                                              |                | device in the network. The *id* is |
-   |                                              |                | the subnet-id of a given subnet.   |
-   |                                              |                | This statistic is exposed for each |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | reclaimed-declined-addresses                 | integer        | Number of IPv6 addresses that were |
-   |                                              |                | declined, but have now been        |
-   |                                              |                | recovered. Unlike                  |
-   |                                              |                | declined-addresses, this statistic |
-   |                                              |                | never decreases. It can be used as |
-   |                                              |                | a long-term indicator of how many  |
-   |                                              |                | actual valid declines were         |
-   |                                              |                | processed and recovered from. This |
-   |                                              |                | is a global statistic that covers  |
-   |                                              |                | all subnets.                       |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].reclaimed-declined-addresses      | integer        | Number of IPv6 addresses that were |
-   |                                              |                | declined, but have now been        |
-   |                                              |                | recovered. Unlike                  |
-   |                                              |                | declined-addresses, this statistic |
-   |                                              |                | never decreases. It can be used as |
-   |                                              |                | a long-term indicator of how many  |
-   |                                              |                | actual valid declines were         |
-   |                                              |                | processed and recovered from. The  |
-   |                                              |                | *id* is the subnet-id of a given   |
-   |                                              |                | subnet. This statistic is exposed  |
-   |                                              |                | for each subnet separately.        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-allocation-fail                           | integer        | Number of total address allocation |
-   |                                              |                | failures for a particular client.  |
-   |                                              |                | This consists in the number of     |
-   |                                              |                | lease allocation attempts that the |
-   |                                              |                | server made before giving up and   |
-   |                                              |                | was unable to use any of the       |
-   |                                              |                | address pools. This is a global    |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-allocation-fail                | integer        | Number of total address allocation |
-   |                                              |                | failures for a particular client.  |
-   |                                              |                | This consists in the number of     |
-   |                                              |                | lease allocation attempts that the |
-   |                                              |                | server made before giving up and   |
-   |                                              |                | was unable to use any of the       |
-   |                                              |                | address pools. The *id* is the     |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-allocation-fail-shared-network            | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a shared network.     |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-allocation-fail-shared-network | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a shared network.     |
-   |                                              |                | The *id* is the subnet-id of a     |
-   |                                              |                | given subnet. This statistic is    |
-   |                                              |                | exposed for each subnet            |
-   |                                              |                | separately.                        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-allocation-fail-subnet                    | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a subnet that does    |
-   |                                              |                | not belong to a shared network.    |
-   |                                              |                | This is a global statistic that    |
-   |                                              |                | covers all subnets.                |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-allocation-fail-subnet         | integer        | Number of address allocation       |
-   |                                              |                | failures for a particular client   |
-   |                                              |                | connected to a subnet that does    |
-   |                                              |                | not belong to a shared network.    |
-   |                                              |                | The *id* is the subnet-id of a     |
-   |                                              |                | given subnet. This statistic is    |
-   |                                              |                | exposed for each subnet            |
-   |                                              |                | separately.                        |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-allocation-fail-no-pools                  | integer        | Number of address allocation       |
-   |                                              |                | failures because the server could  |
-   |                                              |                | not use any configured pools for   |
-   |                                              |                | a particular client. It is also    |
-   |                                              |                | possible that all of the subnets   |
-   |                                              |                | from which the server attempted to |
-   |                                              |                | assign an address lack address     |
-   |                                              |                | pools. In this case, it should be  |
-   |                                              |                | considered misconfiguration if an  |
-   |                                              |                | operator expects that some clients |
-   |                                              |                | should be assigned dynamic         |
-   |                                              |                | addresses. This is a global        |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-allocation-fail-no-pools       | integer        | Number of address allocation       |
-   |                                              |                | failures because the server could  |
-   |                                              |                | not use any configured pools for   |
-   |                                              |                | a particular client. It is also    |
-   |                                              |                | possible that all of the subnets   |
-   |                                              |                | from which the server attempted to |
-   |                                              |                | assign an address lack address     |
-   |                                              |                | pools. In this case, it should be  |
-   |                                              |                | considered misconfiguration if an  |
-   |                                              |                | operator expects that some clients |
-   |                                              |                | should be assigned dynamic         |
-   |                                              |                | addresses. The *id* is the         |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-allocation-fail-classes                   | integer        | Number of address allocation       |
-   |                                              |                | failures when the client's packet  |
-   |                                              |                | belongs to one or more classes.    |
-   |                                              |                | There may be several reasons why a |
-   |                                              |                | lease was not assigned. One of     |
-   |                                              |                | them may be a case when all pools  |
-   |                                              |                | require packet to belong to        |
-   |                                              |                | certain classes and the incoming   |
-   |                                              |                | packet didn't belong to any of     |
-   |                                              |                | them. Another case where this      |
-   |                                              |                | information may be useful is to    |
-   |                                              |                | point out that the pool reserved   |
-   |                                              |                | to a given class has ran out of    |
-   |                                              |                | addresses. This is a global        |
-   |                                              |                | statistic that covers all subnets. |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-allocation-fail-classes        | integer        | Number of address allocation       |
-   |                                              |                | failures when the client's packet  |
-   |                                              |                | belongs to one or more classes.    |
-   |                                              |                | There may be several reasons why a |
-   |                                              |                | lease was not assigned. One of     |
-   |                                              |                | them may be a case when all pools  |
-   |                                              |                | require packet to belong to        |
-   |                                              |                | certain classes and the incoming   |
-   |                                              |                | packet didn't belong to any of     |
-   |                                              |                | them. Another case where this      |
-   |                                              |                | information may be useful is to    |
-   |                                              |                | point out that the pool reserved   |
-   |                                              |                | to a given class has ran out of    |
-   |                                              |                | addresses. The *id* is the         |
-   |                                              |                | subnet-id of a given subnet. This  |
-   |                                              |                | statistic is exposed for each      |
-   |                                              |                | subnet separately.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-ia-na-lease-reuses                        | integer        | Number of times an IA_NA lease had |
-   |                                              |                | its CLTT increased in memory and   |
-   |                                              |                | its expiration time left unchanged |
-   |                                              |                | in persistent storage as part of   |
-   |                                              |                | the lease caching feature. This is |
-   |                                              |                | referred to as a lease reuse.      |
-   |                                              |                | This statistic is global.          |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-ia-na-lease-reuses             | integer        | Number of times an IA_NA lease had |
-   |                                              |                | its CLTT increased in memory and   |
-   |                                              |                | its expiration time left unchanged |
-   |                                              |                | in persistent storage as part of   |
-   |                                              |                | the lease caching feature. This is |
-   |                                              |                | referred to as a lease reuse.      |
-   |                                              |                | This statistic is on a per-subnet  |
-   |                                              |                | basis. The *id* is the subnet-id   |
-   |                                              |                | of a given subnet.                 |
-   +----------------------------------------------+----------------+------------------------------------+
-   | v6-ia-pd-lease-reuses                        | integer        | Number of times an IA_PD lease had |
-   |                                              |                | its CLTT increased in memory and   |
-   |                                              |                | its expiration time left unchanged |
-   |                                              |                | in persistent storage as part of   |
-   |                                              |                | the lease caching feature. This is |
-   |                                              |                | referred to as a lease reuse.      |
-   |                                              |                | This statistic is global.          |
-   +----------------------------------------------+----------------+------------------------------------+
-   | subnet[id].v6-ia-pd-lease-reuses             | integer        | Number of times an IA_PD lease had |
-   |                                              |                | its CLTT increased in memory and   |
-   |                                              |                | its expiration time left unchanged |
-   |                                              |                | in persistent storage as part of   |
-   |                                              |                | the lease caching feature. This is |
-   |                                              |                | referred to as a lease reuse.      |
-   |                                              |                | This statistic is on a per-subnet  |
-   |                                              |                | basis. The *id* is the subnet-id   |
-   |                                              |                | of a given subnet.                 |
-   +----------------------------------------------+----------------+------------------------------------+
+   +---------------------------------------------------+----------------+------------------------------------+
+   | Statistic                                         | Data Type      | Description                        |
+   +===================================================+================+====================================+
+   | pkt6-received                                     | integer        | Number of DHCPv6 packets received. |
+   |                                                   |                | This includes all packets: valid,  |
+   |                                                   |                | bogus, corrupted, rejected, etc.   |
+   |                                                   |                | This statistic is expected to grow |
+   |                                                   |                | rapidly.                           |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-receive-drop                                 | integer        | Number of incoming packets that    |
+   |                                                   |                | were dropped. The exact reason for |
+   |                                                   |                | dropping packets is logged, but    |
+   |                                                   |                | the most common reasons may be: an |
+   |                                                   |                | unacceptable or not supported      |
+   |                                                   |                | packet type is received, direct    |
+   |                                                   |                | responses are forbidden, the       |
+   |                                                   |                | server-id sent by the client does  |
+   |                                                   |                | not match the server's server-id,  |
+   |                                                   |                | or the packet is malformed.        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-parse-failed                                 | integer        | Number of incoming packets that    |
+   |                                                   |                | could not be parsed. A non-zero    |
+   |                                                   |                | value of this statistic indicates  |
+   |                                                   |                | that the server received a         |
+   |                                                   |                | malformed or truncated packet.     |
+   |                                                   |                | This may indicate problems in the  |
+   |                                                   |                | network, faulty clients, faulty    |
+   |                                                   |                | relay agents, or a bug in the      |
+   |                                                   |                | server.                            |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-solicit-received                             | integer        | Number of SOLICIT packets          |
+   |                                                   |                | received. This statistic is        |
+   |                                                   |                | expected to grow; its increase     |
+   |                                                   |                | means that clients that just       |
+   |                                                   |                | booted started their configuration |
+   |                                                   |                | process and their initial packets  |
+   |                                                   |                | reached the Kea server.            |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-advertise-received                           | integer        | Number of ADVERTISE packets        |
+   |                                                   |                | received. ADVERTISE packets are    |
+   |                                                   |                | sent by the server and the server  |
+   |                                                   |                | is never expected to receive them. |
+   |                                                   |                | A non-zero value of this statistic |
+   |                                                   |                | indicates an error occurring in    |
+   |                                                   |                | the network. One likely cause      |
+   |                                                   |                | would be a misbehaving relay       |
+   |                                                   |                | agent that incorrectly forwards    |
+   |                                                   |                | ADVERTISE messages towards the     |
+   |                                                   |                | server, rather than back to the    |
+   |                                                   |                | clients.                           |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-request-received                             | integer        | Number of DHCPREQUEST packets      |
+   |                                                   |                | received. This statistic is        |
+   |                                                   |                | expected to grow. Its increase     |
+   |                                                   |                | means that clients that just       |
+   |                                                   |                | booted received the server's       |
+   |                                                   |                | response (DHCPADVERTISE) and       |
+   |                                                   |                | accepted it, and are now           |
+   |                                                   |                | requesting an address              |
+   |                                                   |                | (DHCPREQUEST).                     |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-reply-received                               | integer        | Number of REPLY packets received.  |
+   |                                                   |                | This statistic is expected to      |
+   |                                                   |                | remain zero at all times, as REPLY |
+   |                                                   |                | packets are sent by the server and |
+   |                                                   |                | the server is never expected to    |
+   |                                                   |                | receive them. A non-zero value     |
+   |                                                   |                | indicates an error. One likely     |
+   |                                                   |                | cause would be a misbehaving relay |
+   |                                                   |                | agent that incorrectly forwards    |
+   |                                                   |                | REPLY messages towards the server, |
+   |                                                   |                | rather than back to the clients.   |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-renew-received                               | integer        | Number of RENEW packets received.  |
+   |                                                   |                | This statistic is expected to      |
+   |                                                   |                | grow; its increase means that      |
+   |                                                   |                | clients received their addresses   |
+   |                                                   |                | and prefixes and are trying to     |
+   |                                                   |                | renew them.                        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-rebind-received                              | integer        | Number of REBIND packets received. |
+   |                                                   |                | A non-zero value indicates that    |
+   |                                                   |                | clients did not receive responses  |
+   |                                                   |                | to their RENEW messages (through   |
+   |                                                   |                | the regular lease-renewal          |
+   |                                                   |                | mechanism) and are attempting to   |
+   |                                                   |                | find any server that is able to    |
+   |                                                   |                | take over their leases. It may     |
+   |                                                   |                | mean that some servers' REPLY      |
+   |                                                   |                | messages never reached the         |
+   |                                                   |                | clients.                           |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-release-received                             | integer        | Number of RELEASE packets          |
+   |                                                   |                | received. This statistic is        |
+   |                                                   |                | expected to grow when a device is  |
+   |                                                   |                | being shut down in the network; it |
+   |                                                   |                | indicates that the address or      |
+   |                                                   |                | prefix assigned is reported as no  |
+   |                                                   |                | longer needed. Note that many      |
+   |                                                   |                | devices, especially wireless, do   |
+   |                                                   |                | not send RELEASE packets either    |
+   |                                                   |                | because of design choice or due to |
+   |                                                   |                | the client moving out of range.    |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-decline-received                             | integer        | Number of DECLINE packets          |
+   |                                                   |                | received. This statistic is        |
+   |                                                   |                | expected to remain close to zero.  |
+   |                                                   |                | Its increase means that a client   |
+   |                                                   |                | leased an address, but discovered  |
+   |                                                   |                | that the address is currently used |
+   |                                                   |                | by an unknown device in the        |
+   |                                                   |                | network. If this statistic is      |
+   |                                                   |                | growing, it may indicate a         |
+   |                                                   |                | misconfigured server or devices    |
+   |                                                   |                | that have statically assigned      |
+   |                                                   |                | conflicting addresses.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-infrequest-received                          | integer        | Number of INFORMATION-REQUEST      |
+   |                                                   |                | packets received. This statistic   |
+   |                                                   |                | is expected to grow if there are   |
+   |                                                   |                | devices that are using stateless   |
+   |                                                   |                | DHCPv6. INFORMATION-REQUEST        |
+   |                                                   |                | messages are used by clients that  |
+   |                                                   |                | request stateless configuration,   |
+   |                                                   |                | i.e. options and parameters other  |
+   |                                                   |                | than addresses or prefixes.        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-dhcpv4-query-received                        | integer        | Number of DHCPv4-QUERY packets     |
+   |                                                   |                | received. This statistic is        |
+   |                                                   |                | expected to grow if there are      |
+   |                                                   |                | devices that are using             |
+   |                                                   |                | DHCPv4-over-DHCPv6. DHCPv4-QUERY   |
+   |                                                   |                | messages are used by DHCPv4        |
+   |                                                   |                | clients on an IPv6-only line which |
+   |                                                   |                | encapsulates the requests over     |
+   |                                                   |                | DHCPv6.                            |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-dhcpv4-response-received                     | integer        | Number of DHCPv4-RESPONSE packets  |
+   |                                                   |                | received. This statistic is        |
+   |                                                   |                | expected to remain zero at all     |
+   |                                                   |                | times, as DHCPv4-RESPONSE packets  |
+   |                                                   |                | are sent by the server and the     |
+   |                                                   |                | server is never expected to        |
+   |                                                   |                | receive them. A non-zero value     |
+   |                                                   |                | indicates an error. One likely     |
+   |                                                   |                | cause would be a misbehaving relay |
+   |                                                   |                | agent that incorrectly forwards    |
+   |                                                   |                | DHCPv4-RESPONSE message towards    |
+   |                                                   |                | the server rather than back to the |
+   |                                                   |                | clients.                           |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-unknown-received                             | integer        | Number of packets received of an   |
+   |                                                   |                | unknown type. A non-zero value of  |
+   |                                                   |                | this statistic indicates that the  |
+   |                                                   |                | server received a packet that it   |
+   |                                                   |                | was unable to recognize; either it |
+   |                                                   |                | had an unsupported type or was     |
+   |                                                   |                | possibly malformed.                |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-sent                                         | integer        | Number of DHCPv6 packets sent.     |
+   |                                                   |                | This statistic is expected to grow |
+   |                                                   |                | every time the server transmits a  |
+   |                                                   |                | packet. In general, it should      |
+   |                                                   |                | roughly match pkt6-received, as    |
+   |                                                   |                | most incoming packets cause the    |
+   |                                                   |                | server to respond. There are       |
+   |                                                   |                | exceptions (e.g. server receiving  |
+   |                                                   |                | a REQUEST with server-id matching  |
+   |                                                   |                | another server), so do not worry   |
+   |                                                   |                | if it is less than pkt6-received.  |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-advertise-sent                               | integer        | Number of ADVERTISE packets sent.  |
+   |                                                   |                | This statistic is expected to grow |
+   |                                                   |                | in most cases after a SOLICIT is   |
+   |                                                   |                | processed. There are certain       |
+   |                                                   |                | uncommon, but valid, cases where   |
+   |                                                   |                | incoming SOLICIT packets are       |
+   |                                                   |                | dropped, but in general this       |
+   |                                                   |                | statistic is expected to be close  |
+   |                                                   |                | to pkt6-solicit-received.          |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-reply-sent                                   | integer        | Number of REPLY packets sent. This |
+   |                                                   |                | statistic is expected to grow in   |
+   |                                                   |                | most cases after a SOLICIT (with   |
+   |                                                   |                | rapid-commit), REQUEST, RENEW,     |
+   |                                                   |                | REBIND, RELEASE, DECLINE, or       |
+   |                                                   |                | INFORMATION-REQUEST is processed.  |
+   |                                                   |                | There are certain cases where      |
+   |                                                   |                | there is no response.              |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | pkt6-dhcpv4-response-sent                         | integer        | Number of DHCPv4-RESPONSE packets  |
+   |                                                   |                | sent. This statistic is expected   |
+   |                                                   |                | to grow in most cases after a      |
+   |                                                   |                | DHCPv4-QUERY is processed. There   |
+   |                                                   |                | are certain cases where there is   |
+   |                                                   |                | no response.                       |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].total-nas                              | big integer    | Total number of NA addresses       |
+   |                                                   |                | available for DHCPv6 management    |
+   |                                                   |                | for a given subnet; in other       |
+   |                                                   |                | words, this is the sum of all      |
+   |                                                   |                | addresses in all configured pools. |
+   |                                                   |                | This statistic changes only during |
+   |                                                   |                | configuration changes. It does not |
+   |                                                   |                | take into account any addresses    |
+   |                                                   |                | that may be reserved due to host   |
+   |                                                   |                | reservation. The *id* is the       |
+   |                                                   |                | subnet-id of a given subnet. This  |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet separately, and is reset    |
+   |                                                   |                | during a reconfiguration event.    |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].total-nas                    | big integer    | Total number of NA addresses       |
+   |                                                   |                | available for DHCPv6 management    |
+   |                                                   |                | for a given subnet pool; in other  |
+   |                                                   |                | words, this is the sum of all      |
+   |                                                   |                | addresses in configured subnet     |
+   |                                                   |                | pool. This statistic changes only  |
+   |                                                   |                | during configuration changes. It   |
+   |                                                   |                | does not take into account any     |
+   |                                                   |                | addresses that may be reserved due |
+   |                                                   |                | to host reservation. The *id* is   |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of a      |
+   |                                                   |                | given pool. This statistic is      |
+   |                                                   |                | exposed for each subnet pool       |
+   |                                                   |                | separately, and is reset during a  |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | cumulative-assigned-nas                           | integer        | Cumulative number of NA addresses  |
+   |                                                   |                | that have been assigned since      |
+   |                                                   |                | server startup. It is incremented  |
+   |                                                   |                | each time a NA address is assigned |
+   |                                                   |                | and is not reset when the server   |
+   |                                                   |                | is reconfigured.                   |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].cumulative-assigned-nas                | integer        | Cumulative number of NA addresses  |
+   |                                                   |                | in a given subnet that were        |
+   |                                                   |                | assigned. It increases every time  |
+   |                                                   |                | a new lease is allocated (as a     |
+   |                                                   |                | result of receiving a REQUEST      |
+   |                                                   |                | message) and is never decreased.   |
+   |                                                   |                | The *id* is the subnet-id of a     |
+   |                                                   |                | given subnet. This statistic is    |
+   |                                                   |                | exposed for each subnet            |
+   |                                                   |                | separately, and is reset during a  |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].cumulative-assigned-nas      | integer        | Cumulative number of NA addresses  |
+   |                                                   |                | in a given subnet pool that were   |
+   |                                                   |                | assigned. It increases every time  |
+   |                                                   |                | a new lease is allocated (as a     |
+   |                                                   |                | result of receiving a REQUEST      |
+   |                                                   |                | message) and is never decreased.   |
+   |                                                   |                | The *id* is the subnet-id of a     |
+   |                                                   |                | given subnet. The *pid* is the     |
+   |                                                   |                | pool-id of a given pool. This      |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet pool separately, and is     |
+   |                                                   |                | reset during a reconfiguration     |
+   |                                                   |                | event.                             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].assigned-nas                           | integer        | Number of NA addresses in a given  |
+   |                                                   |                | subnet that are assigned. It       |
+   |                                                   |                | increases every time a new lease   |
+   |                                                   |                | is allocated (as a result of       |
+   |                                                   |                | receiving a REQUEST message) and   |
+   |                                                   |                | is decreased every time a lease is |
+   |                                                   |                | released (a RELEASE message is     |
+   |                                                   |                | received) or expires. The *id* is  |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | This statistic is exposed for each |
+   |                                                   |                | subnet separately, and is reset    |
+   |                                                   |                | during a reconfiguration event.    |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].assigned-nas                 | integer        | Number of NA addresses in a given  |
+   |                                                   |                | subnet pool that are assigned. It  |
+   |                                                   |                | increases every time a new lease   |
+   |                                                   |                | is allocated (as a result of       |
+   |                                                   |                | receiving a REQUEST message) and   |
+   |                                                   |                | is decreased every time a lease is |
+   |                                                   |                | released (a RELEASE message is     |
+   |                                                   |                | received) or expires. The *id* is  |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of the    |
+   |                                                   |                | pool. This statistic is exposed    |
+   |                                                   |                | for each subnet pool separately,   |
+   |                                                   |                | and is reset during a              |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].total-pds                              | big integer    | Total number of PD prefixes        |
+   |                                                   |                | available for DHCPv6 management    |
+   |                                                   |                | for a given subnet; in other       |
+   |                                                   |                | words, this is the sum of all      |
+   |                                                   |                | prefixes in all configured pools.  |
+   |                                                   |                | This statistic changes only during |
+   |                                                   |                | configuration changes. Note it     |
+   |                                                   |                | does not take into account any     |
+   |                                                   |                | prefixes that may be reserved due  |
+   |                                                   |                | to host reservation. The *id* is   |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | This statistic is exposed for each |
+   |                                                   |                | subnet separately, and is reset    |
+   |                                                   |                | during a reconfiguration event.    |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pd-pool[pid].total-pds                 | big integer    | Total number of PD prefixes        |
+   |                                                   |                | available for DHCPv6 management    |
+   |                                                   |                | for a given subnet pool; in other  |
+   |                                                   |                | words, this is the sum of all      |
+   |                                                   |                | prefixes in configured subnet      |
+   |                                                   |                | pd-pool. This statistic changes    |
+   |                                                   |                | only during configuration changes. |
+   |                                                   |                | It does not take into account any  |
+   |                                                   |                | prefixes that may be reserved due  |
+   |                                                   |                | to host reservation. The *id* is   |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of a      |
+   |                                                   |                | given pool. This statistic is      |
+   |                                                   |                | exposed for each subnet pd-pool    |
+   |                                                   |                | separately, and is reset during a  |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | cumulative-assigned-pds                           | integer        | Cumulative number of PD prefixes   |
+   |                                                   |                | that have been assigned since      |
+   |                                                   |                | server startup. It is incremented  |
+   |                                                   |                | each time a PD prefix is assigned  |
+   |                                                   |                | and is not reset when the server   |
+   |                                                   |                | is reconfigured.                   |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].cumulative-assigned-pds                | integer        | Cumulative number of PD prefixes   |
+   |                                                   |                | in a given subnet that were        |
+   |                                                   |                | assigned. It increases every time  |
+   |                                                   |                | a new lease is allocated (as a     |
+   |                                                   |                | result of receiving a REQUEST      |
+   |                                                   |                | message) and is never decreased.   |
+   |                                                   |                | The *id* is the subnet-id of a     |
+   |                                                   |                | given subnet. This statistic is    |
+   |                                                   |                | exposed for each subnet            |
+   |                                                   |                | separately, and is reset during a  |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pd-pool[pid].cumulative-assigned-pds   | integer        | Cumulative number of PD prefixes   |
+   |                                                   |                | in a given subnet pd-pool that     |
+   |                                                   |                | were assigned. It increases every  |
+   |                                                   |                | time a new lease is allocated (as  |
+   |                                                   |                | a result of receiving a REQUEST    |
+   |                                                   |                | message) and is never decreased.   |
+   |                                                   |                | The *id* is the subnet-id of a     |
+   |                                                   |                | given subnet. The *pid* is the     |
+   |                                                   |                | pool-id of a given pd-pool. This   |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet pd-pool separately, and is  |
+   |                                                   |                | reset during a reconfiguration     |
+   |                                                   |                | event.                             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].assigned-pds                           | integer        | Number of PD prefixes in a given   |
+   |                                                   |                | subnet that are assigned. It       |
+   |                                                   |                | increases every time a new lease   |
+   |                                                   |                | is allocated (as a result of       |
+   |                                                   |                | receiving a REQUEST message) and   |
+   |                                                   |                | is decreased every time a lease is |
+   |                                                   |                | released (a RELEASE message is     |
+   |                                                   |                | received) or expires. The *id* is  |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | This statistic is exposed for each |
+   |                                                   |                | subnet separately, and is reset    |
+   |                                                   |                | during a reconfiguration event.    |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pd-pool[pid].assigned-pds              | integer        | Number of PD prefixes in a given   |
+   |                                                   |                | subnet pd-pool that are assigned.  |
+   |                                                   |                | It increases every time a new      |
+   |                                                   |                | lease is allocated (as a result of |
+   |                                                   |                | receiving a REQUEST message) and   |
+   |                                                   |                | is decreased every time a lease is |
+   |                                                   |                | released (a RELEASE message is     |
+   |                                                   |                | received) or expires. The *id* is  |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of the    |
+   |                                                   |                | pd-pool. This statistic is exposed |
+   |                                                   |                | for each subnet pd-pool            |
+   |                                                   |                | separately, and is reset during a  |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | reclaimed-leases                                  | integer        | Number of expired leases that have |
+   |                                                   |                | been reclaimed since server        |
+   |                                                   |                | startup. It is incremented each    |
+   |                                                   |                | time an expired lease is reclaimed |
+   |                                                   |                | (counting both NA and PD           |
+   |                                                   |                | reclamations). This statistic      |
+   |                                                   |                | never decreases. It can be used as |
+   |                                                   |                | a long-term indicator of how many  |
+   |                                                   |                | actual leases have been reclaimed. |
+   |                                                   |                | This is a global statistic that    |
+   |                                                   |                | covers all subnets.                |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].reclaimed-leases                       | integer        | Number of expired leases           |
+   |                                                   |                | associated with a given subnet     |
+   |                                                   |                | that have been reclaimed since     |
+   |                                                   |                | server startup. It is incremented  |
+   |                                                   |                | each time an expired lease is      |
+   |                                                   |                | reclaimed (counting both NA and PD |
+   |                                                   |                | reclamations). The *id* is the     |
+   |                                                   |                | subnet-id of a given subnet. This  |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet separately.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].reclaimed-leases             | integer        | Number of expired NA addresses     |
+   |                                                   |                | associated with a given subnet     |
+   |                                                   |                | pool that have been reclaimed      |
+   |                                                   |                | since server startup. It is        |
+   |                                                   |                | incremented each time an expired   |
+   |                                                   |                | lease is reclaimed. The *id* is    |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of the    |
+   |                                                   |                | pool. This statistic is exposed    |
+   |                                                   |                | for each subnet pool separately,   |
+   |                                                   |                | and is reset during a              |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pd-pool[pid].reclaimed-leases          | integer        | Number of expired PD prefixes      |
+   |                                                   |                | associated with a given subnet     |
+   |                                                   |                | pd-pool that have been reclaimed   |
+   |                                                   |                | since server startup. It is        |
+   |                                                   |                | incremented each time an expired   |
+   |                                                   |                | lease is reclaimed. The *id* is    |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of the    |
+   |                                                   |                | pd-pool. This statistic is exposed |
+   |                                                   |                | for each subnet pd-pool            |
+   |                                                   |                | separately, and is reset during a  |
+   |                                                   |                | reconfiguration event.             |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | declined-addresses                                | integer        | Number of IPv6 addresses that are  |
+   |                                                   |                | currently declined; a count of the |
+   |                                                   |                | number of leases currently         |
+   |                                                   |                | unavailable. Once a lease is       |
+   |                                                   |                | recovered, this statistic will be  |
+   |                                                   |                | decreased; ideally, this statistic |
+   |                                                   |                | should be zero. If this statistic  |
+   |                                                   |                | is non-zero or increasing, a       |
+   |                                                   |                | network administrator should       |
+   |                                                   |                | investigate whether there is a     |
+   |                                                   |                | misbehaving device in the network. |
+   |                                                   |                | This is a global statistic that    |
+   |                                                   |                | covers all subnets.                |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].declined-addresses                     | integer        | Number of IPv6 addresses that are  |
+   |                                                   |                | currently declined in a given      |
+   |                                                   |                | subnet; a count of the number of   |
+   |                                                   |                | leases currently unavailable. Once |
+   |                                                   |                | a lease is recovered, this         |
+   |                                                   |                | statistic will be decreased;       |
+   |                                                   |                | ideally, this statistic should be  |
+   |                                                   |                | zero. If this statistic is         |
+   |                                                   |                | non-zero or increasing, a network  |
+   |                                                   |                | administrator should investigate   |
+   |                                                   |                | whether there is a misbehaving     |
+   |                                                   |                | device in the network. The *id* is |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | This statistic is exposed for each |
+   |                                                   |                | subnet separately.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].declined-addresses           | integer        | Number of IPv6 addresses that are  |
+   |                                                   |                | currently declined in a given      |
+   |                                                   |                | subnet pool; a count of the number |
+   |                                                   |                | of leases currently unavailable.   |
+   |                                                   |                | Once a lease is recovered, this    |
+   |                                                   |                | statistic will be decreased;       |
+   |                                                   |                | ideally, this statistic should be  |
+   |                                                   |                | zero. If this statistic is         |
+   |                                                   |                | non-zero or increasing, a network  |
+   |                                                   |                | administrator should investigate   |
+   |                                                   |                | whether there is a misbehaving     |
+   |                                                   |                | device in the network. The *id* is |
+   |                                                   |                | the subnet-id of a given subnet.   |
+   |                                                   |                | The *pid* is the pool-id of the    |
+   |                                                   |                | pool. This statistic is exposed    |
+   |                                                   |                | for each subnet pool separately.   |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | reclaimed-declined-addresses                      | integer        | Number of IPv6 addresses that were |
+   |                                                   |                | declined, but have now been        |
+   |                                                   |                | recovered. Unlike                  |
+   |                                                   |                | declined-addresses, this statistic |
+   |                                                   |                | never decreases. It can be used as |
+   |                                                   |                | a long-term indicator of how many  |
+   |                                                   |                | actual valid declines were         |
+   |                                                   |                | processed and recovered from. This |
+   |                                                   |                | is a global statistic that covers  |
+   |                                                   |                | all subnets.                       |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].reclaimed-declined-addresses           | integer        | Number of IPv6 addresses that were |
+   |                                                   |                | declined, but have now been        |
+   |                                                   |                | recovered. Unlike                  |
+   |                                                   |                | declined-addresses, this statistic |
+   |                                                   |                | never decreases. It can be used as |
+   |                                                   |                | a long-term indicator of how many  |
+   |                                                   |                | actual valid declines were         |
+   |                                                   |                | processed and recovered from. The  |
+   |                                                   |                | *id* is the subnet-id of a given   |
+   |                                                   |                | subnet. This statistic is exposed  |
+   |                                                   |                | for each subnet separately.        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].pool[pid].reclaimed-declined-addresses | integer        | Number of IPv6 addresses that were |
+   |                                                   |                | declined, but have now been        |
+   |                                                   |                | recovered. Unlike                  |
+   |                                                   |                | declined-addresses, this statistic |
+   |                                                   |                | never decreases. It can be used as |
+   |                                                   |                | a long-term indicator of how many  |
+   |                                                   |                | actual valid declines were         |
+   |                                                   |                | processed and recovered from. The  |
+   |                                                   |                | *id* is the subnet-id of a given   |
+   |                                                   |                | subnet. The *pid* is the pool-id   |
+   |                                                   |                | of the pool. This statistic is     |
+   |                                                   |                | exposed for each subnet pool       |
+   |                                                   |                | separately.                        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-allocation-fail                                | integer        | Number of total address allocation |
+   |                                                   |                | failures for a particular client.  |
+   |                                                   |                | This consists in the number of     |
+   |                                                   |                | lease allocation attempts that the |
+   |                                                   |                | server made before giving up and   |
+   |                                                   |                | was unable to use any of the       |
+   |                                                   |                | address pools. This is a global    |
+   |                                                   |                | statistic that covers all subnets. |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-allocation-fail                     | integer        | Number of total address allocation |
+   |                                                   |                | failures for a particular client.  |
+   |                                                   |                | This consists in the number of     |
+   |                                                   |                | lease allocation attempts that the |
+   |                                                   |                | server made before giving up and   |
+   |                                                   |                | was unable to use any of the       |
+   |                                                   |                | address pools. The *id* is the     |
+   |                                                   |                | subnet-id of a given subnet. This  |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet separately.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-allocation-fail-shared-network                 | integer        | Number of address allocation       |
+   |                                                   |                | failures for a particular client   |
+   |                                                   |                | connected to a shared network.     |
+   |                                                   |                | This is a global statistic that    |
+   |                                                   |                | covers all subnets.                |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-allocation-fail-shared-network      | integer        | Number of address allocation       |
+   |                                                   |                | failures for a particular client   |
+   |                                                   |                | connected to a shared network.     |
+   |                                                   |                | The *id* is the subnet-id of a     |
+   |                                                   |                | given subnet. This statistic is    |
+   |                                                   |                | exposed for each subnet            |
+   |                                                   |                | separately.                        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-allocation-fail-subnet                         | integer        | Number of address allocation       |
+   |                                                   |                | failures for a particular client   |
+   |                                                   |                | connected to a subnet that does    |
+   |                                                   |                | not belong to a shared network.    |
+   |                                                   |                | This is a global statistic that    |
+   |                                                   |                | covers all subnets.                |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-allocation-fail-subnet              | integer        | Number of address allocation       |
+   |                                                   |                | failures for a particular client   |
+   |                                                   |                | connected to a subnet that does    |
+   |                                                   |                | not belong to a shared network.    |
+   |                                                   |                | The *id* is the subnet-id of a     |
+   |                                                   |                | given subnet. This statistic is    |
+   |                                                   |                | exposed for each subnet            |
+   |                                                   |                | separately.                        |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-allocation-fail-no-pools                       | integer        | Number of address allocation       |
+   |                                                   |                | failures because the server could  |
+   |                                                   |                | not use any configured pools for   |
+   |                                                   |                | a particular client. It is also    |
+   |                                                   |                | possible that all of the subnets   |
+   |                                                   |                | from which the server attempted to |
+   |                                                   |                | assign an address lack address     |
+   |                                                   |                | pools. In this case, it should be  |
+   |                                                   |                | considered misconfiguration if an  |
+   |                                                   |                | operator expects that some clients |
+   |                                                   |                | should be assigned dynamic         |
+   |                                                   |                | addresses. This is a global        |
+   |                                                   |                | statistic that covers all subnets. |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-allocation-fail-no-pools            | integer        | Number of address allocation       |
+   |                                                   |                | failures because the server could  |
+   |                                                   |                | not use any configured pools for   |
+   |                                                   |                | a particular client. It is also    |
+   |                                                   |                | possible that all of the subnets   |
+   |                                                   |                | from which the server attempted to |
+   |                                                   |                | assign an address lack address     |
+   |                                                   |                | pools. In this case, it should be  |
+   |                                                   |                | considered misconfiguration if an  |
+   |                                                   |                | operator expects that some clients |
+   |                                                   |                | should be assigned dynamic         |
+   |                                                   |                | addresses. The *id* is the         |
+   |                                                   |                | subnet-id of a given subnet. This  |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet separately.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-allocation-fail-classes                        | integer        | Number of address allocation       |
+   |                                                   |                | failures when the client's packet  |
+   |                                                   |                | belongs to one or more classes.    |
+   |                                                   |                | There may be several reasons why a |
+   |                                                   |                | lease was not assigned. One of     |
+   |                                                   |                | them may be a case when all pools  |
+   |                                                   |                | require packet to belong to        |
+   |                                                   |                | certain classes and the incoming   |
+   |                                                   |                | packet didn't belong to any of     |
+   |                                                   |                | them. Another case where this      |
+   |                                                   |                | information may be useful is to    |
+   |                                                   |                | point out that the pool reserved   |
+   |                                                   |                | to a given class has ran out of    |
+   |                                                   |                | addresses. This is a global        |
+   |                                                   |                | statistic that covers all subnets. |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-allocation-fail-classes             | integer        | Number of address allocation       |
+   |                                                   |                | failures when the client's packet  |
+   |                                                   |                | belongs to one or more classes.    |
+   |                                                   |                | There may be several reasons why a |
+   |                                                   |                | lease was not assigned. One of     |
+   |                                                   |                | them may be a case when all pools  |
+   |                                                   |                | require packet to belong to        |
+   |                                                   |                | certain classes and the incoming   |
+   |                                                   |                | packet didn't belong to any of     |
+   |                                                   |                | them. Another case where this      |
+   |                                                   |                | information may be useful is to    |
+   |                                                   |                | point out that the pool reserved   |
+   |                                                   |                | to a given class has ran out of    |
+   |                                                   |                | addresses. The *id* is the         |
+   |                                                   |                | subnet-id of a given subnet. This  |
+   |                                                   |                | statistic is exposed for each      |
+   |                                                   |                | subnet separately.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-ia-na-lease-reuses                             | integer        | Number of times an IA_NA lease had |
+   |                                                   |                | its CLTT increased in memory and   |
+   |                                                   |                | its expiration time left unchanged |
+   |                                                   |                | in persistent storage as part of   |
+   |                                                   |                | the lease caching feature. This is |
+   |                                                   |                | referred to as a lease reuse.      |
+   |                                                   |                | This statistic is global.          |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-ia-na-lease-reuses                  | integer        | Number of times an IA_NA lease had |
+   |                                                   |                | its CLTT increased in memory and   |
+   |                                                   |                | its expiration time left unchanged |
+   |                                                   |                | in persistent storage as part of   |
+   |                                                   |                | the lease caching feature. This is |
+   |                                                   |                | referred to as a lease reuse.      |
+   |                                                   |                | This statistic is on a per-subnet  |
+   |                                                   |                | basis. The *id* is the subnet-id   |
+   |                                                   |                | of a given subnet.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | v6-ia-pd-lease-reuses                             | integer        | Number of times an IA_PD lease had |
+   |                                                   |                | its CLTT increased in memory and   |
+   |                                                   |                | its expiration time left unchanged |
+   |                                                   |                | in persistent storage as part of   |
+   |                                                   |                | the lease caching feature. This is |
+   |                                                   |                | referred to as a lease reuse.      |
+   |                                                   |                | This statistic is global.          |
+   +---------------------------------------------------+----------------+------------------------------------+
+   | subnet[id].v6-ia-pd-lease-reuses                  | integer        | Number of times an IA_PD lease had |
+   |                                                   |                | its CLTT increased in memory and   |
+   |                                                   |                | its expiration time left unchanged |
+   |                                                   |                | in persistent storage as part of   |
+   |                                                   |                | the lease caching feature. This is |
+   |                                                   |                | referred to as a lease reuse.      |
+   |                                                   |                | This statistic is on a per-subnet  |
+   |                                                   |                | basis. The *id* is the subnet-id   |
+   |                                                   |                | of a given subnet.                 |
+   +---------------------------------------------------+----------------+------------------------------------+
 
 .. note::
 
index 1a2cbe9cf259aabcb4a084b3d52177bce98d41eb..b37b37a68c68c24cbfa86364e602688a5569f234 100644 (file)
@@ -233,211 +233,635 @@ Here is an example response returning all collected statistics:
            "cumulative-assigned-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487569"
+                   "2023-06-13 20:42:46.836166"
                ]
            ],
            "declined-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487555"
+                   "2023-06-13 20:42:46.836156"
                ]
            ],
            "pkt4-ack-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455233"
+                   "2023-06-13 20:42:46.616247"
                ]
            ],
            "pkt4-ack-sent": [
                [
                    0,
-                   "2022-02-11 17:54:17.455256"
+                   "2023-06-13 20:42:46.616290"
                ]
            ],
            "pkt4-decline-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455259"
+                   "2023-06-13 20:42:46.616296"
                ]
            ],
            "pkt4-discover-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455263"
+                   "2023-06-13 20:42:46.616303"
                ]
            ],
            "pkt4-inform-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455265"
+                   "2023-06-13 20:42:46.616308"
                ]
            ],
            "pkt4-nak-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455269"
+                   "2023-06-13 20:42:46.616312"
                ]
            ],
            "pkt4-nak-sent": [
                [
                    0,
-                   "2022-02-11 17:54:17.455271"
+                   "2023-06-13 20:42:46.616314"
                ]
            ],
            "pkt4-offer-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455274"
+                   "2023-06-13 20:42:46.616318"
                ]
            ],
            "pkt4-offer-sent": [
                [
                    0,
-                   "2022-02-11 17:54:17.455277"
+                   "2023-06-13 20:42:46.616323"
                ]
            ],
            "pkt4-parse-failed": [
                [
                    0,
-                   "2022-02-11 17:54:17.455280"
+                   "2023-06-13 20:42:46.616326"
                ]
            ],
            "pkt4-receive-drop": [
                [
                    0,
-                   "2022-02-11 17:54:17.455284"
+                   "2023-06-13 20:42:46.616330"
                ]
            ],
            "pkt4-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455287"
+                   "2023-06-13 20:42:46.616335"
                ]
            ],
            "pkt4-release-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455290"
+                   "2023-06-13 20:42:46.616339"
                ]
            ],
            "pkt4-request-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455293"
+                   "2023-06-13 20:42:46.616343"
                ]
            ],
            "pkt4-sent": [
                [
                    0,
-                   "2022-02-11 17:54:17.455296"
+                   "2023-06-13 20:42:46.616348"
                ]
            ],
            "pkt4-unknown-received": [
                [
                    0,
-                   "2022-02-11 17:54:17.455299"
+                   "2023-06-13 20:42:46.616354"
                ]
            ],
            "reclaimed-declined-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487559"
+                   "2023-06-13 20:42:46.836159"
                ]
            ],
            "reclaimed-leases": [
                [
                    0,
-                   "2022-02-11 17:54:17.487564"
+                   "2023-06-13 20:42:46.836163"
                ]
            ],
            "subnet[1].assigned-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487579"
+                   "2023-06-13 20:42:46.836173"
                ]
            ],
            "subnet[1].cumulative-assigned-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487528"
+                   "2023-06-13 20:42:46.836098"
                ]
            ],
            "subnet[1].declined-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487585"
+                   "2023-06-13 20:42:46.836178"
+               ]
+           ],
+           "subnet[1].pool[0].assigned-addresses": [
+               [
+                   0,
+                   "2023-06-13 20:42:46.836205"
+               ]
+           ],
+           "subnet[1].pool[0].cumulative-assigned-addresses": [
+               [
+                   0,
+                   "2023-06-13 20:42:46.836137"
+               ]
+           ],
+           "subnet[1].pool[0].declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 20:42:46.836213"
+               ]
+           ],
+           "subnet[1].pool[0].reclaimed-declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 20:42:46.836225"
+               ]
+           ],
+           "subnet[1].pool[0].reclaimed-leases": [
+               [
+                   0,
+                   "2023-06-13 20:42:46.836236"
+               ]
+           ],
+           "subnet[1].pool[0].total-addresses": [
+               [
+                   11010049,
+                   "2023-06-13 20:42:46.836128"
                ]
            ],
            "subnet[1].reclaimed-declined-addresses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487595"
+                   "2023-06-13 20:42:46.836186"
                ]
            ],
            "subnet[1].reclaimed-leases": [
                [
                    0,
-                   "2022-02-11 17:54:17.487604"
+                   "2023-06-13 20:42:46.836194"
                ]
            ],
            "subnet[1].total-addresses": [
                [
-                   200,
-                   "2022-02-11 17:54:17.487512"
+                   11010049,
+                   "2023-06-13 20:42:46.836083"
                ]
            ],
            "subnet[1].v4-lease-reuses": [
                [
                    0,
-                   "2022-02-11 17:54:17.487516"
+                   "2023-06-13 20:42:46.836105"
                ]
            ],
            "subnet[1].v4-reservation-conflicts": [
                [
                    0,
-                   "2022-02-11 17:54:17.487520"
+                   "2023-06-13 20:42:46.836111"
                ]
            ],
            "v4-allocation-fail": [
                [
                    0,
-                   "2022-02-11 17:54:17.455302"
+                   "2023-06-13 20:42:46.616358"
                ]
            ],
            "v4-allocation-fail-classes": [
                [
                    0,
-                   "2022-02-11 17:54:17.455306"
+                   "2023-06-13 20:42:46.616363"
                ]
            ],
            "v4-allocation-fail-no-pools": [
                [
                    0,
-                   "2022-02-11 17:54:17.455310"
+                   "2023-06-13 20:42:46.616368"
                ]
            ],
            "v4-allocation-fail-shared-network": [
                [
                    0,
-                   "2022-02-11 17:54:17.455319"
+                   "2023-06-13 20:42:46.616372"
                ]
            ],
            "v4-allocation-fail-subnet": [
                [
                    0,
-                   "2022-02-11 17:54:17.455323"
+                   "2023-06-13 20:42:46.616376"
                ]
            ],
            "v4-lease-reuses": [
                [
                    0,
-                   "2022-02-11 17:54:17.455328"
+                   "2023-06-13 20:42:46.616410"
                ]
            ],
            "v4-reservation-conflicts": [
                [
                    0,
-                   "2022-02-11 17:54:17.455332"
+                   "2023-06-13 20:42:46.616412"
+               ]
+           ]
+       },
+       "result": 0
+   }
+
+or
+
+::
+
+   {
+       "command": "statistic-get-all",
+       "arguments": {
+           "cumulative-assigned-nas": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196757"
+               ]
+           ],
+           "cumulative-assigned-pds": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196758"
+               ]
+           ],
+           "declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196754"
+               ]
+           ],
+           "pkt6-advertise-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177731"
+               ]
+           ],
+           "pkt6-advertise-sent": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177739"
+               ]
+           ],
+           "pkt6-decline-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177739"
+               ]
+           ],
+           "pkt6-dhcpv4-query-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177740"
+               ]
+           ],
+           "pkt6-dhcpv4-response-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177740"
+               ]
+           ],
+           "pkt6-dhcpv4-response-sent": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177741"
+               ]
+           ],
+           "pkt6-infrequest-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177742"
+               ]
+           ],
+           "pkt6-parse-failed": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177742"
+               ]
+           ],
+           "pkt6-rebind-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177743"
+               ]
+           ],
+           "pkt6-receive-drop": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177743"
+               ]
+           ],
+           "pkt6-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177744"
+               ]
+           ],
+           "pkt6-release-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177744"
+               ]
+           ],
+           "pkt6-renew-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177745"
+               ]
+           ],
+           "pkt6-reply-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177745"
+               ]
+           ],
+           "pkt6-reply-sent": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177746"
+               ]
+           ],
+           "pkt6-request-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177747"
+               ]
+           ],
+           "pkt6-sent": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177747"
+               ]
+           ],
+           "pkt6-solicit-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177748"
+               ]
+           ],
+           "pkt6-unknown-received": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177748"
+               ]
+           ],
+           "reclaimed-declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196755"
+               ]
+           ],
+           "reclaimed-leases": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196756"
+               ]
+           ],
+           "subnet[1].assigned-nas": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196760"
+               ]
+           ],
+           "subnet[1].assigned-pds": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196761"
+               ]
+           ],
+           "subnet[1].cumulative-assigned-nas": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196727"
+               ]
+           ],
+           "subnet[1].cumulative-assigned-pds": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196729"
+               ]
+           ],
+           "subnet[1].declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196763"
+               ]
+           ],
+           "subnet[1].pd-pool[0].assigned-pds": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196785"
+               ]
+           ],
+           "subnet[1].pd-pool[0].cumulative-assigned-pds": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196744"
+               ]
+           ],
+           "subnet[1].pd-pool[0].reclaimed-leases": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196789"
+               ]
+           ],
+           "subnet[1].pd-pool[0].total-pds": [
+               [
+                   256,
+                   "2023-06-13 21:28:57.196741"
+               ]
+           ],
+           "subnet[1].pool[0].assigned-nas": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196773"
+               ]
+           ],
+           "subnet[1].pool[0].cumulative-assigned-nas": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196739"
+               ]
+           ],
+           "subnet[1].pool[0].declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196775"
+               ]
+           ],
+           "subnet[1].pool[0].reclaimed-declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196779"
+               ]
+           ],
+           "subnet[1].pool[0].reclaimed-leases": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196783"
+               ]
+           ],
+           "subnet[1].pool[0].total-nas": [
+               [
+                   281474976710656,
+                   "2023-06-13 21:28:57.196736"
+               ]
+           ],
+           "subnet[1].reclaimed-declined-addresses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196766"
+               ]
+           ],
+           "subnet[1].reclaimed-leases": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196770"
+               ]
+           ],
+           "subnet[1].total-nas": [
+               [
+                   281474976710656,
+                   "2023-06-13 21:28:57.196720"
+               ]
+           ],
+           "subnet[1].total-pds": [
+               [
+                   256,
+                   "2023-06-13 21:28:57.196724"
+               ]
+           ],
+           "subnet[1].v6-ia-na-lease-reuses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196731"
+               ]
+           ],
+           "subnet[1].v6-ia-pd-lease-reuses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.196733"
+               ]
+           ],
+           "v6-allocation-fail": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177749"
+               ]
+           ],
+           "v6-allocation-fail-classes": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177755"
+               ]
+           ],
+           "v6-allocation-fail-no-pools": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177756"
+               ]
+           ],
+           "v6-allocation-fail-shared-network": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177756"
+               ]
+           ],
+           "v6-allocation-fail-subnet": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177757"
+               ]
+           ],
+           "v6-ia-na-lease-reuses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177757"
+               ]
+           ],
+           "v6-ia-pd-lease-reuses": [
+               [
+                   0,
+                   "2023-06-13 21:28:57.177758"
+               ]
+           ]
+       },
+       "result": 0
+   }
+
+or
+
+::
+
+   {
+       "command": "statistic-get-all",
+       "arguments": {
+           "ncr-error": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627751"
+               ]
+           ],
+           "ncr-invalid": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627749"
+               ]
+           ],
+           "ncr-received": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627737"
+               ]
+           ],
+           "update-error": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627759"
+               ]
+           ],
+           "update-sent": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627752"
+               ]
+           ],
+           "update-signed": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627753"
+               ]
+           ],
+           "update-success": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627755"
+               ]
+           ],
+           "update-timeout": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627757"
+               ]
+           ],
+           "update-unsigned": [
+               [
+                   0,
+                   "2023-06-13 21:42:54.627754"
                ]
            ]
        },
index 0ad951ada094d88a546cc3c6bf1edd6cfe5bf4c5..12f31cfc54c360be74b8ec38b76a2d76bcf6c0de 100644 (file)
@@ -569,7 +569,6 @@ public:
 
         pkt->addOption(generateClientId());
 
-
         // Create Client FQDN Option with the specified flags and
         // domain-name.
         pkt->addOption(createHostname(hostname));
@@ -736,7 +735,6 @@ public:
         EXPECT_EQ(flag_e, fqdn->getFlag(Option4ClientFqdn::FLAG_E));
     }
 
-
     /// @brief  Invokes Dhcpv4Srv::processHostname on the given packet
     ///
     /// Processes the Hostname option in the client's message and returns
@@ -842,7 +840,6 @@ public:
         ASSERT_NO_THROW(d2_mgr_.runReadyIO());
     }
 
-
     /// @brief Tests processing a request with the given client flags
     ///
     /// This method creates a request with its FQDN flags set to the given
@@ -903,10 +900,14 @@ public:
     /// @return Number of assigned addresses for a subnet.
     void checkSubnetStat(const SubnetID& subnet_id, const std::string& name, int64_t exp_value) const {
         // Retrieve statistics name, e.g. subnet[1234].assigned-addresses.
-        const std::string stats_name = StatsMgr::generateName("subnet", subnet_id, name);
+        std::string stats_name = StatsMgr::generateName("subnet", subnet_id, name);
         ObservationPtr obs =  StatsMgr::instance().getObservation(stats_name);
         ASSERT_TRUE(obs) << "cannot find: " << stats_name;
         EXPECT_EQ(exp_value, obs->getInteger().first);
+        stats_name = StatsMgr::generateName("subnet", subnet_id, StatsMgr::generateName("pool", 0, name));
+        obs =  StatsMgr::instance().getObservation(stats_name);
+        ASSERT_TRUE(obs) << "cannot find: " << stats_name;
+        EXPECT_EQ(exp_value, obs->getInteger().first);
     }
 };
 
@@ -1018,7 +1019,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateHostname) {
 
     ASSERT_TRUE(hostname);
     EXPECT_EQ("myhost.example.com.", hostname->getValue());
-
 }
 
 // Test that the server skips processing of a mal-formed Hostname options.
@@ -1089,7 +1089,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateForwardPartialNameFqdn) {
     testProcessFqdn(query,
                     Option4ClientFqdn::FLAG_E | Option4ClientFqdn::FLAG_S,
                     "myhost.example.com.");
-
 }
 
 // Test that server generates the fully qualified domain name for the client
@@ -1102,7 +1101,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateUnqualifiedHostname) {
 
     ASSERT_TRUE(hostname);
     EXPECT_EQ("myhost.example.com", hostname->getValue());
-
 }
 
 // Test that server sets empty domain-name in the FQDN option when client
@@ -1120,7 +1118,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateForwardNoNameFqdn) {
     testProcessFqdn(query,
                     Option4ClientFqdn::FLAG_E | Option4ClientFqdn::FLAG_S,
                     "", Option4ClientFqdn::PARTIAL);
-
 }
 
 // Test that exactly one NameChangeRequest is generated when the new lease
@@ -2092,7 +2089,6 @@ TEST_F(NameDhcpv4SrvTest, emptyFqdn) {
     lease = LeaseMgrFactory::instance().getLease4(IOAddress(expected_address));
     ASSERT_TRUE(lease);
     EXPECT_EQ(expected_fqdn, lease->hostname_);
-
 }
 
 // Verifies that the replace-client-name behavior is correct for each of
@@ -2833,7 +2829,6 @@ TEST_F(NameDhcpv4SrvTest, withOfferLifetime) {
                             "B020A13F44859F30A108793564A97",
                             time(NULL), subnet->getValid(), true);
 
-
     // And that this FQDN has been stored in the lease database.
     lease = LeaseMgrFactory::instance().getLease4(client.config_.lease_.addr_);
     ASSERT_TRUE(lease);
index 95f683b384f4b8ee7a06c85cdb83f4ecda80b9fc..9deabdd6a090e2f0efeceefab8d141255d338af0 100644 (file)
@@ -758,7 +758,6 @@ TEST_F(FqdnDhcpv6SrvTest, createNameChangeRequestsNoAnswer) {
     ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true;
     EXPECT_THROW(srv_->createNameChangeRequests(answer, ctx),
                  isc::Unexpected);
-
 }
 
 // Test that exception is thrown if supplied answer from the server
@@ -774,7 +773,6 @@ TEST_F(FqdnDhcpv6SrvTest, createNameChangeRequestsNoDUID) {
     ctx.subnet_ = subnet_;
     ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true;
     EXPECT_THROW(srv_->createNameChangeRequests(answer, ctx), isc::Unexpected);
-
 }
 
 // Test no NameChangeRequests if Client FQDN is not added to the server's
@@ -962,7 +960,6 @@ TEST_F(FqdnDhcpv6SrvTest, createRemovalNameChangeRequestRev) {
                             "000201415AA33D1187D148275136FA30300478"
                             "FAAAA3EBD29826B5C907B2C9268A6F52",
                             lease_->cltt_, lease_->valid_lft_);
-
 }
 
 // Test that NameChangeRequest to remove DNS records is not generated when
@@ -974,7 +971,6 @@ TEST_F(FqdnDhcpv6SrvTest, createRemovalNameChangeRequestNoUpdate) {
     ASSERT_NO_THROW(queueNCR(CHG_REMOVE, lease_));
 
     ASSERT_EQ(0, d2_mgr_.getQueueSize());
-
 }
 
 // Test that NameChangeRequest is not generated if the hostname hasn't been
@@ -988,7 +984,6 @@ TEST_F(FqdnDhcpv6SrvTest, createRemovalNameChangeRequestNoHostname) {
     ASSERT_NO_THROW(queueNCR(CHG_REMOVE, lease_));
 
     ASSERT_EQ(0, d2_mgr_.getQueueSize());
-
 }
 
 // Test that NameChangeRequest is not generated if the invalid hostname has
@@ -1002,7 +997,6 @@ TEST_F(FqdnDhcpv6SrvTest, createRemovalNameChangeRequestWrongHostname) {
     ASSERT_NO_THROW(queueNCR(CHG_REMOVE, lease_));
 
     ASSERT_EQ(0, d2_mgr_.getQueueSize());
-
 }
 
 // Test that Advertise message generated in a response to the Solicit will
@@ -1059,7 +1053,6 @@ TEST_F(FqdnDhcpv6SrvTest, processTwoRequestsDiffFqdn) {
                             "000201D422AA463306223D269B6CB7AFE7AAD265FC"
                             "EA97F93623019B2E0D14E5323D5A",
                             0, lease_->valid_lft_);
-
 }
 
 // Test that client may send two requests, each carrying FQDN option with
@@ -1119,7 +1112,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestSolicit) {
     testProcessMessage(DHCPV6_SOLICIT, "otherhost.example.com",
                        "otherhost.example.com.");
     ASSERT_EQ(0, d2_mgr_.getQueueSize());
-
 }
 
 // Test that client may send Request followed by the Renew, both holding
@@ -1167,7 +1159,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestRenewDiffFqdn) {
                             "000201D422AA463306223D269B6CB7AFE7AAD265FC"
                             "EA97F93623019B2E0D14E5323D5A",
                             0, lease_->valid_lft_);
-
 }
 
 // Test that client may send Request followed by the Renew, both holding
@@ -1367,7 +1358,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestEmptyFqdn) {
                             "000201C905E54BE12DE6AF92ADE72752B9F362"
                             "13B5A8BC9D217548CD739B4CF31AFB1B",
                             0, 4000);
-
 }
 
 // Checks that when the server reuses expired lease, the NameChangeRequest
@@ -1444,7 +1434,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestReuseExpiredLease) {
                             "2001:db8:1:1::dead:beef",
                             "000201415AA33D1187D148275136FA30300478"
                             "FAAAA3EBD29826B5C907B2C9268A6F52", 0, 4);
-
 }
 
 TEST_F(FqdnDhcpv6SrvTest, processClientDelegation) {
@@ -1561,7 +1550,6 @@ TEST_F(FqdnDhcpv6SrvTest, hostnameReservationNoSuffix) {
                             "000201E2EB74FB53A5778E74AFD43870ECA5"
                             "4150B1F52B0CFED434802DA1259D6D3CA4",
                             0, 4000, "alice.example.com.");
-
 }
 
 TEST_F(FqdnDhcpv6SrvTest, hostnameReservationDdnsDisabled) {
@@ -1664,7 +1652,6 @@ TEST_F(FqdnDhcpv6SrvTest, sanitizeFqdn) {
              std::string("m\000yhost.exa\000mple.com", 20),
              Option6ClientFqdn::FULL, Option6ClientFqdn::FLAG_S,
              "mxyhost.exaxmple.com.", false);
-
 }
 
 // Verifies that scoped ddns-parameter handling.
@@ -1751,7 +1738,6 @@ TEST_F(FqdnDhcpv6SrvTest, ddnsScopeTest) {
     ASSERT_EQ(1, CfgMgr::instance().getD2ClientMgr().getQueueSize());
     verifyNameChangeRequest(isc::dhcp_ddns::CHG_ADD, true, true, "2001:db8:2::1",
                             "", 0, 4000);
-
 }
 
 // Verifies that the DDNS parameters used for a lease in subnet in
index 68b4e0b29f142fc7447244fbc16df8ca354f6717..f27edd6f4205efc6e6d9cfd1b6f69b578fd49664 100644 (file)
@@ -174,7 +174,7 @@ A DHCPv4 response might look like this:
            "rows\": [
                [ 30, 256, 300, 100, 2 ],
                [ 40,  16, 5, 0, 0 ],
-               [ 50, 256, 100, 35, 0 ],
+               [ 50, 256, 100, 35, 0 ]
            ],
            timestamp\": \"2018-05-04 15:03:37.000000\" }
         }
@@ -186,7 +186,7 @@ and DHCPv6 response might look like this:
         {
         "result-set": {
            "columns": [
-                "subnet-id", "total-nas", "cumulative-assigned-nas"
+                "subnet-id", "total-nas", "cumulative-assigned-nas",
                 "assigned-nas", "declined-nas", "total-pds",
                 "cumulative-assigned-pds", "assigned-pds"
            ],
index d42f4c55e678743d9ac7c6d31847d130bf90283a..17305dd0f57805d124b7620dc9009290fca6ad67 100644 (file)
     "description": "See <xref linkend=\"command-config-set\"/>",
     "name": "config-set",
     "resp-syntax": [
-        "{\"result\": 0, \"text\": \"Configuration successful.\" }",
+        "{ \"result\": 0, \"text\": \"Configuration successful.\" }",
         "",
         "or",
         "",
-        "{\"result\": 1, \"text\": \"unsupported parameter: BOGUS (<string>:16:26)\" }"
+        "{ \"result\": 1, \"text\": \"unsupported parameter: BOGUS (<string>:16:26)\" }"
     ],
     "support": [
         "kea-dhcp4",
index fef0e1ad93cefc79057800e078a14a5ea8ff9d11..39aa367a099aa8fc541dcbf03b01bbd125ac5913 100644 (file)
@@ -5,7 +5,7 @@
         "This command instructs the server to check whether the new configuration supplied in the command's arguments can be loaded."
     ],
     "cmd-comment": [
-        "In the example below, <server> is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"."
+        "In the example below, '<server>' is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"."
     ],
     "cmd-syntax": [
         "{",
index 42e96cb8b81a41794d9c7fdf51939b54d6a1ecd7..75a73fb5998819cf275798a43bd6874d4d76301c 100644 (file)
         "    \"text\": \"stat-lease4-get: 2 rows found\",",
         "    \"arguments\": {",
         "      \"result-set\": {",
-        "        \"columns\": [ \"subnet-id\",",
-        "                       \"total-addresses\",",
-        "                       \"cumulative-assigned-addresses\",",
-        "                       \"assigned-addresses\",",
-        "                       \"declined-addresses\" ],",
+        "        \"columns\": [ \"subnet-id\", \"total-addresses\", \"cumulative-assigned-addresses\", \"assigned-addresses\", \"declined-addresses\" ],",
         "        \"rows\": [",
         "          [ 10, 256, 200, 111, 0 ],",
         "          [ 20, 4098, 5000, 2034, 4 ]",
index cab6424a364b923f2f3225882bdcfd8146fe07bb..76e026a530235347da56d4df336618982aeac483 100644 (file)
@@ -21,7 +21,7 @@
         "    \"text\": \"stat-lease6-get: 2 rows found\",",
         "    \"arguments\": {",
         "      \"result-set\": {",
-        "        \"columns\": [ \"subnet-id\", \"total-nas\", \"cumulative-assigned-nas\", \"assigned-nas\", \"declined-nas\", \"total-pds\",  \"cumulative-assigned-pds\", \"assigned-pds\" ],",
+        "        \"columns\": [ \"subnet-id\", \"total-nas\", \"cumulative-assigned-nas\", \"assigned-nas\", \"declined-nas\", \"total-pds\", \"cumulative-assigned-pds\", \"assigned-pds\" ],",
         "        \"rows\": [",
         "          [ 10, 4096, 3000, 2400, 3, 0, 0],",
         "          [ 20, 0, 0, 0, 1048, 500, 233 ],",
index 7b5bbdcae80bb007025c7a69ec16094d1e5e40c2..2def68af694388b5395d2a2c29b7ed26e8288b8f 100644 (file)
     ],
     "resp-syntax": [
         "{",
-        "   \"result\": 0,",
-        "   \"arguments\": {",
-        "       \"cumulative-assigned-addresses\": [ [ 0, \"2022-02-11 17:54:17.487569\" ] ],",
-        "       \"declined-addresses\": [ [ 0, \"2022-02-11 17:54:17.487555\" ] ],",
-        "       \"pkt4-ack-received\": [ [ 0, \"2022-02-11 17:54:17.455233\" ] ],",
-        "       \"pkt4-ack-sent\": [ [ 0, \"2022-02-11 17:54:17.455256\" ] ],",
-        "       \"pkt4-decline-received\": [ [ 0, \"2022-02-11 17:54:17.455259\" ] ],",
-        "       \"pkt4-discover-received\": [ [ 0, \"2022-02-11 17:54:17.455263\" ] ],",
-        "       \"pkt4-inform-received\": [ [ 0, \"2022-02-11 17:54:17.455265\" ] ],",
-        "       \"pkt4-nak-received\": [ [ 0, \"2022-02-11 17:54:17.455269\" ] ],",
-        "       \"pkt4-nak-sent\": [ [ 0, \"2022-02-11 17:54:17.455271\" ] ],",
-        "       \"pkt4-offer-received\": [ [ 0, \"2022-02-11 17:54:17.455274\" ] ],",
-        "       \"pkt4-offer-sent\": [ [ 0, \"2022-02-11 17:54:17.455277\" ] ],",
-        "       \"pkt4-parse-failed\": [ [ 0, \"2022-02-11 17:54:17.455280\" ] ],",
-        "       \"pkt4-receive-drop\": [ [ 0, \"2022-02-11 17:54:17.455284\" ] ],",
-        "       \"pkt4-received\": [ [ 0, \"2022-02-11 17:54:17.455287\" ] ],",
-        "       \"pkt4-release-received\": [ [ 0, \"2022-02-11 17:54:17.455290\" ] ],",
-        "       \"pkt4-request-received\": [ [ 0, \"2022-02-11 17:54:17.455293\" ] ],",
-        "       \"pkt4-sent\": [ [ 0, \"2022-02-11 17:54:17.455296\" ] ],",
-        "       \"pkt4-unknown-received\": [ [ 0, \"2022-02-11 17:54:17.455299\" ] ],",
-        "       \"reclaimed-declined-addresses\": [ [ 0, \"2022-02-11 17:54:17.487559\" ] ],",
-        "       \"reclaimed-leases\": [ [ 0, \"2022-02-11 17:54:17.487564\" ] ],",
-        "       \"subnet[1].assigned-addresses\": [ [ 0, \"2022-02-11 17:54:17.487579\" ] ],",
-        "       \"subnet[1].cumulative-assigned-addresses\": [ [ 0, \"2022-02-11 17:54:17.487528\" ] ],",
-        "       \"subnet[1].declined-addresses\": [ [ 0, \"2022-02-11 17:54:17.487585\" ] ],",
-        "       \"subnet[1].reclaimed-declined-addresses\": [ [ 0, \"2022-02-11 17:54:17.487595\" ] ],",
-        "       \"subnet[1].reclaimed-leases\": [ [ 0, \"2022-02-11 17:54:17.487604\" ] ],",
-        "       \"subnet[1].total-addresses\": [ [ 200, \"2022-02-11 17:54:17.487512\" ] ],",
-        "       \"subnet[1].v4-reservation-conflicts\": [ [ 0, \"2022-02-11 17:54:17.487520\" ] ],",
-        "       \"v4-allocation-fail\": [ [ 0, \"2022-02-11 17:54:17.455302\" ] ],",
-        "       \"v4-allocation-fail-classes\": [ [ 0, \"2022-02-11 17:54:17.455306\" ] ],",
-        "       \"v4-allocation-fail-no-pools\": [ [ 0, \"2022-02-11 17:54:17.455310\" ] ],",
-        "       \"v4-allocation-fail-shared-network\": [ [ 0, \"2022-02-11 17:54:17.455319\" ] ],",
-        "       \"v4-allocation-fail-subnet\": [ [ 0, \"2022-02-11 17:54:17.455323\" ] ],",
-        "       \"v4-reservation-conflicts\": [ [ 0, \"2022-02-11 17:54:17.455330\" ] ]",
-        "   }",
+        "    \"result\": 0,",
+        "    \"arguments\": {",
+        "        \"cumulative-assigned-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836166\"",
+        "            ]",
+        "        ],",
+        "        \"declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836156\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-ack-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616247\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-ack-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616290\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-decline-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616296\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-discover-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616303\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-inform-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616308\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-nak-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616312\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-nak-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616314\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-offer-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616318\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-offer-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616323\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-parse-failed\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616326\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-receive-drop\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616330\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616335\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-release-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616339\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-request-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616343\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616348\"",
+        "            ]",
+        "        ],",
+        "        \"pkt4-unknown-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616354\"",
+        "            ]",
+        "        ],",
+        "        \"reclaimed-declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836159\"",
+        "            ]",
+        "        ],",
+        "        \"reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836163\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].assigned-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836173\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].cumulative-assigned-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836098\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836178\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].assigned-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836205\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].cumulative-assigned-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836137\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836213\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].reclaimed-declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836225\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836236\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].total-addresses\": [",
+        "            [",
+        "                11010049,",
+        "                \"2023-06-13 20:42:46.836128\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].reclaimed-declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836186\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836194\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].total-addresses\": [",
+        "            [",
+        "                11010049,",
+        "                \"2023-06-13 20:42:46.836083\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].v4-lease-reuses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836105\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].v4-reservation-conflicts\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.836111\"",
+        "            ]",
+        "        ],",
+        "        \"v4-allocation-fail\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616358\"",
+        "            ]",
+        "        ],",
+        "        \"v4-allocation-fail-classes\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616363\"",
+        "            ]",
+        "        ],",
+        "        \"v4-allocation-fail-no-pools\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616368\"",
+        "            ]",
+        "        ],",
+        "        \"v4-allocation-fail-shared-network\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616372\"",
+        "            ]",
+        "        ],",
+        "        \"v4-allocation-fail-subnet\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616376\"",
+        "            ]",
+        "        ],",
+        "        \"v4-lease-reuses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616410\"",
+        "            ]",
+        "        ],",
+        "        \"v4-reservation-conflicts\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 20:42:46.616412\"",
+        "            ]",
+        "        ]",
+        "    }",
+        "}",
+        "",
+        "or",
+        "",
+        "{",
+        "    \"result\": 0,",
+        "    \"arguments\": {",
+        "        \"cumulative-assigned-nas\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196757\"",
+        "            ]",
+        "        ],",
+        "        \"cumulative-assigned-pds\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196758\"",
+        "            ]",
+        "        ],",
+        "        \"declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196754\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-advertise-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177731\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-advertise-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177739\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-decline-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177739\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-dhcpv4-query-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177740\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-dhcpv4-response-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177740\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-dhcpv4-response-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177741\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-infrequest-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177742\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-parse-failed\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177742\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-rebind-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177743\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-receive-drop\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177743\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177744\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-release-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177744\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-renew-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177745\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-reply-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177745\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-reply-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177746\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-request-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177747\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177747\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-solicit-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177748\"",
+        "            ]",
+        "        ],",
+        "        \"pkt6-unknown-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177748\"",
+        "            ]",
+        "        ],",
+        "        \"reclaimed-declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196755\"",
+        "            ]",
+        "        ],",
+        "        \"reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196756\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].assigned-nas\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196760\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].assigned-pds\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196761\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].cumulative-assigned-nas\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196727\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].cumulative-assigned-pds\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196729\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196763\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pd-pool[0].assigned-pds\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196785\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pd-pool[0].cumulative-assigned-pds\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196744\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pd-pool[0].reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196789\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pd-pool[0].total-pds\": [",
+        "            [",
+        "                256,",
+        "                \"2023-06-13 21:28:57.196741\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].assigned-nas\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196773\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].cumulative-assigned-nas\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196739\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196775\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].reclaimed-declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196779\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196783\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].pool[0].total-nas\": [",
+        "            [",
+        "                281474976710656,",
+        "                \"2023-06-13 21:28:57.196736\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].reclaimed-declined-addresses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196766\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].reclaimed-leases\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196770\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].total-nas\": [",
+        "            [",
+        "                281474976710656,",
+        "                \"2023-06-13 21:28:57.196720\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].total-pds\": [",
+        "            [",
+        "                256,",
+        "                \"2023-06-13 21:28:57.196724\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].v6-ia-na-lease-reuses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196731\"",
+        "            ]",
+        "        ],",
+        "        \"subnet[1].v6-ia-pd-lease-reuses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.196733\"",
+        "            ]",
+        "        ],",
+        "        \"v6-allocation-fail\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177749\"",
+        "            ]",
+        "        ],",
+        "        \"v6-allocation-fail-classes\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177755\"",
+        "            ]",
+        "        ],",
+        "        \"v6-allocation-fail-no-pools\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177756\"",
+        "            ]",
+        "        ],",
+        "        \"v6-allocation-fail-shared-network\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177756\"",
+        "            ]",
+        "        ],",
+        "        \"v6-allocation-fail-subnet\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177757\"",
+        "            ]",
+        "        ],",
+        "        \"v6-ia-na-lease-reuses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177757\"",
+        "            ]",
+        "        ],",
+        "        \"v6-ia-pd-lease-reuses\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:28:57.177758\"",
+        "            ]",
+        "        ]",
+        "    }",
+        "}",
+        "",
+        "or",
+        "",
+        "{",
+        "    \"result\": 0,",
+        "    \"arguments\": {",
+        "        \"ncr-error\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627751\"",
+        "            ]",
+        "        ],",
+        "        \"ncr-invalid\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627749\"",
+        "            ]",
+        "        ],",
+        "        \"ncr-received\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627737\"",
+        "            ]",
+        "        ],",
+        "        \"update-error\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627759\"",
+        "            ]",
+        "        ],",
+        "        \"update-sent\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627752\"",
+        "            ]",
+        "        ],",
+        "        \"update-signed\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627753\"",
+        "            ]",
+        "        ],",
+        "        \"update-success\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627755\"",
+        "            ]",
+        "        ],",
+        "        \"update-timeout\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627757\"",
+        "            ]",
+        "        ],",
+        "        \"update-unsigned\": [",
+        "            [",
+        "                0,",
+        "                \"2023-06-13 21:42:54.627754\"",
+        "            ]",
+        "        ]",
+        "    }",
         "}"
     ],