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;
|
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
|
} // namespace quic
|
||||||
|
|||||||
@@ -59,40 +59,10 @@ void increaseNextPacketNum(
|
|||||||
* Update largestReceivedPacketNum in ackState with packetNum. Return the
|
* Update largestReceivedPacketNum in ackState with packetNum. Return the
|
||||||
* distance from the next packet number we expect to receive.
|
* distance from the next packet number we expect to receive.
|
||||||
*/
|
*/
|
||||||
template <typename ClockType = quic::Clock>
|
|
||||||
uint64_t updateLargestReceivedPacketNum(
|
uint64_t updateLargestReceivedPacketNum(
|
||||||
AckState& ackState,
|
AckState& ackState,
|
||||||
PacketNum packetNum,
|
PacketNum packetNum,
|
||||||
TimePoint receivedTime) {
|
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(ClockType::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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::deque<OutstandingPacket>::iterator getNextOutstandingPacket(
|
std::deque<OutstandingPacket>::iterator getNextOutstandingPacket(
|
||||||
QuicConnectionStateBase& conn,
|
QuicConnectionStateBase& conn,
|
||||||
|
|||||||
Reference in New Issue
Block a user