haproxy/include/haproxy
Willy Tarreau e36b3b60b3 MEDIUM: migrate the patterns reference to cebs_tree
cebs_tree are 24 bytes smaller than ebst_tree (16B vs 40B), and pattern
references are only used during map/acl updates, so their storage is
pure loss between updates (which most of the time never happen). By
switching their indexing to compact trees, we can save 16 to 24 bytes
per entry depending on alightment (here it's 24 per struct but 16
practical as malloc's alignment keeps 8 unused).

Tested on core i7-8650U running at 3.0 GHz, with a file containing
17.7M IP addresses (16.7M different):

   $ time  ./haproxy -c -f acl-ip.cfg

Save 280 MB RAM for 17.7M IP addresses, and slightly speeds up the
startup (5.8%, from 19.2s to 18.2s), a part of which possible being
attributed to having to write less memory. Note that this is on small
strings. On larger ones such as user-agents, ebtree doesn't reread
the whole key and might be more efficient.

Before:
  RAM (VSZ/RSS): 4443912 3912444

  real    0m19.211s
  user    0m18.138s
  sys     0m1.068s

  Overhead  Command         Shared Object      Symbol
    44.79%  haproxy  haproxy            [.] ebst_insert
    25.07%  haproxy  haproxy            [.] ebmb_insert_prefix
     3.44%  haproxy  libc-2.33.so       [.] __libc_calloc
     2.71%  haproxy  libc-2.33.so       [.] _int_malloc
     2.33%  haproxy  haproxy            [.] free_pattern_tree
     1.78%  haproxy  libc-2.33.so       [.] inet_pton4
     1.62%  haproxy  libc-2.33.so       [.] _IO_fgets
     1.58%  haproxy  libc-2.33.so       [.] _int_free
     1.56%  haproxy  haproxy            [.] pat_ref_push
     1.35%  haproxy  libc-2.33.so       [.] malloc_consolidate
     1.16%  haproxy  libc-2.33.so       [.] __strlen_avx2
     0.79%  haproxy  haproxy            [.] pat_idx_tree_ip
     0.76%  haproxy  haproxy            [.] pat_ref_read_from_file
     0.60%  haproxy  libc-2.33.so       [.] __strrchr_avx2
     0.55%  haproxy  libc-2.33.so       [.] unlink_chunk.constprop.0
     0.54%  haproxy  libc-2.33.so       [.] __memchr_avx2
     0.46%  haproxy  haproxy            [.] pat_ref_append

After:
  RAM (VSZ/RSS): 4166108 3634768

  real    0m18.114s
  user    0m17.113s
  sys     0m0.996s

  Overhead  Command  Shared Object       Symbol
    38.99%  haproxy  haproxy             [.] cebs_insert
    27.09%  haproxy  haproxy             [.] ebmb_insert_prefix
     3.63%  haproxy  libc-2.33.so        [.] __libc_calloc
     3.18%  haproxy  libc-2.33.so        [.] _int_malloc
     2.69%  haproxy  haproxy             [.] free_pattern_tree
     1.99%  haproxy  libc-2.33.so        [.] inet_pton4
     1.74%  haproxy  libc-2.33.so        [.] _IO_fgets
     1.73%  haproxy  libc-2.33.so        [.] _int_free
     1.57%  haproxy  haproxy             [.] pat_ref_push
     1.48%  haproxy  libc-2.33.so        [.] malloc_consolidate
     1.22%  haproxy  libc-2.33.so        [.] __strlen_avx2
     1.05%  haproxy  libc-2.33.so        [.] __strcmp_avx2
     0.80%  haproxy  haproxy             [.] pat_idx_tree_ip
     0.74%  haproxy  libc-2.33.so        [.] __memchr_avx2
     0.69%  haproxy  libc-2.33.so        [.] __strrchr_avx2
     0.69%  haproxy  libc-2.33.so        [.] _IO_getline_info
     0.62%  haproxy  haproxy             [.] pat_ref_read_from_file
     0.56%  haproxy  libc-2.33.so        [.] unlink_chunk.constprop.0
     0.56%  haproxy  libc-2.33.so        [.] cfree@GLIBC_2.2.5
     0.46%  haproxy  haproxy             [.] pat_ref_append

If the addresses are totally disordered (via "shuf" on the input file),
we see both implementations reach exactly 68.0s (slower due to much
higher cache miss ratio).

On large strings such as user agents (1 million here), it's now slightly
slower (+9%):

Before:
  real    0m2.475s
  user    0m2.316s
  sys     0m0.155s

After:
  real    0m2.696s
  user    0m2.544s
  sys     0m0.147s

But such patterns are much less common than short ones, and the memory
savings do still count.

Note that while it could be tempting to get rid of the list that chains
all these pat_ref_elt together and only enumerate them by walking along
the tree to save 16 extra bytes per entry, that's not possible due to
the problem that insertion ordering is critical (think overlapping regex
such as /index.* and /index.html). Currently it's not possible to proceed
differently because patterns are first pre-loaded into the pat_ref via
pat_ref_read_from_file_smp() and later indexed by pattern_read_from_file(),
which has to only redo the second part anyway for maps/acls declared
multiple times.
2025-09-16 09:23:46 +02:00
..
acl-t.h MINOR: acl: add acl() sample fetch 2023-08-01 10:49:06 +02:00
acl.h CLEANUP: tree-wide: define and use acl_match_cond() helper 2025-01-27 11:11:43 +01:00
acme-t.h MEDIUM: acme: allow to wait and restart the task for DNS-01 2025-08-01 18:07:12 +02:00
acme.h MINOR: acme: add configuration for the crt-store 2025-04-12 01:29:27 +02:00
action-t.h MINOR: hlua: emit a log instead of an alert for aborted actions due to unavailable yield 2025-06-24 10:55:55 +02:00
action.h MINOR: action: Export release_expr_int_action() release function 2024-09-30 16:55:53 +02:00
activity-t.h MINOR: activity/memory: count allocations performed under a lock 2025-09-11 16:32:34 +02:00
activity.h MINOR: activity/memprofile: offer a function to unregister stale info 2024-11-21 19:58:06 +01:00
api-t.h
api.h
applet-t.h MINOR: applet: Add a flag to know an applet is using HTX buffers 2025-08-25 11:11:05 +02:00
applet.h MINOR: applet: Make some applet functions HTX aware 2025-08-25 11:11:05 +02:00
arg-t.h MINOR: arg: add an argument type for identifier 2024-10-18 14:30:24 +02:00
arg.h
atomic.h BUILD: atomics: fix build issue on non-x86/non-arm systems 2025-04-07 09:38:22 +02:00
auth-t.h
auth.h
backend-t.h MEDIUM: lb_fwrr: Use one ebtree per thread group. 2025-04-17 17:38:23 +02:00
backend.h MEDIUM: stats: avoid 1 indirection by storing the shared stats directly in counters struct 2025-07-25 16:46:10 +02:00
base64.h
buf-t.h MINOR: buffer: add a buffer list type with functions 2024-10-12 16:29:15 +02:00
buf.h OPTIM: buffers: avoid a useless wrapping check for ofs == 0 2024-10-18 18:42:47 +02:00
bug.h MINOR: tools: also implement ha_aligned_alloc_typed() 2025-08-13 17:37:08 +02:00
capture-t.h
capture.h
cfgcond-t.h MINOR: cfgcond: Implement enabled condition expression 2023-02-21 11:44:55 +01:00
cfgcond.h
cfgdiag.h
cfgparse.h MINOR: acme: add the acme section in the configuration parser 2025-04-12 01:29:27 +02:00
channel-t.h MINOR: stconn: Temporarily remove kernel splicing support 2023-10-17 18:51:13 +02:00
channel.h CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
check-t.h MINOR: check: implement check-pool-conn-name srv keyword 2025-04-03 17:19:07 +02:00
check.h MEDIUM: check/spoe: Use SPOP multiplexer to perform SPOP health-checks 2024-07-12 15:27:04 +02:00
chunk.h MINOR: chunk: inline alloc_trash_chunk() 2022-08-17 10:45:22 +02:00
cli-t.h MINOR: cli: split APPCTX_CLI_ST1_PROMPT into two distinct flags 2025-04-28 20:21:06 +02:00
cli.h MINOR: mworker/cli: split mworker_cli_proxy_create 2024-10-24 11:32:20 +02:00
clock.h MINOR: clock: add clock_get_now_offset() helper 2025-08-07 22:27:09 +02:00
compat.h BUILD: compat: always set _POSIX_VERSION to ease comparisons 2025-08-06 19:19:27 +02:00
compiler.h MINOR: compiler: add ALWAYS_PAD() macro 2025-09-03 16:28:46 +02:00
compression-t.h MINOR: compression: Introduce minimum size 2025-02-22 11:32:40 +01:00
compression.h MINOR: compression: Store algo and type for both request and response 2023-04-07 00:46:59 +02:00
connection-t.h BUG/MINOR: connection: rearrange union list members 2025-08-28 14:52:29 +02:00
connection.h BUG/MEDIUM: connections: Report connection closing in conn_create_mux() 2025-04-30 17:17:36 +02:00
counters-t.h MEDIUM: stats: avoid 1 indirection by storing the shared stats directly in counters struct 2025-07-25 16:46:10 +02:00
counters.h MINOR: counters: retrieve detailed errmsg upon failure with counters_{fe,be}_shared_prepare() 2025-09-03 15:59:17 +02:00
cpu_topo-t.h MINOR: cpu-topo: pass an extra argument to ha_cpu_policy 2025-03-31 16:21:37 +02:00
cpu_topo.h MINOR: cpu-topo: write thread-cpu bindings into trash buffer 2025-07-17 19:07:58 +02:00
cpuset-t.h CLEANUP: cpuset: remove the unused proc_t1 field in cpu_map 2023-07-20 11:01:09 +02:00
cpuset.h MINOR: cpu-set: add a new function to print cpu-sets in human-friendly mode 2025-03-31 16:21:37 +02:00
debug.h MINOR: debug: make ha_stuck_warning() only work for the current thread 2025-04-17 16:25:47 +02:00
defaults.h MINOR: stats-file: introduce shm-stats-file directive 2025-09-03 15:59:22 +02:00
dgram-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
dgram.h
dict-t.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
dict.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
dns-t.h BUG/MINOR: dns: prevent ds accumulation within dss 2025-04-29 21:20:54 +02:00
dns.h
dns_ring-t.h MEDIUM: ring/applet: turn the wait_entry list to an mt_list instead 2024-03-25 17:34:19 +00:00
dns_ring.h REORG: dns/ring: split the ring between the generic one and the DNS one 2024-03-25 17:34:19 +00:00
dynbuf-t.h MEDIUM: dynbuf: refrain from offering a buffer if more critical ones are waiting 2024-05-10 17:18:13 +02:00
dynbuf.h MINOR: dynbuf: provide a b_dequeue() variant for multi-thread 2024-05-15 19:37:12 +02:00
errors.h MINOR: stats: report the total number of warnings issued 2023-05-11 12:02:21 +02:00
event_hdl-t.h MINOR: event_hdl: add PAT_REF events 2024-11-29 07:22:18 +01:00
event_hdl.h MINOR: event_hdl: add event_hdl_sub_list_empty() helper func 2024-11-07 11:35:55 +01:00
extcheck.h
fcgi-app-t.h CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
fcgi-app.h
fcgi.h
fd-t.h MINOR: pollers: Add a fixup_tgid_takeover() method. 2025-02-26 13:00:18 +01:00
fd.h BUG/MEDIUM: fd: Use the provided tgid in fd_insert() to get tgroup_info 2025-06-10 15:10:56 +02:00
filters-t.h MINOR: filters: add per-filter call counters 2024-10-22 20:13:00 +02:00
filters.h
fix-t.h
fix.h
flt_http_comp.h
freq_ctr-t.h
freq_ctr.h MINOR: freq_ctr: provide non-blocking read functions 2025-02-21 18:26:29 +01:00
frontend.h MINOR: frontend: implement a dedicated actconn increment function 2023-10-26 15:18:48 +02:00
global-t.h MINOR: stats-file: introduce shm-stats-file directive 2025-09-03 15:59:22 +02:00
global.h REORG: version: move the remaining BUILD_* stuff from haproxy.c to version.c 2025-01-20 17:53:55 +01:00
guid-t.h MINOR: guid: restrict guid format 2024-04-05 15:40:42 +02:00
guid.h MINOR: guid: add guid_count() function 2025-08-07 22:26:58 +02:00
h1.h CLEANUP: h1: Remove now useless h1_parse_cont_len_header() function 2025-04-22 16:14:47 +02:00
h1_htx.h MINOR: h1-htx: Add function to format an HTX message in its H1 representation 2025-07-10 10:29:49 +02:00
h2.h MINOR: h2: pass accept-invalid-http-request down the request parser 2023-08-08 19:10:54 +02:00
h3.h MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
h3_stats-t.h MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
h3_stats.h MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
hash.h
hlua-t.h BUG/MEDIUM: hlua: Forbid any L6/L7 sample fetche functions from lua services 2025-06-30 16:47:59 +02:00
hlua.h MINOR: add hlua_yield_asap() helper 2025-04-30 17:00:27 +02:00
hlua_fcn.h MINOR: hlua: add patref class 2024-11-29 07:22:32 +01:00
hpack-dec.h
hpack-enc.h
hpack-huff.h
hpack-tbl-t.h
hpack-tbl.h
hq_interop.h MINOR: quic: support hq-interop 2021-11-18 10:50:58 +01:00
http-hdr-t.h
http-hdr.h
http-t.h MINOR: http: Add support for HTTP 414/431 status codes 2024-11-19 15:29:40 +01:00
http.h MINOR: http: add a function to validate characters of :authority 2025-05-12 18:02:47 +02:00
http_ana-t.h CLEANUP: assorted typo fixes in the code and comments 2025-04-02 11:12:20 +02:00
http_ana.h CLEANUP: http-ana: Remove HTTP_MSG_ERROR state 2023-01-13 11:22:13 +01:00
http_client-t.h BUG/MEDIUM: http-client: Drain the request if an early response is received 2025-07-09 16:27:24 +02:00
http_client.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
http_ext-t.h MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
http_ext.h MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
http_fetch.h
http_htx-t.h MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
http_htx.h MINOR: http_htx: add http_prepend_header() to prepend value to header 2023-01-27 15:18:59 +01:00
http_rules.h MINOR: proxy: add http_free_redirect_rule() function 2023-05-11 15:37:04 +02:00
htx-t.h BUG/MAJOR: filters/htx: Add a flag to state the payload is altered by a filter 2024-10-17 13:54:54 +02:00
htx.h BUG/MAJOR: filters/htx: Add a flag to state the payload is altered by a filter 2024-10-17 13:54:54 +02:00
init-t.h DEBUG: init: add a way to register functions for unit tests 2025-03-03 12:43:32 +01:00
init.h MINOR: init: add REGISTER_POST_DEINIT_MASTER() hook 2025-08-07 22:27:14 +02:00
initcall.h BUILD: compiler: use a more portable set of asm(".weak") statements 2022-04-14 16:57:12 +02:00
intops.h MINOR: intops: add a pair of functions to check multi-byte ranges 2024-04-24 15:54:55 +02:00
istbuf.h
jws.h BUG/MEDIUM: jws: return size_t in JWS functions 2025-09-11 14:31:32 +02:00
jwt-t.h MAJOR: jwt: Allow certificate instead of public key in jwt_verify converter 2025-06-30 17:59:55 +02:00
jwt.h MAJOR: jwt: Allow certificate instead of public key in jwt_verify converter 2025-06-30 17:59:55 +02:00
lb_chash-t.h
lb_chash.h
lb_fas-t.h
lb_fas.h
lb_fwlc-t.h
lb_fwlc.h
lb_fwrr-t.h MEDIUM: lb_fwrr: Use one ebtree per thread group. 2025-04-17 17:38:23 +02:00
lb_fwrr.h
lb_map-t.h
lb_map.h
lb_ss-t.h MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
lb_ss.h MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
limits.h BUILD: limits: make normalize_rlim() take an rlim_t to fix build on m68k 2024-12-25 12:33:06 +01:00
linuxcap.h MINOR: startup: use global progname variable 2024-11-21 19:55:21 +01:00
list-t.h MINOR: list: define a watcher type 2024-12-10 16:04:11 +01:00
list.h BUG/MEDIUM: hlua_fcn: ensure systematic watcher cleanup for server list iterator 2025-08-05 13:06:46 +02:00
listener-t.h MINOR: cfgparse: Add a new "ktls" option to bind and server. 2025-08-20 18:33:10 +02:00
listener.h BUG/MEDIUM: cli: Deadlock when setting frontend maxconn 2024-09-25 17:12:11 +02:00
log-t.h MEDIUM: log/proxy: store log-steps selection using a bitmask, not an eb tree 2025-09-15 10:29:02 +02:00
log.h MINOR: httpclient: add an "https" log-format 2025-04-23 15:32:46 +02:00
mailers-t.h MAJOR: mailers: remove native mailers support 2025-06-24 10:55:58 +02:00
mailers.h MINOR: mailers: warn if mailers are configured but not actually used 2025-06-27 16:41:18 +02:00
map-t.h
map.h
mqtt-t.h CLEANUP: mqtt: fix typo in MQTT_REMAINING_LENGHT_MAX_SIZE 2024-08-30 14:58:59 +02:00
mqtt.h
mux_fcgi-t.h BUG/MEDIUM: mux-fcgi: Properly handle read0 on partial records 2025-02-03 07:49:50 +01:00
mux_h1-t.h MINOR: mux-h1: Add masks to group H1S DEMUX and MUX errors 2025-01-31 10:41:49 +01:00
mux_h2-t.h MEDIUM: server/mux-h2: implement idle-ping on backend side 2025-04-17 14:49:36 +02:00
mux_quic-t.h MINOR: mux-quic: store session in QCS instance 2025-07-23 15:42:37 +02:00
mux_quic.h MINOR: mux-quic: support max bidi streams value set by the peer 2025-06-18 17:25:27 +02:00
mux_spop-t.h BUG/MEDIUM: mux-spop: Remove frame parsing states from the SPOP connection state 2025-05-13 19:51:40 +02:00
mworker-t.h MAJOR: mworker: remove program section support 2025-06-25 16:11:34 +02:00
mworker.h MAJOR: mworker: remove program section support 2025-06-25 16:11:34 +02:00
namespace-t.h
namespace.h
ncbuf-t.h CLEANUP: assorted typo fixes in the code and comments 2022-08-06 17:12:51 +02:00
ncbuf.h CLEANUP: ncbuf: inline small functions 2022-11-29 15:14:39 +01:00
net_helper.h MINOR: net_helper: Add support for floats/doubles. 2024-04-16 07:37:28 +02:00
obj_type-t.h MINOR: quic: pass quic_dgram as obj_type for quic-initial rules 2024-07-25 15:39:39 +02:00
obj_type.h MINOR: quic: pass quic_dgram as obj_type for quic-initial rules 2024-07-25 15:39:39 +02:00
openssl-compat.h MEDIUM: ssl: Add ktls support for AWS-LC. 2025-08-20 18:33:11 +02:00
pattern-t.h MEDIUM: migrate the patterns reference to cebs_tree 2025-09-16 09:23:46 +02:00
pattern.h MINOR: pattern: add a counter of added/freed patterns 2025-07-05 00:12:45 +02:00
payload.h
peers-t.h CLEANUP: assorted typo fixes in the code and comments 2024-05-03 09:01:36 +02:00
peers.h CLEANUP: peers: remove unused peer_session_target() 2025-07-25 18:24:17 +02:00
pipe-t.h
pipe.h
pool-os.h MEDIUM: pools: respect pool alignment in allocations 2025-08-06 19:20:36 +02:00
pool-t.h MINOR: pools: distinguish the requested alignment from the type-specific one 2025-08-11 19:55:30 +02:00
pool.h MINOR: pools: Don't dump anymore info about pools when purge is forced 2025-09-08 16:04:40 +02:00
port_range-t.h
port_range.h
proto_quic.h MINOR: quic: account for global congestion window 2025-04-29 15:19:32 +02:00
proto_rhttp-t.h MINOR: rhttp: rename proto_reverse_connect 2023-11-23 17:38:58 +01:00
proto_rhttp.h CLEANUP: proto: rename TID affinity callbacks 2024-07-11 15:14:06 +02:00
proto_sockpair.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
proto_tcp.h BUILD: proto_tcp: export the correct names for proto_tcpv[46] 2023-04-23 09:46:15 +02:00
proto_udp.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
proto_uxst.h
protobuf-t.h
protobuf.h BUG/MEDIUM: grpc: Fix several unaligned 32/64 bits accesses 2024-04-16 07:37:28 +02:00
protocol-t.h MINOR: protocol: create abnsz socket address family 2024-10-29 12:14:50 +01:00
protocol.h MINOR: tools: extend str2sa_range to add an alt parameter 2024-08-30 18:53:49 +02:00
proxy-t.h MEDIUM: log/proxy: store log-steps selection using a bitmask, not an eb tree 2025-09-15 10:29:02 +02:00
proxy.h MEDIUM: stats: avoid 1 indirection by storing the shared stats directly in counters struct 2025-07-25 16:46:10 +02:00
qmux_http.h MINOR: h3/hq-interop: restore function for standalone FIN receive 2025-03-07 12:06:26 +01:00
qmux_trace.h MINOR: mux-quic: define dump functions for QCC and QCS 2024-08-07 15:40:52 +02:00
qpack-dec.h MINOR: qpack: prepare error renaming 2024-05-16 10:31:17 +02:00
qpack-enc.h MINOR: h3: adjust auth request encoding or fallback to host 2025-06-16 18:11:09 +02:00
qpack-t.h MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
qpack-tbl-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
qpack-tbl.h CLEANUP: tree-wide: remove a few rare non-ASCII chars 2022-03-04 08:58:32 +01:00
queue-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
queue.h MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
quic_ack-t.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
quic_ack.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
quic_cc-t.h MINOR: quic: rename min/max fields for congestion window algo 2025-04-29 15:10:06 +02:00
quic_cc.h MINOR: quic: account for global congestion window 2025-04-29 15:19:32 +02:00
quic_cc_drs.h CLEANUP: quic: remove a wrong comment about ->app_limited (drs) 2024-12-13 14:42:43 +01:00
quic_cc_hystart.h MINOR: quic: HyStart++ implementation (RFC 9406) 2024-04-02 18:47:19 +02:00
quic_cid-t.h REORG: quic: remove quic_cid_trees reference from proto_quic 2024-07-03 15:02:40 +02:00
quic_cid.h REORG: quic: remove quic_cid_trees reference from proto_quic 2024-07-03 15:02:40 +02:00
quic_cli-t.h MINOR: quic: Export QUIC CLI code from quic_conn.c 2023-07-27 10:51:03 +02:00
quic_conn-t.h MINOR: quic: get rid of ->target quic_conn struct member 2025-09-11 09:51:28 +02:00
quic_conn.h MINOR: quic: get rid of ->target quic_conn struct member 2025-09-11 09:51:28 +02:00
quic_enc.h MINOR: quic: simplify length calculation for STREAM/CRYPTO frames 2025-02-12 11:51:09 +01:00
quic_fctl-t.h MINOR: mux-quic: define a flow control related type 2024-01-31 16:28:54 +01:00
quic_fctl.h MINOR: mux-quic: define a flow control related type 2024-01-31 16:28:54 +01:00
quic_frame-t.h MINOR: quic: remove ->offset qf_crypto struct field 2025-08-28 08:19:34 +02:00
quic_frame.h MINOR: quic: remove ->offset qf_crypto struct field 2025-08-28 08:19:34 +02:00
quic_loss-t.h MINOR: quic: Add a counter for reordered packets 2024-02-14 11:32:29 +01:00
quic_loss.h MINOR: quic: quic_loss modifications to support BBR 2024-11-20 17:34:22 +01:00
quic_openssl_compat-t.h CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
quic_openssl_compat.h MINOR: quic: display build warning for compat layer on recent OpenSSL 2025-09-11 10:11:12 +02:00
quic_pacing-t.h CLEANUP: assorted typo fixes in the code and comments 2025-04-02 11:12:20 +02:00
quic_pacing.h MEDIUM: quic: use dynamic credit for pacing 2025-01-23 17:40:48 +01:00
quic_retransmit.h MINOR: quic: implement function to check if STREAM is fully acked 2024-08-07 10:57:10 +02:00
quic_retry.h MINOR: quic-be: address validation support implementation (RETRY) 2025-06-26 09:48:00 +02:00
quic_rules.h MINOR: quic: pass quic_dgram as obj_type for quic-initial rules 2024-07-25 15:39:39 +02:00
quic_rx-t.h BUG/MINOR: quic: repeat packet parsing to deal with fragmented CRYPTO 2024-11-06 14:29:14 +01:00
quic_rx.h MINOR: quic-be: Datagrams and packet parsing support 2025-06-11 18:37:34 +02:00
quic_sock-t.h MINOR: quic: implement send-retry quic-initial rules 2024-07-25 15:39:39 +02:00
quic_sock.h MINOR: quic: get rid of ->target quic_conn struct member 2025-09-11 09:51:28 +02:00
quic_ssl-t.h MINOR: quic: Add new "QUIC over SSL" C module. 2023-07-27 10:51:03 +02:00
quic_ssl.h BUG/MEDIUM: quic: listener connection stuck during handshakes (OpenSSL 3.5) 2025-08-14 14:54:47 +02:00
quic_stats-t.h MINOR: quic: reduce half open counters scope 2023-11-09 16:23:52 +01:00
quic_stats.h MINOIR: quic_stats: add QUIC connection errors counters 2022-05-30 09:59:26 +02:00
quic_stream-t.h MINOR: quic: display stream age 2025-05-13 15:44:22 +02:00
quic_stream.h MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_tls-t.h MINOR: quic: Modify NEW_TOKEN frame structure (qf_new_token struct) 2024-08-30 17:04:09 +02:00
quic_tls.h MINOR: quic-be: address validation support implementation (RETRY) 2025-06-26 09:48:00 +02:00
quic_token.h MINOR: quic: Token for future connections implementation. 2024-08-30 17:04:09 +02:00
quic_tp-t.h MINOR: quic: extend return value during TP parsing 2025-05-07 15:19:52 +02:00
quic_tp.h MINOR: quic-be: Add a function to initialize the QUIC client transport parameters 2025-06-11 18:37:34 +02:00
quic_trace-t.h MINOR: quic: Allow the use of the new OpenSSL 3.5.0 QUIC TLS API (to be completed) 2025-05-20 15:00:06 +02:00
quic_trace.h MINOR: quic: dump quic_conn debug string for logs 2024-08-07 15:40:52 +02:00
quic_tune-t.h MINOR: quic: move global tune options into quic_tune 2025-03-24 10:01:46 +01:00
quic_tune.h MINOR: quic: define quic_tune 2025-01-30 18:12:40 +01:00
quic_tx-t.h BUILD: quic: use _MAX() to avoid build issues in pools declarations 2025-08-06 19:19:11 +02:00
quic_tx.h MINOR: quic: add some missing includes 2025-05-21 14:44:27 +02:00
quic_utils-t.h MINOR: quic: account Tx data per stream 2025-05-13 15:41:41 +02:00
quic_utils.h MINOR: quic: move function to check stream type in utils 2025-05-21 14:17:41 +02:00
receiver-t.h MEDIUM: udp: allow to retrieve the frontend destination address 2024-01-02 11:44:42 +01:00
regex-t.h
regex.h
resolvers-t.h BUG/MINOR: resolvers: Restore round-robin selection on records in DNS answers 2025-09-11 15:46:45 +02:00
resolvers.h MEDIUM: resolvers: add global "dns-accept-family" directive 2025-04-24 17:52:28 +02:00
ring-t.h MEDIUM: ring: always allocate properly aligned ring structures 2025-08-13 17:47:39 +02:00
ring.h MINOR: ring: support arbitrary delimiters through ring_dispatch_messages() 2025-04-08 14:36:35 +02:00
sample-t.h MEDIUM: sample: introduce 'same' output type 2023-07-03 16:32:01 +02:00
sample.h MINOR: sample: add type_to_smp() helper function 2024-02-20 15:18:39 +01:00
sample_data-t.h
sc_strm.h MINOR: applet: Rely on applet flag to detect the new api 2025-08-25 11:11:05 +02:00
server-t.h MEDIUM: server: Introduce the concept of path parameters 2025-09-09 19:01:24 +02:00
server.h MEDIUM: server/ssl: Base the SNI value to the HTTP host header by default 2025-09-05 15:56:42 +02:00
session-t.h OPTIM: stats: store fast sharded counters pointers at session and stream level 2025-07-25 18:24:23 +02:00
session.h MAJOR: server: implement purging of private idle connections 2025-08-28 15:08:35 +02:00
shctx-t.h CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
shctx.h MEDIUM: shctx: Naming shared memory context 2024-04-24 10:25:38 +02:00
show_flags-t.h BUILD: flags: really restrict the cases where flags are exposed 2022-11-24 08:32:27 +01:00
signal-t.h
signal.h
sink-t.h BUG/MINOR: sink: add tempo between 2 connection attempts for sft servers 2025-02-21 11:22:35 +01:00
sink.h MEDIUM: sink: implement sink_find_early() 2024-10-10 16:55:15 +02:00
sock-t.h MINOR: sock: move the unused socket cleaning code into its own function 2022-01-28 19:04:02 +01:00
sock.h MINOR: sock: Add protocol and socket types parameters to sock_create_server_socket() 2025-06-11 18:37:34 +02:00
sock_inet.h MEDIUM: sock-inet: re-check IPv6 connectivity every 30s 2025-05-09 15:45:44 +02:00
sock_unix.h MEDIUM: sock_unix: use per-family addrcmp function 2024-10-29 12:15:09 +01:00
spoe-t.h CLEANUP: assorted typo fixes in the code and comments 2025-04-02 11:12:20 +02:00
spoe.h MINOR: spoe: export the list of SPOP error reasons 2024-07-24 14:19:10 +02:00
ssl_ckch-t.h MINOR: ssl: diagnostic warning when both 'default-crt' and 'strict-sni' are used 2025-08-27 16:22:12 +02:00
ssl_ckch.h MINOR: quic-be: ssl_sock contexts allocation and misc adaptations 2025-06-11 18:37:34 +02:00
ssl_crtlist-t.h
ssl_crtlist.h MINOR: ssl/crtlist: split the ckch_conf loading from the crtlist line parsing 2025-02-17 18:26:37 +01:00
ssl_gencert.h CLEANUP: ssl: move ssl_sock_gencert_load_ca declaration in ssl_gencert.h 2025-01-24 12:31:07 +01:00
ssl_ocsp-t.h MINOR: ssl: improve HAVE_SSL_OCSP ifdef 2024-12-19 10:53:05 +01:00
ssl_ocsp.h BUG/MINOR: ocsp: Crash when updating CA during ocsp updates 2025-09-15 15:34:36 +02:00
ssl_sock-t.h MINOR: ssl: Add a flag to let it known we have an ALPN negociated 2025-09-09 19:01:24 +02:00
ssl_sock.h MINOR: quic-be: make SSL/QUIC objects use their own indexes (ssl_qc_app_data_index) 2025-09-11 09:51:28 +02:00
ssl_trace.h MINOR: ssl: Add curves in ssl traces 2025-07-21 16:44:50 +02:00
ssl_utils.h MINOR: ssl: Add curve id to curve name table and mapping functions 2025-07-21 16:44:50 +02:00
stats-file-t.h MINOR: stats-file: reserve some bytes in exported structs 2025-09-03 16:29:48 +02:00
stats-file.h MEDIUM: stats-file/counters: store and preload stats counters as shm file objects 2025-09-03 15:59:37 +02:00
stats-html-t.h REORG: stats: extract HTML related functions 2024-04-18 17:04:08 +02:00
stats-html.h MINOR: stats: Get the right prototype for stats_dump_html_end(). 2024-04-19 01:54:00 +02:00
stats-json.h REORG: stats: extract JSON related functions 2024-04-18 17:04:08 +02:00
stats-proxy.h MINOR: stats: extract proxy clear-counter in a dedicated function 2024-05-02 16:43:26 +02:00
stats-t.h BUG/BUILD: stats: fix build due to missing stat enum definition 2025-08-29 09:32:10 +02:00
stats.h MEDIUM: stats: add persistent state to typed output format 2025-07-01 14:15:03 +02:00
stconn-t.h BUG/MEDIUM: stconn: Disable 0-copy forwarding for filters altering the payload 2025-05-16 15:11:37 +02:00
stconn.h MEDIUM: tevt/stconn/stream: Add dedicated termination events for stream location 2025-01-31 10:41:50 +01:00
stick_table-t.h CLEANUP: assorted typo fixes in the code, commits and doc 2025-07-10 19:49:48 +02:00
stick_table.h MEDIUM: stick-tables: relax stktable_trash_oldest() to only purge what is needed 2025-09-09 17:56:37 +02:00
stream-t.h DEBUG: stream: count the number of passes in the connect loop 2025-09-09 17:56:14 +02:00
stream.h OPTIM: stats: store fast sharded counters pointers at session and stream level 2025-07-25 18:24:23 +02:00
stress.h MINOR: build: define DEBUG_STRESS 2024-12-12 11:19:10 +01:00
systemd.h MEDIUM: mworker: get rid of libsystemd 2024-04-03 15:53:18 +02:00
task-t.h MEDIUM: tasks: Remove TASK_IN_LIST and use TASK_QUEUED instead. 2025-04-30 17:08:57 +02:00
task.h MINOR: tasks: Remove unused tasklet_remove_from_tasklet_list 2025-04-30 17:09:06 +02:00
tcp_rules.h
tcpcheck-t.h OPTIM: tcpcheck: Reorder tcpchek_connect structure fields to fill holes 2025-09-05 15:56:42 +02:00
tcpcheck.h MEDIUM: proxy/spoe: Add a SPOP mode 2024-07-12 15:27:04 +02:00
thread-t.h MAJOR: jwt: Allow certificate instead of public key in jwt_verify converter 2025-06-30 17:59:55 +02:00
thread.h MINOR: activity: collect time spent with a lock held for each task 2025-09-11 16:32:34 +02:00
ticks.h MINOR: clock: make global_now_ms a pointer 2025-07-29 18:04:14 +02:00
time-t.h MINOR: time: define tot_time structure 2024-08-07 15:40:52 +02:00
time.h MINOR: time: define tot_time structure 2024-08-07 15:40:52 +02:00
timeshift.h REORG: cfgparse: extract curproxy as a global variable 2023-08-01 10:48:28 +02:00
tinfo-t.h MINOR: activity: collect CPU time spent on memory allocations for each task 2025-09-11 16:32:34 +02:00
tinfo.h MINOR: thread: keep a bitmask of enabled groups in thread_set 2023-04-13 16:57:51 +02:00
tools-t.h MINOR: tools: add a new macro DEFVAL() to provide a default argument 2024-12-03 19:45:08 +01:00
tools.h MINOR: tools: implement ha_aligned_zalloc() 2025-08-11 19:55:30 +02:00
trace-t.h MINOR: trace: ensure -dt priority over traces config section 2025-01-10 14:50:59 +01:00
trace.h MINOR: trace: implement tracing disabling API 2024-12-18 09:52:06 +01:00
uri_auth-t.h MEDIUM: uri_auth: implement clean uri_auth cleaning 2024-11-14 15:03:38 +01:00
uri_auth.h MEDIUM: uri_auth: implement clean uri_auth cleaning 2024-11-14 15:03:38 +01:00
uri_normalizer-t.h
uri_normalizer.h
vars-t.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
vars.h IMPORT: cebtree: import version 0.5.0 to support duplicates 2025-09-16 09:23:46 +02:00
vecpair.h CLEANUP: assorted typo fixes in the code and comments 2024-04-17 11:14:44 +02:00
version.h [RELEASE] Released version 3.3-dev0 2025-05-28 16:46:34 +02:00
window_filter.h MINOR: window_filter: rely on the time to update the filter samples (QUIC/BBR) 2024-12-13 14:42:43 +01:00
xref-t.h
xref.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
xxhash.h