#include "quiche/quic/core/quic_received_packet_manager.h"
#include <algorithm>
#include <limits>
#include <utility>
#include "quiche/quic/core/congestion_control/rtt_stats.h"
#include "quiche/quic/core/crypto/crypto_protocol.h"
#include "quiche/quic/core/quic_config.h"
#include "quiche/quic/core/quic_connection_stats.h"
#include "quiche/quic/core/quic_types.h"
#include "quiche/quic/platform/api/quic_bug_tracker.h"
#include "quiche/quic/platform/api/quic_flag_utils.h"
#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/quic/platform/api/quic_logging.h"
namespace quic {
namespace {
const size_t kMaxPacketsAfterNewMissing = …;
const float kShortAckDecimationDelay = …;
}
QuicReceivedPacketManager::QuicReceivedPacketManager()
: … { … }
QuicReceivedPacketManager::QuicReceivedPacketManager(QuicConnectionStats* stats)
: … { … }
QuicReceivedPacketManager::~QuicReceivedPacketManager() { … }
void QuicReceivedPacketManager::SetFromConfig(const QuicConfig& config,
Perspective perspective) { … }
void QuicReceivedPacketManager::RecordPacketReceived(
const QuicPacketHeader& header, QuicTime receipt_time,
const QuicEcnCodepoint ecn) { … }
void QuicReceivedPacketManager::MaybeTrimAckRanges() { … }
bool QuicReceivedPacketManager::IsMissing(QuicPacketNumber packet_number) { … }
bool QuicReceivedPacketManager::IsAwaitingPacket(
QuicPacketNumber packet_number) const { … }
const QuicFrame QuicReceivedPacketManager::GetUpdatedAckFrame(
QuicTime approximate_now) { … }
void QuicReceivedPacketManager::DontWaitForPacketsBefore(
QuicPacketNumber least_unacked) { … }
QuicTime::Delta QuicReceivedPacketManager::GetMaxAckDelay(
QuicPacketNumber last_received_packet_number,
const RttStats& rtt_stats) const { … }
void QuicReceivedPacketManager::MaybeUpdateAckFrequency(
QuicPacketNumber last_received_packet_number) { … }
void QuicReceivedPacketManager::MaybeUpdateAckTimeout(
bool should_last_packet_instigate_acks,
QuicPacketNumber last_received_packet_number,
QuicTime last_packet_receipt_time, QuicTime now,
const RttStats* rtt_stats) { … }
void QuicReceivedPacketManager::ResetAckStates() { … }
bool QuicReceivedPacketManager::HasMissingPackets() const { … }
bool QuicReceivedPacketManager::HasNewMissingPackets() const { … }
bool QuicReceivedPacketManager::ack_frame_updated() const { … }
QuicPacketNumber QuicReceivedPacketManager::GetLargestObserved() const { … }
QuicPacketNumber QuicReceivedPacketManager::PeerFirstSendingPacketNumber()
const { … }
bool QuicReceivedPacketManager::IsAckFrameEmpty() const { … }
void QuicReceivedPacketManager::OnAckFrequencyFrame(
const QuicAckFrequencyFrame& frame) { … }
}