BWE minor tweaks (#3254)

- Clear probe id in downtracks when aborting probe
- a bit of clean up
This commit is contained in:
Raja Subramanian
2024-12-16 08:04:24 +05:30
committed by GitHub
parent be65d24333
commit 699cd9c26c
3 changed files with 13 additions and 3 deletions
+6 -2
View File
@@ -140,8 +140,12 @@ func (p *probeController) ProbeClusterDone(pci ccutils.ProbeClusterInfo) {
p.setState(probeControllerStateHangover)
}
func (p *probeController) ProbeClusterInfo() ccutils.ProbeClusterInfo {
return p.pci
func (p *probeController) ProbeClusterIsGoalReached(estimate int64) bool {
if p.pci.Id == ccutils.ProbeClusterIdInvalid {
return false
}
return estimate > int64(p.pci.Goal.DesiredBps)
}
func (p *probeController) MaybeFinalizeProbe() (ccutils.ProbeClusterInfo, bool) {
+1 -1
View File
@@ -290,7 +290,7 @@ func (r *RemoteBWE) ProbeClusterIsGoalReached() bool {
return false
}
return r.channelObserver.GetHighestEstimate() > int64(r.probeController.ProbeClusterInfo().Goal.DesiredBps)
return r.probeController.ProbeClusterIsGoalReached(r.channelObserver.GetHighestEstimate())
}
func (r *RemoteBWE) ProbeClusterFinalize() (ccutils.ProbeSignal, int64, bool) {
@@ -678,6 +678,7 @@ func (s *StreamAllocator) handleSignalPeriodicPing(Event) {
// reset BWE if that persists for a while
if s.state == streamAllocatorStateDeficient && s.params.Pacer.TimeSinceLastSentPacket() > s.params.Config.PausedMinWait {
s.params.Logger.Infow("stream allocator: resetting bwe to enable probing")
s.maybeStopProbe()
s.params.BWE.Reset()
}
@@ -1041,6 +1042,11 @@ func (s *StreamAllocator) maybeStopProbe() {
}
pci := s.params.Pacer.EndProbeCluster(s.activeProbeClusterId)
for _, t := range s.getTracks() {
t.DownTrack().SwapProbeClusterId(pci.Id, ccutils.ProbeClusterIdInvalid)
}
s.params.BWE.ProbeClusterDone(pci)
s.prober.Reset(pci)
}