Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1343)

Unified Diff: net/quic/quic_unacked_packet_map.cc

Issue 968513002: Land Recent QUIC Changes until 2/21/2015. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed const from members of TransmissionInfo struct. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_unacked_packet_map.h ('k') | net/quic/quic_unacked_packet_map_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_unacked_packet_map.cc
diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc
index 25e2a8afaf3b62561d7f4bad79c3fb63c4ff818a..be665d2228ef683a47326fe90a8249d33ffb5466 100644
--- a/net/quic/quic_unacked_packet_map.cc
+++ b/net/quic/quic_unacked_packet_map.cc
@@ -50,11 +50,8 @@ void QuicUnackedPacketMap::AddSentPacket(
}
TransmissionInfo info(packet.retransmittable_frames,
- packet.sequence_number_length,
- transmission_type,
- sent_time);
- info.is_fec_packet = packet.is_fec_packet;
-
+ packet.sequence_number_length, transmission_type,
+ sent_time, bytes_sent, packet.is_fec_packet);
if (old_sequence_number == 0) {
if (packet.retransmittable_frames != nullptr &&
packet.retransmittable_frames->HasCryptoHandshake() == IS_HANDSHAKE) {
@@ -68,7 +65,6 @@ void QuicUnackedPacketMap::AddSentPacket(
largest_sent_packet_ = sequence_number;
if (set_in_flight) {
bytes_in_flight_ += bytes_sent;
- info.bytes_sent = bytes_sent;
info.in_flight = true;
}
unacked_packets_.push_back(info);
@@ -94,7 +90,6 @@ void QuicUnackedPacketMap::TransferRetransmissionInfo(
DCHECK_GE(new_sequence_number, least_unacked_ + unacked_packets_.size());
DCHECK_NE(NOT_RETRANSMISSION, transmission_type);
- // TODO(ianswett): Discard and lose the packet lazily instead of immediately.
TransmissionInfo* transmission_info =
&unacked_packets_.at(old_sequence_number - least_unacked_);
RetransmittableFrames* frames = transmission_info->retransmittable_frames;
@@ -201,10 +196,9 @@ void QuicUnackedPacketMap::RemoveRetransmittability(
}
// TODO(ianswett): Consider adding a check to ensure there are retransmittable
// frames associated with this packet.
- for (SequenceNumberList::const_iterator it = all_transmissions->begin();
- it != all_transmissions->end(); ++it) {
+ for (QuicPacketSequenceNumber sequence_number : *all_transmissions) {
TransmissionInfo* transmission_info =
- &unacked_packets_[*it - least_unacked_];
+ &unacked_packets_[sequence_number - least_unacked_];
MaybeRemoveRetransmittableFrames(transmission_info);
transmission_info->all_transmissions = nullptr;
}
@@ -218,10 +212,9 @@ void QuicUnackedPacketMap::RemoveAckability(TransmissionInfo* info) {
if (all_transmissions == nullptr) {
return;
}
- for (SequenceNumberList::const_iterator it = all_transmissions->begin();
- it != all_transmissions->end(); ++it) {
+ for (QuicPacketSequenceNumber sequence_number : *all_transmissions) {
TransmissionInfo* transmission_info =
- &unacked_packets_[*it - least_unacked_];
+ &unacked_packets_[sequence_number - least_unacked_];
transmission_info->all_transmissions = nullptr;
transmission_info->is_unackable = true;
}
@@ -255,14 +248,12 @@ bool QuicUnackedPacketMap::IsPacketUsefulForMeasuringRtt(
}
bool QuicUnackedPacketMap::IsPacketUsefulForCongestionControl(
- QuicPacketSequenceNumber sequence_number,
const TransmissionInfo& info) const {
// Packet contributes to congestion control if it is considered inflight.
return info.in_flight;
}
bool QuicUnackedPacketMap::IsPacketUsefulForRetransmittableData(
- QuicPacketSequenceNumber sequence_number,
const TransmissionInfo& info) const {
// Packet may have retransmittable frames, or the data may have been
// retransmitted with a new sequence number.
@@ -274,8 +265,8 @@ bool QuicUnackedPacketMap::IsPacketUseless(
QuicPacketSequenceNumber sequence_number,
const TransmissionInfo& info) const {
return !IsPacketUsefulForMeasuringRtt(sequence_number, info) &&
- !IsPacketUsefulForCongestionControl(sequence_number, info) &&
- !IsPacketUsefulForRetransmittableData(sequence_number, info);
+ !IsPacketUsefulForCongestionControl(info) &&
+ !IsPacketUsefulForRetransmittableData(info);
}
bool QuicUnackedPacketMap::IsPacketRemovable(
@@ -283,8 +274,8 @@ bool QuicUnackedPacketMap::IsPacketRemovable(
const TransmissionInfo& info) const {
return (!IsPacketUsefulForMeasuringRtt(sequence_number, info) ||
unacked_packets_.size() > kMaxTcpCongestionWindow) &&
- !IsPacketUsefulForCongestionControl(sequence_number, info) &&
- !IsPacketUsefulForRetransmittableData(sequence_number, info);
+ !IsPacketUsefulForCongestionControl(info) &&
+ !IsPacketUsefulForRetransmittableData(info);
}
bool QuicUnackedPacketMap::IsUnacked(
@@ -388,22 +379,8 @@ bool QuicUnackedPacketMap::HasUnackedRetransmittableFrames() const {
return false;
}
-QuicPacketSequenceNumber
-QuicUnackedPacketMap::GetLeastUnacked() const {
+QuicPacketSequenceNumber QuicUnackedPacketMap::GetLeastUnacked() const {
return least_unacked_;
}
-void QuicUnackedPacketMap::RestoreInFlight(
- QuicPacketSequenceNumber sequence_number) {
- DCHECK_GE(sequence_number, least_unacked_);
- DCHECK_LT(sequence_number, least_unacked_ + unacked_packets_.size());
- TransmissionInfo* info = &unacked_packets_[sequence_number - least_unacked_];
- DCHECK(!info->in_flight);
- DCHECK_NE(0u, info->bytes_sent);
- DCHECK(info->sent_time.IsInitialized());
-
- bytes_in_flight_ += info->bytes_sent;
- info->in_flight = true;
-}
-
} // namespace net
« no previous file with comments | « net/quic/quic_unacked_packet_map.h ('k') | net/quic/quic_unacked_packet_map_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698