| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add configuration sections to the UHD config file for NIC entries. Keys
are based on MAC addresses, and the entries beneath the section describe
which CPU and I/O thread to use for the NIC and its IPv4 address.
Make ring sizes configurable for uhd-dpdk. Ring size is now an argument
for packet buffers. Note that the maximum number of available buffers
is still determined at init!
Add ability to receive broadcasts to uhd-dpdk. This is controllable by
a boolean in the sockarg during socket creation. dpdk_zero_copy will
filter broadcast packets out.
Add dpdk_simple transport (to mirror udp_simple). This transport allows
receiving from broadcast addresses, but it only permits one outstanding
buffer at a time.
Fix IP checksum handling in UHD-DPDK.
TX checksums were not being calculated in the NIC, and in RX, the check
for IP checksums allowed values of zero (reported as none). Now packets
with bad IP checksums will be dropped.
|
|
|
|
|
| |
This transport is based on uhd-dpdk, and it includes a global context
that must be initialized prior to creating any dpdk_zero_copy objects.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also updates our coding style file.
Ancient CMake versions required upper-case commands. Later command
names became case-insensitive. Now the preferred style is lower-case.
Run the following shell code (with GNU compliant sed):
cmake --help-command-list | grep -v "cmake version" | while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done > convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \
'*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed
(Make sure the backslashes don't get mangled!)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This library makes available a userspace network stack with a
socket-like interface for applications (except the sockets pass around
pointers to buffers and use the buffers directly--It's sockets + a
put/get for buffer management). Supported services are ARP and UDP.
Destinations can be unicast or broadcast. Multicast is not currently
supported.
The implementation has two driver layers. The upper layer runs within
the caller's context. The caller will make requests through lockless
ring buffers (including socket creation and packet transmission), and
the lower layer will implement the requests and provide a response.
Currently, the lower layer runs in a separate I/O thread, and the caller
will block until it receives a response.
The I/O thread's main body is in src/uhd_dpdk_driver.c. You'll find that
all I/O thread functions are prefixed by an underscore, and user thread
functions do not.
src/uhd_dpdk.c is used to initialize uhd-dpdk and bring up the network
interfaces.
src/uhd_dpdk_fops.c and src/uhd_dpdk_udp.c are for network services.
The test is a benchmark of a flow control loop using a certain made-up
protocol with credits and sequence number tracking.
|
| |
|
|
|
|
|
|
|
| |
All copyright is now attributed to "Ettus Research, a National
Instruments company".
SPDX headers were also updated to latest version 3.0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a zero copy transport using the liberio library.
Currently supported API version for liberio is 0.3, this might
still very much break, since the library is still in development.
So far nobody uses it UHD so we might as well merge it.
Signed-off-by: Alex Williams <alex.williams@ni.com>
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
|
| |
|
|
|
|
|
|
|
| |
- Can be used to share a single zero_copy_if object with multiple
streams
- Allows creating of virtual streams that are indistinguishable
from low-level streams
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
All device-specific CMake components are now registered in one place,
before the host/lib/ subdirs are sourced. This way, there are no
cyclic dependencies.
This solves the issue where ENABLE_X300=Off could disable USB, but
preserves the fix where ENABLE_X300=Off would still build some X300
codes.
|
| |
|
|
|
|
|
|
| |
set LibUHD to required
* If required component's dependencies aren't met, CMake will throw an error unless user specifically disables it
|
|
|
|
|
|
| |
Our VRT routines have the option to switch, on the fly, between
VRLP and CHDR. This adds new CHDR-specific (un-)packers, which
can only work with CHDR.
|
| |
|
|
|
|
| |
* since its only used internally in b100
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Using cmake's recommended conventions for find scripts.
Find script also handles different library name for freebsd.
|
|
|
|
|
|
| |
Once the send buffer size is increased,
there appears to be no performance advantage.
I would rather not have extra implementations.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
for features
implemented different ifdefs in the cpp files
|
|
|
|
|
|
|
| |
Reimplemented simple udp transport with one impl class.
Moved wait for ready/select implementation into common header.
Important note on select, timeval should have usecs < 1 second
or it may error on some platforms. Fixed in this implementation.
|
|
|
|
| |
the source
|
|
|
|
|
|
|
|
| |
the buffers are reusable and the overhead is reduced (nothing to malloc)
also removed the zero_copy.cpp (not needed anymore)
need to test on device...
|
|
|
|
| |
fw_common.h
|
| |
|
| |
|
| |
|
|
|
|
| |
transports
|
|
|
|
| |
other find package stuff
|
| |
|
| |
|
|
|
|
| |
now docs, examples, utils, usb, are configurable components with dependencies
|
| |
|
| |
|
|
|
|
|
|
| |
libuhd prints summary of components
added newline prints before config checks
|
|\ |
|