Change delayed_ack_time to local_.. and peer...
Changes the name of delayed_ack_time_ to local_max_ack_delay_.
Add peer_max_ack_delay_, to be the delay that the peer is using.
This is a refactoring/etc in preparation of supporting the max ack
delay transport parameter negotiation for IETF QUIC.
gfe-relnote: N/A just a refactoring/name-change.
PiperOrigin-RevId: 258183470
Change-Id: I90d670b6a3d9516a224d6ef06f57d9111ffd1e2c
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index b693db7..5ef9720 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -1353,7 +1353,7 @@
should_last_packet_instigate_acks_, last_decrypted_packet_level_,
last_header_.packet_number, time_of_last_received_packet_,
clock_->ApproximateNow(), sent_packet_manager_.GetRttStats(),
- sent_packet_manager_.delayed_ack_time());
+ sent_packet_manager_.local_max_ack_delay());
} else {
QUIC_DLOG(INFO) << ENDPOINT << "Not updating ACK timeout for "
<< QuicUtils::EncryptionLevelToString(
diff --git a/quic/core/quic_received_packet_manager.cc b/quic/core/quic_received_packet_manager.cc
index 39e4a92..2994748 100644
--- a/quic/core/quic_received_packet_manager.cc
+++ b/quic/core/quic_received_packet_manager.cc
@@ -219,7 +219,7 @@
QuicTime time_of_last_received_packet,
QuicTime now,
const RttStats* rtt_stats,
- QuicTime::Delta delayed_ack_time) {
+ QuicTime::Delta local_max_ack_delay) {
if (!ack_frame_updated_) {
// ACK frame has not been updated, nothing to do.
return;
@@ -251,7 +251,7 @@
// Wait for the minimum of the ack decimation delay or the delayed ack time
// before sending an ack.
QuicTime::Delta ack_delay = std::min(
- delayed_ack_time, rtt_stats->min_rtt() * ack_decimation_delay_);
+ local_max_ack_delay, rtt_stats->min_rtt() * ack_decimation_delay_);
if (fast_ack_after_quiescence_ && now - time_of_previous_received_packet_ >
rtt_stats->SmoothedOrInitialRtt()) {
// Ack the first packet out of queiscence faster, because QUIC does
@@ -273,7 +273,7 @@
// or TLP packets, which we'd like to acknowledge quickly.
MaybeUpdateAckTimeoutTo(now + QuicTime::Delta::FromMilliseconds(1));
} else {
- MaybeUpdateAckTimeoutTo(now + delayed_ack_time);
+ MaybeUpdateAckTimeoutTo(now + local_max_ack_delay);
}
}
diff --git a/quic/core/quic_received_packet_manager.h b/quic/core/quic_received_packet_manager.h
index c84054c..aaae7f1 100644
--- a/quic/core/quic_received_packet_manager.h
+++ b/quic/core/quic_received_packet_manager.h
@@ -65,7 +65,7 @@
QuicTime time_of_last_received_packet,
QuicTime now,
const RttStats* rtt_stats,
- QuicTime::Delta delayed_ack_time);
+ QuicTime::Delta local_max_ack_delay);
// Resets ACK related states, called after an ACK is successfully sent.
void ResetAckStates();
diff --git a/quic/core/quic_sent_packet_manager.cc b/quic/core/quic_sent_packet_manager.cc
index e584310..d7c2c2b 100644
--- a/quic/core/quic_sent_packet_manager.cc
+++ b/quic/core/quic_sent_packet_manager.cc
@@ -111,7 +111,9 @@
ietf_style_2x_tlp_(false),
largest_mtu_acked_(0),
handshake_confirmed_(false),
- delayed_ack_time_(
+ local_max_ack_delay_(
+ QuicTime::Delta::FromMilliseconds(kDefaultDelayedAckTimeMs)),
+ peer_max_ack_delay_(
QuicTime::Delta::FromMilliseconds(kDefaultDelayedAckTimeMs)),
rtt_updated_(false),
acked_packets_iter_(last_ack_frame_.packets.rbegin()),
@@ -148,7 +150,7 @@
rtt_stats_.set_ignore_max_ack_delay(true);
}
if (config.HasClientSentConnectionOption(kMAD1, perspective)) {
- rtt_stats_.set_initial_max_ack_delay(delayed_ack_time_);
+ rtt_stats_.set_initial_max_ack_delay(local_max_ack_delay_);
}
if (config.HasClientSentConnectionOption(kMAD2, perspective)) {
min_tlp_timeout_ = QuicTime::Delta::Zero();
@@ -982,7 +984,7 @@
if (conservative_handshake_retransmits_) {
// Using the delayed ack time directly could cause conservative handshake
// retransmissions to actually be more aggressive than the default.
- delay_ms = std::max(delayed_ack_time_.ToMilliseconds(),
+ delay_ms = std::max(peer_max_ack_delay_.ToMilliseconds(),
static_cast<int64_t>(2 * srtt.ToMilliseconds()));
} else {
delay_ms = std::max(kMinHandshakeTimeoutMs,
diff --git a/quic/core/quic_sent_packet_manager.h b/quic/core/quic_sent_packet_manager.h
index 944c556..b90d977 100644
--- a/quic/core/quic_sent_packet_manager.h
+++ b/quic/core/quic_sent_packet_manager.h
@@ -353,12 +353,18 @@
return pending_timer_transmission_count_;
}
- QuicTime::Delta delayed_ack_time() const { return delayed_ack_time_; }
+ QuicTime::Delta local_max_ack_delay() const { return local_max_ack_delay_; }
- void set_delayed_ack_time(QuicTime::Delta delayed_ack_time) {
+ void set_local_max_ack_delay(QuicTime::Delta local_max_ack_delay) {
// The delayed ack time should never be more than one half the min RTO time.
- DCHECK_LE(delayed_ack_time, (min_rto_timeout_ * 0.5));
- delayed_ack_time_ = delayed_ack_time;
+ DCHECK_LE(local_max_ack_delay, (min_rto_timeout_ * 0.5));
+ local_max_ack_delay_ = local_max_ack_delay;
+ }
+
+ QuicTime::Delta peer_max_ack_delay() const { return peer_max_ack_delay_; }
+
+ void set_peer_max_ack_delay(QuicTime::Delta peer_max_ack_delay) {
+ peer_max_ack_delay_ = peer_max_ack_delay;
}
const QuicUnackedPacketMap& unacked_packets() const {
@@ -604,9 +610,14 @@
QuicPacketNumber
largest_packets_peer_knows_is_acked_[NUM_PACKET_NUMBER_SPACES];
- // The maximum amount of time to wait before sending an acknowledgement.
- // The recovery code assumes the delayed ack time is the same on both sides.
- QuicTime::Delta delayed_ack_time_;
+ // The local node's maximum ack delay time. This is the maximum amount of
+ // time to wait before sending an acknowledgement.
+ QuicTime::Delta local_max_ack_delay_;
+
+ // The maximum ACK delay time that the peer uses. Initialized to be the
+ // same as local_max_ack_delay_, may be changed via transport parameter
+ // negotiation.
+ QuicTime::Delta peer_max_ack_delay_;
// Latest received ack frame.
QuicAckFrame last_ack_frame_;
diff --git a/quic/core/uber_received_packet_manager.cc b/quic/core/uber_received_packet_manager.cc
index a3c79d3..6df7490 100644
--- a/quic/core/uber_received_packet_manager.cc
+++ b/quic/core/uber_received_packet_manager.cc
@@ -78,18 +78,18 @@
QuicTime time_of_last_received_packet,
QuicTime now,
const RttStats* rtt_stats,
- QuicTime::Delta delayed_ack_time) {
+ QuicTime::Delta local_max_ack_delay) {
if (!supports_multiple_packet_number_spaces_) {
received_packet_managers_[0].MaybeUpdateAckTimeout(
should_last_packet_instigate_acks, last_received_packet_number,
- time_of_last_received_packet, now, rtt_stats, delayed_ack_time);
+ time_of_last_received_packet, now, rtt_stats, local_max_ack_delay);
return;
}
received_packet_managers_[QuicUtils::GetPacketNumberSpace(
decrypted_packet_level)]
.MaybeUpdateAckTimeout(
should_last_packet_instigate_acks, last_received_packet_number,
- time_of_last_received_packet, now, rtt_stats, delayed_ack_time);
+ time_of_last_received_packet, now, rtt_stats, local_max_ack_delay);
}
void UberReceivedPacketManager::ResetAckStates(
diff --git a/quic/core/uber_received_packet_manager.h b/quic/core/uber_received_packet_manager.h
index 21c2c0c..c442804 100644
--- a/quic/core/uber_received_packet_manager.h
+++ b/quic/core/uber_received_packet_manager.h
@@ -49,7 +49,7 @@
QuicTime time_of_last_received_packet,
QuicTime now,
const RttStats* rtt_stats,
- QuicTime::Delta delayed_ack_time);
+ QuicTime::Delta local_max_ack_delay);
// Resets ACK related states, called after an ACK is successfully sent.
void ResetAckStates(EncryptionLevel encryption_level);