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

Side by Side Diff: net/quic/congestion_control/fix_rate_sender.cc

Issue 131743009: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use size_t instead of int to fix win_x64 compile error Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/congestion_control/fix_rate_sender.h" 5 #include "net/quic/congestion_control/fix_rate_sender.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 if (feedback.type == kFixRate) { 51 if (feedback.type == kFixRate) {
52 bitrate_ = feedback.fix_rate.bitrate; 52 bitrate_ = feedback.fix_rate.bitrate;
53 fix_rate_leaky_bucket_.SetDrainingRate(feedback_receive_time, bitrate_); 53 fix_rate_leaky_bucket_.SetDrainingRate(feedback_receive_time, bitrate_);
54 paced_sender_.UpdateBandwidthEstimate(feedback_receive_time, bitrate_); 54 paced_sender_.UpdateBandwidthEstimate(feedback_receive_time, bitrate_);
55 } 55 }
56 // Silently ignore invalid messages in release mode. 56 // Silently ignore invalid messages in release mode.
57 } 57 }
58 58
59 void FixRateSender::OnPacketAcked( 59 void FixRateSender::OnPacketAcked(
60 QuicPacketSequenceNumber /*acked_sequence_number*/, 60 QuicPacketSequenceNumber /*acked_sequence_number*/,
61 QuicByteCount bytes_acked, 61 QuicByteCount bytes_acked) {
62 QuicTime::Delta rtt) {
63 // RTT can't be negative.
64 DCHECK_LE(0, rtt.ToMicroseconds());
65
66 data_in_flight_ -= bytes_acked; 62 data_in_flight_ -= bytes_acked;
67 if (rtt.IsInfinite()) {
68 return;
69 }
70 latest_rtt_ = rtt;
71 } 63 }
72 64
73 void FixRateSender::OnPacketLost(QuicPacketSequenceNumber /*sequence_number*/, 65 void FixRateSender::OnPacketLost(QuicPacketSequenceNumber /*sequence_number*/,
74 QuicTime /*ack_receive_time*/) { 66 QuicTime /*ack_receive_time*/) {
75 // Ignore losses for fix rate sender. 67 // Ignore losses for fix rate sender.
76 } 68 }
77 69
78 bool FixRateSender::OnPacketSent( 70 bool FixRateSender::OnPacketSent(
79 QuicTime sent_time, 71 QuicTime sent_time,
80 QuicPacketSequenceNumber /*sequence_number*/, 72 QuicPacketSequenceNumber /*sequence_number*/,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 QuicByteCount window_size_bytes = bitrate_.ToBytesPerPeriod( 112 QuicByteCount window_size_bytes = bitrate_.ToBytesPerPeriod(
121 QuicTime::Delta::FromMicroseconds(kWindowSizeUs)); 113 QuicTime::Delta::FromMicroseconds(kWindowSizeUs));
122 // Make sure window size is not less than a packet. 114 // Make sure window size is not less than a packet.
123 return max(kDefaultMaxPacketSize, window_size_bytes); 115 return max(kDefaultMaxPacketSize, window_size_bytes);
124 } 116 }
125 117
126 QuicBandwidth FixRateSender::BandwidthEstimate() const { 118 QuicBandwidth FixRateSender::BandwidthEstimate() const {
127 return bitrate_; 119 return bitrate_;
128 } 120 }
129 121
122 void FixRateSender::UpdateRtt(QuicTime::Delta rtt_sample) {
123 // RTT can't be negative.
124 DCHECK_LE(0, rtt_sample.ToMicroseconds());
125 if (rtt_sample.IsInfinite()) {
126 return;
127 }
128 latest_rtt_ = rtt_sample;
129 }
130
130 QuicTime::Delta FixRateSender::SmoothedRtt() const { 131 QuicTime::Delta FixRateSender::SmoothedRtt() const {
131 // TODO(satyamshekhar): Calculate and return smoothed rtt. 132 // TODO(satyamshekhar): Calculate and return smoothed rtt.
132 return latest_rtt_; 133 return latest_rtt_;
133 } 134 }
134 135
135 QuicTime::Delta FixRateSender::RetransmissionDelay() const { 136 QuicTime::Delta FixRateSender::RetransmissionDelay() const {
136 // TODO(pwestin): Calculate and return retransmission delay. 137 // TODO(pwestin): Calculate and return retransmission delay.
137 // Use 2 * the latest RTT for now. 138 // Use 2 * the latest RTT for now.
138 return latest_rtt_.Add(latest_rtt_); 139 return latest_rtt_.Add(latest_rtt_);
139 } 140 }
140 141
141 QuicByteCount FixRateSender::GetCongestionWindow() const { 142 QuicByteCount FixRateSender::GetCongestionWindow() const {
142 return 0; 143 return 0;
143 } 144 }
144 145
145 } // namespace net 146 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/congestion_control/fix_rate_sender.h ('k') | net/quic/congestion_control/fix_rate_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698