forked from quic-go/quic-go
ackhandler: remove unused time from receivedPacketHandler.ReceivedPacket (#5277)
* ackhandler: remove unused time from receivedPacketHandler.ReceivedPacket No functional change expected. * fix typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * also fix typo in tests --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -41,14 +41,14 @@ func (h *receivedPacketHandler) ReceivedPacket(
|
|||||||
h.sentPackets.ReceivedPacket(encLevel, rcvTime)
|
h.sentPackets.ReceivedPacket(encLevel, rcvTime)
|
||||||
switch encLevel {
|
switch encLevel {
|
||||||
case protocol.EncryptionInitial:
|
case protocol.EncryptionInitial:
|
||||||
return h.initialPackets.ReceivedPacket(pn, ecn, rcvTime, ackEliciting)
|
return h.initialPackets.ReceivedPacket(pn, ecn, ackEliciting)
|
||||||
case protocol.EncryptionHandshake:
|
case protocol.EncryptionHandshake:
|
||||||
// The Handshake packet number space might already have been dropped as a result
|
// The Handshake packet number space might already have been dropped as a result
|
||||||
// of processing the CRYPTO frame that was contained in this packet.
|
// of processing the CRYPTO frame that was contained in this packet.
|
||||||
if h.handshakePackets == nil {
|
if h.handshakePackets == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return h.handshakePackets.ReceivedPacket(pn, ecn, rcvTime, ackEliciting)
|
return h.handshakePackets.ReceivedPacket(pn, ecn, ackEliciting)
|
||||||
case protocol.Encryption0RTT:
|
case protocol.Encryption0RTT:
|
||||||
if h.lowest1RTTPacket != protocol.InvalidPacketNumber && pn > h.lowest1RTTPacket {
|
if h.lowest1RTTPacket != protocol.InvalidPacketNumber && pn > h.lowest1RTTPacket {
|
||||||
return fmt.Errorf("received packet number %d on a 0-RTT packet after receiving %d on a 1-RTT packet", pn, h.lowest1RTTPacket)
|
return fmt.Errorf("received packet number %d on a 0-RTT packet after receiving %d on a 1-RTT packet", pn, h.lowest1RTTPacket)
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ func newReceivedPacketTracker() *receivedPacketTracker {
|
|||||||
return &receivedPacketTracker{packetHistory: *newReceivedPacketHistory()}
|
return &receivedPacketTracker{packetHistory: *newReceivedPacketHistory()}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *receivedPacketTracker) ReceivedPacket(pn protocol.PacketNumber, ecn protocol.ECN, rcvTime time.Time, ackEliciting bool) error {
|
func (h *receivedPacketTracker) ReceivedPacket(pn protocol.PacketNumber, ecn protocol.ECN, ackEliciting bool) error {
|
||||||
if isNew := h.packetHistory.ReceivedPacket(pn); !isNew {
|
if isNew := h.packetHistory.ReceivedPacket(pn); !isNew {
|
||||||
return fmt.Errorf("recevedPacketTracker BUG: ReceivedPacket called for old / duplicate packet %d", pn)
|
return fmt.Errorf("receivedPacketTracker BUG: ReceivedPacket called for old / duplicate packet %d", pn)
|
||||||
}
|
}
|
||||||
|
|
||||||
//nolint:exhaustive // Only need to count ECT(0), ECT(1) and ECN-CE.
|
//nolint:exhaustive // Only need to count ECT(0), ECT(1) and ECN-CE.
|
||||||
@@ -102,7 +102,7 @@ func newAppDataReceivedPacketTracker(logger utils.Logger) *appDataReceivedPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (h *appDataReceivedPacketTracker) ReceivedPacket(pn protocol.PacketNumber, ecn protocol.ECN, rcvTime time.Time, ackEliciting bool) error {
|
func (h *appDataReceivedPacketTracker) ReceivedPacket(pn protocol.PacketNumber, ecn protocol.ECN, rcvTime time.Time, ackEliciting bool) error {
|
||||||
if err := h.receivedPacketTracker.ReceivedPacket(pn, ecn, rcvTime, ackEliciting); err != nil {
|
if err := h.receivedPacketTracker.ReceivedPacket(pn, ecn, ackEliciting); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if pn >= h.largestObserved {
|
if pn >= h.largestObserved {
|
||||||
|
|||||||
@@ -13,21 +13,20 @@ import (
|
|||||||
|
|
||||||
func TestReceivedPacketTrackerGenerateACKs(t *testing.T) {
|
func TestReceivedPacketTrackerGenerateACKs(t *testing.T) {
|
||||||
tracker := newReceivedPacketTracker()
|
tracker := newReceivedPacketTracker()
|
||||||
baseTime := time.Now().Add(-10 * time.Second)
|
|
||||||
|
|
||||||
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(3), protocol.ECNNon, baseTime, true))
|
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(3), protocol.ECNNon, true))
|
||||||
ack := tracker.GetAckFrame()
|
ack := tracker.GetAckFrame()
|
||||||
require.NotNil(t, ack)
|
require.NotNil(t, ack)
|
||||||
require.Equal(t, []wire.AckRange{{Smallest: 3, Largest: 3}}, ack.AckRanges)
|
require.Equal(t, []wire.AckRange{{Smallest: 3, Largest: 3}}, ack.AckRanges)
|
||||||
require.Zero(t, ack.DelayTime)
|
require.Zero(t, ack.DelayTime)
|
||||||
|
|
||||||
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(4), protocol.ECNNon, baseTime.Add(time.Second), true))
|
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(4), protocol.ECNNon, true))
|
||||||
ack = tracker.GetAckFrame()
|
ack = tracker.GetAckFrame()
|
||||||
require.NotNil(t, ack)
|
require.NotNil(t, ack)
|
||||||
require.Equal(t, []wire.AckRange{{Smallest: 3, Largest: 4}}, ack.AckRanges)
|
require.Equal(t, []wire.AckRange{{Smallest: 3, Largest: 4}}, ack.AckRanges)
|
||||||
require.Zero(t, ack.DelayTime)
|
require.Zero(t, ack.DelayTime)
|
||||||
|
|
||||||
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(1), protocol.ECNNon, baseTime.Add(time.Second), true))
|
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(1), protocol.ECNNon, true))
|
||||||
ack = tracker.GetAckFrame()
|
ack = tracker.GetAckFrame()
|
||||||
require.NotNil(t, ack)
|
require.NotNil(t, ack)
|
||||||
require.Equal(t, []wire.AckRange{
|
require.Equal(t, []wire.AckRange{
|
||||||
@@ -37,10 +36,10 @@ func TestReceivedPacketTrackerGenerateACKs(t *testing.T) {
|
|||||||
require.Zero(t, ack.DelayTime)
|
require.Zero(t, ack.DelayTime)
|
||||||
|
|
||||||
// non-ack-eliciting packets don't trigger ACKs
|
// non-ack-eliciting packets don't trigger ACKs
|
||||||
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(10), protocol.ECNNon, baseTime.Add(5*time.Second), false))
|
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(10), protocol.ECNNon, false))
|
||||||
require.Nil(t, tracker.GetAckFrame())
|
require.Nil(t, tracker.GetAckFrame())
|
||||||
|
|
||||||
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(11), protocol.ECNNon, baseTime.Add(10*time.Second), true))
|
require.NoError(t, tracker.ReceivedPacket(protocol.PacketNumber(11), protocol.ECNNon, true))
|
||||||
ack = tracker.GetAckFrame()
|
ack = tracker.GetAckFrame()
|
||||||
require.NotNil(t, ack)
|
require.NotNil(t, ack)
|
||||||
require.Equal(t, []wire.AckRange{
|
require.Equal(t, []wire.AckRange{
|
||||||
@@ -181,6 +180,6 @@ func TestAppDataReceivedPacketTrackerIgnoreBelow(t *testing.T) {
|
|||||||
// make sure that old packets are not accepted
|
// make sure that old packets are not accepted
|
||||||
require.ErrorContains(t,
|
require.ErrorContains(t,
|
||||||
tr.ReceivedPacket(4, protocol.ECNNon, time.Now(), true),
|
tr.ReceivedPacket(4, protocol.ECNNon, time.Now(), true),
|
||||||
"recevedPacketTracker BUG: ReceivedPacket called for old / duplicate packet 4",
|
"receivedPacketTracker BUG: ReceivedPacket called for old / duplicate packet 4",
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user