Commit Graph
32101 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova a255b0bca6 Merge remote-tracking branch 'origin/fhi72-many-cores' into integration_2026_w13 (!4005)
FHI72: handle more than 64 cores
2026-03-24 10:07:22 +01:00
Jaroslava Fiedlerova 4973c17392 Merge remote-tracking branch 'origin/remove-old-cuda-ldpc' into integration_2026_w13 (!4007)
Remove old CUDA LDPC implementation

A new implementation is under way in !3955. To simplify the MR, remove the old
LDPC CUDA implementation in a first step.
2026-03-24 10:06:36 +01:00
Jaroslava Fiedlerova 844169962f Merge remote-tracking branch 'origin/cir-generator-image-v0.0.1' into integration_2026_w13 (!4006)
Update cir-generator image tag to v0.0.1
2026-03-23 22:35:47 +01:00
Jaroslava Fiedlerova e3c4c4da13 Merge remote-tracking branch 'origin/prb-overlap-fix' into integration_2026_w13 (!3933)
mac: fixes to prevent prb overlapping

- this patch fixes a bug in the MAC where the scheduled PRB resources can
  overlap
- at the same time, we try to enforce the same semantics for "rbStart" (which
  should be relative to the BWP) across the code as much as possible
2026-03-23 22:33:37 +01:00
Jaroslava Fiedlerova 15239d2595 Merge remote-tracking branch 'origin/ue-simplify-dlsch-llr' into integration_2026_w13 (!3851)
Bugfix in UE DLSCH LLR functions

Closes #1044
Fix bug in PTRS compensation.
2026-03-23 17:13:03 +01:00
Jaroslava Fiedlerova 23c4312630 Merge remote-tracking branch 'origin/nr_fix_ssbpos2' into integration_2026_w13 (!3982)
UE: update pdcch config only after mib read

- In MR !3929, this change was done to call update_pdcch_config if mac
  configuration is changed.
- Observed that the issue related to RAR after handover if SSB position changes
  occurs also in develop 2026_w10 where MR !3929 is merged.
- update_pdcch_config should be done only after sync obtained.
- this fix is similar to the fix in initial commits of MR !3929
2026-03-23 17:11:47 +01:00
Romain Beurdouche 3a92eed5b9 fix(build & doc): Remove remaining mentions of ldpc_cuda
* Option to build ldpc_cuda was remaining in the build script
* Build script option to build ldpc_cuda was still used in CI
* Mentions of ldpc_cuda were remaining in the documentation

Note: In the documentation, the example of ldpctest usage that was
loading ldpc_cuda was replaced by an example in which it is loading
ldpc_orig even though this is pointless as it makes ldpctest compare
ldpc_orig with ldpc_orig. On the other hand, it is the only library
other than the default ldpc that uses the former interface.
2026-03-23 13:56:46 +01:00
Jaroslava Fiedlerova c065a59890 Merge remote-tracking branch 'origin/fix_analog_das' into integration_2026_w13 (!3968)
Fix DAS via index based beamforming

DAS implementation via index based analog beamforming was broken after !3715.
This MR fixes it.
2026-03-23 13:10:16 +01:00
Robert 55adbe8890 Remove old CUDA LDPC implementation 2026-03-23 12:48:45 +01:00
Jaroslava Fiedlerova 390d96e55a Merge remote-tracking branch 'origin/remove-osd' into integration_2026_w13 (!4004)
Remove OSD, some scripts, oaisim references

The README says:
  It is just generating the XML file and it is placing it in
  $(OPENAIR_TARGETS)/SIMU/EXAMPLE/OSD/WEBXML/ or http://localhost/xmlfile/
  so that the oaisim could pars and run the simulation/emulation

oaisim does not exist anymore, and corresponding simulation cannot be done.
Also, it requires XAMPP and similar technologies, that I think nobody uses
in the context of OAI.
Remove also most references to oaisim.
Remove some scripts that are likely not used by anybody, or straight useless.
2026-03-23 12:26:47 +01:00
Merkebu Girmay 5b05df39d3 ci: update cir-generator image tag to v0.0.1 2026-03-20 18:57:57 -07:00
Thomas SchlichterandXin Zhe Khooi 5287ed68c6 gNB MAC: use new function get_rb_alloc() for RB allocation and prevent prb overlapping
Co-authored-by: Xin Zhe Khooi <khooixz@comp.nus.edu.sg>
Assisted-by: Gemini:3 Flash
Reviewed-by: Francesco Mani <email@francescomani.it>
2026-03-20 20:59:02 +01:00
Jaroslava Fiedlerova 0ba31c0f89 Merge branch 'integration_2026_w12' into 'develop'
Integration `2026.w12`

* !3985 Fix XNAP to avoid recompilation and unnecessary includes
* !3724 Better c style pss sss
* !3972 Resolve "Demote AssertFatal `PUCCH list is full` message to a warning"
* !3956 [FHI72] [xran F] Revert and simplify the code for Liteon FR2 interoperability
* !3970 Fix for NTN phy-test mode
* !3987 T: minor: remove target record_db from automatic building
* !3993 UE: Derive Serving Network Name from SIB1 PLMN
* !3997 vrtsim doc: clarify container requirements
* !3935 [FHI72] Fix long PRACH format
* !3998 Set rxgain to 0 in vrtsim
* !3964 CI: Add FHI7.2 phytest pipeline
* !4001 Remove unused ci-scripts/mysql4testresults/ dir and content
* !3999 bugfix: use proper pointer
* !3986 handle start symbol on non-zeroth downlink symbol for SIB1 for multiplexing pattern 3 configuration.
* !3957 replace static allocation of max antennas in a dynamic structure for gnb rach
* !3859 Delay compensation in SRS
* !3909 Adjust ssPBCH_BlockPower in FHI7.2 configs

Closes #1058

See merge request oai/openairinterface5g!3989
2026-03-20 13:29:57 +00:00
Jaroslava Fiedlerova a67c537dae Merge remote-tracking branch 'origin/fix-ssPBCH_BlockPower-config' into integration_2026_w12 (!3909)
Adjust ssPBCH_BlockPower in FHI7.2 configs

ssPBCH_BlockPower is the average EPRE of the resources elements that carry
secondary synchronization signals in dBm. In OAI, the SSB is the same level
as all the rest, so we can compute ssPBCH_BlockPower from RU TX power and
bandwidth using:

ssPBCH_BlockPower = P_TX(dBm) − 10 x log10(N_RB x 12)

where:
- P_TX is the RU transmit power
  - 24 dBm for indoor RUs (configurable on the RU)
  - 35 dBm for outdoor RUs (configurable on the RU)
- N_RB is the number of resource blocks for the configured bandwidth
- 12 corresponds to the number of subcarriers per RB
2026-03-20 10:39:53 +01:00
Jaroslava Fiedlerova b9803d6366 doc: Add description of ssPBCH_BlockPower into ORAN documentation 2026-03-20 09:21:14 +01:00
Robert Schmidt ec3642ea05 Merge remote-tracking branch 'origin/srs-delay-comp' into integration_2026_w12 (!3859)
Delay compensation in SRS

Implementation of delay compensation in channel estimation based on SRS.

Testing, for example, with

    sudo ./nr_ulsim -n1 -s50 -S50 -R51 -E 1 -W2 -y2 -z2 -d 10

we obtain the following logs.

LOGs with develop branch:

    [NR_PHY] 	  __lsRe__________lsIm__|____intRe_______intIm__|____noiRe_______noiIm__
    [NR_PHY] (   0)    687	  -198  |     688	  -198  |      -1	    -3
    [NR_PHY] (   1)      0	     0  |     688	  -196  |      -1	    -3
    [NR_PHY] (   2)    687	  -198  |     644	  -272  |      -1	    -1
    [NR_PHY] (   3)      0	     0  |     600	  -346  |      -1	    -1
    [NR_PHY] (   4)    513	  -498  |     556	  -422  |      -1	    -1
    [NR_PHY] (   5)      0	     0  |     512	  -496  |      -1	    -1
    [NR_PHY] (   6)    513	  -498  |     440	  -542  |      -1	     0
    [NR_PHY] (   7)      0	     0  |     370	  -588  |      -1	     0
    [NR_PHY] (   8)    226	  -682  |     298	  -634  |      -1	    -3
    [NR_PHY] (   9)      0	     0  |     228	  -680  |      -1	    -3
    [NR_PHY] (  10)    226	  -682  |     140	  -686  |      -1	    -1
    [NR_PHY] (  11)      0	     0  |      52	  -690  |      -1	    -1

intRe and intIm are the real and imaginary part of the interpolated
channel, respectively. These are the columns that matter. As we can see,
for example, in subcarrier 0 we have (688, -198), then in subcarrier 1
we have (688, -196), which is almost the same, and then in subcarrier 3
we have a jump (644, -272). This MR improves channel estimation by
taking delay into account. If we look at the following logs, we see that
the values vary more consistently from subcarrier to subcarrier.

LOGs with this MR:

    [NR_PHY] 	  __lsRe__________lsIm__|____intRe_______intIm__|____noiRe_______noiIm__
    [NR_PHY] (   0)    487	  -139  |     490	  -111  |      -1	     0
    [NR_PHY] (   1)    487	  -139  |     483	  -138  |      -1	     0
    [NR_PHY] (   2)    487	  -139  |     465	  -197  |       0	     0
    [NR_PHY] (   3)    487	  -139  |     436	  -254  |       0	     0
    [NR_PHY] (   4)    364	  -353  |     402	  -305  |      -1	    -1
    [NR_PHY] (   5)    364	  -353  |     361	  -352  |      -1	    -1
    [NR_PHY] (   6)    364	  -353  |     317	  -392  |      -1	    -1
    [NR_PHY] (   7)    364	  -353  |     269	  -426  |      -1	    -1
    [NR_PHY] (   8)    160	  -481  |     214	  -455  |       0	    -1
    [NR_PHY] (   9)    160	  -481  |     159	  -478  |       0	    -1
    [NR_PHY] (  10)    160	  -481  |      98	  -495  |      -1	     0
    [NR_PHY] (  11)    160	  -481  |      39	  -502  |      -1	     0
2026-03-19 17:41:59 +01:00
Robert Schmidt 7c81c8ad71 Remove most of oaisim references: does not exist anymore 2026-03-19 17:22:32 +01:00
Robert Schmidt a7bd188042 Remove unused/useless scripts 2026-03-19 17:17:06 +01:00
Robert Schmidt 79ab29c87f Remove unused defines in NGAP/S1AP 2026-03-19 17:14:05 +01:00
Jaroslava Fiedlerova 040b62e802 Merge remote-tracking branch 'origin/variable_nb_rx_ant_for_rach' into integration_2026_w12 (!3957)
replace static allocation of max antennas in a dynamic structure for gnb rach

NB_ANTENNAS_RX was used in 5G by mistake
there was also a error in O-RU implementation, with no consequences
(index not in right order)
2026-03-19 15:03:38 +01:00
francescomani e6e5c481d9 fixes for DAS handled via index based analog beamforming 2026-03-19 14:01:33 +01:00
Romain Beurdouche 8d78c97513 feat(FHI72): Fix lcore count on Arm targets
Meson configuration was configuring a wrong maximum number of lcores on
the Arm platforms we are using (Neoverse V2 & NVIDIA Grace) as no
configuration is provided for these platforms with DPDK 20.11.9.
This commit solves this issue by requesting meson to use a generic
config that sets a high maximum number of lcores.
2026-03-19 12:45:44 +00:00
Jaroslava Fiedlerova 785f12720e Merge remote-tracking branch 'origin/fhi_mux3' into integration_2026_w12 (!3986)
handle start symbol on non-zeroth downlink symbol for SIB1 for multiplexing
pattern 3 configuration.

This MR adds support for handling a non-zero start symbol for SIB1 when using
multiplexing pattern 3 with the per-slot CP format.

Previously, the implementation assumed that the first downlink symbol used by
a PDU always starts at symbol 0. However, this assumption does not hold for
SIB1 under multiplexing pattern 3, where the start symbol can be non-zero.

This issue does not apply to the per-symbol CP format.

Testing:
a. Microamp using the branch microamp_1048: UE registration ok. end-to-end ok.
b. Benetel: UE registration ok. end-to-end ok.
2026-03-19 13:04:18 +01:00
Robert Schmidt 49ad65c5a5 FHI72: handle more than 64 cores
xran needs to be informed about the cores to use for packet processing.
Prior to this change, we only filled the first 64bits, but it can go up
to 128 in xran. Change the helper accordingly to support all.
2026-03-19 12:17:07 +01:00
Robert Schmidt a088f6aab9 Remove OSD
The README says:

> It is just generating the XML file and it is placing it in
> $(OPENAIR_TARGETS)/SIMU/EXAMPLE/OSD/WEBXML/ or http://localhost/xmlfile/
> so that the oaisim could pars and run the simulation/emulation

oaisim does not exist anymore, and corresponding simulation cannot be
done. Also, it requires XAMPP and similar technologies, that I think
nobody uses in the context of OAI.
2026-03-19 12:13:39 +01:00
rmagueta 4f31a4eb89 The nr_srs_channel_estimation function is split into the nr_srs_ls_channel_estimation and nr_srs_channel_interpolation functions to allow the use of a common delay
Define CIRCULAR_INC
2026-03-19 10:07:07 +00:00
rmagueta 0db8ddac08 Implementing delay compensation during SRS-based channel estimation 2026-03-19 09:18:18 +00:00
Jaroslava Fiedlerova 16cac5c2f7 Merge remote-tracking branch 'origin/bugfix-T-rfsim' into integration_2026_w12 (!3999)
bugfix: use proper pointer

Use proper pointer to trace the buffer.
2026-03-18 22:44:28 +01:00
Sakthivel Velumani 04d35f90ec ue: simplify dlsch LLR functions
Change layer_llr buffer from 2D to 3D with symbol as first dimenstion. Refactor
layer demapping function.
2026-03-18 19:15:33 +00:00
Sakthivel Velumani 07f5e01ee8 bugfix: PTRS phase compensation
PTRS phase error is estimated in each symbol and should be compesation in the
last symbol. So far nr_dlsch_llr() used rxdataF_comp before PTRS phase
correction for all symbol except the last one. This commit fixes it by calling
nr_dlsch_llr() for all symbols after rxdataF_comp is compensated for PTRS phase
error. To do so, dl_ch_mag arrays are moved out of nr_rx_pdsch() to hold values
of all symbols.
2026-03-18 18:59:04 +00:00
Sakthivel Velumani 7c36011669 refactor: make rxdataF_comp 4D array
put symbol index as first dimension. It is necessary because the offset for
the buffer to start of a symbol can be arbitrary and hence not aligned to 32
byte boundary. Having each symbol in a separate dimension ensures alignment.
2026-03-18 18:57:45 +00:00
Sakthivel Velumani cb8e129397 clean-up: change type from int32_t to c16_t
Change rxdataF_comp buffer of PDSCH and PUSCH to c16_t and the functions that
use the buffer.
2026-03-18 18:26:18 +00:00
Sakthivel Velumani b3add42c0f clean-up: invert if condition, eliminate nesting 2026-03-18 17:30:36 +00:00
Jaroslava Fiedlerova ae5cd27361 Merge remote-tracking branch 'origin/remove-unused-ci-files' into integration_2026_w12 (!4001)
Remove unused ci-scripts/mysql4testresults/ dir and content
2026-03-18 16:44:53 +01:00
Jaroslava Fiedlerova 00c587af8f Merge remote-tracking branch 'origin/ci-add-fhi72-phytest' into integration_2026_w12 (!3964)
CI: Add FHI7.2 phytest pipeline

This MR consists of multiple changes related to FHI7.2 setups in CI.

- remove unused fhi72 configurations in CI
- introduce dpdk-init service in fhi72 deployments to setup sriov on the machine
- update phytest fhi72 configurations for running on bulbul
- add phytest fhi72 to RAN-SA-FHI72-CN5G pipeline
2026-03-18 16:26:19 +01:00
Robert Schmidt e3ac95035f Remove unused ci-scripts/mysql4testresults/ dir and content 2026-03-18 14:26:47 +01:00
francescomani 8aebe7c423 further cleanup since not using NB_ANTENNAS_TX/RX in 5G code 2026-03-18 12:20:48 +01:00
Jaroslava Fiedlerova 3b0d834635 Merge remote-tracking branch 'origin/vrtsim-zero-gain' into integration_2026_w12 (!3998)
Set rxgain to 0 in vrtsim

Set rxgain to 0 in vrtsim to match rfsimulator behavior
This addresses the issue where RSRP is different between rfsim and vrtsim. With
this RSRP values between rfsim and vrtsim should be similar.
2026-03-18 11:36:26 +01:00
Jaroslava Fiedlerova 4162369428 Merge remote-tracking branch 'origin/fix-prach-diff-mu' into integration_2026_w12 (!3935)
[FHI72] Fix long PRACH format

The problem was that xran_is_prach_slot() compared if the current slot is the
scheduled one. However, this becomes irrelevant if long PRACH format used.
Successfully tested end-to-end the PRACH index 7 with TDD DDDDDDDSUU and Benetel
v2.0.5.
2026-03-18 11:31:39 +01:00
Jaroslava Fiedlerova a6687b6040 CI: Add FHI72 2x2 phytest on cacofonix 2026-03-18 11:14:55 +01:00
Jaroslava Fiedlerova b400d1ee3f CI: Update FHI72 VVDN deployment files
- Introduce dpdk-init service for SR-IOV initialization within the container
- Execute script to enable low-latency RT performance (restored after tests)
2026-03-18 11:11:27 +01:00
Jaroslava Fiedlerova 858c8b5bdb CI: remove unused FHI72 confs 2026-03-18 11:11:27 +01:00
Jaroslava Fiedlerova 05273269d2 CI: Allow to select service for RT stats analysis
When running phytest with FHI7.2 in Docker, two services are deployed:
dpdk-init and oai-gnb. Previously, AnalyzeRTStatsObject selected the
first deployed service for RT stats analysis.
Allow to explicitly select the service used for RT stats analysis instead
of relying on the first deployed service.
2026-03-18 11:11:27 +01:00
Jaroslava Fiedlerova 7232b0a11b Adjust FHI72 phytest yaml file
Add dpdk-init service into docker-compose.yaml file to execute
setup_sriov script during startup.
2026-03-18 11:11:23 +01:00
Jaroslava Fiedlerova 92b274de08 Merge remote-tracking branch 'origin/vrtsim-doc-update-container' into integration_2026_w12 (!3997)
vrtsim doc: clarify container requirements

Describe how to set up vrtsim in containers, e.g., docker, and link to an
example. Add a minor clarification for the connection descriptor as well.
2026-03-18 10:37:51 +01:00
Jaroslava Fiedlerova 8f4378e412 Merge remote-tracking branch 'origin/nr-ue-roaming-fix' into integration_2026_w12 (!3993)
UE: Derive Serving Network Name from SIB1 PLMN

This MR modifies the nrUE to use the Serving Network Name derived from data
communicated by the Serving Network instead of data stored in the UICC.
Previously, the Serving Network Name (SNN) used during authentication was
constructed from the IMSI, implicitly assuming the UE was attached to its
home network. In roaming scenarios, this produced an incorrect SNN, causing
authentication and key derivation failures.

Changes:
- Extract the MCC and MNC from the SIB1 PLMN identity communicated by the
  serving network.
- Store these values in the UE NAS context in order to propogate them from
  RCC to NAS.
- The NAS key derivation functions (transferRES, derive_kausf, derive_kseaf)
  now build the SNN based on the MCC/MNC broadcast in SIB1.
2026-03-18 10:36:37 +01:00
Bartosz Podrygajlo f4fc7f331f Set rxgain to 0 in vrtsim
Set rxgain to 0 in vrtsim to match rfsimulator behavior
2026-03-18 10:01:11 +01:00
Cedric Roux 692cec1a24 bugfix: use proper pointer 2026-03-18 09:27:21 +01:00
Robert Schmidt fb685665e2 vrtsim doc: clarify container requirements 2026-03-18 08:59:05 +01:00
Aaron van Diepen abbd670e5d Derive Serving Network Name from SIB1 PLMN
Extract MCC and MNC from the SIB1 PLMN identity and store them in the
UE NAS context to propogate them to NAS security procedures.

Previously, the Serving Network Name (SNN) used during authentication
was constructed from the IMSI, implicitly assuming the UE was attached
to its home network. In roaming scenarios, this produced an incorrect
SNN, causing authentication and key derivation failures.

The NAS key derivation functions (transferRES, derive_kausf, derive_kseaf)
now build the SNN using the MCC/MNC broadcast by the serving network in SIB1,
ensuring that authentication uses the correct serving PLMN during roaming.
2026-03-17 18:42:11 +01:00