haproxy/src
Willy Tarreau dc572364c6 BUG/MINOR: mux-h2: advertise a larger connection window size
By default H2 uses a 65535 bytes window for the connection, and changing
it requires sending a WINDOW_UPDATE message. We only used to update the
window when receiving data, thus never increasing it further.

As reported by user klzgrad on the mailing list, this seriously limits
the upload bitrate, and will have an even higher impact on the backend
H2 connections to origin servers.

There is no technical reason for keeping this window so low, so let's
increase it to the maximum possible value (2G-1). We do this by
pretending we've already received that many data minus the maximum
data the client might already send (65535), so that an early
WINDOW_UPDATE message is sent right after the SETTINGS frame.

This should be backported to 1.8. This patch depends on previous
patch "BUG/MINOR: mux-h2: refrain from muxing during the preface".
2018-12-12 09:23:41 +01:00
..
51d.c CLEANUP: Fix typo in the 51d subsystem 2018-12-02 18:41:54 +01:00
acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
action.c MINOR: action: Add function to check rules using an action ACT_ACTION_TRK_* 2017-10-31 11:36:12 +01:00
activity.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
applet.c MINOR: stream-int: replace si_{want,stop}_put() with si_rx_endp_{more,done}() 2018-11-18 21:41:47 +01:00
arg.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
auth.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
backend.c BUG/MEDIUM: connections: Remove error flags when retrying. 2018-12-08 21:56:07 +01:00
base64.c CLEANUP: Fix a typo in the base64 subsystem 2018-12-02 18:42:08 +01:00
buffer.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cache.c REORG: htx: merge types+proto into common/htx.h 2018-12-11 17:15:04 +01:00
cfgparse-global.c MINOR: config: round up global.tune.bufsize to the next multiple of 2 void* 2018-12-12 06:19:42 +01:00
cfgparse-listen.c REORG: config: extract the proxy parser into cfgparse-listen.c 2018-11-19 06:47:09 +01:00
cfgparse.c MINOR: config: make sure to associate the proper mux to bind and servers 2018-12-02 13:29:35 +01:00
channel.c BUG/MEDIUM: buffers: Make sure we don't wrap in ci_insert_line2/b_rep_blk. 2018-10-08 16:11:54 +02:00
checks.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
chunk.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cli.c MINOR: cli: use pcli_flags for prompt activation 2018-12-11 17:05:40 +01:00
compression.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
connection.c MINOR: sample: add bc_http_major 2018-12-07 15:34:39 +01:00
da.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
dns.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
ev_epoll.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
ev_kqueue.c MINOR: polling: add an option to support busy polling 2018-11-22 19:47:30 +01:00
ev_poll.c MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
ev_select.c MINOR: poller: move the call of tv_update_date() back to the pollers 2018-11-22 18:57:37 +01:00
fd.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
filters.c REORG: htx: merge types+proto into common/htx.h 2018-12-11 17:15:04 +01:00
flt_http_comp.c CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
flt_spoe.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
flt_trace.c CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
freq_ctr.c BUG/MAJOR: threads/freq_ctr: use a memory barrier to detect changes 2017-10-31 18:01:18 +01:00
frontend.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
h1.c REORG: h1: merge types+proto into common/h1.h 2018-12-11 17:15:13 +01:00
h2.c MINOR: h2: add new functions to produce an HTX message from an H2 response 2018-12-02 13:30:17 +01:00
haproxy.c MINOR: config: round up global.tune.bufsize to the next multiple of 2 void* 2018-12-12 06:19:42 +01:00
hash.c MINOR: hash: add new function hash_crc32c 2018-03-21 05:04:01 +01:00
hathreads.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
hdr_idx.c CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
hlua.c REORG: connection: centralize the conn_set_{tos,mark,quickack} functions 2018-12-11 16:41:51 +01:00
hlua_fcn.c CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
hpack-dec.c BUG/CRITICAL: hpack: fix improper sign check on the header index value 2018-09-20 11:45:56 +02:00
hpack-enc.c MINOR: hpack: move the length computation and encoding functions to .h 2018-12-11 09:06:46 +01:00
hpack-huff.c BUG/MINOR: hpack: must reject huffman literals padded with more than 7 bits 2017-12-03 21:08:39 +01:00
hpack-tbl.c BUG/CRITICAL: hpack: fix improper sign check on the header index value 2018-09-20 11:45:56 +02:00
http.c MEDIUM: proto_htx: Convert all HTTP error messages into HTX 2018-12-01 17:37:27 +01:00
http_acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_act.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_conv.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_fetch.c REORG: h1: merge types+proto into common/h1.h 2018-12-11 17:15:13 +01:00
http_htx.c REORG: h1: merge types+proto into common/h1.h 2018-12-11 17:15:13 +01:00
http_msg.c REORG: h1: move legacy http functions to http_msg.c 2018-12-11 17:15:13 +01:00
http_rules.c MINOR: http: Make new "early-hint" http-request action really be parsed. 2018-11-12 21:08:55 +01:00
htx.c REORG: htx: merge types+proto into common/htx.h 2018-12-11 17:15:04 +01:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fas.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fwlc.c BUG/MEDIUM: lb/threads: always properly lock LB algorithms on maintenance operations 2018-08-21 19:44:53 +02:00
lb_fwrr.c CLEANUP: Fix typo in the fwrr subsystem 2018-12-02 18:40:53 +01:00
lb_map.c BUG/MINOR: lb-map: fix unprotected update to server's score 2018-12-02 19:22:55 +01:00
listener.c MINOR: config: make sure to associate the proper mux to bind and servers 2018-12-02 13:29:35 +01:00
log.c CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions 2018-12-11 17:15:13 +01:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c MEDIUM: Add parsing of mailers section 2015-02-03 00:24:16 +01:00
map.c CLEANUP: Fix typos in the map management functions 2018-12-02 18:40:38 +01:00
memory.c MEDIUM: memory: make the pool cache an array and not a thread_local 2018-11-26 19:50:32 +01:00
mux_h1.c MEDIUM: mux-h1: implement true zero-copy of DATA blocks 2018-12-11 19:56:06 +01:00
mux_h2.c BUG/MINOR: mux-h2: advertise a larger connection window size 2018-12-12 09:23:41 +01:00
mux_pt.c BUG/MEDIUM: mux_pt: Always set CS_FL_RCV_MORE. 2018-12-04 19:23:56 +01:00
namespace.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
pattern.c MEDIUM: init: use self-initializing spinlocks and rwlocks 2018-11-26 19:50:32 +01:00
payload.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
peers.c CLEANUP: Fix typos in the peers subsystem 2018-11-18 22:26:42 +01:00
pipe.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
proto_http.c REORG: h1: merge types+proto into common/h1.h 2018-12-11 17:15:13 +01:00
proto_htx.c REORG: htx: merge types+proto into common/htx.h 2018-12-11 17:15:04 +01:00
proto_sockpair.c CLEANUP: Fix typos in the socket pair protocol subsystem 2018-12-02 18:40:33 +01:00
proto_tcp.c CLEANUP: Fix typos in the proto_tcp subsystem 2018-12-02 18:39:05 +01:00
proto_udp.c CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proto_uxst.c BUG/MEDIUM: mworker: avoid leak of client socket 2018-11-27 19:34:00 +01:00
protocol.c MEDIUM: protocol: use a custom AF_MAX to help protocol parser 2018-09-12 07:12:27 +02:00
proxy.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
queue.c CLEANUP: Fix a typo in the queue subsystem 2018-12-02 18:40:11 +01:00
raw_sock.c MINOR: connections: Introduce an unsubscribe method. 2018-10-11 15:34:21 +02:00
regex.c MINOR: initcall: apply initcall to all register_build_opts() calls 2018-11-26 19:50:32 +01:00
sample.c BUG/MEDIUM: sample: Don't treat SMP_T_METH as SMP_T_STR. 2018-12-07 15:31:43 +01:00
server.c MEDIUM: servers: Add a way to keep idle connections alive. 2018-12-02 18:16:53 +01:00
session.c CLEANUP: Fix a typo in the session subsystem 2018-12-02 18:39:57 +01:00
sha1.c IMPORT: sha1: import SHA1 functions 2017-10-25 04:45:48 +02:00
shctx.c CLEANUP: Fix typos in the shctx subsystem 2018-12-02 18:40:29 +01:00
signal.c CLEANUP: Fix a typo in the signal subsystem 2018-12-02 18:39:52 +01:00
ssl_sock.c BUG/MINOR: fix ssl_fc_alpn and actually add ssl_bc_alpn 2018-12-04 05:53:45 +01:00
standard.c MINOR: Fix typo in error message in the standard subsystem 2018-11-18 22:26:42 +01:00
stats.c REORG: htx: merge types+proto into common/htx.h 2018-12-11 17:15:04 +01:00
stick_table.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
stream.c CLEANUP: stream: remove SF_TUNNEL, SF_INITIALIZED, SF_CONN_TAR 2018-12-11 18:01:38 +01:00
stream_interface.c BUG/MINOR: stream-int: Process read0 even if no data was received in si_cs_recv 2018-12-07 14:57:58 +01:00
task.c BUG/MEDIUM: mworker: fix several typos in mworker_cleantasks() 2018-12-06 15:38:24 +01:00
tcp_rules.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
time.c REORG: time/activity: move activity measurements to activity.{c,h} 2018-11-22 11:48:41 +01:00
trace.c CONTRIB: trace: try to display the function's return value on exit 2017-10-24 19:54:25 +02:00
uri_auth.c CLEANUP: log: Rename Alert/Warning in ha_alert/ha_warning 2017-11-24 17:19:12 +01:00
vars.c MEDIUM: init: use initcall for all fixed size pool creations 2018-11-26 19:50:32 +01:00
wurfl.c MINOR: initcall: use initcalls for most post_{check,deinit} and per_thread* 2018-11-26 19:50:32 +01:00
xxhash.c CLEANUP: fix 2 typos in the xxhash subsystem 2018-11-18 22:23:15 +01:00