forked from quic-go/quic-go
rename LargestObserved to LargestAcked in QUIC 34 SentPacketHandler
This commit is contained in:
@@ -16,7 +16,7 @@ type SentPacketHandler interface {
|
||||
DequeuePacketForRetransmission() (packet *Packet)
|
||||
|
||||
BytesInFlight() protocol.ByteCount
|
||||
GetLargestObserved() protocol.PacketNumber
|
||||
GetLargestAcked() protocol.PacketNumber
|
||||
|
||||
CongestionAllowsSending() bool
|
||||
CheckForError() error
|
||||
|
||||
@@ -32,7 +32,7 @@ type sentPacketHandler struct {
|
||||
lastSentPacketNumber protocol.PacketNumber
|
||||
lastSentPacketTime time.Time
|
||||
highestInOrderAckedPacketNumber protocol.PacketNumber
|
||||
LargestObserved protocol.PacketNumber
|
||||
LargestAcked protocol.PacketNumber
|
||||
|
||||
// TODO: Move into separate class as in chromium
|
||||
packetHistory map[protocol.PacketNumber]*Packet
|
||||
@@ -152,14 +152,14 @@ func (h *sentPacketHandler) ReceivedAck(ackFrame *frames.AckFrameNew) error {
|
||||
return errAckForUnsentPacket
|
||||
}
|
||||
|
||||
if ackFrame.LargestAcked <= h.LargestObserved { // duplicate or out-of-order AckFrame
|
||||
if ackFrame.LargestAcked <= h.LargestAcked { // duplicate or out-of-order AckFrame
|
||||
return ErrDuplicateOrOutOfOrderAck
|
||||
}
|
||||
|
||||
h.LargestObserved = ackFrame.LargestAcked
|
||||
h.LargestAcked = ackFrame.LargestAcked
|
||||
|
||||
// Update the RTT
|
||||
timeDelta := time.Now().Sub(h.packetHistory[h.LargestObserved].sendTime)
|
||||
timeDelta := time.Now().Sub(h.packetHistory[h.LargestAcked].sendTime)
|
||||
// TODO: Don't always update RTT
|
||||
h.rttStats.UpdateRTT(timeDelta, ackFrame.DelayTime, time.Now())
|
||||
if utils.Debug() {
|
||||
@@ -247,8 +247,8 @@ func (h *sentPacketHandler) BytesInFlight() protocol.ByteCount {
|
||||
return h.bytesInFlight
|
||||
}
|
||||
|
||||
func (h *sentPacketHandler) GetLargestObserved() protocol.PacketNumber {
|
||||
return h.LargestObserved
|
||||
func (h *sentPacketHandler) GetLargestAcked() protocol.PacketNumber {
|
||||
return h.LargestAcked
|
||||
}
|
||||
|
||||
func (h *sentPacketHandler) CongestionAllowsSending() bool {
|
||||
|
||||
@@ -83,6 +83,11 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
Expect(handler.stopWaitingManager.(*mockStopWaiting).receivedAckForPacketNumber).To(Equal(protocol.PacketNumber(2)))
|
||||
})
|
||||
|
||||
It("gets the LargestAcked packet number", func() {
|
||||
handler.LargestAcked = 0x1337
|
||||
Expect(handler.GetLargestAcked()).To(Equal(protocol.PacketNumber(0x1337)))
|
||||
})
|
||||
|
||||
Context("registering sent packets", func() {
|
||||
It("accepts two consecutive packets", func() {
|
||||
packet1 := Packet{PacketNumber: 1, Frames: []frames.Frame{&streamFrame}, Length: 1}
|
||||
@@ -201,7 +206,7 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
ack.LargestAcked--
|
||||
err = handler.ReceivedAck(&ack)
|
||||
Expect(err).To(MatchError(ErrDuplicateOrOutOfOrderAck))
|
||||
Expect(handler.LargestObserved).To(Equal(protocol.PacketNumber(largestAcked)))
|
||||
Expect(handler.LargestAcked).To(Equal(protocol.PacketNumber(largestAcked)))
|
||||
Expect(handler.BytesInFlight()).To(Equal(protocol.ByteCount(len(packets) - 3)))
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user