In a wireless USB data transfers over UWB, software configures hardware
thresholds to control data transfer in a manner that uses bandwidth for
good connections over bad connections, given the high error rate
experienced with wireless USB. Periodic transfers are first attempted
before asynchronous transfers, as long as the periodic transfers are
successful. When failures are occurring, the hardware includes a
mechanism having a software-configurable threshold specifying the number
of errors a given endpoint can tolerate before it is paused in the
schedule. By pausing transfer attempts that are likely to again fail,
endpoints with successful transfers are favored over those experiencing
errors. When the number of active transfers pending exceeds a
software-configurable notification threshold for isochronous endpoints,
the hardware notifies the software of this state, corresponding to a
low-buffer condition at the receiver. The software may then reconfigure
thresholds and deactivate other transfers to force data transfers into
the buffer.