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