Versions in this module Expand all Collapse all v0 v0.5.0 Apr 11, 2017 Changes in this version + var ErrAckForSkippedPacket = qerr.Error(qerr.InvalidAckData, "Received an ACK for a skipped packet number") + var ErrDuplicateOrOutOfOrderAck = errors.New("SentPacketHandler: Duplicate or out-of-order ACK") + var ErrDuplicatePacket = errors.New("ReceivedPacketHandler: Duplicate Packet") + var ErrPacketSmallerThanLastStopWaiting = errors.New("ReceivedPacketHandler: Packet number smaller than highest StopWaiting") + var ErrTooManyTrackedSentPackets = errors.New("Too many outstanding non-acked and non-retransmitted packets") + type Packet struct + EncryptionLevel protocol.EncryptionLevel + Frames []frames.Frame + Length protocol.ByteCount + PacketNumber protocol.PacketNumber + SendTime time.Time + func (p *Packet) GetFramesForRetransmission() []frames.Frame + type PacketElement struct + Value Packet + func (e *PacketElement) Next() *PacketElement + func (e *PacketElement) Prev() *PacketElement + type PacketList struct + func NewPacketList() *PacketList + func (l *PacketList) Back() *PacketElement + func (l *PacketList) Front() *PacketElement + func (l *PacketList) Init() *PacketList + func (l *PacketList) InsertAfter(v Packet, mark *PacketElement) *PacketElement + func (l *PacketList) InsertBefore(v Packet, mark *PacketElement) *PacketElement + func (l *PacketList) Len() int + func (l *PacketList) MoveAfter(e, mark *PacketElement) + func (l *PacketList) MoveBefore(e, mark *PacketElement) + func (l *PacketList) MoveToBack(e *PacketElement) + func (l *PacketList) MoveToFront(e *PacketElement) + func (l *PacketList) PushBack(v Packet) *PacketElement + func (l *PacketList) PushBackList(other *PacketList) + func (l *PacketList) PushFront(v Packet) *PacketElement + func (l *PacketList) PushFrontList(other *PacketList) + func (l *PacketList) Remove(e *PacketElement) Packet + type ReceivedPacketHandler interface + GetAckFrame func() *frames.AckFrame + ReceivedPacket func(packetNumber protocol.PacketNumber, shouldInstigateAck bool) error + ReceivedStopWaiting func(*frames.StopWaitingFrame) error + func NewReceivedPacketHandler(ackAlarmResetCallback func(time.Time)) ReceivedPacketHandler + type SentPacketHandler interface + DequeuePacketForRetransmission func() (packet *Packet) + GetAlarmTimeout func() time.Time + GetLeastUnacked func() protocol.PacketNumber + GetStopWaitingFrame func(force bool) *frames.StopWaitingFrame + OnAlarm func() + ReceivedAck func(ackFrame *frames.AckFrame, withPacketNumber protocol.PacketNumber, ...) error + SendingAllowed func() bool + SentPacket func(packet *Packet) error + func NewSentPacketHandler(rttStats *congestion.RTTStats) SentPacketHandler