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

cmcfarlen pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new 46f55b4d79 proxy.config.ssl.session_cache.mode (#12414) (#12419)
46f55b4d79 is described below

commit 46f55b4d79c555c9a14884e979f3df55c145eb2f
Author: Brian Neradt <brian.ner...@gmail.com>
AuthorDate: Mon Aug 4 19:53:51 2025 -0500

    proxy.config.ssl.session_cache.mode (#12414) (#12419)
    
    In the 10.0.0 release, we renamed proxy.config.ssl.session_cache.enabled
    to proxy.config.ssl.session_cache.value because enabled seemed incorrect
    for a configuration that took a non-boolean enumeration of values. We
    accidentially left the documentation describing
    proxy.config.ssl.session_cache.enabled, however. In discussion about
    this, we decided to rename such configurations to "mode" instead of
    value. Another issue (#12412) records making these renames for 11.0.0.
    This PR just addresses the current issues with
    proxy.config.ssl.session_cache.enabled by:
    
    * Adding implementation support for
      proxy.config.ssl.session_cache.enabled since we documented that
      already but document it as deprecated.
    * Keep implementation support for proxy.config.ssl.session_cache.value
      since users might be using that.
    * Add proxy.config.ssl.session_cache.mode as the preferred new mode.
    
    The user can set values for any of these via:
    
    * implicit default config values,
    * plugin default values via TSMgmtIntCreate,
    * explicit records.yaml values, or
    * override via environment variable.
    
    It will probably be a very rare user that implements any of these across
    values, but in case they do, this patch implements a selection of the
    finally chosen config value based on a priority base of the above, with
    "mode" valued over "value" valued over "enabled".
    
    Fixes: #11901
    (cherry picked from commit 87bb60259b25734e651e5019b410a9ccf8cbd371)
---
 doc/admin-guide/files/records.yaml.en.rst          | 19 +++--
 doc/admin-guide/performance/index.en.rst           |  2 +-
 .../tools/converting-records-to-yaml.en.rst        |  2 +-
 .../api/functions/TSSslSession.en.rst              |  2 +-
 .../hooks-and-transactions/ssl-session-api.en.rst  |  2 +-
 doc/release-notes/upgrading.en.rst                 |  2 +-
 include/records/RecDefs.h                          |  8 +-
 src/iocore/net/SSLConfig.cc                        | 86 +++++++++++++++++++++-
 src/records/RecordsConfig.cc                       |  6 +-
 .../pluginTest/stek_share/stek_share.test.py       | 10 +--
 tests/gold_tests/records/gold/full_records.yaml    |  2 +-
 tests/gold_tests/records/gold/renamed_records.gold |  2 +-
 tests/gold_tests/records/gold/renamed_records.yaml |  2 +-
 tests/gold_tests/tls/tls_0rtt_server.test.py       |  4 +-
 .../tls/tls_origin_session_reuse.test.py           |  8 +-
 tests/gold_tests/tls/tls_session_reuse.test.py     |  6 +-
 tools/records/convert2yaml.py                      |  2 +-
 17 files changed, 131 insertions(+), 34 deletions(-)

diff --git a/doc/admin-guide/files/records.yaml.en.rst 
b/doc/admin-guide/files/records.yaml.en.rst
index d0f8e60102..032894c564 100644
--- a/doc/admin-guide/files/records.yaml.en.rst
+++ b/doc/admin-guide/files/records.yaml.en.rst
@@ -3946,9 +3946,9 @@ SSL Termination
   Setting a value less than or equal to ``0`` effectively disables
   SSL session cache for the origin server.
 
-.. ts:cv:: CONFIG proxy.config.ssl.session_cache.enabled INT 2
+.. ts:cv:: CONFIG proxy.config.ssl.session_cache.mode INT 2
 
-   Enables the SSL session cache:
+   Sets the SSL session cache mode:
 
    ===== ======================================================================
    Value Description
@@ -3960,13 +3960,22 @@ SSL Termination
          implementation.
    ===== ======================================================================
 
+.. ts:cv:: CONFIG proxy.config.ssl.session_cache.enabled INT 2
+
+   .. deprecated:: 10.1.0
+      Use :ts:cv:`proxy.config.ssl.session_cache.mode` instead.
+
+   This configuration exists for historical reasons and is deprecated in favor 
of
+   :ts:cv:`proxy.config.ssl.session_cache.mode`. It accepts the same values and
+   has identical behavior, so see that documentation for details.
+
 .. ts:cv:: CONFIG proxy.config.ssl.session_cache.timeout INT 0
 
   This configuration specifies the lifetime of SSL session cache
   entries in seconds. If it is ``0``, then the SSL library will use
   a default value, typically 300 seconds. Note: This option has no affect
   when using the |TS| session cache (option ``2`` in
-  ``proxy.config.ssl.session_cache.enabled``)
+  ``proxy.config.ssl.session_cache.mode``)
 
    See :ref:`admin-performance-timeouts` for more discussion on |TS| timeouts.
 
@@ -4008,9 +4017,9 @@ SSL Termination
   Take into account that setting the value to 0 will disable session caching 
for TLSv1.3
   connections.
 
-  Lowering this setting to ``1`` can be interesting when 
``proxy.config.ssl.session_cache.enabled`` is enabled because
+  Lowering this setting to ``1`` can be interesting when 
``proxy.config.ssl.session_cache.mode`` is enabled because
   otherwise for every new TLSv1.3 connection two session IDs will be inserted 
in the session cache.
-  On the other hand, if ``proxy.config.ssl.session_cache.enabled``  is 
disabled, using the default value is recommended.
+  On the other hand, if ``proxy.config.ssl.session_cache.mode``  is disabled, 
using the default value is recommended.
   In those scenarios, increasing the number of tickets could be potentially 
beneficial for clients performing
   multiple requests over concurrent TLS connections as per RFC 8446 clients 
SHOULDN'T reuse TLS Tickets.
 
diff --git a/doc/admin-guide/performance/index.en.rst 
b/doc/admin-guide/performance/index.en.rst
index 689ef41ea4..461c6a9d84 100644
--- a/doc/admin-guide/performance/index.en.rst
+++ b/doc/admin-guide/performance/index.en.rst
@@ -528,7 +528,7 @@ SSL-Specific Options
 ~~~~~~~~~~~~~~~~~~~~
 
 :ts:cv:`proxy.config.ssl.max_record_size`
-:ts:cv:`proxy.config.ssl.session_cache.enabled`
+:ts:cv:`proxy.config.ssl.session_cache.mode`
 :ts:cv:`proxy.config.ssl.session_cache.size`
 
 Thread Types
diff --git a/doc/admin-guide/tools/converting-records-to-yaml.en.rst 
b/doc/admin-guide/tools/converting-records-to-yaml.en.rst
index c6ef4d4080..c5539d5aec 100644
--- a/doc/admin-guide/tools/converting-records-to-yaml.en.rst
+++ b/doc/admin-guide/tools/converting-records-to-yaml.en.rst
@@ -158,7 +158,7 @@ Converting a file with a detailed output.
     ├──» #5 : proxy.config.ssl.TLSv1_3 -> proxy.config.ssl.TLSv1_3.enabled
     ├──» #6 : proxy.config.ssl.client.TLSv1_3 -> 
proxy.config.ssl.client.TLSv1_3.enabled
     ├──» #7 : proxy.config.ssl.origin_session_cache -> 
proxy.config.ssl.origin_session_cache.enabled
-    └──» #8 : proxy.config.ssl.session_cache -> 
proxy.config.ssl.session_cache.value
+    └──» #8 : proxy.config.ssl.session_cache -> 
proxy.config.ssl.session_cache.mode
 
 
 There are a few things to note here:
diff --git a/doc/developer-guide/api/functions/TSSslSession.en.rst 
b/doc/developer-guide/api/functions/TSSslSession.en.rst
index 2e0ab9230b..07a29d633e 100644
--- a/doc/developer-guide/api/functions/TSSslSession.en.rst
+++ b/doc/developer-guide/api/functions/TSSslSession.en.rst
@@ -38,7 +38,7 @@ Description
 ===========
 
 These functions work with the internal ATS session cache.  These functions are 
only useful if the ATS internal
-session cache is enabled by setting 
:ts:cv:`proxy.config.ssl.session_cache.enabled` has been set to 2.
+session cache is enabled by setting 
:ts:cv:`proxy.config.ssl.session_cache.mode` has been set to 2.
 
 These functions tend to be used with the :enumerator:`TS_SSL_SESSION_HOOK`.
 
diff --git 
a/doc/developer-guide/plugins/hooks-and-transactions/ssl-session-api.en.rst 
b/doc/developer-guide/plugins/hooks-and-transactions/ssl-session-api.en.rst
index d6f050872d..f85ed86608 100644
--- a/doc/developer-guide/plugins/hooks-and-transactions/ssl-session-api.en.rst
+++ b/doc/developer-guide/plugins/hooks-and-transactions/ssl-session-api.en.rst
@@ -31,7 +31,7 @@ to enable the plugin to update the session cache based on 
outside information, e
 
 This hook is invoked when a change has been made to the ATS session cache or a 
session has been accessed
 from ATS via OpenSSL.  These hooks are only activated if the ATS 
implementation of the session cache is in
-use.  This means :ts:cv:`proxy.config.ssl.session_cache.enabled` has been set 
to 2.
+use.  This means :ts:cv:`proxy.config.ssl.session_cache.mode` has been set to 
2.
 
 The hook callback has the following signature
 
diff --git a/doc/release-notes/upgrading.en.rst 
b/doc/release-notes/upgrading.en.rst
index 7b6eaf06e8..90df999654 100644
--- a/doc/release-notes/upgrading.en.rst
+++ b/doc/release-notes/upgrading.en.rst
@@ -172,7 +172,7 @@ The following :file:`records.yaml` changes have been made:
 - The records.yaml entry ``proxy.config.exec_thread.autoconfig`` has been 
renamed to :ts:cv:`proxy.config.exec_thread.autoconfig.enabled`.
 - The records.yaml entry ``proxy.config.tunnel.prewarm`` has been renamed to 
:ts:cv:`proxy.config.tunnel.prewarm.enabled`.
 - The records.yaml entry ``proxy.config.ssl.origin_session_cache`` has been 
renamed to :ts:cv:`proxy.config.ssl.origin_session_cache.enabled`.
-- The records.yaml entry ``proxy.config.ssl.session_cache`` has been renamed 
to :ts:cv:`proxy.config.ssl.session_cache.enabled`.
+- The records.yaml entry ``proxy.config.ssl.session_cache`` has been renamed 
to :ts:cv:`proxy.config.ssl.session_cache.mode`.
 - The records.yaml entry ``proxy.config.ssl.TLSv1_3`` has been renamed to 
:ts:cv:`proxy.config.ssl.TLSv1_3.enabled`.
 - The records.yaml entry ``proxy.config.ssl.client.TLSv1_3`` has been renamed 
to :ts:cv:`proxy.config.ssl.client.TLSv1_3.enabled`.
 - The records.yaml entry :ts:cv:`proxy.config.allocator.iobuf_chunk_sizes` has 
been added
diff --git a/include/records/RecDefs.h b/include/records/RecDefs.h
index eb87a8750e..df1635a511 100644
--- a/include/records/RecDefs.h
+++ b/include/records/RecDefs.h
@@ -115,11 +115,11 @@ enum RecCheckT {
 /// @internal @c REC_SOURCE_NULL is useful for a return value, I don't see 
using it in the actual data.
 /// @internal If this is changed, TSMgmtSource in apidefs.h.in must also be 
changed.
 enum RecSourceT {
-  REC_SOURCE_NULL,     ///< No source / value not set.
-  REC_SOURCE_DEFAULT,  ///< Built in default.
-  REC_SOURCE_PLUGIN,   ///< Plugin supplied default.
+  REC_SOURCE_NULL,     ///< No source / value not set. Not used in the actual 
data.
+  REC_SOURCE_DEFAULT,  ///< Built in records.yaml default.
+  REC_SOURCE_PLUGIN,   ///< Plugin supplied default. See 
TSMgmtIntCreate/TSMgmtStringCreate.
   REC_SOURCE_EXPLICIT, ///< Set by administrator (config file, external API, 
etc.)
-  REC_SOURCE_ENV       ///< Process environment variable.
+  REC_SOURCE_ENV       ///< Process environment variable override.
 };
 
 enum RecAccessT {
diff --git a/src/iocore/net/SSLConfig.cc b/src/iocore/net/SSLConfig.cc
index af0056c4f4..fdd7ea7c9d 100644
--- a/src/iocore/net/SSLConfig.cc
+++ b/src/iocore/net/SSLConfig.cc
@@ -42,10 +42,13 @@
 #include "tscore/ink_config.h"
 #include "tscore/Layout.h"
 #include "records/RecHttp.h"
+#include "records/RecCore.h"
 
 #include <openssl/pem.h>
+#include <array>
 #include <cstring>
 #include <cmath>
+#include <unordered_map>
 
 int                SSLConfig::config_index                                = 0;
 int                SSLConfig::configids[]                                 = 
{0, 0};
@@ -89,6 +92,87 @@ DbgCtl dbg_ctl_ssl_client_ctx{"ssl_client_ctx"};
 
 } // end anonymous namespace
 
+/** Determines the SSL session cache configuration value using a 
priority-based selection scheme.
+ *
+ * This function resolves the SSL session cache configuration by evaluating 
multiple potential
+ * configuration sources and selecting the one with the highest priority. The 
priority calculation
+ * combines two factors:
+ *
+ * Configuration Name Priority (base priority):
+ * - `proxy.config.ssl.session_cache.mode`: 3 (highest preference)
+ * - `proxy.config.ssl.session_cache.value`: 2 (medium preference)
+ * - `proxy.config.ssl.session_cache.enabled`: 1 (lowest preference)
+ *
+ * Configuration Source Priority (added to base priority):
+ * - Environment variable (`REC_SOURCE_ENV`): +0x30 (highest precedence)
+ * - Explicit configuration (`REC_SOURCE_EXPLICIT`): +0x20 (config file, API)
+ * - Plugin default (`REC_SOURCE_PLUGIN`): +0x10 (plugin changed the default 
value via TSMgmtIntCreate)
+ * - Built-in default (`REC_SOURCE_DEFAULT`): +0x00 (lowest precedence)
+ *
+ * Priority Calculation:
+ * `total_priority = base_priority + source_priority`
+ *
+ * Examples:
+ * - `mode` set via environment variable: 3 + 0x30 = 0x33 (highest possible)
+ * - `mode` set explicitly in config: 3 + 0x20 = 0x23
+ * - `value` set via environment variable: 2 + 0x30 = 0x32
+ * - `enabled` set explicitly in config: 1 + 0x20 = 0x21
+ *
+ * The configuration with the highest total priority is selected. This ensures 
that:
+ * 1. Environment variables always override other sources.
+ * 2. Among configurations from the same source, `mode` > `value` > `enabled`.
+ * 3. Explicit configuration overrides plugin defaults and built-in defaults.
+ *
+ * @return The SSL session cache mode value.
+ */
+static int
+get_ssl_session_cache_config()
+{
+  //
+  // TODO: in 11.x, we can simply remove this function and use only 
proxy.config.ssl.session_cache.mode.
+  //
+
+  struct ConfigOption {
+    const char *name;     ///< Configuration parameter name (e.g., 
"proxy.config.ssl.session_cache.mode").
+    int         value;    ///< The configured value if explicitly set.
+    int         priority; ///< The inherit priority of the config name, higher 
is more preferred.
+  };
+
+  /// The priority of the source. Higher is more preferred.
+  std::unordered_map<int, int> source_priorities = {
+    {REC_SOURCE_ENV,      0x30},
+    {REC_SOURCE_EXPLICIT, 0x20},
+    {REC_SOURCE_PLUGIN,   0x10},
+    {REC_SOURCE_DEFAULT,  0x0 },
+    {REC_SOURCE_NULL,     0x0 }, // For completeness, no record should have 
this set.
+  };
+
+  std::array<ConfigOption, 3> configs = {
+    {
+     {"proxy.config.ssl.session_cache.mode", 0, 0x3},
+     {"proxy.config.ssl.session_cache.value", 0, 0x2},
+     {"proxy.config.ssl.session_cache.enabled", 0, 0x1},
+     }
+  };
+
+  // Loop over the config names, updating their priority score per their 
source.
+  auto *highest_priority_config = &configs[0];
+  for (auto &config : configs) {
+    RecSourceT source;
+    if (RecGetRecordSource(config.name, &source) == REC_ERR_OKAY) {
+      config.priority += source_priorities[source];
+      REC_ReadConfigInteger(config.value, config.name);
+      if (config.priority > highest_priority_config->priority) {
+        highest_priority_config = &config;
+      }
+    } else {
+      // We need to update our logic here if any of these configs are removed.
+      ink_release_assert(false);
+    }
+  }
+  return highest_priority_config->value;
+}
+
 SSLConfigParams::SSLConfigParams()
 {
   ink_mutex_init(&ctxMapLock);
@@ -446,7 +530,7 @@ SSLConfigParams::initialize()
   // SSL session cache configurations
   REC_ReadConfigInteger(ssl_origin_session_cache, 
"proxy.config.ssl.origin_session_cache.enabled");
   REC_ReadConfigInteger(ssl_origin_session_cache_size, 
"proxy.config.ssl.origin_session_cache.size");
-  REC_ReadConfigInteger(ssl_session_cache, 
"proxy.config.ssl.session_cache.value");
+  ssl_session_cache = get_ssl_session_cache_config();
   REC_ReadConfigInteger(ssl_session_cache_size, 
"proxy.config.ssl.session_cache.size");
   REC_ReadConfigInteger(ssl_session_cache_num_buckets, 
"proxy.config.ssl.session_cache.num_buckets");
   REC_ReadConfigInteger(ssl_session_cache_skip_on_contention, 
"proxy.config.ssl.session_cache.skip_cache_on_bucket_contention");
diff --git a/src/records/RecordsConfig.cc b/src/records/RecordsConfig.cc
index 9490ed9ec9..f1c85ad93c 100644
--- a/src/records/RecordsConfig.cc
+++ b/src/records/RecordsConfig.cc
@@ -1191,7 +1191,11 @@ static const RecordElement RecordsConfig[] =
   ,
   {RECT_CONFIG, "proxy.config.ssl.origin_session_cache.size", RECD_INT, 
"10240", RECU_RESTART_TS, RR_NULL, RECC_NULL, nullptr, RECA_NULL}
   ,
-  {RECT_CONFIG, "proxy.config.ssl.session_cache.value", RECD_INT, "2", 
RECU_RESTART_TS, RR_NULL, RECC_NULL, nullptr, RECA_NULL}
+  {RECT_CONFIG, "proxy.config.ssl.session_cache.mode", RECD_INT, "2", 
RECU_RESTART_TS, RR_NULL, RECC_INT, "[0-2]", RECA_NULL}
+  ,
+  {RECT_CONFIG, "proxy.config.ssl.session_cache.enabled", RECD_INT, "2", 
RECU_RESTART_TS, RR_NULL, RECC_INT, "[0-2]", RECA_NULL}
+  ,
+  {RECT_CONFIG, "proxy.config.ssl.session_cache.value", RECD_INT, "2", 
RECU_RESTART_TS, RR_NULL, RECC_INT, "[0-2]", RECA_NULL}
   ,
   {RECT_CONFIG, "proxy.config.ssl.session_cache.size", RECD_INT, "102400", 
RECU_RESTART_TS, RR_NULL, RECC_NULL, nullptr, RECA_NULL}
   ,
diff --git a/tests/gold_tests/pluginTest/stek_share/stek_share.test.py 
b/tests/gold_tests/pluginTest/stek_share/stek_share.test.py
index de320d64b0..fc6a3a63f7 100644
--- a/tests/gold_tests/pluginTest/stek_share/stek_share.test.py
+++ b/tests/gold_tests/pluginTest/stek_share/stek_share.test.py
@@ -164,7 +164,7 @@ ts1.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 4,
         'proxy.config.ssl.server.cert.path': '{0}'.format(Test.RunDirectory),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(Test.RunDirectory),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 1024,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 16,
@@ -184,7 +184,7 @@ ts2.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 4,
         'proxy.config.ssl.server.cert.path': '{0}'.format(Test.RunDirectory),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(Test.RunDirectory),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 1024,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 16,
@@ -204,7 +204,7 @@ ts3.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 4,
         'proxy.config.ssl.server.cert.path': '{0}'.format(Test.RunDirectory),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(Test.RunDirectory),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 1024,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 16,
@@ -224,7 +224,7 @@ ts4.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 4,
         'proxy.config.ssl.server.cert.path': '{0}'.format(Test.RunDirectory),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(Test.RunDirectory),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 1024,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 16,
@@ -244,7 +244,7 @@ ts5.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 4,
         'proxy.config.ssl.server.cert.path': '{0}'.format(Test.RunDirectory),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(Test.RunDirectory),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 1024,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 16,
diff --git a/tests/gold_tests/records/gold/full_records.yaml 
b/tests/gold_tests/records/gold/full_records.yaml
index cc23d51f18..fc02158c5b 100644
--- a/tests/gold_tests/records/gold/full_records.yaml
+++ b/tests/gold_tests/records/gold/full_records.yaml
@@ -564,11 +564,11 @@ records:
         filename: null
     session_cache:
       auto_clear: 1
+      mode: 2
       num_buckets: 256
       size: 102400
       skip_cache_on_bucket_contention: 0
       timeout: 0
-      value: 2
   stop:
     shutdown_timeout: 0
   system:
diff --git a/tests/gold_tests/records/gold/renamed_records.gold 
b/tests/gold_tests/records/gold/renamed_records.gold
index fca402fc51..c937200fc4 100644
--- a/tests/gold_tests/records/gold/renamed_records.gold
+++ b/tests/gold_tests/records/gold/renamed_records.gold
@@ -5,7 +5,7 @@
  ├──» #3 : proxy.config.hostdb -> proxy.config.hostdb.enabled
  ├──» #4 : proxy.config.tunnel.prewarm -> proxy.config.tunnel.prewarm.enabled
  ├──» #5 : proxy.config.ssl.origin_session_cache -> 
proxy.config.ssl.origin_session_cache.enabled
- ├──» #6 : proxy.config.ssl.session_cache -> 
proxy.config.ssl.session_cache.value
+ ├──» #6 : proxy.config.ssl.session_cache -> 
proxy.config.ssl.session_cache.mode
  ├──» #7 : proxy.config.ssl.TLSv1_3 -> proxy.config.ssl.TLSv1_3.enabled
  └──» #8 : proxy.config.ssl.client.TLSv1_3 -> 
proxy.config.ssl.client.TLSv1_3.enabled
 ```
diff --git a/tests/gold_tests/records/gold/renamed_records.yaml 
b/tests/gold_tests/records/gold/renamed_records.yaml
index 9d500de5fe..c8e91340f2 100644
--- a/tests/gold_tests/records/gold/renamed_records.yaml
+++ b/tests/gold_tests/records/gold/renamed_records.yaml
@@ -16,7 +16,7 @@ records:
     origin_session_cache:
       enabled: 0
     session_cache:
-      value: 0
+      mode: 0
   tunnel:
     prewarm:
       enabled: 0
diff --git a/tests/gold_tests/tls/tls_0rtt_server.test.py 
b/tests/gold_tests/tls/tls_0rtt_server.test.py
index 7b21ddbe77..5fdbffff04 100644
--- a/tests/gold_tests/tls/tls_0rtt_server.test.py
+++ b/tests/gold_tests/tls/tls_0rtt_server.test.py
@@ -104,7 +104,7 @@ ts1.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 8,
         'proxy.config.ssl.server.cert.path': 
'{0}'.format(ts1.Variables.SSLDir),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(ts1.Variables.SSLDir),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 512000,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 32768,
@@ -133,7 +133,7 @@ ts2.Disk.records_config.update(
         'proxy.config.exec_thread.limit': 8,
         'proxy.config.ssl.server.cert.path': 
'{0}'.format(ts1.Variables.SSLDir),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(ts1.Variables.SSLDir),
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 512000,
         'proxy.config.ssl.session_cache.timeout': 7200,
         'proxy.config.ssl.session_cache.num_buckets': 32768,
diff --git a/tests/gold_tests/tls/tls_origin_session_reuse.test.py 
b/tests/gold_tests/tls/tls_origin_session_reuse.test.py
index 1965b39774..2dc8f96d42 100644
--- a/tests/gold_tests/tls/tls_origin_session_reuse.test.py
+++ b/tests/gold_tests/tls/tls_origin_session_reuse.test.py
@@ -64,7 +64,7 @@ ts1.Disk.records_config.update(
         'proxy.config.ssl.server.cert.path': 
'{0}'.format(ts1.Variables.SSLDir),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(ts1.Variables.SSLDir),
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
@@ -83,7 +83,7 @@ ts2.Disk.records_config.update(
         'proxy.config.ssl.server.cert.path': 
'{0}'.format(ts2.Variables.SSLDir),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(ts2.Variables.SSLDir),
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
@@ -100,7 +100,7 @@ ts3.Disk.records_config.update(
         'proxy.config.ssl.server.cert.path': 
'{0}'.format(ts3.Variables.SSLDir),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(ts3.Variables.SSLDir),
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
@@ -119,7 +119,7 @@ ts4.Disk.records_config.update(
         'proxy.config.ssl.server.cert.path': 
'{0}'.format(ts4.Variables.SSLDir),
         'proxy.config.ssl.server.private_key.path': 
'{0}'.format(ts4.Variables.SSLDir),
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
diff --git a/tests/gold_tests/tls/tls_session_reuse.test.py 
b/tests/gold_tests/tls/tls_session_reuse.test.py
index ff0c25e034..2d36848313 100644
--- a/tests/gold_tests/tls/tls_session_reuse.test.py
+++ b/tests/gold_tests/tls/tls_session_reuse.test.py
@@ -57,7 +57,7 @@ ts1.Disk.records_config.update(
         'proxy.config.ssl.server.cipher_suite':
             
'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-D
 [...]
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
@@ -72,7 +72,7 @@ ts2.Disk.records_config.update(
         'proxy.config.ssl.server.cipher_suite':
             
'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-D
 [...]
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 2,
+        'proxy.config.ssl.session_cache.mode': 2,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
@@ -87,7 +87,7 @@ ts3.Disk.records_config.update(
         'proxy.config.ssl.server.cipher_suite':
             
'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-D
 [...]
         'proxy.config.exec_thread.autoconfig.scale': 1.0,
-        'proxy.config.ssl.session_cache.value': 0,
+        'proxy.config.ssl.session_cache.mode': 0,
         'proxy.config.ssl.session_cache.size': 4096,
         'proxy.config.ssl.session_cache.num_buckets': 256,
         'proxy.config.ssl.session_cache.skip_cache_on_bucket_contention': 0,
diff --git a/tools/records/convert2yaml.py b/tools/records/convert2yaml.py
index 0b425f3083..0643715c08 100755
--- a/tools/records/convert2yaml.py
+++ b/tools/records/convert2yaml.py
@@ -46,7 +46,7 @@ Renamed_Records = {
     'proxy.config.hostdb': 'proxy.config.hostdb.enabled',
     'proxy.config.tunnel.prewarm': 'proxy.config.tunnel.prewarm.enabled',
     'proxy.config.ssl.origin_session_cache': 
'proxy.config.ssl.origin_session_cache.enabled',
-    'proxy.config.ssl.session_cache': 'proxy.config.ssl.session_cache.value',
+    'proxy.config.ssl.session_cache': 'proxy.config.ssl.session_cache.mode',
     'proxy.config.ssl.TLSv1_3': 'proxy.config.ssl.TLSv1_3.enabled',
     'proxy.config.ssl.client.TLSv1_3': 
'proxy.config.ssl.client.TLSv1_3.enabled'
 }

Reply via email to