Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Side by Side Diff: net/quic/core/quic_flags_list.h

Issue 2964583002: Landing Recent QUIC changes until Jun 27 19:50:48 2017 +0000 (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/core/quic_connection_test.cc ('k') | net/quic/core/quic_sent_packet_manager_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file intentionally does not have header guards, it's included 5 // This file intentionally does not have header guards, it's included
6 // inside a macro to generate values. 6 // inside a macro to generate values.
7 7
8 // This file contains the list of QUIC protocol flags. 8 // This file contains the list of QUIC protocol flags.
9 9
10 // Time period for which a given connection_id should live in the time-wait 10 // Time period for which a given connection_id should live in the time-wait
11 // state. 11 // state.
12 QUIC_FLAG(int64_t, FLAGS_quic_time_wait_list_seconds, 200) 12 QUIC_FLAG(int64_t, FLAGS_quic_time_wait_list_seconds, 200)
13 13
14 // Currently, this number is quite conservative. The max QPS limit for an 14 // Currently, this number is quite conservative. The max QPS limit for an
15 // individual server silo is currently set to 1000 qps, though the actual max 15 // individual server silo is currently set to 1000 qps, though the actual max
16 // that we see in the wild is closer to 450 qps. Regardless, this means that 16 // that we see in the wild is closer to 450 qps. Regardless, this means that
17 // the longest time-wait list we should see is 200 seconds * 1000 qps, 200000. 17 // the longest time-wait list we should see is 200 seconds * 1000 qps, 200000.
18 // Of course, there are usually many queries per QUIC connection, so we allow a 18 // Of course, there are usually many queries per QUIC connection, so we allow a
19 // factor of 3 leeway. 19 // factor of 3 leeway.
20 // 20 //
21 // Maximum number of connections on the time-wait list. A negative value implies 21 // Maximum number of connections on the time-wait list. A negative value implies
22 // no configured limit. 22 // no configured limit.
23 QUIC_FLAG(int64_t, FLAGS_quic_time_wait_list_max_connections, 600000) 23 QUIC_FLAG(int64_t, FLAGS_quic_time_wait_list_max_connections, 600000)
24 24
25 // Enables server-side support for QUIC stateless rejects. 25 // Enables server-side support for QUIC stateless rejects.
26 QUIC_FLAG(bool, 26 QUIC_FLAG(bool,
27 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support, 27 FLAGS_quic_reloadable_flag_enable_quic_stateless_reject_support,
28 true) 28 true)
29 29
30 // If true, multipath is enabled for the connection.
31 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_multipath, false)
32
33 // If true, require handshake confirmation for QUIC connections, functionally 30 // If true, require handshake confirmation for QUIC connections, functionally
34 // disabling 0-rtt handshakes. 31 // disabling 0-rtt handshakes.
35 // TODO(rtenneti): Enable this flag after CryptoServerTest's are fixed. 32 // TODO(rtenneti): Enable this flag after CryptoServerTest's are fixed.
36 QUIC_FLAG(bool, 33 QUIC_FLAG(bool,
37 FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation, 34 FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation,
38 false) 35 false)
39 36
40 // If true, disable pacing in QUIC. 37 // If true, disable pacing in QUIC.
41 QUIC_FLAG(bool, FLAGS_quic_disable_pacing_for_perf_tests, false) 38 QUIC_FLAG(bool, FLAGS_quic_disable_pacing_for_perf_tests, false)
42 39
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // public flag. 76 // public flag.
80 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_remove_v33_hacks2, false) 77 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_remove_v33_hacks2, false)
81 78
82 // Enable QUIC force HOL blocking experiment. 79 // Enable QUIC force HOL blocking experiment.
83 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_force_hol_blocking, true) 80 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_force_hol_blocking, true)
84 81
85 // If true, allows packets to be buffered in anticipation of a future CHLO, and 82 // If true, allows packets to be buffered in anticipation of a future CHLO, and
86 // allow CHLO packets to be buffered until next iteration of the event loop. 83 // allow CHLO packets to be buffered until next iteration of the event loop.
87 QUIC_FLAG(bool, FLAGS_quic_allow_chlo_buffering, true) 84 QUIC_FLAG(bool, FLAGS_quic_allow_chlo_buffering, true)
88 85
89 // If true, fix some casts that were causing off-by-one errors in QUIC's cubic
90 // "convex" increases.
91 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_cubic_convex_mode, true)
92
93 // If true, GFE sends SETTINGS_MAX_HEADER_LIST_SIZE to the client at the 86 // If true, GFE sends SETTINGS_MAX_HEADER_LIST_SIZE to the client at the
94 // beginning of a connection. 87 // beginning of a connection.
95 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_max_header_list_size, true) 88 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_send_max_header_list_size, true)
96 89
97 // If true, fix quantization of CubicBytes while performing convex increases.
98 QUIC_FLAG(bool,
99 FLAGS_quic_reloadable_flag_quic_fix_cubic_bytes_quantization,
100 true)
101
102 // If true, fix Cubic\'s use of kBetaLastMax for n-connection emulation.
103 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_beta_last_max, true)
104
105 // If greater than zero, mean RTT variation is multiplied by the specified 90 // If greater than zero, mean RTT variation is multiplied by the specified
106 // factor and added to the congestion window limit. 91 // factor and added to the congestion window limit.
107 QUIC_FLAG(double, FLAGS_quic_bbr_rtt_variation_weight, 0.0f) 92 QUIC_FLAG(double, FLAGS_quic_bbr_rtt_variation_weight, 0.0f)
108 93
109 // Congestion window gain for QUIC BBR during PROBE_BW phase. 94 // Congestion window gain for QUIC BBR during PROBE_BW phase.
110 QUIC_FLAG(double, FLAGS_quic_bbr_cwnd_gain, 2.0f) 95 QUIC_FLAG(double, FLAGS_quic_bbr_cwnd_gain, 2.0f)
111 96
112 // If true, do not send or process stop waiting frames in QUIC if the NSTP 97 // If true, do not send or process stop waiting frames in QUIC if the NSTP
113 // connection option is provided. 98 // connection option is provided.
114 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_no_stop_waiting_frames, false) 99 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_no_stop_waiting_frames, false)
115 100
116 // Allows one self address change. 101 // Allows one self address change.
117 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_allow_one_address_change, false) 102 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_allow_one_address_change, false)
118 103
119 // If true, QUIC BBR stores a max filtered number of bytes delivered at a rate 104 // If true, QUIC BBR stores a max filtered number of bytes delivered at a rate
120 // faster than the sending rate. 105 // faster than the sending rate.
121 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_ack_aggregation_bytes, true) 106 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_ack_aggregation_bytes, true)
122 107
123 // If true, allow cubic updates on every ack, rather than occasionally limiting
124 // the frequency to once every 30ms.
125 QUIC_FLAG(bool,
126 FLAGS_quic_reloadable_flag_quic_enable_cubic_per_ack_updates,
127 true)
128
129 // Support bandwidth resumption in QUIC BBR. 108 // Support bandwidth resumption in QUIC BBR.
130 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_bandwidth_resumption, false) 109 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_bandwidth_resumption, false)
131 110
132 // Add the equivalent number of bytes as 3 TCP TSO segments to QUIC's BBR CWND. 111 // Add the equivalent number of bytes as 3 TCP TSO segments to QUIC's BBR CWND.
133 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_add_tso_cwnd, false) 112 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_add_tso_cwnd, false)
134 113
135 // If true, enable version 38 which supports new PADDING frame and respects NSTP 114 // If true, enable version 38 which supports new PADDING frame and respects NSTP
136 // connection option. 115 // connection option.
137 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_version_38, true) 116 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_version_38, true)
138 117
(...skipping 26 matching lines...) Expand all
165 // If enabled, use refactored stream creation methods. 144 // If enabled, use refactored stream creation methods.
166 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_refactor_stream_creation, false) 145 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_refactor_stream_creation, false)
167 146
168 // A second take on fixing QUIC BBR packet conservation. 147 // A second take on fixing QUIC BBR packet conservation.
169 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_fix_conservation2, true) 148 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_fix_conservation2, true)
170 149
171 // If true, GFEs generate and validate source address token using the actual 150 // If true, GFEs generate and validate source address token using the actual
172 // client IP for proxied session. 151 // client IP for proxied session.
173 QUIC_FLAG(bool, 152 QUIC_FLAG(bool,
174 FLAGS_quic_reloadable_flag_quic_use_client_address_for_stk_in_proxy, 153 FLAGS_quic_reloadable_flag_quic_use_client_address_for_stk_in_proxy,
175 false) 154 true)
176 155
177 // If true, export a varz mapping QUIC non 0-rtt handshake with corresponding 156 // If true, export a varz mapping QUIC non 0-rtt handshake with corresponding
178 // frontend service. 157 // frontend service.
179 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_account_handshake, false) 158 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_account_handshake, false)
180 159
181 // Allows the 3RTO QUIC connection option to close a QUIC connection after 160 // Allows the 3RTO QUIC connection option to close a QUIC connection after
182 // 3RTOs if there are no open streams. 161 // 3RTOs if there are no open streams.
183 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_3rtos, false) 162 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_3rtos, false)
184 163
185 // If true, enable experiment for testing PCC congestion-control. 164 // If true, enable experiment for testing PCC congestion-control.
186 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_pcc, false) 165 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_enable_pcc, false)
187 166
188 // If true, enable QUIC v40. 167 // If true, enable QUIC v40.
189 QUIC_FLAG(bool, FLAGS_quic_enable_version_40, false) 168 QUIC_FLAG(bool, FLAGS_quic_enable_version_40, false)
190 169
191 // If true, use the more CPU efficient bandwidth sampler datastructure. 170 // If true, use the more CPU efficient bandwidth sampler datastructure.
192 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_faster_bandwidth_sampler, false) 171 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_faster_bandwidth_sampler, true)
193 172
194 // In QUIC, QuicSession gets notified when stream frames are acked, discarded or 173 // In QUIC, QuicSession gets notified when stream frames are acked, discarded or
195 // retransmitted. 174 // retransmitted.
196 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_use_stream_notifier2, false) 175 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_use_stream_notifier2, false)
197 176
198 // When true, defaults to BBR congestion control instead of Cubic. 177 // When true, defaults to BBR congestion control instead of Cubic.
199 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_default_to_bbr, false) 178 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_default_to_bbr, false)
179
180 // Allow a new rate based recovery in QUIC BBR to be enabled via connection
181 // option.
182 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_bbr_rate_recovery, false)
183
184 // If true, allow trailing headers with duplicate keys, and combine the values
185 // from duplicate keys into a single delimted header.
186 QUIC_FLAG(bool,
187 FLAGS_quic_reloadable_flag_quic_handle_duplicate_trailers,
188 false)
189
190 // Allows QUIC BBR up to twice the previously measured ack aggregation to be
191 // added to the CWND as long as bytes_in_flight goes below the target recently.
192 QUIC_FLAG(bool,
193 FLAGS_quic_reloadable_flag_quic_bbr_ack_aggregation_bytes2,
194 false)
OLDNEW
« no previous file with comments | « net/quic/core/quic_connection_test.cc ('k') | net/quic/core/quic_sent_packet_manager_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698