aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/device3/device3_io_impl.cpp
diff options
context:
space:
mode:
authormichael-west <michael.west@ettus.com>2019-01-24 11:00:46 -0800
committerAshish Chaudhari <ashish.chaudhari@ettus.com>2019-01-31 13:47:03 -0800
commitbbb3aa78836a31e9df847a228c2f87e9e2a15fad (patch)
treee0a8828719a92c4595c391bd48edcca2f220ab64 /host/lib/usrp/device3/device3_io_impl.cpp
parent1223294e532b9452aef0942feb44389369317c6e (diff)
downloaduhd-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.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