Further clean up QuicConfig idle timeout API
Now that all of our clients use the single-parameter API, remove any API that allows setting different values or that uses seconds instead of QuicTime::Delta. Since the idle timeout is not used before the handshake, and required to be negotiated during the handshake, we're guaranteed that its default value is never used and only the maximum value matters. Therefore this CL does not change any behavior.
gfe-relnote: refactor QuicConfig, not flag protected
PiperOrigin-RevId: 309474946
Change-Id: I070efb307b360d0e30d4481dfb3fe24bbec62306
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc
index 5a3e769..a06e698 100644
--- a/quic/core/quic_config.cc
+++ b/quic/core/quic_config.cc
@@ -590,16 +590,10 @@
ContainsQuicTag(client_connection_options_.GetSendValues(), tag));
}
-void QuicConfig::SetIdleNetworkTimeout(
- QuicTime::Delta max_idle_network_timeout,
- QuicTime::Delta default_idle_network_timeout) {
- idle_network_timeout_seconds_.set(
- static_cast<uint32_t>(max_idle_network_timeout.ToSeconds()),
- static_cast<uint32_t>(default_idle_network_timeout.ToSeconds()));
-}
-
void QuicConfig::SetIdleNetworkTimeout(QuicTime::Delta idle_network_timeout) {
- SetIdleNetworkTimeout(idle_network_timeout, idle_network_timeout);
+ idle_network_timeout_seconds_.set(
+ static_cast<uint32_t>(idle_network_timeout.ToSeconds()),
+ static_cast<uint32_t>(idle_network_timeout.ToSeconds()));
}
QuicTime::Delta QuicConfig::IdleNetworkTimeout() const {
@@ -956,8 +950,7 @@
}
void QuicConfig::SetDefaults() {
- idle_network_timeout_seconds_.set(kMaximumIdleTimeoutSecs,
- kDefaultIdleTimeoutSecs);
+ SetIdleNetworkTimeout(QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
SetMaxBidirectionalStreamsToSend(kDefaultMaxStreamsPerConnection);
SetMaxUnidirectionalStreamsToSend(kDefaultMaxStreamsPerConnection);
max_time_before_crypto_handshake_ =
diff --git a/quic/core/quic_config.h b/quic/core/quic_config.h
index 2a46ae6..0009cda 100644
--- a/quic/core/quic_config.h
+++ b/quic/core/quic_config.h
@@ -333,10 +333,6 @@
bool HasClientRequestedIndependentOption(QuicTag tag,
Perspective perspective) const;
- void SetIdleNetworkTimeout(QuicTime::Delta max_idle_network_timeout,
- QuicTime::Delta default_idle_network_timeout);
-
- // Sets both default and max to the same value.
void SetIdleNetworkTimeout(QuicTime::Delta idle_network_timeout);
QuicTime::Delta IdleNetworkTimeout() const;
@@ -376,10 +372,6 @@
return max_idle_time_before_crypto_handshake_;
}
- QuicNegotiableUint32 idle_network_timeout_seconds() const {
- return idle_network_timeout_seconds_;
- }
-
void set_max_undecryptable_packets(size_t max_undecryptable_packets) {
max_undecryptable_packets_ = max_undecryptable_packets;
}
diff --git a/quic/core/quic_config_test.cc b/quic/core/quic_config_test.cc
index 9ce6024..cb8d3be 100644
--- a/quic/core/quic_config_test.cc
+++ b/quic/core/quic_config_test.cc
@@ -89,8 +89,7 @@
kInitialStreamFlowControlWindowForTest);
config_.SetInitialSessionFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
- config_.SetIdleNetworkTimeout(QuicTime::Delta::FromSeconds(5),
- QuicTime::Delta::FromSeconds(2));
+ config_.SetIdleNetworkTimeout(QuicTime::Delta::FromSeconds(5));
CryptoHandshakeMessage msg;
config_.ToHandshakeMessage(&msg, GetParam());
@@ -115,8 +114,7 @@
QuicTagVector cgst;
cgst.push_back(kQBIC);
client_config.SetIdleNetworkTimeout(
- QuicTime::Delta::FromSeconds(2 * kMaximumIdleTimeoutSecs),
- QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
+ QuicTime::Delta::FromSeconds(2 * kMaximumIdleTimeoutSecs));
client_config.SetInitialRoundTripTimeUsToSend(10 * kNumMicrosPerMilli);
client_config.SetInitialStreamFlowControlWindowToSend(
2 * kInitialStreamFlowControlWindowForTest);
@@ -373,10 +371,9 @@
}
TEST_P(QuicConfigTest, IncomingLargeIdleTimeoutTransportParameter) {
- // Configure our default to 30s and max to 60s, then receive 120s from peer.
- // Since the received value is above the max, we should then use the max.
- config_.SetIdleNetworkTimeout(quic::QuicTime::Delta::FromSeconds(60),
- quic::QuicTime::Delta::FromSeconds(30));
+ // Configure our idle timeout to 60s, then receive 120s from peer.
+ // Since the received value is above ours, we should then use ours.
+ config_.SetIdleNetworkTimeout(quic::QuicTime::Delta::FromSeconds(60));
TransportParameters params;
params.idle_timeout_milliseconds.set_value(120000);
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index a9ee2af..5c3cbad 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -4251,8 +4251,8 @@
QuicTagVector options;
options.push_back(kTLPR);
config.SetConnectionOptionsToSend(options);
- QuicConfigPeer::ReceiveIdleNetworkTimeout(&config, SERVER,
- kDefaultIdleTimeoutSecs);
+ QuicConfigPeer::ReceiveIdleNetworkTimeout(
+ &config, SERVER, QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
connection_.SetFromConfig(config);
connection_.SetMaxTailLossProbes(1);
@@ -5781,7 +5781,7 @@
client_config.SetInitialSessionFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
client_config.SetIdleNetworkTimeout(
- QuicTime::Delta::FromSeconds(kDefaultIdleTimeoutSecs));
+ QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
client_config.ToHandshakeMessage(&msg, connection_.transport_version());
const QuicErrorCode error =
config.ProcessPeerHello(msg, CLIENT, &error_details);
@@ -5790,7 +5790,7 @@
connection_.SetFromConfig(config);
const QuicTime::Delta default_idle_timeout =
- QuicTime::Delta::FromSeconds(kDefaultIdleTimeoutSecs - 1);
+ QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs - 1);
const QuicTime::Delta five_ms = QuicTime::Delta::FromMilliseconds(5);
QuicTime default_timeout = clock_.ApproximateNow() + default_idle_timeout;
@@ -5870,7 +5870,7 @@
client_config.SetInitialSessionFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
client_config.SetIdleNetworkTimeout(
- QuicTime::Delta::FromSeconds(kDefaultIdleTimeoutSecs));
+ QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
client_config.ToHandshakeMessage(&msg, connection_.transport_version());
const QuicErrorCode error =
config.ProcessPeerHello(msg, CLIENT, &error_details);
@@ -5879,7 +5879,7 @@
connection_.SetFromConfig(config);
const QuicTime::Delta default_idle_timeout =
- QuicTime::Delta::FromSeconds(kDefaultIdleTimeoutSecs - 1);
+ QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs - 1);
const QuicTime::Delta five_ms = QuicTime::Delta::FromMilliseconds(5);
QuicTime default_timeout = clock_.ApproximateNow() + default_idle_timeout;
@@ -5931,7 +5931,7 @@
client_config.SetInitialSessionFlowControlWindowToSend(
kInitialSessionFlowControlWindowForTest);
client_config.SetIdleNetworkTimeout(
- QuicTime::Delta::FromSeconds(kDefaultIdleTimeoutSecs));
+ QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
client_config.ToHandshakeMessage(&msg, connection_.transport_version());
const QuicErrorCode error =
config.ProcessPeerHello(msg, CLIENT, &error_details);
@@ -5940,7 +5940,7 @@
connection_.SetFromConfig(config);
const QuicTime::Delta default_idle_timeout =
- QuicTime::Delta::FromSeconds(kDefaultIdleTimeoutSecs - 1);
+ QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs - 1);
const QuicTime::Delta five_ms = QuicTime::Delta::FromMilliseconds(5);
QuicTime default_timeout = clock_.ApproximateNow() + default_idle_timeout;
@@ -6103,8 +6103,8 @@
QuicTagVector connection_options;
connection_options.push_back(k5RTO);
config.SetConnectionOptionsToSend(connection_options);
- QuicConfigPeer::ReceiveIdleNetworkTimeout(&config, SERVER,
- kDefaultIdleTimeoutSecs);
+ QuicConfigPeer::ReceiveIdleNetworkTimeout(
+ &config, SERVER, QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
connection_.SetFromConfig(config);
// Send stream data.
@@ -9875,8 +9875,8 @@
connection_options.push_back(k1PTO);
connection_options.push_back(k6PTO);
config.SetConnectionOptionsToSend(connection_options);
- QuicConfigPeer::ReceiveIdleNetworkTimeout(&config, SERVER,
- kDefaultIdleTimeoutSecs);
+ QuicConfigPeer::ReceiveIdleNetworkTimeout(
+ &config, SERVER, QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
connection_.SetFromConfig(config);
EXPECT_FALSE(connection_.GetRetransmissionAlarm()->IsSet());
@@ -9923,8 +9923,8 @@
connection_options.push_back(k2PTO);
connection_options.push_back(k7PTO);
config.SetConnectionOptionsToSend(connection_options);
- QuicConfigPeer::ReceiveIdleNetworkTimeout(&config, SERVER,
- kDefaultIdleTimeoutSecs);
+ QuicConfigPeer::ReceiveIdleNetworkTimeout(
+ &config, SERVER, QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
connection_.SetFromConfig(config);
EXPECT_FALSE(connection_.GetRetransmissionAlarm()->IsSet());
@@ -9969,8 +9969,8 @@
QuicTagVector connection_options;
connection_options.push_back(k2PTO);
connection_options.push_back(k8PTO);
- QuicConfigPeer::ReceiveIdleNetworkTimeout(&config, SERVER,
- kDefaultIdleTimeoutSecs);
+ QuicConfigPeer::ReceiveIdleNetworkTimeout(
+ &config, SERVER, QuicTime::Delta::FromSeconds(kMaximumIdleTimeoutSecs));
config.SetConnectionOptionsToSend(connection_options);
EXPECT_CALL(*send_algorithm_, SetFromConfig(_, _));
connection_.SetFromConfig(config);
diff --git a/quic/test_tools/quic_config_peer.cc b/quic/test_tools/quic_config_peer.cc
index 20463ab..7b4c9f9 100644
--- a/quic/test_tools/quic_config_peer.cc
+++ b/quic/test_tools/quic_config_peer.cc
@@ -98,12 +98,13 @@
}
// static
-void QuicConfigPeer::ReceiveIdleNetworkTimeout(QuicConfig* config,
- HelloType hello_type,
- uint32_t idle_timeout_seconds) {
+void QuicConfigPeer::ReceiveIdleNetworkTimeout(
+ QuicConfig* config,
+ HelloType hello_type,
+ QuicTime::Delta idle_network_timeout) {
std::string error_details;
config->idle_network_timeout_seconds_.ReceiveValue(
- idle_timeout_seconds, hello_type, &error_details);
+ idle_network_timeout.ToSeconds(), hello_type, &error_details);
}
} // namespace test
diff --git a/quic/test_tools/quic_config_peer.h b/quic/test_tools/quic_config_peer.h
index b52bf42..5ce7a04 100644
--- a/quic/test_tools/quic_config_peer.h
+++ b/quic/test_tools/quic_config_peer.h
@@ -61,7 +61,7 @@
static void ReceiveIdleNetworkTimeout(QuicConfig* config,
HelloType hello_type,
- uint32_t idle_timeout_seconds);
+ QuicTime::Delta idle_network_timeout);
};
} // namespace test