Documentation ¶
Index ¶
- Variables
- type CongestionDetectorConfig
- type CongestionSignalConfig
- type PacketGroupConfig
- type ProbePacketGroupConfig
- type ProbeSignalConfig
- type SendSideBWE
- func (s *SendSideBWE) CanProbe() bool
- func (s *SendSideBWE) CongestionState() bwe.CongestionState
- func (s *SendSideBWE) HandleTWCCFeedback(report *rtcp.TransportLayerCC)
- func (s *SendSideBWE) ProbeClusterDone(pci ccutils.ProbeClusterInfo)
- func (s *SendSideBWE) ProbeClusterFinalize() (ccutils.ProbeSignal, int64, bool)
- func (s *SendSideBWE) ProbeClusterIsGoalReached() bool
- func (s *SendSideBWE) ProbeClusterStarting(pci ccutils.ProbeClusterInfo)
- func (s *SendSideBWE) ProbeDuration() time.Duration
- func (s *SendSideBWE) RecordPacketSendAndGetSequenceNumber(atMicro int64, size int, isRTX bool, probeClusterId ccutils.ProbeClusterId, ...) uint16
- func (s *SendSideBWE) Reset()
- func (s *SendSideBWE) SetBWEListener(bweListener bwe.BWEListener)
- func (s *SendSideBWE) UpdateRTT(rtt float64)
- type SendSideBWEConfig
- type SendSideBWEParams
- type WeightedLossConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var (
DefaultSendSideBWEConfig = SendSideBWEConfig{
CongestionDetector: defaultCongestionDetectorConfig,
}
)
Functions ¶
This section is empty.
Types ¶
type CongestionDetectorConfig ¶
type CongestionDetectorConfig struct { PacketGroup PacketGroupConfig `yaml:"packet_group,omitempty"` PacketGroupMaxAge time.Duration `yaml:"packet_group_max_age,omitempty"` ProbePacketGroup ProbePacketGroupConfig `yaml:"probe_packet_group,omitempty"` ProbeRegulator ccutils.ProbeRegulatorConfig `yaml:"probe_regulator,omitempty"` ProbeSignal ProbeSignalConfig `yaml:"probe_signal,omitempty"` JQRMinDelay time.Duration `yaml:"jqr_min_delay,omitempty"` DQRMaxDelay time.Duration `yaml:"dqr_max_delay,omitempty"` WeightedLoss WeightedLossConfig `yaml:"weighted_loss,omitempty"` JQRMinWeightedLoss float64 `yaml:"jqr_min_weighted_loss,omitempty"` DQRMaxWeightedLoss float64 `yaml:"dqr_max_weighted_loss,omitempty"` QueuingDelayEarlyWarningJQR CongestionSignalConfig `yaml:"queuing_delay_early_warning_jqr,omitempty"` QueuingDelayEarlyWarningDQR CongestionSignalConfig `yaml:"queuing_delay_early_warning_dqr,omitempty"` LossEarlyWarningJQR CongestionSignalConfig `yaml:"loss_early_warning_jqr,omitempty"` LossEarlyWarningDQR CongestionSignalConfig `yaml:"loss_early_warning_dqr,omitempty"` QueuingDelayCongestedJQR CongestionSignalConfig `yaml:"queuing_delay_congested_jqr,omitempty"` QueuingDelayCongestedDQR CongestionSignalConfig `yaml:"queuing_delay_congested_dqr,omitempty"` LossCongestedJQR CongestionSignalConfig `yaml:"loss_congested_jqr,omitempty"` LossCongestedDQR CongestionSignalConfig `yaml:"loss_congested_dqr,omitempty"` CongestedCTRTrend ccutils.TrendDetectorConfig `yaml:"congested_ctr_trend,omitempty"` CongestedCTREpsilon float64 `yaml:"congested_ctr_epsilon,omitempty"` CongestedPacketGroup PacketGroupConfig `yaml:"congested_packet_group,omitempty"` EstimationWindowDuration time.Duration `yaml:"estimaton_window_duration,omitempty"` }
type CongestionSignalConfig ¶
type CongestionSignalConfig struct { MinNumberOfGroups int `yaml:"min_number_of_groups,omitempty"` MinDuration time.Duration `yaml:"min_duration,omitempty"` }
func (CongestionSignalConfig) IsTriggered ¶
func (c CongestionSignalConfig) IsTriggered(numGroups int, duration int64) bool
type PacketGroupConfig ¶
type ProbePacketGroupConfig ¶
type ProbeSignalConfig ¶
type ProbeSignalConfig struct { MinBytesRatio float64 `yaml:"min_bytes_ratio,omitempty"` MinDurationRatio float64 `yaml:"min_duration_ratio,omitempty"` JQRMinDelay time.Duration `yaml:"jqr_min_delay,omitempty"` DQRMaxDelay time.Duration `yaml:"dqr_max_delay,omitempty"` WeightedLoss WeightedLossConfig `yaml:"weighted_loss,omitempty"` JQRMinWeightedLoss float64 `yaml:"jqr_min_weighted_loss,omitempty"` DQRMaxWeightedLoss float64 `yaml:"dqr_max_weighted_loss,omitempty"` }
func (ProbeSignalConfig) IsValid ¶
func (p ProbeSignalConfig) IsValid(pci ccutils.ProbeClusterInfo) bool
func (ProbeSignalConfig) ProbeSignal ¶
func (p ProbeSignalConfig) ProbeSignal(ppg *probePacketGroup) (ccutils.ProbeSignal, int64)
type SendSideBWE ¶
func NewSendSideBWE ¶
func NewSendSideBWE(params SendSideBWEParams) *SendSideBWE
func (*SendSideBWE) CanProbe ¶
func (s *SendSideBWE) CanProbe() bool
func (*SendSideBWE) CongestionState ¶
func (s *SendSideBWE) CongestionState() bwe.CongestionState
func (*SendSideBWE) HandleTWCCFeedback ¶
func (s *SendSideBWE) HandleTWCCFeedback(report *rtcp.TransportLayerCC)
func (*SendSideBWE) ProbeClusterDone ¶
func (s *SendSideBWE) ProbeClusterDone(pci ccutils.ProbeClusterInfo)
func (*SendSideBWE) ProbeClusterFinalize ¶
func (s *SendSideBWE) ProbeClusterFinalize() (ccutils.ProbeSignal, int64, bool)
func (*SendSideBWE) ProbeClusterIsGoalReached ¶
func (s *SendSideBWE) ProbeClusterIsGoalReached() bool
func (*SendSideBWE) ProbeClusterStarting ¶
func (s *SendSideBWE) ProbeClusterStarting(pci ccutils.ProbeClusterInfo)
func (*SendSideBWE) ProbeDuration ¶
func (s *SendSideBWE) ProbeDuration() time.Duration
func (*SendSideBWE) RecordPacketSendAndGetSequenceNumber ¶
func (s *SendSideBWE) RecordPacketSendAndGetSequenceNumber( atMicro int64, size int, isRTX bool, probeClusterId ccutils.ProbeClusterId, isProbe bool, ) uint16
func (*SendSideBWE) Reset ¶
func (s *SendSideBWE) Reset()
func (*SendSideBWE) SetBWEListener ¶
func (s *SendSideBWE) SetBWEListener(bweListener bwe.BWEListener)
func (*SendSideBWE) UpdateRTT ¶
func (s *SendSideBWE) UpdateRTT(rtt float64)
type SendSideBWEConfig ¶
type SendSideBWEConfig struct {
CongestionDetector CongestionDetectorConfig `yaml:"congestion_detector,omitempty"`
}
type SendSideBWEParams ¶
type SendSideBWEParams struct { Config SendSideBWEConfig Logger logger.Logger }
type WeightedLossConfig ¶
Click to show internal directories.
Click to hide internal directories.