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

Unified Diff: net/quic/quic_packet_generator.cc

Issue 1784903003: Remove FEC from send path. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@114770052
Patch Set: Restore accidentally removed OnRttChanged call Created 4 years, 9 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_packet_generator.h ('k') | net/quic/quic_packet_generator_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_packet_generator.cc
diff --git a/net/quic/quic_packet_generator.cc b/net/quic/quic_packet_generator.cc
index 75e1c5939f4b19e0bd24b6c0cabd0d6fc060adfc..f4b0243a9d9a7e92959db25be7c80c1224ed0c1d 100644
--- a/net/quic/quic_packet_generator.cc
+++ b/net/quic/quic_packet_generator.cc
@@ -6,7 +6,6 @@
#include "base/logging.h"
#include "net/quic/quic_bug_tracker.h"
-#include "net/quic/quic_fec_group.h"
#include "net/quic/quic_flags.h"
#include "net/quic/quic_utils.h"
@@ -34,15 +33,6 @@ QuicPacketGenerator::~QuicPacketGenerator() {
QuicUtils::DeleteFrames(&queued_control_frames_);
}
-void QuicPacketGenerator::OnCongestionWindowChange(
- QuicPacketCount max_packets_in_flight) {
- packet_creator_.OnCongestionWindowChange(max_packets_in_flight);
-}
-
-void QuicPacketGenerator::OnRttChange(QuicTime::Delta rtt) {
- packet_creator_.OnRttChange(rtt);
-}
-
void QuicPacketGenerator::SetShouldSendAck(bool also_send_stop_waiting) {
if (packet_creator_.has_ack()) {
// Ack already queued, nothing to do.
@@ -56,12 +46,12 @@ void QuicPacketGenerator::SetShouldSendAck(bool also_send_stop_waiting) {
should_send_ack_ = true;
should_send_stop_waiting_ = also_send_stop_waiting;
- SendQueuedFrames(/*flush=*/false, /*is_fec_timeout=*/false);
+ SendQueuedFrames(/*flush=*/false);
}
void QuicPacketGenerator::AddControlFrame(const QuicFrame& frame) {
queued_control_frames_.push_back(frame);
- SendQueuedFrames(/*flush=*/false, /*is_fec_timeout=*/false);
+ SendQueuedFrames(/*flush=*/false);
}
QuicConsumedData QuicPacketGenerator::ConsumeData(
@@ -69,14 +59,13 @@ QuicConsumedData QuicPacketGenerator::ConsumeData(
QuicIOVector iov,
QuicStreamOffset offset,
bool fin,
- FecProtection fec_protection,
QuicAckListenerInterface* listener) {
bool has_handshake = id == kCryptoStreamId;
// To make reasoning about crypto frames easier, we don't combine them with
// other retransmittable frames in a single packet.
const bool flush =
has_handshake && packet_creator_.HasPendingRetransmittableFrames();
- SendQueuedFrames(flush, /*is_fec_timeout=*/false);
+ SendQueuedFrames(flush);
size_t total_bytes_consumed = 0;
bool fin_consumed = false;
@@ -95,7 +84,7 @@ QuicConsumedData QuicPacketGenerator::ConsumeData(
QuicFrame frame;
if (!packet_creator_.ConsumeData(id, iov, total_bytes_consumed,
offset + total_bytes_consumed, fin,
- has_handshake, &frame, fec_protection)) {
+ has_handshake, &frame)) {
// The creator is always flushed if there's not enough room for a new
// stream frame before ConsumeData, so ConsumeData should always succeed.
QUIC_BUG << "Failed to ConsumeData, stream:" << id;
@@ -113,9 +102,6 @@ QuicConsumedData QuicPacketGenerator::ConsumeData(
(bytes_consumed > 0 && packet_creator_.HasPendingFrames()));
if (!InBatchMode()) {
- // TODO(rtenneti): remove MaybeSendFecPacketAndCloseGroup() from inside
- // SerializeAndSendPacket() and make it an explicit call here (and
- // elsewhere where we call SerializeAndSendPacket?).
packet_creator_.Flush();
}
@@ -131,14 +117,9 @@ QuicConsumedData QuicPacketGenerator::ConsumeData(
// Don't allow the handshake to be bundled with other retransmittable frames.
if (has_handshake) {
- SendQueuedFrames(/*flush=*/true, /*is_fec_timeout=*/false);
+ SendQueuedFrames(/*flush=*/true);
}
- // Try to close FEC group since we've either run out of data to send or we're
- // blocked.
- packet_creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/false,
- /*is_fec_timeout=*/false);
-
DCHECK(InBatchMode() || !packet_creator_.HasPendingFrames());
return QuicConsumedData(total_bytes_consumed, fin_consumed);
}
@@ -182,7 +163,7 @@ bool QuicPacketGenerator::CanSendWithNextPendingFrameAddition() const {
return delegate_->ShouldGeneratePacket(retransmittable, NOT_HANDSHAKE);
}
-void QuicPacketGenerator::SendQueuedFrames(bool flush, bool is_fec_timeout) {
+void QuicPacketGenerator::SendQueuedFrames(bool flush) {
// Only add pending frames if we are SURE we can then send the whole packet.
while (HasPendingFrames() &&
(flush || CanSendWithNextPendingFrameAddition())) {
@@ -191,23 +172,6 @@ void QuicPacketGenerator::SendQueuedFrames(bool flush, bool is_fec_timeout) {
if (flush || !InBatchMode()) {
packet_creator_.Flush();
}
- packet_creator_.MaybeSendFecPacketAndCloseGroup(flush, is_fec_timeout);
-}
-
-void QuicPacketGenerator::OnFecTimeout() {
- DCHECK(!InBatchMode());
- if (!packet_creator_.ShouldSendFec(true)) {
- QUIC_BUG << "No FEC packet to send on FEC timeout.";
- return;
- }
- // Flush out any pending frames in the generator and the creator, and then
- // send out FEC packet.
- SendQueuedFrames(/*flush=*/true, /*is_fec_timeout=*/true);
-}
-
-QuicTime::Delta QuicPacketGenerator::GetFecTimeout(
- QuicPacketNumber packet_number) {
- return packet_creator_.GetFecTimeout(packet_number);
}
bool QuicPacketGenerator::InBatchMode() {
@@ -220,11 +184,11 @@ void QuicPacketGenerator::StartBatchOperations() {
void QuicPacketGenerator::FinishBatchOperations() {
batch_mode_ = false;
- SendQueuedFrames(/*flush=*/false, /*is_fec_timeout=*/false);
+ SendQueuedFrames(/*flush=*/false);
}
void QuicPacketGenerator::FlushAllQueuedFrames() {
- SendQueuedFrames(/*flush=*/true, /*is_fec_timeout=*/false);
+ SendQueuedFrames(/*flush=*/true);
}
bool QuicPacketGenerator::HasQueuedFrames() const {
@@ -285,12 +249,9 @@ QuicByteCount QuicPacketGenerator::GetCurrentMaxPacketLength() const {
void QuicPacketGenerator::SetMaxPacketLength(QuicByteCount length, bool force) {
// If we cannot immediately set new maximum packet length, and the |force|
- // flag is set, we have to flush the contents of the queue and close existing
- // FEC group.
+ // flag is set, we have to flush the contents of the queue.
if (!packet_creator_.CanSetMaxPacketLength() && force) {
- SendQueuedFrames(/*flush=*/true, /*is_fec_timeout=*/false);
- packet_creator_.MaybeSendFecPacketAndCloseGroup(/*force_send_fec=*/true,
- /*is_fec_timeout=*/false);
+ SendQueuedFrames(/*flush=*/true);
DCHECK(packet_creator_.CanSetMaxPacketLength());
}
@@ -348,18 +309,4 @@ void QuicPacketGenerator::SetCurrentPath(
max_packets_in_flight);
}
-void QuicPacketGenerator::set_rtt_multiplier_for_fec_timeout(
- float rtt_multiplier_for_fec_timeout) {
- packet_creator_.set_rtt_multiplier_for_fec_timeout(
- rtt_multiplier_for_fec_timeout);
-}
-
-FecSendPolicy QuicPacketGenerator::fec_send_policy() {
- return packet_creator_.fec_send_policy();
-}
-
-void QuicPacketGenerator::set_fec_send_policy(FecSendPolicy fec_send_policy) {
- packet_creator_.set_fec_send_policy(fec_send_policy);
-}
-
} // namespace net
« no previous file with comments | « net/quic/quic_packet_generator.h ('k') | net/quic/quic_packet_generator_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698