gfe-relnote: In QUIC bandwidth sampler, only remove packets when RemoveObsoletePackets is called. Protected by --gfe2_reloadable_flag_quic_bw_sampler_remove_packets_once_per_congestion_event.
PiperOrigin-RevId: 285110271
Change-Id: I27567839a190136c03fef54a66261ab34d8c1f82
diff --git a/quic/core/congestion_control/bbr2_sender.cc b/quic/core/congestion_control/bbr2_sender.cc
index 31bf299..3e707f3 100644
--- a/quic/core/congestion_control/bbr2_sender.cc
+++ b/quic/core/congestion_control/bbr2_sender.cc
@@ -150,6 +150,7 @@
<< " prior_cwnd:" << cwnd_ << " @ " << event_time;
Bbr2CongestionEvent congestion_event;
congestion_event.prior_cwnd = cwnd_;
+ congestion_event.prior_bytes_in_flight = prior_in_flight;
congestion_event.is_probing_for_bandwidth =
BBR2_MODE_DISPATCH(IsProbingForBandwidth());
@@ -193,7 +194,7 @@
<< this << " END CongestionEvent(acked:" << acked_packets
<< ", lost:" << lost_packets.size() << ") "
<< ", Mode:" << mode_ << ", RttCount:" << model_.RoundTripCount()
- << ", BytesInFlight:" << model_.bytes_in_flight()
+ << ", BytesInFlight:" << congestion_event.bytes_in_flight
<< ", PacingRate:" << PacingRate(0) << ", CWND:" << GetCongestionWindow()
<< ", PacingGain:" << model_.pacing_gain()
<< ", CwndGain:" << model_.cwnd_gain()
@@ -274,7 +275,7 @@
HasRetransmittableData is_retransmittable) {
QUIC_DVLOG(3) << this << " OnPacketSent: pkn:" << packet_number
<< ", bytes:" << bytes << ", cwnd:" << cwnd_
- << ", inflight:" << model_.bytes_in_flight() + bytes
+ << ", inflight:" << bytes_in_flight + bytes
<< ", total_sent:" << model_.total_bytes_sent() + bytes
<< ", total_acked:" << model_.total_bytes_acked()
<< ", total_lost:" << model_.total_bytes_lost() << " @ "
@@ -327,7 +328,7 @@
if (flexible_app_limited_) {
const bool is_pipe_sufficiently_full = IsPipeSufficientlyFull();
QUIC_DVLOG(3) << this << " CWND: " << GetCongestionWindow()
- << ", inflight: " << model_.bytes_in_flight()
+ << ", inflight: " << unacked_packets_->bytes_in_flight()
<< ", pacing_rate: " << PacingRate(0)
<< ", flexible_app_limited_: true, ShouldSendProbingPacket: "
<< !is_pipe_sufficiently_full;
@@ -338,20 +339,20 @@
}
bool Bbr2Sender::IsPipeSufficientlyFull() const {
+ QuicByteCount bytes_in_flight = unacked_packets_->bytes_in_flight();
// See if we need more bytes in flight to see more bandwidth.
if (mode_ == Bbr2Mode::STARTUP) {
// STARTUP exits if it doesn't observe a 25% bandwidth increase, so the CWND
// must be more than 25% above the target.
- return model_.bytes_in_flight() >= GetTargetCongestionWindow(1.5);
+ return bytes_in_flight >= GetTargetCongestionWindow(1.5);
}
if (model_.pacing_gain() > 1) {
// Super-unity PROBE_BW doesn't exit until 1.25 * BDP is achieved.
- return model_.bytes_in_flight() >=
- GetTargetCongestionWindow(model_.pacing_gain());
+ return bytes_in_flight >= GetTargetCongestionWindow(model_.pacing_gain());
}
// If bytes_in_flight are above the target congestion window, it should be
// possible to observe the same or more bandwidth if it's available.
- return model_.bytes_in_flight() >= GetTargetCongestionWindow(1.1);
+ return bytes_in_flight >= GetTargetCongestionWindow(1.1);
}
std::string Bbr2Sender::GetDebugState() const {