aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport
diff options
context:
space:
mode:
authorAlex Williams <alex.williams@ni.com>2019-05-30 15:09:10 -0700
committerMartin Braun <martin.braun@ettus.com>2019-11-26 11:49:26 -0800
commit53477bfc7ffb2dc09143e1c9e8e431efc8ada957 (patch)
tree7dc7ab3ffd45ed2c07544fa391979ad6a5916f16 /host/lib/transport
parent4b23b6102c182e4f5a8612e16752d34465bf190c (diff)
downloaduhd-53477bfc7ffb2dc09143e1c9e8e431efc8ada957.tar.gz
uhd-53477bfc7ffb2dc09143e1c9e8e431efc8ada957.tar.bz2
uhd-53477bfc7ffb2dc09143e1c9e8e431efc8ada957.zip
rfnoc: Add chdr_ctrl_xport
chdr_ctrl_xport is a dumb-pipe transport for RFNoC control transactions and management frames. Also remove the I/O service's check on num_recv_frames and num_send_frames. The transports may request additional virtual channels, so the send_io_if and recv_io_if may not reserve additional frames, as they are shared with a previously-allocated instance. Note: this uses a mutex to force sequentual access to the chdr_ctrl_xport. This is supposed to go away when the multi threaded xport is done.
Diffstat (limited to 'host/lib/transport')
-rw-r--r--host/lib/transport/inline_io_service.cpp4
1 files changed, 0 insertions, 4 deletions
diff --git a/host/lib/transport/inline_io_service.cpp b/host/lib/transport/inline_io_service.cpp
index 72acea738..942c99d5f 100644
--- a/host/lib/transport/inline_io_service.cpp
+++ b/host/lib/transport/inline_io_service.cpp
@@ -272,10 +272,8 @@ recv_io_if::sptr inline_io_service::make_recv_client(recv_link_if::sptr data_lin
recv_io_if::fc_callback_t fc_cb)
{
UHD_ASSERT_THROW(data_link);
- UHD_ASSERT_THROW(num_recv_frames > 0);
UHD_ASSERT_THROW(cb);
if (fc_link) {
- UHD_ASSERT_THROW(num_send_frames > 0);
UHD_ASSERT_THROW(fc_cb);
connect_sender(fc_link.get(), num_send_frames);
}
@@ -302,14 +300,12 @@ send_io_if::sptr inline_io_service::make_send_client(send_link_if::sptr send_lin
recv_callback_t recv_cb)
{
UHD_ASSERT_THROW(send_link);
- UHD_ASSERT_THROW(num_send_frames > 0);
UHD_ASSERT_THROW(send_cb);
connect_sender(send_link.get(), num_send_frames);
sptr io_srv = shared_from_this();
auto send_io = std::make_shared<inline_send_io>(
io_srv, send_link, num_send_frames, send_cb, recv_link, num_recv_frames, recv_cb);
if (recv_link) {
- UHD_ASSERT_THROW(num_recv_frames > 0);
UHD_ASSERT_THROW(recv_cb);
connect_receiver(recv_link.get(), send_io.get(), num_recv_frames);
}