diff options
author | Ciro Nishiguchi <ciro.nishiguchi@ni.com> | 2019-08-13 14:55:36 -0500 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:41 -0800 |
commit | f5e726b0ad83743c173231d9ac019c917a51be07 (patch) | |
tree | 0ba29a81ffef116624492b0fe157a7c00a00ca65 /tools | |
parent | c55c434425b9d585c5a76a1769206cccd55d9bc4 (diff) | |
download | uhd-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