diff options
author | michael-west <michael.west@ettus.com> | 2019-01-24 11:00:46 -0800 |
---|---|---|
committer | Ashish Chaudhari <ashish.chaudhari@ettus.com> | 2019-01-31 13:47:03 -0800 |
commit | bbb3aa78836a31e9df847a228c2f87e9e2a15fad (patch) | |
tree | e0a8828719a92c4595c391bd48edcca2f220ab64 /host/lib/usrp/device3/device3_io_impl.cpp | |
parent | 1223294e532b9452aef0942feb44389369317c6e (diff) | |
download | uhd-bbb3aa78836a31e9df847a228c2f87e9e2a15fad.tar.gz uhd-bbb3aa78836a31e9df847a228c2f87e9e2a15fad.tar.bz2 uhd-bbb3aa78836a31e9df847a228c2f87e9e2a15fad.zip |
RFNoC: Prevent unnecessary FC ACK packets
Avoid sending flow control ACK packets for lossless transports.
Add 'send_no_fc_acks' device argument to explicitly prevent
flow control ACK packets from being sent.
Signed-off-by: michael-west <michael.west@ettus.com>
Diffstat (limited to 'host/lib/usrp/device3/device3_io_impl.cpp')
-rw-r--r-- | host/lib/usrp/device3/device3_io_impl.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/host/lib/usrp/device3/device3_io_impl.cpp b/host/lib/usrp/device3/device3_io_impl.cpp index bf527e0ba..d0ec52971 100644 --- a/host/lib/usrp/device3/device3_io_impl.cpp +++ b/host/lib/usrp/device3/device3_io_impl.cpp @@ -731,9 +731,14 @@ tx_streamer::sptr device3_impl::get_tx_stream(const uhd::stream_args_t& args_) // CHDR does not support trailers my_streamer->set_enable_trailer(false); - my_streamer->set_xport_chan_post_send_cb(stream_i, [fc_cache, xport]() { - tx_flow_ctrl_ack(fc_cache, xport.send, xport.send_sid); - }); + // Avoid sending FC ACKs if the transport is lossless or the user + // has explictly requested not to send them + if (not (xport.lossless or tx_hints.has_key("send_no_fc_acks"))) + { + my_streamer->set_xport_chan_post_send_cb(stream_i, [fc_cache, xport]() { + tx_flow_ctrl_ack(fc_cache, xport.send, xport.send_sid); + }); + } } // Notify all blocks in this chain that they are connected to an active streamer |