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 // Do not flip this flag. jokulik plans more testing and additional monitoring
29 // before the flag can go the auto-flip process.
31 // If true, record the timestamp for the last sent new packet before the call to
32 // WritePacket, rather than after in QUIC.
33 bool FLAGS_quic_record_send_time_before_write
= false;
35 // If true, enables the QUIC bandwidth resumption experiment (triggered by
37 bool FLAGS_quic_enable_bandwidth_resumption_experiment
= true;
39 // If true, QUIC congestion control will be paced. If false, pacing may be
40 // controlled by QUIC connection options in the config or by enabling BBR
41 // congestion control.
42 bool FLAGS_quic_enable_pacing
= false;
44 // If true, the silent close option will be honored.
45 bool FLAGS_quic_allow_silent_close
= true;
47 // If true, use std::cbrt instead of custom cube root.
48 bool FLAGS_quic_use_std_cbrt
= true;
50 // If true, then the source address tokens generated for QUIC connects will
51 // store multiple addresses.
52 bool FLAGS_quic_use_multiple_address_in_source_tokens
= false;
54 // If true, if min RTT and/or SRTT have not yet been set then initial RTT is
55 // used to initialize them in a call to QuicConnection::GetStats.
56 bool FLAGS_quic_use_initial_rtt_for_stats
= true;
58 // If true, uses the last sent packet for the RTO timer instead of the earliest.
59 bool FLAGS_quic_rto_uses_last_sent
= true;
61 // If true, attach QuicAckNotifiers to packets rather than individual stream
63 bool FLAGS_quic_attach_ack_notifiers_to_packets
= true;
65 // If true, the AckNotifierManager is informed about new packets as soon as they
67 bool FLAGS_quic_ack_notifier_informed_on_serialized
= true;
69 // If true, QUIC will use the new RTO that waits until an ack arrives to adjust
70 // the congestion window.
71 bool FLAGS_quic_use_new_rto
= true;
73 // Time period for which a given connection_id should live in the time-wait
75 int64 FLAGS_quic_time_wait_list_seconds
= 5;
77 // Currently, this number is quite conservative. The max QPS limit for an
78 // individual server silo is currently set to 1000 qps, though the actual max
79 // that we see in the wild is closer to 450 qps. Regardless, this means that the
80 // longest time-wait list we should see is 5 seconds * 1000 qps = 5000. If we
81 // allow for an order of magnitude leeway, we have 50000.
83 // Maximum number of connections on the time-wait list. A negative value implies
84 // no configured limit.
85 int64 FLAGS_quic_time_wait_list_max_connections
= 50000;
87 // If true, limit the number of connections on the quic time-wait list using a
89 bool FLAGS_quic_limit_time_wait_list_size
= true;