mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-11-22 16:02:34 +03:00
Untemplatize updateLargestReceivedPacketNum
Summary: As in title. We never use the clock template. (Note: this ignores all push blocking failures!) Reviewed By: hanidamlaj Differential Revision: D41626894 fbshipit-source-id: d0c5ce923ffae09d07c04dc9aae2aea09f730b8f
This commit is contained in:
committed by
Facebook GitHub Bot
parent
7fbf860609
commit
1a41bc78cf
@@ -366,4 +366,38 @@ uint64_t maximumConnectionIdsToIssue(const QuicConnectionStateBase& conn) {
|
||||
return maximumIdsToIssue;
|
||||
}
|
||||
|
||||
uint64_t updateLargestReceivedPacketNum(
|
||||
AckState& ackState,
|
||||
PacketNum packetNum,
|
||||
TimePoint receivedTime) {
|
||||
PacketNum expectedNextPacket = 0;
|
||||
if (ackState.largestRecvdPacketNum) {
|
||||
expectedNextPacket = *ackState.largestRecvdPacketNum + 1;
|
||||
}
|
||||
ackState.largestRecvdPacketNum = std::max<PacketNum>(
|
||||
ackState.largestRecvdPacketNum.value_or(packetNum), packetNum);
|
||||
ackState.acks.insert(packetNum);
|
||||
if (ackState.largestRecvdPacketNum == packetNum) {
|
||||
ackState.largestRecvdPacketTime = receivedTime;
|
||||
}
|
||||
static_assert(Clock::is_steady, "Needs steady clock");
|
||||
|
||||
ackState.lastRecvdPacketInfo.assign({packetNum, receivedTime});
|
||||
|
||||
if (packetNum >= expectedNextPacket) {
|
||||
if (ackState.recvdPacketInfos.size() == kMaxReceivedPktsTimestampsStored) {
|
||||
ackState.recvdPacketInfos.pop_front();
|
||||
}
|
||||
ackState.recvdPacketInfos.emplace_back(
|
||||
RecvdPacketInfo{packetNum, receivedTime});
|
||||
}
|
||||
|
||||
if (expectedNextPacket) {
|
||||
return (packetNum > expectedNextPacket) ? packetNum - expectedNextPacket
|
||||
: expectedNextPacket - packetNum;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace quic
|
||||
|
||||
Reference in New Issue
Block a user