aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/device3
Commit message (Collapse)AuthorAgeFilesLines
* Device3: Fix MTU and default frame sizesMichael West2019-06-281-27/+26
| | | | | | | | | | The latest changes to the get_*x_stream() functions to calculate the MTU for the channel caused default frame size values to be ignored. This change fixes that by changing the key from "send/recv_frame_size" to "mtu" and then changing the implementations of make_transport() constrain the frame size values based on the "mtu" value as well as any device and/or transport-specific limits. Signed-off-by: Michael West <michael.west@ettus.com>
* device3: Constraint send/recv_frame_size based on down/upstream MTUSugandha Gupta2019-05-212-0/+57
| | | | | | 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.
* RFNoC: Disable FC ACK packets for lossless linksMichael West2019-02-181-0/+1
| | | | | | | FC ACK packets are unnecessary on lossless links and degrade overall performance. This change disables those packets on all lossless links. Signed-off-by: Michael West <michael.west@ettus.com>
* Device3: Fix flow control window and intervalmichael-west2019-01-312-9/+14
| | | | | | Fixes streaming on E310 after BBFC changes. Signed-off-by: michael-west <michael.west@ettus.com>
* Device3: Remove redundant function callmichael-west2019-01-311-1/+0
| | | | Signed-off-by: michael-west <michael.west@ettus.com>
* RFNoC: Prevent unnecessary FC ACK packetsmichael-west2019-01-311-3/+8
| | | | | | | | 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 <michael.west@ettus.com>
* device3: Replace NULL with 0 for empty function pointersMartin Braun2019-01-221-2/+2
| | | | | Technically, nullptr should be the correct replacement, but some compilers have issues with that. This is a continuation of e1c754f20.
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-164-603/+562
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applying formatting changes to all .cpp and .hpp files in the following directories: ``` find host/examples/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/tests/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/utils/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find mpm/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Also formatted host/include/, except Cpp03 was used as a the language standard instead of Cpp11. ``` sed -i 's/ Cpp11/ Cpp03/g' .clang-format find host/include/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Formatting style was designated by the .clang-format file.
* formatting: remove vim hints in headersBrent Stapleton2019-01-161-1/+0
| | | | | Remove trailing vim hints in header files. This functionality will be replaced by clang-format.
* tests: Add benchmark of streaming code pathsCiro Nishiguchi2019-01-101-0/+4
| | | | | Add a benchmark of packet handlers and device3 flow control. Benchmarks use mock transport objects.
* uhd: Move device3 flow control functions to header for benchmarkCiro Nishiguchi2019-01-102-291/+306
| | | | | Moving device3 flow control functions to a header file so they can be included in benchmark utility.
* uhd: Fix log statement for Port number on RFNOC blockSugandha Gupta2018-12-051-1/+1
| | | | | CE is display in decimal format and Port number will be displayed in Hex, as it represents Block Port on the crossbar
* uhd: rfnoc: add async message handlerTrung Tran2018-09-141-2/+29
|
* device3_io_impl: remove tx_hint[send_buff_size]Trung Tran2018-09-131-6/+0
| | | | | we're no longer need this. Because there are default send buff size in each transport type impl.
* X300: Change Ethernet bufferingMichael West2018-07-252-89/+92
| | | | | | | Ethernet buffering is now done so that most of the buffering is done in the socket buffers and multiple frames are only used to support the receive side offload of the socket I/O. Eliminates dropped packets at high full duplex rates.
* Device3: Constrain send_buff_sizeMichael West2018-07-251-6/+12
| | | | | send_buff_size is now constrained to input fifo size, and we increase timeout on getting flow control to reduce CPU usage.
* Device3: Change packet-based flow control to byte-based flow controlMartin Braun2018-07-252-282/+485
|
* rfnoc: Enabled SW flush mechanism impl'd in noc_shellAshish Chaudhari2018-07-241-2/+4
| | | | | | | | | | | - UHD will now "disconnect" the noc_block data-path from the crossbar when the block's dtor is invoked. This allows long running or slow blocks to empty out rapidly during teardown. - UHD will also attempt to flush at init time in case a block is destroyed abnormally. The goal of the flush mechanism is to not lock up the FPGA - noc_shell compat number is now 3
* UHD: Update copyright datesMartin Braun2018-06-221-1/+1
|
* rfnoc: Update logging in some blocksMartin Braun2018-03-301-13/+35
| | | | | | | | | | Updated the following blocks and components: Radio, DmaFIFO, block_ctrl_base and node_ctrl_base, blockdef_xml_impl, device3_impl. No functional changes. - Demoted some log messages - Consistent log style (use unique_id()) - Some adaptation of coding style where close to log statements
* rfnoc radio: get_rx_stream resets sequence numBrent Stapleton2018-03-291-0/+5
| | | | | | Reset the RX sequence number whenever an RX streamer is created. Reviewed-by: Martin Braun <martin.braun@ettus.com>
* rfnoc: ctrl_iface cleanupMartin Braun2018-03-161-9/+3
| | | | | | | | | | - ctrl_iface is now longer a wb_iface. All it can do now is send command packets, and receive responses to those. - ctrl_iface does not store command time or tick rate - wb_iface_adapter is no longer a set of functors, but a wrapper around ctrl_iface. Command times are stored once, in the block. - DMA FIFO and radio block controllers have an easier time getting access to a timed_wb_iface
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-143-7/+6
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* uhd: Fix some log statementsAndrej Rode2018-03-071-1/+0
| | | | Some log statements were incorrectly using multi-line log statements.
* uhd: Update license headersMartin Braun2018-02-194-3/+7
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* X300: Reduce CPU usage during TX by restoring timeout when getting flow ↵michael-west2018-01-161-3/+1
| | | | control packets
* Move all license headers to SPDX format.Martin Braun2017-12-224-48/+4
|
* utils: add set_thread_name API call, move thread_priority to threadAndrej Rode2017-06-291-1/+2
|
* Merge branch 'maint'Martin Braun2017-06-272-104/+111
|\
| * X300: Implement single DMA channel for all async messagesMichael West2017-06-262-3/+3
| |
| * X300: Dual channel TX performance improvementsMichael West2017-06-262-109/+112
| |
* | Merge branch 'maint'Martin Braun2017-05-151-2/+28
|\|
| * device3: Improved busy loop for tx flow control polling on slower machinesPatrick Sisterhen2017-05-081-2/+28
| | | | | | | | Effectively adds a yield statement inside the busy loop.
* | transport: Fix some nullptr vs NULL vs 0Martin Braun2017-04-061-1/+2
| | | | | | | | This affects some versions of Clang when using C++11 features.
* | Merge branch 'maint'Martin Braun2017-04-061-24/+44
|\|
| * Device3: Improved send flow controlmichael-west2017-04-051-24/+44
| | | | | | | | | | | | - Implemented zero_copy_flow_ctrl for send transport - Removed bounded buffer for sequence acks - Created spin wait on flow control for fastest response to flow control updates
* | device3: Fixed potential concurreny issuesAshish Chaudhari2017-04-052-5/+4
| | | | | | | | | | | | | | - Protected block_ctrl vector with a mutex - Note: const block accessors are not thread safe - Removed sid_framer from base device3 class - Made x300,e300 sid_framers atomic
* | utils: introduce new logging API and remove msg APIAndrej Rode2017-02-202-29/+30
| |
* | uhd: replace BOOST_FOREACH with C++11 range-based for loopAndrej Rode2017-02-102-8/+8
| | | | | | | | | | Note: This is the first commit that uses for-range, and range-based for-loops are now usable for UHD development.
* | Merge branch 'maint'Martin Braun2017-01-301-0/+1
|\|
| * device3: Reset sequence number in get_tx_streamer()Jonathon Pendlum2017-01-301-0/+1
| |
* | Merge branch 'maint'Martin Braun2017-01-171-1/+1
|\|
| * docs: Purged references to CVITA, replaced with CHDRMartin Braun2017-01-111-1/+1
| |
* | Merge branch 'maint'Martin Braun2016-12-131-1/+1
|\|
| * Fix typo causing channel list generation to fail.michael-west2016-12-131-1/+1
| |
| * device3: Backed-out the alignment adaptionMartin Braun2016-11-291-6/+0
| |
* | device3: Backed-out the alignment adaptionMartin Braun2016-12-091-6/+0
| |
* | rfnoc: Removed transport endianness as make argMartin Braun2016-11-091-1/+0
| | | | | | | | | | | | | | | | | | This is only confusing, since the blocks do not have to care about endianness. The control interface needs to know (and takes care of it internally), and the streaming transport does the same (and does not directly connect to blocks). Reviewed-By: Michael West <michael.west@ettus.com>
* | rfnoc: Moved transport endianness as property into both_xports_tMartin Braun2016-11-093-12/+9
|/ | | | Reviewed-By: Michael West <michael.west@ettus.com>
* Remove all boost:: namespace prefix for uint32_t, int32_t etc. (fixed-width ↵Martin Braun2016-11-082-13/+13
| | | | | | | | types) - Also removes all references to boost/cstdint.hpp and replaces it with stdint.h (The 'correct' replacement would be <cstdint>, but not all of our compilers support that).