"2023-06-13 20:42:46.616308"
]
],
+ "pkt4-limit-exceeded": [
+ [
+ 0,
+ "2023-06-13 20:42:46.616310"
+ ]
+ ],
"pkt4-nak-received": [
[
0,
"2023-06-13 21:28:57.177742"
]
],
+ "pkt6-limit-exceeded": [
+ [
+ 0,
+ "2023-06-13 21:28:57.177742"
+ ]
+ ],
"pkt6-not-for-us": [
[
0,
"2023-06-13 20:42:46.616308"
]
],
+ "pkt4-limit-exceeded": [
+ [
+ 0,
+ "2023-06-13 20:42:46.616310"
+ ]
+ ],
"pkt4-nak-received": [
[
0,
"2023-06-13 21:28:57.177742"
]
],
+ "pkt6-limit-exceeded": [
+ [
+ 0,
+ "2023-06-13 21:28:57.177742"
+ ]
+ ],
"pkt6-not-for-us": [
[
0,
#include <hooks/hooks.h>
#include <limits/configuration.h>
#include <limits/limits_logger.h>
+#include <stats/stats_mgr.h>
#include <util/dhcp_space.h>
#include <util/multi_threading_mgr.h>
common_client_classes.push_back(c.class_);
}
- if (handle.getStatus() != isc::hooks::CalloutHandle::NEXT_STEP_DROP) {
+ if (handle.getStatus() == isc::hooks::CalloutHandle::NEXT_STEP_DROP) {
+ isc::stats::StatsMgr& stats_mgr = isc::stats::StatsMgr::instance();
+ if (D == isc::util::DhcpSpace::DHCPv4) {
+ stats_mgr.addValue("pkt4-limit-exceeded",
+ static_cast<int64_t>(1));
+ stats_mgr.addValue("pkt4-receive-drop",
+ static_cast<int64_t>(1));
+ } else {
+ stats_mgr.addValue("pkt6-limit-exceeded",
+ static_cast<int64_t>(1));
+ stats_mgr.addValue("pkt6-receive-drop",
+ static_cast<int64_t>(1));
+ }
+ } else {
// Honor the packet and keep track of it.
for (auto const& c : common_client_classes) {
TimeSeries& time_series(clocked_in_times_by_class_.at(c));
.arg(subnet_id)
.arg(limit.text_);
+ isc::stats::StatsMgr& stats_mgr = isc::stats::StatsMgr::instance();
+ if (D == isc::util::DhcpSpace::DHCPv4) {
+ stats_mgr.addValue("pkt4-limit-exceeded",
+ static_cast<int64_t>(1));
+ stats_mgr.addValue("pkt4-receive-drop",
+ static_cast<int64_t>(1));
+ } else {
+ stats_mgr.addValue("pkt6-limit-exceeded",
+ static_cast<int64_t>(1));
+ stats_mgr.addValue("pkt6-receive-drop",
+ static_cast<int64_t>(1));
+ }
+
return (0);
}