49 Commits

Author SHA1 Message Date
Robert Schmidt
61a1e8c0d8 Remove common_lib.h includes
After having removed eth_params_t from all L2/L3 files, we can reduce
the scope of common_lib.h, and remove the include from many files.

Signed-off-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2026-06-30 11:34:09 +02:00
Robert Schmidt
8107939f08 Change OAI license to CSSL v1.0 (and others)
- all RAN code, CI code, configuration files, dockerfiles, in CSSL v1.0
- all deployment code (openshift, charts, ancillary files like shell
  scripts), in MIT
- documentation in CC-BY-4.0
- exceptions might apply and are listed in NOTICE
- there is a new LICENSES folder with all licenses
- CONTRIBUTIONS.md has been updated accordingly

For automated changes based on OAI PL v1.1:

    perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.{c,h,cpp}
    perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.ts
    perl -i~ -0pe 's/<!--.*Licensed to the OpenAirInterface.*openairinterface.org\n.*-->/<!-- SPDX-License-Identifier: LicenseRef-CSSL-1.0 -->/s' **/*.xml

The rest (cmake, files with missing license, cmake) manually.
2026-03-27 16:36:37 +01:00
Robert Schmidt
6ae4ec37ca Remove most doxygen file-level commands, copyrights, and authors
Remove the \file directive, as it is always superfluous  because the
current file is implicit [1]:

> If the file name is omitted (i.e. the line after \file is left blank)
> then the documentation block that contains the \file command will belong
> to the file it is located in.

Author names and e-mails are not relevant for us: it can always be
inferred from git blame, and is often outdated.

Eurecom code has been contributed and was under OAI PL v1.0/v1.1.

For the cpack package contact: put generic email address that is
independent of an individual and that will remain reachable.

[1] https://www.doxygen.nl/manual/commands.html#cmdfile
2026-03-27 14:52:47 +01:00
Raghavendra Dinavahi
0b100620f4 Changed uplink_frequency_offset from int32 to int64, required for NTN-FR2 2026-03-09 11:50:30 +01:00
Laurent THOMAS
a1b4220a91 Exclusively use OAI_RNGSEED env variable everywhere
Hide normal table initialization of Ziggurat generator from outside to
force the usage of randominit() for RNG initialization. In this step,
remove the randominit() seed parameter and only rely on OAI_RNGSEED for
a consistent RNG initialization, as this parameter was used differently
("0" as fixed number or to force a random seed).

Now, only use OAI_RNGSEED env variable to force the usage of a fixed
seed.
2025-12-01 12:10:31 +01:00
Robert Schmidt
5ac381dd59 Remove dead code 2025-11-14 18:17:29 +01:00
Robert Schmidt
eefb9da69a Reimplement nFAPI message exchange after msgDataTx removal
Reimplement nFAPI message exchange between L1 and L2 following the
changes in parent commit removing msgDataTx.

Avoid direct calls and use NR_IF_module fptrs to avoid linking problems.
allowing to remove some function definitions that are not needed.
2025-11-14 18:16:02 +01:00
Guido Casati
0348aa08b9 Remove rb_id parameter from SDAP TX entity - QFI determines DRB mapping
- Remove rb_id parameter from nr_sdap_tx_entity() function signature
- Update tx_entity function pointer
- Remove rb_id parameter from sdap_data_req() function signature
- Remove unused rb_id variable from sdap_tun_read_thread

The rb_id parameter was redundant since SDAP determines DRB ID
from QFI mapping via entity->qfi2drb_map(entity, qfi). This
simplifies the interface.
2025-10-24 11:55:25 +02:00
Laurent THOMAS
1dd0194e32 remove unused global queues, dead code 2025-10-14 20:36:48 +02:00
Robert Schmidt
8ccd944db2 Merge remote-tracking branch 'origin/rf_emulator_and_timers_fix' into integration_2025_w34 (!3589)
RF emulator and improvements of the timers

RF emulator:
Add an RF library emulating a real device without the need of a real
device.  This is thought to enable using phy-test without requiring a
radio device or channel simulation.  The library synchronizes on the
real time clock, drops TX and generate noise on RX.  Noise generation
can be disabled and the noise level configured.

Timers improvements:
- Fix standard deviation for merged timers
- Add display of ULSCH decoding timers
- Add decoding timer in AAL
2025-08-21 15:22:44 +02:00
Robert Schmidt
89e6e53f8c Remove --emulate-rf option and corresponding code
With the RFemulator, there is no need for a dedicated --emulate-rf
option anymore. For all uses of --emulate-rf, RFemulator should be used
instead.
2025-08-21 10:53:03 +02:00
Laurent THOMAS
4b47d26ea2 remove dirty and unused functions with global vars (not working anyway) 2025-08-20 09:36:48 +02:00
Robert Schmidt
6145f02b81 Function decls to make LTE compile 2025-01-27 10:59:19 +01:00
Laurent THOMAS
e0ca70c36d replace a set of #define by a C bit array, remove duplicated extern global variable declaration 2025-01-09 15:28:25 +01:00
Laurent THOMAS
279d49415f remove un-necessary global variables 2024-12-04 12:26:36 +01:00
Robert Schmidt
4d22ac6fd0 Provide handle_nr_srs_measurements() in 4G
4G/5G FAPI code is located in the same file. Since 5G code calls 5G
specific functions, these functions need to be defined in 4G.

The solution would be to separate the FAPI changes into 4G and 5G.
2024-11-29 09:15:08 +01:00
Guido Casati
eaeae880d0 Removed unused wait_for_sync 2024-11-06 10:15:26 +01:00
Robert Schmidt
68f8ef7c7a Reduce amount of logs in L1/L2
This commit removes many logs that just show memory addresses, indices,
etc., which, I presume, do not mean anything to the "average user" and
developers alike.
2024-10-29 16:36:13 +01:00
Robert Schmidt
8bffd1666d Avoid complete rebuild on cmake run with git info change
Before this commit, the following will trigger a complete rebuild:

- create another git name (git checkout -b test)
- run cmake again manually (cmake ..)
- run ninja again

The top-level CMakeLists.txt uses add_definitions() to add git
information to all targets; if some git information changes, this will
mark all command lines as dirty, triggering the build.

There is an easy solution: instead of passing this information on the
command line, pass it in a header. This commit uses configure_file() to
generate a file oai_version.h in the build directory with the same
information. Various sources files, e.g., main executables, use this to
output the same information as before. It is then also not necessary to
use header guards, as cmake takes care to create this file.

If cmake is re-run, it will update the header, and trigger only files
including this header will be rebuilt (which can be shown with the above
stpes). The information passed is the same as before, and updates the
information when the old method would have updated it.
2024-08-28 15:57:24 +02:00
Robert Schmidt
2e804f53c0 Remove useless LINK_ENB_PDCP_TO_IP_DRIVER option 2024-08-02 15:31:04 +02:00
Robert Schmidt
32d9e75dc5 Remove --nokrnmod option, as we never use the kernel anyway 2024-08-01 18:22:46 +02:00
Robert Schmidt
cf950dfa86 Remove netlink/PDCP_USE_NETLINK: it's not used
Remove netlink code, and the PDCP_USE_NETLINK macro, as there is no
known use, it makes the code more complicated, and is simply "technical
debt".

In 4G PDCP, a subtle change has been introduced, in pdcp_module_init()
of pdcp.c. Looking at the diff of this commit, it can be seen that there
is now a new "else-if (ENB_NAS_USE_TUN_W_MBMS_BIT)" branch that is under
what was the "if (PDCP_USE_NETLINK)" branch, while the code fragment was
actually inside the "else" branch of PDCP_USE_NETLINK. This seems to be
necessary: previously, if we did not use noS1 mode and we don't use any
TUN (i.e., the eNB), the else block would set up this interface. It is
important that this interface is brought up, because if we omit it,
RFsim will not work. It seems to me that this interface will regularly
create some traffic; without it, RFsim will be blocked, and the UE
cannot connect.

In short, it seems to be important to have the MBMS interface, which
injects traffic in the RFsim side, which will unblock RFsim. The change
in pdcp_module_init() preserves the total changes of the if-else
(PDCP_USE_NETLINK).
2024-08-01 18:22:45 +02:00
Robert Schmidt
e50978e7de 4G RLC/PDCP interface: remove function pointers
Remove function pointers that were used in the past to implement the
F1(-U) interface in 4G, i.e., to have different functions to handle
split/monolithic operations. As we don't have F1 in 4G anymore (see
commit 9dc2282249), we don't need the
function pointers anymore.

On that occasion, rename the 5G functions by prepending nr_ to them;
this allows to refactor the interface in 5G further (which is not the
focus of this changeset).
2024-07-30 20:00:40 +02:00
Bartosz Podrygajlo
b2a46e3b76 Remove unused variables from softmodems, focusing on NR UE: chain_offset, card_offset, numerology,
oaisim_flag, dumpframe, rx_input_level_dBm, emulate_rf
2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo
19033ca822 Remove num_missed_slots from softmodems and some extra unused functions from NRUE. 2024-07-18 09:31:37 +02:00
Bartosz Podrygajlo
dc91550e2c Remove unused flag single_thread_flag from softmodems. 2024-07-18 09:31:29 +02:00
Bartosz Podrygajlo
28489a29ba Remove references to unused library OML 2024-06-26 10:12:28 +02:00
Robert Schmidt
6b37d183ce Remove set_latency_target(), add lock_memory_to_ram()
set_latency_target() attempts to set keep "low latency" by
- writing a specific latency to /dev/cpu_dma_latency
- setting manually the minimum CPU processor frequency to be the maximum

There is no functionality to undo this after stopping the softmodem(s),
and most users are probably not even aware that OAI does this. It is
generally preferable to set this beforehand using a governor or by
disabling sleep states (as outlined in the tutorial, and in a follow-up
commit in the performance tuning docs).

The previous mlockall() call, to lock memory to RAM, is retained in a
new function. There were additional mlockall() calls, which have been
replaced with lock_memory_to_ram(), where necessary.
2024-06-03 13:59:41 +02:00
Laurent THOMAS
1ab3b8dd8e add version signature in core files to be able to compare with the ELF one 2024-03-08 16:29:54 +01:00
Laurent THOMAS
f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Laurent THOMAS
206aa36a47 Make read-only globals const, additional fixes
- Global variables that are never written to are marked const
- Remove some EXTERN declaration
- Remove unused `log_mem_multi` from logging module
2023-08-18 14:20:37 +02:00
Robert Schmidt
ddf549b1f3 Move radio CMakeLists.txt to subdirectory
- move following radios: AW2S, BladeRF, IRIS, LMSSDR, RFsimulator, USRP
- move following transports: Ethernet, benetel4g, benetel5g
- for each: create independent cmake variable to switch compilation
  on/off, in order: OAI_AW2S, OAI_BLADERF, OAI_IRIS, OAI_LMSSDR,
  OAI_SIMU, OAI_USRP, OAI_ETHERNET, OAI_BENETEL4G, OAI_BENETEL5G
- Remove RF_BOARD variable, allows to compile multiple boards at once
- where applicable: remove USERSPACE/LIB in path, i.e., move files up to
  directories, as all are userspace libraries

Note that with the above, it is now mandatory to enable a radio
implementation before compiling it, e.g., for USRP:

./build_oai -w USRP
cmake .. -DOAI_USRP=ON && ninja oai_usrpdevif
2023-07-07 08:35:28 +02:00
Robert Schmidt
51fe9b84dd Merge remote-tracking branch 'origin/pdcp-callbacks-simplify' into integration_2023_w13 2023-03-31 18:03:40 +02:00
Robert Schmidt
a6486909ca Reimplement itti_wait_tasks_end() to allow custom wait handlers
In the UE, we wish to handle ^C in the UE to send a message before
terminating, so we allow custom wait handlers to implement such
functionality. Use itti_wait_tasks_unblock() to unblock
itti_wait_tasks_end().

Also, implement itti_wait_tasks_end() using semaphores, as signals are
not async-signal-safe (and therefore should not be used in a signal
handler).
2023-03-28 14:12:05 +02:00
Robert Schmidt
2ac2a7f074 Make separate header for nr_pdcp instead of using 4G pdcp
Creates function that have nr_pdcp_ prepended to their name, and change
the signature of some functions for the 5G PDCP:

- nr_pdcp_layer_init()
- nr_pdcp_data_req()
- nr_pdcp_remove_UE()
- nr_pdcp_config_set_security()
- nr_pdcp_remove_UE()
- Make separate functions for nr_pdcp_data_req_srb/drb()
2023-03-27 16:39:24 +02:00
Robert Schmidt
3f0833b140 Merge remote-tracking branch 'origin/no-platform-const-asn-dep' into integration_2023_w10 2023-03-08 19:04:22 +01:00
Robert Schmidt
8a15fb7c63 RC: forward declarations and link physims better
The simulators have been changed: due to linker errors that would arise
otherwise, a lot of functions are defined in them to avoid such errors.
Some functions are also defined in header files; in this commit, we
define most functoins in nr_dummy_functions.c, which is compiled in, not
by including the C file, but by adding it to the target in
CMakeLists.txt

- nr_dlsim+nr_ulsim need NR_IF_Module_init(), so it cannot be in
  nr_dummy_functions, but the others need it
- Link correcr NR_IF_Module_init() into these simulators, and reduce
  overall link list
- Correctly link remaining simulators
2023-03-06 20:04:38 +01:00
Bruno Mongazon-Cazavet
490e230b75 merge last develop 2023-02-27 10:32:36 +01:00
Bruno Mongazon-Cazavet
4e0f7419dc merge with develop 2023-02-24 13:52:37 +01:00
Robert Schmidt
6553239fbc Remove ocp-enb/split73 2023-02-23 16:31:04 +01:00
Robert Schmidt
9dc2282249 Remove 4G F1 2023-02-20 11:38:53 +01:00
Bruno Mongazon-Cazavet
fcc41355ea merge with latest develop 2023-02-20 10:36:36 +01:00
Bruno Mongazon-Cazavet
8601b8c990 Fix IQ recorder/player for nrUE 2023-02-17 12:00:46 +01:00
laurent
43b698f434 fix race cond in mbms startup procedure 2023-02-15 13:50:44 +01:00
laurent
9f8a468d94 remove eNB threads for RRC and MAC, MAC thread was only for DRX config (useless) and RRC thread has many race conditions with MAC+PHY 2023-02-15 13:50:44 +01:00
laurent
ef1d5079f2 stats display with 5G flag 2023-02-15 13:50:44 +01:00
laurent
b74ba0fb92 cleaning only 2023-01-19 14:52:39 +01:00
Robert Schmidt
6ecf3db1e5 Merge remote-tracking branch 'origin/move_user_execs' into integration_2022_wk50 2022-12-15 16:17:29 +01:00
Anurag Asokan
215bb1b02c Moving to execuatbles (incorporating comments) 2022-12-13 09:21:01 +01:00