Commit Graph
61 Commits
Author SHA1 Message Date
Bartosz Podrygajlo 46c120651f ZMQ radio
This commit introduces ZMQ-based radio library. Each pair of RX/TX antennas is
represented by a ZMQ REQ/REP socket pair which streams continuous IQ samples
from radio start until stop.

Usage:
Simplest configuration is to connect OAI NR UE to OAI GNB with the same number
of antennas - by inverting the RX and TX channels in ZMQ radio configuration the
gNBs TX is mapped to UEs RX antennas and vice versa.
2026-04-22 22:34:02 +02:00
francescomani 683d855d97 add flag for unused function arguments in common folder CMakeLists
(not enforced because of fmtlog external dependency)
2026-03-27 18:06:33 +01: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
Robert Schmidt 82315ead3e Fail early if configuration module can not initialize properly
In the case that the config module cannot load the driver for libconfig
or yaml, currently, there might be a cascade of errors that are
difficult for users to understand. For instance (partially redacted for
clarity):

    [CONFIG] Error calling dlopen(libparams_libconfig.so): libparams_libconfig.so: cannot open shared object file: No such file or directory
    [CONFIG] config module "libconfig" couldn't be loaded
    [CONFIG] config_get, section log_config skipped, config module not properly initialized
    [LOG] init aborted, configuration couldn't be performed
    [CONFIG] config_get, section (null) skipped, config module not properly initialized
    [CONFIG] /home/francesco/openairinterface5g/common/config/config_userapi.c 68 nfapi has no processed integer availablle
    [CONFIG] config_get, section (null) skipped, config module not properly initialized

    Assertion (get_softmodem_params()->default_pdu_session_id == -1) failed!
    In get_common_options() /home/francesco/openairinterface5g/executables/softmodem-common.c:161
    Use uicc0.pdu_sessions.[0].id to change the requested PDU session ID (is 0)

Here, the error is the missing shared object, but a user is more likely
to look at the last error instead of the first.

This commit addresses it by checking early for
CONFIG_ISFLAGSET(CONFIG_ABORT), and stopping if it is set. Additionally
changes include making functions static, removing late
CONFIG_ISFLAGSET() checks, and the CONFIG_ISFLAGSET() in
load_configmodule(), because at that time "uniqCfg" is not set yet and
thus does not do anything (this is likely a regression of an earlier
cleanup).

See-also: f50d5f5a9b ("make multiple config instead of one implicit
  global")
2026-02-19 17:06:29 +01:00
Robert Schmidt a0a68d56d5 Merge remote-tracking branch 'origin/remove-dead-code' into integration_2026_w05 (!3831)
semi-manual remove of not used #define commands

As i was upset to see all these #define with no code under, i made a
global pass to remove the obvious cases semi-manual remove of not used
bodies

manual script, then a lot of manual review

    grep -IRs "#define" ../openair* ../common/* ../executables/ ../nfapi/ ../radio/ | \
        fgrep -v '(' | fgrep -v '//' |awk '{print $2}' | egrep -v "#define *$n"| \
            while read n ; do
              grep -IRs $n ../openair* ../common/* ../executables/ ../nfapi/ ../radio/  | grep -v "#define *$n" | grep -q $n || echo $n;
            done

will give a decent list of #define never used.  Then, I think we should
keep lists of # define when it comes from standards, even if the code
doesn't use it right now
2026-01-29 08:23:41 +01:00
Laurent THOMAS 5b0d34c3ad semi-manual remove of not used #define commands. I let the unused defintions that come from standard bodies 2026-01-27 13:23:10 +01:00
Robert Schmidt 345d5315e5 config_module: make pointers const 2026-01-20 10:02:38 +01:00
Bartosz Podrygajlo 6bd3545a78 RFsimulator C++ conversion
Convert rfsimulator C source code to C++ to access to STL.
2025-12-17 22:24:12 +01:00
Laurent THOMAS e54738c7e4 flush command line printf, it is called before log module initialisation 2025-10-30 11:53:57 +01:00
Laurent THOMAS 278d2cbca1 fix several not tested malloc or calloc return value 2025-09-09 18:04:26 +02:00
Robert Schmidt 85e198b178 Config module: use printf_params() to print log messages 2024-10-29 09:37:10 +01:00
Bartosz Podrygajlo 0b684732ee YAML as a drop-in replacement for libconfig
This commit introduces a substitute module library for setting up softmodems using YAML instead of libconfig.
The softmodems should work the same with both types of files. Extra care was put to make sure the behavior
of both modules is the same.

Example yaml config files were added for the UE and gNB
2024-09-06 08:33:10 +02:00
Robert Schmidt 7a8b2fe4a9 config module: print clear error when config file does not exist
Print a clear error if a config file does not exist (unclear previously,
when the user would get a confusing, unspecific, "file I/O error" on
line 0)

I tried to free the memory that had been allocated at that point, and
verified that using the address sanitizer. Nevertheless, the function
does too much, and is too complicated for refactoring.
2024-06-03 12:37:33 +02:00
Robert Schmidt b9fd5a6f75 config module: make it less verbose 2024-06-03 12:37:33 +02:00
francescomani b30c9c8f3c uselessAssignmentPtrArg 2024-04-09 16:55:51 +02:00
francescomani 8404da759f nullPointerRedundantCheck 2024-04-09 16:55:51 +02:00
Laurent THOMAS 63b64d4fce move common code file in common directory
remove several unused files
remove mem_block_t that is never used in a different way than a simple heap buffer
move up IP address type and remove duplications of the same struct declaration
2023-12-19 10:37:10 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
frtabu 21b3484e02 Initial web server implementation 2022-11-30 11:34:54 +01:00
laurent d6d4d87e0b code review comments 2022-08-18 16:43:26 +02:00
laurent 8b159d6ddc remove unclear function free_configmodule(), as we have end_configmodule() that do the same 2022-08-18 09:47:44 +02:00
frtabu 983c956b77 Fix config module memory leaks 2022-08-16 17:58:55 +02:00
laurent 65b399fcd7 fix bugs in config module and config usage
fix bug from this MR

fix bug from this MR

stupid-mistake
2022-08-16 09:22:15 +02:00
Laurent Thomas 1eb1c17f0c merge develo 2022-01-19 16:46:46 +01:00
hardy ec286386dc Merge remote-tracking branch 'origin/NR-LogsSanAddrFix' into integration_2022_wk02 2022-01-12 14:27:00 +01:00
Laurent THOMAS b4b457345d merge develop 2022-01-10 12:49:47 +01:00
frtabu e4d3bf9f41 Fixes after MR 1257 1225: sanitize address error introduced in ldpctest when using alternatives ldpc libraries and LOG flooding introduced in nrUE. Also improved openCL ldpc library build 2022-01-04 15:15:09 +01:00
Laurent THOMAS 764ec5a234 improve log header 2021-12-26 15:44:10 +01:00
Laurent THOMAS c33c8aa836 merge develop, some minor code review updates 2021-12-14 12:52:22 +01:00
Laurent THOMAS 5c3abe6fc8 add F1-U DU Uplink 2021-08-31 21:03:22 +02:00
hardy 3199b81584 Merge remote-tracking branch 'origin/enhance-rfsim' into integration_2021_wk08 2021-02-23 09:30:42 +01:00
Laurent Thomas 11a318170e memory wrong free in global vars used for configuration storage 2021-02-18 22:23:31 +01:00
Mahesh 7f4ffe29c8 Fix whitespaces 2021-02-12 01:25:09 +05:30
Mahesh b1a760a61d Addressed some minor issues 2021-01-18 15:42:53 +05:30
Mahesh d7ccdbe6b0 Resolved build warnings(25+) and 5G nFAPI downlink errors(future_ul_tti_request) 2021-01-14 12:28:45 +05:30
Mahesh 79e792443f L2 nfapi test(noS1) working 2020-12-16 16:17:32 +05:30
Mahesh 7eb016675d Resolved errors in building phy-simulator 2020-12-08 12:28:16 +05:30
Mahesh 062d00fb85 PBCH and PDCCH constellation obtained for downlink. 2020-10-12 19:02:11 +05:30
Mahesh ff64d6ac10 Resolved UE building error and updated packing of P7 messages 2020-10-07 15:01:40 +05:30
MaheshK1995 f17fc6dafd VNF/PNF mode set using --vnf --pnf options 2020-06-27 17:24:19 +05:30
Raphael Defosseux c409da3bb8 Patch provided by Gabriel Arrobo.
Mainly comestics and integer type management

Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2020-01-09 14:10:04 +01:00
yilmazt 2b05aba106 --phy_simulators compile up to nr_dlsim 2019-05-22 21:49:19 +02:00
frtabu d171e18c1e fix some cppcheck errors and warnings in config module and T Tracer 2019-01-22 22:43:33 +01:00
frtabu e329ba787c fix command line parsing for config_getlist, also improve help processing and fix probe (opt) parameters processing 2019-01-22 22:43:33 +01:00
Raphael Defosseux 55732deb80 Astyling the common files
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2018-11-22 15:03:27 +01:00
frtabu d151ce6feb Add a parameter to load_configmodule API to allow an exec to specify that it may be run with only command line options 2018-11-05 17:28:00 +01:00
frtabu 8dd62b32e3 fix bad build_oai directive to compile libconfig for phy-simulators, fix load_configmodule crash because config source not set. 2018-11-02 18:17:11 +01:00
frtabu 18ec5d8047 abort execution when an unknown option is passed via the command line: add config_check_cmdlineopt API to config module, create lte-softmodem-common.c source to remove duplicate code in lte-softmodem.c and lte-uesoftmodem.c, fix segfaults in exec_function of lte-uesoftmodem 2018-11-02 18:17:11 +01:00
Florian Kaltenberger d7e7d00806 removing use of a default config file 2018-11-02 17:31:54 +01:00