remotebwe

package
v1.8.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultProbeControllerConfig = ProbeControllerConfig{
		ProbeRegulator: ccutils.DefaultProbeRegulatorConfig,

		SettleWaitNumRTT: 5,
		SettleWaitMin:    250 * time.Millisecond,
		SettleWaitMax:    5 * time.Second,
	}
)
View Source
var (
	DefaultRemoteBWEConfig = RemoteBWEConfig{
		NackRatioAttenuator:     0.4,
		ExpectedUsageThreshold:  0.95,
		ChannelObserverProbe:    defaultChannelObserverConfigProbe,
		ChannelObserverNonProbe: defaultChannelObserverConfigNonProbe,
		ProbeController:         DefaultProbeControllerConfig,
	}
)

Functions

This section is empty.

Types

type ChannelObserverConfig

type ChannelObserverConfig struct {
	Estimate ccutils.TrendDetectorConfig `yaml:"estimate,omitempty"`
	Nack     NackTrackerConfig           `yaml:"nack,omitempty"`
}

type NackTrackerConfig

type NackTrackerConfig struct {
	WindowMinDuration time.Duration `yaml:"window_min_duration,omitempty"`
	WindowMaxDuration time.Duration `yaml:"window_max_duration,omitempty"`
	RatioThreshold    float64       `yaml:"ratio_threshold,omitempty"`
}

type ProbeControllerConfig

type ProbeControllerConfig struct {
	ProbeRegulator ccutils.ProbeRegulatorConfig `yaml:"probe_regulator,omitempty"`

	SettleWaitNumRTT uint32        `yaml:"settle_wait_num_rtt,omitempty"`
	SettleWaitMin    time.Duration `yaml:"settle_wait_min,omitempty"`
	SettleWaitMax    time.Duration `yaml:"settle_wait_max,omitempty"`
}

type RemoteBWE

type RemoteBWE struct {
	bwe.NullBWE
	// contains filtered or unexported fields
}

func NewRemoteBWE

func NewRemoteBWE(params RemoteBWEParams) *RemoteBWE

func (*RemoteBWE) CanProbe

func (r *RemoteBWE) CanProbe() bool

func (*RemoteBWE) CongestionState

func (r *RemoteBWE) CongestionState() bwe.CongestionState

func (*RemoteBWE) HandleREMB

func (r *RemoteBWE) HandleREMB(
	receivedEstimate int64,
	expectedBandwidthUsage int64,
	sentPackets uint32,
	repeatedNacks uint32,
)

func (*RemoteBWE) ProbeClusterDone

func (r *RemoteBWE) ProbeClusterDone(pci ccutils.ProbeClusterInfo)

func (*RemoteBWE) ProbeClusterFinalize

func (r *RemoteBWE) ProbeClusterFinalize() (ccutils.ProbeSignal, int64, bool)

func (*RemoteBWE) ProbeClusterIsGoalReached

func (r *RemoteBWE) ProbeClusterIsGoalReached() bool

func (*RemoteBWE) ProbeClusterStarting

func (r *RemoteBWE) ProbeClusterStarting(pci ccutils.ProbeClusterInfo)

func (*RemoteBWE) ProbeDuration

func (r *RemoteBWE) ProbeDuration() time.Duration

func (*RemoteBWE) Reset

func (r *RemoteBWE) Reset()

func (*RemoteBWE) SetBWEListener

func (r *RemoteBWE) SetBWEListener(bweListener bwe.BWEListener)

func (*RemoteBWE) UpdateRTT

func (r *RemoteBWE) UpdateRTT(rtt float64)

type RemoteBWEConfig

type RemoteBWEConfig struct {
	NackRatioAttenuator     float64               `yaml:"nack_ratio_attenuator,omitempty"`
	ExpectedUsageThreshold  float64               `yaml:"expected_usage_threshold,omitempty"`
	ChannelObserverProbe    ChannelObserverConfig `yaml:"channel_observer_probe,omitempty"`
	ChannelObserverNonProbe ChannelObserverConfig `yaml:"channel_observer_non_probe,omitempty"`
	ProbeController         ProbeControllerConfig `yaml:"probe_controller,omitempty"`
}

type RemoteBWEParams

type RemoteBWEParams struct {
	Config RemoteBWEConfig
	Logger logger.Logger
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL