[USRP-users] [UHD] Announcing 3.14.0.0 Release Candidate 1

Andre Puschmann andre.puschmann at softwareradiosystems.com
Thu Feb 14 06:59:40 EST 2019


Hey guys,

any idea or numbers on the performance improvement using DPDK, e.g. CPU
usage during rx/tx streaming, when compared to the legacy approach?
Would be great to get a feeling for the achievable gains.

Thanks
Andre


On 13/2/19 20:58, Nick Foster via USRP-users wrote:
> Any plans to update to the latest API? Won't compile with anything after
> 17.05.
> 
> On Wed, Feb 13, 2019, 11:33 AM Michael West
> <michael.west-+aYTwkv1SeIAvxtiuMwx3w at public.gmane.org
> <mailto:michael.west-+aYTwkv1SeIAvxtiuMwx3w at public.gmane.org>> wrote:
> 
>     Hi Nick,
> 
>     Information on using DPDK can be found here: 
>     http://files.ettus.com/manual/page_dpdk.html
> 
>     DPDK can be used with any example.  Think of it as an accelerator
>     for Ethernet transports if using Intel NICs.
> 
>     Regards,
>     Michael
> 
>     On Thu, Feb 7, 2019 at 10:29 AM Nick Foster
>     <bistromath-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
>     <mailto:bistromath-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org>> wrote:
> 
>         Great news! DPDK support is an interesting development. Is there
>         any documentation or examples which show this capability?
> 
>         Nick
> 
> 
>         On Thu, Feb 7, 2019 at 10:05 AM Michael West via USRP-users
>         <usrp-users-p6fHTpcPDZaz3Dx2OeFgIA at public.gmane.org
>         <mailto:usrp-users-p6fHTpcPDZaz3Dx2OeFgIA at public.gmane.org>> wrote:
> 
>             The release candidate of UHD version 3.14.0.0 has been
>             tagged and is available for testing.  This API release
>             introduces support for the N320 and N321 USRPs soon to be
>             released (watch for the announcement on ettus.com
>             <http://ettus.com>!), a DPDK-based transport, and several
>             other features and bug fixes.  This release includes all bug
>             fixes and enhancements in the 3.13.0.1, 3.13.0.2, and
>             3.13.1.0 maintenance releases.
> 
>             The tag for this release candidate:
>             https://github.com/EttusResearch/uhd/releases/tag/v3.14.0.0-rc1
> 
>             There have been 406 commits since the last API release
>             (3.13.0.0)which can be viewed here:
>             https://github.com/EttusResearch/uhd/compare/v3.13.0.0...v3.14.0.0-rc1
> 
>             Please report any bugs found on the UHD issue tracker:
>             http://github.com/EttusResearch/uhd/issues
>             * Please do not use the issue tracker for help or support.
> 
>             Pull requests for direct code changes may be submitted to
>             the UHD or FPGA repositories:
>             http://github.com/EttusResearch/uhd/pulls
>             http://github.com/EttusResearch/fpga/pulls
> 
>             CHANGELOG:
>             ## 003.014.000.000
>             * N320: Add N320 and N321
>             * Test: Add Python API test
>             * Device3: Move from packet-based to byte-based flow control
>             * X300: Reduce default send_frame_size to 4000 over Ethernet
>             * UHD: Release recv buffers earlier in rx_streamer
>             * Device3: Constrain send_buff_size to input fifo size
>             * X300: Change Ethernet buffering
>             * MPMD: Parallelize broadcast-finding
>             * Device: Parallelize device discovery
>             * Docs: Fix Doxygen warnings
>             * B100: Move fifo_ctrl_excelsior to b100 subdir
>             * B100: Fix fifo_ctrl_excelsior not exiting
>             * B100: Remove all Boostisms from fifo_ctrl_excelsior
>             * B100: Demote some clocking-related log messages to trace
>             * X300: Log git hash and compat number as debug message
>             * N310: Modify AD9371 reset function to keep it in reset
>             * N3xx: clocking API changes for transitioning clock and
>             time sources
>             * E320: bist: Fix ref_clock lock test implementation
>             * UHD: Fix ADF400x driver for ref counter and charge pump mode
>             * E320: bist: Add link_up test
>             * MPM: Get list of temperatures from all thermal zones
>             * E320: Add all 5 temp sensors, fan sensor and rssi sensors
>             per channel
>             * E320: Fix tx/rx atr - antenna and frequency settings
>             * E320: Enable devtest for E320
>             * X300: Move defaults to their own header
>             * UHD: Improve constrained_device_args_t
>             * X300: Use constrained_args
>             * X300: Enable clock_source and time_source device args
>             * Test: Integrate Python API Tester into Devtest
>             * N3xx: Bump max rev to G/6
>             * N3xx: Improve error messages for invalid clock/time settings
>             * E320: images: Separate images package for Aurora image
>             * B200: Remove superfluous fake lambda
>             * B200: Add support for user regs
>             * Docs: Add info on how to implement user regs on B200
>             * UHD API: Add multi_usrp::get_user_settings_iface()
>             * N310: move init_rf_cal before JESD de/framer bringup
>             * UHD: Remove usage of time_t (except when required)
>             * NIRIO: Demote RPC client cancel/abort to TRACE
>             * RFNoC: Convert SR_READBACK_REG_FIFOSIZE to bytes
>             * Utils: Add Zip test to downloader
>             * Utils: Factor wait_for_lo_lock() out of cal utils
>             * DPDK: Add DPDK-based sockets-like library
>             * MPMD: add option to enum rfnoc blocks from args
>             * E320: Get RFNoC crossbar baseport from FPGA
>             * N3xx: Get RFNoC crossbar baseport from FPGA
>             * UHD: add default xport params to udp_zero_copy
>             * MPM: add link_speed xport_info
>             * MPMD: add link speed to xport udp
>             * Device3: remove tx_hint[send_buff_size]
>             * X300: remove default_buff_args properties
>             * RFNoC: Add ability to enable/disable RX timestamp
>             * RFNoC: add async message handler
>             * Examples: add rfnoc_radio_loopback example
>             * UHD: Update rx_frontend_gen3.v controls for 1/4-rate mixer
>             * UHD API: Move definition of ALL_MBOARDS and ALL_CHANS
>             constants to
>                        CPP file.
>             * MPM: Add __mpm_device__ as usrp_hwd module variable
>             * MPM: Add usrp_update_fs
>             * UHD: Add traffic counter to null source sink
>             * Examples: Add benchmark_streamer example
>             * Tools: Add tool to analyze settling time of gain and freq
>             changes
>             * UHD API: Add multi_usrp::set_sync_source() API
>             * UHD: Improve documentation for the UHD exception types
>             * Examples: Add dual measurements to benchmark_streamer
>             * MPM: Add i2c APIs for simple transfers
>             * MPM: Add vector-based transfer function for i2c
>             * UHD: Improve documentation for set_{time,clock,sync}_source
>             * CMake: Bump CMake minimum version to 2.8.12
>             * MPM: Add variable configuration support to nijesdcore
>             * MPM: Add eyescan utility to nijesdcore
>             * MPM: Add PRBS-31 testing to nijesdcore
>             * CMake: Change SOVERSION and VERSION for the library files
>             * Test: Add graph impl test to device3_test
>             * RFNoC: Changes to traffic counter register names
>             * X300: Remove 120 MHz master_clock_rate option
>             * MPM: Add convenience function to pull i2c bus from device tree
>             * UHD: add .clang-format file
>             * MPM: Open and close i2c file descriptor on every access
>             * UHD: Add device arg to enable dual ethernet for tx
>             * Test: Retrofit sph test to use new mock transport
>             * X300: Set minimum master clock rate to 184.32 MHz
>             * RFNoC: Fix replay example port args
>             * RFNoC: Fix default SPP for replay
>             * RFNoC: Add halt to replay API
>             * UHD API: Add sync source to Python API
>             * Examples: Clean up rfnoc_radio_loopback example
>             * UHD: Improve compatibility of abs() calls
>             * UHD: include <stdint.h> for int64_t for time_spec
>             * USRP-2974: Add support for USRP-2974
>             * UHD API: Add support for Tx LO control to C API
>             * E310: Fix initialization of antenna and frequency values
>             * Test: Enable rx_samples_to_file in devtest for X300
>             * Examples: Add keyboard controls to rx_ascii_art_dft
>             * Examples: Add benchmark_streamer support for multi-channel
>             streamer
>             * MPM: Multiprocessing instead of threading for claimer loop
>             * MPM: Factor out user EEPROM code into own module
>             * RFNoC: Fix late packet errors
>             * X300: Factor our PID -> MB type and MB type -> product
>             name mapping
>             * X300: Remove usage of boost::bind
>             * Docs: Add manual page on compat numbers
>             * UHD: Updates to coding guidelines
>             * Examples: Optimize benchmark_rate start time
>             * Examples: Improve formatting and comments in tx_waveforms
>             * Examples: Optimize tx_waveforms memory allocations
>             * UHD: Fix MSVC warnings by changing a size_t to unsigned int or
>                    uint32_t
>             * Test: Fix CMake `endif` warning for devtest
>             * MPM: Add gpgga sensor function to GPSd iface
>             * Test: Fix compiler warning about unused timestamp
>             * X300: Fix compiler warnings related to type conversions
>             * B200: Fix compiler warnings related to type conversions
>             * Test: Add #include <thread> in system time test
>             * Examples: change boost to std for time commands
>             * UHD: Add potentially missing but sometimes inferred
>             include for
>                    experts
>             * UHD: Add default xport params to udp_wsa_zero_copy
>             * Examples: Add LO Offset to rx_samples_to_file
>             * Examples: update lo-offset naming in tx from file
>             * Examples: Add lo-offset to tx_waveforms
>             * UHD: Move device3 flow control functions to header for
>             benchmark
>                    utility
>             * Test: Add benchmark of streaming code paths
>             * MPMD: Add API to set RPC timeout atomically
>             * MPMD: Move timeout constants to header
>             * MPMD: Use new RPC API with timeout
>             * MPMD: Increase claim_rpc call timeout
>             * Examples: Improved error message in tx_waveforms
>             * UHD: Make sure BOOST_VERSION is always available
>             * Docs: Add comments for TwinRX and MCR
>             * DPDK: Add ARP responder, set MTU, and clean up API
>             * DPDK: Add blocking recv calls to uhd-dpdk
>             * DPDK: Add dpdk_zero_copy transport
>             * Test: Add unit test for DPDK transport
>             * Test: Add arguments to dpdk_test to control core mapping
>             * DPDK: Move uhd-dpdk header to uhdlib
>             * UHD: Make clang-format skip formatting for some data
>             structures
>             * UHD: Remove vim hints in headers
>             * Examples: Move ascii_art_dft main function within include
>             guard
>             * UHD/MPM: Apply clang-format to all files
>             * UHD: Add modified clang-format for headers
>             * MPM: Add bridge mode support
>             * RFNoC: Fix detection of outstanding acks by ctrl_iface
>             * UHD: Replace uhd::math::log2 with std::log2
>             * UHD: Replace boost::*::{lcm,gcd}() with portable versions
>             * UHD API: Change get_{tx/rx}_dc_offset_range default from
>             ALL_CHANS
>                        to 0
>             * UHD: Revert to boost instead of std for sleep in some
>             instances
>             * UHD: Replace Boost macros with custom ones for endianness
>             * MPMD: implement get_*x_hints
>             * MPMD: honor user supplied send/recv_frame_size args
>             * UHD: muxed_zero_copy_if fixes
>             * Examples: Fix boundary condition in ascii_art_dft plotting
>             * CMake: Extend list of additional Boost versions
>             * Device3: Replace NULL with 0 for empty function pointers
>             * RFNoC: Add some missing virtual destructors
>             * Test: replace has_key by using 'in'
>             * Test: Add universal_newlines to subprocess call in devtest
>             * MPMD: Use 4096 bytes for frame size for liberio transport
>             * DPDK: Add xport_mgr for dpdk_zero_copy
>             * DPDK: Cover all paths to request TX offloads
>             * Test: Fix up dpdk_test to use current APIs
>             * MPM: Parameterize max UDP link allocation
>             * UHD: Replace Boost lock & mutex with std variety for
>             AD9361 code
>             * CPack: Fix RPM generation
>             * Utils: Add check for gdb_eeprom before accessing
>             * RFNoC: Update FIFO XML definition
>             * MPMD: Use init timeout for update_component
>             * Docs: Add manual page for DPDK
>             * Docs: Add information about what dpdk_zero_copy is doing
>             * Tools: Make the UHD source gen a plugin for the phase
>             alignment test
>             * CMake: fix variable usage
>             * RFNoC: Prevent unnecessary FC ACK packets
>             * RFNoC: More graph traversal fixes
>             * Device3: Remove redundant function call
>             * RFNoC: Fix scaling of M and N values in DDC/DUC
>             * X300: Fix tick and sample rate setting
>             * RFNoC: Fix typos in legacy_compat
>             * RFNoC: Limit number of control packets in flight
>             * Device3: Fix flow control window and interval
>             * E3xx: Increase spp limit for E3xx radio
>             * E31x: Destruct RFNoC before loading idle image
>             * N3xx: init peripherals before loading FPGA (to fix SFP0
>             init issues)
>             * N3xx: Move Linux kernel to 4.15
>             * N3xx/E320: Prepend SDK filename with device name
>             * N310: Fix sporadic power on failures (requires firmware
>             update)
> 
>             ## 003.013.001.000
>             * E320: Fix front panel GPIO readback
>             * E320: Fix master_clock_rate setting
>             * E320: Print extra ouptut for ref_clock BIST
>             * E320: Fix gps_locked type
>             * E320: Fix return value of get_fpga_type()
>             * N3xx: Enable setting clock and time sources at runtime
>             * N3xx: Add ref_clock BIST
>             * N3xx: Improve set_time_source() and set_clock_source()
>             * N3xx: Add exception for init failure
>             * N3xx: Remove HA, XA images packages
>             * N3xx: Change init() procedure to reduce configuration time
>             * N310: Add frequency bounds
>             * N310: Fix RX antenna mapping
>             * N310: Add log messages when re-initializing dboards
>             * N310: Add skip_rfic argument to reduce time of BIST
>             * N310: Add initialization of TX bandwidth
>             * E310: Fix initialization of antenna and frequency values
>             * E310: Type-cast fix for Boost
>             * X300: Improve firmware compat error message
>             * X300: Updated niusrprio driver
>             * X300: Add recovery for duplicate IP addresses in EEPROM
>             * X300: Prevent duplicate MAC and IP addresses from being
>             programmed
>             * X300: New mode to configure master clock rate
>             * X300: Implement RFNoC get antenna functions
>             * B2xx: Fix values of MASK_GPIO_SHDN_SW and GPIO_AUX_PWR_ON
>             in firmware
>             * B2xx: Revert changes to DSP core to fix scaling factor
>             adjustment
>             * B2xx: Restore asynchronous reset of AD936x
>                     (fixes LIBUSB_TRANSFER_OVERFLOW and unexpected sid
>             errors)
>             * TwinRX: enable ch1 lo amps if ch2 is using an external lo
>             source
>             * TwinRX: Correctly initialize antenna mapping on X300
>             * TwinRX: Revise ADF5356 frac2 register calculation to
>             prevent drifting spurs
>             * TwinRX: Fix initialization
>             * TwinRX: Tuning improvements
>             * TwinRX: Enable phase resync on ADF535x
>             * TwinRX: Make routing to LO1 and LO2 mutually exclusive
>             * BasicRX/LFRX: Fix real mode in rx_frontend_core_3000
>             * UHD: Define UHD_API as empty string when building static lib
>             * UHD: Changed to 'all_matching' endpoint resolution for
>             udp_simple transport
>             * UHD: Add CMake flag for NEON SIMD
>             * UHD: Fix usb_dummy_impl compilation in MSVC
>             * UHD: Reconcile time_spec operators with boost concepts
>             * UHD: Fix rounding in ddc/duc rate calculation
>             * UHD: Increase MPMD RPC timeout when calling set_time_source()
>             * UHD: Fix RX streamer SOB and EOB handling
>             * UHD: Add UHD_SAFE_CALL to block_ctrl_base destructor
>             * UHD: Change SOVERSION to ABI string and VERSION to full
>             UHD version
>             * UHD: Update cmake style to use lower case commands
>             * UHD: Add SOURCE_DATE_EPOCH
>             * UHD: Improve logic for UHD_IMAGES_DIR
>             * UHD: Add RUNTIME_PYTHON_EXECUTABLE
>             * UHD: Fix return value of get_rolloff() for filters
>             * UHD: Properly register devtest
>             * UHD: Fix log statement for Port number on RFNoC block
>             * UHD: Use "MATCHES" instead of "STREQUAL" for "Clang"
>             * UHD: Fix GPGGA string formatting for gpsd
>             * Device3: Set default block control response SIDs
>             * Device3: Fix block control flushing
>             * RFNoC: Improved flushing mechanism in noc_shell and dma_fifo
>             * RFNoC: Install missing dma_fifo_block_ctrl header
>             * RFNoC: Replace some [] with .at() in radio_ctrl_impl
>             * RFNoC: Fix graph traversal
>             * MPM: Add Git hash, version to device info
>             * MPM: Reset the RPC server upon reload
>             * MPM: TDC: Update PDAC BIST and flatness test to use latest
>             APIs
>             * MPM: Fix handling of 0-valued dt-compat
>             * MPM: Fix GPSD sensor names for N3xx and E320
>             * MPM: Add args to update_ref_clock_freq to properly support
>             dynamic setting
>             *      of clock and time references
>             * MPM: Fix Pylint warnings
>             * MPM: Identify sysfs gpios more generically
>             * MPM: Add lock_guard() function
>             * MPM: Factor E320 and N3xx BIST code into common module
>             * MPM: Add gpsd error handling
>             * MPM: Add FPGA git hash to device info
>             * MPMD: Increase RPC timeout during readng mb sensor
>             * MPMD: Improve error message for compat number mismatches
>             * Python API: Enable Python API on Windows
>             * Python API: Change .dll to .pyd for Win32
>             * Python API: Fixing Boost.Python initializer visibility
>             * Python API: Fix duration of benchmark rate
>             * Python API: Add missing constructors of time_spec_t
>             * Python API: Expose streamer timeouts
>             * Python API: Tighten the scope of releasing the GIL
>             * Python API: Add device_addr_t
>             * Python API: Populate the tune_result_t binding
>             * Utils: Many fixes and enhancements for uhd_images_downloader
>             * Utils: Update query_gpsdo_sensors to work on E310
>             * Examples: Removed some legacy code patterns from RFNoC
>             examples
>             * Examples: Fix channel argument for rx_samples_to_file
>             * Examples: Fix benchmark_rate MIMO synchronization
>             * Examples: Add phase alignment example
>             * Examples: Fix RX antenna not being applied in
>             txrx_loopback_to_file
>             * Test: Add more env vars, make Py3k compatible
>             * Test: Add multi_usrp_test.py to devtest
>             * Test: Clean up, refactor, and improve devtest
>             * Test: Enable rx_samples_to_file in E320 devtest and N3xx
>             devtest
>             * Test: Reduce sample rate for E320 1G devtest
>             * Test: Add unit test for eeprom_utils
>             * Docs: Add clock_source and time_source to n3xx argument
>             list and fix WR clock_source call
>             * Docs: Minor tweaks to the Python API manual page
>             * Docs: Add E320 test procedures
>             * Docs: Added TwinRX page
>             * Docs: Fix N210 MIMO Phase Alignment test command
>             * Docs: Add E320 information
>             * Docs: Improve sections on clock/time references
>             * Docs: Add section on X300 motherboard clocking
>             * Docs: Add more information on Salt for N3xx and E320
>             * Docs: Adjust E310 functional verification tests
>             * Docs: Add documentation on GIL release
>             * Debian: Update control files
>             * Images: Add N3xx CPLD file to manifest
> 
>             ## 003.013.000.002
>             * N3xx: Fix issue where changing the clock/time source could
>             result in
>                     clocks becoming unlocked
>             * N3xx: Improve error messages for invalid clock/time settings
>             * N3xx: Add support for Rev G mboard
>             * MPM: Add function parameter to support holding AD9371 in reset
>             * Docs: Add section on building fs/SD images for N3xx
>             * Docs: Fix Doxygen warnings
> 
>             ## 003.013.000.001
>             * N3xx: Fix UIO usage in Aurora BIST
>             * N3xx: Fix EEPROM parsing (for upcoming hardware)
>             * UHD: Fix install path for Python API
> 
>             As always, we at Ettus Research would like to thank all of
>             the UHD users in the open source SDR community.  This
>             release contains commits from users in the community that
>             submitted pull requests against the UHD
>             <https://github.com/EttusResearch/uhd> and FPGA
>             <https://github.com/EttusResearch/fpga> repositories as well
>             as many commits that are a direct result of issues reported
>             back to us by users like you through the UHD
>             <https://github.com/EttusResearch/uhd/issues> and FPGA
>             <https://github.com/EttusResearch/fpga/issues> issue
>             trackers, the USRP-users mailing list
>             <http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com>,
>             and Ettus support
>             <mailto:support-+aYTwkv1SeIAvxtiuMwx3w at public.gmane.org>. 
>             You have all helped contribute to the continued improvement
>             of UHD.  Thank you!
> 
>             Best regards,
>             Michael
>             _______________________________________________
>             USRP-users mailing list
>             USRP-users at lists.ettus.com
>             <mailto:USRP-users-p6fHTpcPDZaz3Dx2OeFgIA at public.gmane.org>
>             http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> 
> 
> _______________________________________________
> USRP-users mailing list
> USRP-users-p6fHTpcPDZaz3Dx2OeFgIA at public.gmane.org
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> 


-- 
Andre Puschmann

Software Radio Systems (SRS)
http://www.softwareradiosystems.com

PGP/GnuPG key: 6C42AB31
fingerprint: 137A AE49 785B A445 257C 8AD7 D877 A498 6C42 AB31



More information about the USRP-users mailing list