| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Because our headers do not require C++11, they need a different syntax
(e.g., vector<vector<int> >, note the space between the >). Since some
editors automatically pick up a .clang-format from a parent dir, this
helps when editing headers.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Moving the example `main` within the include guards for the file. This
is mostly to help clang-format's include guard detection.
|
|
|
|
|
| |
Remove trailing vim hints in header files. This functionality will be
replaced by clang-format.
|
|
|
|
|
|
| |
Turning off clang formatting around the program option declarations.
clang-format makes them looks bad an unreadable because it thinks the
options are function calls or something.
|
|
|
|
|
|
| |
Various data structures are nicely formatted to be human-readable.
clang-format makes these structures harder to read, so we can skip
formatting these sections.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This commit adds a loopback benchmark for a PC with 2 DPDK-compatible
NIC ports that are connected together via a cable. It sends messages
with embedded sequence numbers (outgoing and last-seen) for maintaining
a flow control window of packets in flight. It tracks the number of
bytes sent/received and reports the time the test took and average
throughput.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds an internal wait queue API to uhd-dpdk. Socket configuration
requests had their blocking calls re-implemented on top of this API, and
it is also used to service requests to wait on RX packets (w/ timeout).
The wait API involves a multi-producer, single-consumer queue per I/O
thread (waiter_ring), with a condition variable used for sleeping. The
data structure is shared between user thread and I/O thread, and because
timeouts make resource release time non-deterministic, we use reference
counting on the shared resource.
One reference is generated by the user thread and passed to the I/O
thread to consume. A user thread that still needs the data after waking
must get() another reference, to postpone the destruction of the
resource until it is done.
Timeouts are based on CLOCK_MONOTONIC. For recv, a timeout of 0
indicates blocking indefinitely, and a negative timeout indicates no
timeout is desired.
Also drop timeout for closing sockets in uhd-dpdk.
The timeout would allow a user thread to pre-empt the I/O thread's
cleanup process. The user thread would free data structures the I/O
thread still needed to function. Since this timeout is superfluous
anyway, let's just get rid of it.
Also add some more input checking and error reporting.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set MTU of Ethernet ports:
Some NICs (like the Mellanox ones) require this to work.
Add ARP responder to uhd-dpdk.
Clean up pending ARP request list when done:
Threads waiting for an ARP request to complete would be woken up when
the request completed, but they wouldn't get removed from the list of
pending requests. This fixes the issue.
|
|
|
|
|
|
| |
The TwinRX dboards only support a master clock rate of 200 MHz, which is
now emphasized in the manual. In addition, the meaning of tick rate,
sampling rate, and master clock rate in the TwinRX context is explained.
|
|
|
|
|
| |
Boost changed the includes, and boost/version.hpp was being implicitly
imported. This makes the include explicit.
|
|
|
|
| |
Non-CONST type waveforms require a non-zero wave freq
|
|
|
|
|
|
|
|
|
|
|
| |
During certain RPC calls (e.g. update_component), the MPM RPC server is
slow to respond to reclaim requests, which can causes RPC timeouts.
These changes fix those timeouts.
By setting the reclaiming timeout to twice the timeout of an RPC call,
we have some margin for error on the host side, while not affecting the
underlying claiming logic in MPM. The loop should still operate on a 5
second period, but now has more leeway during stressful conditions.
|
|
|
|
|
| |
Using new rpc client new API that ensure atomic setting of timeout on
each rpc call.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current implementation of the UHD RPC client has a timeout that is
being accessed non-atomically. Many calls follow the pattern:
1. set_timeout(value)
2. request_rpc()
3. set_timeout(default)
which is not atomic. Other concurrent calls on the same rpc client may
change the timeout value; leads to unexpected behavior
These new set of function will, instead, handle
setting and re-setting the timeout atomically in the RPC request.
|
|
|
|
|
| |
Add a benchmark of packet handlers and device3 flow control. Benchmarks
use mock transport objects.
|
|
|
|
|
| |
Moving device3 flow control functions to a header file so they can be
included in benchmark utility.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- Add default bandwidth range
- Add default mash order constant
- Delete MPM todos
- Cleanup whitespace in MPM python code
- Add docstring for is_lo_dist_present
|
| |
|
|
|
|
| |
Update tx_samples_from_file lo-offset naming convention
|
| |
|
|
|
|
|
|
| |
Header wasn't included until Boost 1.56.
Fixes 5c012cad7858 ("lib: experts: Add potentially missing but...")
|
| |
|
| |
|
|
|
|
|
|
|
| |
- Update corrections on frequency or LO source change
- Add legacy EEPROM properties
- Move DSP control initialization earlier
- Fix TX antenna list property
|
|
|
|
|
| |
This adds an include for boost/core/noncopyable.hpp. Without it, builds
would potentially fail on Boost 1.69++.
|
|
|
|
|
| |
- Moves the cutover frequency for the 900 MHz LO filter from 900 to 975 MHz.
This fixes an image issue in TX when transmitting near 325 MHz or 900 MHz.
|
|
|
|
|
|
| |
- examples affected: rfnoc_rx_to_file
- fixes UHD build error with Boost 1.67: boost::posix_time::seconds no
longer supports double argument as of version 1.67
|
|
|
|
| |
Some versions of MSVC report issues without it.
|
|
|
|
|
|
|
| |
These compiler warnings mostly pop up on MSVC. Most of them are due to
inconsistent usage of size_t, uint{8,16,32}_t, and even int.
This commit changes types mostly such that variables have the correct
type to begin with, although it also contains a few explicit type-casts.
|
|
|
|
|
|
|
| |
These compiler warnings mostly pop up on MSVC. Most of them are due to
inconsistent usage of size_t, uint{8,16,32}_t, and even int.
This commit changes types mostly such that variables have the correct
type to begin with, although it also contains a few explicit type-casts.
|
| |
|
|
|
|
| |
When adding E320 devtests, the `endif` clause had the wrong argument,
which resulted in a CMake warning.
|
|
|
|
| |
This fixes a C4267 which pops up a lot when compiling UHD with MSVC.
|
|
|
|
| |
This fixes a warning C4267 which pops up a lot in this file.
|
|
|
|
|
|
|
| |
Move filling the TX buffer outside the critical path. Now, we pre-fill
the TX buffer before entering the send loop (and before setting the
TX stream time), and fill the TX buffer after calling send() (for the
next iteration).
|
|
|
|
|
| |
- Format `if` statements to multiple lines
- Add quick comment on the exit checks
|
|
|
|
|
|
|
|
| |
Move the setting of the streaming start times back as late as possible.
Currently, there are memory allocations in between setting the
time_spec in the TX metadata and actually starting streaming. This will
lessen the need for an INIT_DELAY and decrease the probability of late
packets.
|
| |
|
|
|
|
|
| |
- Set SPI clock back to 3 MHz
- Fix returned frequency for ADF5355 (rev A and B boards)
|
| |
|
| |
|
| |
|