uhd/host/docs
Alex Williams 4e38eef817 dpdk: Add new DPDK stack to integrate with I/O services
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>
2019-12-20 16:32:22 -08:00
..
res docs: twinrx: Reduce res of TwinRX Block diagram and remove artefacts 2019-10-10 10:03:07 -07:00
build.dox.in docs: fixing doxygen errors reported during make 2019-12-03 21:07:30 -08:00
c_api.dox uhd: Remove usage of time_t (except when required) 2018-08-20 16:56:43 -07:00
calibration.dox Docs: Minor housekeeping 2016-10-21 10:05:23 -07:00
capi.dox docs: Fix Doxygen warnings 2018-07-31 10:05:03 -07:00
CMakeLists.txt Remove proto-RFNoC files 2019-11-26 12:16:25 -08:00
coding.dox Docs: Minor housekeeping 2016-10-21 10:05:23 -07:00
compat.dox docs: Add manual page on compat numbers 2019-01-02 16:28:39 -08:00
configfiles.dox docs: Add page for config files 2018-02-20 16:23:46 -08:00
configuration.dox x300/mpmd: Port all RFNoC devices to the new RFNoC framework 2019-11-26 12:16:25 -08:00
converters.dox
dboards.dox docs: ubx: Add documentation for temp_comp_mode 2019-06-12 16:34:56 -07:00
devices.dox docs: e31x: e320: Update docs for E310 MPM version 2019-05-17 11:02:02 -07:00
Doxyfile.in Docs: Add stub of RFNoC docs 2018-06-22 09:11:23 -07:00
dpdk.dox dpdk: Add new DPDK stack to integrate with I/O services 2019-12-20 16:32:22 -08:00
Ettus_Logo.png
general.dox docs: Improve language on threading for recv() and send() 2019-08-22 15:33:56 -07:00
gpio_api.dox docs: e320: Add documentation for gpio and eeprom-flags 2019-05-17 11:02:02 -07:00
gpsdo.dox docs: fixed links where original URL was not accessible anymore 2019-11-22 10:15:01 -08:00
gpsdo_b2x0.dox docs: Comments on B2x0 + GPSDO 2016-09-27 17:08:41 -07:00
gpsdo_x3x0.dox docs: x300: Match GPSDO code examples to code, avoid Boost 2018-05-09 16:36:29 -07:00
identification.dox
images.dox Update ISE/Vivado versions in images.dox 2018-06-26 16:14:01 -07:00
install.dox
logging.dox log: Added more comments and manual page 2017-04-20 13:38:41 -07:00
mainpage.dox.in Remove proto-RFNoC files 2019-11-26 12:16:25 -08:00
mpm.dox docs: Improve section on MPM 2018-06-09 23:39:42 -07:00
multiple.dox Docs: Update channel number 2018-01-19 16:49:29 -08:00
ni_rio_kernel.dox Docs: Updated niusrprio Driver 2018-08-29 10:42:29 -07:00
octoclock.dox Docs: Minor housekeeping 2016-10-21 10:05:23 -07:00
octoclock_firmware_burner.1
pythonapi.dox cmake: Bump dependency versions for UHD 4.0.0.0 2019-11-26 11:49:08 -08:00
rd_testing.dox X310: update UBX/SBX gain settings for phase alignment testing 2019-12-13 09:11:51 -08:00
stream.dox
style.css
sync.dox
transport.dox docs: Fix wrong anchor for PCIe transport params 2019-10-15 11:45:40 -07:00
twinrx.dox docs: Add comments for TwinRX and MCR 2019-01-15 11:43:11 -08:00
uhd.dox docs: Add page for the C API 2018-07-19 16:39:57 -07:00
uhd_cal_rx_iq_balance.1
uhd_cal_tx_dc_offset.1
uhd_cal_tx_iq_balance.1
uhd_config_info.1
uhd_find_devices.1 uhd: Removed drivers for E100/E110 2017-09-29 10:52:27 -07:00
uhd_image_loader.1 uhd: Removed drivers for E100/E110 2017-09-29 10:52:27 -07:00
uhd_images_downloader.1
uhd_semvar.dox docs: Added section on UHD semantic versioning 2016-10-28 09:59:10 -07:00
uhd_usrp_probe.1 utils: Add RFNoC-specific features to uhd_usrp_probe 2019-11-26 12:16:25 -08:00
usrp1.dox docs: Add Known Issues section to USRP1 manual page 2018-03-23 16:47:11 -07:00
usrp2.dox docs: Add Known Issues section for USRP2/N2x0 2018-03-23 16:39:21 -07:00
usrp2_card_burner.1
usrp_b100.dox docs: Added Known Issues to B100 manual 2018-03-23 16:29:58 -07:00
usrp_b200.dox docs: Fix various typos 2019-03-28 17:03:13 -07:00
usrp_e1x0.dox docs: Updates to legacy devices, XCVR2450 2017-10-23 15:15:06 -07:00
usrp_e3xx.dox docs: Add info on FPGA flavours for E320 and N3xx 2019-11-07 13:44:39 -08:00
usrp_n2xx_simple_net_burner.1
usrp_n3xx.dox docs: Add info on FPGA flavours for E320 and N3xx 2019-11-07 13:44:39 -08:00
usrp_x3x0.dox docs: x300: update docs for multiple timed commands 2019-08-07 11:43:57 -07:00
usrp_x3x0_config.dox docs: fixed links where original URL was not accessible anymore 2019-11-22 10:15:01 -08:00
usrp_x3xx_fpga_burner.1
vrt_chdr.dox Docs: Typo fixes 2018-01-19 16:49:29 -08:00