mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 14:35:29 +00:00
[#145] addressed review comments
This commit is contained in:
26
ChangeLog
26
ChangeLog
@@ -1,3 +1,29 @@
|
|||||||
|
2143. [func] razvan
|
||||||
|
Added v4 statistic counters per pool:
|
||||||
|
subnet[id].pool[id].assigned-addresses
|
||||||
|
subnet[id].pool[id].cumulative-assigned-addresses
|
||||||
|
subnet[id].pool[id].declined-addresses
|
||||||
|
subnet[id].pool[id].reclaimed-declined-addresses
|
||||||
|
subnet[id].pool[id].reclaimed-leases
|
||||||
|
subnet[id].pool[id].total-addresses
|
||||||
|
Added v6 statistic counters per pool:
|
||||||
|
subnet[id].pool[id].assigned-nas
|
||||||
|
subnet[id].pd-pool[id].assigned-pds
|
||||||
|
subnet[id].pool[id].cumulative-assigned-nas
|
||||||
|
subnet[id].pd-pool[id].cumulative-assigned-pds
|
||||||
|
subnet[id].pool[id].declined-addresses
|
||||||
|
subnet[id].pool[id].reclaimed-declined-addresses
|
||||||
|
subnet[id].pool[id].reclaimed-leases
|
||||||
|
subnet[id].pd-pool[id].reclaimed-leases
|
||||||
|
subnet[id].pool[id].total-nas
|
||||||
|
subnet[id].pd-pool[id].total-pds
|
||||||
|
Counters are stored in the lease storage and after schema
|
||||||
|
upgrade all existing leases are considered to be part of pool
|
||||||
|
ID 0. On lease update, the counters will be updated accordingly
|
||||||
|
including pool IDs and statistics will converge to real values
|
||||||
|
over time.
|
||||||
|
(Gitlab #145)
|
||||||
|
|
||||||
2142. [func] piotrek
|
2142. [func] piotrek
|
||||||
New command option was added to perfdhcp: --or.
|
New command option was added to perfdhcp: --or.
|
||||||
It allows to insert extra option(s) to relayed DHCPv6 message
|
It allows to insert extra option(s) to relayed DHCPv6 message
|
||||||
|
@@ -82,7 +82,26 @@ const uint8_t MAX_IDENTIFIER_TYPE = static_cast<uint8_t>(Host::LAST_IDENTIFIER_T
|
|||||||
/// of 0 to null before inserting a host to the database.
|
/// of 0 to null before inserting a host to the database.
|
||||||
class MySqlHostExchange {
|
class MySqlHostExchange {
|
||||||
private:
|
private:
|
||||||
|
/// @brief Column numbers for each column in the hosts table.
|
||||||
|
/// These are used for both retrieving data and for looking up
|
||||||
|
/// column labels for logging. Note that their numeric order
|
||||||
|
/// MUST match that of the column order in the hosts table.
|
||||||
|
//@{
|
||||||
|
static const size_t HOST_ID_COL = 0;
|
||||||
|
static const size_t DHCP_IDENTIFIER_COL = 1;
|
||||||
|
static const size_t DHCP_IDENTIFIER_TYPE_COL = 2;
|
||||||
|
static const size_t DHCP4_SUBNET_ID_COL = 3;
|
||||||
|
static const size_t DHCP6_SUBNET_ID_COL = 4;
|
||||||
|
static const size_t IPV4_ADDRESS_COL = 5;
|
||||||
|
static const size_t HOSTNAME_COL = 6;
|
||||||
|
static const size_t DHCP4_CLIENT_CLASSES_COL = 7;
|
||||||
|
static const size_t DHCP6_CLIENT_CLASSES_COL = 8;
|
||||||
|
static const size_t USER_CONTEXT_COL = 9;
|
||||||
|
static const size_t DHCP4_NEXT_SERVER_COL = 10;
|
||||||
|
static const size_t DHCP4_SERVER_HOSTNAME_COL = 11;
|
||||||
|
static const size_t DHCP4_BOOT_FILE_NAME_COL = 12;
|
||||||
|
static const size_t AUTH_KEY_COL = 13;
|
||||||
|
//@}
|
||||||
/// @brief Number of columns returned for SELECT queries sent by this class.
|
/// @brief Number of columns returned for SELECT queries sent by this class.
|
||||||
static const size_t HOST_COLUMNS = 14;
|
static const size_t HOST_COLUMNS = 14;
|
||||||
|
|
||||||
@@ -132,20 +151,20 @@ public:
|
|||||||
// Set the column names for use by this class. This only comprises
|
// Set the column names for use by this class. This only comprises
|
||||||
// names used by the MySqlHostExchange class. Derived classes will
|
// names used by the MySqlHostExchange class. Derived classes will
|
||||||
// need to set names for the columns they use.
|
// need to set names for the columns they use.
|
||||||
columns_[0] = "host_id";
|
columns_[HOST_ID_COL] = "host_id";
|
||||||
columns_[1] = "dhcp_identifier";
|
columns_[DHCP_IDENTIFIER_COL] = "dhcp_identifier";
|
||||||
columns_[2] = "dhcp_identifier_type";
|
columns_[DHCP_IDENTIFIER_TYPE_COL] = "dhcp_identifier_type";
|
||||||
columns_[3] = "dhcp4_subnet_id";
|
columns_[DHCP4_SUBNET_ID_COL] = "dhcp4_subnet_id";
|
||||||
columns_[4] = "dhcp6_subnet_id";
|
columns_[DHCP6_SUBNET_ID_COL] = "dhcp6_subnet_id";
|
||||||
columns_[5] = "ipv4_address";
|
columns_[IPV4_ADDRESS_COL] = "ipv4_address";
|
||||||
columns_[6] = "hostname";
|
columns_[HOSTNAME_COL] = "hostname";
|
||||||
columns_[7] = "dhcp4_client_classes";
|
columns_[DHCP4_CLIENT_CLASSES_COL] = "dhcp4_client_classes";
|
||||||
columns_[8] = "dhcp6_client_classes";
|
columns_[DHCP6_CLIENT_CLASSES_COL] = "dhcp6_client_classes";
|
||||||
columns_[9] = "user_context";
|
columns_[USER_CONTEXT_COL] = "user_context";
|
||||||
columns_[10] = "dhcp4_next_server";
|
columns_[DHCP4_NEXT_SERVER_COL] = "dhcp4_next_server";
|
||||||
columns_[11] = "dhcp4_server_hostname";
|
columns_[DHCP4_SERVER_HOSTNAME_COL] = "dhcp4_server_hostname";
|
||||||
columns_[12] = "dhcp4_boot_file_name";
|
columns_[DHCP4_BOOT_FILE_NAME_COL] = "dhcp4_boot_file_name";
|
||||||
columns_[13] = "auth_key";
|
columns_[AUTH_KEY_COL] = "auth_key";
|
||||||
|
|
||||||
BOOST_STATIC_ASSERT(13 < HOST_COLUMNS);
|
BOOST_STATIC_ASSERT(13 < HOST_COLUMNS);
|
||||||
};
|
};
|
||||||
@@ -1630,6 +1649,7 @@ public:
|
|||||||
columns_[2] = "prefix_len";
|
columns_[2] = "prefix_len";
|
||||||
columns_[3] = "type";
|
columns_[3] = "type";
|
||||||
columns_[4] = "dhcp6_iaid";
|
columns_[4] = "dhcp6_iaid";
|
||||||
|
|
||||||
BOOST_STATIC_ASSERT(4 < RESRV_COLUMNS);
|
BOOST_STATIC_ASSERT(4 < RESRV_COLUMNS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1761,6 +1781,16 @@ private:
|
|||||||
class MySqlOptionExchange {
|
class MySqlOptionExchange {
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
static const size_t OPTION_ID_COL = 0;
|
||||||
|
static const size_t CODE_COL = 1;
|
||||||
|
static const size_t VALUE_COL = 2;
|
||||||
|
static const size_t FORMATTED_VALUE_COL = 3;
|
||||||
|
static const size_t SPACE_COL = 4;
|
||||||
|
static const size_t PERSISTENT_COL = 5;
|
||||||
|
static const size_t CANCELLED_COL = 6;
|
||||||
|
static const size_t USER_CONTEXT_COL = 7;
|
||||||
|
static const size_t DHCP_SUBNET_ID_COL = 8;
|
||||||
|
static const size_t HOST_ID_COL = 9;
|
||||||
/// @brief Number of columns in the option tables holding bindable values.
|
/// @brief Number of columns in the option tables holding bindable values.
|
||||||
static const size_t OPTION_COLUMNS = 10;
|
static const size_t OPTION_COLUMNS = 10;
|
||||||
|
|
||||||
|
@@ -91,20 +91,20 @@ private:
|
|||||||
/// These are used for both retrieving data and for looking up
|
/// These are used for both retrieving data and for looking up
|
||||||
/// column labels for logging. Note that their numeric order
|
/// column labels for logging. Note that their numeric order
|
||||||
/// MUST match that of the column order in the hosts table.
|
/// MUST match that of the column order in the hosts table.
|
||||||
static const int HOST_ID_COL = 0;
|
static const size_t HOST_ID_COL = 0;
|
||||||
static const int DHCP_IDENTIFIER_COL = 1;
|
static const size_t DHCP_IDENTIFIER_COL = 1;
|
||||||
static const int DHCP_IDENTIFIER_TYPE_COL = 2;
|
static const size_t DHCP_IDENTIFIER_TYPE_COL = 2;
|
||||||
static const int DHCP4_SUBNET_ID_COL = 3;
|
static const size_t DHCP4_SUBNET_ID_COL = 3;
|
||||||
static const int DHCP6_SUBNET_ID_COL = 4;
|
static const size_t DHCP6_SUBNET_ID_COL = 4;
|
||||||
static const int IPV4_ADDRESS_COL = 5;
|
static const size_t IPV4_ADDRESS_COL = 5;
|
||||||
static const int HOSTNAME_COL = 6;
|
static const size_t HOSTNAME_COL = 6;
|
||||||
static const int DHCP4_CLIENT_CLASSES_COL = 7;
|
static const size_t DHCP4_CLIENT_CLASSES_COL = 7;
|
||||||
static const int DHCP6_CLIENT_CLASSES_COL = 8;
|
static const size_t DHCP6_CLIENT_CLASSES_COL = 8;
|
||||||
static const int USER_CONTEXT_COL = 9;
|
static const size_t USER_CONTEXT_COL = 9;
|
||||||
static const int DHCP4_NEXT_SERVER_COL = 10;
|
static const size_t DHCP4_NEXT_SERVER_COL = 10;
|
||||||
static const int DHCP4_SERVER_HOSTNAME_COL = 11;
|
static const size_t DHCP4_SERVER_HOSTNAME_COL = 11;
|
||||||
static const int DHCP4_BOOT_FILE_NAME_COL = 12;
|
static const size_t DHCP4_BOOT_FILE_NAME_COL = 12;
|
||||||
static const int AUTH_KEY_COL = 13;
|
static const size_t AUTH_KEY_COL = 13;
|
||||||
/// @brief Number of columns returned for SELECT queries sent by this class.
|
/// @brief Number of columns returned for SELECT queries sent by this class.
|
||||||
static const size_t HOST_COLUMNS = 14;
|
static const size_t HOST_COLUMNS = 14;
|
||||||
|
|
||||||
@@ -1095,6 +1095,7 @@ public:
|
|||||||
columns_[2] = "prefix_len";
|
columns_[2] = "prefix_len";
|
||||||
columns_[3] = "type";
|
columns_[3] = "type";
|
||||||
columns_[4] = "dhcp6_iaid";
|
columns_[4] = "dhcp6_iaid";
|
||||||
|
|
||||||
BOOST_STATIC_ASSERT(5 < RESRV_COLUMNS);
|
BOOST_STATIC_ASSERT(5 < RESRV_COLUMNS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1168,20 +1169,18 @@ private:
|
|||||||
class PgSqlOptionExchange : public PgSqlExchange {
|
class PgSqlOptionExchange : public PgSqlExchange {
|
||||||
private:
|
private:
|
||||||
|
|
||||||
static const int OPTION_ID_COL = 0;
|
static const size_t OPTION_ID_COL = 0;
|
||||||
static const int CODE_COL = 1;
|
static const size_t CODE_COL = 1;
|
||||||
static const int VALUE_COL = 2;
|
static const size_t VALUE_COL = 2;
|
||||||
static const int FORMATTED_VALUE_COL = 3;
|
static const size_t FORMATTED_VALUE_COL = 3;
|
||||||
static const int SPACE_COL = 4;
|
static const size_t SPACE_COL = 4;
|
||||||
static const int PERSISTENT_COL = 5;
|
static const size_t PERSISTENT_COL = 5;
|
||||||
static const int CANCELLED_COL = 6;
|
static const size_t CANCELLED_COL = 6;
|
||||||
static const int USER_CONTEXT_COL = 7;
|
static const size_t USER_CONTEXT_COL = 7;
|
||||||
static const int DHCP_CLIENT_CLASS_COL = 8;
|
static const size_t DHCP_SUBNET_ID_COL = 8;
|
||||||
static const int DHCP_SUBNET_ID_COL = 9;
|
static const size_t HOST_ID_COL = 9;
|
||||||
static const int HOST_ID_COL = 10;
|
|
||||||
|
|
||||||
/// @brief Number of columns in the option tables holding bindable values.
|
/// @brief Number of columns in the option tables holding bindable values.
|
||||||
static const size_t OPTION_COLUMNS = 11;
|
static const size_t OPTION_COLUMNS = 10;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -1197,11 +1196,10 @@ public:
|
|||||||
columns_[PERSISTENT_COL] = "persistent";
|
columns_[PERSISTENT_COL] = "persistent";
|
||||||
columns_[CANCELLED_COL] = "cancelled";
|
columns_[CANCELLED_COL] = "cancelled";
|
||||||
columns_[USER_CONTEXT_COL] = "user_context";
|
columns_[USER_CONTEXT_COL] = "user_context";
|
||||||
columns_[DHCP_CLIENT_CLASS_COL] = "dhcp_client_class";
|
|
||||||
columns_[DHCP_SUBNET_ID_COL] = "dhcp_subnet_id";
|
columns_[DHCP_SUBNET_ID_COL] = "dhcp_subnet_id";
|
||||||
columns_[HOST_ID_COL] = "host_id";
|
columns_[HOST_ID_COL] = "host_id";
|
||||||
|
|
||||||
BOOST_STATIC_ASSERT(11 <= OPTION_COLUMNS);
|
BOOST_STATIC_ASSERT(10 <= OPTION_COLUMNS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @brief Creates binding array to insert option data into database.
|
/// @brief Creates binding array to insert option data into database.
|
||||||
|
Reference in New Issue
Block a user