From 3cd3de76a95e15d7bf42a19cabcf5e9a8ed11ff3 Mon Sep 17 00:00:00 2001 From: Razvan Becheriu Date: Tue, 13 Jun 2023 20:36:20 +0300 Subject: [PATCH] [#2883] added documentation for pool stats --- doc/sphinx/arm/dhcp4-srv.rst | 983 +++++++++++--------- doc/sphinx/arm/dhcp6-srv.rst | 1183 +++++++++++++----------- doc/sphinx/arm/stats.rst | 496 +++++++++- src/bin/dhcp4/tests/fqdn_unittest.cc | 15 +- src/bin/dhcp6/tests/fqdn_unittest.cc | 14 - src/hooks/dhcp/stat_cmds/stat_cmds.dox | 4 +- src/share/api/config-set.json | 4 +- src/share/api/config-test.json | 2 +- src/share/api/stat-lease4-get.json | 6 +- src/share/api/stat-lease6-get.json | 2 +- src/share/api/statistic-get-all.json | 667 ++++++++++++- 11 files changed, 2304 insertions(+), 1072 deletions(-) diff --git a/doc/sphinx/arm/dhcp4-srv.rst b/doc/sphinx/arm/dhcp4-srv.rst index 8595b71808..928d69fb21 100644 --- a/doc/sphinx/arm/dhcp4-srv.rst +++ b/doc/sphinx/arm/dhcp4-srv.rst @@ -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:: diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst index ea39f8a9df..81acaf3673 100644 --- a/doc/sphinx/arm/dhcp6-srv.rst +++ b/doc/sphinx/arm/dhcp6-srv.rst @@ -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:: diff --git a/doc/sphinx/arm/stats.rst b/doc/sphinx/arm/stats.rst index 1a2cbe9cf2..b37b37a68c 100644 --- a/doc/sphinx/arm/stats.rst +++ b/doc/sphinx/arm/stats.rst @@ -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" ] ] }, diff --git a/src/bin/dhcp4/tests/fqdn_unittest.cc b/src/bin/dhcp4/tests/fqdn_unittest.cc index 0ad951ada0..12f31cfc54 100644 --- a/src/bin/dhcp4/tests/fqdn_unittest.cc +++ b/src/bin/dhcp4/tests/fqdn_unittest.cc @@ -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); diff --git a/src/bin/dhcp6/tests/fqdn_unittest.cc b/src/bin/dhcp6/tests/fqdn_unittest.cc index 95f683b384..9deabdd6a0 100644 --- a/src/bin/dhcp6/tests/fqdn_unittest.cc +++ b/src/bin/dhcp6/tests/fqdn_unittest.cc @@ -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 diff --git a/src/hooks/dhcp/stat_cmds/stat_cmds.dox b/src/hooks/dhcp/stat_cmds/stat_cmds.dox index 68b4e0b29f..f27edd6f42 100644 --- a/src/hooks/dhcp/stat_cmds/stat_cmds.dox +++ b/src/hooks/dhcp/stat_cmds/stat_cmds.dox @@ -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" ], diff --git a/src/share/api/config-set.json b/src/share/api/config-set.json index d42f4c55e6..17305dd0f5 100644 --- a/src/share/api/config-set.json +++ b/src/share/api/config-set.json @@ -19,11 +19,11 @@ "description": "See ", "name": "config-set", "resp-syntax": [ - "{\"result\": 0, \"text\": \"Configuration successful.\" }", + "{ \"result\": 0, \"text\": \"Configuration successful.\" }", "", "or", "", - "{\"result\": 1, \"text\": \"unsupported parameter: BOGUS (:16:26)\" }" + "{ \"result\": 1, \"text\": \"unsupported parameter: BOGUS (:16:26)\" }" ], "support": [ "kea-dhcp4", diff --git a/src/share/api/config-test.json b/src/share/api/config-test.json index fef0e1ad93..39aa367a09 100644 --- a/src/share/api/config-test.json +++ b/src/share/api/config-test.json @@ -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, is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"." + "In the example below, '' is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"." ], "cmd-syntax": [ "{", diff --git a/src/share/api/stat-lease4-get.json b/src/share/api/stat-lease4-get.json index 42e96cb8b8..75a73fb599 100644 --- a/src/share/api/stat-lease4-get.json +++ b/src/share/api/stat-lease4-get.json @@ -18,11 +18,7 @@ " \"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 ]", diff --git a/src/share/api/stat-lease6-get.json b/src/share/api/stat-lease6-get.json index cab6424a36..76e026a530 100644 --- a/src/share/api/stat-lease6-get.json +++ b/src/share/api/stat-lease6-get.json @@ -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 ],", diff --git a/src/share/api/statistic-get-all.json b/src/share/api/statistic-get-all.json index 7b5bbdcae8..2def68af69 100644 --- a/src/share/api/statistic-get-all.json +++ b/src/share/api/statistic-get-all.json @@ -15,42 +15,637 @@ ], "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\"", + " ]", + " ]", + " }", "}" ], -- 2.47.2