Documentation
¶
Overview ¶
Package congestions provides interfaces and types congestion control implementations for SRT
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ReceiveStats ¶
type ReceiveStats struct {
Pkt uint64
Byte uint64
PktUnique uint64
ByteUnique uint64
PktLoss uint64
ByteLoss uint64
PktRetrans uint64
ByteRetrans uint64
PktBelated uint64
ByteBelated uint64
PktDrop uint64
ByteDrop uint64
// instantaneous
PktBuf uint64
ByteBuf uint64
MsBuf uint64
BytePayload uint64
MbpsEstimatedRecvBandwidth float64
MbpsEstimatedLinkCapacity float64
PktLossRate float64
}
ReceiveStats are collected statistics from a reciever
type Receiver ¶
type Receiver interface {
// Stats returns receiver statistics.
Stats() ReceiveStats
// PacketRate returns the current packets and bytes per second, and the capacity of the link.
PacketRate() (pps, bps, capacity float64)
// Flush flushes all queued packages.
Flush()
// Push pushed a recieved packet to the receiver queue.
Push(pkt packet.Packet)
// Tick gets called from a connection in order to proceed with queued packets. The provided value for
// now is corresponds to the timestamps in the queued packets. Those timestamps are the microseconds
// since the start of the connection.
Tick(now uint64)
// SetNAKInterval sets the interval between two periodic NAK messages to the sender in microseconds.
SetNAKInterval(nakInterval uint64)
}
Receiver is the receiving part of the congestion control
type SendStats ¶
type SendStats struct {
Pkt uint64 // Sent packets in total
Byte uint64 // Sent bytes in total
PktUnique uint64
ByteUnique uint64
PktLoss uint64
ByteLoss uint64
PktRetrans uint64
ByteRetrans uint64
UsSndDuration uint64 // microseconds
PktDrop uint64
ByteDrop uint64
// instantaneous
PktBuf uint64
ByteBuf uint64
MsBuf uint64
PktFlightSize uint64
UsPktSndPeriod float64 // microseconds
BytePayload uint64
MbpsEstimatedInputBandwidth float64
MbpsEstimatedSentBandwidth float64
PktLossRate float64
}
SendStats are collected statistics from a sender
type Sender ¶
type Sender interface {
// Stats returns sender statistics.
Stats() SendStats
// Flush flushes all queued packages.
Flush()
// Push pushes a packet to be send on the sender queue.
Push(p packet.Packet)
// Tick gets called from a connection in order to proceed with the queued packets. The provided value for
// now is corresponds to the timestamps in the queued packets. Those timestamps are the microseconds
// since the start of the connection.
Tick(now uint64)
// ACK gets called when a sequence number has been confirmed from a receiver.
ACK(sequenceNumber circular.Number)
// NAK get called when packets with the listed sequence number should be resend.
NAK(sequenceNumbers []circular.Number)
// SetDropThreshold sets the threshold in microseconds for when to drop too late packages from the queue.
SetDropThreshold(threshold uint64)
}
Sender is the sending part of the congestion control
Click to show internal directories.
Click to hide internal directories.