This adds two tools to the ./tools/ subdirectory:
== clang-formatter.sh ==
This is simply a small shell script that can be executed from the top of
the UHD repository, and it will format all files according the the
.clang-format file. It can be executed as such:
$ CLANG_FORMAT=clang-format-14 ./tools/clang-formatter.sh apply
Specifying a clang-format executable is optional, but note that
clang-format 14.0 should be used.
== run-clang-format.py ==
This is a Python script that is a modified version from
https://github.com/gnuradio/clang-format-lint-action/blob/ \
0b0cb14cf220a070d2a8b2610bd74ad1546252a1/run-clang-format.py
It was modified to add --patch-file option.
Alongside this file is a .clang-format-ignore file, which is sourced
from this script. The command can be run as such:
$ ./tools/run-clang-format.py \
--clang-format-executable clang-format-14 \
--extensions c,cpp,h,hpp,hpp.in,ipp \
-r \
--patch-file format.patch \
/path/to/uhd-repo
It will provide both a nice output summary as well as a patch file that
can be consumed with `patch -p0 < format.patch`.
This tool compares two git branches of UHD and produces a list of tests
required to verify the changeset. The intended use case is to be able to
verify branches that are being created for pull requests.
For example, say a pull requests is based on a branch that only modifies
files in host/lib/usrp/x300. Then it is only necessary to run hardware
tests on X300, running tests on other USRPs would be a waste of time.
This commit contains two files: The utility itself (a Python script),
and a rule file (a YAML file). The former uses the latter to map
a changeset to a list of tests.
The previous version would create a symbolic link to the current UHD
directory and then create a tarball excluding all the files that would
cause issues for Debian, but it did not exclude those same files when
doing the debuild. These changes create a separate directory and copy
the necessary files into it so that the tarball and debuild use exactly
the same set of files. Also added exclusion of MSVC files.
Signed-off-by: michael-west <michael.west@ettus.com>
Add a dissector based on LUA. The C/C++ based dissector is hard
to use on Windows system, because one needs to compile Wireshark as well.
The LUA based dissector can be used without any compilation and it
runs out of the box on all systems that run wireshark. It also provides
improved preview display in the info column which makes it less often
necessary to lookup data in the detail pane.
Along with the LUA dissector comes a color rules file that colors the
RFNoC packets based on their type which makes navigation in the log
even more easy.
There LUA dissector is able to configure the CHDR width in it's
preferences.
Co-authored-by: Martin Braun <martin.braun@ettus.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Co-authored-by: Aaron Rossetto <aaron.rossetto@ni.com>
GNU Radio-based tests are not used anymore. The gr- prefix is removed
from the USRP test folder name and tests from the apps folder that do
not depend on GNU Radio are kept in the top level folder.
A few minor fixes so the script works for N210:
- Set source on master mboard to "external" if "mimo" ref or pps is
specified.
- Add support for comma-separated lists for ref and pps arguments.
- Fix bug where not supplying the lo_source argument would cause the
script to fail.
Signed-off-by: michael-west <michael.west@ettus.com>
Because this script deletes the entire contents of --buildpath, we no
longer provide '..' as the default. First, it is not a suitable default,
because it will contain the directory from which this script is called.
Second, if someone runs this script from a source repo for UHD, and this
repo is checked out into a non-empty directory, the script will still,
by default, delete all the contents from that directory.
Now, the script fails when not providing --buildpath. Note that CI code
is already using this command line argument.
The original commit incorrectly fails the build
uhd in the meta-ettus context. This uses prefix
instead to get the base path.
Signed-off-by: Steven Koo <steven.koo@ni.com>
This commit replaces uses of distutils.sysconfig's get_python_lib()
function with sysconfig's near-equivalent get_path() function to get the
directory for site-specific, platform-specific files. Unfortunately,
get_path() does not have a way to easily modify or strip the prefix
applied to the path like get_python_lib() does, so the code must
manually modify the path to get the same effect:
- First, the platlib path is retrieved from the get_path() call.
- Next, the default base that is used to form the pathlib path is
queried via the get_config_var('base') call.
- Next, the portion of the platlib path that matches the default base is
stripped, and any leading path separator remaining is stripped. This
fundamentally replicates the behavior of get_python_lib() with an empty
prefix (i.e., the prefix positional parameter is specified as '').
- If a different prefix is desired, then the os.path.join() function is
used to combine the new prefix with the stripped pathlib path, ensuring
that the platform-specific path separator is used in crafting the path.
- Add data packet payload field
- Add metadata support
- Add missing management fields (OpsPending, ExtendedInfo).
- Add missing control fields (byte_enable, data, has_time)
- Update offsets for management OpPayload fields.
- Make the field names more consistent, readable, and consistent
with the RFNoC specification.
- Display value of fields in addition to name.
- Fix timestamp, eob, and eov offsets
The recent removal of cruft in 78336d4 caused an implicit include to be
missing from this dissector, causing it to no longer compile. The
include is added to the dissector explicitly now.
This commit updates the releases for which we want to upload UHD
support, as well as the way the version number is parsed from the Debian
changelog file.
This commit makes some of the CMake formatting consistent. CMake
patches were not, in fact, required to fix bugs, but we keep the
formatting improvements nevertheless.
Previously, we were doing this:
```cpp
extern "C" {
}
```
This is not how glib.h is supposed to be included, according to their
documentation. It turns out that it happened to work for a long time,
and lots of projects include glib.h that way, and the glib devs are
trying to accommodate for those cases. How nice of them!
However, on Fedora 34, we have a version of glib which does not have
a workaround patch, so we include glib.h the it should be.
The second issue was that a build script required the existence of
a `python` executable, which is not always available. A `python3`
executable can be assumed, since that's a dependency for UHD, too.
This is a rewrite of upload_debs.sh in python. It adds support for
building the generated dsc into debs before uploading.
Signed-off-by: Steven Koo <steven.koo@ni.com>
A recent commit changed the name of chdr_packet in uhd. This commit
accounts for this change and makes the dissector compile again.
Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
This script replaces CMake's package_source implementation to allow
for pulling in the firmware, fpga, mpm, host, and tools folders.
This builds two tarballs, one with and one without the firmware,
fpga, and mpm folders.
Remove UHD call to elevate thread priority to realtime from utils, and
add warning in documentation of set_thread_priority function. Setting
all threads to the same realtime priority can cause the threads to not
share access to the network interface fairly, which adversely affects
operation of the worker threads in UHD.
-Added test cases for the 184.32MHz clock rate.
-Removed some extra test cases for 200MHz clock rate in order to
cut down on test time.
-Added DPDK test cases (copied from 10gige and 2x_10gige test cases).
- Reduce long tests from 3600 seconds to 600 seconds.
- Remove 2xRX@153.6e6 test for N310 10 GbE (not practical).
Signed-off-by: michael-west <michael.west@ettus.com>