1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "net/quic/quic_flags.h"
7 bool FLAGS_quic_allow_oversized_packets_for_test
= false;
9 // When true, the use time based loss detection instead of nack.
10 bool FLAGS_quic_use_time_loss_detection
= false;
12 // If true, it will return as soon as an error is detected while validating
14 bool FLAGS_use_early_return_when_verifying_chlo
= true;
16 // If true, QUIC connections will support FEC protection of data while sending
17 // packets, to reduce latency of data delivery to the application. The client
18 // must also request FEC protection for the server to use FEC.
19 bool FLAGS_enable_quic_fec
= false;
21 // When true, defaults to BBR congestion control instead of Cubic.
22 bool FLAGS_quic_use_bbr_congestion_control
= false;
24 // If true, QUIC BBR congestion control may be enabled via Finch and/or via QUIC
25 // connection options.
26 bool FLAGS_quic_allow_bbr
= false;
28 // Time period for which a given connection_id should live in the time-wait
30 int64 FLAGS_quic_time_wait_list_seconds
= 200;
32 // Currently, this number is quite conservative. The max QPS limit for an
33 // individual server silo is currently set to 1000 qps, though the actual max
34 // that we see in the wild is closer to 450 qps. Regardless, this means that
35 // the longest time-wait list we should see is 200 seconds * 1000 qps = 200000.
36 // Of course, there are usually many queries per QUIC connection, so we allow a
37 // factor of 3 leeway.
39 // Maximum number of connections on the time-wait list. A negative value implies
40 // no configured limit.
41 int64 FLAGS_quic_time_wait_list_max_connections
= 600000;
43 // Enables server-side support for QUIC stateless rejects.
44 bool FLAGS_enable_quic_stateless_reject_support
= true;
46 // If true, flow controller may grow the receive window size if necessary.
47 bool FLAGS_quic_auto_tune_receive_window
= true;
49 // Enables server-side path MTU discovery in QUIC.
50 bool FLAGS_quic_do_path_mtu_discovery
= true;
52 // Process QUIC frames as soon as they're parsed, instead of waiting for the
53 // packet's parsing to complete.
54 bool FLAGS_quic_process_frames_inline
= true;
56 // No longer call OnCanWrite when connection level flow control unblocks in
58 bool FLAGS_quic_dont_write_when_flow_unblocked
= true;
60 // If true, client IP migration is allowed in QUIC.
61 bool FLAGS_quic_allow_ip_migration
= true;
63 // Estimate that only 60% of QUIC's receive buffer is usable as opposed to 95%.
64 bool FLAGS_quic_use_conservative_receive_buffer
= true;
66 // If true, default quic_time_wait_list_seconds (time to keep a connection ID on
67 // the time-wait list) is 200 seconds rather than 5 seconds and increase the
68 // maximum time-wait list size to 600,000.
69 bool FLAGS_increase_time_wait_list
= true;
71 // Limits QUIC's max CWND to 200 packets.
72 bool FLAGS_quic_limit_max_cwnd
= true;
74 // If true, don't serialize invalid HTTP headers when converting HTTP to SPDY.
75 bool FLAGS_spdy_strip_invalid_headers
= true;
77 // If true, instead of enforcing a fixed limit of 200 between the last
78 // client-created stream ID and the next one, calculate the difference based on
79 // get_max_open_streams().
80 bool FLAGS_exact_stream_id_delta
= true;
82 // Limits the pacing burst out of quiescence to the current congestion window in
84 bool FLAGS_quic_limit_pacing_burst
= true;
86 // If true, require handshake confirmation for QUIC connections, functionally
87 // disabling 0-rtt handshakes.
88 // TODO(rtenneti): Enable this flag after fixing tests.
89 bool FLAGS_quic_require_handshake_confirmation
= false;