Deprecate gfe2_reloadable_flag_quic_let_connection_handle_pings. PiperOrigin-RevId: 346323537 Change-Id: I086687b5f70028f9a773df6366b67f9248060281
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc index 88810eb..c3c3fb2 100644 --- a/quic/core/quic_connection.cc +++ b/quic/core/quic_connection.cc
@@ -367,8 +367,7 @@ &arena_, alarm_factory_), encrypted_control_frames_( - GetQuicReloadableFlag(quic_encrypted_control_frames) && - packet_creator_.let_connection_handle_pings()), + GetQuicReloadableFlag(quic_encrypted_control_frames)), use_encryption_level_context_( encrypted_control_frames_ && GetQuicReloadableFlag(quic_use_encryption_level_context)), @@ -3481,13 +3480,9 @@ !visitor_->ShouldKeepConnectionAlive()) { return; } - if (packet_creator_.let_connection_handle_pings()) { - SendPingAtLevel(use_encryption_level_context_ - ? framer().GetEncryptionLevelToSendApplicationData() - : encryption_level_); - } else { - visitor_->SendPing(); - } + SendPingAtLevel(use_encryption_level_context_ + ? framer().GetEncryptionLevelToSendApplicationData() + : encryption_level_); } void QuicConnection::SendAck() { @@ -3583,19 +3578,15 @@ << "No packet gets sent when timer fires in mode " << retransmission_mode << ", send PING"; DCHECK_LT(0u, sent_packet_manager_.pending_timer_transmission_count()); - if (packet_creator_.let_connection_handle_pings()) { - EncryptionLevel level = encryption_level_; - PacketNumberSpace packet_number_space = NUM_PACKET_NUMBER_SPACES; - if (SupportsMultiplePacketNumberSpaces() && - sent_packet_manager_ - .GetEarliestPacketSentTimeForPto(&packet_number_space) - .IsInitialized()) { - level = QuicUtils::GetEncryptionLevel(packet_number_space); - } - SendPingAtLevel(level); - } else { - visitor_->SendPing(); + EncryptionLevel level = encryption_level_; + PacketNumberSpace packet_number_space = NUM_PACKET_NUMBER_SPACES; + if (SupportsMultiplePacketNumberSpaces() && + sent_packet_manager_ + .GetEarliestPacketSentTimeForPto(&packet_number_space) + .IsInitialized()) { + level = QuicUtils::GetEncryptionLevel(packet_number_space); } + SendPingAtLevel(level); } if (retransmission_mode == QuicSentPacketManager::PTO_MODE) { sent_packet_manager_.AdjustPendingTimerTransmissions(); @@ -5449,7 +5440,6 @@ } void QuicConnection::SendPingAtLevel(EncryptionLevel level) { - DCHECK(packet_creator_.let_connection_handle_pings()); ScopedEncryptionLevelContext context(this, level); SendControlFrame(QuicFrame(QuicPingFrame())); }
diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h index 13a3518..8dd0b0b 100644 --- a/quic/core/quic_connection.h +++ b/quic/core/quic_connection.h
@@ -161,9 +161,6 @@ // retransmittable frame needs to be added. virtual void OnAckNeedsRetransmittableFrame() = 0; - // Called when a ping needs to be sent. - virtual void SendPing() = 0; - // Called when an AckFrequency frame need to be sent. virtual void SendAckFrequency(const QuicAckFrequencyFrame& frame) = 0;
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc index bf3fe0a..941bd21 100644 --- a/quic/core/quic_connection_test.cc +++ b/quic/core/quic_connection_test.cc
@@ -3960,11 +3960,6 @@ connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); // Simulate firing of the retransmittable on wire and send a PING. - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); @@ -3978,21 +3973,14 @@ QuicTime::Delta::FromMilliseconds(kMinRetransmissionTimeMs); srtt = manager_->GetRttStats()->SmoothedOrInitialRtt(); - if (GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - // Arm RTO mode since there is only PING in flight. - expected_delay = manager_->GetPtoDelay(); - } else { - // First TLP without unacked stream data will no longer use TLPR. - expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); - } + // Arm RTO mode since there is only PING in flight. + expected_delay = manager_->GetPtoDelay(); EXPECT_EQ(expected_delay, connection_.GetRetransmissionAlarm()->deadline() - clock_.Now()); // Verify the path degrading delay = TLP delay + 1st RTO + 2nd RTO. // Add 1st RTO. - if (GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); - } + expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); retransmission_delay = std::max(manager_->GetRttStats()->smoothed_rtt() + 4 * manager_->GetRttStats()->mean_deviation(), @@ -4019,12 +4007,8 @@ // Verify the retransmission delay. // First TLP without unacked stream data will no longer use TLPR. - if (GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - // Arm RTO mode since there is only PING in flight. - expected_delay = manager_->GetPtoDelay(); - } else { - expected_delay = std::max(2 * srtt, 1.5 * srtt + 0.5 * min_rto_timeout); - } + // Arm RTO mode since there is only PING in flight. + expected_delay = manager_->GetPtoDelay(); expected_delay = expected_delay - QuicTime::Delta::FromMilliseconds(5); EXPECT_EQ(expected_delay, connection_.GetRetransmissionAlarm()->deadline() - clock_.Now()); @@ -4550,11 +4534,6 @@ writer_->Reset(); clock_.AdvanceTime(QuicTime::Delta::FromSeconds(15)); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } connection_.GetPingAlarm()->Fire(); size_t padding_frame_count = writer_->padding_frames().size(); EXPECT_EQ(padding_frame_count + 1u, writer_->frame_count()); @@ -4608,11 +4587,6 @@ writer_->Reset(); clock_.AdvanceTime(QuicTime::Delta::FromSeconds(10)); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - connection_.SendControlFrame(QuicFrame(QuicPingFrame(1))); - })); - } connection_.GetPingAlarm()->Fire(); size_t padding_frame_count = writer_->padding_frames().size(); EXPECT_EQ(padding_frame_count + 1u, writer_->frame_count()); @@ -7103,11 +7077,6 @@ // Simulate firing the ping alarm and sending a PING. clock_.AdvanceTime(retransmittable_on_wire_timeout); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - connection_.SendControlFrame(QuicFrame(QuicPingFrame(1))); - })); - } connection_.GetPingAlarm()->Fire(); // Now there's a retransmittable packet (PING) on the wire, so the path @@ -7829,11 +7798,6 @@ EXPECT_EQ(prev_deadline, connection_.GetPingAlarm()->deadline()); // Simulate the alarm firing and check that a PING is sent. - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - connection_.SendControlFrame(QuicFrame(QuicPingFrame(1))); - })); - } connection_.GetPingAlarm()->Fire(); size_t padding_frame_count = writer_->padding_frames().size(); if (GetParam().no_stop_waiting) { @@ -7904,11 +7868,6 @@ // Simulate the alarm firing and check that a PING is sent. writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - connection_.SendControlFrame(QuicFrame(QuicPingFrame(1))); - })); - } connection_.GetPingAlarm()->Fire(); size_t padding_frame_count = writer_->padding_frames().size(); if (GetParam().no_stop_waiting) { @@ -7968,11 +7927,6 @@ connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); // Simulate the alarm firing and check that a PING is sent. writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(initial_retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); } @@ -7997,11 +7951,6 @@ // Simulate the alarm firing and check that a PING is sent. writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); } @@ -8067,11 +8016,6 @@ // Simulate the alarm firing and check that a PING is sent. writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(initial_retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); @@ -8107,11 +8051,6 @@ connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); // Simulate the alarm firing and check that a PING is sent. writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(initial_retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); // Advance 5ms to receive next packet. @@ -8129,11 +8068,6 @@ connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(2 * initial_retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); @@ -8202,11 +8136,6 @@ connection_.GetPingAlarm()->deadline() - clock_.ApproximateNow()); // Simulate the alarm firing and check that a PING is sent. writer_->Reset(); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(initial_retransmittable_on_wire_timeout); connection_.GetPingAlarm()->Fire(); } @@ -9141,11 +9070,6 @@ // RTO fires, verify a PING packet gets sent because there is no data to send. EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, QuicPacketNumber(3), _, _)); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } clock_.AdvanceTime(retransmission_time - clock_.Now()); connection_.GetRetransmissionAlarm()->Fire(); EXPECT_EQ(1u, connection_.GetStats().tlp_count); @@ -9365,11 +9289,6 @@ ? QuicPacketNumber(2) : QuicPacketNumber(3), _, _)); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } connection_.GetRetransmissionAlarm()->Fire(); EXPECT_EQ(1u, connection_.GetStats().pto_count); EXPECT_EQ(1u, connection_.GetStats().crypto_retransmit_count); @@ -9666,11 +9585,6 @@ // Fires TLP, verify a PING gets sent because packet 3 is marked // RTO_RETRANSMITTED. EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, QuicPacketNumber(70), _, _)); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } connection_.GetRetransmissionAlarm()->Fire(); } @@ -10240,11 +10154,6 @@ // PTO fires, verify a PING packet gets sent because there is no data to // send. EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, QuicPacketNumber(3), _, _)); - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } connection_.GetRetransmissionAlarm()->Fire(); EXPECT_EQ(1u, connection_.GetStats().pto_count); EXPECT_EQ(0u, connection_.GetStats().crypto_retransmit_count); @@ -11008,11 +10917,7 @@ EXPECT_CALL(visitor_, ShouldKeepConnectionAlive()) .WillRepeatedly(Return(false)); // Verify PING does not get sent. - if (GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0); - } else { - EXPECT_CALL(visitor_, SendPing()).Times(0); - } + EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0); connection_.GetPingAlarm()->Fire(); } @@ -11865,11 +11770,6 @@ EXPECT_TRUE(connection_.GetRetransmissionAlarm()->IsSet()); // Fire retransmission alarm. - if (!GetQuicReloadableFlag(quic_let_connection_handle_pings)) { - EXPECT_CALL(visitor_, SendPing()).WillOnce(Invoke([this]() { - SendPing(); - })); - } connection_.GetRetransmissionAlarm()->Fire(); QuicFrames frames1;
diff --git a/quic/core/quic_control_frame_manager.cc b/quic/core/quic_control_frame_manager.cc index 6a64cb6..3940b9c 100644 --- a/quic/core/quic_control_frame_manager.cc +++ b/quic/core/quic_control_frame_manager.cc
@@ -137,27 +137,6 @@ QuicFrame(new QuicNewTokenFrame(++last_control_frame_id_, token))); } -void QuicControlFrameManager::WritePing() { - QUIC_DVLOG(1) << "Writing PING_FRAME"; - if (HasBufferedFrames()) { - // Do not send ping if there is buffered frames. - QUIC_LOG(WARNING) - << "Try to send PING when there is buffered control frames."; - return; - } - control_frames_.emplace_back( - QuicFrame(QuicPingFrame(++last_control_frame_id_))); - if (control_frames_.size() > kMaxNumControlFrames) { - delegate_->OnControlFrameManagerError( - QUIC_TOO_MANY_BUFFERED_CONTROL_FRAMES, - absl::StrCat("More than ", kMaxNumControlFrames, - "buffered control frames, least_unacked: ", least_unacked_, - ", least_unsent_: ", least_unsent_)); - return; - } - WriteBufferedFrames(); -} - void QuicControlFrameManager::OnControlFrameSent(const QuicFrame& frame) { QuicControlFrameId id = GetControlFrameId(frame); if (id == kInvalidControlFrameId) {
diff --git a/quic/core/quic_control_frame_manager.h b/quic/core/quic_control_frame_manager.h index f5bc0b6..1cc0c57 100644 --- a/quic/core/quic_control_frame_manager.h +++ b/quic/core/quic_control_frame_manager.h
@@ -93,9 +93,6 @@ // immediately. void WriteOrBufferNewToken(absl::string_view token); - // Sends a PING_FRAME. Do not send PING if there is buffered frames. - void WritePing(); - // Called when |frame| gets acked. Returns true if |frame| gets acked for the // first time, return false otherwise. bool OnControlFrameAcked(const QuicFrame& frame);
diff --git a/quic/core/quic_control_frame_manager_test.cc b/quic/core/quic_control_frame_manager_test.cc index 68658bb..bad8a665 100644 --- a/quic/core/quic_control_frame_manager_test.cc +++ b/quic/core/quic_control_frame_manager_test.cc
@@ -72,7 +72,6 @@ manager_->WriteOrBufferBlocked(kTestStreamId); manager_->WriteOrBufferStopSending(kTestStopSendingCode, kTestStreamId); number_of_frames_ = 5u; - ping_frame_id_ = 6u; EXPECT_EQ(number_of_frames_, QuicControlFrameManagerPeer::QueueSize(manager_.get())); EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&rst_stream_))); @@ -81,8 +80,6 @@ manager_->IsControlFrameOutstanding(QuicFrame(&window_update_))); EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&blocked_))); EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&stop_sending_))); - EXPECT_FALSE(manager_->IsControlFrameOutstanding( - QuicFrame(QuicPingFrame(ping_frame_id_)))); EXPECT_FALSE(manager_->HasPendingRetransmission()); EXPECT_TRUE(manager_->WillingToWrite()); @@ -101,7 +98,6 @@ std::unique_ptr<QuicControlFrameManager> manager_; QuicFrame frame_; size_t number_of_frames_; - int ping_frame_id_; }; TEST_F(QuicControlFrameManagerTest, OnControlFrameAcked) { @@ -119,8 +115,6 @@ EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&blocked_))); EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&stop_sending_))); - EXPECT_FALSE(manager_->IsControlFrameOutstanding( - QuicFrame(QuicPingFrame(ping_frame_id_)))); EXPECT_TRUE(manager_->OnControlFrameAcked(QuicFrame(&window_update_))); EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&window_update_))); EXPECT_EQ(number_of_frames_, @@ -146,7 +140,6 @@ EXPECT_CALL(*session_, WriteControlFrame(_, _)) .WillRepeatedly(Invoke(&ClearControlFrameWithTransmissionType)); manager_->OnCanWrite(); - manager_->WritePing(); EXPECT_FALSE(manager_->WillingToWrite()); } @@ -179,10 +172,9 @@ // Send control frames 4, 5, and 6. EXPECT_CALL(*session_, WriteControlFrame(_, _)) - .Times(number_of_frames_ - 2u) + .Times(number_of_frames_ - 3u) .WillRepeatedly(Invoke(&ClearControlFrameWithTransmissionType)); manager_->OnCanWrite(); - manager_->WritePing(); EXPECT_FALSE(manager_->WillingToWrite()); } @@ -214,28 +206,6 @@ PTO_RETRANSMISSION)); } -TEST_F(QuicControlFrameManagerTest, DonotSendPingWithBufferedFrames) { - Initialize(); - InSequence s; - EXPECT_CALL(*session_, WriteControlFrame(_, _)) - .WillOnce(Invoke(&ClearControlFrameWithTransmissionType)); - EXPECT_CALL(*session_, WriteControlFrame(_, _)).WillOnce(Return(false)); - // Send control frame 1. - manager_->OnCanWrite(); - EXPECT_FALSE(manager_->HasPendingRetransmission()); - EXPECT_TRUE(manager_->WillingToWrite()); - - // Send PING when there is buffered frames. - manager_->WritePing(); - // Verify only the buffered frames are sent. - EXPECT_CALL(*session_, WriteControlFrame(_, _)) - .Times(number_of_frames_ - 1) - .WillRepeatedly(Invoke(&ClearControlFrameWithTransmissionType)); - manager_->OnCanWrite(); - EXPECT_FALSE(manager_->HasPendingRetransmission()); - EXPECT_FALSE(manager_->WillingToWrite()); -} - TEST_F(QuicControlFrameManagerTest, SendAndAckAckFrequencyFrame) { Initialize(); InSequence s;
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h index f3a9a4b..908aa12 100644 --- a/quic/core/quic_flags_list.h +++ b/quic/core/quic_flags_list.h
@@ -40,7 +40,6 @@ QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_fix_willing_and_able_to_write2, true) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_goaway_with_max_stream_id, false) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_granular_qpack_error_codes, true) -QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_let_connection_handle_pings, true) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_new_priority_update_frame, true) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_pass_path_response_to_validator, false) QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_require_handshake_confirmation, false)
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc index 08ac9c7..858a403 100644 --- a/quic/core/quic_packet_creator.cc +++ b/quic/core/quic_packet_creator.cc
@@ -134,9 +134,6 @@ fully_pad_crypto_handshake_packets_(true), latched_hard_max_packet_length_(0), max_datagram_frame_size_(0) { - if (let_connection_handle_pings_) { - QUIC_RELOADABLE_FLAG_COUNT(quic_let_connection_handle_pings); - } SetMaxPacketLength(kDefaultMaxPacketSize); if (!framer_->version().UsesTls()) { // QUIC+TLS negotiates the maximum datagram frame size via the @@ -1191,7 +1188,7 @@ bool QuicPacketCreator::ConsumeRetransmittableControlFrame( const QuicFrame& frame) { QUIC_BUG_IF(IsControlFrame(frame.type) && !GetControlFrameId(frame) && - (!let_connection_handle_pings_ || frame.type != PING_FRAME)) + frame.type != PING_FRAME) << "Adding a control frame with no control frame id: " << frame; DCHECK(QuicUtils::IsRetransmittableFrame(frame.type)) << frame; MaybeBundleAckOpportunistically();
diff --git a/quic/core/quic_packet_creator.h b/quic/core/quic_packet_creator.h index 2605740..842837c 100644 --- a/quic/core/quic_packet_creator.h +++ b/quic/core/quic_packet_creator.h
@@ -471,10 +471,6 @@ // Return true if retry_token_ is not empty. bool HasRetryToken() const; - bool let_connection_handle_pings() const { - return let_connection_handle_pings_; - } - private: friend class test::QuicPacketCreatorPeer; @@ -673,9 +669,6 @@ // accept. There is no limit for QUIC_CRYPTO connections, but QUIC+TLS // negotiates this during the handshake. QuicByteCount max_datagram_frame_size_; - - const bool let_connection_handle_pings_ = - GetQuicReloadableFlag(quic_let_connection_handle_pings); }; } // namespace quic
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index b0fdb3c..73370d3 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -2091,10 +2091,6 @@ flow_controller_.SendWindowUpdate(); } -void QuicSession::SendPing() { - control_frame_manager_.WritePing(); -} - void QuicSession::SendAckFrequency(const QuicAckFrequencyFrame& frame) { control_frame_manager_.WriteOrBufferAckFrequency(frame); }
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h index 8e572d3..d849743 100644 --- a/quic/core/quic_session.h +++ b/quic/core/quic_session.h
@@ -134,7 +134,6 @@ void OnConnectionMigration(AddressChangeType /*type*/) override {} // Adds a connection level WINDOW_UPDATE frame. void OnAckNeedsRetransmittableFrame() override; - void SendPing() override; void SendAckFrequency(const QuicAckFrequencyFrame& frame) override; bool WillingAndAbleToWrite() const override; std::string GetStreamsInfoForLogging() const override;
diff --git a/quic/test_tools/quic_test_utils.h b/quic/test_tools/quic_test_utils.h index 825b669..6fbcc17 100644 --- a/quic/test_tools/quic_test_utils.h +++ b/quic/test_tools/quic_test_utils.h
@@ -567,7 +567,6 @@ bool is_connectivity_probe), (override)); MOCK_METHOD(void, OnAckNeedsRetransmittableFrame, (), (override)); - MOCK_METHOD(void, SendPing, (), (override)); MOCK_METHOD(void, SendAckFrequency, (const QuicAckFrequencyFrame& frame),
diff --git a/quic/test_tools/simulator/quic_endpoint.h b/quic/test_tools/simulator/quic_endpoint.h index 4485025..fd2fa06 100644 --- a/quic/test_tools/simulator/quic_endpoint.h +++ b/quic/test_tools/simulator/quic_endpoint.h
@@ -80,7 +80,6 @@ void OnPathDegrading() override {} void OnForwardProgressMadeAfterPathDegrading() override {} void OnAckNeedsRetransmittableFrame() override {} - void SendPing() override {} void SendAckFrequency(const QuicAckFrequencyFrame& /*frame*/) override {} bool AllowSelfAddressChange() const override; HandshakeState GetHandshakeState() const override;