Doing some prototyping using Quiche with WebTransport+BBR2, I found the datagram queue appeared to be ignored when assessing whether the app is limiting the bitrate:
In my test, where the pipe is filled with datagrams, BBR constantly marks datapoints as app limited and never gets out of STARTUP phase.
Simply considering a non-empty datagram queue as willingness to write allows BBR to get into PROBE_BW, although I'm sill seeing poor behavior, where the RTT increases quite dramatically from ~40ms (min RTT) to sustained ~200ms when we hit a bitrate close to congestion, but I haven't looked into what's causing it (no draining on latency increase?)
Doing some prototyping using Quiche with WebTransport+BBR2, I found the datagram queue appeared to be ignored when assessing whether the app is limiting the bitrate:
In my test, where the pipe is filled with datagrams, BBR constantly marks datapoints as app limited and never gets out of STARTUP phase.
Simply considering a non-empty datagram queue as willingness to write allows BBR to get into PROBE_BW, although I'm sill seeing poor behavior, where the RTT increases quite dramatically from ~40ms (min RTT) to sustained ~200ms when we hit a bitrate close to congestion, but I haven't looked into what's causing it (no draining on latency increase?)