aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/include/uhdlib/transport/tx_streamer_impl.hpp
diff options
context:
space:
mode:
authorCiro Nishiguchi <ciro.nishiguchi@ni.com>2019-08-13 16:50:47 -0500
committerMartin Braun <martin.braun@ettus.com>2019-11-26 11:49:42 -0800
commit77a5358dd03669366a162d67f9ea11b2056c78b6 (patch)
treea80b97c5629c900c69a45fe695597f1b774ce91d /host/lib/include/uhdlib/transport/tx_streamer_impl.hpp
parentf5e726b0ad83743c173231d9ac019c917a51be07 (diff)
downloaduhd-77a5358dd03669366a162d67f9ea11b2056c78b6.tar.gz
uhd-77a5358dd03669366a162d67f9ea11b2056c78b6.tar.bz2
uhd-77a5358dd03669366a162d67f9ea11b2056c78b6.zip
rfnoc: Add MTU property to RX streamer
Diffstat (limited to 'host/lib/include/uhdlib/transport/tx_streamer_impl.hpp')
-rw-r--r--host/lib/include/uhdlib/transport/tx_streamer_impl.hpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/host/lib/include/uhdlib/transport/tx_streamer_impl.hpp b/host/lib/include/uhdlib/transport/tx_streamer_impl.hpp
index 35a724fa9..fa84026fe 100644
--- a/host/lib/include/uhdlib/transport/tx_streamer_impl.hpp
+++ b/host/lib/include/uhdlib/transport/tx_streamer_impl.hpp
@@ -76,7 +76,11 @@ public:
{
_setup_converters(num_chans, stream_args);
_zero_copy_streamer.set_bytes_per_item(_convert_info.bytes_per_otw_item);
- _spp = stream_args.args.cast<size_t>("spp", _spp);
+
+ if (stream_args.args.has_key("spp")) {
+ _spp = stream_args.args.cast<size_t>("spp", _spp);
+ _mtu = _spp * _convert_info.bytes_per_otw_item;
+ }
}
virtual void connect_channel(const size_t channel, typename transport_t::uptr xport)
@@ -184,7 +188,7 @@ protected:
return _zero_copy_streamer.get_tick_rate();
}
- //! Returns the size in bytes of a sample in a packet
+ //! Returns the maximum payload size
size_t get_mtu() const
{
return _mtu;
@@ -194,10 +198,7 @@ protected:
void set_mtu(const size_t mtu)
{
_mtu = mtu;
-
- // Check if spp needs to be lowered. SPP may already be lower than the
- // value allowed by mtu if the user specified it using stream_args.
- _spp = std::min(_spp, _mtu / _convert_info.bytes_per_otw_item);
+ _spp = _mtu / _convert_info.bytes_per_otw_item;
}
//! Configures scaling factor for conversion
@@ -308,7 +309,7 @@ private:
// Sample rate used to calculate metadata time_spec_t
double _samp_rate = 1.0;
- // Maximum payload size
+ // MTU, determined when xport is connected and modifiable by subclass
size_t _mtu = std::numeric_limits<std::size_t>::max();
// Maximum number of samples per packet