forked from quic-go/quic-go
rename AckFrame to AckFrameLegacy
This commit is contained in:
@@ -14,8 +14,8 @@ var (
|
||||
errTooManyNackRanges = errors.New("AckFrame: Too many NACK ranges. Truncating not implemented.")
|
||||
)
|
||||
|
||||
// An AckFrame in QUIC
|
||||
type AckFrame struct {
|
||||
// An AckFrameLegacy is an ACK Frame in legacy format (ACK frame for QUIC <= 33)
|
||||
type AckFrameLegacy struct {
|
||||
LargestObserved protocol.PacketNumber
|
||||
Entropy byte
|
||||
NackRanges []NackRange // has to be ordered. The NACK range with the highest FirstPacketNumber goes first, the NACK range with the lowest FirstPacketNumber goes last
|
||||
@@ -26,7 +26,7 @@ type AckFrame struct {
|
||||
}
|
||||
|
||||
// Write writes an ACK frame.
|
||||
func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error {
|
||||
func (f *AckFrameLegacy) Write(b *bytes.Buffer, version protocol.VersionNumber) error {
|
||||
largestObservedLen := protocol.GetPacketNumberLength(f.LargestObserved)
|
||||
|
||||
typeByte := uint8(0x40)
|
||||
@@ -108,7 +108,7 @@ func (f *AckFrame) Write(b *bytes.Buffer, version protocol.VersionNumber) error
|
||||
}
|
||||
|
||||
// MinLength of a written frame
|
||||
func (f *AckFrame) MinLength(version protocol.VersionNumber) (protocol.ByteCount, error) {
|
||||
func (f *AckFrameLegacy) MinLength(version protocol.VersionNumber) (protocol.ByteCount, error) {
|
||||
l := 1 + 1 + 2 + 1 + 1 + 4 // 1 TypeByte, 1 Entropy, 2 ACK delay time, 1 Num Timestamp, 1 Delta Largest Observed, 4 FirstTimestamp
|
||||
l += int(protocol.GetPacketNumberLength(f.LargestObserved))
|
||||
l += (1 + 2) * 0 /* TODO: num_timestamps */
|
||||
@@ -120,7 +120,7 @@ func (f *AckFrame) MinLength(version protocol.VersionNumber) (protocol.ByteCount
|
||||
}
|
||||
|
||||
// HasNACK returns if the frame has NACK ranges
|
||||
func (f *AckFrame) HasNACK() bool {
|
||||
func (f *AckFrameLegacy) HasNACK() bool {
|
||||
if len(f.NackRanges) > 0 {
|
||||
return true
|
||||
}
|
||||
@@ -128,16 +128,16 @@ func (f *AckFrame) HasNACK() bool {
|
||||
}
|
||||
|
||||
// GetHighestInOrderPacketNumber gets the highest in order packet number that is confirmed by this ACK
|
||||
func (f *AckFrame) GetHighestInOrderPacketNumber() protocol.PacketNumber {
|
||||
func (f *AckFrameLegacy) GetHighestInOrderPacketNumber() protocol.PacketNumber {
|
||||
if f.HasNACK() {
|
||||
return (f.NackRanges[len(f.NackRanges)-1].FirstPacketNumber - 1)
|
||||
}
|
||||
return f.LargestObserved
|
||||
}
|
||||
|
||||
// ParseAckFrame reads an ACK frame
|
||||
func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame, error) {
|
||||
frame := &AckFrame{}
|
||||
// ParseAckFrameLegacy reads a legacy ACK frame
|
||||
func ParseAckFrameLegacy(r *bytes.Reader, version protocol.VersionNumber) (*AckFrameLegacy, error) {
|
||||
frame := &AckFrameLegacy{}
|
||||
|
||||
typeByte, err := r.ReadByte()
|
||||
if err != nil {
|
||||
@@ -283,7 +283,7 @@ func ParseAckFrame(r *bytes.Reader, version protocol.VersionNumber) (*AckFrame,
|
||||
|
||||
// numWrittenNackRanges calculates the number of NackRanges that are about to be written
|
||||
// this number is different from len(f.NackRanges) for the case of contiguous NACK ranges
|
||||
func (f *AckFrame) numWrittenNackRanges() uint64 {
|
||||
func (f *AckFrameLegacy) numWrittenNackRanges() uint64 {
|
||||
var numRanges uint64
|
||||
for _, nackRange := range f.NackRanges {
|
||||
rangeLength := nackRange.Len()
|
||||
@@ -296,7 +296,7 @@ func (f *AckFrame) numWrittenNackRanges() uint64 {
|
||||
return numRanges
|
||||
}
|
||||
|
||||
func (f *AckFrame) validateNackRanges() bool {
|
||||
func (f *AckFrameLegacy) validateNackRanges() bool {
|
||||
// check the validity of every single NACK range
|
||||
for _, nackRange := range f.NackRanges {
|
||||
if nackRange.FirstPacketNumber > nackRange.LastPacketNumber {
|
||||
@@ -14,7 +14,7 @@ var _ = Describe("AckFrame", func() {
|
||||
Context("when parsing", func() {
|
||||
It("accepts sample frame", func() {
|
||||
b := bytes.NewReader([]byte{0x40, 0xA4, 0x03, 0x23, 0x45, 0x01, 0x02, 0xFF, 0xEE, 0xDD, 0xCC})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.Entropy).To(Equal(byte(0xA4)))
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(0x03)))
|
||||
@@ -25,7 +25,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("parses a frame with a 48 bit packet number", func() {
|
||||
b := bytes.NewReader([]byte{0x4C, 0xA4, 0x37, 0x13, 0xAD, 0xFB, 0xCA, 0xDE, 0x23, 0x45, 0x01, 0x02, 0xFF, 0xEE, 0xDD, 0xCC})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(0xDECAFBAD1337)))
|
||||
Expect(b.Len()).To(Equal(0))
|
||||
@@ -33,14 +33,14 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("completely parses a frame with multiple timestamps", func() {
|
||||
b := bytes.NewReader([]byte{0x40, 0xA4, 0x03, 0x23, 0x45, 0x03, 0x02, 0xFF, 0xEE, 0xDD, 0xCC, 0x12, 0x34, 0x56, 0x78, 0x90, 0xA0})
|
||||
_, err := ParseAckFrame(b, protocol.Version32)
|
||||
_, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(b.Len()).To(Equal(0))
|
||||
})
|
||||
|
||||
It("parses a frame containing one NACK range", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x8, 0x3, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x1, 0x1, 0x1})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(frame.NackRanges).To(HaveLen(1))
|
||||
@@ -52,7 +52,7 @@ var _ = Describe("AckFrame", func() {
|
||||
It("parses a frame containing one NACK range with a 48 bit LargestObserved and missingPacketSequenceNumberDelta", func() {
|
||||
var rangeLength uint64 = 3
|
||||
b := bytes.NewReader([]byte{(0x4C | 0x20 | 0x03), 0x08, 0x37, 0x13, 0xAD, 0xFB, 0xCA, 0xDE, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x1, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE, byte(rangeLength)})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(0xDECAFBAD1337)))
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
@@ -64,7 +64,7 @@ var _ = Describe("AckFrame", func() {
|
||||
It("parses a frame containing multiple NACK ranges", func() {
|
||||
// sent packets 1, 3, 7, 15
|
||||
b := bytes.NewReader([]byte{0x60, 0x2, 0xf, 0xb8, 0x1, 0x1, 0x0, 0xe5, 0x58, 0x4, 0x0, 0x3, 0x1, 0x6, 0x1, 0x2, 0x1, 0x0})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(frame.NackRanges).To(HaveLen(3))
|
||||
@@ -77,13 +77,13 @@ var _ = Describe("AckFrame", func() {
|
||||
It("rejects a packet with an invalid NACK range", func() {
|
||||
// LargestObserved: 8, NackRange: (8-7-3) to (8-7)
|
||||
b := bytes.NewReader([]byte{0x60, 0x8, 0x7, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x1, 0x7, 0x3})
|
||||
_, err := ParseAckFrame(b, protocol.Version32)
|
||||
_, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).To(MatchError(errInvalidNackRanges))
|
||||
})
|
||||
|
||||
It("accepts truncated acks", func() {
|
||||
b := bytes.NewReader([]byte{0x50, 0xA4, 0x03, 0x23, 0x45})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.Truncated).To(BeTrue())
|
||||
Expect(b.Len()).To(BeZero())
|
||||
@@ -91,7 +91,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("parses a frame with the largest observed missing", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x2, 0xf, 0xb8, 0x1, 0x1, 0x0, 0xe5, 0x58, 0x4, 0x0, 0x1, 0x0, 0x0})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(frame.NackRanges).To(HaveLen(1))
|
||||
@@ -102,7 +102,7 @@ var _ = Describe("AckFrame", func() {
|
||||
Context("support for version 31", func() {
|
||||
It("support a simple ACK with one NACK range, version 31", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x8, 0x3, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0})
|
||||
frame, err := ParseAckFrame(b, protocol.Version31)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version31)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(frame.NackRanges).To(HaveLen(1))
|
||||
@@ -113,7 +113,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("support a simple ACK with multiple NACK ranges, version 31", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x8, 0x9, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x2, 0x1, 0x1, 0x2, 0x0, 0x0})
|
||||
frame, err := ParseAckFrame(b, protocol.Version31)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version31)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.HasNACK()).To(Equal(true))
|
||||
Expect(frame.NackRanges).To(HaveLen(2))
|
||||
@@ -125,7 +125,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("reads the complete ACK frame if it contains revived packet numbers", func() {
|
||||
b := bytes.NewReader([]byte{0x60, 0x8, 0x3, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x1, 0x1, 0x1, 0x3, 0x5, 0x6, 0x7})
|
||||
_, err := ParseAckFrame(b, protocol.Version31)
|
||||
_, err := ParseAckFrameLegacy(b, protocol.Version31)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(b.Len()).To(Equal(0))
|
||||
})
|
||||
@@ -134,7 +134,7 @@ var _ = Describe("AckFrame", func() {
|
||||
Context("contiguous NACK ranges", func() {
|
||||
It("parses a frame with a contiguous NACK range spanning two fields", func() {
|
||||
b := bytes.NewReader([]byte{0x64, 0x8, 0x2E, 0x01, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x2, 0x1, 0x2b, 0x0, 0xff})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(302)))
|
||||
Expect(frame.NackRanges).To(HaveLen(1))
|
||||
@@ -143,7 +143,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("parses a frame with a contiguous NACK range spanning more than two fields", func() {
|
||||
b := bytes.NewReader([]byte{0x64, 0x8, 0x16, 0x05, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x6, 0x1, 0x13, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(1302)))
|
||||
Expect(frame.NackRanges).To(HaveLen(1))
|
||||
@@ -152,7 +152,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("parses a frame with two contiguous NACK ranges", func() {
|
||||
b := bytes.NewReader([]byte{0x64, 0x8, 0x23, 0x03, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x4, 0x1, 0x8f, 0x0, 0xff, 0x1, 0x8f, 0x0, 0xff})
|
||||
frame, err := ParseAckFrame(b, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(protocol.PacketNumber(803)))
|
||||
Expect(frame.NackRanges).To(HaveLen(2))
|
||||
@@ -163,7 +163,7 @@ var _ = Describe("AckFrame", func() {
|
||||
It("rejects a frame with an invalid NACK range", func() {
|
||||
// LargestObserved: 280, but NACK range is 301 packets long
|
||||
b := bytes.NewReader([]byte{0x64, 0x8, 0x18, 0x01, 0x72, 0x1, 0x1, 0x0, 0xc0, 0x15, 0x0, 0x0, 0x2, 0x1, 0x2b, 0x0, 0xff})
|
||||
_, err := ParseAckFrame(b, protocol.Version32)
|
||||
_, err := ParseAckFrameLegacy(b, protocol.Version32)
|
||||
Expect(err).To(MatchError(errInvalidNackRanges))
|
||||
})
|
||||
})
|
||||
@@ -171,13 +171,13 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
Context("GetHighestInOrderPacket", func() {
|
||||
It("gets the highest in order packet number for an ACK without NACK ranges", func() {
|
||||
frame := AckFrame{LargestObserved: 5}
|
||||
frame := AckFrameLegacy{LargestObserved: 5}
|
||||
Expect(frame.GetHighestInOrderPacketNumber()).To(Equal(protocol.PacketNumber(5)))
|
||||
})
|
||||
|
||||
It("gets the highest in order packet number for an ACK with one NACK ranges", func() {
|
||||
nackRange := NackRange{FirstPacketNumber: 3, LastPacketNumber: 4}
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
LargestObserved: 6,
|
||||
NackRanges: []NackRange{nackRange},
|
||||
}
|
||||
@@ -190,7 +190,7 @@ var _ = Describe("AckFrame", func() {
|
||||
{FirstPacketNumber: 7, LastPacketNumber: 7},
|
||||
{FirstPacketNumber: 4, LastPacketNumber: 5},
|
||||
}
|
||||
frame := &AckFrame{
|
||||
frame := &AckFrameLegacy{
|
||||
LargestObserved: 15,
|
||||
NackRanges: nackRanges,
|
||||
}
|
||||
@@ -201,7 +201,7 @@ var _ = Describe("AckFrame", func() {
|
||||
Context("NACK range validator", func() {
|
||||
It("rejects NACKs with FirstPacketNumber greater than LastPacketNumber", func() {
|
||||
nackRange := NackRange{FirstPacketNumber: 7, LastPacketNumber: 6}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 10,
|
||||
NackRanges: []NackRange{nackRange},
|
||||
}
|
||||
@@ -210,7 +210,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("rejects NACKs with FirstPacketNumber greater than LargestObserved", func() {
|
||||
nackRange := NackRange{FirstPacketNumber: 6, LastPacketNumber: 6}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 5,
|
||||
NackRanges: []NackRange{nackRange},
|
||||
}
|
||||
@@ -219,7 +219,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
It("does not reject NACKs with LasterPacketNumber equal to LargestObserved", func() {
|
||||
nackRange := NackRange{FirstPacketNumber: 7, LastPacketNumber: 7}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 7,
|
||||
NackRanges: []NackRange{nackRange},
|
||||
}
|
||||
@@ -231,7 +231,7 @@ var _ = Describe("AckFrame", func() {
|
||||
{FirstPacketNumber: 2, LastPacketNumber: 2},
|
||||
{FirstPacketNumber: 6, LastPacketNumber: 6},
|
||||
}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 7,
|
||||
NackRanges: nackRanges,
|
||||
}
|
||||
@@ -243,7 +243,7 @@ var _ = Describe("AckFrame", func() {
|
||||
{FirstPacketNumber: 5, LastPacketNumber: 6},
|
||||
{FirstPacketNumber: 2, LastPacketNumber: 5},
|
||||
}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 7,
|
||||
NackRanges: nackRanges,
|
||||
}
|
||||
@@ -251,13 +251,13 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("accepts an ACK without NACK Ranges", func() {
|
||||
ack := AckFrame{LargestObserved: 7}
|
||||
ack := AckFrameLegacy{LargestObserved: 7}
|
||||
Expect(ack.validateNackRanges()).To(BeTrue())
|
||||
})
|
||||
|
||||
It("accepts an ACK with one NACK Ranges", func() {
|
||||
nackRange := NackRange{FirstPacketNumber: 6, LastPacketNumber: 8}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 10,
|
||||
NackRanges: []NackRange{nackRange},
|
||||
}
|
||||
@@ -269,7 +269,7 @@ var _ = Describe("AckFrame", func() {
|
||||
{FirstPacketNumber: 6, LastPacketNumber: 7},
|
||||
{FirstPacketNumber: 2, LastPacketNumber: 4},
|
||||
}
|
||||
ack := AckFrame{
|
||||
ack := AckFrameLegacy{
|
||||
LargestObserved: 10,
|
||||
NackRanges: nackRanges,
|
||||
}
|
||||
@@ -284,7 +284,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes simple frames without NACK ranges", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 1,
|
||||
}
|
||||
@@ -296,7 +296,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("calculates the DelayTime", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
LargestObserved: 5,
|
||||
PacketReceivedTime: time.Now().Add(-750 * time.Millisecond),
|
||||
}
|
||||
@@ -309,7 +309,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a frame with one NACK range", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 4,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 2}},
|
||||
@@ -325,7 +325,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("supports version 31", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 4,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 2}},
|
||||
@@ -344,7 +344,7 @@ var _ = Describe("AckFrame", func() {
|
||||
It("writes a frame with multiple NACK ranges", func() {
|
||||
nackRange1 := NackRange{FirstPacketNumber: 4, LastPacketNumber: 6}
|
||||
nackRange2 := NackRange{FirstPacketNumber: 2, LastPacketNumber: 2}
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 7,
|
||||
NackRanges: []NackRange{nackRange1, nackRange2},
|
||||
@@ -365,7 +365,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
Context("contiguous NACK ranges", func() {
|
||||
It("writes the largest possible NACK range that does not require to be written in contiguous form", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 258,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 257}},
|
||||
@@ -379,7 +379,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a frame with a contiguous NACK range", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 302,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 301}},
|
||||
@@ -395,7 +395,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a frame with the smallest NACK ranges that requires a contiguous NACK range", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 259,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 258}},
|
||||
@@ -411,7 +411,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a frame with a long contiguous NACK range", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 603,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 601}},
|
||||
@@ -431,7 +431,7 @@ var _ = Describe("AckFrame", func() {
|
||||
It("writes a frame with two contiguous NACK range", func() {
|
||||
nackRange1 := NackRange{FirstPacketNumber: 2, LastPacketNumber: 351}
|
||||
nackRange2 := NackRange{FirstPacketNumber: 355, LastPacketNumber: 654}
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 655,
|
||||
NackRanges: []NackRange{nackRange2, nackRange1},
|
||||
@@ -452,7 +452,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
Context("LargestObserved length", func() {
|
||||
It("writes a 1 byte LargestObserved value", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
LargestObserved: 7,
|
||||
}
|
||||
err := frame.Write(b, protocol.Version32)
|
||||
@@ -462,7 +462,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a 2 byte LargestObserved value", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
LargestObserved: 0x1337,
|
||||
}
|
||||
err := frame.Write(b, protocol.Version32)
|
||||
@@ -472,7 +472,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a 4 byte LargestObserved value", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
LargestObserved: 0xDECAFBAD,
|
||||
}
|
||||
err := frame.Write(b, protocol.Version32)
|
||||
@@ -482,7 +482,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("writes a 6 byte LargestObserved value", func() {
|
||||
frame := AckFrame{
|
||||
frame := AckFrameLegacy{
|
||||
LargestObserved: 0xDEADBEEFCAFE,
|
||||
}
|
||||
err := frame.Write(b, protocol.Version32)
|
||||
@@ -495,7 +495,7 @@ var _ = Describe("AckFrame", func() {
|
||||
|
||||
Context("min length", func() {
|
||||
It("has proper min length", func() {
|
||||
f := &AckFrame{
|
||||
f := &AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 1,
|
||||
}
|
||||
@@ -504,7 +504,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("has proper min length with a large LargestObserved", func() {
|
||||
f := &AckFrame{
|
||||
f := &AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 0xDEADBEEFCAFE,
|
||||
}
|
||||
@@ -513,7 +513,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("has proper min length with NACK ranges", func() {
|
||||
f := &AckFrame{
|
||||
f := &AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 4,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 2}},
|
||||
@@ -524,7 +524,7 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("has proper min length with a continuous NACK ranges", func() {
|
||||
f := &AckFrame{
|
||||
f := &AckFrameLegacy{
|
||||
Entropy: 2,
|
||||
LargestObserved: 3000,
|
||||
NackRanges: []NackRange{{FirstPacketNumber: 2, LastPacketNumber: 2000}},
|
||||
@@ -543,13 +543,13 @@ var _ = Describe("AckFrame", func() {
|
||||
})
|
||||
|
||||
It("is self-consistent for ACK frames without NACK ranges", func() {
|
||||
frameOrig := &AckFrame{
|
||||
frameOrig := &AckFrameLegacy{
|
||||
Entropy: 0xDE,
|
||||
LargestObserved: 6789,
|
||||
}
|
||||
err := frameOrig.Write(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
frame, err := ParseAckFrame(bytes.NewReader(b.Bytes()), protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(bytes.NewReader(b.Bytes()), protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.Entropy).To(Equal(frameOrig.Entropy))
|
||||
Expect(frame.LargestObserved).To(Equal(frameOrig.LargestObserved))
|
||||
@@ -561,14 +561,14 @@ var _ = Describe("AckFrame", func() {
|
||||
{FirstPacketNumber: 7, LastPacketNumber: 7},
|
||||
{FirstPacketNumber: 2, LastPacketNumber: 3},
|
||||
}
|
||||
frameOrig := &AckFrame{
|
||||
frameOrig := &AckFrameLegacy{
|
||||
LargestObserved: 15,
|
||||
NackRanges: nackRanges,
|
||||
}
|
||||
err := frameOrig.Write(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
r := bytes.NewReader(b.Bytes())
|
||||
frame, err := ParseAckFrame(r, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(r, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(frameOrig.LargestObserved))
|
||||
Expect(frame.NackRanges).To(HaveLen(len(frameOrig.NackRanges)))
|
||||
@@ -581,14 +581,14 @@ var _ = Describe("AckFrame", func() {
|
||||
{FirstPacketNumber: 350, LastPacketNumber: 351},
|
||||
{FirstPacketNumber: 2, LastPacketNumber: 306},
|
||||
}
|
||||
frameOrig := &AckFrame{
|
||||
frameOrig := &AckFrameLegacy{
|
||||
LargestObserved: 1600,
|
||||
NackRanges: nackRanges,
|
||||
}
|
||||
err := frameOrig.Write(b, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
r := bytes.NewReader(b.Bytes())
|
||||
frame, err := ParseAckFrame(r, protocol.Version32)
|
||||
frame, err := ParseAckFrameLegacy(r, protocol.Version32)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(frame.LargestObserved).To(Equal(frameOrig.LargestObserved))
|
||||
Expect(frame.NackRanges).To(HaveLen(len(frameOrig.NackRanges)))
|
||||
Reference in New Issue
Block a user