1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-27 03:41:14 +03:00

Remove partial reliability from mvfst.

Summary: As in title.

Reviewed By: yangchi

Differential Revision: D26701886

fbshipit-source-id: c7b36c616200b17fbf697eff4ba0d18695effb45
This commit is contained in:
Matt Joras
2021-03-03 15:29:11 -08:00
committed by Facebook GitHub Bot
parent 94676b44f8
commit 382c1cdcc6
55 changed files with 27 additions and 2686 deletions

View File

@@ -227,12 +227,10 @@ const BufQueue* PacketRebuilder::cloneRetransmissionBuffer(
const WriteStreamFrame& frame,
const QuicStreamState* stream) {
/**
* StreamBuffer is removed from retransmissionBuffer in 4 cases.
* StreamBuffer is removed from retransmissionBuffer in 3 cases.
* 1: After send or receive RST.
* 2: Packet containing the buffer gets acked.
* 3: Packet containing the buffer is marked loss.
* 4: Skip (MIN_DATA or EXPIRED_DATA) frame is received with offset larger
* than what's in the retransmission buffer.
*
* Checking retransmittable() should cover first case. The latter three cases
* have to be covered by making sure we do not clone an already acked, lost or
@@ -242,12 +240,10 @@ const BufQueue* PacketRebuilder::cloneRetransmissionBuffer(
DCHECK(retransmittable(*stream));
auto iter = stream->retransmissionBuffer.find(frame.offset);
if (iter != stream->retransmissionBuffer.end()) {
if (streamFrameMatchesRetransmitBuffer(*stream, frame, *iter->second)) {
DCHECK(!frame.len || !iter->second->data.empty())
<< "WriteStreamFrame cloning: frame is not empty but StreamBuffer has"
<< " empty data. " << conn_;
return frame.len ? &(iter->second->data) : nullptr;
}
DCHECK(!frame.len || !iter->second->data.empty())
<< "WriteStreamFrame cloning: frame is not empty but StreamBuffer has"
<< " empty data. " << conn_;
return frame.len ? &(iter->second->data) : nullptr;
}
return nullptr;
}