From c9b11e9fbffb115c50de83b6b83b02ec5b912f72 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 27 Aug 2021 19:03:06 +0900 Subject: [PATCH] nghttpx: Rename --quic-idle-timeout to --frontend-quic-idle-timeout --- gennghttpxfun.py | 2 +- src/shrpx.cc | 19 +++++++++++++------ src/shrpx_config.cc | 10 +++++----- src/shrpx_config.h | 18 ++++++++++-------- src/shrpx_http3_upstream.cc | 9 +++++---- 5 files changed, 34 insertions(+), 24 deletions(-) diff --git a/gennghttpxfun.py b/gennghttpxfun.py index c7b40fc0..cb4ed697 100755 --- a/gennghttpxfun.py +++ b/gennghttpxfun.py @@ -181,7 +181,7 @@ OPTIONS = [ "no-bpf", "http2-altsvc", "frontend-http3-read-timeout", - "quic-idle-timeout", + "frontend-quic-idle-timeout", ] LOGVARS = [ diff --git a/src/shrpx.cc b/src/shrpx.cc index 56fc0cc9..ea6c18d5 100644 --- a/src/shrpx.cc +++ b/src/shrpx.cc @@ -1553,7 +1553,12 @@ void fill_default_config(Config *config) { #ifdef ENABLE_HTTP3 auto &quicconf = config->quic; { - quicconf.timeout.idle = 30_s; + auto &upstreamconf = quicconf.upstream; + + { + auto &timeoutconf = upstreamconf.timeout; + timeoutconf.idle = 30_s; + } auto &bpfconf = quicconf.bpf; bpfconf.prog_file = StringRef::from_lit(PKGLIBDIR "/reuseport_kern.o"); @@ -2883,10 +2888,10 @@ Scripting: #ifdef ENABLE_HTTP3 out << R"( QUIC: - --quic-idle-timeout= + --frontend-quic-idle-timeout= Specify an idle timeout for QUIC connection. Default: )" - << config->quic.timeout.idle << R"( + << config->quic.upstream.timeout.idle << R"( --bpf-program-file= Specify a path to eBPF program file reuseport_kern.o to direct an incoming QUIC UDP datagram to a correct @@ -3602,7 +3607,8 @@ int main(int argc, char **argv) { {SHRPX_OPT_HTTP2_ALTSVC.c_str(), required_argument, &flag, 171}, {SHRPX_OPT_FRONTEND_HTTP3_READ_TIMEOUT.c_str(), required_argument, &flag, 172}, - {SHRPX_OPT_QUIC_IDLE_TIMEOUT.c_str(), required_argument, &flag, 173}, + {SHRPX_OPT_FRONTEND_QUIC_IDLE_TIMEOUT.c_str(), required_argument, &flag, + 173}, {nullptr, 0, nullptr, 0}}; int option_index = 0; @@ -4424,8 +4430,9 @@ int main(int argc, char **argv) { StringRef{optarg}); break; case 173: - // --quic-idle-timeout - cmdcfgs.emplace_back(SHRPX_OPT_QUIC_IDLE_TIMEOUT, StringRef{optarg}); + // --frontend-quic-idle-timeout + cmdcfgs.emplace_back(SHRPX_OPT_FRONTEND_QUIC_IDLE_TIMEOUT, + StringRef{optarg}); break; default: break; diff --git a/src/shrpx_config.cc b/src/shrpx_config.cc index c3b8e600..05c6cb20 100644 --- a/src/shrpx_config.cc +++ b/src/shrpx_config.cc @@ -2092,9 +2092,6 @@ int option_lookup_token(const char *name, size_t namelen) { if (util::strieq_l("dns-cache-timeou", name, 16)) { return SHRPX_OPTID_DNS_CACHE_TIMEOUT; } - if (util::strieq_l("quic-idle-timeou", name, 16)) { - return SHRPX_OPTID_QUIC_IDLE_TIMEOUT; - } if (util::strieq_l("worker-read-burs", name, 16)) { return SHRPX_OPTID_WORKER_READ_BURST; } @@ -2366,6 +2363,9 @@ int option_lookup_token(const char *name, size_t namelen) { if (util::strieq_l("backend-keep-alive-timeou", name, 25)) { return SHRPX_OPTID_BACKEND_KEEP_ALIVE_TIMEOUT; } + if (util::strieq_l("frontend-quic-idle-timeou", name, 25)) { + return SHRPX_OPTID_FRONTEND_QUIC_IDLE_TIMEOUT; + } if (util::strieq_l("no-http2-cipher-black-lis", name, 25)) { return SHRPX_OPTID_NO_HTTP2_CIPHER_BLACK_LIST; } @@ -3886,9 +3886,9 @@ int parse_config(Config *config, int optid, const StringRef &opt, #else // !ENABLE_HTTP3 return 0; #endif // !ENABLE_HTTP3 - case SHRPX_OPTID_QUIC_IDLE_TIMEOUT: + case SHRPX_OPTID_FRONTEND_QUIC_IDLE_TIMEOUT: #ifdef ENABLE_HTTP3 - return parse_duration(&config->quic.timeout.idle, opt, optarg); + return parse_duration(&config->quic.upstream.timeout.idle, opt, optarg); #else // !ENABLE_HTTP3 return 0; #endif // !ENABLE_HTTP3 diff --git a/src/shrpx_config.h b/src/shrpx_config.h index 46d79fb7..13853b69 100644 --- a/src/shrpx_config.h +++ b/src/shrpx_config.h @@ -369,8 +369,8 @@ constexpr auto SHRPX_OPT_NO_BPF = StringRef::from_lit("no-bpf"); constexpr auto SHRPX_OPT_HTTP2_ALTSVC = StringRef::from_lit("http2-altsvc"); constexpr auto SHRPX_OPT_FRONTEND_HTTP3_READ_TIMEOUT = StringRef::from_lit("frontend-http3-read-timeout"); -constexpr auto SHRPX_OPT_QUIC_IDLE_TIMEOUT = - StringRef::from_lit("quic-idle-timeout"); +constexpr auto SHRPX_OPT_FRONTEND_QUIC_IDLE_TIMEOUT = + StringRef::from_lit("frontend-quic-idle-timeout"); constexpr size_t SHRPX_OBFUSCATED_NODE_LENGTH = 8; @@ -728,11 +728,13 @@ struct TLSConfig { #ifdef ENABLE_HTTP3 struct QUICConfig { struct { - ev_tstamp idle; - } timeout; - struct { - bool log; - } debug; + struct { + ev_tstamp idle; + } timeout; + struct { + bool log; + } debug; + } upstream; struct { StringRef prog_file; bool disabled; @@ -1169,6 +1171,7 @@ enum { SHRPX_OPTID_FRONTEND_KEEP_ALIVE_TIMEOUT, SHRPX_OPTID_FRONTEND_MAX_REQUESTS, SHRPX_OPTID_FRONTEND_NO_TLS, + SHRPX_OPTID_FRONTEND_QUIC_IDLE_TIMEOUT, SHRPX_OPTID_FRONTEND_READ_TIMEOUT, SHRPX_OPTID_FRONTEND_WRITE_TIMEOUT, SHRPX_OPTID_HEADER_FIELD_BUFFER, @@ -1209,7 +1212,6 @@ enum { SHRPX_OPTID_PRIVATE_KEY_FILE, SHRPX_OPTID_PRIVATE_KEY_PASSWD_FILE, SHRPX_OPTID_PSK_SECRETS, - SHRPX_OPTID_QUIC_IDLE_TIMEOUT, SHRPX_OPTID_READ_BURST, SHRPX_OPTID_READ_RATE, SHRPX_OPTID_REDIRECT_HTTPS_PORT, diff --git a/src/shrpx_http3_upstream.cc b/src/shrpx_http3_upstream.cc index 08f1f6a7..00f9c0d9 100644 --- a/src/shrpx_http3_upstream.cc +++ b/src/shrpx_http3_upstream.cc @@ -101,7 +101,8 @@ Http3Upstream::Http3Upstream(ClientHandler *handler) auto config = get_config(); auto &quicconf = config->quic; - ev_timer_init(&idle_timer_, idle_timeoutcb, 0., quicconf.timeout.idle); + ev_timer_init(&idle_timer_, idle_timeoutcb, 0., + quicconf.upstream.timeout.idle); idle_timer_.data = this; } @@ -498,7 +499,7 @@ int Http3Upstream::init(const UpstreamAddr *faddr, const Address &remote_addr, ngtcp2_settings settings; ngtcp2_settings_default(&settings); - if (quicconf.debug.log) { + if (quicconf.upstream.debug.log) { settings.log_printf = log_printf; } settings.initial_ts = quic_timestamp(); @@ -516,8 +517,8 @@ int Http3Upstream::init(const UpstreamAddr *faddr, const Address &remote_addr, params.initial_max_data = 1_m; params.initial_max_stream_data_bidi_remote = 256_k; params.initial_max_stream_data_uni = 256_k; - params.max_idle_timeout = - static_cast(quicconf.timeout.idle * NGTCP2_SECONDS); + params.max_idle_timeout = static_cast( + quicconf.upstream.timeout.idle * NGTCP2_SECONDS); if (odcid) { params.original_dcid = *odcid;