Merge quic_protocol_flags_list.h into quiche_protocol_flags_list.h. PiperOrigin-RevId: 603773838
diff --git a/build/source_list.bzl b/build/source_list.bzl index 88ba579..7c1fbdc 100644 --- a/build/source_list.bzl +++ b/build/source_list.bzl
@@ -315,7 +315,6 @@ "quic/core/quic_path_validator.h", "quic/core/quic_ping_manager.h", "quic/core/quic_process_packet_interface.h", - "quic/core/quic_protocol_flags_list.h", "quic/core/quic_received_packet_manager.h", "quic/core/quic_sent_packet_manager.h", "quic/core/quic_server_id.h",
diff --git a/build/source_list.gni b/build/source_list.gni index 68a4748..caddc96 100644 --- a/build/source_list.gni +++ b/build/source_list.gni
@@ -315,7 +315,6 @@ "src/quiche/quic/core/quic_path_validator.h", "src/quiche/quic/core/quic_ping_manager.h", "src/quiche/quic/core/quic_process_packet_interface.h", - "src/quiche/quic/core/quic_protocol_flags_list.h", "src/quiche/quic/core/quic_received_packet_manager.h", "src/quiche/quic/core/quic_sent_packet_manager.h", "src/quiche/quic/core/quic_server_id.h",
diff --git a/build/source_list.json b/build/source_list.json index 29f189f..69f3934 100644 --- a/build/source_list.json +++ b/build/source_list.json
@@ -314,7 +314,6 @@ "quiche/quic/core/quic_path_validator.h", "quiche/quic/core/quic_ping_manager.h", "quiche/quic/core/quic_process_packet_interface.h", - "quiche/quic/core/quic_protocol_flags_list.h", "quiche/quic/core/quic_received_packet_manager.h", "quiche/quic/core/quic_sent_packet_manager.h", "quiche/quic/core/quic_server_id.h",
diff --git a/quiche/BUILD.bazel b/quiche/BUILD.bazel index a25331b..e150aa1 100644 --- a/quiche/BUILD.bazel +++ b/quiche/BUILD.bazel
@@ -50,10 +50,7 @@ cc_library( name = "quic_flags_list", - textual_hdrs = [ - "quic/core/quic_flags_list.h", - "quic/core/quic_protocol_flags_list.h", - ], + textual_hdrs = ["quic/core/quic_flags_list.h"], ) cc_library(
diff --git a/quiche/common/platform/api/quiche_flags.h b/quiche/common/platform/api/quiche_flags.h index 5fb23bf..c85f32d 100644 --- a/quiche/common/platform/api/quiche_flags.h +++ b/quiche/common/platform/api/quiche_flags.h
@@ -21,7 +21,7 @@ // Flags accessed via GetQuicheFlag are permanent flags used to control QUICHE // library behavior. The current list is available in the -// quiche/quic/core/quic_protocol_flags_list.h file. +// quiche/common/quiche_protocol_flags_list.h file. #define GetQuicheFlag(flag) GetQuicheFlagImpl(flag) #define SetQuicheFlag(flag, value) SetQuicheFlagImpl(flag, value)
diff --git a/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc b/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc index 40a9fb8..d753bd7 100644 --- a/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc +++ b/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc
@@ -8,12 +8,6 @@ #include "quiche/quic/core/quic_flags_list.h" #undef QUIC_FLAG -#define QUIC_PROTOCOL_FLAG(type, flag, value, doc) type FLAGS_##flag = value; - -#include "quiche/quic/core/quic_protocol_flags_list.h" - -#undef QUIC_PROTOCOL_FLAG - #define QUICHE_PROTOCOL_FLAG(type, flag, value, doc) type FLAGS_##flag = value; #include "quiche/common/quiche_protocol_flags_list.h" #undef QUICHE_PROTOCOL_FLAG
diff --git a/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h b/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h index 4565cd8..474356f 100644 --- a/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h +++ b/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h
@@ -17,12 +17,6 @@ #include "quiche/quic/core/quic_flags_list.h" #undef QUIC_FLAG -// Protocol flags. TODO(bnc): Move to quiche_protocol_flags_list.h. -#define QUIC_PROTOCOL_FLAG(type, flag, ...) \ - QUICHE_EXPORT extern type FLAGS_##flag; -#include "quiche/quic/core/quic_protocol_flags_list.h" -#undef QUIC_PROTOCOL_FLAG - // Protocol flags. #define QUICHE_PROTOCOL_FLAG(type, flag, ...) \ QUICHE_EXPORT extern type FLAGS_##flag;
diff --git a/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc b/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc index 933b996..ccdbff3 100644 --- a/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc +++ b/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.cc
@@ -10,16 +10,16 @@ #define QUIC_FLAG(flag, value) saved_##flag##_ = FLAGS_##flag; #include "quiche/quic/core/quic_flags_list.h" #undef QUIC_FLAG -#define QUIC_PROTOCOL_FLAG(type, flag, ...) saved_##flag##_ = FLAGS_##flag; -#include "quiche/quic/core/quic_protocol_flags_list.h" -#undef QUIC_PROTOCOL_FLAG +#define QUICHE_PROTOCOL_FLAG(type, flag, ...) saved_##flag##_ = FLAGS_##flag; +#include "quiche/common/quiche_protocol_flags_list.h" +#undef QUICHE_PROTOCOL_FLAG } QuicheFlagSaverImpl::~QuicheFlagSaverImpl() { #define QUIC_FLAG(flag, value) FLAGS_##flag = saved_##flag##_; #include "quiche/quic/core/quic_flags_list.h" // NOLINT #undef QUIC_FLAG -#define QUIC_PROTOCOL_FLAG(type, flag, ...) FLAGS_##flag = saved_##flag##_; -#include "quiche/quic/core/quic_protocol_flags_list.h" // NOLINT -#undef QUIC_PROTOCOL_FLAG +#define QUICHE_PROTOCOL_FLAG(type, flag, ...) FLAGS_##flag = saved_##flag##_; +#include "quiche/common/quiche_protocol_flags_list.h" // NOLINT +#undef QUICHE_PROTOCOL_FLAG }
diff --git a/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h b/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h index 5b51304..4dccfac 100644 --- a/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h +++ b/quiche/common/platform/default/quiche_platform_impl/quiche_test_impl.h
@@ -25,9 +25,9 @@ #include "quiche/quic/core/quic_flags_list.h" #undef QUIC_FLAG -#define QUIC_PROTOCOL_FLAG(type, flag, ...) type saved_##flag##_; -#include "quiche/quic/core/quic_protocol_flags_list.h" -#undef QUIC_PROTOCOL_FLAG +#define QUICHE_PROTOCOL_FLAG(type, flag, ...) type saved_##flag##_; +#include "quiche/common/quiche_protocol_flags_list.h" +#undef QUICHE_PROTOCOL_FLAG }; class ScopedEnvironmentForThreadsImpl {};
diff --git a/quiche/common/quiche_protocol_flags_list.h b/quiche/common/quiche_protocol_flags_list.h index 90d21a3..9e84b68 100644 --- a/quiche/common/quiche_protocol_flags_list.h +++ b/quiche/common/quiche_protocol_flags_list.h
@@ -9,6 +9,236 @@ #if defined(QUICHE_PROTOCOL_FLAG) +QUICHE_PROTOCOL_FLAG( + bool, quic_allow_chlo_buffering, true, + "If true, allows packets to be buffered in anticipation of a " + "future CHLO, and allow CHLO packets to be buffered until next " + "iteration of the event loop.") + +QUICHE_PROTOCOL_FLAG(bool, quic_disable_pacing_for_perf_tests, false, + "If true, disable pacing in QUIC") + +// Note that single-packet CHLOs are only enforced for Google QUIC versions that +// do not use CRYPTO frames. This currently means only Q043 and Q046. All other +// versions of QUIC (both Google QUIC and IETF) allow multi-packet CHLOs +// regardless of the value of this flag. +QUICHE_PROTOCOL_FLAG(bool, quic_enforce_single_packet_chlo, true, + "If true, enforce that sent QUIC CHLOs fit in one packet. " + "Only applies to Q043 and Q046.") + +// Currently, this number is quite conservative. At a hypothetical 1000 qps, +// this means that the longest time-wait list we should see is: +// 200 seconds * 1000 qps = 200000. +// Of course, there are usually many queries per QUIC connection, so we allow a +// factor of 3 leeway. +QUICHE_PROTOCOL_FLAG(int64_t, quic_time_wait_list_max_connections, 600000, + "Maximum number of connections on the time-wait list. " + "A negative value implies no configured limit.") + +QUICHE_PROTOCOL_FLAG( + int64_t, quic_time_wait_list_seconds, 200, + "Time period for which a given connection_id should live in " + "the time-wait state.") + +// This number is relatively conservative. For example, there are at most 1K +// queued stateless resets, which consume 1K * 21B = 21KB. +QUICHE_PROTOCOL_FLAG( + uint64_t, quic_time_wait_list_max_pending_packets, 1024, + "Upper limit of pending packets in time wait list when writer is blocked.") + +// Stop sending a reset if the recorded number of addresses that server has +// recently sent stateless reset to exceeds this limit. +QUICHE_PROTOCOL_FLAG(uint64_t, quic_max_recent_stateless_reset_addresses, 1024, + "Max number of recorded recent reset addresses.") + +// After this timeout, recent reset addresses will be cleared. +// FLAGS_quic_max_recent_stateless_reset_addresses * (1000ms / +// FLAGS_quic_recent_stateless_reset_addresses_lifetime_ms) is roughly the max +// reset per second. For example, 1024 * (1000ms / 1000ms) = 1K reset per +// second. +QUICHE_PROTOCOL_FLAG( + uint64_t, quic_recent_stateless_reset_addresses_lifetime_ms, 1000, + "Max time that a client address lives in recent reset addresses set.") + +QUICHE_PROTOCOL_FLAG( + double, quic_bbr_cwnd_gain, 2.0f, + "Congestion window gain for QUIC BBR during PROBE_BW phase.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_buffered_data_threshold, 8 * 1024, + "If buffered data in QUIC stream is less than this " + "threshold, buffers all provided data or asks upper layer for more data") + +QUICHE_PROTOCOL_FLAG( + uint64_t, quic_send_buffer_max_data_slice_size, 4 * 1024, + "Max size of data slice in bytes for QUIC stream send buffer.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_lumpy_pacing_size, 2, + "Number of packets that the pacing sender allows in bursts during " + "pacing. This flag is ignored if a flow's estimated bandwidth is " + "lower than 1200 kbps.") + +QUICHE_PROTOCOL_FLAG( + double, quic_lumpy_pacing_cwnd_fraction, 0.25f, + "Congestion window fraction that the pacing sender allows in bursts " + "during pacing.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_lumpy_pacing_min_bandwidth_kbps, 1200, + "The minimum estimated client bandwidth below which the pacing sender will " + "not allow bursts.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_max_pace_time_into_future_ms, 10, + "Max time that QUIC can pace packets into the future in ms.") + +QUICHE_PROTOCOL_FLAG( + double, quic_pace_time_into_future_srtt_fraction, + 0.125f, // One-eighth smoothed RTT + "Smoothed RTT fraction that a connection can pace packets into the future.") + +QUICHE_PROTOCOL_FLAG( + bool, quic_export_write_path_stats_at_server, false, + "If true, export detailed write path statistics at server.") + +QUICHE_PROTOCOL_FLAG(bool, quic_disable_version_negotiation_grease_randomness, + false, + "If true, use predictable version negotiation versions.") + +QUICHE_PROTOCOL_FLAG(bool, quic_enable_http3_grease_randomness, true, + "If true, use random greased settings and frames.") + +QUICHE_PROTOCOL_FLAG(int64_t, quic_max_tracked_packet_count, 10000, + "Maximum number of tracked packets.") + +QUICHE_PROTOCOL_FLAG( + bool, quic_client_convert_http_header_name_to_lowercase, true, + "If true, HTTP request header names sent from QuicSpdyClientBase(and " + "descendants) will be automatically converted to lower case.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_bbr2_default_probe_bw_base_duration_ms, 2000, + "The default minimum duration for BBRv2-native probes, in milliseconds.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_bbr2_default_probe_bw_max_rand_duration_ms, 1000, + "The default upper bound of the random amount of BBRv2-native " + "probes, in milliseconds.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_bbr2_default_probe_rtt_period_ms, 10000, + "The default period for entering PROBE_RTT, in milliseconds.") + +QUICHE_PROTOCOL_FLAG( + double, quic_bbr2_default_loss_threshold, 0.02, + "The default loss threshold for QUIC BBRv2, should be a value " + "between 0 and 1.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_bbr2_default_startup_full_loss_count, 8, + "The default minimum number of loss marking events to exit STARTUP.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_bbr2_default_probe_bw_full_loss_count, 2, + "The default minimum number of loss marking events to exit PROBE_UP phase.") + +QUICHE_PROTOCOL_FLAG( + double, quic_bbr2_default_inflight_hi_headroom, 0.15, + "The default fraction of unutilized headroom to try to leave in path " + "upon high loss.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_bbr2_default_initial_ack_height_filter_window, 10, + "The default initial value of the max ack height filter's window length.") + +QUICHE_PROTOCOL_FLAG( + double, quic_ack_aggregation_bandwidth_threshold, 1.0, + "If the bandwidth during ack aggregation is smaller than (estimated " + "bandwidth * this flag), consider the current aggregation completed " + "and starts a new one.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_anti_amplification_factor, 3, + "Anti-amplification factor. Before address validation, server will " + "send no more than factor times bytes received.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_max_buffered_crypto_bytes, + 16 * 1024, // 16 KB + "The maximum amount of CRYPTO frame data that can be buffered.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_max_aggressive_retransmittable_on_wire_ping_count, 5, + "Maximum number of consecutive pings that can be sent with the " + "aggressive initial retransmittable on the wire timeout if there is " + "no new stream data received. After this limit, the timeout will be " + "doubled each ping until it exceeds the default ping timeout.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_max_retransmittable_on_wire_ping_count, 1000, + "Maximum number of pings that can be sent with the retransmittable " + "on the wire timeout, over the lifetime of a connection. After this " + "limit, the timeout will be the default ping timeout.") + +QUICHE_PROTOCOL_FLAG(int32_t, quic_max_congestion_window, 2000, + "The maximum congestion window in packets.") + +QUICHE_PROTOCOL_FLAG( + int32_t, quic_max_streams_window_divisor, 2, + "The divisor that controls how often MAX_STREAMS frame is sent.") + +QUICHE_PROTOCOL_FLAG( + uint64_t, quic_key_update_confidentiality_limit, 0, + "If non-zero and key update is allowed, the maximum number of " + "packets sent for each key phase before initiating a key update.") + +QUICHE_PROTOCOL_FLAG(bool, quic_disable_client_tls_zero_rtt, false, + "If true, QUIC client with TLS will not try 0-RTT.") + +QUICHE_PROTOCOL_FLAG(bool, quic_disable_server_tls_resumption, false, + "If true, QUIC server will disable TLS resumption by not " + "issuing or processing session tickets.") + +QUICHE_PROTOCOL_FLAG(bool, quic_defer_send_in_response, true, + "If true, QUIC servers will defer sending in response to " + "incoming packets by default.") + +QUICHE_PROTOCOL_FLAG( + bool, quic_header_size_limit_includes_overhead, true, + "If true, QUIC QPACK decoder includes 32-bytes overheader per entry while " + "comparing request/response header size against its upper limit.") + +QUICHE_PROTOCOL_FLAG( + bool, quic_reject_retry_token_in_initial_packet, false, + "If true, always reject retry_token received in INITIAL packets") + +QUICHE_PROTOCOL_FLAG(bool, quic_use_lower_server_response_mtu_for_test, false, + "If true, cap server response packet size at 1250.") + +QUICHE_PROTOCOL_FLAG(bool, quic_enforce_strict_amplification_factor, false, + "If true, enforce strict amplification factor") + +QUICHE_PROTOCOL_FLAG(bool, quic_bounded_crypto_send_buffer, false, + "If true, close the connection if a crypto send buffer " + "exceeds its size limit.") + +QUICHE_PROTOCOL_FLAG(bool, quic_interval_set_enable_add_optimization, true, + "If true, enable an optimization in QuicIntervalSet") + +QUICHE_PROTOCOL_FLAG(bool, quic_server_disable_qpack_dynamic_table, false, + "If true, disables use of the QPACK dynamic table in " + "servers, both for decoding context (requests) and for " + "encoding context (responses).") + +QUICHE_PROTOCOL_FLAG( + bool, quic_enable_chaos_protection, true, + "If true, use chaos protection to randomize client initials.") + +QUICHE_PROTOCOL_FLAG(bool, quic_always_support_server_preferred_address, false, + "If false, the kSPAD connection option is required to use " + "QUIC server preferred address support.") + QUICHE_PROTOCOL_FLAG(bool, quiche_oghttp2_debug_trace, false, "If true, emits trace logs for HTTP/2 events.")
diff --git a/quiche/quic/core/quic_protocol_flags_list.h b/quiche/quic/core/quic_protocol_flags_list.h deleted file mode 100644 index 417c1a6..0000000 --- a/quiche/quic/core/quic_protocol_flags_list.h +++ /dev/null
@@ -1,238 +0,0 @@ -// Copyright (c) 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// NOLINT(build/header_guard) -// This file intentionally does not have header guards, it's intended to be -// included multiple times, each time with a different definition of -// QUIC_PROTOCOL_FLAG. - -#if defined(QUIC_PROTOCOL_FLAG) - -QUIC_PROTOCOL_FLAG( - bool, quic_allow_chlo_buffering, true, - "If true, allows packets to be buffered in anticipation of a " - "future CHLO, and allow CHLO packets to be buffered until next " - "iteration of the event loop.") - -QUIC_PROTOCOL_FLAG(bool, quic_disable_pacing_for_perf_tests, false, - "If true, disable pacing in QUIC") - -// Note that single-packet CHLOs are only enforced for Google QUIC versions that -// do not use CRYPTO frames. This currently means only Q043 and Q046. All other -// versions of QUIC (both Google QUIC and IETF) allow multi-packet CHLOs -// regardless of the value of this flag. -QUIC_PROTOCOL_FLAG(bool, quic_enforce_single_packet_chlo, true, - "If true, enforce that sent QUIC CHLOs fit in one packet. " - "Only applies to Q043 and Q046.") - -// Currently, this number is quite conservative. At a hypothetical 1000 qps, -// this means that the longest time-wait list we should see is: -// 200 seconds * 1000 qps = 200000. -// Of course, there are usually many queries per QUIC connection, so we allow a -// factor of 3 leeway. -QUIC_PROTOCOL_FLAG(int64_t, quic_time_wait_list_max_connections, 600000, - "Maximum number of connections on the time-wait list. " - "A negative value implies no configured limit.") - -QUIC_PROTOCOL_FLAG(int64_t, quic_time_wait_list_seconds, 200, - "Time period for which a given connection_id should live in " - "the time-wait state.") - -// This number is relatively conservative. For example, there are at most 1K -// queued stateless resets, which consume 1K * 21B = 21KB. -QUIC_PROTOCOL_FLAG( - uint64_t, quic_time_wait_list_max_pending_packets, 1024, - "Upper limit of pending packets in time wait list when writer is blocked.") - -// Stop sending a reset if the recorded number of addresses that server has -// recently sent stateless reset to exceeds this limit. -QUIC_PROTOCOL_FLAG(uint64_t, quic_max_recent_stateless_reset_addresses, 1024, - "Max number of recorded recent reset addresses.") - -// After this timeout, recent reset addresses will be cleared. -// FLAGS_quic_max_recent_stateless_reset_addresses * (1000ms / -// FLAGS_quic_recent_stateless_reset_addresses_lifetime_ms) is roughly the max -// reset per second. For example, 1024 * (1000ms / 1000ms) = 1K reset per -// second. -QUIC_PROTOCOL_FLAG( - uint64_t, quic_recent_stateless_reset_addresses_lifetime_ms, 1000, - "Max time that a client address lives in recent reset addresses set.") - -QUIC_PROTOCOL_FLAG(double, quic_bbr_cwnd_gain, 2.0f, - "Congestion window gain for QUIC BBR during PROBE_BW phase.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_buffered_data_threshold, 8 * 1024, - "If buffered data in QUIC stream is less than this " - "threshold, buffers all provided data or asks upper layer for more data") - -QUIC_PROTOCOL_FLAG( - uint64_t, quic_send_buffer_max_data_slice_size, 4 * 1024, - "Max size of data slice in bytes for QUIC stream send buffer.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_lumpy_pacing_size, 2, - "Number of packets that the pacing sender allows in bursts during " - "pacing. This flag is ignored if a flow's estimated bandwidth is " - "lower than 1200 kbps.") - -QUIC_PROTOCOL_FLAG( - double, quic_lumpy_pacing_cwnd_fraction, 0.25f, - "Congestion window fraction that the pacing sender allows in bursts " - "during pacing.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_lumpy_pacing_min_bandwidth_kbps, 1200, - "The minimum estimated client bandwidth below which the pacing sender will " - "not allow bursts.") - -QUIC_PROTOCOL_FLAG(int32_t, quic_max_pace_time_into_future_ms, 10, - "Max time that QUIC can pace packets into the future in ms.") - -QUIC_PROTOCOL_FLAG( - double, quic_pace_time_into_future_srtt_fraction, - 0.125f, // One-eighth smoothed RTT - "Smoothed RTT fraction that a connection can pace packets into the future.") - -QUIC_PROTOCOL_FLAG(bool, quic_export_write_path_stats_at_server, false, - "If true, export detailed write path statistics at server.") - -QUIC_PROTOCOL_FLAG(bool, quic_disable_version_negotiation_grease_randomness, - false, - "If true, use predictable version negotiation versions.") - -QUIC_PROTOCOL_FLAG(bool, quic_enable_http3_grease_randomness, true, - "If true, use random greased settings and frames.") - -QUIC_PROTOCOL_FLAG(int64_t, quic_max_tracked_packet_count, 10000, - "Maximum number of tracked packets.") - -QUIC_PROTOCOL_FLAG( - bool, quic_client_convert_http_header_name_to_lowercase, true, - "If true, HTTP request header names sent from QuicSpdyClientBase(and " - "descendents) will be automatically converted to lower case.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_bbr2_default_probe_bw_base_duration_ms, 2000, - "The default minimum duration for BBRv2-native probes, in milliseconds.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_bbr2_default_probe_bw_max_rand_duration_ms, 1000, - "The default upper bound of the random amount of BBRv2-native " - "probes, in milliseconds.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_bbr2_default_probe_rtt_period_ms, 10000, - "The default period for entering PROBE_RTT, in milliseconds.") - -QUIC_PROTOCOL_FLAG( - double, quic_bbr2_default_loss_threshold, 0.02, - "The default loss threshold for QUIC BBRv2, should be a value " - "between 0 and 1.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_bbr2_default_startup_full_loss_count, 8, - "The default minimum number of loss marking events to exit STARTUP.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_bbr2_default_probe_bw_full_loss_count, 2, - "The default minimum number of loss marking events to exit PROBE_UP phase.") - -QUIC_PROTOCOL_FLAG( - double, quic_bbr2_default_inflight_hi_headroom, 0.15, - "The default fraction of unutilized headroom to try to leave in path " - "upon high loss.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_bbr2_default_initial_ack_height_filter_window, 10, - "The default initial value of the max ack height filter's window length.") - -QUIC_PROTOCOL_FLAG( - double, quic_ack_aggregation_bandwidth_threshold, 1.0, - "If the bandwidth during ack aggregation is smaller than (estimated " - "bandwidth * this flag), consider the current aggregation completed " - "and starts a new one.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_anti_amplification_factor, 3, - "Anti-amplification factor. Before address validation, server will " - "send no more than factor times bytes received.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_max_buffered_crypto_bytes, - 16 * 1024, // 16 KB - "The maximum amount of CRYPTO frame data that can be buffered.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_max_aggressive_retransmittable_on_wire_ping_count, 5, - "Maximum number of consecutive pings that can be sent with the " - "aggressive initial retransmittable on the wire timeout if there is " - "no new stream data received. After this limit, the timeout will be " - "doubled each ping until it exceeds the default ping timeout.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_max_retransmittable_on_wire_ping_count, 1000, - "Maximum number of pings that can be sent with the retransmittable " - "on the wire timeout, over the lifetime of a connection. After this " - "limit, the timeout will be the default ping timeout.") - -QUIC_PROTOCOL_FLAG(int32_t, quic_max_congestion_window, 2000, - "The maximum congestion window in packets.") - -QUIC_PROTOCOL_FLAG( - int32_t, quic_max_streams_window_divisor, 2, - "The divisor that controls how often MAX_STREAMS frame is sent.") - -QUIC_PROTOCOL_FLAG( - uint64_t, quic_key_update_confidentiality_limit, 0, - "If non-zero and key update is allowed, the maximum number of " - "packets sent for each key phase before initiating a key update.") - -QUIC_PROTOCOL_FLAG(bool, quic_disable_client_tls_zero_rtt, false, - "If true, QUIC client with TLS will not try 0-RTT.") - -QUIC_PROTOCOL_FLAG(bool, quic_disable_server_tls_resumption, false, - "If true, QUIC server will disable TLS resumption by not " - "issuing or processing session tickets.") - -QUIC_PROTOCOL_FLAG(bool, quic_defer_send_in_response, true, - "If true, QUIC servers will defer sending in response to " - "incoming packets by default.") - -QUIC_PROTOCOL_FLAG( - bool, quic_header_size_limit_includes_overhead, true, - "If true, QUIC QPACK decoder includes 32-bytes overheader per entry while " - "comparing request/response header size against its upper limit.") - -QUIC_PROTOCOL_FLAG( - bool, quic_reject_retry_token_in_initial_packet, false, - "If true, always reject retry_token received in INITIAL packets") - -QUIC_PROTOCOL_FLAG(bool, quic_use_lower_server_response_mtu_for_test, false, - "If true, cap server response packet size at 1250.") - -QUIC_PROTOCOL_FLAG(bool, quic_enforce_strict_amplification_factor, false, - "If true, enforce strict amplification factor") - -QUIC_PROTOCOL_FLAG(bool, quic_bounded_crypto_send_buffer, false, - "If true, close the connection if a crypto send buffer " - "exceeds its size limit.") - -QUIC_PROTOCOL_FLAG(bool, quic_interval_set_enable_add_optimization, true, - "If true, enable an optimization in QuicIntervalSet") - -QUIC_PROTOCOL_FLAG(bool, quic_server_disable_qpack_dynamic_table, false, - "If true, disables use of the QPACK dynamic table in " - "servers, both for decoding context (requests) and for " - "encoding context (responses).") - -QUIC_PROTOCOL_FLAG( - bool, quic_enable_chaos_protection, true, - "If true, use chaos protection to randomize client initials.") - -QUIC_PROTOCOL_FLAG(bool, quic_always_support_server_preferred_address, false, - "If false, the kSPAD connection option is required to use " - "QUIC server preferred address support.") - -#endif