In QuicConnection, rename ping_timeout_ to keep_alive_ping_timeout_. Remove two getters ping_timeout() and initial_retransmittable_on_wire_timeout(). For chromium merge: 1) please replace ping_timeout() with quic::QuicTime::Delta::FromSeconds(quic::kPingTimeoutSecs), 2) please remove the spot using initial_retransmittable_on_wire_timeout(): https://source.chromium.org/chromium/chromium/src/+/main:net/quic/quic_chromium_client_session_test.cc;drc=d138bd5bee710c5d3befd0c08f1949b99a837e06;l=2307 PiperOrigin-RevId: 442619172
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc index 2a3ceb5..c5edb1d 100644 --- a/quiche/quic/core/quic_connection.cc +++ b/quiche/quic/core/quic_connection.cc
@@ -258,7 +258,7 @@ stop_waiting_count_(0), pending_retransmission_alarm_(false), defer_send_in_response_to_packets_(false), - ping_timeout_(QuicTime::Delta::FromSeconds(kPingTimeoutSecs)), + keep_alive_ping_timeout_(QuicTime::Delta::FromSeconds(kPingTimeoutSecs)), initial_retransmittable_on_wire_timeout_(QuicTime::Delta::Infinite()), consecutive_retransmittable_on_wire_ping_count_(0), retransmittable_on_wire_ping_count_(0), @@ -4660,7 +4660,7 @@ GetQuicFlag(FLAGS_quic_max_retransmittable_on_wire_ping_count)) { if (perspective_ == Perspective::IS_CLIENT) { // Clients send 15s PINGs to avoid NATs from timing out. - ping_alarm_->Update(clock_->ApproximateNow() + ping_timeout_, + ping_alarm_->Update(clock_->ApproximateNow() + keep_alive_ping_timeout_, QuicTime::Delta::FromSeconds(1)); } else { // Servers do not send 15s PINGs. @@ -4668,7 +4668,8 @@ } return; } - QUICHE_DCHECK_LT(initial_retransmittable_on_wire_timeout_, ping_timeout_); + QUICHE_DCHECK_LT(initial_retransmittable_on_wire_timeout_, + keep_alive_ping_timeout_); QuicTime::Delta retransmittable_on_wire_timeout = initial_retransmittable_on_wire_timeout_; int max_aggressive_retransmittable_on_wire_ping_count = @@ -4690,7 +4691,7 @@ return; } - if (retransmittable_on_wire_timeout < ping_timeout_) { + if (retransmittable_on_wire_timeout < keep_alive_ping_timeout_) { // Use a shorter timeout if there are open streams, but nothing on the wire. ping_alarm_->Update( clock_->ApproximateNow() + retransmittable_on_wire_timeout, @@ -4702,7 +4703,7 @@ return; } - ping_alarm_->Update(clock_->ApproximateNow() + ping_timeout_, + ping_alarm_->Update(clock_->ApproximateNow() + keep_alive_ping_timeout_, kAlarmGranularity); }
diff --git a/quiche/quic/core/quic_connection.h b/quiche/quic/core/quic_connection.h index a186386..72b3fdd 100644 --- a/quiche/quic/core/quic_connection.h +++ b/quiche/quic/core/quic_connection.h
@@ -741,11 +741,10 @@ } // Used in Chromium, but not internally. // Must only be called before ping_alarm_ is set. - void set_ping_timeout(QuicTime::Delta ping_timeout) { + void set_keep_alive_ping_timeout(QuicTime::Delta keep_alive_ping_timeout) { QUICHE_DCHECK(!ping_alarm_->IsSet()); - ping_timeout_ = ping_timeout; + keep_alive_ping_timeout_ = keep_alive_ping_timeout; } - const QuicTime::Delta ping_timeout() const { return ping_timeout_; } // Sets an initial timeout for the ping alarm when there is no retransmittable // data in flight, allowing for a more aggressive ping alarm in that case. void set_initial_retransmittable_on_wire_timeout( @@ -753,9 +752,6 @@ QUICHE_DCHECK(!ping_alarm_->IsSet()); initial_retransmittable_on_wire_timeout_ = retransmittable_on_wire_timeout; } - const QuicTime::Delta initial_retransmittable_on_wire_timeout() const { - return initial_retransmittable_on_wire_timeout_; - } // Used in Chromium, but not internally. void set_creator_debug_delegate(QuicPacketCreator::DebugDelegate* visitor) { packet_creator_.set_debug_delegate(visitor); @@ -1980,8 +1976,8 @@ // SendAlarm. bool defer_send_in_response_to_packets_; - // The timeout for PING. - QuicTime::Delta ping_timeout_; + // The timeout for keep-alive PING. + QuicTime::Delta keep_alive_ping_timeout_; // Initial timeout for how long the wire can have no retransmittable packets. QuicTime::Delta initial_retransmittable_on_wire_timeout_;
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc index 2770f5a..522c78e 100644 --- a/quiche/quic/core/quic_connection_test.cc +++ b/quiche/quic/core/quic_connection_test.cc
@@ -5043,7 +5043,7 @@ EXPECT_FALSE(connection_.GetPingAlarm()->IsSet()); // Use a reduced ping timeout for this connection. - connection_.set_ping_timeout(QuicTime::Delta::FromSeconds(10)); + connection_.set_keep_alive_ping_timeout(QuicTime::Delta::FromSeconds(10)); // Advance to 5ms, and send a packet to the peer, which will set // the ping alarm. @@ -8431,7 +8431,7 @@ // The ping alarm is set for the ping timeout, not the shorter // retransmittable_on_wire_timeout. EXPECT_TRUE(connection_.GetPingAlarm()->IsSet()); - EXPECT_EQ(connection_.ping_timeout(), + EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)).Times(AnyNumber()); @@ -8462,7 +8462,8 @@ // Verify subsequent pings are sent with timeout that is exponentially backed // off. - while (retransmittable_on_wire_timeout * 2 < connection_.ping_timeout()) { + while (retransmittable_on_wire_timeout * 2 < + QuicTime::Delta::FromSeconds(kPingTimeoutSecs)) { // Receive an ACK for the previous PING. This should set the // ping alarm with backed off retransmittable-on-wire timeout. retransmittable_on_wire_timeout = retransmittable_on_wire_timeout * 2; @@ -8483,7 +8484,7 @@ // The ping alarm is set with default ping timeout. EXPECT_TRUE(connection_.GetPingAlarm()->IsSet()); - EXPECT_EQ(connection_.ping_timeout(), + EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); // Receive an ACK for the previous PING. The ping alarm is set with an @@ -8494,7 +8495,8 @@ {{QuicPacketNumber(ack_num), QuicPacketNumber(ack_num + 1)}}); ProcessAckPacket(&frame); EXPECT_TRUE(connection_.GetPingAlarm()->IsSet()); - EXPECT_EQ(connection_.ping_timeout() - QuicTime::Delta::FromMilliseconds(5), + EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs) - + QuicTime::Delta::FromMilliseconds(5), connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); } @@ -8526,7 +8528,7 @@ // The ping alarm is set for the ping timeout, not the shorter // retransmittable_on_wire_timeout. EXPECT_TRUE(connection_.GetPingAlarm()->IsSet()); - EXPECT_EQ(connection_.ping_timeout(), + EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); // Receive an ACK of the first packet. This should set the ping alarm with @@ -8640,7 +8642,7 @@ // The ping alarm is set for the ping timeout, not the shorter // retransmittable_on_wire_timeout. EXPECT_TRUE(connection_.GetPingAlarm()->IsSet()); - EXPECT_EQ(connection_.ping_timeout(), + EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); EXPECT_CALL(visitor_, OnSuccessfulVersionNegotiation(_)).Times(AnyNumber()); @@ -8673,7 +8675,7 @@ {{QuicPacketNumber(ack_num), QuicPacketNumber(ack_num + 1)}}); ProcessAckPacket(&frame); EXPECT_TRUE(connection_.GetPingAlarm()->IsSet()); - EXPECT_EQ(connection_.ping_timeout(), + EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); }