aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/device3/device3_io_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/usrp/device3/device3_io_impl.cpp')
-rw-r--r--host/lib/usrp/device3/device3_io_impl.cpp11
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