This reverts the Raw UDP host changes which is breaking
multiple interface streaming.
Commits addb81aa5d2d6adcd3a0c7a8d59fcd96af0c1ec4^..b1ca51f97aaa2226ed6ef339fb26fbea54ab7593
are reverted.
Reverts:
doc: Update manual on streaming
examples: Add remote RX streaming example
rfnoc: Enable remote UDP streaming
mpm: e320: Enable raw UDP streaming
mpm: n3xx: Enable raw UDP streaming
mpm: x4xx: Enable transport manager adapter
mpm: Enable opt-in transport adapter control
rfnoc: Transition stream managers and mgmt_portal to topo_graph_t
rfnoc: Add topology graph object
uhd/mpm: Add API to set remote routes
mpm: xports: Add XportAdapterMgr class
Azure Piplines uses git detached HEAD so it cannot read
the active branch from git. Instead get the branch from
$BUILD_SOURCEBRANCH, which gets set by Pipelines.
Signed-off-by: Steven Koo <steven.koo@ni.com>
- images: update manifest
- uhd: update changelog and version string
- debian: update changelog and installer version
Signed-off-by: Steven Koo <steven.koo@ni.com>
uhd doesn't support live installs of ubuntu because
the universe repository isn't enabled by default. Also remove
the versioned libuhdx.y.z since it's not required. It will get
pulled in from libuhd-dev and uhd-host deps.
Signed-off-by: Steven Koo <steven.koo@ni.com>
The MTU discovery over 1GbE would sometimes detect an MTU that was
larger than the MTU set on the NIC and result in errors. This limits
the maximum MTU to the default 1GbE MTU value of 1500 bytes.
Signed-off-by: michael-west <michael.west@ettus.com>
This amends the link_stream_manager with functionalities to enable UDP
streaming. When the correct stream arguments are given, instead of
streaming data back into the streamer object, it is streamed to a remote
UDP port.
- Checks FPGA compat number is 6.1
- If so, it enables the transport adapter manager
- Note that E320 may still have raw UDP streaming feature disabled. In
that case, it simply doesn't report that capability.
- Checks if the compat number is at least 8.1
- If so, enables the transport adapter managers
- Note N3xx FPGA may still not have raw UDP streaming enabled, in which
case that capability is simply not reported.
N3xx and E320 (although potentially other USRPs too) don't always enable
the raw UDP streaming capabilities. This change updates the transport
adapter control to not provide access to any registers or features that
are unavailable to the transport adapter. This way, the FPGA bitfile can
be kept minimal (by not providing raw UDP streaming capabilities) and
software can determine those capabilities easily.
This is an invasive change in how the management portal stores routes.
Previously, it would store all the shortest routes from its respective
local SEP to all the nodes in the graph. The key change here is to
replace mgmt_portal_impl::_node_addr_map with mgmt_portal_impl::_tgraph.
However, this has a lot of downstream effects. mgmt_portal_impl itself
required a lot of changes to make use of _tgraph instead of
_node_addr_map. Some changes to graph_stream_manager.cpp and
link_stream_manager.cpp were also required. Note that there is a single
instance of a topology graph within an rfnoc_graph, and it is owned by
the graph_stream_manager.
A less invasive change was the removal of the _epid_addr_map cache
object, since the topology graph stores EPIDs itself, it was a redundant
data structure.
This change by itself offers no new features or functionality, and has
no API changes beyond the graph stream manager. However, it is the basis
for enabling more features down the line.
This is a class that stores the topology of RFNoC devices in a session
in a graph object. Nodes in such a graph include crossbars, transport
adapters, and stream endpoints. They are statically defined by the
underlying hardware.
This graph is different from the detail::graph, which stores the
configuration of the RFNoC blocks that the user chooses at runtime.
The main purpose of this graph is to keep track of and manage available
routes within the RFNoC devices. The intention of this object is that
every rfnoc_graph owns exactly one of these graphs, where it can store
all the routing information.
This is an addition to both PeriphManagerBase (MPM) and mb_iface (UHD).
Main changes:
- Addition of mb_iface::add_remote_chdr_route() and
mb_iface::get_chdr_xport_adapters()
- In X3x0, these APIs are stubbed out.
- In mpmd, these APIs are implemented and call the new MPM APIs (see
below)
- Addition of PeriphManagerBase.add_remote_chdr_route() and
PeriphManagerBase.get_chdr_xport_adapters()
- The PeriphManagerBase implements these APIs fully when the
'remote_udp_streaming' FPGA feature is detected.
- The MPM compat number is bumped to 4.3. UHD will continue to work with
lower compat numbers. It will query the compat number and act
accordingly.
This change adds the extension framwork that enables external libraries
to extend the UHD functionality in MultiUSRP and RFNoC. Its main purpose
is to be able to use external frontend modules, signal conditioning
modules etc. and to control them together with the USRP device. To make
it easier to install into the correct directory the UHD_MODULE_PATH gets
exported in CMake.