#include "quiche/quic/core/congestion_control/bbr2_probe_bw.h"
#include <algorithm>
#include <limits>
#include <ostream>
#include "quiche/quic/core/congestion_control/bbr2_misc.h"
#include "quiche/quic/core/congestion_control/bbr2_sender.h"
#include "quiche/quic/core/quic_bandwidth.h"
#include "quiche/quic/core/quic_time.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_flag_utils.h"
#include "quiche/quic/platform/api/quic_logging.h"
namespace quic {
void Bbr2ProbeBwMode::Enter(QuicTime now,
const Bbr2CongestionEvent* ) { … }
Bbr2Mode Bbr2ProbeBwMode::OnCongestionEvent(
QuicByteCount prior_in_flight, QuicTime event_time,
const AckedPacketVector& ,
const LostPacketVector& ,
const Bbr2CongestionEvent& congestion_event) { … }
Limits<QuicByteCount> Bbr2ProbeBwMode::GetCwndLimits() const { … }
bool Bbr2ProbeBwMode::IsProbingForBandwidth() const { … }
Bbr2Mode Bbr2ProbeBwMode::OnExitQuiescence(QuicTime now,
QuicTime quiescence_start_time) { … }
void Bbr2ProbeBwMode::UpdateProbeDown(
QuicByteCount prior_in_flight,
const Bbr2CongestionEvent& congestion_event) { … }
Bbr2ProbeBwMode::AdaptUpperBoundsResult Bbr2ProbeBwMode::MaybeAdaptUpperBounds(
const Bbr2CongestionEvent& congestion_event) { … }
bool Bbr2ProbeBwMode::IsTimeToProbeBandwidth(
const Bbr2CongestionEvent& congestion_event) const { … }
bool Bbr2ProbeBwMode::HasStayedLongEnoughInProbeDown(
const Bbr2CongestionEvent& congestion_event) const { … }
bool Bbr2ProbeBwMode::HasCycleLasted(
QuicTime::Delta duration,
const Bbr2CongestionEvent& congestion_event) const { … }
bool Bbr2ProbeBwMode::HasPhaseLasted(
QuicTime::Delta duration,
const Bbr2CongestionEvent& congestion_event) const { … }
bool Bbr2ProbeBwMode::IsTimeToProbeForRenoCoexistence(
double probe_wait_fraction,
const Bbr2CongestionEvent& ) const { … }
void Bbr2ProbeBwMode::RaiseInflightHighSlope() { … }
void Bbr2ProbeBwMode::ProbeInflightHighUpward(
const Bbr2CongestionEvent& congestion_event) { … }
void Bbr2ProbeBwMode::UpdateProbeCruise(
const Bbr2CongestionEvent& congestion_event) { … }
void Bbr2ProbeBwMode::UpdateProbeRefill(
const Bbr2CongestionEvent& congestion_event) { … }
void Bbr2ProbeBwMode::UpdateProbeUp(
QuicByteCount prior_in_flight,
const Bbr2CongestionEvent& congestion_event) { … }
void Bbr2ProbeBwMode::EnterProbeDown(bool probed_too_high,
bool stopped_risky_probe, QuicTime now) { … }
void Bbr2ProbeBwMode::EnterProbeCruise(QuicTime now) { … }
void Bbr2ProbeBwMode::EnterProbeRefill(uint64_t probe_up_rounds, QuicTime now) { … }
void Bbr2ProbeBwMode::EnterProbeUp(QuicTime now) { … }
void Bbr2ProbeBwMode::ExitProbeDown() { … }
const char* Bbr2ProbeBwMode::CyclePhaseToString(CyclePhase phase) { … }
std::ostream& operator<<(std::ostream& os,
const Bbr2ProbeBwMode::CyclePhase phase) { … }
Bbr2ProbeBwMode::DebugState Bbr2ProbeBwMode::ExportDebugState() const { … }
std::ostream& operator<<(std::ostream& os,
const Bbr2ProbeBwMode::DebugState& state) { … }
const Bbr2Params& Bbr2ProbeBwMode::Params() const { … }
float Bbr2ProbeBwMode::PacingGainForPhase(
Bbr2ProbeBwMode::CyclePhase phase) const { … }
}