haproxy/include/haproxy
Willy Tarreau b0e8edaef2 MEDIUM: mux-h2: do not needlessly refrain from sending data early
The mux currently refrains from sending data before H2_CS_FRAME_H, i.e.
before the peer's SETTINGS frame was received. While it makes sense on
the frontend, it's causing harm on the backend because it forces the
first request to be sent in two halves over an extra RTT: first the
preface and settings, second the request once the settings are received.
This is totally contrary to the philosophy of the H2 protocol, consisting
in permitting the client to send as soon as possible.

Actually what happens is the following:
  - process_stream() calls connect_server()
  - connect_server() creates a connection, and if the proto/alpn is guessed
    or known, the mux is instantiated for the current request.
  - the H2 init code wakes the h2 tasklet up and returns
  - process_stream() tries to send the request using h2_snd_buf(), but that
    one sees that we're before H2_CS_FRAME_H, refrains from doing so and
    returns.
  - process_stream() subscribes and quits
  - the h2 tasklet can now execute to send the preface and settings, which
    leave as a first TCP segment. The connection is ready.
  - the iocb is woken again once the server's SETTINGS frame is received,
    turning the connection to the H2_CS_FRAME_H state, and the iocb wake
    up process_stream().
  - process_stream() executes again and can try to send again.
  - h2_snd_buf() is called and finally sends the request as a second TCP
    segment.

Not only this is inefficient, but it also renders 0-RTT and TFO impossible
on H2 connections. When 0-RTT is used, only the preface and settings leave
as early data (the very first data of that connection), which is totally
pointless.

In order to fix this, we have to go through a few steps:
  - first we need to let data be sent to a server immediately after the
    SETTINGS frame was sent (i.e. in H2_CS_SETTINGS1 state instead of
    H2_CS_FRAME_H). However, some protocol extensions are advertised by
    the server using SETTINGS (e.g. RFC8441) and some requests might need
    to know the existence of such extensions. For this reason we're adding
    a new h2c flag, H2_CF_SETTINGS_NEEDED, which indicates that some
    operations were not done because a server's SETTINGS frame is needed.
    This is set when trying to send a protocol upgrade or extended CONNECT
    during H2_CS_SETTINGS1, indicating that it's needed to wait for
    H2_CS_FRAME_H in this case. The flag is always set on frontend
    connections. This is what is being done in this patch.

  - second, we need to be able to push the preface opportunistically with
    the first h2_snd_buf() so that it's not needed to wake the tasklet up
    just to send that and wake process_stream() again. This will be in a
    separate patch.

By doing the first step, we're at least saving one needless tasklet
wakeup per connection (~9%), which results in ~5% backend connection
rate increase.
2025-10-30 18:16:54 +01: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 MINOR: acme: implement "reuse-key" option 2025-09-27 21:41:39 +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 REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
api.h REORG: global: move initcall register code in a dedicated file 2021-03-26 15:28:33 +01:00
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 MINOR: arg: add a free_args() function to free an args array 2021-07-16 19:18:41 +02:00
atomic.h BUILD: atomics: fix build issue on non-x86/non-arm systems 2025-04-07 09:38:22 +02:00
auth-t.h CLEANUP: auth: fix useless self-include of auth-t.h 2020-07-05 21:32:47 +02:00
auth.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
backend-t.h MEDIUM: lb_fwrr: Use one ebtree per thread group. 2025-04-17 17:38:23 +02:00
backend.h MEDIUM: stats: consider that shared stats pointers may be NULL 2025-09-18 16:49:51 +02:00
base64.h MINOR: sample: add ub64dec and ub64enc converters 2021-04-13 17:28:13 +02:00
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 REORG: include: move capture.h to haproxy/capture{,-t}.h 2020-06-11 10:18:57 +02:00
capture.h REORG: include: move capture.h to haproxy/capture{,-t}.h 2020-06-11 10:18:57 +02:00
cfgcond-t.h MINOR: cfgcond: Implement enabled condition expression 2023-02-21 11:44:55 +01:00
cfgcond.h BUG/MEDIUM: cfgcond: limit recursion level in the condition expression parser 2021-07-20 18:03:08 +02:00
cfgdiag.h CLEANUP: tree-wide: fix prototypes for functions taking no arguments. 2021-09-15 11:07:18 +02:00
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 BUG/MEDIUM: cli: do not return ACKs one char at a time 2025-10-27 16:57:07 +01: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 Revert "MINOR: compiler: add FIXED_SIZE(size, type, name) macro" 2025-10-24 09:35:34 +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 MINOR: rawsock: introduce CO_RFL_TRY_HARDER to detect closures on complete reads 2025-10-01 10:23:01 +02:00
connection.h MEDIUM: connection: reintegrate conn_hash_node into connection 2025-09-16 09:23:46 +02:00
counters-t.h BUG/MAJOR: stats-file: ensure shm_stats_file_object struct mapping consistency (2nd attempt) 2025-10-24 09:35:38 +02:00
counters.h MEDIUM: stats: consider that shared stats pointers may be NULL 2025-09-18 16:49:51 +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 REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
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 DOC: fix a few remainig cases of "Haproxy" and "HAproxy" in doc and comments 2021-05-09 06:50:46 +02:00
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
ech.h MINOR: ssl/ech: add logging and sample fetches for ECH status and outer SNI 2025-10-30 10:37:30 +01: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 MEDIUM: task: extend the state field to 32 bits 2021-03-05 08:30:08 +01:00
fcgi-app-t.h CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
fcgi-app.h REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
fcgi.h REORG: include: move common/fcgi.h to haproxy/ 2020-06-11 10:18:57 +02:00
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 BUG/MAJOR: filters: Always keep all offsets up to date during data filtering 2020-11-24 14:17:32 +01:00
fix-t.h BUG/MINOR: sample: Rename SenderComID/TargetComID to SenderCompID/TargetCompID 2021-03-10 10:44:20 +01:00
fix.h BUG/MINOR: sample: Rename SenderComID/TargetComID to SenderCompID/TargetCompID 2021-03-10 10:44:20 +01:00
flt_http_comp.h REORG: include: move proxy.h to haproxy/proxy{,-t}.h 2020-06-11 10:18:58 +02:00
freq_ctr-t.h Revert "MEDIUM: freq-ctr: use explicit-size types for freq-ctr struct" 2025-10-24 09:35:29 +02:00
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 BUG/MINOR: quic: rename and duplicate stream settings 2025-10-23 16:49:20 +02:00
global.h MINOR: init: Make devnullfd global and create it earlier in init 2025-10-29 10:54:17 +01:00
guid-t.h MEDIUM: guid: switch guid to more compact cebuis_tree 2025-09-16 09:23:46 +02:00
guid.h MEDIUM: guid: switch guid to more compact cebuis_tree 2025-09-16 09:23:46 +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 REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
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 REORG: include: move hpack*.h to haproxy/ and split hpack-tbl 2020-06-11 10:18:57 +02:00
hpack-enc.h REORG: include: move hpack*.h to haproxy/ and split hpack-tbl 2020-06-11 10:18:57 +02:00
hpack-huff.h REORG: include: move hpack*.h to haproxy/ and split hpack-tbl 2020-06-11 10:18:57 +02:00
hpack-tbl-t.h BUILD: hpack: hpack-tbl-t.h uses VAR_ARRAY but does not include compiler.h 2020-12-22 10:18:07 +01:00
hpack-tbl.h CLEANUP: hpack: export debug functions and move inlines to .h 2020-06-11 10:18:58 +02:00
hq_interop.h MINOR: quic: support hq-interop 2021-11-18 10:50:58 +01:00
http-hdr-t.h REORG: include: split common/http-hdr.h into haproxy/http-hdr{,-t}.h 2020-06-11 10:18:57 +02:00
http-hdr.h REORG: include: split common/http-hdr.h into haproxy/http-hdr{,-t}.h 2020-06-11 10:18:57 +02:00
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 CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
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 MEDIUM: htx: Remove the HTX extra field 2025-10-08 11:10:42 +02:00
htx.h MEDIUM: htx: Remove the HTX extra field 2025-10-08 11:10:42 +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 MINOR: initcalls: Add a new initcall stage, STG_INIT_2 2025-10-20 15:04:41 +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 REORG: include: move istbuf.h to haproxy/ 2020-06-11 10:18:56 +02:00
jws.h BUG/MEDIUM: jws: return size_t in JWS functions 2025-09-11 14:31:32 +02:00
jwt-t.h MINOR: jwt: Add specific error code for known but unavailable certificate 2025-10-13 10:38:52 +02:00
jwt.h MINOR: jwt: Do not look into ckch_store for jwt_verify converter 2025-10-13 10:38:52 +02:00
lb_chash-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_chash.h BUG/MINOR: proxy: Missing calloc return value check in chash_init_server_tree 2021-05-31 10:55:51 +02:00
lb_fas-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_fas.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fwlc-t.h CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
lb_fwlc.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fwrr-t.h MEDIUM: lb_fwrr: Use one ebtree per thread group. 2025-04-17 17:38:23 +02:00
lb_fwrr.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
lb_map-t.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
lb_map.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
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 MEDIUM: ssl/ech: config and load keys 2025-10-30 10:37:12 +01:00
listener.h MINOR: listener: implement bind_conf_find_by_name() 2025-10-30 10:37:42 +01: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 REORG: include: move sample.h to haproxy/sample{,-t}.h 2020-06-11 10:18:58 +02:00
map.h REORG: include: move sample.h to haproxy/sample{,-t}.h 2020-06-11 10:18:58 +02:00
mqtt-t.h CLEANUP: mqtt: fix typo in MQTT_REMAINING_LENGHT_MAX_SIZE 2024-08-30 14:58:59 +02:00
mqtt.h MINOR: sample: Add converts to parses MQTT messages 2020-11-05 19:27:03 +01:00
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: mux-h2: do not needlessly refrain from sending data early 2025-10-30 18:16:54 +01: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 CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
namespace.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
ncbmbuf-t.h MINOR: ncbmbuf: define new ncbmbuf type 2025-10-22 15:04:06 +02:00
ncbmbuf.h MINOR: ncbmbuf: implement advance operation 2025-10-22 15:04:06 +02:00
ncbuf-t.h MINOR: ncbuf: extract common types 2025-10-22 11:11:20 +02:00
ncbuf.h CLEANUP: ncbuf: inline small functions 2022-11-29 15:14:39 +01:00
ncbuf_common-t.h MINOR: ncbuf: extract common types 2025-10-22 11:11:20 +02: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 BUILD: openssl-compat: fix build failure with OPENSSL=0 and KTLS=1 2025-10-24 10:45:02 +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 REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
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 REORG: include: move pipe.h to haproxy/pipe{,-t}.h 2020-06-11 10:18:57 +02:00
pipe.h REORG: include: move pipe.h to haproxy/pipe{,-t}.h 2020-06-11 10:18:57 +02:00
pool-os.h MEDIUM: pools: detect() when munmap() fails in UAF mode 2025-10-13 19:22:31 +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 CLEANUP: tree-wide: use VAR_ARRAY instead of [0] in various definitions 2020-09-12 20:56:41 +02:00
port_range.h BUG/MINOR: server: Missing calloc return value check in srv_parse_source 2021-05-31 10:50:32 +02:00
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 MINOR: protocol: export protocol definitions 2020-12-08 14:54:08 +01:00
protobuf-t.h REORG: include: move protocol_buffers.h to haproxy/protobuf{,-t}.h 2020-06-11 10:18:58 +02:00
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 CLEANUP: proxy: slightly reorganize fields to plug some holes 2025-09-16 09:23:46 +02:00
proxy.h MINOR: proxy: introduce proxy_abrt_close_def() to pass the desired default 2025-10-08 10:29:41 +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 BUG/MINOR: quic: rename and duplicate stream settings 2025-10-23 16:49:20 +02:00
quic_conn.h BUG/MAJOR: quic: use ncbmbuf for CRYPTO handling 2025-10-22 15:04:41 +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 MINOR: quic: remove received CRYPTO temporary tree storage 2025-10-22 15:24:02 +02: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 BUG/MAJOR: quic: use ncbmbuf for CRYPTO handling 2025-10-22 15:04:41 +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 BUG/MINOR: quic: rename and duplicate stream settings 2025-10-23 16:49:20 +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 BUG/MINOR: quic: rename and duplicate stream settings 2025-10-23 16:49:20 +02:00
quic_tune.h MINOR: quic: prepare support for options on FE/BE side 2025-10-23 15:06:01 +02: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 BUILD/MINOR: regex: avoid a build warning on USE_PCRE2 with -Wundef 2021-08-28 12:49:58 +02:00
regex.h MINOR: regex: use a thread-local match pointer for pcre2 2025-10-13 16:56:43 +02:00
resolvers-t.h MEDIUM: server: switch the host_dn member to cebis_tree 2025-09-16 09:23:46 +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 CLEANUP: include: move sample_data out of sample-t.h 2020-06-11 10:18:59 +02:00
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 MINOR: server: add the "cc" keyword to set the TCP congestion controller 2025-09-17 17:19:33 +02:00
server.h MEDIUM: stats: consider that shared stats pointers may be NULL 2025-09-18 16:49:51 +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 REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
signal.h CLEANUP: tree-wide: fix prototypes for functions taking no arguments. 2021-09-15 11:07:18 +02:00
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 OPTIM: sink: don't waste time calling sink_announce_dropped() if busy 2025-09-18 09:07:35 +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: Do not dump decrypted privkeys in 'dump ssl cert' 2025-10-29 10:54:17 +01: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 CLEANUP: tree-wide: only include ebtree-t from type files 2021-10-07 01:41:14 +02:00
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: Do not dump decrypted privkeys in 'dump ssl cert' 2025-10-29 10:54:17 +01:00
ssl_sock.h MEDIUM: ssl: Add certificate password callback that calls external command 2025-10-29 10:54:17 +01: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 MINOR: stconn: Add two fields in sedesc to replace the HTX extra value 2025-10-08 11:01:36 +02:00
stconn.h BUG/MEDIUM: stconn: Properly forward kip to the opposite SE descriptor 2025-10-10 11:01:21 +02:00
stick_table-t.h MEDIUM: stick-tables: Remove the table lock 2025-10-20 15:04:47 +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 MEDIUM: stats: consider that shared stats pointers may be NULL 2025-09-18 16:49:51 +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: sched: pass the thread number to is_sched_alive() 2025-10-01 10:18:53 +02:00
tcp_rules.h MINOR: actions: Export actions lookup functions 2020-12-02 09:45:18 +01:00
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 MEDIUM: jwt: Remove certificate support in jwt_verify converter 2025-10-13 10:38:52 +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: don't call strlen() on the function's name 2025-09-18 08:31:57 +02: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 MINOR: uri_normalizer: Add enum uri_normalizer_err 2021-04-19 09:05:57 +02:00
uri_normalizer.h MINOR: uri_normalizer: Add fragment-encode normalizer 2021-05-11 17:24:32 +02:00
vars-t.h CLEANUP: vars: use the item API for the variables trees 2025-09-16 10:51:23 +02:00
vars.h CLEANUP: vars: use the item API for the variables trees 2025-09-16 10:51:23 +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 REORG: include: split common/xref.h into haproxy/xref{,-t}.h 2020-06-11 10:18:57 +02:00
xref.h BUILD: tree-wide: fix a few missing includes in a few files 2024-03-05 11:50:34 +01:00
xxhash.h CLEANUP: Move XXH3 macro from haproxy/compat.h to haproxy/xxhash.h 2021-09-11 20:37:50 +02:00