Freeze update on congested probe. (#3228)

Reverting back to pre-refactor behaviour. Was trying to avoid doing
special treatment when in probe, but REMB values are hard to predict
and the NACKs as well.

So, freeze updates when congesting in probe till the probe is done.
Otherwise, further changes while probe is finalising sometimes causes an
invalid signal and tracks are not up allocated.
This commit is contained in:
Raja Subramanian authored and GitHub committed 2024-12-02 23:06:06 +05:30
1 parent 12b3da0a40
commit 2dcb5c928a
3 files changed
+39 -100

No files matched your search

+4 -4
View File
@@ -695,13 +695,13 @@ func (s *StreamAllocator) handleSignalEstimate(event Event) {
func (s *StreamAllocator) handleSignalPeriodicPing(Event) {
// finalize any probe that may have finished/aborted
if pci, ok := s.probeController.MaybeFinalizeProbe(); ok {
isCongestionClearing, channelCapacity := s.params.BWE.ProbeClusterDone(pci)
isCongesting, channelCapacity := s.params.BWE.ProbeClusterDone(pci)
s.params.Logger.Debugw(
"stream allocator: probe result",
"isCongestionClearing", isCongestionClearing,
"isCongesting", isCongesting,
"channelCapacity", channelCapacity,
)
if isCongestionClearing {
if !isCongesting {
if channelCapacity > s.committedChannelCapacity {
s.committedChannelCapacity = channelCapacity
}
@@ -709,7 +709,7 @@ func (s *StreamAllocator) handleSignalPeriodicPing(Event) {
s.maybeBoostDeficientTracks()
}
s.probeController.ProbeCongestionSignal(isCongestionClearing)
s.probeController.ProbeCongestionSignal(isCongesting)
}
// probe if necessary and timing is right