aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorCiro Nishiguchi <ciro.nishiguchi@ni.com>2019-08-13 14:55:36 -0500
committerMartin Braun <martin.braun@ettus.com>2019-11-26 11:49:41 -0800
commitf5e726b0ad83743c173231d9ac019c917a51be07 (patch)
tree0ba29a81ffef116624492b0fe157a7c00a00ca65 /tools
parentc55c434425b9d585c5a76a1769206cccd55d9bc4 (diff)
downloaduhd-f5e726b0ad83743c173231d9ac019c917a51be07.tar.gz
uhd-f5e726b0ad83743c173231d9ac019c917a51be07.tar.bz2
uhd-f5e726b0ad83743c173231d9ac019c917a51be07.zip
rfnoc: Implement flushing on overrun
This modifies the overrun handling such that the RX streamer does not restart the radios until the packets that were buffered prior to the overrun are read by the user. When an RX streamer receives an overrun, it will run the following algorithm: 1. Stop all upstream producers. 2. Set an internal flag in the streamer that indicates that the producers have stopped due to an overrun. 3. Continue servicing calls to recv until it runs out of packets in the host buffer (packets that can be read from the transport using a 0 timeout). 4. Once the packets are exhausted, return an overrun error from recv. The radio, if it was in continuous streaming mode before the overrun, includes a flag in its initial action whether or not to restart streaming. 5. If the radio requested a restart, the streamer submits a restart request action upstream. This action will be received by the radio. The radio will then check the current time, and send a stream command action back downstream. 6. The RX streamer receives the stream command action, and uses it to send another stream command to all upstream producers. This way, all upstream producers receive a start command for the same time.
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions