From: Amaury Denoyelle Date: Mon, 6 Jul 2026 14:35:39 +0000 (+0200) Subject: MEDIUM: quic: remove deprecated keywords X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib//%22%22?a=commitdiff_plain;p=haproxy.git MEDIUM: quic: remove deprecated keywords Several QUIC related keywords were removed in 3.4. The legacy options were marked as deprecated and scheduled for removal in 3.5. This patch applies this removal for the upcoming 3.5. --- diff --git a/doc/configuration.txt b/doc/configuration.txt index e400ad4b7..5ff19f926 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -1955,10 +1955,6 @@ The following keywords are supported in the "global" section : - tune.quic.be.stream.rxbuf - tune.quic.be.tx.pacing - tune.quic.be.tx.udp-gso - - tune.quic.cc.cubic.min-losses (deprecated) - - tune.quic.cc-hystart (deprecated) - - tune.quic.disable-tx-pacing (deprecated) - - tune.quic.disable-udp-gso (deprecated) - tune.quic.fe.cc.cubic-min-losses - tune.quic.fe.cc.hystart - tune.quic.fe.cc.max-frame-loss @@ -1974,18 +1970,8 @@ The following keywords are supported in the "global" section : - tune.quic.fe.stream.rxbuf - tune.quic.fe.tx.pacing - tune.quic.fe.tx.udp-gso - - tune.quic.frontend.max-data-size (deprecated) - - tune.quic.frontend.max-idle-timeout (deprecated) - - tune.quic.frontend.max-streams-bidi (deprecated) - - tune.quic.frontend.max-tx-mem (deprecated) - - tune.quic.frontend.stream-data-ratio (deprecated) - - tune.quic.frontend.default-max-window-size (deprecated) - tune.quic.listen - - tune.quic.max-frame-loss (deprecated) - tune.quic.mem.tx-max - - tune.quic.reorder-ratio (deprecated) - - tune.quic.retry-threshold (deprecated) - - tune.quic.socket-owner (deprecated) - tune.quic.zero-copy-fwd-send - tune.renice.runtime - tune.renice.startup @@ -5142,22 +5128,12 @@ tune.quic.fe.cc.cubic-min-losses compare some metrics. Never go beyond 2 without an expert's prior analysis of the situation. The default and minimum value is 1. Always use 1. -tune.quic.cc.cubic.min-losses (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.cc.hystart { on | off } tune.quic.fe.cc.hystart { on | off } Enables ('on') or disabled ('off') the HyStart++ (RFC 9406) algorithm for QUIC connections used as a replacement for the slow start phase of congestion control algorithms which may cause high packet loss. It is disabled by default. -tune.quic.cc-hystart { on | off } (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.cc.max-frame-loss tune.quic.fe.cc.max-frame-loss Sets the limit for which a single QUIC frame can be marked as lost. If @@ -5165,11 +5141,6 @@ tune.quic.fe.cc.max-frame-loss The default value is 10. -tune.quic.max-frame-loss (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.cc.max-win-size tune.quic.fe.cc.max-win-size Sets the default maximum window size for the congestion controller of a @@ -5185,11 +5156,6 @@ tune.quic.fe.cc.max-win-size See also the "quic-cc-algo" bind and server options. -tune.quic.frontend.default-max-window-size (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.cc.reorder-ratio <0..100, in percent> tune.quic.fe.cc.reorder-ratio <0..100, in percent> The ratio applied to the packet reordering threshold calculated. It may @@ -5197,11 +5163,6 @@ tune.quic.fe.cc.reorder-ratio <0..100, in percent> The default value is 50. -tune.quic.reorder-ratio <0..100, in percent> (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.max-idle-timeout tune.quic.fe.max-idle-timeout Sets the QUIC max_idle_timeout transport parameters on either frontend or @@ -5215,11 +5176,6 @@ tune.quic.fe.max-idle-timeout The default value is 30s. -tune.quic.frontend.max-idle-timeout (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.sec.glitches-threshold tune.quic.fe.sec.glitches-threshold Sets the threshold for the number of glitches per connection either on @@ -5235,11 +5191,6 @@ tune.quic.fe.sec.glitches-threshold See also: fc_glitches, tune.glitches.kill.cpu-usage -tune.quic.frontend.glitches-threshold (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.fe.sec.retry-threshold Dynamically enables the Retry feature for all the configured QUIC listeners as soon as this number of half open connections is reached. A half open @@ -5254,11 +5205,6 @@ tune.quic.fe.sec.retry-threshold See https://www.rfc-editor.org/rfc/rfc9000.html#section-8.1.2 for more information about QUIC retry. -tune.quic.retry-threshold (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.fe.sock-per-conn { default-on | force-off } Specifies globally how QUIC frontend connections will use socket for receive/send operations. Connections can share listener socket or each @@ -5288,12 +5234,6 @@ tune.quic.fe.sock-per-conn { default-on | force-off } "force-off" is used globally, it will be applied on every listener instance, regardless of their individual configuration. -tune.quic.socket-owner { connection | listener } (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. The newer - option is named "tune.quic.fe.sock-per-conn", with legacy value "connection" - corresponding to "default-on" and "listener" to "force-off". - tune.quic.be.stream.data-ratio <0..100, in percent> tune.quic.fe.stream.data-ratio <0..100, in percent> This setting allows to configure the hard limit of the number of data bytes @@ -5314,11 +5254,6 @@ tune.quic.fe.stream.data-ratio <0..100, in percent> "tune.quic.be.stream.max-concurrent", "tune.quic.fe.stream.max-concurrent" -tune.quic.frontend.stream-data-ratio <0..100, in percent> (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.stream.max-concurrent tune.quic.fe.stream.max-concurrent On frontend side, this is used as the value for the advertised @@ -5362,11 +5297,6 @@ tune.quic.fe.stream.max-total The default value is 0 which implies no specific limit outside of the QUIC protocol encoding limitation (2^60, more than a billion billion). -tune.quic.frontend.max-streams-bidi (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.stream.rxbuf tune.quic.fe.stream.rxbuf This setting is the hard limit for the number of data bytes in flight over a @@ -5384,11 +5314,6 @@ tune.quic.fe.stream.rxbuf "tune.quic.fe.stream.max-concurrent", "tune.quic.be.stream.data-ratio", "tune.quic.fe.stream.data-ratio" -tune.quic.frontend.max-data-size (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.tx.pacing { on | off } tune.quic.fe.tx.pacing { on | off } Enables ('on') or disables ('off') pacing support for QUIC emission. By @@ -5400,11 +5325,6 @@ tune.quic.fe.tx.pacing { on | off } See also the "quic-cc-algo" bind and server options. -tune.quic.disable-tx-pacing (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.be.tx.udp-gso { on | off } tune.quic.fe.tx.udp-gso { on | off } Enables ('on') or disables ('off') UDP GSO support for QUIC emission. By @@ -5413,11 +5333,6 @@ tune.quic.fe.tx.udp-gso { on | off } be useful to disable it on developers suggestion when suspecting an issue on emission. -tune.quic.disable-udp-gso (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.listen { on | off } Disable QUIC transport protocol on the frontend side. All the QUIC listeners will still be created, but they won't listen for incoming datagrams. Hence, @@ -5437,11 +5352,6 @@ tune.quic.mem.tx-max connection will always be able to use a window of at least 2 datagrams, so a proper maxconn should be used in conjunction. -tune.quic.frontend.max-tx-mem (deprecated) - This keyword has been deprecated in 3.3 and will be removed in 3.5. It is - part of the streamlining process apply on QUIC configuration. If used, this - setting will only be applied on frontend connections. - tune.quic.zero-copy-fwd-send { on | off } Enables ('on') of disabled ('off') the zero-copy sends of data for the QUIC multiplexer. It is enabled by default. diff --git a/src/cfgparse-quic.c b/src/cfgparse-quic.c index f06a4847d..7b9da28c7 100644 --- a/src/cfgparse-quic.c +++ b/src/cfgparse-quic.c @@ -292,33 +292,6 @@ static int cfg_parse_quic_tune_sock_per_conn(char **args, int section_type, return 0; } -/* parse "tune.quic.socket-owner", accepts "listener" or "connection" */ -static int cfg_parse_quic_tune_socket_owner(char **args, int section_type, - struct proxy *curpx, - const struct proxy *defpx, - const char *file, int line, char **err) -{ - if (too_many_args(1, args, err, NULL)) - return -1; - - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.sock-per-conn'.", args[0]); - - if (strcmp(args[1], "connection") == 0) { - quic_tune.fe.opts |= QUIC_TUNE_FE_SOCK_PER_CONN; - } - else if (strcmp(args[1], "listener") == 0) { - quic_tune.fe.opts &= ~QUIC_TUNE_FE_SOCK_PER_CONN; - } - else { - memprintf(err, "'%s' expects either 'listener' or 'connection' but got '%s'.", args[0], args[1]); - return -1; - } - - /* Returns 1 to ensure deprecated warning is displayed. */ - return 1; -} - /* Must be used to parse tune.quic.* setting which requires a time * as value. * Return -1 on alert, or 0 if succeeded. @@ -362,13 +335,6 @@ static int cfg_parse_quic_time(char **args, int section_type, &quic_tune.fe.max_idle_timeout; *ptr = time; } - /* legacy options */ - else if (strcmp(name + prefix_len, "frontend.max-idle-timeout") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.max-idle-timeout'.", args[0]); - quic_tune.fe.max_idle_timeout = time; - ret = 1; - } else { memprintf(err, "'%s' keyword not handled (please report this bug).", args[0]); ret = -1; @@ -489,105 +455,6 @@ static int cfg_parse_quic_tune_setting(char **args, int section_type, *ptr = arg; } - - /* legacy options */ - else if (strcmp(suffix, "cc.cubic.min-losses") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.cc.cubic-min-losses'.", args[0]); - quic_tune.fe.cc_cubic_min_losses = arg - 1; - ret = 1; - } - else if (strcmp(suffix, "frontend.default-max-window-size") == 0) { - unsigned long cwnd; - char *end_opt; - - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.cc.max-win-size'.", args[0]); - - cwnd = parse_window_size(args[0], args[1], &end_opt, err); - if (!cwnd) - return -1; - if (*end_opt != '\0') { - memprintf(err, "'%s' : expects an integer value with an optional suffix 'k', 'm' or 'g'", args[0]); - return -1; - } - - quic_tune.fe.cc_max_win_size = cwnd; - ret = 1; - } - else if (strcmp(suffix, "frontend.glitches-threshold") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.sec.glitches-threshold'.", args[0]); - quic_tune.fe.sec_glitches_threshold = arg; - ret = 1; - } - else if (strcmp(suffix, "frontend.max-data-size") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.stream.rxbuf'.", args[0]); - if ((errptr = parse_size_err(args[1], &arg))) { - memprintf(err, "'%s': unexpected character '%c' in size argument '%s'.", - args[0], *errptr, args[1]); - return -1; - } - - quic_tune.fe.stream_rxbuf = arg; - ret = 1; - } - else if (strcmp(suffix, "frontend.max-streams-bidi") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.stream.max-concurrent'.", args[0]); - quic_tune.fe.stream_max_concurrent = arg; - ret = 1; - } - else if (strcmp(suffix, "frontend.max-tx-mem") == 0) { - ullong max_mem; - - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.mem.tx-max'.", args[0]); - - if ((errptr = parse_size_err(args[1], &max_mem))) { - memprintf(err, "'%s': unexpected character '%c' in size argument '%s'.", - args[0], *errptr, args[1]); - return -1; - } - - quic_tune.mem_tx_max = max_mem; - ret = 1; - } - else if (strcmp(suffix, "frontend.stream-data-ratio") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.stream.data-ratio'.", args[0]); - - if (arg < 1 || arg > 100) { - memprintf(err, "'%s' expects an integer argument between 1 and 100.", args[0]); - return -1; - } - quic_tune.fe.stream_data_ratio = arg; - ret = 1; - } - else if (strcmp(suffix, "max-frame-loss") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.cc.max-frame-loss'.", args[0]); - quic_tune.fe.cc_max_frame_loss = arg; - ret = 1; - } - else if (strcmp(suffix, "reorder-ratio") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.cc.reorder-ratio'.", args[0]); - if (arg > 100) { - memprintf(err, "'%s' expects an integer argument between 0 and 100.", args[0]); - return -1; - } - - quic_tune.fe.cc_reorder_ratio = arg; - ret = 1; - } - else if (strcmp(suffix, "retry-threshold") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.sec.retry-threshold'.", args[0]); - quic_tune.fe.sec_retry_threshold = arg; - ret = 1; - } else { memprintf(err, "'%s' keyword not handled (please report this bug).", args[0]); return -1; @@ -596,39 +463,6 @@ static int cfg_parse_quic_tune_setting(char **args, int section_type, return ret; } -static int cfg_parse_quic_tune_setting0(char **args, int section_type, - struct proxy *curpx, - const struct proxy *defpx, - const char *file, int line, char **err) -{ - int ret = 0; - int prefix_len = strlen("tune.quic."); - const char *suffix; - - if (too_many_args(0, args, err, NULL)) - return -1; - - suffix = args[0] + prefix_len; - if (strcmp(suffix, "disable-tx-pacing") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.tx.pacing'.", args[0]); - quic_tune.fe.fb_opts &= ~QUIC_TUNE_FB_TX_PACING; - ret = 1; - } - else if (strcmp(suffix, "disable-udp-gso") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.tx.udp-gso'.", args[0]); - quic_tune.fe.fb_opts &= ~QUIC_TUNE_FB_TX_UDP_GSO; - ret = 1; - } - else { - memprintf(err, "'%s' keyword unhandled (please report this bug).", args[0]); - return -1; - } - - return ret; -} - /* config parser for global "tune.quic.* {on|off}" */ static int cfg_parse_quic_tune_on_off(char **args, int section_type, struct proxy *curpx, const struct proxy *defpx, const char *file, int line, @@ -691,15 +525,6 @@ static int cfg_parse_quic_tune_on_off(char **args, int section_type, struct prox else *ptr &= ~QUIC_TUNE_FB_TX_UDP_GSO; } - else if (strcmp(suffix, "cc-hystart") == 0) { - memprintf(err, "'%s' is deprecated in 3.3 and will be removed in 3.5. " - "Please use the newer keyword syntax 'tune.quic.fe.cc.hystart'.", args[0]); - if (on) - quic_tune.fe.fb_opts |= QUIC_TUNE_FB_CC_HYSTART; - else - quic_tune.fe.fb_opts &= ~QUIC_TUNE_FB_CC_HYSTART; - ret = 1; - } return ret; } @@ -738,23 +563,6 @@ static struct cfg_kw_list cfg_kws = {ILH, { { CFG_GLOBAL, "tune.quic.be.tx.pacing", cfg_parse_quic_tune_on_off }, { CFG_GLOBAL, "tune.quic.be.tx.udp-gso", cfg_parse_quic_tune_on_off }, - /* legacy options */ - { CFG_GLOBAL, "tune.quic.cc-hystart", cfg_parse_quic_tune_on_off }, - { CFG_GLOBAL, "tune.quic.cc.cubic.min-losses", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.disable-tx-pacing", cfg_parse_quic_tune_setting0 }, - { CFG_GLOBAL, "tune.quic.disable-udp-gso", cfg_parse_quic_tune_setting0 }, - { CFG_GLOBAL, "tune.quic.frontend.default-max-window-size", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.frontend.glitches-threshold", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.frontend.max-data-size", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.frontend.max-idle-timeout", cfg_parse_quic_time }, - { CFG_GLOBAL, "tune.quic.frontend.max-streams-bidi", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.frontend.max-tx-mem", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.frontend.stream-data-ratio", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.max-frame-loss", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.reorder-ratio", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.retry-threshold", cfg_parse_quic_tune_setting }, - { CFG_GLOBAL, "tune.quic.socket-owner", cfg_parse_quic_tune_socket_owner }, - { 0, NULL, NULL } }};