Commit Graph
546 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova 0226510c4a Merge remote-tracking branch 'origin/fapi-stop-exchange' into integration_2025_w48 (!3561)
Implementation of STOP exchange

This implements the STOP.request/indication for all 3 transport mechanisms, the
VNF will send the STOP.request to the PNF, indicating it will disconnect, and
await a STOP.indication from the PNF

The WLS VNF is reworked to be able to start before the PNF, by calling call
rte_eal_init and rte_dev_probe to determine if dpdk has been initialized
properly, before calling rte_eal_init in the intended process when it is
appropriate to do so
2025-11-27 15:01:39 +01:00
Rúben Soares Silva c83bd87459 Fixup WLS documentation and Makefile patch 2025-10-23 14:08:37 +01:00
Robert Schmidt af37aaee00 Merge remote-tracking branch 'origin/oran_beamforming' into integration_2025_w43 (!3605)
Support beam index in OAI 7.2 Fronthaul Interface

This branch supports beam index in OAI 7.2 Fronthaul Interface.

- For CP DL (PDSCH), nBeamIndex of the corresponding prbMapElm is set
  when sending IQ data in oran_fh_if4p5_south_out. nBeamIndex of the
  corresponding prbMapElm is set when sending IQ data in
  oran_fh_if4p5_south_out.
- For CP UL (PUSCH and PRACH), nBeamIndex of the corresponding prbMapElm
  is set in oran_fh_if4p5_south_out.

In addition, it fixes a couple of issues

- XRAN hardcodes nBeamIndex of PRACH to zero. Modify XRAN to support
  setting of nBeamIndex of PRACH and update xran F release patch.
- Fix the bug in calculating fh_config->neAxc where num_beams_period is
  multiplified twice

Testing methodology: Use Benetel O_RU for testing even though it does
not support beamforming. With successful registration and data transfer,
one could check the pcap on the fronthaul interface to see if CP packets
are with the right beam index.

Results:

1. Verified that CP-packets for SSB, DCI, PDSCH, PRACH, PDSCH, PUSCH,
   CSI-RS and SRS are with the right beam index
2. Verified that there is no side-effect on Benetel O_RU. UE could
   register properly.
3. Verified 4 SSB with ssb_PositionsInBurst_Bitmap = 85. Could see SSB
   and PRACH with 4 different indices.
2025-10-21 09:09:03 +02:00
Mario Joa-Ng c645e8b096 Fix xran: Correctly read PRACH beam index
Upgrade xran patch, bump version number.
2025-10-20 17:21:12 +02:00
Laurent THOMAS 00a7890449 asn1c doesn't follow c99 variables alias rules, it needs to be compiled this way. issue #509 reported in https://github.com/vlm/asn1c 2025-10-09 14:04:14 +02:00
Robert Schmidt 2c351c94d0 Merge remote-tracking branch 'origin/doc-updates' into integration_2025_w33 (!3590)
Improve MAC docs for MCS and docker for BuildKit usage

See commits for details. The first one is for fixing an omission in
!3281, the second to clarify docker build usage.

Closes: #973
2025-08-14 16:46:44 +02:00
Robert Schmidt 47b658baf5 Disable various UHD features
build_oai primarily builds UHD for OAI. Thus, a number of targets (B100,
USRP1/2, ...) can be omitted, as OAI does not run on them. Further,
disable documentation and man pages, which is typically not necessary
for the averages user, and does not need to be installed for containers.
2025-08-14 14:55:04 +02:00
Robert Schmidt 599a1a8c74 UHD installation: remove multiple packages at once
Removing packages individually is slow, because apt starts to (re-)read
it's database over and over again. Do it at once to speed up.
2025-08-14 14:55:04 +02:00
Robert Schmidt 334251c4ff Remove unused build_helper function 2025-08-14 14:55:04 +02:00
Robert Schmidt 6c4e5dccea Don't redirect installation log files to a file
Similarly to the parent, don't redirect log files to a file. It makes
the CI more complicated, and also raises user awareness of what is being
installed.
2025-08-14 14:55:04 +02:00
Jaroslava Fiedlerova 8f79abed2e CI: Update UHD version to 4.8 2025-08-12 22:27:29 +02:00
Robert Schmidt 35361db76b build_oai: don't redirect compilations to a file
Redirecting to a file has the problem that it is difficult in the CI to
recover these files. Furthermore, at least with ninja, when running
build_oai interactively, the build output will only take some lines
(because ninja rewrites lines), so the change should not be that big to
users.

One CI function would print the entire output from build_oai to the
console. Since that output might be long now, do not do this. The file
is archived, anyway.
2025-08-11 16:11:35 +02:00
Jaroslava Fiedlerova d630fb2965 Merge remote-tracking branch 'origin/cuup-load-tester' into integration_2025_w32 (!3547)
Add a CU-UP load tester and improve GTP performance

This adds a simple tester program for the CU-UP. It sets up a number of
UEs/bearers in the CU-UP via the E1 interface, then streams data in
downlink/uplink (as seen by the CU-UP). More information is available in
tests/nr-cuup/README.md.

Includes some fixes to properly verify that SCTP is installed, and use
"the right cmake way" to use it in cmake code (see commit for details).
2025-08-04 23:59:05 +02:00
Robert Schmidt 83bb8017cf Correct Findsctp.cmake
- Provide some documentation
- Make cmake keywards and sctp lib name lowercase
- Use standard form of find_package_handle_standard_args()
- Make an imported target sctp::sctp that will fail if being used in
  cmake unless defined, which will avoid that "sctp" appears in the
  cmake code but is silently discarded

See also:
https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#a-sample-find-module
2025-07-31 08:35:10 +02:00
Laurent THOMASandRobert Schmidt b65b5dd40e Remove specific directory for LTE SIM management tools
Move into openair3/NAS/TOOLS/CMakeLists.txt, and simplify the
CMakeLists.txt.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-07-30 17:39:12 +02:00
Robert Schmidt c6876ea9f0 Merge remote-tracking branch 'origin/fapi-wls-integration' into integration_2025_w29 (!3346)
Add WLS as a transport option for VNF/PNF, refactor existing options

This MR adds a new transport mechanism for the VNF and PNF split, using
the Intel WLS library, which makes use of DPDK and shared memory to
transport messages. This transport mechanism is what is used to
interface with Radisys ODU, while also working with OAI VNF/PNF.

The VNF and PNF have been refactored so that the transport-specific
functions are isolated from the rest of the logic, and as such,
interchangeable by means of function pointers.

The same change is done for the packing/unpacking procedures, allowing
to switch between FAPI and nFAPI encoding.

This MR also reduces the amount of duplicated code, by refactoring the
VNF with Aerial, which now only has the transport-relevant functions, as
well as the ones that are unique to it ( for example, the unpacking
procedures where a secondary data buffer is used for the message
payloads )

Additionally a new callback is added to the VNF to process
ERROR.indication messages, which currently only indicates which message
originated the error, and which error occurred.
2025-07-15 15:44:02 +02:00
Rúben Soares Silva 8d7f2a8fbd Add documentation for different VNF/PNF transport
Add a section in nfapi.md related to the different transport mechanisms available for VNF/PNF communication
Edit NR_NFAPI_archi.md to describe the VNF and PNF processing logic, as well as adding a flowchart for each of the components execution
Add the necessary patch to install the WLS library in the system
2025-07-15 13:00:03 +01:00
Romain Beurdouche 8e33727c37 feat(oran_fhlib_5g): pkgconfig fix for E release
E release had the same issue of not using pkgconfig properly as F release.
This issue was fixed in F release when enabling its compatibility with DPDK 21+.
This commit brings this fix to E release.
2025-07-09 14:55:44 +02:00
Romain Beurdouche 486726233d feat(oran_fhlib_5g): Enable to include a BBDEV device while initializing EAL
In order to be usable in parallel of FHI 7.2, BBDEV devices should be included in the EAL initialization that is prformed by xran.
This commit adds a way of adding the BBDEV device from OAI.
Also fixes an issue with pkgconfig in xran.
2025-07-09 14:55:44 +02:00
Romain Beurdouche d3283c4819 feat(oran_fhlib_5g): F release works with DPDK21+
Modify xran F release patch to make it compile and run with DPDK 21+
(tested with DPDK 22.11)
2025-07-09 14:55:44 +02:00
Robert Schmidt b7a6b1b7d6 Do not include xran internal data: not needed 2025-07-09 14:55:44 +02:00
Robert Schmidt 918ea49686 Merge remote-tracking branch 'origin/phy_simulators_ctest' into integration_2025_w20 (!3379)
Add physim tests into ctest framework

Convert physim testcases listed in
cmake_targets/autotests/test_case_list.xml into ctest. Note: Tests for
dlsim_tm4 are excluded, due to compilation issues.

CTest evaluates success based on return code: '0' = pass, non-zero =
fail. For some simulators, the return code is non-zero even when the
test is successful (as indicated by success messages in the test logs).
For some simulators, the return code is always '0'. This inconsistency
has been address in the first two commits of this MR.

To build and execute these tests:

- using cmake

    cd openairinterface5g
    mkdir build && cd build # you can also do that in cmake_targets/ran_build/build
    cmake .. -GNinja -DENABLE_PHYSIM_TESTS=ON && ninja tests
    ctest

- using build_oai: physim-related ctests are activated when PHY
  simulators are built (use build_oai with '-P' or '--phy_simulators'
  option)

    cd openairinterface5g/cmake_targets
    ./build_oai --ninja --phy_simulators
    cd ran_build/build
    ctest

Link to newly created 4g and 5g RAN-Physim-Cluster pipelines:

- RAN-Physim-Cluster-4G: https://jenkins-oai.eurecom.fr/job/RAN-Physim-Cluster-4G/
- RAN-Physim-Cluster-5G: https://jenkins-oai.eurecom.fr/job/RAN-Physim-Cluster-5G/
2025-05-17 12:05:27 +02:00
Jaroslava Fiedlerova 2827eecfd9 Remove autotest physim test framework
No longer used in CI, replaced by ctest testing.
xmlstarlet not used anymore, can be removed from build_helper

Closes #826
2025-05-16 16:29:55 +02:00
Robert Schmidt 97856a812f Merge remote-tracking branch 'origin/oran-fh-doc-fix' into integration_2025_w20 (!3394)
Fix Liteon with MTU 1500 and update the FHI docs

- Closes #884 - needed to update the max fragments needed for
  transmission of one symbol; technically, 5 are enough but due to wrong
  equation in the xran F release we had to increase to 6
- Clarify packet length for VFs
- Update Foxconn doc and config file with MTU set for jumbo frames
- Update Benetel docs with new version v1.2.2
2025-05-15 19:16:40 +02:00
Robert Schmidt 176fd405d9 Add RHEL/rocky 9.6/9.7 to list of supported distributions 2025-05-13 14:39:24 +02:00
Teodora 3a1fc2ef65 Fix Liteon for xran F release and improve docs
1. Closes #884 - increase the XRAN_MAX_FRAGMENT from 4 to 6 (sufficient for MTU 1500 with compression 8b)
2. Add new firmware version that supports jumbo frames
3. Update the config file to align with the new Liteon unit in our lab - center frequency, jumbo frames, compression and RU MAC address,
as well as the max DL MIMO layers.
2025-05-13 12:53:16 +02:00
Romain Beurdouche e12bcc964d feat(oran_fhlib_5g): Make F release patch dual
Update the xran F release patch to work for Arm targets in addition to x86 targets.
2025-04-04 13:26:01 +00:00
Romain Beurdouche 54fd8ed9df feat(oran_fhlib_5g): BFP compression and decompression for Arm targets
The fronthaul library ships with BFP compression for AVX512 enabled targets.
This commit adds BFP compression for Arm targets by using the ArmRAL library.
2025-04-04 13:25:53 +00:00
047e80f070 feat(oran_fhlib_5g): Make E release patch dual
Update the xran E release patch to work for Arm targets in addition to x86 targets.

Co-authored-by: Yi-Hung Chang <Yi-Hung.Chang@eurecom.fr>
Co-authored-by: brobert <brobert@valiha.com>
2025-04-01 12:23:03 +00:00
Teodora 0be72c1917 Install dependencies for M-plane support 2025-03-29 12:51:07 +01:00
Teodora efcc9fc9d4 Properly include xran_common.h in ${xran_INCLUDE_DIRS}
- ${xran_LOCATION}/src/xran_common.h
  - delete unnecessary target_include_directories() from FHI72
2025-03-29 12:51:07 +01:00
Teodora 3219d0a5a1 Delete duplicated FindLibXml2.cmake file
- cmake version 3.12 defines libxml2 module; the default path is
    /usr/share/cmake-3.<sub-version>/Modules/FindLibXml2.cmake
  - OAI requires minimum cmake version 3.16
2025-03-29 12:51:07 +01:00
luis_pereira87 e1d4ff1126 Upgrade SIMDe commit 2025-02-19 10:32:00 +00:00
Raphael Defosseux 1b9fcc9858 fix(ci): adding leading lines and increasing visibility for building errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2025-01-03 09:42:49 +01:00
Robert Schmidt e5622f442c Merge remote-tracking branch 'origin/build-rocky9.5' into integration_2024_w50 (!3162)
Add Rocky 9.5 to list of distributions
2024-12-16 15:27:17 +01:00
Robert Schmidt 13a1d863c7 Add Rocky 9.5 to list of distributions 2024-12-12 08:34:44 +01:00
Robert Schmidt f8d7e1fd1b Findxran: exclude default paths, use hints
Some users copy libxran.so to a system directory (e.g., /usr/local/lib).
At the same time, we require xran_LOCATION to be set to find the build
directory. Use HINTS to prefer the location passed through
xran_LOCATION.

Also, use NO_DEFAULT_PATH to outright disallow global scope, to prevent
"accidentally" finding libxran.so in global scope (this is for
multi-user systems that are used in development, and where people have
different version of libxran for testing purposes). To still use
packages in e.g., /usr/local/, it would be possible to set xran_LOCATION
to this directory. (there is a problem that the version information will
likely not be read correctly, so this might not be enough)
2024-12-12 08:32:48 +01:00
Robert Schmidt 0b3d098654 Merge remote-tracking branch 'origin/fhi-f-release' into integration_2024_w49 (!3147)
Fronthaul xran library update to F release (2. and final step towards M-plane integration)

- xran library support -> both E and F releases
- RU delay profile removed -> not used in neither of the releases
- DU delay profile updated
- one-way delay measurements support is improved/fixed in the F release.
  However, not implemented here as it depends on the RU capabilities
2024-12-08 21:07:05 +01:00
Teodora 574b3eb348 Fronthaul xran library F release support
Major improvements:
  1) bbu_offload - enable packet handling on BBU cores
  2) dlCpProcBurst - DL CP processing on one or more symbols
  3) SRS CP processing - depends on the RU capabilities that can be
    retreived via M-plane (if RU is CAT B)
  4) nSecDesc - the number of section descriptors per symbol; it was hardcoded to 0 in E release;
    depends on the RU capabilities that can be retreived via M-plane
  5) RunSlotPrbMapBySymbolEnable - enable PRB mapping by symbol with multisection;
    depends on the RU capabilities that can be retreived via M-plane
  6) DSS (Dynamic Spectrum Sharing) support - depends on the RU capabilities that can be retreived via M-plane

Minor fixes in F that exist in E:
  1) prach_config->nPrachFilterIdx - explained in commit ID f3045396
  2) T1a_min_cp_dl - explained in the commit under title "Clarification on DU delay profile"
  3) fh_config->nULRBs - explained in commit under title "Further clarification on xran E release parameters"

Removed const for prb_conf argument in oran_allocate_cplane_buffers()
function, as F release requires the not const struct for
xran_init_PrbMap_by_symbol_from_cfg() and xran_init_PrbMap_from_cfg()
even though the struct is not modified inside of these functions.
2024-12-05 22:59:58 +01:00
Robert Schmidt a89aab8d84 build_oai: add --build-tool-opt to pass options to build tool
There are command line options that one might pass to ninja/make, but
for which cmake does not provide an interface. For instance, make/ninja
support -k/-kN to "keep going" after errors. Cmake does not provide an
option, but it is still possible to pass this. Make a build_oai option
to allow this, used in the next commit.
2024-11-29 16:15:09 +01:00
Robert Schmidt e8d8384e7e Add RHEL 9.5 to supported distributions 2024-11-12 17:50:12 +01:00
Robert Schmidt a93ad34c6b Remove non-required dependencies from install list
openssl and libffi are not required for building OAI. Remove them.
2024-10-31 12:53:08 +01:00
Robert Schmidt 9f56b8e21f Add Fedora 41 to list of supported distributions 2024-10-31 12:53:08 +01:00
arora 8f5327527e Disable UHD unit tests to avoid gcc13 warnings 2024-09-26 11:41:59 +02:00
Jaroslava Fiedlerova 0dae0551eb Merge remote-tracking branch 'origin/ci-remove-unused-code' into integration_2024_w38b 2024-09-23 17:26:14 +02:00
Jaroslava Fiedlerova 1ada1c2635 Merge remote-tracking branch 'origin/fhi-72-dpdkMemorySize' into integration_2024_w38b 2024-09-23 12:45:13 +02:00
Robert Schmidt ec2afa22b1 Fix: egrep is obsolescent, use grep -E
See e.g., egrep(1) [https://linux.die.net/man/1/egrep]:

> two variant programs egrep and fgrep are available. egrep is the same
> as grep -E. fgrep is the same as grep -F. Direct invocation as either
> egrep or fgrep is deprecated

See also the rationale of the POSIX description of grep
(https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html):

> This grep has been enhanced in an upwards-compatible way to provide
> the exact functionality of the historical egrep and fgrep commands as
> well. It was the clear intention of the standard developers to
> consolidate the three greps into a single command.

Closes: #839
2024-09-23 12:19:49 +02:00
Robert SchmidtandSagar Arora 68c28a4828 Modify default xran DPDK socket memory/limit to 0
The default values set by xran for DPDK socket memory/limit is 8192. It
is changed when the variable for the memory size, given down to xran, is
non-zero (cf also previous patch). Since the last patch, if nothing is
given in OAI configuration, OAI will pass down a size of 8192. However,
a configuration value of 0 is a valid choice (it is a pre-allocation,
DPDK will allocate dynamically), so modify the default in xran to be 0
so that all sizes, including 0, can be given to DPDK.

Note that the currently used implementation of xran will always try to
allocate this memory on NUMA node 0. If you want to use another one,
this field has to be set to 0 (no pre-allocation), and DPDK will
allocate it dynamically.

Co-authored-by: Sagar Arora <sagar.arora@openairinterface.org>
2024-09-21 07:12:07 +02:00
Robert Schmidt 513f0beb37 Parse xran version strings for Bronze, E, F 2024-09-21 07:12:07 +02:00
Robert Schmidt 06ec6150a1 Update latest SIMDE version
Build on ARM fails in the previous version, while the current master
(1a09d3bc) works. So let's update to a newer version to avoid problems
on ARM, and assuming x86 works.
2024-09-18 19:23:05 +02:00