]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3231] Log SOCKET RECEIVED TIME support
authorThomas Markwalder <tmark@isc.org>
Fri, 16 Feb 2024 20:17:20 +0000 (15:17 -0500)
committerThomas Markwalder <tmark@isc.org>
Tue, 20 Feb 2024 16:37:49 +0000 (11:37 -0500)
src/hooks/dhcp/perfmon/perfmon_callouts.cc
    dhcp4_srv_configured()
    dhcp6_srv_configured()
    - added to log socket received time support

src/hooks/dhcp/perfmon/perfmon_messages.mes
    PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT
    PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT
    - new messages

src/hooks/dhcp/perfmon/perfmon_callouts.cc
src/hooks/dhcp/perfmon/perfmon_messages.cc
src/hooks/dhcp/perfmon/perfmon_messages.h
src/hooks/dhcp/perfmon/perfmon_messages.mes

index 274176a40d09ae14ae1433fcfe277c84c2fe49a5..853ba1c6cfb916fbb54b1011c7918236f1551cb6 100644 (file)
@@ -24,6 +24,24 @@ using namespace isc::perfmon;
 
 extern "C" {
 
+int dhcp4_srv_configured(CalloutHandle& /* handle */) {
+    // We do this here rather than in load() to ensure we check after the
+    // filter has been determined.
+    LOG_DEBUG(perfmon_logger, DBGLVL_TRACE_BASIC,
+              PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT)
+              .arg(IfaceMgr::instance().isSocketReceivedTimeSupported() ? "Yes" : "No");
+    return (0);
+}
+
+int dhcp6_srv_configured(CalloutHandle& /* handle */) {
+    // We do this here rather than in load() to ensure we check after the
+    // filter has been determined.
+    LOG_DEBUG(perfmon_logger, DBGLVL_TRACE_BASIC,
+              PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT)
+              .arg(IfaceMgr::instance().isSocketReceivedTimeSupported() ? "Yes" : "No");
+    return (0);
+}
+
 /// @brief This callout is called at the "pkt4_send" hook.
 ///
 /// @param handle CalloutHandle which provides access to context.
index c937e748e23435f7de662b801e23d3b76152a5cb..1bb01f93ddd62e593d8de4f0d58892e396bc4741 100644 (file)
@@ -7,7 +7,9 @@
 extern const isc::log::MessageID PERFMON_DEINIT_FAILED = "PERFMON_DEINIT_FAILED";
 extern const isc::log::MessageID PERFMON_DEINIT_OK = "PERFMON_DEINIT_OK";
 extern const isc::log::MessageID PERFMON_DHCP4_PKT_EVENTS = "PERFMON_DHCP4_PKT_EVENTS";
+extern const isc::log::MessageID PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT = "PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT";
 extern const isc::log::MessageID PERFMON_DHCP6_PKT_EVENTS = "PERFMON_DHCP6_PKT_EVENTS";
+extern const isc::log::MessageID PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT = "PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT";
 extern const isc::log::MessageID PERFMON_INIT_FAILED = "PERFMON_INIT_FAILED";
 extern const isc::log::MessageID PERFMON_INIT_OK = "PERFMON_INIT_OK";
 
@@ -17,7 +19,9 @@ const char* values[] = {
     "PERFMON_DEINIT_FAILED", "unloading PerfMon hooks library failed: %1",
     "PERFMON_DEINIT_OK", "unloading PerfMon hooks library successful",
     "PERFMON_DHCP4_PKT_EVENTS", "query: %1 events=[%2]",
+    "PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT", "Kernel supports socket received time? %1",
     "PERFMON_DHCP6_PKT_EVENTS", "query: %1 events=[%2]",
+    "PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT", "Kernel supports socket received time? %1",
     "PERFMON_INIT_FAILED", "loading PerfMon hooks library failed: %1",
     "PERFMON_INIT_OK", "loading PerfMon hooks library successful",
     NULL
index 089c3da729510d20a434ce7eb9eca3179e436d82..3fcb2130985ba25e76fdf36f1d7cd5d24411e163 100644 (file)
@@ -8,7 +8,9 @@
 extern const isc::log::MessageID PERFMON_DEINIT_FAILED;
 extern const isc::log::MessageID PERFMON_DEINIT_OK;
 extern const isc::log::MessageID PERFMON_DHCP4_PKT_EVENTS;
+extern const isc::log::MessageID PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT;
 extern const isc::log::MessageID PERFMON_DHCP6_PKT_EVENTS;
+extern const isc::log::MessageID PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT;
 extern const isc::log::MessageID PERFMON_INIT_FAILED;
 extern const isc::log::MessageID PERFMON_INIT_OK;
 
index 72da317f1559ea440d24c85be3e7facb35ea023a..37157d0a12f4f100806b73e9b73907f673700907 100644 (file)
@@ -19,7 +19,24 @@ This info message indicates that the PerfMon hooks library has been
 loaded successfully. Enjoy!
 
 % PERFMON_DHCP4_PKT_EVENTS query: %1 events=[%2]
-The debug message is emitted after an inbound DHCPv4 query has been
+This debug message is emitted after an inbound DHCPv4 query has been
+processed, the arguments are the query label and the dump of the
+query's packet event stack.
+
+% PERFMON_DHCP4_SOCKET_RECEIVED_TIME_SUPPORT Kernel supports socket received time? %1
+This debug message is emitted after a (re)configuration and indicates
+whether or not the packet filter being used by kea-dhcp4 can supply
+the timestamp a packet was received by the kernel for recording
+SOCKET_RECEIVED events. If it does not, perfmon will still function but
+will not have data available to determine kernel buffer wait times.
+
+% PERFMON_DHCP6_SOCKET_RECEIVED_TIME_SUPPORT Kernel supports socket received time? %1
+This debug message is emitted after a (re)configuration and indicates
+whether or not the packet filter being used by kea-dhcp6 can supply
+the timestamp a packet was received by the kernel for recording
+SOCKET_RECEIVED events. If it does not, perfmon will still function but
+will not have data available to determine kernel buffer wait times.
+
 processed, the arguments are the query label and the dump of the
 query's packet event stack.