aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* transport: liberio: correctly release resources on destructionJoerg Hofrichter2020-01-221-6/+8
| | | | | | | | | | Stop the streaming and free the allocated buffers on destruction of the liberio xport object. Note: There is a lingering resource leak in the kernel module, this patch merely orders the resource release correctly. Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
* mpm: optionally generate XML report when running unittestsJoerg Hofrichter2020-01-221-7/+22
| | | | | If the unittests are invoked with an extra argument -x, an XML report is generated if the xmlrunner module is installed
* fixup! docs: e320: Add documentation for gpio and eeprom-flagsJoerg Hofrichter2020-01-221-2/+2
|
* docs: n3xx: document eeprom flagsJoerg Hofrichter2020-01-221-0/+34
| | | | | | | | Add a subsection to both N310- and N320 specific features to document the EEPROM flags simliar to as it is done in the E320 documentation. Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
* utils: images_downloader: adding usage docsBrent Stapleton2020-01-221-2/+29
| | | | | Adding more details on uhd_images_downloader usage, as well as some technical details.
* examples: Fix tx timeout caused by initial delayCiro Nishiguchi2020-01-201-3/+4
| | | | | | Using default values, the initial delay for tx is larger than the default timeout of tx_streamer::send. Changing the example to always specify a timeout in send.
* mpm: Add compile flag to fix missing definitionCiro Nishiguchi2020-01-161-0/+4
| | | | | In some environments _GNU_SOURCE must be defined to use O_LARGEFILE.
* nirio: use `realpath` instead of `relpath`Michael Dickens2020-01-151-6/+6
| | | | | | | The latter causes issues with some builds using `/tmp` as the build directory. Ref: https://github.com/EttusResearch/uhddev/commit/9517de45709adaea8b574011573a565007149d5d This commit changed these from `abspath` to `relpath` for Windows needs. Trying `realpath` as an alternative to both of those.
* rfnoc: apply clang-format to block_idBrent Stapleton2020-01-101-1/+1
|
* docs: fixing typos in gpio API example in manualsteviez2020-01-101-10/+7
|
* tools: R&D testing prodecure updated for E3xxSugandha Gupta2020-01-102-50/+103
| | | | | | -Adds embedded mode tests for E310 and E320 to the R&D testing procedure. -Modifies increased rates for 1Gige testing on E320
* uhd: fixing MSVC warningsBrent Stapleton2020-01-0913-41/+71
| | | | | | | | | | | Small changes to remove various compiler warnings found in MSVC - Adding uhd::narrow_cast to verious spots - wavetable.hpp: all floats literals in the wavetable. - paths_test: unnecessary character escape - replay example: remove unreferenced noc_id - adfXXXX: Fixing qualifiers to match between parent and derived classes - rpc, block_id: Removing unused name in try...catch
* cal_utils: fixup typoBrent Stapleton2020-01-091-1/+1
|
* rpc: Applying clang formattingBrent Stapleton2020-01-091-84/+76
|
* images: update FPGA image packages for RFNoCBrent Stapleton2020-01-082-19/+19
| | | | | | | | Updating FPGA image packages, filesystems, and submodule pointer to include recent RFNoC changes. Note: These filesystems have compatible Linux distributions, but do require an MPM update in order to use the UHD features in this branch.
* uhd: Correct rx/tx EEPROM typoToni Jones2020-01-071-5/+5
| | | | Correct a typo differentiating RX and TX EEPROM paths.
* python: rfnoc: finishing noc_block_base::get_mtuBrent Stapleton2020-01-062-0/+28
| | | | | | | Adding bindings for res_source_info, which allows us to use noc_block_base::get_mtu. Fixes: 400b00c34338 ("rfnoc: adding RFNoC Python API")
* python: rfnoc: make block_id_t more compatible with stringsBrent Stapleton2020-01-061-0/+3
| | | | | Allows the RFNoC Python API to automatically convert strings to block_id_t's.
* mpm: include the failed mpm_shell commandbidavis2020-01-061-1/+1
| | | | This commit changes an mpm_shell error message to include the command that failed when the mpm_shell does not have the claim token.
* rfnoc: adding RFNoC Python APIBrent Stapleton2020-01-025-0/+273
| | | | | | | | Adding Python bindings for the RFNoC API. This includes the rfnoc_graph, noc_block_base, and several other supporting classes. Templated functions are not currently supported. For example, `rfnoc_graph::get_block` can only return the basic block controller.
* rfnoc: fix typosBrent Stapleton2020-01-021-2/+2
| | | | Fixes: 967be2a4e82b ("uhd: mpm: apply clang-format to all files")
* uhd: fix for exception due to use of unconstructed mutexPatrick Sisterhen2020-01-021-4/+5
| | | | | | In chdr_ctrl_endpoint recv_thread, _recv_thread was starting at construction time and trying to lock mutex, but due to member declaration in class, mutex was not yet constructed
* examples: Add options to benchmark_rateMichael West2020-01-021-19/+39
| | | | | | | | - Add option for high or normal thread priority with default set to high - Add rx_delay and tx_delay options to dynamically set start delays (default of 0.25 seconds for TX and 0.05 seconds for RX) Signed-off-by: Michael West <michael.west@ettus.com>
* multi_usrp: unify GPIO access typeBrent Stapleton2019-12-301-1/+1
| | | | | | | | GPIOs in the property tree are registered as uint32_t's, so the get_gpio_attr function should use that type as well. This resolves a property tree runtime_error when running the `gpio` example with a B2xx device.
* tests: fixup compiler warningBrent Stapleton2019-12-301-1/+1
| | | | Fixes cb40069b ("tests: Port polling-mode dpdk_test to new DPDK...")
* Tests: Fix subdev for N300 streaming testsmichael-west2019-12-301-6/+6
| | | | Signed-off-by: michael-west <michael.west@ettus.com>
* examples: benchmark_rate dpdk recv/send thread priority elevationmattprost2019-12-201-0/+13
| | | | | | | | | | Improves dpdk streaming performance for benchmark_rate by elevating thread priority of the send and recv threads. It does this conditionally, if use_dpdk=1 was passed in through the command line args. Admittedly, this is not a perfect solution, as it does not account for the case when a dpdk user is utilizing a config file to pass in that information. The scope of this fix does seem appropriate for an example.
* dpdk: Change client to wait on member variableCiro Nishiguchi2019-12-201-8/+12
| | | | | | Waiting on queue status seems to not always work, the queue state seems to not be updated immediately after pushing an item onto it when queried from a different thread.
* usrp: Change default number of data frames for X300Ciro Nishiguchi2019-12-201-16/+20
| | | | | | Change the default number of frames so that it works well when using offload threads, including DPDK. This matches the default number of frames in mpmd.
* transport,usrp: Make available packet-based flow controlAlex Williams2019-12-207-46/+61
| | | | | | | | DPDK provides a fixed number of fixed-size buffers for the receive window, so it needs packet-based flow control to avoid dropping packets. This change enables counting by packets. Co-authored-by: Ciro Nishiguchi <ciro.nishiguchi@ni.com>
* tests: Port polling-mode dpdk_test to new DPDK frameworkAlex Williams2019-12-203-83/+121
| | | | | | The mock_send_transport and mock_recv_transport are used, which ends up with two layers of flow control. More work may be needed here for comparisons with the old data.
* rfnoc: Make chdr_ctrl_xport recv_io callbacks have symbolsAlex Williams2019-12-202-26/+50
| | | | This helps a little with debugging (for breakpoints).
* transport: Fix comment on recv_io_if::fc_callback_tAlex Williams2019-12-201-1/+1
| | | | It referenced the wrong function for releasing recv buffers.
* usrp: Add I/O service manager for DPDKCiro Nishiguchi2019-12-203-0/+93
|
* lib: Remove dpdk_zero_copy filesMartin Braun2019-12-2014-3420/+0
| | | | These were left here as a reference.
* x300,mpmd: Enable DPDKMartin Braun2019-12-2012-465/+216
| | | | | | | | | | | | | | x300: - Remove obsolete variables from x300_eth_mgr and X300 motherboard components - Added some documentation / comments - Use constrained device args in more places - Enables the use of use_dpdk=1 - Switches between regular (kernel-based) and DPDK UDP mpmd: - Merge link_if_ctrl for udp and dpdk_udp - Update cmake options
* dpdk: Add new DPDK stack to integrate with I/O servicesAlex Williams2019-12-2018-352/+2633
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | docs: Update DPDK docs with new parameters: Parameter names have had their hyphens changed to underscores, and the I/O CPU argument is now named after the lcores and reflects the naming used by DPDK. transport: Add new udp_dpdk_link, based atop the new APIs: This link is tightly coupled with the DPDK I/O service. The link class carries all the address information to communicate with the other host, and it can send packets directly through the DPDK NIC ports. However, for receiving packets, the I/O service must pull the packets from the DMA queue and attach them to the appropriate link object. The link object merely formats the frame_buff object underneath, which is embedded in the rte_mbuf container. For get_recv_buff, the link will pull buffers only from its internal queue (the one filled by the I/O service). transport: Add DPDK-specific I/O service: The I/O service is split into two parts, the user threads and the I/O worker threads. The user threads submit requests through various appropriate queues, and the I/O threads perform all the I/O on their behalf. This includes routing UDP packets to the correct receiver and getting the MAC address of a destination (by performing the ARP request and handling the ARP replies). The DPDK context stores I/O services. The context spawns all I/O services on init(), and I/O services can be fetched from the dpdk_ctx object by using a port ID. I/O service clients: The clients have two lockless ring buffers. One is to get a buffer from the I/O service; the other is to release a buffer back to the I/O service. Threads sleeping on buffer I/O are kept in a separate list from the service queue and are processed in the course of doing RX or TX. The list nodes are embedded in the dpdk_io_if, and the head of the list is on the dpdk_io_service. The I/O service will transfer the embedded wait_req to the list if it cannot acquire the mutex to complete the condition for waking. Co-authored-by: Martin Braun <martin.braun@ettus.com> Co-authored-by: Ciro Nishiguchi <ciro.nishiguchi@ni.com> Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com>
* transport: Fix uninitialized offload I/O service _client_typeAlex Williams2019-12-201-5/+2
| | | | | | The client type is kept in _offload_thread_params, but a separate, unitialized field is checked in member functions. Remove the duplicate and switch the checks over. This fixes offload_io_srv_test.
* tests: Add more tests for max rate streamingCiro Nishiguchi2019-12-184-89/+469
| | | | | Add more tests to compare streaming rates with previous releases. Changed the output string to a table.
* prefs: Output debug trace when config file cannot be located or loadedAaron Rossetto2019-12-172-8/+14
|
* tools: typo in x3x0 dpdk fpga_funcverif testmattprost2019-12-171-3/+3
|
* X310: update UBX/SBX gain settings for phase alignment testingerickshepherdNI2019-12-131-3/+3
| | | | | Update UBX and SBX gain settings in the manual for phase alignment testing.
* docs: Add note about DPDK needing to be built as shared librariesAaron Rossetto2019-12-131-1/+10
|
* tests: Install all stream performance scriptsBrent Stapleton2019-12-061-1/+3
| | | | | | | Install all of the streaming performance tests scripts, not just the X300 one. Fixes: 2bf1f0acaa35 ("tests: Add script to execute batch of bench...")
* tests: Add tests to exercise max streaming rates and report resultsCiro Nishiguchi2019-12-063-0/+1008
|
* tests: Add script to execute batch of benchmark_rate runsCiro Nishiguchi2019-12-065-0/+424
| | | | | Script runs benchmark_rate repeatedly, parses results, and calculates average, min, and max of each value reported.
* utils: algorithm: Add missing include uhd/config.hppMartin Braun2019-12-051-0/+1
|
* ddc: fixup decimation propertyBrent Stapleton2019-12-051-2/+2
| | | | | | | | - Use coerce_decim(), not int(), to coerce the decimation rate - Fix typo Fixes: a36fc4604f9b ("rfnoc: DDC: Fix property propagation") Fixes: 36853315741a ("rfnoc: Add DDC block controller")
* prefs: Set init_done flag to true after loading config filesMartin Braun2019-12-051-0/+1
| | | | | | | The prefs API is supposed to load the config files once, and stash them away for the process to consume at will. Because the init_done is never set, it will read the config files every time it's asked for them. This is usually not a problem, but it causes the logging output to be messy.
* docs: fixing doxygen errors reported during makesteviez2019-12-039-20/+25
|