Versions in this module Expand all Collapse all v1 v1.0.0 Nov 12, 2023 Changes in this version + const CONSERVATION + const DRAIN + const DefaultBBRMaxCongestionWindow + const GROWTH + const InfDuration + const InitialCongestionWindow + const InitialMaxDatagramSize + const InitialPacketSizeIPv4 + const InitialPacketSizeIPv6 + const InvalidPacketNumber + const MaxByteCount + const MaxCongestionWindowPackets + const MinPacingDelay + const NOT_IN_RECOVERY + const PROBE_BW + const PROBE_RTT + const STARTUP + const TimerGranularity + var BandwidthWindowSize = GainCycleLength + 2 + var DefaultCongestionWindowGainConst = 2.0 + var DefaultHighGain = 2.77 + var GainCycleLength = len(PacingGain) + var InfiniteBandwidth = Bandwidth(math.MaxUint64) + var InfiniteRTT = time.Duration(math.MaxInt64) + var InitialRtt = 100 * time.Millisecond + var MinRttExpiry = 10 * time.Second + var ModerateProbeRttMultiplier = 0.75 + var PacingGain = []float64 + var ProbeRttTime = time.Millisecond * 200 + var RoundTripsWithoutGrowthBeforeExitingStartup = int64(3) + var SimilarMinRttThreshold = 1.125 + var StartupAfterLossGain = 1.5 + var StartupGrowthTarget = 1.25 + func AbsDuration(d time.Duration) time.Duration + func GetInitialPacketSize(addr net.Addr) congestion.ByteCount + func MaxFilter(a, b int64) bool + func MaxTime(a, b time.Time) time.Time + func Max[T cmp.Ordered](a, b T) T + func MinFilter(a, b int64) bool + func MinNonZeroDuration(a, b time.Duration) time.Duration + func MinNonZeroTime(a, b time.Time) time.Time + func MinTime(a, b time.Time) time.Time + func Min[T cmp.Ordered](a, b T) T + func NewBBRSender(clock Clock, ...) *bbrSender + func NewCubicSender(clock Clock, initialMaxDatagramSize congestion.ByteCount, reno bool) *cubicSender + func SentPacketToSendTimeState(sentPacket *ConnectionStateOnSentPacket, sendTimeState *SendTimeState) + type Bandwidth uint64 + const BitsPerSecond + const BytesPerSecond + func BandwidthFromDelta(bytes congestion.ByteCount, delta time.Duration) Bandwidth + type BandwidthSample struct + func NewBandwidthSample() *BandwidthSample + type BandwidthSampler struct + func NewBandwidthSampler() *BandwidthSampler + func (s *BandwidthSampler) OnAppLimited() + func (s *BandwidthSampler) OnCongestionEvent(packetNumber congestion.PacketNumber) SendTimeState + func (s *BandwidthSampler) OnPacketAcked(ackTime time.Time, lastAckedPacket congestion.PacketNumber) *BandwidthSample + func (s *BandwidthSampler) OnPacketSent(sentTime time.Time, lastSentPacket congestion.PacketNumber, ...) + type Clock interface + Now func() time.Time + type ConnectionStateOnSentPacket struct + func NewConnectionStateOnSentPacket(packetNumber congestion.PacketNumber, sentTime time.Time, ...) *ConnectionStateOnSentPacket + type ConnectionStates struct + func (s *ConnectionStates) Get(packetNumber congestion.PacketNumber) *ConnectionStateOnSentPacket + func (s *ConnectionStates) Insert(packetNumber congestion.PacketNumber, sentTime time.Time, ...) bool + func (s *ConnectionStates) Remove(packetNumber congestion.PacketNumber) (bool, *ConnectionStateOnSentPacket) + type Cubic struct + func NewCubic(clock Clock) *Cubic + func (c *Cubic) CongestionWindowAfterAck(ackedBytes congestion.ByteCount, currentCongestionWindow congestion.ByteCount, ...) congestion.ByteCount + func (c *Cubic) CongestionWindowAfterPacketLoss(currentCongestionWindow congestion.ByteCount) congestion.ByteCount + func (c *Cubic) OnApplicationLimited() + func (c *Cubic) Reset() + func (c *Cubic) SetNumConnections(n int) + type DefaultClock struct + func (DefaultClock) Now() time.Time + type HybridSlowStart struct + func (s *HybridSlowStart) IsEndOfRound(ack congestion.PacketNumber) bool + func (s *HybridSlowStart) OnPacketAcked(ackedPacketNumber congestion.PacketNumber) + func (s *HybridSlowStart) OnPacketSent(packetNumber congestion.PacketNumber) + func (s *HybridSlowStart) Restart() + func (s *HybridSlowStart) ShouldExitSlowStart(latestRTT time.Duration, minRTT time.Duration, ...) bool + func (s *HybridSlowStart) StartReceiveRound(lastSent congestion.PacketNumber) + func (s *HybridSlowStart) Started() bool + type Sample struct + type SendTimeState struct + type WindowedFilter struct + func NewWindowedFilter(windowLength int64, comparator func(int64, int64) bool) *WindowedFilter + func (f *WindowedFilter) GetBest() int64 + func (f *WindowedFilter) GetSecondBest() int64 + func (f *WindowedFilter) GetThirdBest() int64 + func (f *WindowedFilter) Reset(newSample int64, newTime int64) + func (f *WindowedFilter) SetWindowLength(windowLength int64) + func (f *WindowedFilter) Update(sample int64, time int64)