This is an automated email from the ASF dual-hosted git repository.

wkaras pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 55f6901951 Remove deprecated debug output functions from 21 source 
files. (#9683)
55f6901951 is described below

commit 55f6901951c9267aab2029ac8e2422e895e8dbb0
Author: Walt Karas <[email protected]>
AuthorDate: Wed Sep 13 10:00:16 2023 -0400

    Remove deprecated debug output functions from 21 source files. (#9683)
---
 iocore/net/NetHandler.h           |   3 +
 iocore/net/P_Net.h                |   4 +-
 iocore/net/P_NetAccept.h          |   6 +-
 iocore/net/P_SNIActionPerformer.h |  15 ++-
 iocore/net/P_UDPNet.h             |   9 +-
 iocore/net/P_UnixNet.h            |   6 +-
 iocore/net/P_UnixNetVConnection.h |  13 +-
 iocore/net/PollCont.cc            |  23 +++-
 iocore/net/QUICNetProcessor.cc    |  21 ++-
 iocore/net/QUICPacketHandler.cc   |  35 ++---
 iocore/net/SNIActionPerformer.cc  |  12 +-
 iocore/net/SNIActionPerformer.h   |   4 +
 iocore/net/SSLDiags.h             |   8 +-
 iocore/net/SSLNetVConnection.cc   | 276 ++++++++++++++++++++------------------
 iocore/net/SSLSNIConfig.cc        |   9 +-
 iocore/net/TLSSNISupport.cc       |  11 +-
 iocore/net/UnixNet.cc             |  30 +++--
 iocore/net/UnixNetAccept.cc       |  15 ++-
 iocore/net/UnixNetProcessor.cc    |  28 ++--
 iocore/net/UnixUDPConnection.cc   |  11 +-
 iocore/net/UnixUDPNet.cc          | 104 +++++++-------
 21 files changed, 376 insertions(+), 267 deletions(-)

diff --git a/iocore/net/NetHandler.h b/iocore/net/NetHandler.h
index 9103aeabd3..d218d8ccc6 100644
--- a/iocore/net/NetHandler.h
+++ b/iocore/net/NetHandler.h
@@ -223,6 +223,9 @@ public:
 
   NetHandler();
 
+  inline static DbgCtl dbg_ctl_socket{"socket"};
+  inline static DbgCtl dbg_ctl_iocore_net{"iocore_net"};
+
 private:
   void _close_ne(NetEvent *ne, ink_hrtime now, int &handle_event, int &closed, 
int &total_idle_time, int &total_idle_count);
 
diff --git a/iocore/net/P_Net.h b/iocore/net/P_Net.h
index 09c2fa1251..7516b106cd 100644
--- a/iocore/net/P_Net.h
+++ b/iocore/net/P_Net.h
@@ -108,9 +108,9 @@ static constexpr ts::ModuleVersion 
NET_SYSTEM_MODULE_INTERNAL_VERSION(NET_SYSTEM
 
 // For very verbose iocore debugging.
 #ifndef DEBUG
-#define NetDebug(tag, fmt, ...)
+#define NetDbg(dbg_ctl, fmt, ...)
 #else
-#define NetDebug(tag, fmt, ...) Debug(tag, fmt, ##__VA_ARGS__)
+#define NetDbg(dbg_ctl, fmt, ...) Dbg(dbg_ctl, fmt, ##__VA_ARGS__)
 #endif
 
 /// Default amount of buffer space to use for the initial read on an incoming 
connection.
diff --git a/iocore/net/P_NetAccept.h b/iocore/net/P_NetAccept.h
index ddeeb8b5af..f44c70b517 100644
--- a/iocore/net/P_NetAccept.h
+++ b/iocore/net/P_NetAccept.h
@@ -76,7 +76,11 @@ struct NetAcceptAction : public Action, public RefCountObj {
     return Action::operator=(acont);
   }
 
-  ~NetAcceptAction() override { Debug("net_accept", "NetAcceptAction dying"); }
+  ~NetAcceptAction() override
+  {
+    static DbgCtl dbg_ctl{"net_accept"};
+    Dbg(dbg_ctl, "NetAcceptAction dying");
+  }
 };
 
 //
diff --git a/iocore/net/P_SNIActionPerformer.h 
b/iocore/net/P_SNIActionPerformer.h
index 88790cab80..cdfb39de7e 100644
--- a/iocore/net/P_SNIActionPerformer.h
+++ b/iocore/net/P_SNIActionPerformer.h
@@ -75,10 +75,10 @@ public:
     if (ssl_vc) {
       if (!enable_h2) {
         ssl_vc->disableProtocol(TS_ALPN_PROTOCOL_INDEX_HTTP_2_0);
-        Debug("ssl_sni", "H2 disabled, fqdn [%s]", servername);
+        Dbg(dbg_ctl_ssl_sni, "H2 disabled, fqdn [%s]", servername);
       } else {
         ssl_vc->enableProtocol(TS_ALPN_PROTOCOL_INDEX_HTTP_2_0);
-        Debug("ssl_sni", "H2 enabled, fqdn [%s]", servername);
+        Dbg(dbg_ctl_ssl_sni, "H2 enabled, fqdn [%s]", servername);
       }
     }
     return SSL_TLSEXT_ERR_OK;
@@ -179,7 +179,7 @@ public:
     if (ssl_netvc) {
       if (fnArrIndexes.empty()) {
         ssl_netvc->set_tunnel_destination(destination, type, 
!TLSTunnelSupport::PORT_IS_DYNAMIC, tunnel_prewarm);
-        Debug("ssl_sni", "Destination now is [%s], fqdn [%s]", 
destination.c_str(), servername);
+        Dbg(dbg_ctl_ssl_sni, "Destination now is [%s], fqdn [%s]", 
destination.c_str(), servername);
       } else {
         bool port_is_dynamic = false;
         auto fixed_dst{destination};
@@ -189,7 +189,8 @@ public:
           fixed_dst = fix_destination[fnArrIndex](fixed_dst, var_start_pos, 
ctx, ssl_netvc, port_is_dynamic);
         }
         ssl_netvc->set_tunnel_destination(fixed_dst, type, port_is_dynamic, 
tunnel_prewarm);
-        Debug("ssl_sni", "Destination now is [%s], configured [%s], fqdn 
[%s]", fixed_dst.c_str(), destination.c_str(), servername);
+        Dbg(dbg_ctl_ssl_sni, "Destination now is [%s], configured [%s], fqdn 
[%s]", fixed_dst.c_str(), destination.c_str(),
+            servername);
       }
 
       if (type == SNIRoutingType::BLIND) {
@@ -320,7 +321,7 @@ public:
   {
     auto ssl_vc            = dynamic_cast<SSLNetVConnection *>(snis);
     const char *servername = snis->get_sni_server_name();
-    Debug("ssl_sni", "action verify param %d, fqdn [%s]", this->mode, 
servername);
+    Dbg(dbg_ctl_ssl_sni, "action verify param %d, fqdn [%s]", this->mode, 
servername);
     setClientCertLevel(ssl_vc->ssl, this->mode);
     ssl_vc->set_ca_cert_file(ca_file, ca_dir);
     setClientCertCACerts(ssl_vc->ssl, ssl_vc->get_ca_cert_file(), 
ssl_vc->get_ca_cert_dir());
@@ -388,7 +389,7 @@ public:
   {
     if (this->min_ver >= 0 || this->max_ver >= 0) {
       const char *servername = snis->get_sni_server_name();
-      Debug("ssl_sni", "TLSValidProtocol min=%d, max=%d, fqdn [%s]", 
this->min_ver, this->max_ver, servername);
+      Dbg(dbg_ctl_ssl_sni, "TLSValidProtocol min=%d, max=%d, fqdn [%s]", 
this->min_ver, this->max_ver, servername);
       auto ssl_vc = dynamic_cast<SSLNetVConnection *>(snis);
       ssl_vc->set_valid_tls_version_min(this->min_ver);
       ssl_vc->set_valid_tls_version_max(this->max_ver);
@@ -396,7 +397,7 @@ public:
       if (!unset) {
         auto ssl_vc            = dynamic_cast<SSLNetVConnection *>(snis);
         const char *servername = snis->get_sni_server_name();
-        Debug("ssl_sni", "TLSValidProtocol param 0%x, fqdn [%s]", 
static_cast<unsigned int>(this->protocol_mask), servername);
+        Dbg(dbg_ctl_ssl_sni, "TLSValidProtocol param 0%x, fqdn [%s]", 
static_cast<unsigned int>(this->protocol_mask), servername);
         ssl_vc->set_valid_tls_protocols(protocol_mask, 
TLSValidProtocols::max_mask);
         Warning("valid_tls_versions_in is deprecated. Use 
valid_tls_version_min_in and ivalid_tls_version_max_in instead.");
       }
diff --git a/iocore/net/P_UDPNet.h b/iocore/net/P_UDPNet.h
index 190dad4292..ca97e5788d 100644
--- a/iocore/net/P_UDPNet.h
+++ b/iocore/net/P_UDPNet.h
@@ -231,9 +231,12 @@ public:
       }
     }
 
-    if (s != now_slot)
-      Debug("v_udpnet-service", "Advancing by (%d slots): behind by %" PRId64 
" ms", s - now_slot,
-            ink_hrtime_to_msec(t - delivery_time[now_slot]));
+    if (s != now_slot) {
+      static DbgCtl dbg_ctl{"v_udpnet-service"};
+      Dbg(dbg_ctl, "Advancing by (%d slots): behind by %" PRId64 " ms", s - 
now_slot,
+          ink_hrtime_to_msec(t - delivery_time[now_slot]));
+    }
+
     now_slot = s;
   }
 
diff --git a/iocore/net/P_UnixNet.h b/iocore/net/P_UnixNet.h
index 36e8b78623..6dce358cc2 100644
--- a/iocore/net/P_UnixNet.h
+++ b/iocore/net/P_UnixNet.h
@@ -232,7 +232,8 @@ read_disable(NetHandler *nh, NetEvent *ne)
     // Clear the next scheduled inactivity time, but don't clear 
inactivity_timeout_in,
     // so the current timeout is used when the NetEvent is reenabled and not 
the default inactivity timeout
     ne->next_inactivity_timeout_at = 0;
-    Debug("socket", "read_disable updating inactivity_at %" PRId64 ", 
NetEvent=%p", ne->next_inactivity_timeout_at, ne);
+    Dbg(NetHandler::dbg_ctl_socket, "read_disable updating inactivity_at %" 
PRId64 ", NetEvent=%p", ne->next_inactivity_timeout_at,
+        ne);
   }
   ne->read.enabled = 0;
   nh->read_ready_list.remove(ne);
@@ -255,7 +256,8 @@ write_disable(NetHandler *nh, NetEvent *ne)
     // Clear the next scheduled inactivity time, but don't clear 
inactivity_timeout_in,
     // so the current timeout is used when the NetEvent is reenabled and not 
the default inactivity timeout
     ne->next_inactivity_timeout_at = 0;
-    Debug("socket", "write_disable updating inactivity_at %" PRId64 ", 
NetEvent=%p", ne->next_inactivity_timeout_at, ne);
+    Dbg(NetHandler::dbg_ctl_socket, "write_disable updating inactivity_at %" 
PRId64 ", NetEvent=%p", ne->next_inactivity_timeout_at,
+        ne);
   }
   ne->write.enabled = 0;
   nh->write_ready_list.remove(ne);
diff --git a/iocore/net/P_UnixNetVConnection.h 
b/iocore/net/P_UnixNetVConnection.h
index f978c9e2dc..f453d01494 100644
--- a/iocore/net/P_UnixNetVConnection.h
+++ b/iocore/net/P_UnixNetVConnection.h
@@ -228,6 +228,9 @@ public:
 private:
   virtual void *_prepareForMigration();
   virtual NetProcessor *_getNetProcessor();
+
+  inline static DbgCtl _dbg_ctl_socket{"socket"};
+  inline static DbgCtl _dbg_ctl_socket_mptcp{"socket_mptcp"};
 };
 
 extern ClassAllocator<UnixNetVConnection> netVCAllocator;
@@ -268,10 +271,10 @@ UnixNetVConnection::set_mptcp_state()
   int mptcp_enabled_size = sizeof(mptcp_enabled);
 
   if (0 == safe_getsockopt(con.fd, IPPROTO_TCP, MPTCP_ENABLED, (char 
*)&mptcp_enabled, &mptcp_enabled_size)) {
-    Debug("socket_mptcp", "MPTCP socket state: %d", mptcp_enabled);
+    Dbg(_dbg_ctl_socket_mptcp, "MPTCP socket state: %d", mptcp_enabled);
     mptcp_state = mptcp_enabled > 0 ? true : false;
   } else {
-    Debug("socket_mptcp", "MPTCP failed getsockopt(): %s", strerror(errno));
+    Dbg(_dbg_ctl_socket_mptcp, "MPTCP failed getsockopt(): %s", 
strerror(errno));
   }
 }
 
@@ -290,7 +293,7 @@ UnixNetVConnection::get_inactivity_timeout()
 inline void
 UnixNetVConnection::set_active_timeout(ink_hrtime timeout_in)
 {
-  Debug("socket", "Set active timeout=%" PRId64 ", NetVC=%p", timeout_in, 
this);
+  Dbg(_dbg_ctl_socket, "Set active timeout=%" PRId64 ", NetVC=%p", timeout_in, 
this);
   active_timeout_in        = timeout_in;
   next_activity_timeout_at = (active_timeout_in > 0) ? ink_get_hrtime() + 
timeout_in : 0;
 }
@@ -298,7 +301,7 @@ UnixNetVConnection::set_active_timeout(ink_hrtime 
timeout_in)
 inline void
 UnixNetVConnection::cancel_inactivity_timeout()
 {
-  Debug("socket", "Cancel inactive timeout for NetVC=%p", this);
+  Dbg(_dbg_ctl_socket, "Cancel inactive timeout for NetVC=%p", this);
   inactivity_timeout_in      = 0;
   next_inactivity_timeout_at = 0;
 }
@@ -306,7 +309,7 @@ UnixNetVConnection::cancel_inactivity_timeout()
 inline void
 UnixNetVConnection::cancel_active_timeout()
 {
-  Debug("socket", "Cancel active timeout for NetVC=%p", this);
+  Dbg(_dbg_ctl_socket, "Cancel active timeout for NetVC=%p", this);
   active_timeout_in        = 0;
   next_activity_timeout_at = 0;
 }
diff --git a/iocore/net/PollCont.cc b/iocore/net/PollCont.cc
index 66fab48b42..e08109c44d 100644
--- a/iocore/net/PollCont.cc
+++ b/iocore/net/PollCont.cc
@@ -25,6 +25,16 @@
 #include "PollCont.h"
 #include "P_Net.h"
 
+namespace
+{
+#ifdef DEBUG
+
+DbgCtl dbg_ctl_iocore_net_poll{"iocore_net_poll"};
+DbgCtl dbg_ctl_v_iocore_net_poll{"v_iocore_net_poll"};
+
+#endif
+} // end anonymous namespace
+
 PollCont::PollCont(Ptr<ProxyMutex> &m, int pt)
   : Continuation(m.get()), net_handler(nullptr), nextPollDescriptor(nullptr), 
poll_timeout(pt)
 {
@@ -66,9 +76,8 @@ PollCont::do_poll(ink_hrtime timeout)
      * read or write) that need processing [ebalsa] */
     if (likely(!net_handler->read_ready_list.empty() || 
!net_handler->write_ready_list.empty() ||
                !net_handler->read_enable_list.empty() || 
!net_handler->write_enable_list.empty())) {
-      NetDebug("iocore_net_poll", "rrq: %d, wrq: %d, rel: %d, wel: %d", 
net_handler->read_ready_list.empty(),
-               net_handler->write_ready_list.empty(), 
net_handler->read_enable_list.empty(),
-               net_handler->write_enable_list.empty());
+      NetDbg(dbg_ctl_iocore_net_poll, "rrq: %d, wrq: %d, rel: %d, wel: %d", 
net_handler->read_ready_list.empty(),
+             net_handler->write_ready_list.empty(), 
net_handler->read_enable_list.empty(), net_handler->write_enable_list.empty());
       poll_timeout = 0; // poll immediately returns -- we have triggered stuff
                         // to process right now
     } else if (timeout >= 0) {
@@ -81,15 +90,15 @@ PollCont::do_poll(ink_hrtime timeout)
 #if TS_USE_EPOLL
   pollDescriptor->result =
     epoll_wait(pollDescriptor->epoll_fd, 
pollDescriptor->ePoll_Triggered_Events, POLL_DESCRIPTOR_SIZE, poll_timeout);
-  NetDebug("v_iocore_net_poll", "[PollCont::pollEvent] epoll_fd: %d, timeout: 
%d, results: %d", pollDescriptor->epoll_fd,
-           poll_timeout, pollDescriptor->result);
+  NetDbg(dbg_ctl_v_iocore_net_poll, "[PollCont::pollEvent] epoll_fd: %d, 
timeout: %d, results: %d", pollDescriptor->epoll_fd,
+         poll_timeout, pollDescriptor->result);
 #elif TS_USE_KQUEUE
   struct timespec tv;
   tv.tv_sec  = poll_timeout / 1000;
   tv.tv_nsec = 1000000 * (poll_timeout % 1000);
   pollDescriptor->result =
     kevent(pollDescriptor->kqueue_fd, nullptr, 0, 
pollDescriptor->kq_Triggered_Events, POLL_DESCRIPTOR_SIZE, &tv);
-  NetDebug("v_iocore_net_poll", "[PollCont::pollEvent] kqueue_fd: %d, timeout: 
%d, results: %d", pollDescriptor->kqueue_fd,
-           poll_timeout, pollDescriptor->result);
+  NetDbg(dbg_ctl_v_iocore_net_poll, "[PollCont::pollEvent] kqueue_fd: %d, 
timeout: %d, results: %d", pollDescriptor->kqueue_fd,
+         poll_timeout, pollDescriptor->result);
 #endif
 }
diff --git a/iocore/net/QUICNetProcessor.cc b/iocore/net/QUICNetProcessor.cc
index f13fe3c3b3..5235b248bd 100644
--- a/iocore/net/QUICNetProcessor.cc
+++ b/iocore/net/QUICNetProcessor.cc
@@ -39,6 +39,15 @@
 
 QUICNetProcessor quic_NetProcessor;
 
+namespace
+{
+
+DbgCtl dbg_ctl_quic_ps{"quic_ps"};
+DbgCtl dbg_ctl_udpnet{"udpnet"};
+DbgCtl dbg_ctl_iocore_net_processor{"iocore_net_processor"};
+
+} // end anonymous namespace
+
 QUICNetProcessor::QUICNetProcessor() {}
 
 QUICNetProcessor::~QUICNetProcessor()
@@ -68,7 +77,7 @@ QUICNetProcessor::start(int, size_t stacksize)
 
 #ifdef TLS1_3_VERSION_DRAFT_TXT
   // FIXME: remove this when TLS1_3_VERSION_DRAFT_TXT is removed
-  Debug("quic_ps", "%s", TLS1_3_VERSION_DRAFT_TXT);
+  Dbg(dbg_ctl_quick_ps, "%s", TLS1_3_VERSION_DRAFT_TXT);
 #endif
 
   return 0;
@@ -107,7 +116,7 @@ QUICNetProcessor::allocate_vc(EThread *t)
 Action *
 QUICNetProcessor::connect_re(Continuation *cont, sockaddr const *remote_addr, 
NetVCOptions const &opt)
 {
-  Debug("quic_ps", "connect to server");
+  Dbg(dbg_ctl_quick_ps, "connect to server");
   EThread *t = cont->mutex->thread_holding;
   ink_assert(t);
   QUICNetVConnection *vc = static_cast<QUICNetVConnection 
*>(this->allocate_vc(t));
@@ -124,7 +133,7 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
 
   // Setup UDPConnection
   UnixUDPConnection *con = new UnixUDPConnection(fd);
-  Debug("quic_ps", "con=%p fd=%d", con, fd);
+  Dbg(dbg_ctl_quick_ps, "con=%p fd=%d", con, fd);
 
   this->_rtable                        = new QUICResetTokenTable();
   QUICPacketHandlerOut *packet_handler = new 
QUICPacketHandlerOut(*this->_rtable);
@@ -139,7 +148,7 @@ QUICNetProcessor::connect_re(Continuation *cont, sockaddr 
const *remote_addr, Ne
   errno   = 0;
   int res = con->ep.start(pd, con, EVENTIO_READ);
   if (res < 0) {
-    Debug("udpnet", "Error: %s (%d)", strerror(errno), errno);
+    Dbg(dbg_ctl_udpnet, "Error: %s (%d)", strerror(errno), errno);
   }
 
   // Setup QUICNetVConnection
@@ -182,8 +191,8 @@ Action *
 QUICNetProcessor::main_accept(Continuation *cont, SOCKET fd, AcceptOptions 
const &opt)
 {
   // UnixNetProcessor *this_unp = static_cast<UnixNetProcessor *>(this);
-  Debug("iocore_net_processor", "NetProcessor::main_accept - port 
%d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0x",
-        opt.local_port, opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
+  Dbg(dbg_ctl_iocore_net_processor, "NetProcessor::main_accept - port 
%d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0x",
+      opt.local_port, opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
 
   ProxyMutex *mutex  = this_ethread()->mutex.get();
   int accept_threads = opt.accept_threads; // might be changed.
diff --git a/iocore/net/QUICPacketHandler.cc b/iocore/net/QUICPacketHandler.cc
index dcb491d0f0..a0c1013a62 100644
--- a/iocore/net/QUICPacketHandler.cc
+++ b/iocore/net/QUICPacketHandler.cc
@@ -37,17 +37,22 @@
 #include "QUICMultiCertConfigLoader.h"
 #include "QUICTLS.h"
 
-static constexpr char debug_tag[]   = "quic_sec";
-static constexpr char v_debug_tag[] = "v_quic_sec";
+namespace
+{
+
+DbgCtl dbg_ctl{"quic_sec"};
+DbgCtl dbg_ctl_v{"v_quic_sec"};
+DbgCtl dbg_ctl_quick_ph{"quic_ph"};
+
+} // end anonymous namespace
 
-#define QUICDebug(fmt, ...)       Debug(debug_tag, fmt, ##__VA_ARGS__)
-#define QUICQCDebug(qc, fmt, ...) Debug(debug_tag, "[%s] " fmt, 
qc->cids().data(), ##__VA_ARGS__)
+#define QUICDebug(fmt, ...)       Dbg(dbg_ctl, fmt, ##__VA_ARGS__)
+#define QUICQCDebug(qc, fmt, ...) Dbg(dbg_ctl, "[%s] " fmt, qc->cids().data(), 
##__VA_ARGS__)
 
 // ["local dcid" - "local scid"]
-#define QUICPHDebug(dcid, scid, fmt, ...) \
-  Debug(debug_tag, "[%08" PRIx32 "-%08" PRIx32 "] " fmt, dcid.h32(), 
scid.h32(), ##__VA_ARGS__)
+#define QUICPHDebug(dcid, scid, fmt, ...) Dbg(dbg_ctl, "[%08" PRIx32 "-%08" 
PRIx32 "] " fmt, dcid.h32(), scid.h32(), ##__VA_ARGS__)
 #define QUICVPHDebug(dcid, scid, fmt, ...) \
-  Debug(v_debug_tag, "[%08" PRIx32 "-%08" PRIx32 "] " fmt, dcid.h32(), 
scid.h32(), ##__VA_ARGS__)
+  Dbg(dbg_ctl_v, "[%08" PRIx32 "-%08" PRIx32 "] " fmt, dcid.h32(), scid.h32(), 
##__VA_ARGS__)
 
 //
 // QUICPacketHandler
@@ -102,7 +107,7 @@ QUICPacketHandler::_send_packet(UDPConnection *udp_con, 
IpEndpoint &addr, Ptr<IO
 {
   UDPPacket *udp_packet = UDPPacket::new_UDPPacket(addr, 0, udp_payload);
 
-  if (is_debug_tag_set(v_debug_tag)) {
+  if (dbg_ctl_v.on()) {
     ip_port_text_buffer ipb;
     QUICConnectionId dcid = QUICConnectionId::ZERO();
     QUICConnectionId scid = QUICConnectionId::ZERO();
@@ -257,7 +262,7 @@ QUICPacketHandlerIn::_recv_packet(int event, UDPPacket 
*udp_packet)
       return;
     }
 
-    if (is_debug_tag_set(v_debug_tag)) {
+    if (dbg_ctl_v.on()) {
       ip_port_text_buffer ipb_from;
       ip_port_text_buffer ipb_to;
       QUICVPHDebug(scid, dcid, "recv LH packet from %s to %s size=%" PRId64,
@@ -299,7 +304,7 @@ QUICPacketHandlerIn::_recv_packet(int event, UDPPacket 
*udp_packet)
     }
   } else {
     // TODO: lookup DCID by 5-tuple when ATS omits SCID
-    if (is_debug_tag_set(v_debug_tag)) {
+    if (dbg_ctl_v.on()) {
       ip_port_text_buffer ipb_from;
       ip_port_text_buffer ipb_to;
       QUICVPHDebug(scid, dcid, "recv SH packet from %s to %s size=%" PRId64,
@@ -339,7 +344,7 @@ QUICPacketHandlerIn::_recv_packet(int event, UDPPacket 
*udp_packet)
       this->_send_stateless_reset(dcid, params->instance_id(), 
udp_packet->getConnection(), udp_packet->from, buf_len - 1);
     udp_packet->free();
 
-    if (is_debug_tag_set(debug_tag) && sent) {
+    if (dbg_ctl.on() && sent) {
       QUICPHDebug(scid, dcid, "sent Stateless Reset : connection not found, 
dcid=%s", dcid.hex().c_str());
     }
 
@@ -350,7 +355,7 @@ QUICPacketHandlerIn::_recv_packet(int event, UDPPacket 
*udp_packet)
       this->_send_stateless_reset(dcid, params->instance_id(), 
udp_packet->getConnection(), udp_packet->from, buf_len - 1);
     udp_packet->free();
 
-    if (is_debug_tag_set(debug_tag) && sent) {
+    if (dbg_ctl.on() && sent) {
       QUICPHDebug(scid, dcid, "sent Stateless Reset : connection is already 
closed, dcid=%s", dcid.hex().c_str());
     }
 
@@ -367,7 +372,7 @@ QUICPacketHandlerIn::_recv_packet(int event, UDPPacket 
*udp_packet)
     QUICConnectionId original_cid = dcid;
     QUICConnectionId peer_cid     = scid;
 
-    if (is_debug_tag_set("quic_sec")) {
+    if (dbg_ctl.on()) {
       QUICPHDebug(peer_cid, original_cid, "client initial dcid=%s", 
original_cid.hex().c_str());
     }
 
@@ -555,7 +560,7 @@ QUICPacketHandlerOut::event_handler(int event, Event *data)
     return EVENT_CONT;
   }
   default:
-    Debug("quic_ph", "Unknown Event (%d)", event);
+    Dbg(dbg_ctl_quic_ph, "Unknown Event (%d)", event);
 
     break;
   }
@@ -576,7 +581,7 @@ QUICPacketHandlerOut::_recv_packet(int event, UDPPacket 
*udp_packet)
   const uint8_t *buf   = reinterpret_cast<uint8_t *>(block->buf());
   uint64_t buf_len     = block->size();
 
-  if (is_debug_tag_set(debug_tag)) {
+  if (dbg_ctl.on()) {
     ip_port_text_buffer ipb_from;
     ip_port_text_buffer ipb_to;
     QUICQCDebug(this->_vc, "recv %s packet from %s to %s size=%" PRId64, 
(QUICInvariants::is_long_header(buf) ? "LH" : "SH"),
diff --git a/iocore/net/SNIActionPerformer.cc b/iocore/net/SNIActionPerformer.cc
index 46445cf572..7d3f93ec88 100644
--- a/iocore/net/SNIActionPerformer.cc
+++ b/iocore/net/SNIActionPerformer.cc
@@ -46,9 +46,9 @@ ControlQUIC::SNIAction(TLSSNISupport *snis, const Context 
&ctx) const
     return SSL_TLSEXT_ERR_OK;
   }
 
-  if (is_debug_tag_set("ssl_sni")) {
+  if (dbg_ctl_ssl_sni.on()) {
     const char *servername = quic_vc->get_server_name();
-    Debug("ssl_sni", "Rejecting handshake due to QUIC being disabled for fqdn 
[%s]", servername);
+    Dbg(dbg_ctl_ssl_sni, "Rejecting handshake due to QUIC being disabled for 
fqdn [%s]", servername);
   }
 
   return SSL_TLSEXT_ERR_ALERT_FATAL;
@@ -84,11 +84,11 @@ SNI_IpAllow::load(swoc::TextView content, swoc::TextView 
server_name)
   while (!content.ltrim(delim).empty()) {
     swoc::TextView token{content.take_prefix_at(delim)};
     if (swoc::IPRange r; r.load(token)) {
-      Debug("ssl_sni", "%.*s is not a valid format", 
static_cast<int>(token.size()), token.data());
+      Dbg(dbg_ctl_ssl_sni, "%.*s is not a valid format", 
static_cast<int>(token.size()), token.data());
       break;
     } else {
-      Debug("ssl_sni", "%.*s added to the ip_allow token %.*s", 
static_cast<int>(token.size()), token.data(),
-            int(server_name.size()), server_name.data());
+      Dbg(dbg_ctl_ssl_sni, "%.*s added to the ip_allow token %.*s", 
static_cast<int>(token.size()), token.data(),
+          int(server_name.size()), server_name.data());
       ip_addrs.fill(r);
     }
   }
@@ -111,7 +111,7 @@ SNI_IpAllow::SNIAction(TLSSNISupport *snis, 
ActionItem::Context const &ctx) cons
   } else {
     swoc::LocalBufferWriter<256> w;
     w.print("{} is not allowed - denying connection\0", ip);
-    Debug("ssl_sni", "%s", w.data());
+    Dbg(dbg_ctl_ssl_sni, "%s", w.data());
     return SSL_TLSEXT_ERR_ALERT_FATAL;
   }
 }
diff --git a/iocore/net/SNIActionPerformer.h b/iocore/net/SNIActionPerformer.h
index ba40c73a26..d06e40df5d 100644
--- a/iocore/net/SNIActionPerformer.h
+++ b/iocore/net/SNIActionPerformer.h
@@ -34,6 +34,7 @@
 #include <optional>
 #include "TLSSNISupport.h"
 #include "tscore/ink_inet.h"
+#include "ts/DbgCtl.h"
 
 class ActionItem
 {
@@ -66,4 +67,7 @@ public:
     return false;
   }
   virtual ~ActionItem(){};
+
+protected:
+  inline static DbgCtl dbg_ctl_ssl_sni{"ssl_sni"};
 };
diff --git a/iocore/net/SSLDiags.h b/iocore/net/SSLDiags.h
index 0301e9bc41..3c7aadddb1 100644
--- a/iocore/net/SSLDiags.h
+++ b/iocore/net/SSLDiags.h
@@ -40,10 +40,10 @@ void SSLDiagnostic(const SourceLocation &loc, bool debug, 
SSLNetVConnection *vc,
 const char *SSLErrorName(int ssl_error);
 
 // Log a SSL network buffer.  TAG must be a C-string literal debug tag.
-#define SSLDebugBufferPrint(TAG, BUFFER, BUFFER_LEN, MESSAGE) \
-  do {                                                        \
-    if (is_debug_tag_set(TAG))                                \
-      SSLDebugBufferPrint_(BUFFER, BUFFER_LEN, MESSAGE);      \
+#define SSLDebugBufferPrint(DBG_CTL, BUFFER, BUFFER_LEN, MESSAGE) \
+  do {                                                            \
+    if ((DBG_CTL).on())                                           \
+      SSLDebugBufferPrint_(BUFFER, BUFFER_LEN, MESSAGE);          \
   } while (0)
 
 void SSLDebugBufferPrint_(const char *buffer, unsigned buflen, const char 
*message);
diff --git a/iocore/net/SSLNetVConnection.cc b/iocore/net/SSLNetVConnection.cc
index 3f732481ca..4e4fcdab6e 100644
--- a/iocore/net/SSLNetVConnection.cc
+++ b/iocore/net/SSLNetVConnection.cc
@@ -76,6 +76,20 @@ ClassAllocator<SSLNetVConnection> 
sslNetVCAllocator("sslNetVCAllocator");
 
 namespace
 {
+DbgCtl dbg_ctl_ssl_early_data{"ssl_early_data"};
+DbgCtl dbg_ctl_ssl_early_data_show_received{"ssl_early_data_show_received"};
+DbgCtl dbg_ctl_ssl{"ssl"};
+DbgCtl dbg_ctl_v_ssl{"v_ssl"};
+DbgCtl dbg_ctl_ssl_error{"ssl.error"};
+DbgCtl dbg_ctl_ssl_error_accept{"ssl.error.accept"};
+DbgCtl dbg_ctl_ssl_error_connect{"ssl.error.connect"};
+DbgCtl dbg_ctl_ssl_error_write{"ssl.error.write"};
+DbgCtl dbg_ctl_ssl_error_read{"ssl.error.read"};
+DbgCtl dbg_ctl_ssl_shutdown{"ssl-shutdown"};
+DbgCtl dbg_ctl_ssl_alpn{"ssl_alpn"};
+DbgCtl dbg_ctl_ssl_origin_session_cache{"ssl.origin_session_cache"};
+DbgCtl dbg_ctl_proxyprotocol{"proxyprotocol"};
+
 /// Callback to get two locks.
 /// The lock for this continuation, and for the target continuation.
 class ContWrapper : public Continuation
@@ -260,7 +274,7 @@ debug_certificate_name(const char *msg, X509_NAME *name)
     long len;
     char *ptr;
     len = BIO_get_mem_data(bio, &ptr);
-    Debug("ssl", "%s %.*s", msg, (int)len, ptr);
+    Dbg(dbg_ctl_ssl, "%s %.*s", msg, (int)len, ptr);
   }
 
   BIO_free(bio);
@@ -291,18 +305,20 @@ SSLNetVConnection::_ssl_read_from_net(EThread *lthread, 
int64_t &ret)
       amount_to_read = block_write_avail;
     }
 
-    Debug("ssl", "amount_to_read=%" PRId64, amount_to_read);
+    Dbg(dbg_ctl_ssl, "amount_to_read=%" PRId64, amount_to_read);
     char *current_block = buf.writer()->end();
     ink_release_assert(current_block != nullptr);
     sslErr = this->_ssl_read_buffer(current_block, amount_to_read, nread);
 
-    Debug("ssl", "nread=%" PRId64, nread);
+    Dbg(dbg_ctl_ssl, "nread=%" PRId64, nread);
 
     switch (sslErr) {
     case SSL_ERROR_NONE:
-
 #if DEBUG
-      SSLDebugBufferPrint("ssl_buff", current_block, nread, "SSL Read");
+    {
+      static DbgCtl dbg_ctl{"ssl_buff"};
+      SSLDebugBufferPrint(dbg_ctl, current_block, nread, "SSL Read");
+    }
 #endif
       ink_assert(nread);
       bytes_read += nread;
@@ -313,21 +329,21 @@ SSLNetVConnection::_ssl_read_from_net(EThread *lthread, 
int64_t &ret)
       break;
     case SSL_ERROR_WANT_WRITE:
       event = SSL_WRITE_WOULD_BLOCK;
-      Debug("ssl.error", "SSL_ERROR_WOULD_BLOCK(write)");
+      Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WOULD_BLOCK(write)");
       break;
     case SSL_ERROR_WANT_READ:
       event = SSL_READ_WOULD_BLOCK;
-      Debug("ssl.error", "SSL_ERROR_WOULD_BLOCK(read)");
+      Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WOULD_BLOCK(read)");
       break;
 #ifdef SSL_ERROR_WANT_CLIENT_HELLO_CB
     case SSL_ERROR_WANT_CLIENT_HELLO_CB:
       event = SSL_READ_WOULD_BLOCK;
-      Debug("ssl.error", "SSL_ERROR_WOULD_BLOCK(read/client hello cb)");
+      Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WOULD_BLOCK(read/client hello cb)");
       break;
 #endif
     case SSL_ERROR_WANT_X509_LOOKUP:
       event = SSL_READ_WOULD_BLOCK;
-      Debug("ssl.error", "SSL_ERROR_WOULD_BLOCK(read/x509 lookup)");
+      Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WOULD_BLOCK(read/x509 lookup)");
       break;
     case SSL_ERROR_SYSCALL:
       if (nread != 0) {
@@ -335,7 +351,7 @@ SSLNetVConnection::_ssl_read_from_net(EThread *lthread, 
int64_t &ret)
         SSL_INCREMENT_DYN_STAT(ssl_error_syscall);
         event = SSL_READ_ERROR;
         ret   = errno;
-        Debug("ssl.error", "SSL_ERROR_SYSCALL, underlying IO error: %s", 
strerror(errno));
+        Dbg(dbg_ctl_ssl_error, "SSL_ERROR_SYSCALL, underlying IO error: %s", 
strerror(errno));
       } else {
         // then EOF observed, treat it as EOS
         event = SSL_READ_EOS;
@@ -343,7 +359,7 @@ SSLNetVConnection::_ssl_read_from_net(EThread *lthread, 
int64_t &ret)
       break;
     case SSL_ERROR_ZERO_RETURN:
       event = SSL_READ_EOS;
-      Debug("ssl.error", "SSL_ERROR_ZERO_RETURN");
+      Dbg(dbg_ctl_ssl_error, "SSL_ERROR_ZERO_RETURN");
       break;
     case SSL_ERROR_SSL:
     default: {
@@ -358,7 +374,7 @@ SSLNetVConnection::_ssl_read_from_net(EThread *lthread, 
int64_t &ret)
   }   // while
 
   if (bytes_read > 0) {
-    Debug("ssl", "bytes_read=%" PRId64, bytes_read);
+    Dbg(dbg_ctl_ssl, "bytes_read=%" PRId64, bytes_read);
 
     s->vio.ndone += bytes_read;
     this->netActivity(lthread);
@@ -374,7 +390,7 @@ SSLNetVConnection::_ssl_read_from_net(EThread *lthread, 
int64_t &ret)
   } else { // if( bytes_read > 0 )
 #if defined(_DEBUG)
     if (bytes_read == 0) {
-      Debug("ssl", "bytes_read == 0");
+      Dbg(dbg_ctl_ssl, "bytes_read == 0");
     }
 #endif
   }
@@ -406,8 +422,8 @@ SSLNetVConnection::read_raw_data()
     NET_INCREMENT_DYN_STAT(net_calls_to_read_stat);
     total_read += rattempted;
 
-    Debug("ssl", "read_raw_data r=%" PRId64 " rattempted=%" PRId64 " 
total_read=%" PRId64 " fd=%d", r, rattempted, total_read,
-          con.fd);
+    Dbg(dbg_ctl_ssl, "read_raw_data r=%" PRId64 " rattempted=%" PRId64 " 
total_read=%" PRId64 " fd=%d", r, rattempted, total_read,
+        con.fd);
     // last read failed or was incomplete
     if (r != rattempted || !b) {
       break;
@@ -431,40 +447,40 @@ SSLNetVConnection::read_raw_data()
   pp_ipmap = SSLConfigParams::proxy_protocol_ip_addrs;
 
   if (this->get_is_proxy_protocol() && this->get_proxy_protocol_version() == 
ProxyProtocolVersion::UNDEFINED) {
-    Debug("proxyprotocol", "proxy protocol is enabled on this port");
+    Dbg(dbg_ctl_proxyprotocol, "proxy protocol is enabled on this port");
     if (pp_ipmap->count() > 0) {
-      Debug("proxyprotocol", "proxy protocol has a configured allowlist of 
trusted IPs - checking");
+      Dbg(dbg_ctl_proxyprotocol, "proxy protocol has a configured allowlist of 
trusted IPs - checking");
 
       // At this point, using get_remote_addr() will return the ip of the
       // proxy source IP, not the Proxy Protocol client ip. Since we are
       // checking the ip of the actual source of this connection, this is
       // what we want now.
       if (!pp_ipmap->contains(swoc::IPAddr(get_remote_addr()))) {
-        Debug("proxyprotocol", "Source IP is NOT in the configured allowlist 
of trusted IPs - closing connection");
+        Dbg(dbg_ctl_proxyprotocol, "Source IP is NOT in the configured 
allowlist of trusted IPs - closing connection");
         r = -ENOTCONN; // Need a quick close/exit here to refuse the 
connection!!!!!!!!!
         goto proxy_protocol_bypass;
       } else {
         char new_host[INET6_ADDRSTRLEN];
-        Debug("proxyprotocol", "Source IP [%s] is in the trusted allowlist for 
proxy protocol",
-              ats_ip_ntop(this->get_remote_addr(), new_host, 
sizeof(new_host)));
+        Dbg(dbg_ctl_proxyprotocol, "Source IP [%s] is in the trusted allowlist 
for proxy protocol",
+            ats_ip_ntop(this->get_remote_addr(), new_host, sizeof(new_host)));
       }
     } else {
-      Debug("proxyprotocol", "proxy protocol DOES NOT have a configured 
allowlist of trusted IPs but "
-                             "proxy protocol is enabled on this port - 
processing all connections");
+      Dbg(dbg_ctl_proxyprotocol, "proxy protocol DOES NOT have a configured 
allowlist of trusted IPs but "
+                                 "proxy protocol is enabled on this port - 
processing all connections");
     }
 
     auto const stored_r = r;
     if (this->has_proxy_protocol(buffer, &r)) {
-      Debug("proxyprotocol", "ssl has proxy protocol header");
-      if (is_debug_tag_set("proxyprotocol")) {
+      Dbg(dbg_ctl_proxyprotocol, "ssl has proxy protocol header");
+      if (dbg_ctl_proxyprotocol.on()) {
         IpEndpoint dst;
         dst.sa = *(this->get_proxy_protocol_dst_addr());
         ip_port_text_buffer ipb1;
         ats_ip_nptop(&dst, ipb1, sizeof(ipb1));
-        Debug("proxyprotocol", "ssl_has_proxy_v1, dest IP received [%s]", 
ipb1);
+        DbgPrint(dbg_ctl_proxyprotocol, "ssl_has_proxy_v1, dest IP received 
[%s]", ipb1);
       }
     } else {
-      Debug("proxyprotocol", "proxy protocol was enabled, but Proxy Protocol 
header was not present");
+      Dbg(dbg_ctl_proxyprotocol, "proxy protocol was enabled, but Proxy 
Protocol header was not present");
       // We are flexible with the Proxy Protocol designation. Maybe not all
       // connections include Proxy Protocol. Revert to the stored value of r so
       // we can process the bytes that are on the wire (likely a CLIENT_HELLO).
@@ -490,7 +506,7 @@ proxy_protocol_bypass:
     this->handShakeBioStored = 0;
   }
 
-  Debug("ssl", "%p read r=%" PRId64 " total=%" PRId64 " bio=%d\n", this, r, 
total_read, this->handShakeBioStored);
+  Dbg(dbg_ctl_ssl, "%p read r=%" PRId64 " total=%" PRId64 " bio=%d\n", this, 
r, total_read, this->handShakeBioStored);
 
   // check for errors
   if (r <= 0) {
@@ -567,7 +583,7 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
   if (sslClientRenegotiationAbort == true) {
     this->read.triggered = 0;
     readSignalError(nh, -ENET_SSL_FAILED);
-    Debug("ssl", "client renegotiation setting read signal error");
+    Dbg(dbg_ctl_ssl, "client renegotiation setting read signal error");
     return;
   }
 
@@ -635,10 +651,10 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
     } else if (ret == SSL_HANDSHAKE_WANT_READ || ret == 
SSL_HANDSHAKE_WANT_ACCEPT) {
       if (SSLConfigParams::ssl_handshake_timeout_in > 0) {
         double handshake_time = (static_cast<double>(ink_get_hrtime() - 
this->get_tls_handshake_begin_time()) / 1000000000);
-        Debug("ssl", "ssl handshake for vc %p, took %.3f seconds, configured 
handshake_timer: %d", this, handshake_time,
-              SSLConfigParams::ssl_handshake_timeout_in);
+        Dbg(dbg_ctl_ssl, "ssl handshake for vc %p, took %.3f seconds, 
configured handshake_timer: %d", this, handshake_time,
+            SSLConfigParams::ssl_handshake_timeout_in);
         if (handshake_time > SSLConfigParams::ssl_handshake_timeout_in) {
-          Debug("ssl", "ssl handshake for vc %p, expired, release the 
connection", this);
+          Dbg(dbg_ctl_ssl, "ssl handshake for vc %p, expired, release the 
connection", this);
           read.triggered = 0;
           nh->read_ready_list.remove(this);
           readSignalError(nh, ETIMEDOUT);
@@ -660,7 +676,7 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
       nh->write_ready_list.remove(this);
       writeReschedule(nh);
     } else if (ret == EVENT_DONE) {
-      Debug("ssl", "ssl handshake EVENT_DONE ntodo=%" PRId64, ntodo);
+      Dbg(dbg_ctl_ssl, "ssl handshake EVENT_DONE ntodo=%" PRId64, ntodo);
       // If this was driven by a zero length read, signal complete when
       // the handshake is complete. Otherwise set up for continuing read
       // operations.
@@ -703,7 +719,7 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
   if (bytes > 0) {
     if (ret == SSL_READ_WOULD_BLOCK || ret == SSL_READ_READY) {
       if (readSignalAndUpdate(VC_EVENT_READ_READY) != EVENT_CONT) {
-        Debug("ssl", "readSignal != EVENT_CONT");
+        Dbg(dbg_ctl_ssl, "readSignal != EVENT_CONT");
         return;
       }
     }
@@ -717,7 +733,7 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
   case SSL_WRITE_WOULD_BLOCK:
   case SSL_READ_WOULD_BLOCK:
     if (lock.get_mutex() != s->vio.mutex.get()) {
-      Debug("ssl", "mutex switched");
+      Dbg(dbg_ctl_ssl, "mutex switched");
       if (ret == SSL_READ_WOULD_BLOCK) {
         readReschedule(nh);
       } else {
@@ -729,7 +745,7 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
     // we will need to be retriggered to read from this socket again
     read.triggered = 0;
     nh->read_ready_list.remove(this);
-    Debug("ssl", "read finished - would block");
+    Dbg(dbg_ctl_ssl, "read finished - would block");
     break;
 
   case SSL_READ_EOS:
@@ -740,19 +756,19 @@ SSLNetVConnection::net_read_io(NetHandler *nh, EThread 
*lthread)
     readSignalDone(VC_EVENT_EOS, nh);
 
     if (bytes > 0) {
-      Debug("ssl", "read finished - EOS");
+      Dbg(dbg_ctl_ssl, "read finished - EOS");
     } else {
-      Debug("ssl", "read finished - 0 useful bytes read, bytes used by SSL 
layer");
+      Dbg(dbg_ctl_ssl, "read finished - 0 useful bytes read, bytes used by SSL 
layer");
     }
     break;
   case SSL_READ_COMPLETE:
     readSignalDone(VC_EVENT_READ_COMPLETE, nh);
-    Debug("ssl", "read finished - signal done");
+    Dbg(dbg_ctl_ssl, "read finished - signal done");
     break;
   case SSL_READ_ERROR:
     this->read.triggered = 0;
     readSignalError(nh, (ssl_read_errno) ? ssl_read_errno : -ENET_SSL_FAILED);
-    Debug("ssl", "read finished - read error");
+    Dbg(dbg_ctl_ssl, "read finished - read error");
     break;
   }
 }
@@ -776,14 +792,15 @@ SSLNetVConnection::load_buffer_and_write(int64_t towrite, 
MIOBufferAccessor &buf
       // reset sslTotalBytesSent upon inactivity for 
SSL_DEF_TLS_RECORD_MSEC_THRESHOLD
       sslTotalBytesSent = 0;
     }
-    Debug("ssl", "now=%" PRId64 " lastwrite=%" PRId64 " 
msec_since_last_write=%d", now, sslLastWriteTime, msec_since_last_write);
+    Dbg(dbg_ctl_ssl, "now=%" PRId64 " lastwrite=%" PRId64 " 
msec_since_last_write=%d", now, sslLastWriteTime,
+        msec_since_last_write);
   }
 
   if (HttpProxyPort::TRANSPORT_BLIND_TUNNEL == this->attributes) {
     return this->super::load_buffer_and_write(towrite, buf, total_written, 
needs);
   }
 
-  Debug("ssl", "towrite=%" PRId64, towrite);
+  Dbg(dbg_ctl_ssl, "towrite=%" PRId64, towrite);
 
   do {
     // What is remaining left in the next block?
@@ -829,7 +846,7 @@ SSLNetVConnection::load_buffer_and_write(int64_t towrite, 
MIOBufferAccessor &buf
 
     try_to_write       = l;
     num_really_written = 0;
-    Debug("v_ssl", "b=%p l=%" PRId64, current_block, l);
+    Dbg(dbg_ctl_v_ssl, "b=%p l=%" PRId64, current_block, l);
     err = this->_ssl_write_buffer(current_block, l, num_really_written);
 
     // We wrote all that we thought we should
@@ -838,8 +855,8 @@ SSLNetVConnection::load_buffer_and_write(int64_t towrite, 
MIOBufferAccessor &buf
       buf.reader()->consume(num_really_written);
     }
 
-    Debug("ssl", "try_to_write=%" PRId64 " written=%" PRId64 " 
total_written=%" PRId64, try_to_write, num_really_written,
-          total_written);
+    Dbg(dbg_ctl_ssl, "try_to_write=%" PRId64 " written=%" PRId64 " 
total_written=%" PRId64, try_to_write, num_really_written,
+        total_written);
     NET_INCREMENT_DYN_STAT(net_calls_to_write_stat);
   } while (num_really_written == try_to_write && total_written < towrite);
 
@@ -853,12 +870,12 @@ SSLNetVConnection::load_buffer_and_write(int64_t towrite, 
MIOBufferAccessor &buf
   } else {
     switch (err) {
     case SSL_ERROR_NONE:
-      Debug("ssl", "SSL_write-SSL_ERROR_NONE");
+      Dbg(dbg_ctl_ssl, "SSL_write-SSL_ERROR_NONE");
       break;
     case SSL_ERROR_WANT_READ:
       needs              |= EVENTIO_READ;
       num_really_written  = -EAGAIN;
-      Debug("ssl.error", "SSL_write-SSL_ERROR_WANT_READ");
+      Dbg(dbg_ctl_ssl_error, "SSL_write-SSL_ERROR_WANT_READ");
       break;
     case SSL_ERROR_WANT_WRITE:
 #ifdef SSL_ERROR_WANT_CLIENT_HELLO_CB
@@ -870,7 +887,7 @@ SSLNetVConnection::load_buffer_and_write(int64_t towrite, 
MIOBufferAccessor &buf
       }
       needs              |= EVENTIO_WRITE;
       num_really_written  = -EAGAIN;
-      Debug("ssl.error", "SSL_write-SSL_ERROR_WANT_WRITE");
+      Dbg(dbg_ctl_ssl_error, "SSL_write-SSL_ERROR_WANT_WRITE");
       break;
     }
     case SSL_ERROR_SYSCALL:
@@ -878,12 +895,12 @@ SSLNetVConnection::load_buffer_and_write(int64_t towrite, 
MIOBufferAccessor &buf
       // we do with SSL_ERROR_SSL below, to indicate a connection error.
       num_really_written = -EPIPE;
       SSL_INCREMENT_DYN_STAT(ssl_error_syscall);
-      Debug("ssl.error", "SSL_write-SSL_ERROR_SYSCALL");
+      Dbg(dbg_ctl_ssl_error, "SSL_write-SSL_ERROR_SYSCALL");
       break;
     // end of stream
     case SSL_ERROR_ZERO_RETURN:
       num_really_written = -errno;
-      Debug("ssl.error", "SSL_write-SSL_ERROR_ZERO_RETURN");
+      Dbg(dbg_ctl_ssl_error, "SSL_write-SSL_ERROR_ZERO_RETURN");
       break;
     case SSL_ERROR_SSL:
     default: {
@@ -919,13 +936,13 @@ SSLNetVConnection::do_io_close(int lerrno)
 
     if (getSSLHandShakeComplete()) {
       int shutdown_mode = SSL_get_shutdown(ssl);
-      Debug("ssl-shutdown", "previous shutdown state 0x%x", shutdown_mode);
+      Dbg(dbg_ctl_ssl_shutdown, "previous shutdown state 0x%x", shutdown_mode);
       int new_shutdown_mode = shutdown_mode | SSL_RECEIVED_SHUTDOWN;
 
       if (new_shutdown_mode != shutdown_mode) {
         // We do not need to sit around and wait for the client's close-notify 
if
         // they have not already sent it.  We will still be standards compliant
-        Debug("ssl-shutdown", "new SSL_set_shutdown 0x%x", new_shutdown_mode);
+        Dbg(dbg_ctl_ssl_shutdown, "new SSL_set_shutdown 0x%x", 
new_shutdown_mode);
         SSL_set_shutdown(ssl, new_shutdown_mode);
       }
 
@@ -944,12 +961,12 @@ SSLNetVConnection::do_io_close(int lerrno)
       if (do_shutdown) {
         // Send the close-notify
         int ret = SSL_shutdown(ssl);
-        Debug("ssl-shutdown", "SSL_shutdown %s", (ret) ? "success" : "failed");
+        Dbg(dbg_ctl_ssl_shutdown, "SSL_shutdown %s", (ret) ? "success" : 
"failed");
       } else {
         // Request a quiet shutdown to OpenSSL
         SSL_set_quiet_shutdown(ssl, 1);
         SSL_set_shutdown(ssl, SSL_RECEIVED_SHUTDOWN | SSL_SENT_SHUTDOWN);
-        Debug("ssl-shutdown", "Enable quiet shutdown");
+        Dbg(dbg_ctl_ssl_shutdown, "Enable quiet shutdown");
       }
     }
   }
@@ -1038,7 +1055,7 @@ int
 SSLNetVConnection::sslStartHandShake(int event, int &err)
 {
   if (TSSystemState::is_ssl_handshaking_stopped()) {
-    Debug("ssl", "Stopping handshake due to server shutting down.");
+    Dbg(dbg_ctl_ssl, "Stopping handshake due to server shutting down.");
     return EVENT_ERROR;
   }
   if (this->get_tls_handshake_begin_time() == 0) {
@@ -1054,22 +1071,22 @@ SSLNetVConnection::sslStartHandShake(int event, int 
&err)
       IpEndpoint dst;
       int namelen = sizeof(dst);
       if (0 != safe_getsockname(this->get_socket(), &dst.sa, &namelen)) {
-        Debug("ssl", "Failed to get dest ip, errno = [%d]", errno);
+        Dbg(dbg_ctl_ssl, "Failed to get dest ip, errno = [%d]", errno);
         return EVENT_ERROR;
       }
       SSLCertContext *cc = lookup->find(dst);
-      if (is_debug_tag_set("ssl")) {
+      if (dbg_ctl_ssl.on()) {
         IpEndpoint src;
         ip_port_text_buffer ipb1, ipb2;
         int ip_len = sizeof(src);
 
         if (0 != safe_getpeername(this->get_socket(), &src.sa, &ip_len)) {
-          Debug("ssl", "Failed to get src ip, errno = [%d]", errno);
+          DbgPrint(dbg_ctl_ssl, "Failed to get src ip, errno = [%d]", errno);
           return EVENT_ERROR;
         }
         ats_ip_nptop(&dst, ipb1, sizeof(ipb1));
         ats_ip_nptop(&src, ipb2, sizeof(ipb2));
-        Debug("ssl", "IP context is %p for [%s] -> [%s], default context %p", 
cc, ipb2, ipb1, lookup->defaultContext());
+        DbgPrint(dbg_ctl_ssl, "IP context is %p for [%s] -> [%s], default 
context %p", cc, ipb2, ipb1, lookup->defaultContext());
       }
 
       // Escape if this is marked to be a tunnel.
@@ -1118,7 +1135,7 @@ SSLNetVConnection::sslStartHandShake(int event, int &err)
       SSL_CTX *clientCTX       = nullptr;
 
       // First Look to see if there are override parameters
-      Debug("ssl", "Checking for outbound client cert override [%p]", 
options.ssl_client_cert_name.get());
+      Dbg(dbg_ctl_ssl, "Checking for outbound client cert override [%p]", 
options.ssl_client_cert_name.get());
       if (options.ssl_client_cert_name) {
         std::string certFilePath;
         std::string keyFilePath;
@@ -1133,9 +1150,9 @@ SSLNetVConnection::sslStartHandShake(int event, int &err)
           if (options.ssl_client_ca_cert_name) {
             caCertFilePath = 
Layout::get()->relative_to(params->clientCACertPath, 
options.ssl_client_ca_cert_name);
           }
-          Debug("ssl", "Using outbound client cert `%s'", 
options.ssl_client_cert_name.get());
+          Dbg(dbg_ctl_ssl, "Using outbound client cert `%s'", 
options.ssl_client_cert_name.get());
         } else {
-          Debug("ssl", "Clearing outbound client cert");
+          Dbg(dbg_ctl_ssl, "Clearing outbound client cert");
         }
         sharedCTX =
           params->getCTX(certFilePath, keyFilePath, caCertFilePath.empty() ? 
params->clientCACertFilename : caCertFilePath.c_str(),
@@ -1198,9 +1215,9 @@ SSLNetVConnection::sslStartHandShake(int event, int &err)
       ats_scoped_str &tlsext_host_name = this->options.sni_hostname ? 
this->options.sni_hostname : this->options.sni_servername;
       if (tlsext_host_name) {
         if (SSL_set_tlsext_host_name(this->ssl, tlsext_host_name)) {
-          Debug("ssl", "using SNI name '%s' for client handshake", 
tlsext_host_name.get());
+          Dbg(dbg_ctl_ssl, "using SNI name '%s' for client handshake", 
tlsext_host_name.get());
         } else {
-          Debug("ssl.error", "failed to set SNI name '%s' for client 
handshake", tlsext_host_name.get());
+          Dbg(dbg_ctl_ssl_error, "failed to set SNI name '%s' for client 
handshake", tlsext_host_name.get());
           SSL_INCREMENT_DYN_STAT(ssl_sni_name_set_failure);
         }
       }
@@ -1210,8 +1227,8 @@ SSLNetVConnection::sslStartHandShake(int event, int &err)
         if (int res = SSL_set_alpn_protos(this->ssl, reinterpret_cast<const 
uint8_t *>(this->options.alpn_protos.data()),
                                           this->options.alpn_protos.size());
             res != 0) {
-          Debug("ssl.error", "failed to set ALPN '%.*s' for client handshake", 
static_cast<int>(this->options.alpn_protos.size()),
-                this->options.alpn_protos.data());
+          Dbg(dbg_ctl_ssl_error, "failed to set ALPN '%.*s' for client 
handshake",
+              static_cast<int>(this->options.alpn_protos.size()), 
this->options.alpn_protos.data());
         }
       }
     }
@@ -1237,7 +1254,7 @@ SSLNetVConnection::sslServerHandShakeEvent(int &err)
   if (sslHandshakeHookState == HANDSHAKE_HOOKS_PRE) {
     SSL_INCREMENT_DYN_STAT(ssl_total_attempts_handshake_count_in_stat);
     if (!curHook) {
-      Debug("ssl", "Initialize preaccept curHook from NULL");
+      Dbg(dbg_ctl_ssl, "Initialize preaccept curHook from NULL");
       curHook = ssl_hooks->get(TSSslHookInternalID(TS_VCONN_START_HOOK));
     } else {
       curHook = curHook->next();
@@ -1272,7 +1289,7 @@ SSLNetVConnection::sslServerHandShakeEvent(int &err)
     return EVENT_DONE;
   }
 
-  Debug("ssl", "Go on with the handshake state=%s", 
get_ssl_handshake_hook_state_name(sslHandshakeHookState));
+  Dbg(dbg_ctl_ssl, "Go on with the handshake state=%s", 
get_ssl_handshake_hook_state_name(sslHandshakeHookState));
 
   // All the pre-accept hooks have completed, proceed with the actual accept.
   if (this->handShakeReader) {
@@ -1285,7 +1302,7 @@ SSLNetVConnection::sslServerHandShakeEvent(int &err)
         }
 #endif
 
-        Debug("ssl", "%p first read\n", this);
+        Dbg(dbg_ctl_ssl, "%p first read\n", this);
         // Read from socket to fill in the BIO buffer with the
         // raw handshake data before calling the ssl accept calls.
         int retval = this->read_raw_data();
@@ -1355,14 +1372,14 @@ SSLNetVConnection::sslServerHandShakeEvent(int &err)
 
   switch (ssl_error) {
   case SSL_ERROR_NONE:
-    if (is_debug_tag_set("ssl")) {
+    if (dbg_ctl_ssl.on()) {
 #ifdef OPENSSL_IS_OPENSSL3
       X509 *cert = SSL_get1_peer_certificate(ssl);
 #else
       X509 *cert = SSL_get_peer_certificate(ssl);
 #endif
 
-      Debug("ssl", "SSL server handshake completed successfully");
+      DbgPrint(dbg_ctl_ssl, "SSL server handshake completed successfully");
       if (cert) {
         debug_certificate_name("client certificate subject CN is", 
X509_get_subject_name(cert));
         debug_certificate_name("client certificate issuer CN is", 
X509_get_issuer_name(cert));
@@ -1406,9 +1423,9 @@ SSLNetVConnection::sslServerHandShakeEvent(int &err)
         }
         this->set_negotiated_protocol_id({reinterpret_cast<const char 
*>(proto), static_cast<size_t>(len)});
 
-        Debug("ssl", "Origin selected next protocol '%.*s'", len, proto);
+        Dbg(dbg_ctl_ssl, "Origin selected next protocol '%.*s'", len, proto);
       } else {
-        Debug("ssl", "Origin did not select a next protocol");
+        Dbg(dbg_ctl_ssl, "Origin did not select a next protocol");
       }
     }
 
@@ -1528,7 +1545,7 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
   if (sslHandshakeHookState == HANDSHAKE_HOOKS_OUTBOUND_PRE) {
     SSL_INCREMENT_DYN_STAT(ssl_total_attempts_handshake_count_out_stat);
     if (!curHook) {
-      Debug("ssl", "Initialize outbound connect curHook from NULL");
+      Dbg(dbg_ctl_ssl, "Initialize outbound connect curHook from NULL");
       curHook = 
ssl_hooks->get(TSSslHookInternalID(TS_VCONN_OUTBOUND_START_HOOK));
     } else {
       curHook = curHook->next();
@@ -1544,14 +1561,14 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
   ssl_error = this->_ssl_connect();
   switch (ssl_error) {
   case SSL_ERROR_NONE:
-    if (is_debug_tag_set("ssl")) {
+    if (dbg_ctl_ssl.on()) {
 #ifdef OPENSSL_IS_OPENSSL3
       X509 *cert = SSL_get1_peer_certificate(ssl);
 #else
       X509 *cert = SSL_get_peer_certificate(ssl);
 #endif
 
-      Debug("ssl", "SSL client handshake completed successfully");
+      DbgPrint(dbg_ctl_ssl, "SSL client handshake completed successfully");
 
       if (cert) {
         debug_certificate_name("server certificate subject CN is", 
X509_get_subject_name(cert));
@@ -1567,7 +1584,7 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
       if (len == 0) {
         SSL_get0_next_proto_negotiated(ssl, &proto, &len);
       }
-      Debug("ssl_alpn", "Negotiated ALPN: %.*s", len, proto);
+      Dbg(dbg_ctl_ssl_alpn, "Negotiated ALPN: %.*s", len, proto);
       this->set_negotiated_protocol_id({reinterpret_cast<const char *>(proto), 
static_cast<size_t>(len)});
     }
 
@@ -1582,19 +1599,19 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
     return EVENT_DONE;
 
   case SSL_ERROR_WANT_WRITE:
-    Debug("ssl.error", "SSL_ERROR_WANT_WRITE");
+    Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WANT_WRITE");
     return SSL_HANDSHAKE_WANT_WRITE;
 
   case SSL_ERROR_WANT_READ:
-    Debug("ssl.error", "SSL_ERROR_WANT_READ");
+    Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WANT_READ");
     return SSL_HANDSHAKE_WANT_READ;
 #ifdef SSL_ERROR_WANT_CLIENT_HELLO_CB
   case SSL_ERROR_WANT_CLIENT_HELLO_CB:
-    Debug("ssl.error", "SSL_ERROR_WANT_CLIENT_HELLO_CB");
+    Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WANT_CLIENT_HELLO_CB");
     break;
 #endif
   case SSL_ERROR_WANT_X509_LOOKUP:
-    Debug("ssl.error", "SSL_ERROR_WANT_X509_LOOKUP");
+    Dbg(dbg_ctl_ssl_error, "SSL_ERROR_WANT_X509_LOOKUP");
     break;
 
   case SSL_ERROR_WANT_ACCEPT:
@@ -1604,13 +1621,13 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
     break;
 
   case SSL_ERROR_ZERO_RETURN:
-    Debug("ssl.error", "EOS");
+    Dbg(dbg_ctl_ssl_error, "EOS");
     return EVENT_ERROR;
 
   case SSL_ERROR_SYSCALL:
     err = errno;
     SSL_INCREMENT_DYN_STAT(ssl_error_syscall);
-    Debug("ssl.error", "syscall");
+    Dbg(dbg_ctl_ssl_error, "syscall");
     return EVENT_ERROR;
     break;
 
@@ -1622,14 +1639,14 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
     ERR_error_string_n(e, buf, sizeof(buf));
     // FIXME -- This triggers a retry on cases of cert validation errors....
     SSL_CLR_ERR_INCR_DYN_STAT(this, ssl_error_ssl, "SSL_ERROR_SSL errno=%d", 
errno);
-    Debug("ssl.error", "SSL_ERROR_SSL");
+    Dbg(dbg_ctl_ssl_error, "SSL_ERROR_SSL");
     if (e) {
       if (this->options.sni_servername) {
-        Debug("ssl.error", "SSL connection failed for '%s': %s", 
this->options.sni_servername.get(), buf);
+        Dbg(dbg_ctl_ssl_error, "SSL connection failed for '%s': %s", 
this->options.sni_servername.get(), buf);
       } else {
         char buff[INET6_ADDRSTRLEN];
         ats_ip_ntop(this->get_remote_addr(), buff, INET6_ADDRSTRLEN);
-        Debug("ssl.error", "SSL connection failed for '%s': %s", buff, buf);
+        Dbg(dbg_ctl_ssl_error, "SSL connection failed for '%s': %s", buff, 
buf);
       }
     }
     return EVENT_ERROR;
@@ -1641,7 +1658,7 @@ SSLNetVConnection::sslClientHandShakeEvent(int &err)
 void
 SSLNetVConnection::reenable(NetHandler *nh, int event)
 {
-  Debug("ssl", "Handshake reenable from state=%s", 
get_ssl_handshake_hook_state_name(sslHandshakeHookState));
+  Dbg(dbg_ctl_ssl, "Handshake reenable from state=%s", 
get_ssl_handshake_hook_state_name(sslHandshakeHookState));
 
   // Mark as error to stop the Handshake
   if (event == TS_EVENT_ERROR) {
@@ -1677,7 +1694,7 @@ SSLNetVConnection::reenable(NetHandler *nh, int event)
   // here in the reenable.
   if (curHook != nullptr) {
     curHook = curHook->next();
-    Debug("ssl", "iterate from reenable curHook=%p", curHook);
+    Dbg(dbg_ctl_ssl, "iterate from reenable curHook=%p", curHook);
   }
   if (curHook != nullptr) {
     // Invoke the hook and return, wait for next reenable
@@ -1693,11 +1710,11 @@ SSLNetVConnection::reenable(NetHandler *nh, int event)
     } else if (sslHandshakeHookState == HANDSHAKE_HOOKS_SNI) {
       curHook->invoke(TS_EVENT_SSL_SERVERNAME, this);
     } else if (sslHandshakeHookState == HANDSHAKE_HOOKS_PRE) {
-      Debug("ssl", "Reenable preaccept");
+      Dbg(dbg_ctl_ssl, "Reenable preaccept");
       sslHandshakeHookState = HANDSHAKE_HOOKS_PRE_INVOKE;
       ContWrapper::wrap(nh->mutex.get(), curHook->m_cont, 
TS_EVENT_VCONN_START, this);
     } else if (sslHandshakeHookState == HANDSHAKE_HOOKS_OUTBOUND_PRE) {
-      Debug("ssl", "Reenable outbound connect");
+      Dbg(dbg_ctl_ssl, "Reenable outbound connect");
       sslHandshakeHookState = HANDSHAKE_HOOKS_OUTBOUND_PRE_INVOKE;
       ContWrapper::wrap(nh->mutex.get(), curHook->m_cont, 
TS_EVENT_VCONN_OUTBOUND_START, this);
     } else if (sslHandshakeHookState == HANDSHAKE_HOOKS_DONE) {
@@ -1707,7 +1724,7 @@ SSLNetVConnection::reenable(NetHandler *nh, int event)
         ContWrapper::wrap(nh->mutex.get(), curHook->m_cont, 
TS_EVENT_VCONN_CLOSE, this);
       }
     } else if (sslHandshakeHookState == HANDSHAKE_HOOKS_VERIFY_SERVER) {
-      Debug("ssl", "ServerVerify");
+      Dbg(dbg_ctl_ssl, "ServerVerify");
       ContWrapper::wrap(nh->mutex.get(), curHook->m_cont, 
TS_EVENT_SSL_VERIFY_SERVER, this);
     }
     return;
@@ -1746,7 +1763,7 @@ SSLNetVConnection::reenable(NetHandler *nh, int event)
     default:
       break;
     }
-    Debug("ssl", "iterate from reenable curHook=%p %s", curHook, 
get_ssl_handshake_hook_state_name(sslHandshakeHookState));
+    Dbg(dbg_ctl_ssl, "iterate from reenable curHook=%p %s", curHook, 
get_ssl_handshake_hook_state_name(sslHandshakeHookState));
   }
 
   this->readReschedule(nh);
@@ -1759,7 +1776,7 @@ SSLNetVConnection::callHooks(TSEvent eventId)
   ink_assert(eventId == TS_EVENT_SSL_CLIENT_HELLO || eventId == 
TS_EVENT_SSL_CERT || eventId == TS_EVENT_SSL_SERVERNAME ||
              eventId == TS_EVENT_SSL_VERIFY_SERVER || eventId == 
TS_EVENT_SSL_VERIFY_CLIENT || eventId == TS_EVENT_VCONN_CLOSE ||
              eventId == TS_EVENT_VCONN_OUTBOUND_CLOSE);
-  Debug("ssl", "sslHandshakeHookState=%s eventID=%d", 
get_ssl_handshake_hook_state_name(this->sslHandshakeHookState), eventId);
+  Dbg(dbg_ctl_ssl, "sslHandshakeHookState=%s eventID=%d", 
get_ssl_handshake_hook_state_name(this->sslHandshakeHookState), eventId);
 
   // Move state if it is appropriate
   if (eventId == TS_EVENT_VCONN_CLOSE) {
@@ -1877,7 +1894,7 @@ SSLNetVConnection::callHooks(TSEvent eventId)
     return true;
   }
 
-  Debug("ssl", "iterated to curHook=%p", curHook);
+  Dbg(dbg_ctl_ssl, "iterated to curHook=%p", curHook);
 
   bool reenabled = true;
 
@@ -1897,7 +1914,7 @@ SSLNetVConnection::callHooks(TSEvent eventId)
     reenabled =
       (this->sslHandshakeHookState != HANDSHAKE_HOOKS_CERT_INVOKE && 
this->sslHandshakeHookState != HANDSHAKE_HOOKS_PRE_INVOKE &&
        this->sslHandshakeHookState != HANDSHAKE_HOOKS_CLIENT_HELLO_INVOKE);
-    Debug("ssl", "Called hook on state=%s reenabled=%d", 
get_ssl_handshake_hook_state_name(sslHandshakeHookState), reenabled);
+    Dbg(dbg_ctl_ssl, "Called hook on state=%s reenabled=%d", 
get_ssl_handshake_hook_state_name(sslHandshakeHookState), reenabled);
   }
 
   return reenabled;
@@ -1941,7 +1958,7 @@ SSLNetVConnection::increment_ssl_version_metric(int 
version) const
     break;
 #endif
   default:
-    Debug("ssl", "Unrecognized SSL version %d", version);
+    Dbg(dbg_ctl_ssl, "Unrecognized SSL version %d", version);
     break;
   }
 }
@@ -2067,17 +2084,18 @@ SSLNetVConnection::_lookupContextByIP()
     ip_port_text_buffer ipb1;
     ats_ip_nptop(&ip, ipb1, sizeof(ipb1));
     cc = lookup->find(ip);
-    if (is_debug_tag_set("proxyprotocol")) {
+    if (dbg_ctl_proxyprotocol.on()) {
       IpEndpoint src;
       ip_port_text_buffer ipb2;
       int ip_len = sizeof(src);
 
       if (0 != safe_getpeername(this->get_socket(), &src.sa, &ip_len)) {
-        Debug("proxyprotocol", "Failed to get src ip, errno = [%d]", errno);
+        DbgPrint(dbg_ctl_proxyprotocol, "Failed to get src ip, errno = [%d]", 
errno);
         return nullptr;
       }
       ats_ip_nptop(&src, ipb2, sizeof(ipb2));
-      Debug("proxyprotocol", "IP context is %p for [%s] -> [%s], default 
context %p", cc, ipb2, ipb1, lookup->defaultContext());
+      DbgPrint(dbg_ctl_proxyprotocol, "IP context is %p for [%s] -> [%s], 
default context %p", cc, ipb2, ipb1,
+               lookup->defaultContext());
     }
   } else if (0 == safe_getsockname(this->get_socket(), &ip.sa, &namelen)) {
     cc = lookup->find(ip);
@@ -2199,7 +2217,7 @@ SSLNetVConnection::_ssl_accept()
 #endif
 
       if (had_error_on_reading_early_data) {
-        Debug("ssl_early_data", "Error on reading early data: %d", ret);
+        Dbg(dbg_ctl_ssl_early_data, "Error on reading early data: %d", ret);
         block->free();
         break;
       } else {
@@ -2212,9 +2230,9 @@ SSLNetVConnection::_ssl_accept()
           this->_early_data_buf->append_block(block);
           SSL_INCREMENT_DYN_STAT(ssl_early_data_received_count);
 
-          if (is_debug_tag_set("ssl_early_data_show_received")) {
+          if (dbg_ctl_ssl_early_data_show_received.on()) {
             std::string early_data_str(reinterpret_cast<char *>(block->buf()), 
nread);
-            Debug("ssl_early_data_show_received", "Early data buffer: \n%s", 
early_data_str.c_str());
+            DbgPrint(dbg_ctl_ssl_early_data_show_received, "Early data buffer: 
\n%s", early_data_str.c_str());
           }
         } else {
           block->free();
@@ -2222,16 +2240,16 @@ SSLNetVConnection::_ssl_accept()
 
         if (finished_reading_early_data) {
           this->_early_data_finish = true;
-          Debug("ssl_early_data", "SSL_READ_EARLY_DATA_FINISH: size = %lu", 
nread);
+          Dbg(dbg_ctl_ssl_early_data, "SSL_READ_EARLY_DATA_FINISH: size = 
%lu", nread);
 
           if (this->_early_data_reader == nullptr || 
this->_early_data_reader->read_avail() == 0) {
-            Debug("ssl_early_data", "no data in early data buffer");
+            Dbg(dbg_ctl_ssl_early_data, "no data in early data buffer");
             ERR_clear_error();
             ret = SSL_accept(ssl);
           }
           break;
         }
-        Debug("ssl_early_data", "SSL_READ_EARLY_DATA_SUCCESS: size = %lu", 
nread);
+        Dbg(dbg_ctl_ssl_early_data, "SSL_READ_EARLY_DATA_SUCCESS: size = %lu", 
nread);
       }
     }
   } else {
@@ -2245,11 +2263,11 @@ SSLNetVConnection::_ssl_accept()
     return SSL_ERROR_NONE;
   }
   ssl_error = SSL_get_error(ssl, ret);
-  if (ssl_error == SSL_ERROR_SSL && is_debug_tag_set("ssl.error.accept")) {
+  if (ssl_error == SSL_ERROR_SSL && dbg_ctl_ssl_error_accept.on()) {
     char buf[512];
     unsigned long e = ERR_peek_last_error();
     ERR_error_string_n(e, buf, sizeof(buf));
-    Debug("ssl.error.accept", "SSL accept returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, buf);
+    DbgPrint(dbg_ctl_ssl_error_accept, "SSL accept returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, buf);
   }
 
   return ssl_error;
@@ -2269,7 +2287,7 @@ SSLNetVConnection::_ssl_connect()
         std::string lookup_key;
         swoc::bwprint(lookup_key, "{}:{}:{}", sni_addr.c_str(), 
SSL_get_SSL_CTX(ssl), get_verify_str(ssl));
 
-        Debug("ssl.origin_session_cache", "origin session cache lookup key = 
%s", lookup_key.c_str());
+        Dbg(dbg_ctl_ssl_origin_session_cache, "origin session cache lookup key 
= %s", lookup_key.c_str());
 
         std::shared_ptr<SSL_SESSION> shared_sess = this->getOriginSession(ssl, 
lookup_key);
 
@@ -2286,22 +2304,18 @@ SSLNetVConnection::_ssl_connect()
   if (ret > 0) {
     if (SSL_session_reused(ssl)) {
       SSL_INCREMENT_DYN_STAT(ssl_origin_session_reused_count);
-      if (is_debug_tag_set("ssl.origin_session_cache")) {
-        Debug("ssl.origin_session_cache", "reused session to origin server");
-      }
+      Dbg(dbg_ctl_ssl_origin_session_cache, "reused session to origin server");
     } else {
-      if (is_debug_tag_set("ssl.origin_session_cache")) {
-        Debug("ssl.origin_session_cache", "new session to origin server");
-      }
+      Dbg(dbg_ctl_ssl_origin_session_cache, "new session to origin server");
     }
     return SSL_ERROR_NONE;
   }
   int ssl_error = SSL_get_error(ssl, ret);
-  if (ssl_error == SSL_ERROR_SSL && is_debug_tag_set("ssl.error.connect")) {
+  if (ssl_error == SSL_ERROR_SSL && dbg_ctl_ssl_error_connect.on()) {
     char buf[512];
     unsigned long e = ERR_peek_last_error();
     ERR_error_string_n(e, buf, sizeof(buf));
-    Debug("ssl.error.connect", "SSL connect returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, buf);
+    DbgPrint(dbg_ctl_ssl_error_connect, "SSL connect returned %d, 
ssl_error=%d, ERR_get_error=%ld (%s)", ret, ssl_error, e, buf);
   }
 
   return ssl_error;
@@ -2353,11 +2367,11 @@ SSLNetVConnection::_ssl_write_buffer(const void *buf, 
int64_t nbytes, int64_t &n
     return SSL_ERROR_NONE;
   }
   int ssl_error = SSL_get_error(ssl, ret);
-  if (ssl_error == SSL_ERROR_SSL && is_debug_tag_set("ssl.error.write")) {
+  if (ssl_error == SSL_ERROR_SSL && dbg_ctl_ssl_error_write.on()) {
     char tempbuf[512];
     unsigned long e = ERR_peek_last_error();
     ERR_error_string_n(e, tempbuf, sizeof(tempbuf));
-    Debug("ssl.error.write", "SSL write returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, tempbuf);
+    DbgPrint(dbg_ctl_ssl_error_write, "SSL write returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, tempbuf);
   }
   return ssl_error;
 }
@@ -2380,7 +2394,7 @@ SSLNetVConnection::_ssl_read_buffer(void *buf, int64_t 
nbytes, int64_t &nread)
     }
 
     if (early_data_len > 0) {
-      Debug("ssl_early_data", "Reading from early data buffer.");
+      Dbg(dbg_ctl_ssl_early_data, "Reading from early data buffer.");
       this->_increment_early_data_len(this->_early_data_reader->read(buf, 
nbytes < early_data_len ? nbytes : early_data_len));
 
       if (nbytes < early_data_len) {
@@ -2398,7 +2412,7 @@ SSLNetVConnection::_ssl_read_buffer(void *buf, int64_t 
nbytes, int64_t &nread)
     if (early_data_enabled && !this->_early_data_finish) {
       bool had_error_on_reading_early_data = false;
       bool finished_reading_early_data     = false;
-      Debug("ssl_early_data", "More early data to read.");
+      Dbg(dbg_ctl_ssl_early_data, "More early data to read.");
       ssl_error_t ssl_error = SSL_ERROR_NONE;
       int ret;
 #if HAVE_SSL_READ_EARLY_DATA
@@ -2437,22 +2451,22 @@ SSLNetVConnection::_ssl_read_buffer(void *buf, int64_t 
nbytes, int64_t &nread)
 #endif
 
       if (had_error_on_reading_early_data) {
-        Debug("ssl_early_data", "Error reading early data: %s", 
ERR_error_string(ERR_get_error(), nullptr));
+        Dbg(dbg_ctl_ssl_early_data, "Error reading early data: %s", 
ERR_error_string(ERR_get_error(), nullptr));
       } else {
         if ((nread = read_bytes) > 0) {
           this->_increment_early_data_len(read_bytes);
           SSL_INCREMENT_DYN_STAT(ssl_early_data_received_count);
-          if (is_debug_tag_set("ssl_early_data_show_received")) {
+          if (dbg_ctl_ssl_early_data_show_received.on()) {
             std::string early_data_str(reinterpret_cast<char *>(buf), nread);
-            Debug("ssl_early_data_show_received", "Early data buffer: \n%s", 
early_data_str.c_str());
+            DbgPrint(dbg_ctl_ssl_early_data_show_received, "Early data buffer: 
\n%s", early_data_str.c_str());
           }
         }
 
         if (finished_reading_early_data) {
           this->_early_data_finish = true;
-          Debug("ssl_early_data", "SSL_READ_EARLY_DATA_FINISH: size = %" 
PRId64, nread);
+          Dbg(dbg_ctl_ssl_early_data, "SSL_READ_EARLY_DATA_FINISH: size = %" 
PRId64, nread);
         } else {
-          Debug("ssl_early_data", "SSL_READ_EARLY_DATA_SUCCESS: size = %" 
PRId64, nread);
+          Dbg(dbg_ctl_ssl_early_data, "SSL_READ_EARLY_DATA_SUCCESS: size = %" 
PRId64, nread);
         }
       }
       return ssl_error;
@@ -2466,11 +2480,11 @@ SSLNetVConnection::_ssl_read_buffer(void *buf, int64_t 
nbytes, int64_t &nread)
     return SSL_ERROR_NONE;
   }
   int ssl_error = SSL_get_error(ssl, ret);
-  if (ssl_error == SSL_ERROR_SSL && is_debug_tag_set("ssl.error.read")) {
+  if (ssl_error == SSL_ERROR_SSL && dbg_ctl_ssl_error_read.on()) {
     char tempbuf[512];
     unsigned long e = ERR_peek_last_error();
     ERR_error_string_n(e, tempbuf, sizeof(tempbuf));
-    Debug("ssl.error.read", "SSL read returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, tempbuf);
+    DbgPrint(dbg_ctl_ssl_error_read, "SSL read returned %d, ssl_error=%d, 
ERR_get_error=%ld (%s)", ret, ssl_error, e, tempbuf);
   }
 
   return ssl_error;
@@ -2525,19 +2539,19 @@ SSLNetVConnection::update_early_data_config(uint32_t 
max_early_data, uint32_t re
   bool ret1 = false;
   bool ret2 = false;
   if ((ret1 = SSL_set_max_early_data(ssl, max_early_data)) == 1) {
-    Debug("ssl_early_data", "SSL_set_max_early_data %u: success", 
max_early_data);
+    Dbg(dbg_ctl_ssl_early_data, "SSL_set_max_early_data %u: success", 
max_early_data);
   } else {
-    Debug("ssl_early_data", "SSL_set_max_early_data %u: failed", 
max_early_data);
+    Dbg(dbg_ctl_ssl_early_data, "SSL_set_max_early_data %u: failed", 
max_early_data);
   }
 
   if ((ret2 = SSL_set_recv_max_early_data(ssl, recv_max_early_data)) == 1) {
-    Debug("ssl_early_data", "SSL_set_recv_max_early_data %u: success", 
recv_max_early_data);
+    Dbg(dbg_ctl_ssl_early_data, "SSL_set_recv_max_early_data %u: success", 
recv_max_early_data);
   } else {
-    Debug("ssl_early_data", "SSL_set_recv_max_early_data %u: failed", 
recv_max_early_data);
+    Dbg(dbg_ctl_ssl_early_data, "SSL_set_recv_max_early_data %u: failed", 
recv_max_early_data);
   }
 
   if (ret1 && ret2) {
-    Debug("ssl_early_data", "Must disable anti-replay if 0-rtt is enabled.");
+    Dbg(dbg_ctl_ssl_early_data, "Must disable anti-replay if 0-rtt is 
enabled.");
     SSL_set_options(ssl, SSL_OP_NO_ANTI_REPLAY);
   }
 #else
diff --git a/iocore/net/SSLSNIConfig.cc b/iocore/net/SSLSNIConfig.cc
index 2cbe7c2dcf..e3aada4dc6 100644
--- a/iocore/net/SSLSNIConfig.cc
+++ b/iocore/net/SSLSNIConfig.cc
@@ -50,6 +50,9 @@
 
 static constexpr int OVECSIZE{30};
 
+static DbgCtl dbg_ctl_ssl{"ssl"};
+static DbgCtl dbg_ctl_ssl_sni{"ssl_sni"};
+
 ////
 // NamedElement
 //
@@ -80,7 +83,7 @@ NamedElement::set_glob_name(std::string name)
   while ((pos = name.find('*', pos)) != std::string::npos) {
     name.replace(pos, 1, "(.{0,})");
   }
-  Debug("ssl_sni", "Regexed fqdn=%s", name.c_str());
+  Dbg(dbg_ctl_ssl_sni, "Regexed fqdn=%s", name.c_str());
   set_regex_name(name);
 }
 
@@ -118,7 +121,7 @@ SNIConfigParams::load_sni_config()
     auto &ai = sni_action_list.emplace_back();
     ai.set_glob_name(item.fqdn);
     ai.inbound_port_ranges = item.inbound_port_ranges;
-    Debug("ssl", "name: %s", item.fqdn.data());
+    Dbg(dbg_ctl_ssl, "name: %s", item.fqdn.data());
 
     item.populate_sni_actions(ai.actions);
     if (!set_next_hop_properties(item)) {
@@ -268,7 +271,7 @@ SNIConfig::startup()
 int
 SNIConfig::reconfigure()
 {
-  Debug("ssl", "Reload SNI file");
+  Dbg(dbg_ctl_ssl, "Reload SNI file");
   SNIConfigParams *params = new SNIConfigParams;
 
   bool retStatus = params->initialize();
diff --git a/iocore/net/TLSSNISupport.cc b/iocore/net/TLSSNISupport.cc
index 88378a8141..36a5377791 100644
--- a/iocore/net/TLSSNISupport.cc
+++ b/iocore/net/TLSSNISupport.cc
@@ -29,6 +29,13 @@
 
 int TLSSNISupport::_ex_data_index = -1;
 
+namespace
+{
+
+DbgCtl dbg_ctl_ssl_sni{"ssl_sni"};
+
+} // end anonymous namespace
+
 void
 TLSSNISupport::initialize()
 {
@@ -61,14 +68,14 @@ TLSSNISupport::perform_sni_action()
 {
   const char *servername = this->get_sni_server_name();
   if (!servername) {
-    Debug("ssl_sni", "No servername provided");
+    Dbg(dbg_ctl_ssl_sni, "No servername provided");
     return SSL_TLSEXT_ERR_OK;
   }
 
   SNIConfig::scoped_config params;
   auto const port{this->_get_local_port()};
   if (auto const &actions = params->get({servername, std::strlen(servername)}, 
port); !actions.first) {
-    Debug("ssl_sni", "%s:%i not available in the map", servername, port);
+    Dbg(dbg_ctl_ssl_sni, "%s:%i not available in the map", servername, port);
   } else {
     for (auto &&item : *actions.first) {
       auto ret = item->SNIAction(this, actions.second);
diff --git a/iocore/net/UnixNet.cc b/iocore/net/UnixNet.cc
index 31bab7e230..44e1f3676b 100644
--- a/iocore/net/UnixNet.cc
+++ b/iocore/net/UnixNet.cc
@@ -41,6 +41,15 @@ NetHandler::Config NetHandler::global_config;
 std::bitset<std::numeric_limits<unsigned int>::digits> 
NetHandler::active_thread_types;
 const std::bitset<NetHandler::CONFIG_ITEM_COUNT> 
NetHandler::config_value_affects_per_thread_value{0x3};
 
+namespace
+{
+
+DbgCtl dbg_ctl_inactivity_cop{"inactivity_cop"};
+DbgCtl dbg_ctl_inactivity_cop_check{"inactivity_cop_check"};
+DbgCtl dbg_ctl_inactivity_cop_verbose{"inactivity_cop_verbose"};
+
+} // end anonymous namespace
+
 NetHandler *
 get_NetHandler(EThread *t)
 {
@@ -74,7 +83,7 @@ public:
     ink_hrtime now = ink_get_hrtime();
     NetHandler &nh = *get_NetHandler(this_ethread());
 
-    Debug("inactivity_cop_check", "Checking inactivity on Thread-ID #%d", 
this_ethread()->id);
+    Dbg(dbg_ctl_inactivity_cop_check, "Checking inactivity on Thread-ID #%d", 
this_ethread()->id);
     // The rest NetEvents in cop_list which are not triggered between 
InactivityCop runs.
     // Use pop() to catch any closes caused by callbacks.
     while (NetEvent *ne = nh.cop_list.pop()) {
@@ -93,8 +102,9 @@ public:
       if (ne->default_inactivity_timeout_in == -1) {
         // If no context-specific default inactivity timeout has been set by an
         // override plugin, then use the global default.
-        Debug("inactivity_cop", "vc: %p setting the global default inactivity 
timeout of %d, next_inactivity_timeout_at: %" PRId64,
-              ne, nh.config.default_inactivity_timeout, 
ne->next_inactivity_timeout_at);
+        Dbg(dbg_ctl_inactivity_cop,
+            "vc: %p setting the global default inactivity timeout of %d, 
next_inactivity_timeout_at: %" PRId64, ne,
+            nh.config.default_inactivity_timeout, 
ne->next_inactivity_timeout_at);
         
ne->set_default_inactivity_timeout(HRTIME_SECONDS(nh.config.default_inactivity_timeout));
       }
 
@@ -102,8 +112,8 @@ public:
       // The event `EVENT_INACTIVITY_TIMEOUT` only be triggered if a read
       // or write I/O operation was set by `do_io_read()` or `do_io_write()`.
       if (ne->next_inactivity_timeout_at == 0 && 
ne->default_inactivity_timeout_in > 0 && (ne->read.enabled || 
ne->write.enabled)) {
-        Debug("inactivity_cop", "vc: %p inactivity timeout not set, setting a 
default of %d", ne,
-              nh.config.default_inactivity_timeout);
+        Dbg(dbg_ctl_inactivity_cop, "vc: %p inactivity timeout not set, 
setting a default of %d", ne,
+            nh.config.default_inactivity_timeout);
         ne->use_default_inactivity_timeout = true;
         ne->next_inactivity_timeout_at     = ink_get_hrtime() + 
ne->default_inactivity_timeout_in;
         ne->inactivity_timeout_in          = 0;
@@ -113,7 +123,7 @@ public:
       if (ne->next_inactivity_timeout_at && ne->next_inactivity_timeout_at < 
now) {
         if (ne->is_default_inactivity_timeout()) {
           // track the connections that timed out due to default inactivity
-          Debug("inactivity_cop", "vc: %p timed out due to default inactivity 
timeout", ne);
+          Dbg(dbg_ctl_inactivity_cop, "vc: %p timed out due to default 
inactivity timeout", ne);
           NET_INCREMENT_DYN_STAT(default_inactivity_timeout_count_stat);
         }
         if (nh.keep_alive_queue.in(ne)) {
@@ -122,12 +132,12 @@ public:
           NET_SUM_DYN_STAT(keep_alive_queue_timeout_total_stat, diff);
           NET_INCREMENT_DYN_STAT(keep_alive_queue_timeout_count_stat);
         }
-        Debug("inactivity_cop_verbose", "ne: %p now: %" PRId64 " timeout at: 
%" PRId64 " timeout in: %" PRId64, ne,
-              ink_hrtime_to_sec(now), ne->next_inactivity_timeout_at, 
ne->inactivity_timeout_in);
+        Dbg(dbg_ctl_inactivity_cop_verbose, "ne: %p now: %" PRId64 " timeout 
at: %" PRId64 " timeout in: %" PRId64, ne,
+            ink_hrtime_to_sec(now), ne->next_inactivity_timeout_at, 
ne->inactivity_timeout_in);
         ne->callback(VC_EVENT_INACTIVITY_TIMEOUT, e);
       } else if (ne->next_activity_timeout_at && ne->next_activity_timeout_at 
< now) {
-        Debug("inactivity_cop_verbose", "active ne: %p now: %" PRId64 " 
timeout at: %" PRId64 " timeout in: %" PRId64, ne,
-              ink_hrtime_to_sec(now), ne->next_activity_timeout_at, 
ne->active_timeout_in);
+        Dbg(dbg_ctl_inactivity_cop_verbose, "active ne: %p now: %" PRId64 " 
timeout at: %" PRId64 " timeout in: %" PRId64, ne,
+            ink_hrtime_to_sec(now), ne->next_activity_timeout_at, 
ne->active_timeout_in);
         ne->callback(VC_EVENT_ACTIVE_TIMEOUT, e);
       }
     }
diff --git a/iocore/net/UnixNetAccept.cc b/iocore/net/UnixNetAccept.cc
index dac1091098..138208b6e7 100644
--- a/iocore/net/UnixNetAccept.cc
+++ b/iocore/net/UnixNetAccept.cc
@@ -30,6 +30,14 @@ using NetAcceptHandler = int (NetAccept::*)(int, void *);
 
 int NetAccept::accept_till_done = 1;
 
+namespace
+{
+
+DbgCtl dbg_ctl_iocore_net{"iocore_net"};
+DbgCtl dbg_ctl_iocore_net_accept_start{"iocore_net_accept_start"};
+
+} // end anonymous namespace
+
 static void
 safe_delay(int msec)
 {
@@ -163,7 +171,8 @@ NetAccept::init_accept_loop()
     NetAccept *a = (i < n - 1) ? clone() : this;
     snprintf(thr_name, MAX_THREAD_NAME_LENGTH, "[ACCEPT %d:%d]", i, 
ats_ip_port_host_order(&server.accept_addr));
     eventProcessor.spawn_thread(a, thr_name, stacksize);
-    Debug("iocore_net_accept_start", "Created accept thread #%d for port %d", 
i + 1, ats_ip_port_host_order(&server.accept_addr));
+    Dbg(dbg_ctl_iocore_net_accept_start, "Created accept thread #%d for port 
%d", i + 1,
+        ats_ip_port_host_order(&server.accept_addr));
   }
 }
 
@@ -439,7 +448,7 @@ NetAccept::acceptFastEvent(int event, void *ep)
         NET_SUM_DYN_STAT(net_connections_throttled_in_stat, 1);
         continue;
       }
-      Debug("iocore_net", "accepted a new socket: %d", fd);
+      Dbg(dbg_ctl_iocore_net, "accepted a new socket: %d", fd);
       NET_SUM_GLOBAL_DYN_STAT(net_tcp_accept_stat, 1);
       if (opt.send_bufsize > 0) {
         if (unlikely(SocketManager::set_sndbuf_size(fd, opt.send_bufsize))) {
@@ -468,7 +477,7 @@ NetAccept::acceptFastEvent(int event, void *ep)
     }
     // check return value from accept()
     if (res < 0) {
-      Debug("iocore_net", "received : %s", strerror(errno));
+      Dbg(dbg_ctl_iocore_net, "received : %s", strerror(errno));
       res = -errno;
       if (res == -EAGAIN || res == -ECONNABORTED
 #if defined(__linux__)
diff --git a/iocore/net/UnixNetProcessor.cc b/iocore/net/UnixNetProcessor.cc
index 90dbf5f18d..87ed2035cb 100644
--- a/iocore/net/UnixNetProcessor.cc
+++ b/iocore/net/UnixNetProcessor.cc
@@ -49,11 +49,21 @@ net_next_connection_number()
 
 NetProcessor::AcceptOptions const NetProcessor::DEFAULT_ACCEPT_OPTIONS;
 
+namespace
+{
+
+DbgCtl dbg_ctl_iocore_net_processor{"iocore_net_processor"};
+DbgCtl dbg_ctl_iocore_net_accept{"iocore_net_accept"};
+DbgCtl dbg_ctl_http_tproxy{"http_tproxy"};
+DbgCtl dbg_ctl_Socks{"Socks"};
+
+} // end anonymous namespace
+
 Action *
 UnixNetProcessor::accept(Continuation *cont, AcceptOptions const &opt)
 {
-  Debug("iocore_net_processor", "NetProcessor::accept - port %d,recv_bufsize 
%d, send_bufsize %d, sockopt 0x%0x", opt.local_port,
-        opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
+  Dbg(dbg_ctl_iocore_net_processor, "NetProcessor::accept - port 
%d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0x",
+      opt.local_port, opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
 
   return accept_internal(cont, NO_FD, opt);
 }
@@ -61,8 +71,8 @@ UnixNetProcessor::accept(Continuation *cont, AcceptOptions 
const &opt)
 Action *
 UnixNetProcessor::main_accept(Continuation *cont, SOCKET fd, AcceptOptions 
const &opt)
 {
-  Debug("iocore_net_processor", "NetProcessor::main_accept - port 
%d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0x",
-        opt.local_port, opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
+  Dbg(dbg_ctl_iocore_net_processor, "NetProcessor::main_accept - port 
%d,recv_bufsize %d, send_bufsize %d, sockopt 0x%0x",
+      opt.local_port, opt.recv_bufsize, opt.send_bufsize, opt.sockopt_flags);
   return accept_internal(cont, fd, opt);
 }
 
@@ -78,7 +88,7 @@ UnixNetProcessor::accept_internal(Continuation *cont, int fd, 
AcceptOptions cons
 
   NetAccept *na = createNetAccept(opt);
   na->id        = ink_atomic_increment(&net_accept_number, 1);
-  Debug("iocore_net_accept", "creating new net accept number %d", na->id);
+  Dbg(dbg_ctl_iocore_net_accept, "creating new net accept number %d", na->id);
 
   // Fill in accept thread from configuration if necessary.
   if (opt.accept_threads < 0) {
@@ -108,11 +118,11 @@ UnixNetProcessor::accept_internal(Continuation *cont, int 
fd, AcceptOptions cons
   ats_ip_copy(&na->server.accept_addr, &accept_ip);
 
   if (opt.f_inbound_transparent) {
-    Debug("http_tproxy", "Marked accept server %p on port %d as inbound 
transparent", na, opt.local_port);
+    Dbg(dbg_ctl_http_tproxy, "Marked accept server %p on port %d as inbound 
transparent", na, opt.local_port);
   }
 
   if (opt.f_proxy_protocol) {
-    Debug("http_tproxy", "Marked accept server %p on port %d for proxy 
protocol", na, opt.local_port);
+    Dbg(dbg_ctl_http_tproxy, "Marked accept server %p on port %d for proxy 
protocol", na, opt.local_port);
   }
 
   SessionAccept *sa = dynamic_cast<SessionAccept *>(cont);
@@ -194,7 +204,7 @@ UnixNetProcessor::connect_re(Continuation *cont, sockaddr 
const *target, NetVCOp
 
   if (using_socks) {
     char buff[INET6_ADDRPORTSTRLEN];
-    Debug("Socks", "Using Socks ip: %s", ats_ip_nptop(target, buff, 
sizeof(buff)));
+    Dbg(dbg_ctl_Socks, "Using Socks ip: %s", ats_ip_nptop(target, buff, 
sizeof(buff)));
     socksEntry = socksAllocator.alloc();
     // The socksEntry->init() will get the origin server addr by 
vc->get_remote_addr(),
     //   and save it to socksEntry->req_data.dest_ip.
@@ -212,7 +222,7 @@ UnixNetProcessor::connect_re(Continuation *cont, sockaddr 
const *target, NetVCOp
     result      = &socksEntry->action_;
     vc->action_ = socksEntry;
   } else {
-    Debug("Socks", "Not Using Socks %d ", socks_conf_stuff->socks_needed);
+    Dbg(dbg_ctl_Socks, "Not Using Socks %d ", socks_conf_stuff->socks_needed);
     vc->action_ = cont;
   }
 
diff --git a/iocore/net/UnixUDPConnection.cc b/iocore/net/UnixUDPConnection.cc
index 92b9e60235..736b2ca6b1 100644
--- a/iocore/net/UnixUDPConnection.cc
+++ b/iocore/net/UnixUDPConnection.cc
@@ -32,6 +32,13 @@
 #include "P_Net.h"
 #include "P_UDPNet.h"
 
+namespace
+{
+
+DbgCtl dbg_ctl_udpnet{"udpnet"};
+
+} // end anonymous namespace
+
 UnixUDPConnection::~UnixUDPConnection()
 {
   UDPPacket *p = nullptr;
@@ -49,7 +56,7 @@ UnixUDPConnection::~UnixUDPConnection()
     callbackAction->cancel();
     callbackAction = nullptr;
   }
-  Debug("udpnet", "Destroying udp port = %d", getPortNum());
+  Dbg(dbg_ctl_udpnet, "Destroying udp port = %d", getPortNum());
   if (fd != NO_FD) {
     SocketManager::close(fd);
   }
@@ -79,7 +86,7 @@ UnixUDPConnection::callbackHandler(int event, void *data)
     UDPPacket *p = nullptr;
     SList(UDPPacket, alink) aq(inQueue.popall());
 
-    Debug("udpnet", "UDPConnection::callbackHandler");
+    Dbg(dbg_ctl_udpnet, "UDPConnection::callbackHandler");
     Queue<UDPPacket> result;
     while ((p = aq.pop())) {
       result.push(p);
diff --git a/iocore/net/UnixUDPNet.cc b/iocore/net/UnixUDPNet.cc
index 285e64d1e3..c8df421238 100644
--- a/iocore/net/UnixUDPNet.cc
+++ b/iocore/net/UnixUDPNet.cc
@@ -65,7 +65,13 @@ namespace
 #ifdef HAVE_RECVMMSG
 const uint32_t MAX_RECEIVE_MSG_PER_CALL{16}; //< VLEN parameter for the 
recvmmsg call.
 #endif
-}; // namespace
+
+DbgCtl dbg_ctl_udpnet{"udpnet"};
+DbgCtl dbg_ctl_udp_read{"udp-read"};
+DbgCtl dbg_ctl_udp_send{"udp-send"};
+DbgCtl dbg_ctl_iocore_udp_main{"iocore_udp_main-send"};
+
+} // end anonymous namespace
 
 UDPPacket *
 UDPPacket::new_UDPPacket()
@@ -423,7 +429,7 @@ 
UDPNetProcessorInternal::read_single_message_from_net(UDPNetHandler *nh, UDPConn
 
     // truncated check
     if (msg.msg_flags & MSG_TRUNC) {
-      Debug("udp-read", "The UDP packet is truncated");
+      Dbg(dbg_ctl_udp_read, "The UDP packet is truncated");
     }
 
     safe_getsockname(xuc->getFd(), reinterpret_cast<struct sockaddr 
*>(&toaddr), &toaddr_len);
@@ -442,8 +448,8 @@ 
UDPNetProcessorInternal::read_single_message_from_net(UDPNetHandler *nh, UDPConn
     }
 
     // If gro was used, then the kernel will tell us the size of each part 
that was spliced together.
-    Debug("udp-read", "Received %lld bytes. gso_size %lld (%s)", 
static_cast<long long>(r), static_cast<long long>(gso_size),
-          (gso_size > 0 ? "GRO" : "No GRO"));
+    Dbg(dbg_ctl_udp_read, "Received %lld bytes. gso_size %lld (%s)", 
static_cast<long long>(r), static_cast<long long>(gso_size),
+        (gso_size > 0 ? "GRO" : "No GRO"));
 
     IOBufferBlock *block;
     int64_t remaining{r};
@@ -464,7 +470,7 @@ 
UDPNetProcessorInternal::read_single_message_from_net(UDPNetHandler *nh, UDPConn
           block->next    = nullptr;
         }
       }
-      Debug("udp-read", "Creating packet");
+      Dbg(dbg_ctl_udp_read, "Creating packet");
       // create packet
       UDPPacket *p = 
UDPPacket::new_incoming_UDPPacket(ats_ip_sa_cast(&fromaddr), 
ats_ip_sa_cast(&toaddr), chain);
       p->setConnection(uc);
@@ -479,7 +485,7 @@ 
UDPNetProcessorInternal::read_single_message_from_net(UDPNetHandler *nh, UDPConn
     iters++;
   } while (r > 0);
   if (iters >= 1) {
-    Debug("udp-read", "read %d at a time", iters);
+    Dbg(dbg_ctl_udp_read, "read %d at a time", iters);
   }
   // if not already on to-be-called-back queue, then add it.
   if (!uc->onCallbackQueue) {
@@ -553,25 +559,25 @@ 
UDPNetProcessorInternal::read_multiple_messages_from_net(UDPNetHandler *nh, UDPC
   const int return_val = SocketManager::recvmmsg(uc->getFd(), mmsg, 
MAX_RECEIVE_MSG_PER_CALL, MSG_WAITFORONE, nullptr);
 
   if (return_val <= 0) {
-    Debug("udp-read", "Done. recvmmsg() ret is %d, errno %s", return_val, 
strerror(errno));
+    Dbg(dbg_ctl_udp_read, "Done. recvmmsg() ret is %d, errno %s", return_val, 
strerror(errno));
     return;
   }
-  Debug("udp-read", "recvmmsg() read %d packets", return_val);
+  Dbg(dbg_ctl_udp_read, "recvmmsg() read %d packets", return_val);
 
   Ptr<IOBufferBlock> chain, next_chain;
   for (auto packet_num = 0; packet_num < return_val; packet_num++) {
     gso_size = 0;
 
-    Debug("udp-read", "Processing message %d from a total of %d", packet_num, 
return_val);
+    Dbg(dbg_ctl_udp_read, "Processing message %d from a total of %d", 
packet_num, return_val);
     struct msghdr &mhdr = mmsg[packet_num].msg_hdr;
 
     if (mhdr.msg_flags & MSG_TRUNC) {
-      Debug("udp-read", "The UDP packet is truncated");
+      Dbg(dbg_ctl_udp_read, "The UDP packet is truncated");
       break;
     }
 
     if (mhdr.msg_namelen <= 0) {
-      Debug("udp-read", "Unable to get remote address from recvmmsg() for fd: 
%d", uc->getFd());
+      Dbg(dbg_ctl_udp_read, "Unable to get remote address from recvmmsg() for 
fd: %d", uc->getFd());
       return;
     }
 
@@ -596,8 +602,8 @@ 
UDPNetProcessorInternal::read_multiple_messages_from_net(UDPNetHandler *nh, UDPC
     total_bytes_read       += received;
 
     // If gro was used, then the kernel will tell us the size of each part 
that was spliced together.
-    Debug("udp-read", "Received %lld bytes. gso_size %lld (%s)", 
static_cast<long long>(received), static_cast<long long>(gso_size),
-          (gso_size > 0 ? "GRO" : "No GRO"));
+    Dbg(dbg_ctl_udp_read, "Received %lld bytes. gso_size %lld (%s)", 
static_cast<long long>(received),
+        static_cast<long long>(gso_size), (gso_size > 0 ? "GRO" : "No GRO"));
 
     auto chain = buffer_chain[packet_num];
     IOBufferBlock *block;
@@ -619,7 +625,7 @@ 
UDPNetProcessorInternal::read_multiple_messages_from_net(UDPNetHandler *nh, UDPC
           block->next    = nullptr;
         }
       }
-      Debug("udp-read", "Creating packet");
+      Dbg(dbg_ctl_udp_read, "Creating packet");
       // create packet
       UDPPacket *p =
         
UDPPacket::new_incoming_UDPPacket(ats_ip_sa_cast(&fromaddr[packet_num]), 
ats_ip_sa_cast(&toaddr[packet_num]), chain);
@@ -632,7 +638,7 @@ 
UDPNetProcessorInternal::read_multiple_messages_from_net(UDPNetHandler *nh, UDPC
       next_chain = nullptr;
     }
   }
-  Debug("udp-read", "Total bytes read %ld from %d packets.", total_bytes_read, 
return_val);
+  Dbg(dbg_ctl_udp_read, "Total bytes read %ld from %d packets.", 
total_bytes_read, return_val);
 
   // if not already on to-be-called-back queue, then add it.
   if (!uc->onCallbackQueue) {
@@ -1049,12 +1055,12 @@ UDPNetProcessor::CreateUDPSocket(int *resfd, sockaddr 
const *remote_addr, Action
 
   if (opt.socket_recv_bufsize > 0) {
     if (unlikely(SocketManager::set_rcvbuf_size(fd, opt.socket_recv_bufsize))) 
{
-      Debug("udpnet", "set_dnsbuf_size(%d) failed", opt.socket_recv_bufsize);
+      Dbg(dbg_ctl_udpnet, "set_dnsbuf_size(%d) failed", 
opt.socket_recv_bufsize);
     }
   }
   if (opt.socket_send_bufsize > 0) {
     if (unlikely(SocketManager::set_sndbuf_size(fd, opt.socket_send_bufsize))) 
{
-      Debug("udpnet", "set_dnsbuf_size(%d) failed", opt.socket_send_bufsize);
+      Dbg(dbg_ctl_udpnet, "set_dnsbuf_size(%d) failed", 
opt.socket_send_bufsize);
     }
   }
 
@@ -1071,7 +1077,7 @@ UDPNetProcessor::CreateUDPSocket(int *resfd, sockaddr 
const *remote_addr, Action
     }
 #endif
     if (!succeeded) {
-      Debug("udpnet", "setsockeopt for pktinfo failed");
+      Dbg(dbg_ctl_udpnet, "setsockeopt for pktinfo failed");
       goto HardError;
     }
   } else if (opt.ip_family == AF_INET6) {
@@ -1087,7 +1093,7 @@ UDPNetProcessor::CreateUDPSocket(int *resfd, sockaddr 
const *remote_addr, Action
     }
 #endif
     if (!succeeded) {
-      Debug("udpnet", "setsockeopt for pktinfo failed");
+      Dbg(dbg_ctl_udpnet, "setsockeopt for pktinfo failed");
       goto HardError;
     }
   }
@@ -1095,23 +1101,23 @@ UDPNetProcessor::CreateUDPSocket(int *resfd, sockaddr 
const *remote_addr, Action
   if (local_addr.network_order_port() || !is_any_address) {
     if (-1 == SocketManager::ink_bind(fd, &local_addr.sa, 
ats_ip_size(&local_addr.sa))) {
       char buff[INET6_ADDRPORTSTRLEN];
-      Debug("udpnet", "ink bind failed on %s", ats_ip_nptop(local_addr, buff, 
sizeof(buff)));
+      Dbg(dbg_ctl_udpnet, "ink bind failed on %s", ats_ip_nptop(local_addr, 
buff, sizeof(buff)));
       goto SoftError;
     }
 
     if (safe_getsockname(fd, &local_addr.sa, &local_addr_len) < 0) {
-      Debug("udpnet", "CreateUdpsocket: getsockname didn't work");
+      Dbg(dbg_ctl_udpnet, "CreateUdpsocket: getsockname didn't work");
       goto HardError;
     }
   }
 
   *resfd  = fd;
   *status = nullptr;
-  Debug("udpnet", "creating a udp socket port = %d, %d---success", 
ats_ip_port_host_order(remote_addr),
-        ats_ip_port_host_order(local_addr));
+  Dbg(dbg_ctl_udpnet, "creating a udp socket port = %d, %d---success", 
ats_ip_port_host_order(remote_addr),
+      ats_ip_port_host_order(local_addr));
   return true;
 SoftError:
-  Debug("udpnet", "creating a udp socket port = %d---soft failure", 
ats_ip_port_host_order(local_addr));
+  Dbg(dbg_ctl_udpnet, "creating a udp socket port = %d---soft failure", 
ats_ip_port_host_order(local_addr));
   if (fd != -1) {
     SocketManager::close(fd);
   }
@@ -1119,7 +1125,7 @@ SoftError:
   *status = nullptr;
   return false;
 HardError:
-  Debug("udpnet", "creating a udp socket port = %d---hard failure", 
ats_ip_port_host_order(local_addr));
+  Dbg(dbg_ctl_udpnet, "creating a udp socket port = %d---hard failure", 
ats_ip_port_host_order(local_addr));
   if (fd != -1) {
     SocketManager::close(fd);
   }
@@ -1164,7 +1170,7 @@ UDPNetProcessor::UDPBind(Continuation *cont, sockaddr 
const *addr, int fd, int s
     }
 #endif
     if (!succeeded) {
-      Debug("udpnet", "setsockeopt for pktinfo failed");
+      Dbg(dbg_ctl_udpnet, "setsockeopt for pktinfo failed");
       goto Lerror;
     }
   } else if (addr->sa_family == AF_INET6) {
@@ -1180,7 +1186,7 @@ UDPNetProcessor::UDPBind(Continuation *cont, sockaddr 
const *addr, int fd, int s
     }
 #endif
     if (!succeeded) {
-      Debug("udpnet", "setsockeopt for pktinfo failed");
+      Dbg(dbg_ctl_udpnet, "setsockeopt for pktinfo failed");
       goto Lerror;
     }
   }
@@ -1189,9 +1195,9 @@ UDPNetProcessor::UDPBind(Continuation *cont, sockaddr 
const *addr, int fd, int s
   if (G_udp_config.enable_gro) {
     int gro = 1;
     if (safe_setsockopt(fd, IPPROTO_UDP, UDP_GRO, (char *)&gro, sizeof(gro)) 
== 0) {
-      Debug("udpnet", "setsockopt UDP_GRO ok");
+      Dbg(dbg_ctl_udpnet, "setsockopt UDP_GRO ok");
     } else {
-      Debug("udpnet", "setsockopt UDP_GRO. errno=%d", errno);
+      Dbg(dbg_ctl_udpnet, "setsockopt UDP_GRO. errno=%d", errno);
     }
   }
 #endif
@@ -1208,31 +1214,31 @@ UDPNetProcessor::UDPBind(Continuation *cont, sockaddr 
const *addr, int fd, int s
   }
 
   if (setsockopt_on(fd, SOL_SOCKET, SO_REUSEPORT) < 0) {
-    Debug("udpnet", "setsockopt for SO_REUSEPORT failed");
+    Dbg(dbg_ctl_udpnet, "setsockopt for SO_REUSEPORT failed");
     goto Lerror;
   }
 
 #ifdef SO_REUSEPORT_LB
   if (setsockopt_on(fd, SOL_SOCKET, SO_REUSEPORT_LB) < 0) {
-    Debug("udpnet", "setsockopt for SO_REUSEPORT_LB failed");
+    Dbg(dbg_ctl_udpnet, "setsockopt for SO_REUSEPORT_LB failed");
     goto Lerror;
   }
 #endif
 
   if (need_bind && (SocketManager::ink_bind(fd, addr, ats_ip_size(addr)) < 0)) 
{
-    Debug("udpnet", "ink_bind failed");
+    Dbg(dbg_ctl_udpnet, "ink_bind failed");
     goto Lerror;
   }
 
   // check this for GRO
   if (recv_bufsize) {
     if (unlikely(SocketManager::set_rcvbuf_size(fd, recv_bufsize))) {
-      Debug("udpnet", "set_dnsbuf_size(%d) failed", recv_bufsize);
+      Dbg(dbg_ctl_udpnet, "set_dnsbuf_size(%d) failed", recv_bufsize);
     }
   }
   if (send_bufsize) {
     if (unlikely(SocketManager::set_sndbuf_size(fd, send_bufsize))) {
-      Debug("udpnet", "set_dnsbuf_size(%d) failed", send_bufsize);
+      Dbg(dbg_ctl_udpnet, "set_dnsbuf_size(%d) failed", send_bufsize);
     }
   }
   if (safe_getsockname(fd, &myaddr.sa, &myaddr_len) < 0) {
@@ -1240,7 +1246,7 @@ UDPNetProcessor::UDPBind(Continuation *cont, sockaddr 
const *addr, int fd, int s
   }
   n = new UnixUDPConnection(fd);
 
-  Debug("udpnet", "UDPNetProcessor::UDPBind: %p fd=%d", n, fd);
+  Dbg(dbg_ctl_udpnet, "UDPNetProcessor::UDPBind: %p fd=%d", n, fd);
   n->setBinding(&myaddr.sa);
   n->bindToThread(cont, cont->getThreadAffinity());
 
@@ -1255,7 +1261,7 @@ Lerror:
   if (fd != NO_FD) {
     SocketManager::close(fd);
   }
-  Debug("udpnet", "Error: %s (%d)", strerror(errno), errno);
+  Dbg(dbg_ctl_udpnet, "Error: %s (%d)", strerror(errno), errno);
 
   cont->handleEvent(NET_EVENT_DATAGRAM_ERROR, nullptr);
   return ACTION_IO_ERROR;
@@ -1299,7 +1305,7 @@ UDPQueue::service(UDPNetHandler *nh)
     ink_assert(p->link.prev == nullptr);
     ink_assert(p->link.next == nullptr);
     // insert into our queue.
-    Debug("udp-send", "Adding %p", p);
+    Dbg(dbg_ctl_udp_send, "Adding %p", p);
     if (p->p.conn->lastPktStartTime == 0) {
       pktSendStartTime = std::max(now, p->p.delivery_time);
     } else {
@@ -1403,7 +1409,7 @@ UDPQueue::SendUDPPacket(UDPPacket *p)
   int n, count = 0;
 
   p->p.conn->lastSentPktStartTime = p->p.delivery_time;
-  Debug("udp-send", "Sending %p", p);
+  Dbg(dbg_ctl_udp_send, "Sending %p", p);
 
   msg.msg_control    = nullptr;
   msg.msg_controllen = 0;
@@ -1450,11 +1456,11 @@ UDPQueue::SendUDPPacket(UDPPacket *p)
           ++count;
           if ((g_udp_numSendRetries > 0) && (count >= g_udp_numSendRetries)) {
             // tried too many times; give up
-            Debug("udpnet", "Send failed: too many retries");
+            Dbg(dbg_ctl_udpnet, "Send failed: too many retries");
             return;
           }
         } else {
-          Debug("udp-send", "Error: %s (%d)", strerror(errno), errno);
+          Dbg(dbg_ctl_udp_send, "Error: %s (%d)", strerror(errno), errno);
           return;
         }
       }
@@ -1478,11 +1484,11 @@ UDPQueue::SendUDPPacket(UDPPacket *p)
             ++count;
             if ((g_udp_numSendRetries > 0) && (count >= g_udp_numSendRetries)) 
{
               // tried too many times; give up
-              Debug("udpnet", "Send failed: too many retries");
+              Dbg(dbg_ctl_udpnet, "Send failed: too many retries");
               return;
             }
           } else {
-            Debug("udp-send", "Error: %s (%d)", strerror(errno), errno);
+            Dbg(dbg_ctl_udp_send, "Error: %s (%d)", strerror(errno), errno);
             return;
           }
         }
@@ -1511,7 +1517,7 @@ UDPQueue::SendUDPPacket(UDPPacket *p)
       if ((n >= 0) || (errno != EAGAIN)) {
         // send succeeded or some random error happened.
         if (n < 0) {
-          Debug("udp-send", "Error: %s (%d)", strerror(errno), errno);
+          Dbg(dbg_ctl_udp_send, "Error: %s (%d)", strerror(errno), errno);
         }
 
         break;
@@ -1520,7 +1526,7 @@ UDPQueue::SendUDPPacket(UDPPacket *p)
         ++count;
         if ((g_udp_numSendRetries > 0) && (count >= g_udp_numSendRetries)) {
           // tried too many times; give up
-          Debug("udpnet", "Send failed: too many retries");
+          Dbg(dbg_ctl_udpnet, "Send failed: too many retries");
           break;
         }
       }
@@ -1656,15 +1662,15 @@ UDPQueue::SendMultipleUDPPackets(UDPPacket **p, 
uint16_t n)
 #ifdef SOL_UDP
     if (use_udp_gso && errno == EIO) {
       Warning("Disabling UDP GSO due to an error");
-      Debug("udp-send", "Disabling UDP GSO due to an error");
+      Dbg(dbg_ctl_udp_send, "Disabling UDP GSO due to an error");
       use_udp_gso = false;
       return SendMultipleUDPPackets(p, n);
     } else {
-      Debug("udp-send", "udp_gso=%d res=%d errno=%d", use_udp_gso, res, errno);
+      Dbg(dbg_ctl_udp_send, "udp_gso=%d res=%d errno=%d", use_udp_gso, res, 
errno);
       return res;
     }
 #else
-    Debug("udp-send", "res=%d errno=%d", res, errno);
+    Dbg(dbg_ctl_udp_send, "res=%d errno=%d", res, errno);
     return res;
 #endif
   }
@@ -1673,7 +1679,7 @@ UDPQueue::SendMultipleUDPPackets(UDPPacket **p, uint16_t 
n)
 #ifdef SOL_UDP
     if (use_udp_gso) {
       ink_assert(res <= n);
-      Debug("udp-send", "Sent %d messages by processing %d UDPPackets (GSO)", 
res, n);
+      Dbg(dbg_ctl_udp_send, "Sent %d messages by processing %d UDPPackets 
(GSO)", res, n);
     } else {
 #endif
       int i    = 0;
@@ -1685,7 +1691,7 @@ UDPQueue::SendMultipleUDPPackets(UDPPacket **p, uint16_t 
n)
           res -= (p[i]->p.chain.get()->size() / p[i]->p.segment_size) + 
((p[i]->p.chain.get()->size() % p[i]->p.segment_size) != 0);
         }
       }
-      Debug("udp-send", "Sent %d messages by processing %d UDPPackets", nmsg, 
i);
+      Dbg(dbg_ctl_udp_send, "Sent %d messages by processing %d UDPPackets", 
nmsg, i);
       res = i;
 #ifdef SOL_UDP
     }


Reply via email to