From bbb3aa78836a31e9df847a228c2f87e9e2a15fad Mon Sep 17 00:00:00 2001 From: michael-west Date: Thu, 24 Jan 2019 11:00:46 -0800 Subject: 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 --- host/lib/usrp/device3/device3_io_impl.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'host/lib/usrp/device3') 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 -- cgit v1.2.3