Files
openairinterface5g/doc
Robert Schmidt 55cebe6edf Provide add_timed_physim_test() in cmake
Add two new macros that allow to register physim tests for ctest,
including timing thresholds that should be fulfilled.

First, add_timed_physim_test() registers a new test using a helper
script RunTimedTest.cmake. This is because after test execution, we need
to analyze logs, and the recommended way to do multiple steps in one
test is via a helper cmake script:
https://cmake.org/pipermail/cmake-developers/2016-February/027816.html

Second, check_physim_threshold() adds new thresholds. It takes a text to
be parsed, and a condition (e.g., "< 20") to check for the number
following the threshold (which is assumed to be present right after the
threshold). It uses a test property to count the total number of checks
(limiting them to 10), and sets environment variables for the script.  I
initially planned to use a test property for checks, but those are only
valid in the same directory, and RunTimedTest.cmake seems to be assumed
by cmake to be "elsewhere", hence I needed to resort to environment
variables.

RunTimedTest.cmake is called through cmake with the test parameters and
checks. It re-constructs a list of checks [1], runs the test, and pipes
the log into a separate script that is passed all checks (see below).
Afterwards, it verifies that both the test and script passed.

A script analyze-timing.sh builds an awk script from the checks passed.
The script analyzes each line of the test output for the threshold, and
compares against the threshold. analyze-timing.sh returns success if all
checks passed.

[1] I did not manage to pass a "list" of checks in a single environment
variable through the check_physim_threshold(), which would be simpler.
2025-09-12 14:53:09 +02:00
..
2021-10-27 22:36:33 +00:00
2025-04-14 11:39:08 +02:00
2025-08-05 18:38:16 +02:00
2025-08-11 17:11:21 +02:00
2022-09-29 10:03:28 +02:00
2025-04-18 09:02:54 +02:00
2025-08-11 17:11:21 +02:00
2021-12-07 13:47:15 +08:00

OpenAirInterface documentation overview

This is the general overview page of the OpenAirInterface documentation.
This page groups links to general information, tutorials, design documents, radio integration, and special-purpose libraries.

IMPORTANT NOTE:
Before reading this documentation, we strongly advise you to keep your own repository rebased on develop or at least to checkout the documentation on the version of the repository you are using.
Then the documentation will better reflect the features available in your repository so that you may avoid some errors.
Beware if you previously pulled the develop branch that your repository may be now behind develop.

[[TOC]]

General

There is some general information in the OpenAirInterface Gitlab Wiki

Tutorials

Legacy unmaintained files:

Designs

Building and running from images

Libraries

General

Radios

Some directories under radio contain READMEs:

The other SDRs (AW2S, LimeSDR, ...) have no READMEs.

Special-purpose libraries

  • OAI has two scopes: one based on Xforms and one based on imgui, described in this README
  • OAI comes with an integrated telnet server to monitor and control
  • OAI comes with an integrated web server

Testing

  • UnitTests.md explains the unit testing setup
  • Component tests are under tests/. Currently, there is a simple CU-UP tester, see the corresponding README.md.
  • TESTBenches.md lists the CI setup and links to pipelines
  • The CI setup uses a custom framework to run end-to-end tests.

Developer tools

  • formatting is a clang-format error detection tool
  • iwyu is a tool to detect #include errors
  • docker-dev-env is a ubuntu24 docker development environment