forked from quic-go/quic-go
implement writing of ACK frames containing ECN counts
This commit is contained in:
@@ -102,6 +102,11 @@ func marshalAckFrame(enc *gojay.Encoder, f *logging.AckFrame) {
|
||||
enc.StringKey("frame_type", "ack")
|
||||
enc.FloatKeyOmitEmpty("ack_delay", milliseconds(f.DelayTime))
|
||||
enc.ArrayKey("acked_ranges", ackRanges(f.AckRanges))
|
||||
if hasECN := f.ECT0 > 0 || f.ECT1 > 0 || f.ECNCE > 0; hasECN {
|
||||
enc.Uint64Key("ect0", f.ECT0)
|
||||
enc.Uint64Key("ect1", f.ECT1)
|
||||
enc.Uint64Key("ce", f.ECNCE)
|
||||
}
|
||||
}
|
||||
|
||||
func marshalResetStreamFrame(enc *gojay.Encoder, f *logging.ResetStreamFrame) {
|
||||
|
||||
@@ -60,6 +60,24 @@ var _ = Describe("Frames", func() {
|
||||
)
|
||||
})
|
||||
|
||||
It("marshals ACK frames with ECN counts", func() {
|
||||
check(
|
||||
&logging.AckFrame{
|
||||
AckRanges: []logging.AckRange{{Smallest: 120, Largest: 120}},
|
||||
ECT0: 10,
|
||||
ECT1: 100,
|
||||
ECNCE: 1000,
|
||||
},
|
||||
map[string]interface{}{
|
||||
"frame_type": "ack",
|
||||
"acked_ranges": [][]float64{{120}},
|
||||
"ect0": 10,
|
||||
"ect1": 100,
|
||||
"ce": 1000,
|
||||
},
|
||||
)
|
||||
})
|
||||
|
||||
It("marshals ACK frames with a range acknowledging ranges of packets", func() {
|
||||
check(
|
||||
&logging.AckFrame{
|
||||
|
||||
Reference in New Issue
Block a user