forked from quic-go/quic-go
27 lines
600 B
Go
27 lines
600 B
Go
package quic
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
"github.com/lucas-clemente/quic-go/utils"
|
|
)
|
|
|
|
// An AckFrame in QUIC
|
|
type AckFrame struct {
|
|
Entropy byte
|
|
LargestObserved uint32 // TODO: change to uint64
|
|
}
|
|
|
|
// WriteAckFrame writes an ack frame.
|
|
func (f *AckFrame) Write(b *bytes.Buffer) error {
|
|
typeByte := uint8(0x48)
|
|
b.WriteByte(typeByte)
|
|
b.WriteByte(f.Entropy)
|
|
utils.WriteUint32(b, f.LargestObserved)
|
|
utils.WriteUint16(b, 1) // TODO: Ack delay time
|
|
b.WriteByte(0x01) // Just one timestamp
|
|
b.WriteByte(0x00) // Largest observed
|
|
utils.WriteUint32(b, 0) // First timestamp
|
|
return nil
|
|
}
|