You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bn...@apache.org on 2022/08/10 22:59:15 UTC

[trafficserver] branch 10-Dev updated (791941a25 -> f52e0d18c)

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

bneradt pushed a change to branch 10-Dev
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


    from 791941a25 Adding origin-side ALPN configuration. (#8972)
     add 6225b1240 Fixes issue with file size calculation for existing logs (#8971)
     add 3cccd2d94 Fix reverting PR#7302 (#8975)
     add b23e8a0d1 add a metric to track how often the range seek bug is detected (#8970)
     add cbe0beaa8 Setup UA consumer only if ua_entry is not nullptr (#8949)
     add 80a0ff9e9 Update roadmap doc with latest releases (#8977)
     add f14cce4f2 Update slice to only prefetch when first block is miss/hit-stale (#8890)
     add 8d7802fb3 Add anonymous mmdb support (#8982)
     add 86790c7a3 Change H2 frame handlers to member functions (#8988)
     add 6c5e4b57a Cleanup: Don't refer to P_*.h from header files in proxy dir (#8987)
     add 7bcfcf904 Cleanup: Remove dependency on SSLNetVC from ProxySession (#8994)
     add e912ecef7 Add RangeTransform::m_write_vio state checks (#8980)
     add 1abf6c011 Add stack guard pages (#8996)
     add ffaf1aa4e Cleanup: Simplify dependency around SSLNetVC and SNIConfig (#8995)
     add 697da390e Fix compile on M1 Mac (#8999)
     add eaef5e8d7 Fail fast on HTTP/2 header validation (#9009)
     add c56f87224 Restrict unknown scheme of HTTP/2 request (#9010)
     add 2f363d973 Add control char check in MIME Parser (#9011)
     add e92122833 Add content length mismatch check on handling HEADERS frame and CONTINUATION frame (#9012)
     add 1f3e11119 Ignore POST request case from a check for background fill (#9013)
     add 7ec147ec1 Add back validatation that the scheme matches the wire protocol (#9005)
     add 46c1a0adf Pin flask to version 2.1.3 (#9008)
     add 905ea2cc5 Make TLSSNISupport::get_sni_server_name public (#9003)
     new f52e0d18c Merge master branch into 10-Dev

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/admin-guide/files/records.config.en.rst        |  23 ++
 doc/admin-guide/plugins/maxmind_acl.en.rst         |  29 +++
 doc/admin-guide/plugins/slice.en.rst               |   5 +-
 doc/release-notes/roadmap.en.rst                   |   6 +-
 include/tscore/ParseRules.h                        |  14 +-
 iocore/cache/Cache.cc                              |   1 +
 iocore/cache/CacheRead.cc                          |   2 +
 iocore/cache/P_CacheInternal.h                     |   1 +
 iocore/dns/I_DNSProcessor.h                        |   4 +
 iocore/dns/P_DNSProcessor.h                        |   3 -
 iocore/eventsystem/UnixEventProcessor.cc           |  60 ++++-
 iocore/hostdb/I_HostDBProcessor.h                  |   1 -
 iocore/net/I_Net.h                                 |   4 -
 iocore/net/I_NetProcessor.h                        |   1 +
 iocore/net/I_NetVConnection.h                      |  47 ++++
 iocore/net/I_SessionAccept.h                       |   1 +
 iocore/net/Makefile.am                             |   4 +-
 iocore/net/P_SNIActionPerformer.h                  |  43 +---
 iocore/net/P_SSLNetVConnection.h                   |   2 +-
 iocore/net/P_SSLNextProtocolAccept.h               |   1 -
 iocore/net/P_UnixNetProcessor.h                    |   2 +
 iocore/net/P_UnixNetVConnection.h                  |  46 ----
 iocore/net/SNIActionPerformer.h                    |  69 ++++++
 iocore/net/SSLClientCoordinator.cc                 |   2 +-
 iocore/net/SSLConfig.cc                            |   2 -
 iocore/net/SSLNetVConnection.cc                    |   3 +-
 iocore/net/SSLNextProtocolAccept.cc                |   1 +
 iocore/net/SSLSNIConfig.cc                         |   3 +-
 iocore/net/{P_SSLSNI.h => SSLSNIConfig.h}          |   4 +-
 iocore/net/SSLUtils.cc                             |   3 +-
 iocore/net/TLSSNISupport.cc                        |   6 +-
 iocore/net/TLSSNISupport.h                         |   3 +-
 iocore/net/test_I_UDPNet.cc                        |   1 +
 mgmt/RecordsConfig.cc                              |   4 +
 .../cache_range_requests/cache_range_requests.cc   |  27 +++
 plugins/experimental/maxmind_acl/mmdb.cc           | 182 ++++++++++++++-
 plugins/experimental/maxmind_acl/mmdb.h            |  12 +
 plugins/experimental/memcache/tsmemcache.cc        |   2 +
 plugins/experimental/memcache/tsmemcache.h         |   2 +
 plugins/experimental/slice/Data.h                  |   2 +-
 plugins/experimental/slice/HttpHeader.h            |   3 +
 plugins/experimental/slice/prefetch.cc             |  54 +++--
 plugins/experimental/slice/prefetch.h              |  17 +-
 plugins/experimental/slice/server.cc               |   5 +
 plugins/experimental/slice/util.cc                 |  27 ++-
 proxy/CacheControl.h                               |   2 +-
 proxy/HostStatus.h                                 |   2 +-
 proxy/InkAPIInternal.h                             |   6 +-
 proxy/ParentSelection.h                            |   2 +-
 proxy/PluginVC.h                                   |   3 +-
 proxy/ProxySession.cc                              |   8 +-
 proxy/ProxySession.h                               |   1 -
 proxy/ReverseProxy.h                               |   2 +-
 proxy/StatPages.h                                  |   2 +-
 proxy/Transform.cc                                 |   8 +-
 proxy/Transform.h                                  |   2 +-
 proxy/hdrs/MIME.cc                                 |  15 ++
 proxy/hdrs/MIME.h                                  |  12 +-
 proxy/hdrs/URL.cc                                  |  42 +++-
 proxy/hdrs/URL.h                                   |   2 +
 proxy/hdrs/unit_tests/test_Hdrs.cc                 |  48 ++++
 proxy/hdrs/unit_tests/test_URL.cc                  |  21 ++
 proxy/http/Http1ClientSession.h                    |   1 -
 proxy/http/Http1ServerSession.h                    |   2 -
 proxy/http/HttpCacheSM.h                           |   2 +-
 proxy/http/HttpConfig.cc                           |   2 +
 proxy/http/HttpConfig.h                            |   5 +-
 proxy/http/HttpPages.h                             |   2 +-
 proxy/http/HttpSM.cc                               |  45 +++-
 proxy/http/HttpSM.h                                |   2 +-
 proxy/http/HttpSessionAccept.h                     |   3 +-
 proxy/http/HttpSessionManager.h                    |   2 +-
 proxy/http/HttpTransact.h                          |   3 +-
 proxy/http/HttpTunnel.h                            |  14 +-
 proxy/http/PreWarmManager.cc                       |   4 +-
 proxy/http/PreWarmManager.h                        |   8 +-
 proxy/http2/HTTP2.cc                               |  24 +-
 proxy/http2/HTTP2.h                                |   2 +-
 proxy/http2/Http2ConnectionState.cc                | 249 ++++++++++-----------
 proxy/http2/Http2ConnectionState.h                 |  25 +++
 proxy/http2/Http2Frame.h                           |   2 +-
 proxy/http2/Http2Stream.cc                         |   6 +-
 proxy/http2/Makefile.am                            |  12 +-
 proxy/http3/Http3Session.cc                        |   1 +
 proxy/logging/Log.h                                |   2 +-
 proxy/logging/LogConfig.h                          |   2 +-
 proxy/private/SSLProxySession.cc                   |  21 +-
 proxy/private/SSLProxySession.h                    |   4 +-
 src/traffic_crashlog/Makefile.inc                  |   1 +
 src/traffic_server/HostStatus.cc                   |   1 +
 src/traffic_server/InkAPI.cc                       |   1 +
 src/traffic_server/traffic_server.cc               |   1 -
 src/tscore/BaseLogFile.cc                          |   3 +-
 tests/Pipfile                                      |   1 +
 .../forward_proxy/forward_proxy.replay.yaml        |   3 -
 .../gold_tests/forward_proxy/forward_proxy.test.py |  68 ++++--
 ...ber.gold => invalid_character_in_te_value.gold} |   9 +-
 .../headers/good_request_after_bad.test.py         |   2 +-
 tests/gold_tests/logging/gold/field-json-test.gold |   5 +-
 tests/gold_tests/logging/log-field-json.test.py    |   5 +
 .../pluginTest/slice/gold/slice_prefetch.gold      |  27 +++
 .../pluginTest/slice/slice_prefetch.test.py        |  92 ++++----
 102 files changed, 1125 insertions(+), 451 deletions(-)
 create mode 100644 iocore/net/SNIActionPerformer.h
 rename iocore/net/{P_SSLSNI.h => SSLSNIConfig.h} (98%)
 copy tests/gold_tests/headers/gold/{bad_protocol_number.gold => invalid_character_in_te_value.gold} (76%)
 create mode 100644 tests/gold_tests/pluginTest/slice/gold/slice_prefetch.gold


[trafficserver] 01/01: Merge master branch into 10-Dev

Posted by bn...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bneradt pushed a commit to branch 10-Dev
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

commit f52e0d18c71129520223216589ac18b87c134cea
Merge: 791941a25 905ea2cc5
Author: Brian Neradt <br...@gmail.com>
AuthorDate: Wed Aug 10 22:58:26 2022 +0000

    Merge master branch into 10-Dev
    
    Conflicts:
          proxy/http/HttpConfig.cc

 doc/admin-guide/files/records.config.en.rst        |  23 ++
 doc/admin-guide/plugins/maxmind_acl.en.rst         |  29 +++
 doc/admin-guide/plugins/slice.en.rst               |   5 +-
 doc/release-notes/roadmap.en.rst                   |   6 +-
 include/tscore/ParseRules.h                        |  14 +-
 iocore/cache/Cache.cc                              |   1 +
 iocore/cache/CacheRead.cc                          |   2 +
 iocore/cache/P_CacheInternal.h                     |   1 +
 iocore/dns/I_DNSProcessor.h                        |   4 +
 iocore/dns/P_DNSProcessor.h                        |   3 -
 iocore/eventsystem/UnixEventProcessor.cc           |  60 ++++-
 iocore/hostdb/I_HostDBProcessor.h                  |   1 -
 iocore/net/I_Net.h                                 |   4 -
 iocore/net/I_NetProcessor.h                        |   1 +
 iocore/net/I_NetVConnection.h                      |  47 ++++
 iocore/net/I_SessionAccept.h                       |   1 +
 iocore/net/Makefile.am                             |   4 +-
 iocore/net/P_SNIActionPerformer.h                  |  43 +---
 iocore/net/P_SSLNetVConnection.h                   |   2 +-
 iocore/net/P_SSLNextProtocolAccept.h               |   1 -
 iocore/net/P_UnixNetProcessor.h                    |   2 +
 iocore/net/P_UnixNetVConnection.h                  |  46 ----
 iocore/net/SNIActionPerformer.h                    |  69 ++++++
 iocore/net/SSLClientCoordinator.cc                 |   2 +-
 iocore/net/SSLConfig.cc                            |   2 -
 iocore/net/SSLNetVConnection.cc                    |   3 +-
 iocore/net/SSLNextProtocolAccept.cc                |   1 +
 iocore/net/SSLSNIConfig.cc                         |   3 +-
 iocore/net/{P_SSLSNI.h => SSLSNIConfig.h}          |   4 +-
 iocore/net/SSLUtils.cc                             |   3 +-
 iocore/net/TLSSNISupport.cc                        |   6 +-
 iocore/net/TLSSNISupport.h                         |   3 +-
 iocore/net/test_I_UDPNet.cc                        |   1 +
 mgmt/RecordsConfig.cc                              |   4 +
 .../cache_range_requests/cache_range_requests.cc   |  27 +++
 plugins/experimental/maxmind_acl/mmdb.cc           | 182 ++++++++++++++-
 plugins/experimental/maxmind_acl/mmdb.h            |  12 +
 plugins/experimental/memcache/tsmemcache.cc        |   2 +
 plugins/experimental/memcache/tsmemcache.h         |   2 +
 plugins/experimental/slice/Data.h                  |   2 +-
 plugins/experimental/slice/HttpHeader.h            |   3 +
 plugins/experimental/slice/prefetch.cc             |  54 +++--
 plugins/experimental/slice/prefetch.h              |  17 +-
 plugins/experimental/slice/server.cc               |   5 +
 plugins/experimental/slice/util.cc                 |  27 ++-
 proxy/CacheControl.h                               |   2 +-
 proxy/HostStatus.h                                 |   2 +-
 proxy/InkAPIInternal.h                             |   6 +-
 proxy/ParentSelection.h                            |   2 +-
 proxy/PluginVC.h                                   |   3 +-
 proxy/ProxySession.cc                              |   8 +-
 proxy/ProxySession.h                               |   1 -
 proxy/ReverseProxy.h                               |   2 +-
 proxy/StatPages.h                                  |   2 +-
 proxy/Transform.cc                                 |   8 +-
 proxy/Transform.h                                  |   2 +-
 proxy/hdrs/MIME.cc                                 |  15 ++
 proxy/hdrs/MIME.h                                  |  12 +-
 proxy/hdrs/URL.cc                                  |  42 +++-
 proxy/hdrs/URL.h                                   |   2 +
 proxy/hdrs/unit_tests/test_Hdrs.cc                 |  48 ++++
 proxy/hdrs/unit_tests/test_URL.cc                  |  21 ++
 proxy/http/Http1ClientSession.h                    |   1 -
 proxy/http/Http1ServerSession.h                    |   2 -
 proxy/http/HttpCacheSM.h                           |   2 +-
 proxy/http/HttpConfig.cc                           |   2 +
 proxy/http/HttpConfig.h                            |   5 +-
 proxy/http/HttpPages.h                             |   2 +-
 proxy/http/HttpSM.cc                               |  45 +++-
 proxy/http/HttpSM.h                                |   2 +-
 proxy/http/HttpSessionAccept.h                     |   3 +-
 proxy/http/HttpSessionManager.h                    |   2 +-
 proxy/http/HttpTransact.h                          |   3 +-
 proxy/http/HttpTunnel.h                            |  14 +-
 proxy/http/PreWarmManager.cc                       |   4 +-
 proxy/http/PreWarmManager.h                        |   8 +-
 proxy/http2/HTTP2.cc                               |  24 +-
 proxy/http2/HTTP2.h                                |   2 +-
 proxy/http2/Http2ConnectionState.cc                | 249 ++++++++++-----------
 proxy/http2/Http2ConnectionState.h                 |  25 +++
 proxy/http2/Http2Frame.h                           |   2 +-
 proxy/http2/Http2Stream.cc                         |   6 +-
 proxy/http2/Makefile.am                            |  12 +-
 proxy/http3/Http3Session.cc                        |   1 +
 proxy/logging/Log.h                                |   2 +-
 proxy/logging/LogConfig.h                          |   2 +-
 proxy/private/SSLProxySession.cc                   |  21 +-
 proxy/private/SSLProxySession.h                    |   4 +-
 src/traffic_crashlog/Makefile.inc                  |   1 +
 src/traffic_server/HostStatus.cc                   |   1 +
 src/traffic_server/InkAPI.cc                       |   1 +
 src/traffic_server/traffic_server.cc               |   1 -
 src/tscore/BaseLogFile.cc                          |   3 +-
 tests/Pipfile                                      |   1 +
 .../forward_proxy/forward_proxy.replay.yaml        |   3 -
 .../gold_tests/forward_proxy/forward_proxy.test.py |  68 ++++--
 .../gold/invalid_character_in_te_value.gold        |  23 ++
 .../headers/good_request_after_bad.test.py         |   2 +-
 tests/gold_tests/logging/gold/field-json-test.gold |   5 +-
 tests/gold_tests/logging/log-field-json.test.py    |   5 +
 .../pluginTest/slice/gold/slice_prefetch.gold      |  27 +++
 .../pluginTest/slice/slice_prefetch.test.py        |  92 ++++----
 102 files changed, 1143 insertions(+), 447 deletions(-)

diff --cc proxy/HostStatus.h
index 2a73dbca6,1fd509866..e09155c1a
--- a/proxy/HostStatus.h
+++ b/proxy/HostStatus.h
@@@ -33,10 -33,8 +33,10 @@@
  #include <ctime>
  #include <string>
  #include <sstream>
 +#include "tscore/Filenames.h"
 +#include "tscore/I_Layout.h"
  #include "tscore/ink_rwlock.h"
- #include "records/P_RecProcess.h"
+ #include "records/I_RecProcess.h"
  
  #include <unordered_map>
  
diff --cc proxy/ProxySession.cc
index a165c2366,76afb508d..6a00e325d
--- a/proxy/ProxySession.cc
+++ b/proxy/ProxySession.cc
@@@ -24,10 -24,8 +24,10 @@@
  #include "HttpConfig.h"
  #include "HttpDebugNames.h"
  #include "ProxySession.h"
- #include "P_SSLNetVConnection.h"
+ #include "TLSBasicSupport.h"
  
 +std::map<int, std::function<PoolableSession *()>> ProtocolSessionCreateMap;
 +
  ProxySession::ProxySession() : VConnection(nullptr) {}
  
  ProxySession::ProxySession(NetVConnection *vc) : VConnection(nullptr), _vc(vc) {}
diff --cc proxy/http/HttpConfig.cc
index 0b05605a3,5b97d15aa..d1e92392d
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@@ -1411,7 -1415,7 +1411,8 @@@ HttpConfig::startup(
    HttpEstablishStaticConfigByte(c.http_host_sni_policy, "proxy.config.http.host_sni_policy");
  
    HttpEstablishStaticConfigStringAlloc(c.oride.ssl_client_sni_policy, "proxy.config.ssl.client.sni_policy");
 +  HttpEstablishStaticConfigStringAlloc(c.oride.ssl_client_alpn_protocols, "proxy.config.ssl.client.alpn_protocols");
+   HttpEstablishStaticConfigByte(c.scheme_proto_mismatch_policy, "proxy.config.ssl.client.scheme_proto_mismatch_policy");
  
    OutboundConnTrack::config_init(&c.global_outbound_conntrack, &c.oride.outbound_conntrack);
  
@@@ -1691,9 -1707,9 +1692,10 @@@ HttpConfig::reconfigure(
    params->redirect_actions_string           = ats_strdup(m_master.redirect_actions_string);
    params->redirect_actions_map = parse_redirect_actions(params->redirect_actions_string, params->redirect_actions_self_action);
    params->http_host_sni_policy = m_master.http_host_sni_policy;
+   params->scheme_proto_mismatch_policy = m_master.scheme_proto_mismatch_policy;
  
 -  params->oride.ssl_client_sni_policy = ats_strdup(m_master.oride.ssl_client_sni_policy);
 +  params->oride.ssl_client_sni_policy     = ats_strdup(m_master.oride.ssl_client_sni_policy);
 +  params->oride.ssl_client_alpn_protocols = ats_strdup(m_master.oride.ssl_client_alpn_protocols);
  
    params->negative_caching_list = m_master.negative_caching_list;
  
diff --cc proxy/http/HttpSM.cc
index 9c471e014,7ffbf4cc6..05aca69f8
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@@ -5184,11 -5192,33 +5202,10 @@@ HttpSM::do_http_server_open(bool raw
  
        ink_assert(pending_action.empty()); // in case of reschedule must not have already pending.
  
 -      // If the queue is disabled, reschedule.
 -      if (t_state.http_config_param->global_outbound_conntrack.queue_size < 0) {
 -        ct_state.enqueue();
 -        ct_state.rescheduled();
 -        pending_action = eventProcessor.schedule_in(
 -          this, HRTIME_MSECONDS(t_state.http_config_param->global_outbound_conntrack.queue_delay.count()));
 -      } else if (t_state.http_config_param->global_outbound_conntrack.queue_size > 0) { // queue enabled, check for a slot
 -        auto wcount = ct_state.enqueue();
 -        if (wcount < t_state.http_config_param->global_outbound_conntrack.queue_size) {
 -          ct_state.rescheduled();
 -          SMDebug("http", "%s", lbw().print("queued for {}\0", t_state.current.server->dst_addr).data());
 -          pending_action = eventProcessor.schedule_in(
 -            this, HRTIME_MSECONDS(t_state.http_config_param->global_outbound_conntrack.queue_delay.count()));
 -        } else {              // the queue is full
 -          ct_state.dequeue(); // release the queue slot
 -          ct_state.blocked(); // note the blockage.
 -          HTTP_INCREMENT_DYN_STAT(http_origin_connections_throttled_stat);
 -          send_origin_throttled_response();
 -        }
 -      } else { // queue size is 0, always block.
 -        ct_state.blocked();
 -        HTTP_INCREMENT_DYN_STAT(http_origin_connections_throttled_stat);
 -        send_origin_throttled_response();
 -      }
 -
 +      ct_state.blocked();
 +      HTTP_INCREMENT_DYN_STAT(http_origin_connections_throttled_stat);
        ct_state.Warn_Blocked(&t_state.txn_conf->outbound_conntrack, sm_id, ccount - 1, &t_state.current.server->dst_addr.sa,
                              debug_on && is_debug_tag_set("http") ? "http" : nullptr);
-       send_origin_throttled_response();
  
        return;
      } else {
diff --cc src/traffic_server/HostStatus.cc
index 7579a96f5,0449aeb0a..31c3c107b
--- a/src/traffic_server/HostStatus.cc
+++ b/src/traffic_server/HostStatus.cc
@@@ -20,32 -20,80 +20,33 @@@
    See the License for the specific language governing permissions and
    limitations under the License.
   */
 +#include <fstream>
  #include "HostStatus.h"
++#include "I_Tasks.h"
  #include "ProcessManager.h"
  
 -inline void
 -getStatName(std::string &stat_name, const std::string_view name)
 -{
 -  stat_name.clear();
 -  stat_name.append(stat_prefix).append(name);
 -}
 +#include "tscore/BufferWriter.h"
 +#include "rpc/jsonrpc/JsonRPC.h"
 +#include "shared/rpc/RPCRequests.h"
  
 -static void
 -mgmt_host_status_up_callback(ts::MemSpan<void> span)
 +namespace
  {
 -  MgmtInt op;
 -  MgmtMarshallString name;
 -  MgmtMarshallInt down_time;
 -  MgmtMarshallString reason_str;
 -  std::string stat_name;
 -  char buf[1024]                         = {0};
 -  char *data                             = static_cast<char *>(span.data());
 -  auto len                               = span.size();
 -  static const MgmtMarshallType fields[] = {MGMT_MARSHALL_INT, MGMT_MARSHALL_STRING, MGMT_MARSHALL_STRING, MGMT_MARSHALL_INT};
 -  Debug("host_statuses", "%s:%s:%d - data: %s, len: %ld\n", __FILE__, __func__, __LINE__, data, len);
 -
 -  if (mgmt_message_parse(data, len, fields, countof(fields), &op, &name, &reason_str, &down_time) == -1) {
 -    Error("Plugin message - RPC parsing error - message discarded.");
 -  }
 -  Debug("host_statuses", "op: %ld, name: %s, down_time: %d, reason_str: %s", static_cast<long>(op), name,
 -        static_cast<int>(down_time), reason_str);
 -
 -  unsigned int reason = Reason::getReason(reason_str);
 +const std::string STATUS_LIST_KEY{"statusList"};
 +const std::string ERROR_LIST_KEY{"errorList"};
 +const std::string HOST_NAME_KEY{"hostname"};
 +const std::string STATUS_KEY{"status"};
  
 -  getStatName(stat_name, name);
 -  if (data != nullptr) {
 -    Debug("host_statuses", "marking up server %s", data);
 -    HostStatus &hs = HostStatus::instance();
 -    if (hs.getHostStat(stat_name, buf, 1024) == REC_ERR_FAIL) {
 -      hs.createHostStat(name);
 -    }
 -    hs.setHostStatus(name, TSHostStatus::TS_HOST_STATUS_UP, down_time, reason);
 -  }
 -}
 -
 -static void
 -mgmt_host_status_down_callback(ts::MemSpan<void> span)
 -{
 -  MgmtInt op;
 -  MgmtMarshallString name;
 -  MgmtMarshallInt down_time;
 -  MgmtMarshallString reason_str;
 -  std::string stat_name;
 -  char *data                             = static_cast<char *>(span.data());
 -  char buf[1024]                         = {0};
 -  auto len                               = span.size();
 -  static const MgmtMarshallType fields[] = {MGMT_MARSHALL_INT, MGMT_MARSHALL_STRING, MGMT_MARSHALL_STRING, MGMT_MARSHALL_INT};
 -  Debug("host_statuses", "%s:%s:%d - data: %s, len: %ld\n", __FILE__, __func__, __LINE__, data, len);
 -
 -  if (mgmt_message_parse(data, len, fields, countof(fields), &op, &name, &reason_str, &down_time) == -1) {
 -    Error("Plugin message - RPC parsing error - message discarded.");
 -  }
 -  Debug("host_statuses", "op: %ld, name: %s, down_time: %d, reason_str: %s", static_cast<long>(op), name,
 -        static_cast<int>(down_time), reason_str);
 +struct HostCmdInfo {
 +  TSHostStatus type{TSHostStatus::TS_HOST_STATUS_INIT};
 +  unsigned int reasonType{0};
 +  std::vector<std::string> hosts;
 +  int time{0};
 +};
  
 -  unsigned int reason = Reason::getReason(reason_str);
 +} // namespace
  
 -  if (data != nullptr) {
 -    Debug("host_statuses", "marking down server %s", name);
 -    HostStatus &hs = HostStatus::instance();
 -    if (hs.getHostStat(stat_name, buf, 1024) == REC_ERR_FAIL) {
 -      hs.createHostStat(name);
 -    }
 -    hs.setHostStatus(name, TSHostStatus::TS_HOST_STATUS_DOWN, down_time, reason);
 -  }
 -}
 +ts::Rv<YAML::Node> server_get_status(std::string_view const id, YAML::Node const &params);
 +ts::Rv<YAML::Node> server_set_status(std::string_view const id, YAML::Node const &params);
  
  HostStatRec::HostStatRec()
    : status(TS_HOST_STATUS_UP),
diff --cc src/traffic_server/traffic_server.cc
index 0297a8039,3a1a868a5..b87f39263
--- a/src/traffic_server/traffic_server.cc
+++ b/src/traffic_server/traffic_server.cc
@@@ -102,18 -102,8 +102,17 @@@ extern "C" int plock(int)
  #include "InkAPIInternal.h"
  #include "HTTP2.h"
  #include "tscore/ink_config.h"
- #include "P_SSLSNI.h"
  #include "P_SSLClientUtils.h"
  
 +// Mgmt Admin public handlers
 +#include "RpcAdminPubHandlers.h"
 +
 +// Json Rpc stuffs
 +#include "rpc/jsonrpc/JsonRPCManager.h"
 +#include "rpc/server/RPCServer.h"
 +
 +#include "config/FileManager.h"
 +
  #if TS_USE_QUIC == 1
  #include "Http3.h"
  #include "Http3Config.h"