Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4645b7d
Revert "Improve config reload error reporting with severity-aware tas…
cmcfarlen May 21, 2026
34790b0
Revert "Add `_reload` directive support for config reload framework. …
cmcfarlen May 21, 2026
4f1d359
Revert "Cap uncompressed length in TLS Certificate Compression (#13117)"
cmcfarlen May 21, 2026
b98d8d0
Revert "Add support for TLS Certificate Compression (RFC 8879) (#13088)"
cmcfarlen May 21, 2026
49d1094
Revert "`plugin.config` to `plugin.yaml` migration. (#13070)"
cmcfarlen May 21, 2026
9828150
Revert "Fix Coverity 1646593-1646605 (#13048)"
cmcfarlen May 21, 2026
6d32974
Revert "Replace storage.config and volume.config with storage.yaml (#…
cmcfarlen May 21, 2026
e5136dd
Revert "Parallell ssl cert load (#12998)"
cmcfarlen May 21, 2026
f0b3be4
Revert "Delay remap table publish until startup completes (#12988)"
cmcfarlen May 21, 2026
8ef4206
Revert "Support remap.yaml (#12997)"
cmcfarlen May 21, 2026
30a01d6
Revert "Merge pull request #12983 from cmcfarlen/for-11-master"
cmcfarlen May 21, 2026
f0f4f16
Revert "Bump version to 11.0.0 (#12913)"
cmcfarlen May 21, 2026
26cafc2
Revert "cqssrt log field for TLS resumption type (#12404)"
cmcfarlen May 21, 2026
3a8d371
tools: skip files staged for deletion in cmake-format.sh
cmcfarlen May 21, 2026
80e0adc
test_net: add configmanager to LINK_GROUP_LIBS to break CI cycle
cmcfarlen May 21, 2026
2f0fb28
Fix leftover conflict markers in cachedIMSRange.test.py
cmcfarlen May 21, 2026
de57ed7
remove more merge markers
cmcfarlen May 21, 2026
423d0f6
Fix tests still using ssl_multicert_yaml
cmcfarlen May 22, 2026
aa23177
Restore http1_304.gold and http2_304.gold for cachedIMSRange
cmcfarlen May 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ m4/lt~obsolete.m4
/build*

configs/records.yaml.default
configs/storage.yaml.default
configs/storage.config.default

doc/_build
doc/docbuild/
Expand Down
7 changes: 2 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
endif()

cmake_minimum_required(VERSION 3.20..3.27)
project(ats VERSION 11.0.0)
project(ats VERSION 10.2.0)

set(TS_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(TS_VERSION_MINOR ${PROJECT_VERSION_MINOR})
Expand Down Expand Up @@ -541,8 +541,6 @@ check_symbol_exists(SSL_error_description "openssl/ssl.h" HAVE_SSL_ERROR_DESCRIP
check_symbol_exists(SSL_CTX_set_ciphersuites "openssl/ssl.h" TS_USE_TLS_SET_CIPHERSUITES)
check_symbol_exists(SSL_CTX_set_keylog_callback "openssl/ssl.h" TS_HAS_TLS_KEYLOGGING)
check_symbol_exists(SSL_CTX_set_tlsext_ticket_key_cb "openssl/ssl.h" HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_CB)
check_symbol_exists(SSL_CTX_add_cert_compression_alg "openssl/ssl.h" HAVE_SSL_CTX_ADD_CERT_COMPRESSION_ALG)
check_symbol_exists(SSL_CTX_set1_cert_comp_preference "openssl/ssl.h" HAVE_SSL_CTX_SET1_CERT_COMP_PREFERENCE)
check_symbol_exists(SSL_get_all_async_fds openssl/ssl.h TS_USE_TLS_ASYNC)
check_symbol_exists(OSSL_PARAM_construct_end "openssl/params.h" HAVE_OSSL_PARAM_CONSTRUCT_END)
check_symbol_exists(TLS1_3_VERSION "openssl/ssl.h" TS_USE_TLS13)
Expand Down Expand Up @@ -761,14 +759,13 @@ file(REMOVE "${PROJECT_SOURCE_DIR}/include/tscore/ink_config.h")
file(REMOVE "${PROJECT_SOURCE_DIR}/include/ts/apidefs.h")
file(REMOVE "${PROJECT_SOURCE_DIR}/include/ink_autoconf.h")

configure_file(configs/storage.yaml.default.in configs/storage.yaml.default)
configure_file(configs/storage.config.default.in configs/storage.config.default)
configure_file(configs/records.yaml.default.in configs/records.yaml.default)
configure_file(include/tscore/ink_config.h.cmake.in include/tscore/ink_config.h)
configure_file(include/ts/apidefs.h.in include/ts/apidefs.h)

add_subdirectory(src/tscpp/api)
add_subdirectory(src/tsutil)
add_subdirectory(src/config)
add_subdirectory(src/tscore)
add_subdirectory(src/records)
add_subdirectory(src/iocore)
Expand Down
15 changes: 2 additions & 13 deletions cmake/Findbrotli.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,23 @@
#
# brotli_FOUND
# brotlicommon_LIBRARY
# brotlidec_LIBRARY
# brotlienc_LIBRARY
# brotli_INCLUDE_DIRS
#
# and the following imported targets
#
# brotli::brotlicommon
# brotli::brotlidec
# brotli::brotlienc
#

find_library(brotlicommon_LIBRARY NAMES brotlicommon)
find_library(brotlidec_LIBRARY NAMES brotlidec)
find_library(brotlienc_LIBRARY NAMES brotlienc)
find_path(brotli_INCLUDE_DIR NAMES brotli/encode.h)

mark_as_advanced(brotli_FOUND brotlicommon_LIBRARY brotlidec_LIBRARY brotlienc_LIBRARY brotli_INCLUDE_DIR)
mark_as_advanced(brotli_FOUND brotlicommon_LIBRARY brotlienc_LIBRARY brotli_INCLUDE_DIR)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
brotli REQUIRED_VARS brotlicommon_LIBRARY brotlidec_LIBRARY brotlienc_LIBRARY brotli_INCLUDE_DIR
)
find_package_handle_standard_args(brotli REQUIRED_VARS brotlicommon_LIBRARY brotlienc_LIBRARY brotli_INCLUDE_DIR)

if(brotli_FOUND)
set(brotli_INCLUDE_DIRS "${brotli_INCLUDE_DIR}")
Expand All @@ -54,12 +49,6 @@ if(brotli_FOUND AND NOT TARGET brotli::brotlicommon)
target_link_libraries(brotli::brotlicommon INTERFACE "${brotlicommon_LIBRARY}")
endif()

if(brotli_FOUND AND NOT TARGET brotli::brotlidec)
add_library(brotli::brotlidec INTERFACE IMPORTED)
target_include_directories(brotli::brotlidec INTERFACE ${brotli_INCLUDE_DIRS})
target_link_libraries(brotli::brotlidec INTERFACE brotli::brotlicommon "${brotlidec_LIBRARY}")
endif()

if(brotli_FOUND AND NOT TARGET brotli::brotlienc)
add_library(brotli::brotlienc INTERFACE IMPORTED)
target_include_directories(brotli::brotlienc INTERFACE ${brotli_INCLUDE_DIRS})
Expand Down
4 changes: 2 additions & 2 deletions configs/records.yaml.default.in
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ records:
##############################################################################
# RAM and disk cache configurations. Docs:
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.yaml.en.html#ram-cache
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/storage.yaml.en.html
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/storage.config.en.html
##############################################################################
ram_cache:
size: -1
Expand Down Expand Up @@ -199,7 +199,7 @@ records:
##############################################################################
# SSL Termination. Docs:
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.yaml.en.html#client-related-configuration
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.yaml.en.html
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.config.en.html
##############################################################################
verify:
server:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#
# ssl_multicert.yaml
# ssl_multicert.config
#
# Documentation:
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.yaml.en.html
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/ssl_multicert.config.en.html
#
# Allows a TLS certificate and private key to be tied to a specific
# hostname or IP address. At load time, the certificate is parsed to
# extract the subject CN and all the DNS subjectAltNames. The
# extract the subject CN and all the DNS subjectAltNames. The
# certificate will be presented for connections requesting any of the
# hostnames found in the certificate. Wildcard names in the certificates
# are supported, but only of the form '*.domain.com', ie. where '*'
Expand All @@ -18,11 +18,7 @@
#
# Fields:
#
# ssl_cert_name: FILENAME
# The name of the file containing the TLS certificate. This is the
# only field that is required to be present (unless action is tunnel).
#
# dest_ip: ADDRESS
# dest_ip=ADDRESS
# The IP (v4 or v6) address that the certificate should be presented
# on. This is now only used as a fallback in the case that the TLS
# ServerNameIndication extension is not supported. If ADDRESS is
Expand All @@ -34,58 +30,37 @@
# accepted on the specified port. IPv6 addresses must be enclosed by
# square brackets if they have a port, eg, [::1]:80.
#
# ssl_key_name: FILENAME
# ssl_key_name=FILENAME
# The name of the file containing the private key for this certificate.
# If the key is contained in the certificate file, this field can be
# omitted.
#
# ssl_ca_name: FILENAME
# ssl_ca_name=FILENAME
# If your certificates have different Certificate Authorities, you
# can optionally specify the corresponding file here.
#
# ssl_ocsp_name: FILENAME
# The name of the file containing the OCSP response for stapling.
# ssl_cert_name=FILENAME
# The name of the file containing the TLS certificate. This is the
# only field that is required to be present.
#
# ssl_key_dialog: builtin|exec:/path/to/program
# ssl_key_dialog=[builtin|exec:/path/to/program]
# Method used to provide a pass phrase for encrypted private keys.
# Two options are supported: builtin and exec
# builtin - Requests passphrase via stdin/stdout. Useful for debugging.
# exec: - Executes a program and uses the stdout output for the pass
# phrase.
#
# ssl_ticket_enabled: 0|1
# Enable or disable session tickets for this certificate.
#
# ssl_ticket_number: NUMBER
# Number of session tickets to issue for new TLSv1.3 connections.
#
# action: tunnel
# If the connection matches this entry, traffic server will not participate
# in the handshake. Instead, it will blind tunnel the SSL connection.
#
# Example configuration:
#
# ssl_multicert:
# - ssl_cert_name: server.pem
#
# - ssl_cert_name: bar.pem
# ssl_key_name: barKey.pem
# dest_ip: "*"
#
# - ssl_cert_name: server.pem
# ssl_key_name: serverKey.pem
# dest_ip: "209.131.48.79"
#
# - ssl_cert_name: port99.pem
# dest_ip: "10.0.0.1:99"
#
# - ssl_cert_name: foo.pem
# ssl_key_dialog: "exec:/usr/bin/mypass foo 'ba r'"
#
# - action: tunnel
# dest_ip: "192.168.1.1"
#
# - ssl_cert_name: wildcardcert.pem
# ssl_key_name: privkey.pem

ssl_multicert: []
# action=[tunnel]
# If the tunnel matches this line, traffic server will not participate
# in the handshake. But rather it will blind tunnel the SSL connection.
# If the connection is identified by server name, an openSSL patch must
# be applied to enable this functionality. See TS-3006 for details.
#
# Examples:
# ssl_cert_name=foo.pem
# dest_ip=* ssl_cert_name=bar.pem ssl_key_name=barKey.pem
# dest_ip=209.131.48.79 ssl_cert_name=server.pem ssl_key_name=serverKey.pem
# dest_ip=10.0.0.1:99 ssl_cert_name=port99.pem
# ssl_cert_name=foo.pem ssl_key_dialog="exec:/usr/bin/mypass foo 'ba r'"
# ssl_cert_name=foo.pem action=tunnel
# ssl_cert_name=wildcardcert.pem ssl_key_name=privkey.pem
53 changes: 53 additions & 0 deletions configs/storage.config.default.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#
# storage.config - Storage Configuration file
#
# Documentation:
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/storage.config.en.html
#
# The storage configuration is a list of all the storage to
# be used by the cache.
#
#
#############################################################
# Using a file for the cache storage
#
# <pathname> <size>
#
# Where 'pathname' is full path to the directory where you want
# the cache-file to live and 'size' is size in bytes
#
# Example: 128MB cache file(@exp_cachedir@/cache.db)
# @exp_cachedir@ 128M
#
# Example: 144MB cache file(@exp_cachedir@/cache.db)
# assuming prefix of '@prefix@'
# @rel_cachedir@ 150994944
#
# Example: 512MB cache file(@exp_cachedir@/cache.db)
# assuming prefix of '@prefix@'
# @rel_cachedir@ 512M
#
#
#############################################################
## O_DIRECT Specific Configuration ##
#############################################################
#
# Examples: Using O_DIRECT on disks (Linux kernel >= 2.6.3,
# FreeBSD > 5.3)
#
# /dev/disc/by-id/[Insert_ID_Here_12345] # Linux
# /dev/disc/by-path/[Insert-Path-Here:12:34:56-1.0.0.0] # Linux
#
# /dev/ada1 # FreeBSD
#
# Note that disks are identified by id or path. This is to prevent changes
# by the kernel (which could occur if a disk was simply described as /dev/sda, sdb, etc.).
#
# Also note that when using these raw devices in O_DIRECT mode, you
# do not need to specify the partition size. It's automatically
# detected.
#
# A small default cache (256MB). This is set to allow for the regression test to succeed
# most likely you'll want to use a larger cache. And, we definitely recommend the use
# of raw devices for production caches.
@rel_cachedir@ 256M
32 changes: 0 additions & 32 deletions configs/storage.yaml.default.in

This file was deleted.

65 changes: 65 additions & 0 deletions configs/volume.config.default
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#
# volume.config
#
# Documentation:
# https://docs.trafficserver.apache.org/en/latest/admin-guide/files/volume.config.en.html
#
# This file specifies the various volumes, their sizes and the
# protocol they belong to. Use this file in conjunction with the
# hosting.config file.
#
# Each line consists of a tag value pair.
# volume=<volume_number> scheme=<protocol_type> size=<volume_size>
#
# volume_number can be any value between 1 and 255.
# This limits the maximum number of volumes to 255.
# Volume number 0 is reserved for the special free volume.
# Each line MUST have a distinct volume number.
#
# The only scheme currently supported is 'http.
#
# volume_size can either be specified in percentage of the total
# cache space or absolute value. It must be a multiple of 128 Megabytes,
# with 128 Megabytes being the smallest size possible. If specified in
# percentage, the size is rounded down to the closest multiple of
# 128 Megabytes. A volume can be as big as the whole cache.
# Each volume is striped across several disks to
# achieve parallel I/O. For example, if there are 4 disks,
# a 1 Gigabyte volume will have 256 Megabytes on each
# disk (assuming each disk has enough free space available).
#
# To create one volume of size 10% of the total cache space and
# another 1 Gig volume,
# volume=1 scheme=http size=10%
# volume=2 scheme=http size=1024
#
# Additional optional parameters:
#
# ramcache=true/false
# Enable or disable RAM cache for this volume (default: true)
#
# ram_cache_size=<size>
# Allocate a dedicated RAM cache pool for this volume (e.g., 512M, 2G)
# This amount is automatically subtracted from the global ram_cache.size
# setting, with the remainder shared among other volumes.
#
# ram_cache_cutoff=<size>
# Override the global ram_cache_cutoff for this volume (e.g., 64K, 1M)
# Objects larger than this will not be stored in RAM cache.
#
# avg_obj_size=<size>
# Override the global min_average_object_size for this volume
#
# fragment_size=<size>
# Override the global target_fragment_size for this volume (max: 4MB)
#
# Advanced RAM cache configuration examples:
#
# Example 1: Volume with dedicated 2GB RAM cache
# volume=1 scheme=http size=40% ram_cache_size=2G
#
# Example 2: Small objects with custom cutoff and dedicated RAM
# volume=2 scheme=http size=20% ram_cache_size=512M ram_cache_cutoff=64K
#
# Example 3: Large media with higher cutoff (shares remaining RAM pool)
# volume=3 scheme=http size=40% ram_cache_cutoff=1M
2 changes: 1 addition & 1 deletion contrib/set_trafficserver.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
# v1.0.3 - Check to force /mnt based cache.db

REMAP_FILE=/usr/local/etc/trafficserver/remap.config
STORAGE_FILE=/usr/local/etc/trafficserver/storage.yaml
STORAGE_FILE=/usr/local/etc/trafficserver/storage.config
EC2_CACHE_LOC=/mnt/trafficserver_cache

# Base settings to use for testing and benchmarking
Expand Down
Loading