2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-29 21:18:02 +00:00

[#2883] added documentation for pool stats

This commit is contained in:
Razvan Becheriu 2023-06-13 20:36:20 +03:00
parent f5e92c69da
commit 3cd3de76a9
11 changed files with 2304 additions and 1072 deletions

View File

@ -6719,454 +6719,541 @@ The DHCPv4 server supports the following statistics:
:widths: 20 10 70 :widths: 20 10 70
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| Statistic | Data Type | Description | | Statistic | Data Type | Description |
+==============================================+================+====================================+ +====================================================+================+====================================+
| pkt4-received | integer | Number of DHCPv4 packets received. | | pkt4-received | integer | Number of DHCPv4 packets received. |
| | | This includes all packets: valid, | | | | This includes all packets: valid, |
| | | bogus, corrupted, rejected, etc. | | | | bogus, corrupted, rejected, etc. |
| | | This statistic is expected to grow | | | | This statistic is expected to grow |
| | | rapidly. | | | | rapidly. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-discover-received | integer | Number of DHCPDISCOVER packets | | pkt4-discover-received | integer | Number of DHCPDISCOVER packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to grow; its increase | | | | expected to grow; its increase |
| | | means that clients that just | | | | means that clients that just |
| | | booted started their configuration | | | | booted started their configuration |
| | | process and their initial packets | | | | process and their initial packets |
| | | reached the Kea server. | | | | reached the Kea server. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-offer-received | integer | Number of DHCPOFFER packets | | pkt4-offer-received | integer | Number of DHCPOFFER packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to remain zero at all | | | | expected to remain zero at all |
| | | times, as DHCPOFFER packets are | | | | times, as DHCPOFFER packets are |
| | | sent by the server and the server | | | | sent by the server and the server |
| | | is never expected to receive them. | | | | is never expected to receive them. |
| | | A non-zero value indicates an | | | | A non-zero value indicates an |
| | | error. One likely cause would be a | | | | error. One likely cause would be a |
| | | misbehaving relay agent that | | | | misbehaving relay agent that |
| | | incorrectly forwards DHCPOFFER | | | | incorrectly forwards DHCPOFFER |
| | | messages towards the server, | | | | messages towards the server, |
| | | rather than back to the clients. | | | | rather than back to the clients. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-request-received | integer | Number of DHCPREQUEST packets | | pkt4-request-received | integer | Number of DHCPREQUEST packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to grow. Its increase | | | | expected to grow. Its increase |
| | | means that clients that just | | | | means that clients that just |
| | | booted received the server's | | | | booted received the server's |
| | | response (DHCPOFFER) and accepted | | | | response (DHCPOFFER) and accepted |
| | | it, and are now requesting an | | | | it, and are now requesting an |
| | | address (DHCPREQUEST). | | | | address (DHCPREQUEST). |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-ack-received | integer | Number of DHCPACK packets | | pkt4-ack-received | integer | Number of DHCPACK packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to remain zero at all | | | | expected to remain zero at all |
| | | times, as DHCPACK packets are sent | | | | times, as DHCPACK packets are sent |
| | | by the server and the server is | | | | by the server and the server is |
| | | never expected to receive them. A | | | | never expected to receive them. A |
| | | non-zero value indicates an error. | | | | non-zero value indicates an error. |
| | | One likely cause would be a | | | | One likely cause would be a |
| | | misbehaving relay agent that | | | | misbehaving relay agent that |
| | | incorrectly forwards DHCPACK | | | | incorrectly forwards DHCPACK |
| | | messages towards the server, | | | | messages towards the server, |
| | | rather than back to the clients. | | | | rather than back to the clients. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-nak-received | integer | Number of DHCPNAK packets | | pkt4-nak-received | integer | Number of DHCPNAK packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to remain zero at all | | | | expected to remain zero at all |
| | | times, as DHCPNAK packets are sent | | | | times, as DHCPNAK packets are sent |
| | | by the server and the server is | | | | by the server and the server is |
| | | never expected to receive them. A | | | | never expected to receive them. A |
| | | non-zero value indicates an error. | | | | non-zero value indicates an error. |
| | | One likely cause would be a | | | | One likely cause would be a |
| | | misbehaving relay agent that | | | | misbehaving relay agent that |
| | | incorrectly forwards DHCPNAK | | | | incorrectly forwards DHCPNAK |
| | | messages towards the server, | | | | messages towards the server, |
| | | rather than back to the clients. | | | | rather than back to the clients. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-release-received | integer | Number of DHCPRELEASE packets | | pkt4-release-received | integer | Number of DHCPRELEASE packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to grow. Its increase | | | | expected to grow. Its increase |
| | | means that clients that had an | | | | means that clients that had an |
| | | address are shutting down or | | | | address are shutting down or |
| | | ceasing to use their addresses. | | | | ceasing to use their addresses. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-decline-received | integer | Number of DHCPDECLINE packets | | pkt4-decline-received | integer | Number of DHCPDECLINE packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to remain close to zero. | | | | expected to remain close to zero. |
| | | Its increase means that a client | | | | Its increase means that a client |
| | | leased an address, but discovered | | | | leased an address, but discovered |
| | | that the address is currently | | | | that the address is currently |
| | | used by an unknown device | | | | used by an unknown device |
| | | elsewhere in the network. | | | | elsewhere in the network. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-inform-received | integer | Number of DHCPINFORM packets | | pkt4-inform-received | integer | Number of DHCPINFORM packets |
| | | received. This statistic is | | | | received. This statistic is |
| | | expected to grow. Its increase | | | | expected to grow. Its increase |
| | | means that there are clients | | | | means that there are clients |
| | | that either do not need an address | | | | that either do not need an address |
| | | or already have an address and are | | | | or already have an address and are |
| | | interested only in getting | | | | interested only in getting |
| | | additional configuration | | | | additional configuration |
| | | parameters. | | | | parameters. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-unknown-received | integer | Number of packets received of an | | pkt4-unknown-received | integer | Number of packets received of an |
| | | unknown type. A non-zero value of | | | | unknown type. A non-zero value of |
| | | this statistic indicates that the | | | | this statistic indicates that the |
| | | server received a packet that it | | | | server received a packet that it |
| | | was not able to recognize, either | | | | was not able to recognize, either |
| | | with an unsupported type or | | | | with an unsupported type or |
| | | possibly malformed (without a | | | | possibly malformed (without a |
| | | message-type option). | | | | message-type option). |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-sent | integer | Number of DHCPv4 packets sent. | | pkt4-sent | integer | Number of DHCPv4 packets sent. |
| | | This statistic is expected to grow | | | | This statistic is expected to grow |
| | | every time the server transmits a | | | | every time the server transmits a |
| | | packet. In general, it should | | | | packet. In general, it should |
| | | roughly match pkt4-received, as | | | | roughly match pkt4-received, as |
| | | most incoming packets cause the | | | | most incoming packets cause the |
| | | server to respond. There are | | | | server to respond. There are |
| | | exceptions (e.g. DHCPRELEASE), so | | | | exceptions (e.g. DHCPRELEASE), so |
| | | do not worry if it is less than | | | | do not worry if it is less than |
| | | pkt4-received. | | | | pkt4-received. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-offer-sent | integer | Number of DHCPOFFER packets sent. | | pkt4-offer-sent | integer | Number of DHCPOFFER packets sent. |
| | | This statistic is expected to grow | | | | This statistic is expected to grow |
| | | in most cases after a DHCPDISCOVER | | | | in most cases after a DHCPDISCOVER |
| | | is processed. There are certain | | | | is processed. There are certain |
| | | uncommon, but valid, cases where | | | | uncommon, but valid, cases where |
| | | incoming DHCPDISCOVER packets are | | | | incoming DHCPDISCOVER packets are |
| | | dropped, but in general this | | | | dropped, but in general this |
| | | statistic is expected to be close | | | | statistic is expected to be close |
| | | to pkt4-discover-received. | | | | to pkt4-discover-received. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-ack-sent | integer | Number of DHCPACK packets sent. | | pkt4-ack-sent | integer | Number of DHCPACK packets sent. |
| | | This statistic is expected to grow | | | | This statistic is expected to grow |
| | | in most cases after a DHCPREQUEST | | | | in most cases after a DHCPREQUEST |
| | | is processed. There are certain | | | | is processed. There are certain |
| | | cases where DHCPNAK is sent | | | | cases where DHCPNAK is sent |
| | | instead. In general, the sum of | | | | instead. In general, the sum of |
| | | pkt4-ack-sent and pkt4-nak-sent | | | | pkt4-ack-sent and pkt4-nak-sent |
| | | should be close to | | | | should be close to |
| | | pkt4-request-received. | | | | pkt4-request-received. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-nak-sent | integer | Number of DHCPNAK packets sent. | | pkt4-nak-sent | integer | Number of DHCPNAK packets sent. |
| | | This statistic is expected to grow | | | | This statistic is expected to grow |
| | | when the server chooses not to | | | | when the server chooses not to |
| | | honor the address requested by a | | | | honor the address requested by a |
| | | client. In general, the sum of | | | | client. In general, the sum of |
| | | pkt4-ack-sent and pkt4-nak-sent | | | | pkt4-ack-sent and pkt4-nak-sent |
| | | should be close to | | | | should be close to |
| | | pkt4-request-received. | | | | pkt4-request-received. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-parse-failed | integer | Number of incoming packets that | | pkt4-parse-failed | integer | Number of incoming packets that |
| | | could not be parsed. A non-zero | | | | could not be parsed. A non-zero |
| | | value of this statistic indicates | | | | value of this statistic indicates |
| | | that the server received a | | | | that the server received a |
| | | malformed or truncated packet. | | | | malformed or truncated packet. |
| | | This may indicate problems in the | | | | This may indicate problems in the |
| | | network, faulty clients, or a bug | | | | network, faulty clients, or a bug |
| | | in the server. | | | | in the server. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| pkt4-receive-drop | integer | Number of incoming packets that | | pkt4-receive-drop | integer | Number of incoming packets that |
| | | were dropped. The exact reason for | | | | were dropped. The exact reason for |
| | | dropping packets is logged, but | | | | dropping packets is logged, but |
| | | the most common reasons may be: an | | | | the most common reasons may be: an |
| | | unacceptable packet type was | | | | unacceptable packet type was |
| | | received, direct responses are | | | | received, direct responses are |
| | | forbidden, or the server-id sent | | | | forbidden, or the server-id sent |
| | | by the client does not match the | | | | by the client does not match the |
| | | server's server-id. | | | | server's server-id. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| subnet[id].total-addresses | integer | Total number of addresses | | subnet[id].total-addresses | integer | Total number of addresses |
| | | available for DHCPv4 management; | | | | available for DHCPv4 management |
| | | in other words, this is the sum of | | | | for a given subnet; in other |
| | | all addresses in all configured | | | | words, this is the sum of all |
| | | pools. This statistic changes only | | | | addresses in all configured pools. |
| | | during configuration updates. It | | | | This statistic changes only during |
| | | does not take into account any | | | | configuration updates. It does not |
| | | addresses that may be reserved due | | | | take into account any addresses |
| | | to host reservation. The *id* is | | | | that may be reserved due to host |
| | | the subnet-id of a given subnet. | | | | reservation. The *id* is the |
| | | This statistic is exposed for each | | | | the subnet-id of a given subnet. |
| | | subnet separately, and is reset | | | | This statistic is exposed for each |
| | | during a reconfiguration event. | | | | subnet separately, and is reset |
+----------------------------------------------+----------------+------------------------------------+ | | | during a reconfiguration event. |
| cumulative-assigned-addresses | integer | Cumulative number of addresses | +----------------------------------------------------+----------------+------------------------------------+
| | | that have been assigned since | | subnet[id].pool[pid].total-addresses | integer | Total number of addresses |
| | | server startup. It is incremented | | | | available for DHCPv4 management |
| | | each time an address is assigned | | | | for a given subnet pool; in other |
| | | and is not reset when the server | | | | words, this is the sum of all |
| | | is reconfigured. | | | | addresses in configured subnet |
+----------------------------------------------+----------------+------------------------------------+ | | | pool. This statistic changes only |
| subnet[id].cumulative-assigned-addresses | integer | Cumulative number of assigned | | | | during configuration updates. It |
| | | addresses in a given subnet. It | | | | does not take into account any |
| | | increases every time a new lease | | | | addresses that may be reserved due |
| | | is allocated (as a result of | | | | to host reservation. The *id* is |
| | | receiving a DHCPREQUEST message) | | | | the subnet-id of a given subnet. |
| | | and never decreases. The *id* is | | | | The *pid* is the pool-id of a |
| | | the subnet-id of the subnet. This | | | | given pool. This statistic is |
| | | statistic is exposed for each | | | | exposed for each subnet pool |
| | | subnet separately, and is reset | | | | separately, and is reset during a |
| | | during a reconfiguration event. | | | | reconfiguration event. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| subnet[id].assigned-addresses | integer | Number of assigned addresses in a | | cumulative-assigned-addresses | integer | Cumulative number of addresses |
| | | given subnet. It increases every | | | | that have been assigned since |
| | | time a new lease is allocated (as | | | | server startup. It is incremented |
| | | a result of receiving a | | | | each time an address is assigned |
| | | DHCPREQUEST message) and decreases | | | | and is not reset when the server |
| | | every time a lease is released (a | | | | is reconfigured. |
| | | DHCPRELEASE message is received) | +----------------------------------------------------+----------------+------------------------------------+
| | | or expires. The *id* is the | | subnet[id].cumulative-assigned-addresses | integer | Cumulative number of assigned |
| | | subnet-id of the subnet. This | | | | addresses in a given subnet. It |
| | | statistic is exposed for each | | | | increases every time a new lease |
| | | subnet separately, and is reset | | | | is allocated (as a result of |
| | | during a reconfiguration event. | | | | receiving a DHCPREQUEST message) |
+----------------------------------------------+----------------+------------------------------------+ | | | and never decreases. The *id* is |
| reclaimed-leases | integer | Number of expired leases that have | | | | the subnet-id of the subnet. This |
| | | been reclaimed since server | | | | statistic is exposed for each |
| | | startup. It is incremented each | | | | subnet separately, and is reset |
| | | time an expired lease is reclaimed | | | | during a reconfiguration event. |
| | | and never decreases. It can be | +----------------------------------------------------+----------------+------------------------------------+
| | | used as a long-term indicator of | | subnet[id].pool[pid].cumulative-assigned-addresses | integer | Cumulative number of assigned |
| | | how many actual leases have been | | | | addresses in a given subnet pool. |
| | | reclaimed. This is a global | | | | It increases every time a new |
| | | statistic that covers all subnets. | | | | lease is allocated (as a result of |
+----------------------------------------------+----------------+------------------------------------+ | | | receiving a DHCPREQUEST message) |
| subnet[id].reclaimed-leases | integer | Number of expired leases | | | | and never decreases. The *id* is |
| | | associated with a given subnet | | | | the subnet-id of the subnet. The |
| | | (*id* is the subnet-id) that have | | | | *pid* is the pool-id of the pool. |
| | | been reclaimed since server | | | | This statistic is exposed for each |
| | | startup. It is incremented each | | | | subnet pool separately, and is |
| | | time an expired lease is | | | | reset during a reconfiguration |
| | | reclaimed. The *id* is the | | | | event. |
| | | subnet-id of a given subnet. This | +----------------------------------------------------+----------------+------------------------------------+
| | | statistic is exposed for each | | subnet[id].assigned-addresses | integer | Number of assigned addresses in a |
| | | subnet separately. | | | | given subnet. It increases every |
+----------------------------------------------+----------------+------------------------------------+ | | | time a new lease is allocated (as |
| declined-addresses | integer | Number of IPv4 addresses that are | | | | a result of receiving a |
| | | currently declined; a count of the | | | | DHCPREQUEST message) and decreases |
| | | number of leases currently | | | | every time a lease is released (a |
| | | unavailable. Once a lease is | | | | DHCPRELEASE message is received) |
| | | recovered, this statistic is | | | | or expires. The *id* is the |
| | | decreased; ideally, this statistic | | | | subnet-id of the subnet. This |
| | | should be zero. If this statistic | | | | statistic is exposed for each |
| | | is non-zero or increasing, a | | | | subnet separately, and is reset |
| | | network administrator should | | | | during a reconfiguration event. |
| | | investigate whether there is a | +----------------------------------------------------+----------------+------------------------------------+
| | | misbehaving device in the network. | | subnet[id].pool[pid].assigned-addresses | integer | Number of assigned addresses in a |
| | | This is a global statistic that | | | | given subnet pool. It increases |
| | | covers all subnets. | | | | every time a new lease is |
+----------------------------------------------+----------------+------------------------------------+ | | | allocated (as a result of |
| subnet[id].declined-addresses | integer | Number of IPv4 addresses that are | | | | receiving a DHCPREQUEST message) |
| | | currently declined in a given | | | | and decreases every time a lease |
| | | subnet; a count of the number of | | | | is released (a DHCPRELEASE message |
| | | leases currently unavailable. Once | | | | is received) or expires. The *id* |
| | | a lease is recovered, this | | | | is the subnet-id of the subnet. |
| | | statistic is decreased; ideally, | | | | The *pid* is the pool-id of the |
| | | this statistic should be zero. If | | | | pool. This statistic is exposed |
| | | this statistic is non-zero or | | | | for each subnet pool separately, |
| | | increasing, a network | | | | and is reset during a |
| | | administrator should investigate | | | | reconfiguration event. |
| | | whether there is a misbehaving | +----------------------------------------------------+----------------+------------------------------------+
| | | device in the network. The *id* is | | reclaimed-leases | integer | Number of expired leases that have |
| | | the subnet-id of a given subnet. | | | | been reclaimed since server |
| | | This statistic is exposed for each | | | | startup. It is incremented each |
| | | subnet separately. | | | | time an expired lease is reclaimed |
+----------------------------------------------+----------------+------------------------------------+ | | | and never decreases. It can be |
| reclaimed-declined-addresses | integer | Number of IPv4 addresses that were | | | | used as a long-term indicator of |
| | | declined, but have now been | | | | how many actual leases have been |
| | | recovered. Unlike | | | | reclaimed. This is a global |
| | | declined-addresses, this statistic | | | | statistic that covers all subnets. |
| | | never decreases. It can be used as | +----------------------------------------------------+----------------+------------------------------------+
| | | a long-term indicator of how many | | subnet[id].reclaimed-leases | integer | Number of expired leases |
| | | actual valid declines were | | | | associated with a given subnet |
| | | processed and recovered from. This | | | | that have been reclaimed since |
| | | is a global statistic that covers | | | | server startup. It is incremented |
| | | all subnets. | | | | each time an expired lease is |
+----------------------------------------------+----------------+------------------------------------+ | | | reclaimed. The *id* is the |
| subnet[id].reclaimed-declined-addresses | integer | Number of IPv4 addresses that were | | | | subnet-id of a given subnet. This |
| | | declined, but have now been | | | | statistic is exposed for each |
| | | recovered. Unlike | | | | subnet separately. |
| | | declined-addresses, this statistic | +----------------------------------------------------+----------------+------------------------------------+
| | | never decreases. It can be used as | | subnet[id].pool[pid].reclaimed-leases | integer | Number of expired leases |
| | | a long-term indicator of how many | | | | associated with a given subnet |
| | | actual valid declines were | | | | pool that have been reclaimed |
| | | processed and recovered from. The | | | | since server startup. It is |
| | | *id* is the subnet-id of a given | | | | incremented each time an expired |
| | | subnet. This statistic is exposed | | | | lease is reclaimed. The *id* is |
| | | for each subnet separately. | | | | the subnet-id of a given subnet. |
+----------------------------------------------+----------------+------------------------------------+ | | | The *pid* is the pool-id of the |
| pkt4-lease-query-received | integer | Number of IPv4 DHCPLEASEQUERY | | | | pool. This statistic is exposed |
| | | packets received. (Only exists if | | | | for each subnet pool separately. |
| | | Leasequery hook library is | +----------------------------------------------------+----------------+------------------------------------+
| | | loaded.) | | declined-addresses | integer | Number of IPv4 addresses that are |
+----------------------------------------------+----------------+------------------------------------+ | | | currently declined; a count of the |
| pkt4-lease-query-response-unknown-sent | integer | Number of IPv4 DHCPLEASEUNKNOWN | | | | number of leases currently |
| | | responses sent. (Only exists if | | | | unavailable. Once a lease is |
| | | Leasequery hook library is | | | | recovered, this statistic is |
| | | loaded.) | | | | decreased; ideally, this statistic |
+----------------------------------------------+----------------+------------------------------------+ | | | should be zero. If this statistic |
| pkt4-lease-query-response-unassigned-sent | integer | Number of IPv4 DHCPLEASEUNASSIGNED | | | | is non-zero or increasing, a |
| | | responses sent. (Only exists if | | | | network administrator should |
| | | Leasequery hook library is | | | | investigate whether there is a |
| | | loaded.) | | | | misbehaving device in the network. |
+----------------------------------------------+----------------+------------------------------------+ | | | This is a global statistic that |
| pkt4-lease-query-response-active-sent | integer | Number of IPv4 DHCPLEASEACTIVE | | | | covers all subnets. |
| | | responses sent. (Only exists if | +----------------------------------------------------+----------------+------------------------------------+
| | | Leasequery hook library is | | subnet[id].declined-addresses | integer | Number of IPv4 addresses that are |
| | | loaded.) | | | | currently declined in a given |
+----------------------------------------------+----------------+------------------------------------+ | | | subnet; a count of the number of |
| v4-allocation-fail | integer | Number of total address allocation | | | | leases currently unavailable. Once |
| | | failures for a particular client. | | | | a lease is recovered, this |
| | | This consists in the number of | | | | statistic is decreased; ideally, |
| | | lease allocation attempts that the | | | | this statistic should be zero. If |
| | | server made before giving up and | | | | this statistic is non-zero or |
| | | was unable to use any of the | | | | increasing, a network |
| | | address pools. This is a global | | | | administrator should investigate |
| | | statistic that covers all subnets. | | | | whether there is a misbehaving |
+----------------------------------------------+----------------+------------------------------------+ | | | device in the network. The *id* is |
| subnet[id].v4-allocation-fail | integer | Number of total address allocation | | | | the subnet-id of a given subnet. |
| | | failures for a particular client. | | | | This statistic is exposed for each |
| | | This consists in the number of | | | | subnet separately. |
| | | lease allocation attempts that the | +----------------------------------------------------+----------------+------------------------------------+
| | | server made before giving up and | | subnet[id].pool[pid].declined-addresses | integer | Number of IPv4 addresses that are |
| | | was unable to use any of the | | | | currently declined in a given |
| | | address pools. The *id* is the | | | | subnet pool; a count of the number |
| | | subnet-id of a given subnet. This | | | | of leases currently unavailable. |
| | | statistic is exposed for each | | | | Once a lease is recovered, this |
| | | subnet separately. | | | | statistic is decreased; ideally, |
+----------------------------------------------+----------------+------------------------------------+ | | | this statistic should be zero. If |
| v4-allocation-fail-shared-network | integer | Number of address allocation | | | | this statistic is non-zero or |
| | | failures for a particular client | | | | increasing, a network |
| | | connected to a shared network. | | | | administrator should investigate |
| | | This is a global statistic that | | | | whether there is a misbehaving |
| | | covers all subnets. | | | | device in the network. The *id* is |
+----------------------------------------------+----------------+------------------------------------+ | | | the subnet-id of a given subnet. |
| subnet[id].v4-allocation-fail-shared-network | integer | Number of address allocation | | | | The *pid* is the pool-id of the |
| | | failures for a particular client | | | | pool. This statistic is exposed |
| | | connected to a shared network. | | | | for each subnet pool separately. |
| | | The *id* is the subnet-id of a | +----------------------------------------------------+----------------+------------------------------------+
| | | given subnet. This statistic is | | reclaimed-declined-addresses | integer | Number of IPv4 addresses that were |
| | | exposed for each subnet | | | | declined, but have now been |
| | | separately. | | | | recovered. Unlike |
+----------------------------------------------+----------------+------------------------------------+ | | | declined-addresses, this statistic |
| v4-allocation-fail-subnet | integer | Number of address allocation | | | | never decreases. It can be used as |
| | | failures for a particular client | | | | a long-term indicator of how many |
| | | connected to a subnet that does | | | | actual valid declines were |
| | | not belong to a shared network. | | | | processed and recovered from. This |
| | | This is a global statistic that | | | | is a global statistic that covers |
| | | covers all subnets. | | | | all subnets. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| subnet[id].v4-allocation-fail-subnet | integer | Number of address allocation | | subnet[id].reclaimed-declined-addresses | integer | Number of IPv4 addresses that were |
| | | failures for a particular client | | | | declined, but have now been |
| | | connected to a subnet that does | | | | recovered. Unlike |
| | | not belong to a shared network. | | | | declined-addresses, this statistic |
| | | The *id* is the subnet-id of a | | | | never decreases. It can be used as |
| | | given subnet. This statistic is | | | | a long-term indicator of how many |
| | | exposed for each subnet | | | | actual valid declines were |
| | | separately. | | | | processed and recovered from. The |
+----------------------------------------------+----------------+------------------------------------+ | | | *id* is the subnet-id of a given |
| v4-allocation-fail-no-pools | integer | Number of address allocation | | | | subnet. This statistic is exposed |
| | | failures because the server could | | | | for each subnet separately. |
| | | not use any configured pools for | +----------------------------------------------------+----------------+------------------------------------+
| | | a particular client. It is also | | subnet[id].pool[pid].reclaimed-declined-addresses | integer | Number of IPv4 addresses that were |
| | | possible that all of the subnets | | | | declined, but have now been |
| | | from which the server attempted to | | | | recovered. Unlike |
| | | assign an address lack address | | | | declined-addresses, this statistic |
| | | pools. In this case, it should be | | | | never decreases. It can be used as |
| | | considered misconfiguration if an | | | | a long-term indicator of how many |
| | | operator expects that some clients | | | | actual valid declines were |
| | | should be assigned dynamic | | | | processed and recovered from. The |
| | | addresses. This is a global | | | | *id* is the subnet-id of a given |
| | | statistic that covers all subnets. | | | | subnet. The *pid* is the pool-id |
+----------------------------------------------+----------------+------------------------------------+ | | | of the pool. This statistic is |
| subnet[id].v4-allocation-fail-no-pools | integer | Number of address allocation | | | | exposed for each subnet pool |
| | | failures because the server could | | | | separately. |
| | | not use any configured pools for | +----------------------------------------------------+----------------+------------------------------------+
| | | a particular client. It is also | | pkt4-lease-query-received | integer | Number of IPv4 DHCPLEASEQUERY |
| | | possible that all of the subnets | | | | packets received. (Only exists if |
| | | from which the server attempted to | | | | Leasequery hook library is |
| | | assign an address lack address | | | | loaded.) |
| | | pools. In this case, it should be | +----------------------------------------------------+----------------+------------------------------------+
| | | considered misconfiguration if an | | pkt4-lease-query-response-unknown-sent | integer | Number of IPv4 DHCPLEASEUNKNOWN |
| | | operator expects that some clients | | | | responses sent. (Only exists if |
| | | should be assigned dynamic | | | | Leasequery hook library is |
| | | addresses. The *id* is the | | | | loaded.) |
| | | subnet-id of a given subnet. This | +----------------------------------------------------+----------------+------------------------------------+
| | | statistic is exposed for each | | pkt4-lease-query-response-unassigned-sent | integer | Number of IPv4 DHCPLEASEUNASSIGNED |
| | | subnet separately. | | | | responses sent. (Only exists if |
+----------------------------------------------+----------------+------------------------------------+ | | | Leasequery hook library is |
| v4-allocation-fail-classes | integer | Number of address allocation | | | | loaded.) |
| | | failures when the client's packet | +----------------------------------------------------+----------------+------------------------------------+
| | | belongs to one or more classes. | | pkt4-lease-query-response-active-sent | integer | Number of IPv4 DHCPLEASEACTIVE |
| | | There may be several reasons why a | | | | responses sent. (Only exists if |
| | | lease was not assigned. One of | | | | Leasequery hook library is |
| | | them may be a case when all pools | | | | loaded.) |
| | | require packet to belong to | +----------------------------------------------------+----------------+------------------------------------+
| | | certain classes and the incoming | | v4-allocation-fail | integer | Number of total address allocation |
| | | packet didn't belong to any of | | | | failures for a particular client. |
| | | them. Another case where this | | | | This consists in the number of |
| | | information may be useful is to | | | | lease allocation attempts that the |
| | | point out that the pool reserved | | | | server made before giving up and |
| | | to a given class has ran out of | | | | was unable to use any of the |
| | | addresses. This is a global | | | | address pools. This is a global |
| | | statistic that covers all subnets. | | | | statistic that covers all subnets. |
+----------------------------------------------+----------------+------------------------------------+ +----------------------------------------------------+----------------+------------------------------------+
| subnet[id].v4-allocation-fail-classes | integer | Number of address allocation | | subnet[id].v4-allocation-fail | integer | Number of total address allocation |
| | | failures when the client's packet | | | | failures for a particular client. |
| | | belongs to one or more classes. | | | | This consists in the number of |
| | | There may be several reasons why a | | | | lease allocation attempts that the |
| | | lease was not assigned. One of | | | | server made before giving up and |
| | | them may be a case when all pools | | | | was unable to use any of the |
| | | require packet to belong to | | | | address pools. The *id* is the |
| | | certain classes and the incoming | | | | subnet-id of a given subnet. This |
| | | packet didn't belong to any of | | | | statistic is exposed for each |
| | | them. Another case where this | | | | subnet separately. |
| | | information may be useful is to | +----------------------------------------------------+----------------+------------------------------------+
| | | point out that the pool reserved | | v4-allocation-fail-shared-network | integer | Number of address allocation |
| | | to a given class has ran out of | | | | failures for a particular client |
| | | addresses. The *id* is the | | | | connected to a shared network. |
| | | subnet-id of a given subnet. This | | | | This is a global statistic that |
| | | statistic is exposed for each | | | | covers all subnets. |
| | | subnet separately. | +----------------------------------------------------+----------------+------------------------------------+
+----------------------------------------------+----------------+------------------------------------+ | subnet[id].v4-allocation-fail-shared-network | integer | Number of address allocation |
| v4-lease-reuses | integer | Number of times an IPv4 lease had | | | | failures for a particular client |
| | | its CLTT increased in memory and | | | | connected to a shared network. |
| | | its expiration time left unchanged | | | | The *id* is the subnet-id of a |
| | | in persistent storage as part of | | | | given subnet. This statistic is |
| | | the lease caching feature. This is | | | | exposed for each subnet |
| | | referred to as a lease reuse. | | | | separately. |
| | | This statistic is global. | +----------------------------------------------------+----------------+------------------------------------+
+----------------------------------------------+----------------+------------------------------------+ | v4-allocation-fail-subnet | integer | Number of address allocation |
| subnet[id].v4-lease-reuses | integer | Number of times an IPv4 lease had | | | | failures for a particular client |
| | | its CLTT increased in memory and | | | | connected to a subnet that does |
| | | its expiration time left unchanged | | | | not belong to a shared network. |
| | | in persistent storage as part of | | | | This is a global statistic that |
| | | the lease caching feature. This is | | | | covers all subnets. |
| | | referred to as a lease reuse. | +----------------------------------------------------+----------------+------------------------------------+
| | | This statistic is on a per-subnet | | subnet[id].v4-allocation-fail-subnet | integer | Number of address allocation |
| | | basis. The *id* is the subnet-id | | | | failures for a particular client |
| | | of a given subnet. | | | | connected to a subnet that does |
+----------------------------------------------+----------------+------------------------------------+ | | | not belong to a shared network. |
| v4-reservation-conflicts | integer | Number of host reservation | | | | The *id* is the subnet-id of a |
| | | allocation conflicts which have | | | | given subnet. This statistic is |
| | | occurred across every subnet. When | | | | exposed for each subnet |
| | | a client sends a DHCP Discover and | | | | separately. |
| | | is matched to a host reservation | +----------------------------------------------------+----------------+------------------------------------+
| | | which is already leased to another | | v4-allocation-fail-no-pools | integer | Number of address allocation |
| | | client, this counter is increased | | | | failures because the server could |
| | | by 1. | | | | not use any configured pools for |
+----------------------------------------------+----------------+------------------------------------+ | | | a particular client. It is also |
| subnet[id].v4-reservation-conflicts | integer | Number of host reservation | | | | possible that all of the subnets |
| | | allocation conflicts which have | | | | from which the server attempted to |
| | | occurred in a specific subnet. | | | | assign an address lack address |
| | | When a client sends a DHCP | | | | pools. In this case, it should be |
| | | Discover and is matched to a host | | | | considered misconfiguration if an |
| | | reservation which is already | | | | operator expects that some clients |
| | | leased to another client, this | | | | should be assigned dynamic |
| | | counter is increased by 1. | | | | 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:: .. note::

File diff suppressed because it is too large Load Diff

View File

@ -233,211 +233,635 @@ Here is an example response returning all collected statistics:
"cumulative-assigned-addresses": [ "cumulative-assigned-addresses": [
[ [
0, 0,
"2022-02-11 17:54:17.487569" "2023-06-13 20:42:46.836166"
] ]
], ],
"declined-addresses": [ "declined-addresses": [
[ [
0, 0,
"2022-02-11 17:54:17.487555" "2023-06-13 20:42:46.836156"
] ]
], ],
"pkt4-ack-received": [ "pkt4-ack-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455233" "2023-06-13 20:42:46.616247"
] ]
], ],
"pkt4-ack-sent": [ "pkt4-ack-sent": [
[ [
0, 0,
"2022-02-11 17:54:17.455256" "2023-06-13 20:42:46.616290"
] ]
], ],
"pkt4-decline-received": [ "pkt4-decline-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455259" "2023-06-13 20:42:46.616296"
] ]
], ],
"pkt4-discover-received": [ "pkt4-discover-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455263" "2023-06-13 20:42:46.616303"
] ]
], ],
"pkt4-inform-received": [ "pkt4-inform-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455265" "2023-06-13 20:42:46.616308"
] ]
], ],
"pkt4-nak-received": [ "pkt4-nak-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455269" "2023-06-13 20:42:46.616312"
] ]
], ],
"pkt4-nak-sent": [ "pkt4-nak-sent": [
[ [
0, 0,
"2022-02-11 17:54:17.455271" "2023-06-13 20:42:46.616314"
] ]
], ],
"pkt4-offer-received": [ "pkt4-offer-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455274" "2023-06-13 20:42:46.616318"
] ]
], ],
"pkt4-offer-sent": [ "pkt4-offer-sent": [
[ [
0, 0,
"2022-02-11 17:54:17.455277" "2023-06-13 20:42:46.616323"
] ]
], ],
"pkt4-parse-failed": [ "pkt4-parse-failed": [
[ [
0, 0,
"2022-02-11 17:54:17.455280" "2023-06-13 20:42:46.616326"
] ]
], ],
"pkt4-receive-drop": [ "pkt4-receive-drop": [
[ [
0, 0,
"2022-02-11 17:54:17.455284" "2023-06-13 20:42:46.616330"
] ]
], ],
"pkt4-received": [ "pkt4-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455287" "2023-06-13 20:42:46.616335"
] ]
], ],
"pkt4-release-received": [ "pkt4-release-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455290" "2023-06-13 20:42:46.616339"
] ]
], ],
"pkt4-request-received": [ "pkt4-request-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455293" "2023-06-13 20:42:46.616343"
] ]
], ],
"pkt4-sent": [ "pkt4-sent": [
[ [
0, 0,
"2022-02-11 17:54:17.455296" "2023-06-13 20:42:46.616348"
] ]
], ],
"pkt4-unknown-received": [ "pkt4-unknown-received": [
[ [
0, 0,
"2022-02-11 17:54:17.455299" "2023-06-13 20:42:46.616354"
] ]
], ],
"reclaimed-declined-addresses": [ "reclaimed-declined-addresses": [
[ [
0, 0,
"2022-02-11 17:54:17.487559" "2023-06-13 20:42:46.836159"
] ]
], ],
"reclaimed-leases": [ "reclaimed-leases": [
[ [
0, 0,
"2022-02-11 17:54:17.487564" "2023-06-13 20:42:46.836163"
] ]
], ],
"subnet[1].assigned-addresses": [ "subnet[1].assigned-addresses": [
[ [
0, 0,
"2022-02-11 17:54:17.487579" "2023-06-13 20:42:46.836173"
] ]
], ],
"subnet[1].cumulative-assigned-addresses": [ "subnet[1].cumulative-assigned-addresses": [
[ [
0, 0,
"2022-02-11 17:54:17.487528" "2023-06-13 20:42:46.836098"
] ]
], ],
"subnet[1].declined-addresses": [ "subnet[1].declined-addresses": [
[ [
0, 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": [ "subnet[1].reclaimed-declined-addresses": [
[ [
0, 0,
"2022-02-11 17:54:17.487595" "2023-06-13 20:42:46.836186"
] ]
], ],
"subnet[1].reclaimed-leases": [ "subnet[1].reclaimed-leases": [
[ [
0, 0,
"2022-02-11 17:54:17.487604" "2023-06-13 20:42:46.836194"
] ]
], ],
"subnet[1].total-addresses": [ "subnet[1].total-addresses": [
[ [
200, 11010049,
"2022-02-11 17:54:17.487512" "2023-06-13 20:42:46.836083"
] ]
], ],
"subnet[1].v4-lease-reuses": [ "subnet[1].v4-lease-reuses": [
[ [
0, 0,
"2022-02-11 17:54:17.487516" "2023-06-13 20:42:46.836105"
] ]
], ],
"subnet[1].v4-reservation-conflicts": [ "subnet[1].v4-reservation-conflicts": [
[ [
0, 0,
"2022-02-11 17:54:17.487520" "2023-06-13 20:42:46.836111"
] ]
], ],
"v4-allocation-fail": [ "v4-allocation-fail": [
[ [
0, 0,
"2022-02-11 17:54:17.455302" "2023-06-13 20:42:46.616358"
] ]
], ],
"v4-allocation-fail-classes": [ "v4-allocation-fail-classes": [
[ [
0, 0,
"2022-02-11 17:54:17.455306" "2023-06-13 20:42:46.616363"
] ]
], ],
"v4-allocation-fail-no-pools": [ "v4-allocation-fail-no-pools": [
[ [
0, 0,
"2022-02-11 17:54:17.455310" "2023-06-13 20:42:46.616368"
] ]
], ],
"v4-allocation-fail-shared-network": [ "v4-allocation-fail-shared-network": [
[ [
0, 0,
"2022-02-11 17:54:17.455319" "2023-06-13 20:42:46.616372"
] ]
], ],
"v4-allocation-fail-subnet": [ "v4-allocation-fail-subnet": [
[ [
0, 0,
"2022-02-11 17:54:17.455323" "2023-06-13 20:42:46.616376"
] ]
], ],
"v4-lease-reuses": [ "v4-lease-reuses": [
[ [
0, 0,
"2022-02-11 17:54:17.455328" "2023-06-13 20:42:46.616410"
] ]
], ],
"v4-reservation-conflicts": [ "v4-reservation-conflicts": [
[ [
0, 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"
] ]
] ]
}, },

View File

@ -569,7 +569,6 @@ public:
pkt->addOption(generateClientId()); pkt->addOption(generateClientId());
// Create Client FQDN Option with the specified flags and // Create Client FQDN Option with the specified flags and
// domain-name. // domain-name.
pkt->addOption(createHostname(hostname)); pkt->addOption(createHostname(hostname));
@ -736,7 +735,6 @@ public:
EXPECT_EQ(flag_e, fqdn->getFlag(Option4ClientFqdn::FLAG_E)); EXPECT_EQ(flag_e, fqdn->getFlag(Option4ClientFqdn::FLAG_E));
} }
/// @brief Invokes Dhcpv4Srv::processHostname on the given packet /// @brief Invokes Dhcpv4Srv::processHostname on the given packet
/// ///
/// Processes the Hostname option in the client's message and returns /// Processes the Hostname option in the client's message and returns
@ -842,7 +840,6 @@ public:
ASSERT_NO_THROW(d2_mgr_.runReadyIO()); ASSERT_NO_THROW(d2_mgr_.runReadyIO());
} }
/// @brief Tests processing a request with the given client flags /// @brief Tests processing a request with the given client flags
/// ///
/// This method creates a request with its FQDN flags set to the given /// 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. /// @return Number of assigned addresses for a subnet.
void checkSubnetStat(const SubnetID& subnet_id, const std::string& name, int64_t exp_value) const { void checkSubnetStat(const SubnetID& subnet_id, const std::string& name, int64_t exp_value) const {
// Retrieve statistics name, e.g. subnet[1234].assigned-addresses. // 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); ObservationPtr obs = StatsMgr::instance().getObservation(stats_name);
ASSERT_TRUE(obs) << "cannot find: " << stats_name; ASSERT_TRUE(obs) << "cannot find: " << stats_name;
EXPECT_EQ(exp_value, obs->getInteger().first); 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); ASSERT_TRUE(hostname);
EXPECT_EQ("myhost.example.com.", hostname->getValue()); EXPECT_EQ("myhost.example.com.", hostname->getValue());
} }
// Test that the server skips processing of a mal-formed Hostname options. // Test that the server skips processing of a mal-formed Hostname options.
@ -1089,7 +1089,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateForwardPartialNameFqdn) {
testProcessFqdn(query, testProcessFqdn(query,
Option4ClientFqdn::FLAG_E | Option4ClientFqdn::FLAG_S, Option4ClientFqdn::FLAG_E | Option4ClientFqdn::FLAG_S,
"myhost.example.com."); "myhost.example.com.");
} }
// Test that server generates the fully qualified domain name for the client // Test that server generates the fully qualified domain name for the client
@ -1102,7 +1101,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateUnqualifiedHostname) {
ASSERT_TRUE(hostname); ASSERT_TRUE(hostname);
EXPECT_EQ("myhost.example.com", hostname->getValue()); EXPECT_EQ("myhost.example.com", hostname->getValue());
} }
// Test that server sets empty domain-name in the FQDN option when client // Test that server sets empty domain-name in the FQDN option when client
@ -1120,7 +1118,6 @@ TEST_F(NameDhcpv4SrvTest, serverUpdateForwardNoNameFqdn) {
testProcessFqdn(query, testProcessFqdn(query,
Option4ClientFqdn::FLAG_E | Option4ClientFqdn::FLAG_S, Option4ClientFqdn::FLAG_E | Option4ClientFqdn::FLAG_S,
"", Option4ClientFqdn::PARTIAL); "", Option4ClientFqdn::PARTIAL);
} }
// Test that exactly one NameChangeRequest is generated when the new lease // 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)); lease = LeaseMgrFactory::instance().getLease4(IOAddress(expected_address));
ASSERT_TRUE(lease); ASSERT_TRUE(lease);
EXPECT_EQ(expected_fqdn, lease->hostname_); EXPECT_EQ(expected_fqdn, lease->hostname_);
} }
// Verifies that the replace-client-name behavior is correct for each of // Verifies that the replace-client-name behavior is correct for each of
@ -2833,7 +2829,6 @@ TEST_F(NameDhcpv4SrvTest, withOfferLifetime) {
"B020A13F44859F30A108793564A97", "B020A13F44859F30A108793564A97",
time(NULL), subnet->getValid(), true); time(NULL), subnet->getValid(), true);
// And that this FQDN has been stored in the lease database. // And that this FQDN has been stored in the lease database.
lease = LeaseMgrFactory::instance().getLease4(client.config_.lease_.addr_); lease = LeaseMgrFactory::instance().getLease4(client.config_.lease_.addr_);
ASSERT_TRUE(lease); ASSERT_TRUE(lease);

View File

@ -758,7 +758,6 @@ TEST_F(FqdnDhcpv6SrvTest, createNameChangeRequestsNoAnswer) {
ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true; ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true;
EXPECT_THROW(srv_->createNameChangeRequests(answer, ctx), EXPECT_THROW(srv_->createNameChangeRequests(answer, ctx),
isc::Unexpected); isc::Unexpected);
} }
// Test that exception is thrown if supplied answer from the server // Test that exception is thrown if supplied answer from the server
@ -774,7 +773,6 @@ TEST_F(FqdnDhcpv6SrvTest, createNameChangeRequestsNoDUID) {
ctx.subnet_ = subnet_; ctx.subnet_ = subnet_;
ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true; ctx.fwd_dns_update_ = ctx.rev_dns_update_ = true;
EXPECT_THROW(srv_->createNameChangeRequests(answer, ctx), isc::Unexpected); EXPECT_THROW(srv_->createNameChangeRequests(answer, ctx), isc::Unexpected);
} }
// Test no NameChangeRequests if Client FQDN is not added to the server's // Test no NameChangeRequests if Client FQDN is not added to the server's
@ -962,7 +960,6 @@ TEST_F(FqdnDhcpv6SrvTest, createRemovalNameChangeRequestRev) {
"000201415AA33D1187D148275136FA30300478" "000201415AA33D1187D148275136FA30300478"
"FAAAA3EBD29826B5C907B2C9268A6F52", "FAAAA3EBD29826B5C907B2C9268A6F52",
lease_->cltt_, lease_->valid_lft_); lease_->cltt_, lease_->valid_lft_);
} }
// Test that NameChangeRequest to remove DNS records is not generated when // 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_NO_THROW(queueNCR(CHG_REMOVE, lease_));
ASSERT_EQ(0, d2_mgr_.getQueueSize()); ASSERT_EQ(0, d2_mgr_.getQueueSize());
} }
// Test that NameChangeRequest is not generated if the hostname hasn't been // 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_NO_THROW(queueNCR(CHG_REMOVE, lease_));
ASSERT_EQ(0, d2_mgr_.getQueueSize()); ASSERT_EQ(0, d2_mgr_.getQueueSize());
} }
// Test that NameChangeRequest is not generated if the invalid hostname has // 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_NO_THROW(queueNCR(CHG_REMOVE, lease_));
ASSERT_EQ(0, d2_mgr_.getQueueSize()); ASSERT_EQ(0, d2_mgr_.getQueueSize());
} }
// Test that Advertise message generated in a response to the Solicit will // Test that Advertise message generated in a response to the Solicit will
@ -1059,7 +1053,6 @@ TEST_F(FqdnDhcpv6SrvTest, processTwoRequestsDiffFqdn) {
"000201D422AA463306223D269B6CB7AFE7AAD265FC" "000201D422AA463306223D269B6CB7AFE7AAD265FC"
"EA97F93623019B2E0D14E5323D5A", "EA97F93623019B2E0D14E5323D5A",
0, lease_->valid_lft_); 0, lease_->valid_lft_);
} }
// Test that client may send two requests, each carrying FQDN option with // 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", testProcessMessage(DHCPV6_SOLICIT, "otherhost.example.com",
"otherhost.example.com."); "otherhost.example.com.");
ASSERT_EQ(0, d2_mgr_.getQueueSize()); ASSERT_EQ(0, d2_mgr_.getQueueSize());
} }
// Test that client may send Request followed by the Renew, both holding // Test that client may send Request followed by the Renew, both holding
@ -1167,7 +1159,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestRenewDiffFqdn) {
"000201D422AA463306223D269B6CB7AFE7AAD265FC" "000201D422AA463306223D269B6CB7AFE7AAD265FC"
"EA97F93623019B2E0D14E5323D5A", "EA97F93623019B2E0D14E5323D5A",
0, lease_->valid_lft_); 0, lease_->valid_lft_);
} }
// Test that client may send Request followed by the Renew, both holding // Test that client may send Request followed by the Renew, both holding
@ -1367,7 +1358,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestEmptyFqdn) {
"000201C905E54BE12DE6AF92ADE72752B9F362" "000201C905E54BE12DE6AF92ADE72752B9F362"
"13B5A8BC9D217548CD739B4CF31AFB1B", "13B5A8BC9D217548CD739B4CF31AFB1B",
0, 4000); 0, 4000);
} }
// Checks that when the server reuses expired lease, the NameChangeRequest // Checks that when the server reuses expired lease, the NameChangeRequest
@ -1444,7 +1434,6 @@ TEST_F(FqdnDhcpv6SrvTest, processRequestReuseExpiredLease) {
"2001:db8:1:1::dead:beef", "2001:db8:1:1::dead:beef",
"000201415AA33D1187D148275136FA30300478" "000201415AA33D1187D148275136FA30300478"
"FAAAA3EBD29826B5C907B2C9268A6F52", 0, 4); "FAAAA3EBD29826B5C907B2C9268A6F52", 0, 4);
} }
TEST_F(FqdnDhcpv6SrvTest, processClientDelegation) { TEST_F(FqdnDhcpv6SrvTest, processClientDelegation) {
@ -1561,7 +1550,6 @@ TEST_F(FqdnDhcpv6SrvTest, hostnameReservationNoSuffix) {
"000201E2EB74FB53A5778E74AFD43870ECA5" "000201E2EB74FB53A5778E74AFD43870ECA5"
"4150B1F52B0CFED434802DA1259D6D3CA4", "4150B1F52B0CFED434802DA1259D6D3CA4",
0, 4000, "alice.example.com."); 0, 4000, "alice.example.com.");
} }
TEST_F(FqdnDhcpv6SrvTest, hostnameReservationDdnsDisabled) { TEST_F(FqdnDhcpv6SrvTest, hostnameReservationDdnsDisabled) {
@ -1664,7 +1652,6 @@ TEST_F(FqdnDhcpv6SrvTest, sanitizeFqdn) {
std::string("m\000yhost.exa\000mple.com", 20), std::string("m\000yhost.exa\000mple.com", 20),
Option6ClientFqdn::FULL, Option6ClientFqdn::FLAG_S, Option6ClientFqdn::FULL, Option6ClientFqdn::FLAG_S,
"mxyhost.exaxmple.com.", false); "mxyhost.exaxmple.com.", false);
} }
// Verifies that scoped ddns-parameter handling. // Verifies that scoped ddns-parameter handling.
@ -1751,7 +1738,6 @@ TEST_F(FqdnDhcpv6SrvTest, ddnsScopeTest) {
ASSERT_EQ(1, CfgMgr::instance().getD2ClientMgr().getQueueSize()); ASSERT_EQ(1, CfgMgr::instance().getD2ClientMgr().getQueueSize());
verifyNameChangeRequest(isc::dhcp_ddns::CHG_ADD, true, true, "2001:db8:2::1", verifyNameChangeRequest(isc::dhcp_ddns::CHG_ADD, true, true, "2001:db8:2::1",
"", 0, 4000); "", 0, 4000);
} }
// Verifies that the DDNS parameters used for a lease in subnet in // Verifies that the DDNS parameters used for a lease in subnet in

View File

@ -174,7 +174,7 @@ A DHCPv4 response might look like this:
"rows\": [ "rows\": [
[ 30, 256, 300, 100, 2 ], [ 30, 256, 300, 100, 2 ],
[ 40, 16, 5, 0, 0 ], [ 40, 16, 5, 0, 0 ],
[ 50, 256, 100, 35, 0 ], [ 50, 256, 100, 35, 0 ]
], ],
timestamp\": \"2018-05-04 15:03:37.000000\" } timestamp\": \"2018-05-04 15:03:37.000000\" }
} }
@ -186,7 +186,7 @@ and DHCPv6 response might look like this:
{ {
"result-set": { "result-set": {
"columns": [ "columns": [
"subnet-id", "total-nas", "cumulative-assigned-nas" "subnet-id", "total-nas", "cumulative-assigned-nas",
"assigned-nas", "declined-nas", "total-pds", "assigned-nas", "declined-nas", "total-pds",
"cumulative-assigned-pds", "assigned-pds" "cumulative-assigned-pds", "assigned-pds"
], ],

View File

@ -19,11 +19,11 @@
"description": "See <xref linkend=\"command-config-set\"/>", "description": "See <xref linkend=\"command-config-set\"/>",
"name": "config-set", "name": "config-set",
"resp-syntax": [ "resp-syntax": [
"{\"result\": 0, \"text\": \"Configuration successful.\" }", "{ \"result\": 0, \"text\": \"Configuration successful.\" }",
"", "",
"or", "or",
"", "",
"{\"result\": 1, \"text\": \"unsupported parameter: BOGUS (<string>:16:26)\" }" "{ \"result\": 1, \"text\": \"unsupported parameter: BOGUS (<string>:16:26)\" }"
], ],
"support": [ "support": [
"kea-dhcp4", "kea-dhcp4",

View File

@ -5,7 +5,7 @@
"This command instructs the server to check whether the new configuration supplied in the command's arguments can be loaded." "This command instructs the server to check whether the new configuration supplied in the command's arguments can be loaded."
], ],
"cmd-comment": [ "cmd-comment": [
"In the example below, <server> is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"." "In the example below, '<server>' is the configuration element name for a given server such as \"Dhcp4\" or \"Dhcp6\"."
], ],
"cmd-syntax": [ "cmd-syntax": [
"{", "{",

View File

@ -18,11 +18,7 @@
" \"text\": \"stat-lease4-get: 2 rows found\",", " \"text\": \"stat-lease4-get: 2 rows found\",",
" \"arguments\": {", " \"arguments\": {",
" \"result-set\": {", " \"result-set\": {",
" \"columns\": [ \"subnet-id\",", " \"columns\": [ \"subnet-id\", \"total-addresses\", \"cumulative-assigned-addresses\", \"assigned-addresses\", \"declined-addresses\" ],",
" \"total-addresses\",",
" \"cumulative-assigned-addresses\",",
" \"assigned-addresses\",",
" \"declined-addresses\" ],",
" \"rows\": [", " \"rows\": [",
" [ 10, 256, 200, 111, 0 ],", " [ 10, 256, 200, 111, 0 ],",
" [ 20, 4098, 5000, 2034, 4 ]", " [ 20, 4098, 5000, 2034, 4 ]",

View File

@ -21,7 +21,7 @@
" \"text\": \"stat-lease6-get: 2 rows found\",", " \"text\": \"stat-lease6-get: 2 rows found\",",
" \"arguments\": {", " \"arguments\": {",
" \"result-set\": {", " \"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\": [", " \"rows\": [",
" [ 10, 4096, 3000, 2400, 3, 0, 0],", " [ 10, 4096, 3000, 2400, 3, 0, 0],",
" [ 20, 0, 0, 0, 1048, 500, 233 ],", " [ 20, 0, 0, 0, 1048, 500, 233 ],",

View File

@ -15,42 +15,637 @@
], ],
"resp-syntax": [ "resp-syntax": [
"{", "{",
" \"result\": 0,", " \"result\": 0,",
" \"arguments\": {", " \"arguments\": {",
" \"cumulative-assigned-addresses\": [ [ 0, \"2022-02-11 17:54:17.487569\" ] ],", " \"cumulative-assigned-addresses\": [",
" \"declined-addresses\": [ [ 0, \"2022-02-11 17:54:17.487555\" ] ],", " [",
" \"pkt4-ack-received\": [ [ 0, \"2022-02-11 17:54:17.455233\" ] ],", " 0,",
" \"pkt4-ack-sent\": [ [ 0, \"2022-02-11 17:54:17.455256\" ] ],", " \"2023-06-13 20:42:46.836166\"",
" \"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\" ] ],", " \"declined-addresses\": [",
" \"pkt4-nak-received\": [ [ 0, \"2022-02-11 17:54:17.455269\" ] ],", " [",
" \"pkt4-nak-sent\": [ [ 0, \"2022-02-11 17:54:17.455271\" ] ],", " 0,",
" \"pkt4-offer-received\": [ [ 0, \"2022-02-11 17:54:17.455274\" ] ],", " \"2023-06-13 20:42:46.836156\"",
" \"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-ack-received\": [",
" \"pkt4-received\": [ [ 0, \"2022-02-11 17:54:17.455287\" ] ],", " [",
" \"pkt4-release-received\": [ [ 0, \"2022-02-11 17:54:17.455290\" ] ],", " 0,",
" \"pkt4-request-received\": [ [ 0, \"2022-02-11 17:54:17.455293\" ] ],", " \"2023-06-13 20:42:46.616247\"",
" \"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\" ] ],", " \"pkt4-ack-sent\": [",
" \"reclaimed-leases\": [ [ 0, \"2022-02-11 17:54:17.487564\" ] ],", " [",
" \"subnet[1].assigned-addresses\": [ [ 0, \"2022-02-11 17:54:17.487579\" ] ],", " 0,",
" \"subnet[1].cumulative-assigned-addresses\": [ [ 0, \"2022-02-11 17:54:17.487528\" ] ],", " \"2023-06-13 20:42:46.616290\"",
" \"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\" ] ],", " \"pkt4-decline-received\": [",
" \"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\" ] ],", " 0,",
" \"v4-allocation-fail\": [ [ 0, \"2022-02-11 17:54:17.455302\" ] ],", " \"2023-06-13 20:42:46.616296\"",
" \"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\" ] ],", " \"pkt4-discover-received\": [",
" \"v4-allocation-fail-subnet\": [ [ 0, \"2022-02-11 17:54:17.455323\" ] ],", " [",
" \"v4-reservation-conflicts\": [ [ 0, \"2022-02-11 17:54:17.455330\" ] ]", " 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\"",
" ]",
" ]",
" }",
"}" "}"
], ],