From fe3fa1dd31b6da9c90cf181d64d6829313804cdd Mon Sep 17 00:00:00 2001 From: Sugandha Gupta Date: Fri, 25 Jan 2019 17:36:26 -0800 Subject: device3: Constraint send/recv_frame_size based on down/upstream MTU We need to properly contraint the send/recv_frame_size based on the minimum MTU of all the down/upstream blocks. This fixes the issue with E310 tx/rx streaming as it has smaller MTU sizes than the other usrps. --- host/include/uhd/rfnoc/sink_block_ctrl_base.hpp | 12 ++++++++++++ host/include/uhd/rfnoc/source_block_ctrl_base.hpp | 12 ++++++++++++ 2 files changed, 24 insertions(+) (limited to 'host/include') diff --git a/host/include/uhd/rfnoc/sink_block_ctrl_base.hpp b/host/include/uhd/rfnoc/sink_block_ctrl_base.hpp index a2d4685be..5267612e6 100644 --- a/host/include/uhd/rfnoc/sink_block_ctrl_base.hpp +++ b/host/include/uhd/rfnoc/sink_block_ctrl_base.hpp @@ -63,6 +63,18 @@ public: */ size_t get_fifo_size(size_t block_port = 0) const; + /*! Return the MTU size on a given block port. + * + * This is necessary for setting up transports, among other things. + * + * If the block port is not defined, it will return 0, and not throw. + * + * \param block_port The block port (0 through 15). + * + * Returns the MTU in bytes. + */ + size_t get_mtu(size_t block_port = 0) const; + /*! Configure flow control for incoming streams. * * If flow control is enabled for incoming streams, this block will periodically diff --git a/host/include/uhd/rfnoc/source_block_ctrl_base.hpp b/host/include/uhd/rfnoc/source_block_ctrl_base.hpp index a22a19da9..e79b7ef69 100644 --- a/host/include/uhd/rfnoc/source_block_ctrl_base.hpp +++ b/host/include/uhd/rfnoc/source_block_ctrl_base.hpp @@ -118,6 +118,18 @@ public: const size_t block_port = 0, const uhd::sid_t& sid = uhd::sid_t()); + /*! Return the MTU size on a given block port. + * + * This is necessary for setting up transports, among other things. + * + * If the block port is not defined, it will return 0, and not throw. + * + * \param block_port The block port (0 through 15). + * + * Returns the MTU in bytes. + */ + size_t get_mtu(size_t block_port = 0) const; + protected: /*********************************************************************** -- cgit v1.2.3