Commit Graph
28952 Commits
Author SHA1 Message Date
Romain Beurdouche 09aec7f1d8 feat(oran_fhlib_5g): Documentation for Arm targets 2025-04-04 13:26:01 +00: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
brobert db27b09b7c enabling ARM and INTEL memory alignment 2025-04-01 12:23:03 +00:00
brobert a0f16e7e83 fix(oran_fhlib_5g): Do not include immintrin.h for Arm targets
Remove include of immintrin.h in radio/fhi_72/oaioran.c when compiling for a Arm target.
2025-04-01 12:23:03 +00:00
robert ebde2f3698 fix(oran_fhlib_5g): Build error due to SIMDE header for Neon
Remove include of SIMDE Neon header sse_intrinsic.h to compile on ARM. Otherwise the error below is issued.

```
/usr/include/simde/arm/neon/get_lane.h:279:5: error: incompatible type for argument 1 of ‘vget_lane_f16’
 279 |     SIMDE_CONSTIFY_8_(vget_lane_f16, r, (HEDLEY_UNREACHABLE(), SIMDE_FLOAT16_VALUE(0.0)), lane, v);
 removed the inclusion of neon.h
```
2025-04-01 12:23:03 +00:00
Jaroslava Fiedlerova fca1971a2d Merge branch 'integration_2025_w13' into 'develop'
Integration: `2025.w13`

Closes #923, #924, #928, and #925

See merge request oai/openairinterface5g!3345

* !3300 Allow RSRP report handling in phy-test mode
* !3318 Improve handling of some pointers causing potential segfault
* !3321 DLSCH scheduler LOGs assertion prevention in case of HARQ disabled
* !3335 Other compilation improvements
* !3338 prevent access to NULL pointer in RELEASE_IE_FROMLIST
* !3337 Fix for wrong NSA init at UE
* !3339 fix NTN regression by correctly setting cellBarredNTN_r17 for NTN band again
* !3340 NR UE: fix nr_pbch_channel_estimation()
* !3260 Shared memory realtime radio simulation
* !3341 rfsimulator: apply deadlock detection only if more than one client is connected
* !3343 K-offset updated with configured sub carrier spacing
* !3331 Add documentation for Foxconn RU
* !3216 FHI72: Management plane support
* !3295 Fix SRS report TLV unpack
2025-04-01 09:36:38 +00:00
Jaroslava Fiedlerova 90bdcaafb5 Merge remote-tracking branch 'origin/Aerial_srs_unpack_fix' into integration_2025_w13 (!3295)
Fix SRS report TLV unpack

Changes the SRS unpacking to not expect padding to be present in the buffer when
working with Aerial, with which the report TLVs are not padded to the nearest
32-bit boundary. This issue was found when using a UE with 1 SRS port, which
causes the TLV to not have a length divisible by 4. Also adds a function to pull
X amount of bytes into a uint32_t, which is used to process the last 4 byte
block of the TLV, only pulling the bytes which are not padding. Completed the
SRS.indication dumping procedure to print out the report TLV. Changed the
SRS.indication unitary test to fill the last 4 byte block of the report TLV
appropriately according to the length ( which ensures the padding bytes are set
to 0 )
2025-03-31 20:06:08 +02:00
Jaroslava Fiedlerova c2179d87bf Merge remote-tracking branch 'origin/fhi72-mplane' into integration_2025_w13 (!3216)
FHI72: Management plane support

At the moment, tested with Benetel 550 and 650 RUs FW v1.2.2
- support for multiple RUs
- RPCs implemented: <connect>, <subscribe>, <get>, <supervision-watchdog-reset>,
  <edit-config>, <validate>, <commit>, <disconnect>
- read PTP sync status from operational datastore xml
- get vendor name, and for xran store RU MAC, MTU and IQ bitwidth and PRACH
  offset, and transfer this info
- store interface name, low-level-tx/rx-endpoint names, tx/rx-carrier names,...,
  from operational datastore xml
- add reference gNB/DU config files with M-plane support
- update FHI readme
2025-03-31 15:29:58 +02:00
Jaroslava Fiedlerova 7a278e746f Merge remote-tracking branch 'origin/foxconn-doc' into integration_2025_w13 (!3331)
Add documentation for Foxconn RU

This MR adds documentation for using the Foxconn RU with OAI, as it piques the
interest of some in the community. Note that this RU is not continuously tested
with OAI L1. Additionally, we have observed throughput degradation in OAI
versions beyond tag 2024.w30, and the issue is under investigation. For now, we
are providing documentation based on what we have tested in our lab.
2025-03-31 15:28:12 +02:00
Jaroslava Fiedlerova 0c5e7b439c Merge remote-tracking branch 'origin/NTN_Koffset_updated' into integration_2025_w13 (!3343)
K-offset updated with configured sub carrier spacing

According to 38.331 , cell specific K-OFFSET provided in SIB19 is provided in
number of slots as per 15Khz SCS Koffset before being applied, needs to be
updated to the slots according to the configured subcarrier spacing.
2025-03-31 15:25:41 +02:00
Robert Schmidt 321b1c4ce1 Increase maximum logging line length for in-memory log
- Increase the maximum logging line for print done through
  log_output_memory().
  The reason is that we hit this line length when printing some machine
  generated configuration (XML) through the M-plane.  Increase to make
  more of it visible.
- To limit the impact, only increase this locally in function
  log_output_memory(), and statically assert that it will never be
  larger than 64 kB.
  In other places, we use the old limit.
- Move the definition MAX_LOG_TOTAL to log.c, because it's only used
  there.
2025-03-31 12:16:18 +02:00
Teodora 7beb88425f Use [HW] logging instead of [PHY] or [NR_PHY] 2025-03-31 12:16:18 +02:00
Teodora a4479a2e65 Add M-plane tutorial 2025-03-31 12:16:18 +02:00
Teodora bf0a0aa06b Clarification on delay profile 2025-03-31 12:16:18 +02:00
Teodora 75d5b31f4a Add Benetel650 8x8 reference DU config file for M-plane 2025-03-31 12:16:18 +02:00
Teodora c7dffd416a Add Benetel550 4x4 reference gNB config file for M-plane 2025-03-31 12:16:18 +02:00
Teodora d5fceb8e1f Parsing RU M-plane info to xran 2025-03-31 12:16:18 +02:00
Teodora 430026f1ec Wait until RUs are ready and add <disconnect> RPC for M-plane
- if RU(s) are not well configured, disconnect immediately and stop the DU
  - if all RUs are well configured, proceed with waiting until ready. The RU is
    ready when the carriers are activated. Either the RU already has preconfigured
    carriers (previous M-plane client configured), or the DU has to wait until receives
    the notifications.
2025-03-31 12:16:16 +02:00
Teodora f22bc5acc7 Add <commit> RPC for M-plane 2025-03-31 12:15:20 +02:00
Teodora b478930a04 Add <validate> RPC for M-plane 2025-03-31 12:15:20 +02:00
Teodora e79c79b82e Add <edit-config> RPC for M-plane
- generate CU-planes RU configuration based on the loaded yang models
    and DU config file
  - not yet implemented for libyang and libnetconf2 v1
2025-03-31 12:15:18 +02:00
Teodora dd8a6eaaf5 Load yang models
Ideally, we should load the yang models from the RU operational datastore, but the issues are following:
  1) the yang models order is not good - dependancy models have to be loaded first
  2) earlier O-RAN yang versions (e.g. v4) is not properly defined (i.e. optional parameters should not be included by default)

Added support in both cases, loading from RU with <get-schema> RPC, and loading statically from "radio/fhi_72/mplane/yang/models" folder.
2025-03-31 12:14:33 +02:00
Teodora e0ffba49ae Store U-plane related info from xml
- interface name,
  - TX/RX carrier names, and
  - TX/RX endpoint names
2025-03-31 12:14:30 +02:00
Teodora 45d0eaf3c4 Get and store M-plane related params for xran 2025-03-31 12:13:44 +02:00
Teodora 2cd5c1faf7 Add <supervision-watchdog-reset> RPC for M-plane 2025-03-31 12:12:38 +02:00
Teodora 6266239c34 Add <subscribe> RPC for M-plane 2025-03-31 12:11:58 +02:00
Teodora 07bab2a707 Get the current sync status from operational datastore 2025-03-31 12:11:11 +02:00
Teodora fb670db91e Get info from xml operational datastore
- obtain one or multiple node values
2025-03-31 12:10:10 +02:00
Teodora 064866459c Add <get> RPC for M-plane 2025-03-31 12:10:03 +02:00
Rúben Soares Silva d9e3725a21 Unpack SRS report TLV not expecting padding to be present
Add a function pullx32 to pull x amount of bytes into uint32_t
Change the unpacking to pull only the needed bytes, and skip over the padding, when not Aerial
Change SRS.indication dumping function to also print the report TLV contents
Change SRS.indication unitary test to fill the last 4 byte block of the report TLV according to the length, with padding
2025-03-31 10:15:08 +01:00
Jaroslava Fiedlerova b822dcda22 Merge remote-tracking branch 'origin/rfsim_small_improve_deadlock_detection' into integration_2025_w13 (!3341)
rfsimulator: apply deadlock detection only if more than one client is connected
2025-03-31 10:32:23 +02:00
Jaroslava Fiedlerova 11960896b7 Merge remote-tracking branch 'origin/shm-radio' into integration_2025_w13 (!3260)
Shared memory realtime radio simulation

Realtime and near-realtime RFSimulator alternative without channel modelling.
The purpose of this library is to allow realtime simulation of gNB and nrUE.

The library is loaded using --device.name vrtsim. The server side (gNB) should
also configure --vrtsim.role server and --vrtsim.timescale according to
requirements.

Limitations:
- Only 1UE-to-1gNB connection supported

Future work:
- Telnet API
2025-03-31 10:22:12 +02:00
Teodora 93aaaef50e Add RPC send and receive functionalities 2025-03-29 12:51:07 +01:00
Teodora 3f98ec50ef Add ssh connect function for M-plane 2025-03-29 12:51:07 +01:00
Teodora da63bf9f9f M-plane integration - initial commit 2025-03-29 12:51:07 +01: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 978fa2ed05 These commands are unnecessary
- the FHI72 CMakeLists.txt exists and POST_BUILD properly links oran_fhlib_5g library
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
Teodora 3a095ac57e M-plane support - explanation on needed parameters
- RU IP address - to connect to RUs via netconf
  - DU MAC address - for setting up the CU-planes on RU; not used in xran
  - VLAN tag (*) - for setting up the CU-planes on RU; not used in xran
  - DU keypair - for authentication when connecting to RU(s)

The parameters that RU-controller shall retreive from RU list of
capabilities:
  - MTU
  - compression
  - RU MAC address
  - PRACH offset (**)

(*) VLAN tag is not used in xran but an option is given in fh_config struct.
In my opinion, it is not a very suitable place, as it is needed for VFs.
Therefore, I moved it in the initialization part for M-plane purposes.

(**) PRACH offset shall be >= max(Ntx,Nrx), as per O-RAN CUS specification:
"The O-DU may decide to use same eAxC ID value to address endpoints on different O-RUs,
but eAxC ID values assigned to one O-RU must be unique within the O-RU’s endpoints of same direction."
=> however, LITEON supports flexible assignment of PRACH eAxC IDs, so
we made a workaround in the xran library to support PRACH eAxC IDs same
as PUSCH eAxC IDs.
2025-03-29 12:51:07 +01:00
Raghavendra Dinavahi b141faaf30 K-offset updated with configured sub carrier spacing
According to 38.331 , cell specific K-OFFSET provided in SIB19 is provided in number of slots as per 15Khz SCS
Koffset before being applied, needs to be updated to the slots according to the configured subcarrier spacing.
2025-03-28 16:44:51 +01:00
Bartosz Podrygajlo cea02a16b1 Modify 5g_fdd_rfsimulator testcase to use shm_radio
Use timescale 0.5 to make sure the iperf UL test passes. Also, disable
asan as this adds computational complexity that makes the test fail.
2025-03-28 14:58:46 +01:00
Jaroslava Fiedlerova 0bf40318ff Merge remote-tracking branch 'origin/fix_nr_ue_pbch_chan_est' into integration_2025_w13 (!3340)
NR UE: fix nr_pbch_channel_estimation()
2025-03-28 14:08:14 +01:00
Jaroslava Fiedlerova 98fe1390ac Merge remote-tracking branch 'origin/fix_ntn_regression' into integration_2025_w13 (!3339)
fix NTN regression by correctly setting cellBarredNTN_r17 for NTN band again

fixes e73e0454
2025-03-28 14:07:36 +01:00
Jaroslava Fiedlerova ea541e90ba Merge remote-tracking branch 'origin/fix_wrong_nsa_init' into integration_2025_w13 (!3337)
Fix for wrong NSA init at UE

This error is shown in the UE logs as following

[RLC]   Activated srb0 for UE 0
[RLC]   SRB0 already exists for UE 0, do nothing
2025-03-28 14:06:19 +01:00
Jaroslava Fiedlerova f82af5421b Merge remote-tracking branch 'origin/issue_923' into integration_2025_w13 (!3338)
prevent access to NULL pointer in RELEASE_IE_FROMLIST

Closes #923
2025-03-28 10:01:22 +01:00
Jaroslava Fiedlerova 2670185eb1 Merge remote-tracking branch 'origin/more_compilation_improvements' into integration_2025_w13 (!3335)
Other compilation improvements

The goal of this MR was to avoid compiling gNB MAC when compiling uesoftmodem
2025-03-28 10:00:20 +01:00
Jaroslava Fiedlerova e8901dd358 Merge remote-tracking branch 'origin/disable_harq_improv' into integration_2025_w13 (!3321)
DLSCH scheduler LOGs assertion prevention in case of HARQ disabled

NR_sched_pucch_t structure is NULL if HARQ is disabled
2025-03-28 09:58:15 +01:00