Commit Graph
29191 Commits
Author SHA1 Message Date
Cedric Roux b89b3abd13 API change: new arguments to time_manager_start() 2025-04-18 09:05:39 +02:00
Cedric Roux 4834d93006 fix typo 2025-04-18 09:02:55 +02:00
Cedric Roux 2f7eb6ebf9 replace many DevAssert with AssertFatal for better user experience 2025-04-18 09:02:55 +02:00
Cedric Roux b487c4deb2 restructure the code for retrieval of configuration parameters 2025-04-18 09:02:55 +02:00
Cedric Roux c9ad10f9f9 remove ngap from linking
It used to be necessary.
2025-04-18 09:02:55 +02:00
Cedric Roux 59be08e3e6 add link to time management module to the main readme 2025-04-18 09:02:55 +02:00
Cedric Roux 7cbedb1575 time management module
This commit introduces a time management module.

See doc/time_management.md for details.
2025-04-18 09:02:54 +02:00
Jaroslava Fiedlerova 9bccad31b5 Merge remote-tracking branch 'origin/hotfix-ip-address-lte-ue' into integration_2025_w16 (!3390)
fix IP address in 4G UE

The following error was appearing when running LTE UE:

inet_pton(): cannot convert -64.-74.0.2 to IPv4 network address

The allocated address by the core actually is 192.182.0.2.
On my host "char" is signed, leading to the above error (192 and 182
are seen as signed).
Let's force "ip_addr" unsigned and everyone is happy.
2025-04-18 08:10:28 +02:00
Jaroslava Fiedlerova 32d1026b16 Merge remote-tracking branch 'origin/fix-ldpcdecoder-compile-by-clang' into integration_2025_w16 (!3376)
Correct block_length to Kprime for LDPC decoder

When compile the OAI by CMake, it shows the following error:

../openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_CL.c:353:40: error: no member named 'block_length' in 'struct nrLDPC_dec_params'
    int block_length    = p_decParams->block_length;
2025-04-18 08:09:23 +02:00
Jaroslava Fiedlerova 18372ae27e Merge remote-tracking branch 'origin/issue-929' into integration_2025_w16 (!3330)
NR UE: consider the ratio of PUSCH EPRE to DMRS EPRE when calculating PUSCH
DMRS power scaling

When calculating DMRS scaling ratio, we should consider PUSCH EPRE to DMRS
EPRE according to TS 38.214 Table 6.2.2-1.

Close #929
2025-04-17 23:03:13 +02:00
Jaroslava Fiedlerova 6e67c1ac20 Merge remote-tracking branch 'origin/NR_SSB_SINR' into integration_2025_w16 (!3326)
Enable SSB-SINR based CSI reporting

3GPP 38.331 release 16 specifies that If the field reportQuantity-r16 is present,
UE shall ignore reportQuantity (without suffix). reportQuantity-r16 configures
SSB based SINR as the reporting quantity.

set do_SINR = 1; in gNB params part of the config file to enable SSB based SINR
reporting.
2025-04-17 23:01:08 +02:00
Jaroslava Fiedlerova 315ed8e564 Merge remote-tracking branch 'origin/nr-gnb-config-refactor' into integration_2025_w16 (!3293)
Cleanup and refactor initial gNB configuration

This is follow-up on !3048 (merged). Major changes in this MR:
- Add config functions to reduce redundant code repeated in multiple places in the file
- Add macros to reduce redundant code in gNB configuration
- Refactor RCconfig_NR_NG
- Cleanup obsolete and commented out code
- Refactor includes in executables/nr-gnb.c
- Introduce platform type plmn_id_t for consistency across the stack: F1AP, NGAP can now use the same struct type
- And other minor formatting
2025-04-17 19:56:58 +02:00
Jaroslava Fiedlerova ba2d1a880d Merge remote-tracking branch 'origin/sdap-changes' into integration_2025_w16 (!3207)
Create nrUE network interface from SDAP (rebased)

A rebase of !2485. Dropped a few refactors and SDAP manager changes.
Changes
1. Move tunnel interface read thread to SDAP for gNB (noS1) and UE (noS1 and SA).
2. Hold tunnel interface socket fd in SDAP entity instead of global variable.
3. Handle UE tunnel interface creation and IP configuration from NAS thread in noS1 and SA modes.
4. Modified UE tunnel interface naming scheme. Additional PDU sessions get oaitun_ue<id>p<pdusession_id>.

Closes #941
2025-04-17 19:53:57 +02:00
alexjiao 570c1b5639 Consider the ratio of PUSCH EPRE to DMRS EPRE when calculating PUSCH DMRS power scaling 2025-04-17 14:23:03 +02:00
Cedric Roux b99fcdf289 fix IP address
The following error was appearing when running LTE UE:

    inet_pton(): cannot convert -64.-74.0.2 to IPv4 network address

The allocated address by the core actually is 192.182.0.2.

On my host "char" is signed, leading to the above error (192 and 182
are seen as signed).

Let's force "ip_addr" unsigned and everyone is happy.
2025-04-17 10:55:18 +02:00
Bartosz PodrygajloandRobert Schmidt 1ab8a58a2f Refactor TUN Interface Management and Move to SDAP Layer
This commit refactors the TUN interface management by moving its creation
and configuration from the PDCP layer to the SDAP layer for UE.

Key changes include:

- Introduced `tun_generate_ue_ifname` and `tun_destroy` functions for better
  TUN interface lifecycle management.
- Added support for creating and destroying UE-specific TUN interfaces in SDAP.
- Refactored `nr_pdcp_module_init` to remove TUN-related logic and moved it
  to SDAP.
- Updated NAS and SDAP layers to handle PDU session-specific TUN interface
  creation and configuration.
- Enhanced SDAP entity management to include TUN socket handling and thread
  lifecycle.
- Updated NAS message handling to initialize default PDU session TUN
  interfaces in NOS1 mode.
- Use a single SDAP thread function for gNB and UE
- Allow noS1 mode also in SA on gNB

These changes improve modularity by isolating TUN interface management within
the SDAP layer, aligning with the 3GPP architecture, and simplifying the PDCP
layer.

Co-Authored-By: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-04-16 15:03:18 +02:00
Raghavendra Dinavahi bbcb31f64b Added description for do_SINR 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi 1666dced3e gNB changes- Extract SSB-SINR from received CSI report 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi 516a618816 UE changes- Generate SSB based SINR CSI report 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi 6e371b9e48 UE changes in PHY- Enable SSB based SINR measurement 2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi 61778f3d55 gNB changes- Compute bitlen in case of SSB-SINR
compute SINR bitlen according to 38.212 table 6.3.1.1.2-6A
2025-04-15 16:02:34 +02:00
Raghavendra Dinavahi 2c164336bc gNB changes in RRC- Enable SSB-SINR based CSI reporting
3GPP 38.331 release 16 specifies that If the field reportQuantity-r16 is present, UE shall ignore reportQuantity (without suffix).
reportQuantity-r16 configures SSB based SINR as the reporting quantity.

set do_SINR = 1; in gNB params part of the config file to enable SSB based SINR reporting instead of the default RSRP based.
2025-04-15 16:02:34 +02:00
Guido Casati a48e64f6f8 Adopt snprintf across the code in openair2/GNB_APP/gnb_config.c
Replaced `sprintf` with `snprintf` in gnb_config.c to enhance memory safety
by preventing potential buffer overflows. `sprintf` can cause buffer overflows
by not checking the destination buffer size. In contrast, `snprintf` allows
specifying a maximum buffer size, ensuring no overflow occurs by limiting
the number of characters written, including the null terminator.
2025-04-15 15:28:36 +02:00
Guido Casati 7ee6feac42 Use config module macros in openair2/E1AP/e1ap_setup.c 2025-04-15 15:28:36 +02:00
Guido Casati e6da64b1a3 Refactor RCconfig_NR_NG
* use macros from config module
* cleanup irrelevant code
2025-04-15 15:28:36 +02:00
Guido Casati bf6dff025b Cleanup obsolete code in gNB_app_task 2025-04-15 15:28:36 +02:00
Guido Casati 65e9ad7fdf Move get_node_type after init_gNB 2025-04-15 15:28:36 +02:00
Guido Casati 33ad0f917e Cleanup obsolete commented out code in gnb_config.h 2025-04-15 15:28:36 +02:00
Guido Casati 54990c2bc1 Refactor includes in executables/nr-gnb.c
* used IWYU tools + manual review
* output from IWYU:

The full include-list for /code/executables/nr-gnb.c:
/#include <PHY/NR_ESTIMATION/nr_ul_estimation.h>           // for dump_nr_I0_...
/#include <common/utils/LOG/log.h>  // lines 39-39
/#include <common/utils/system.h>                          // for threadCreate
/#include <fcntl.h>                                        // for SEEK_SET
/#include <openair1/PHY/NR_TRANSPORT/nr_dlsch.h>           // for dump_pdsch_...
/#include <openair1/PHY/NR_TRANSPORT/nr_ulsch.h>           // for dump_pusch_...
/#include <pthread.h>                                      // for pthread_join
/#include <stdint.h>                                       // for int64_t
/#include <stdio.h>                                        // for NULL, fclose
/#include <string.h>                                       // for memset
/#include <time.h>                                         // for clock_gettime
/#include <unistd.h>                                       // for sleep, size_t
/#include "NR_PHY_INTERFACE/NR_IF_Module.h"                // for NR_UL_IND_t
/#include "PHY/INIT/nr_phy_init.h"                         // for init_DLSCH_...
/#include "PHY/MODULATION/nr_modulation.h"                 // for apply_nr_ro...
/#include "PHY/NR_TRANSPORT/nr_transport_proto.h"          // for reset_activ...
/#include "PHY/TOOLS/tools_defs.h"                         // for c16_t
/#include "PHY/defs_RU.h"                                  // for RU_t, proce...
/#include "PHY/defs_common.h"                              // for wait_sync
/#include "PHY/defs_gNB.h"                                 // for PHY_VARS_gNB
/#include "PHY/defs_nr_common.h"                           // for NR_DL_FRAME...
/#include "PHY/impl_defs_nr.h"                             // for NR_MIXED_SLOT
/#include "SCHED_NR/fapi_nr_l1.h"                          // for nr_schedule...
/#include "SCHED_NR/phy_frame_config_nr.h"                 // for nr_slot_select
/#include "SCHED_NR/sched_nr.h"                            // for L1_nr_prach...
/#include "T.h"                                            // for T3, T_PUT_p...
/#include "assertions.h"                                   // for AssertFatal
/#include "common/ran_context.h"                           // for RAN_CONTEXT_t
/#include "common/utils/LOG/log.h"                         // for NR_PHY, LOG_D
/#include "executables/softmodem-common.h"                 // for get_softmod...
/#include "nfapi/oai_integration/vendor_ext.h"             // for NFAPI_MODE
/#include "nfapi_nr_interface_scf.h"                       // for nfapi_nr_co...
/#include "notified_fifo.h"                                // for initNotifie...
/#include "thread-pool.h"                                  // for abortTpool
/#include "time_meas.h"                                    // for print_meas_log
/#include "utils.h"                                        // for calloc_or_fail
2025-04-15 15:28:36 +02:00
Guido Casati 1893974d1d Set defint64val in long conf params 2025-04-15 15:28:36 +02:00
Guido Casati 7c0dc93087 Add function to set antenna ports in gNB config
* reduce redundant code
2025-04-15 15:28:36 +02:00
Guido Casati 2e7fa8e8b1 New function to set PLMN in gNB config
* reduce redundant code repeated in multiple places in the file
2025-04-15 15:28:36 +02:00
Guido Casati 1cdd684e24 Use plmn_id_t in RRC struct 2025-04-15 15:28:36 +02:00
Guido Casati ac3f9f3e32 Introduce platform type plmn_id_t for consistency across the stack
* F1AP, NGAP can now use the same struct type
* this improves maintainability
2025-04-15 15:28:34 +02:00
Guido Casati c1f225abc1 Add set_snssai_config to replace redundant code in gnb_config.c 2025-04-15 15:27:39 +02:00
Guido Casati 2ee056bf45 Add definition for maximum number of slices according to 3GPP specs 2025-04-15 15:27:39 +02:00
Guido Casati 34fc1bb254 Set num_nssai to uint16_t in NGAP for consistency with other definitions 2025-04-15 15:27:39 +02:00
Guido Casati 7731f5bd2d Introduce macros to get parameters in gnb_config.c
* this commit introduces macro to reduce redundant code in gNB configuration
2025-04-15 15:27:38 +02:00
Guido Casati 49b3e2ee69 Cleanup commented out code in gnb_config.c and other minor formatting 2025-04-15 15:25:53 +02:00
Robert Schmidt f3eb713084 Merge branch 'integration_2025_w15' into 'develop'
Integration: `2025.w15`

Closes #901, #943, #944, #942, and #939

See merge request oai/openairinterface5g!3374

* !3358 RedCap InitialBWP
* !3364 NR UE: fix PRACH generation with frequency resource id not 0 when msg1-FDM > 1 in SIB1
* !3365 nr pdcp: 'count' is 32 bits, use explicit type instead of generic 'int'
* !3366 Fix typo in gNB_scheduler_uci.c
* !3370 Doc: add information on how to avoid a common asan bug
* !3275 NAS service reject
* !3312 NR UE: enable concurrent UL slot processing
* !3368 Encapsulate cmake asn1c call, suppress useless output
* !3336 Fix logging in nr_dlsim
* !3281 Add support for 'dl_min_mcs' and 'ul_min_mcs' configuration parameters
* !3355 NR UE: add support for continuous frequency offset compensation (in particular NTN LEO Doppler)
* !3375 CI CoreNetwork fixes
* !3184 NR SIB2
* !3348 CI: Replacing Devkit server with a Grace Hopper in Aerial pipeline
2025-04-15 05:54:26 +00:00
Robert Schmidt b790fb235d Add SIB2 and SIB19 to NTN-LEO config 2025-04-14 21:29:34 +02:00
Robert Schmidt e085fb5fee Merge remote-tracking branch 'origin/aerial_to_gh' into integration_2025_w15 (!3348)
CI: Replacing Devkit server with a Grace Hopper in Aerial pipeline

Switch servers on the Aerial pipeline from Gigabyte (AMD) to Grace
Hopper (ARM), and make the necessary changes:

- Update XML, YAML, and gnb.conf
- Change the argument passed to the L1 in aerial_l1_entrypoint.sh to be
  compatible with the GH
- Update the Aerial setup in TESTBench.md and Aerial_FAPI_Split_Tutorial.md docs
- Decrease the tested throughput due to an issue with the RU. Will open
  another MR to increase it once the problem is fixed.
2025-04-14 18:18:18 +02:00
Robert Schmidt 98d4dff509 Merge remote-tracking branch 'origin/NR_gNB_SIB2' into integration_2025_w15 (!3184)
NR SIB2

- Transmission of SIB2
- Fixes for transmission and reception of SIB19

Closes #901
2025-04-14 17:01:28 +02:00
Robert Schmidt 5c5dbdf2d3 Merge remote-tracking branch 'origin/ci-refactor-cn-fixes' into integration_2025_w15 (!3375)
CI CoreNetwork fixes

Some minor fixes after !3322
2025-04-14 17:00:59 +02:00
Robert Schmidt 07f8158378 Merge remote-tracking branch 'origin/ntn_leo_freq_comp' into integration_2025_w15 (!3355)
NR UE: add support for continuous frequency offset compensation (in particular NTN LEO Doppler)

- move function add_noise() to file
  openair1/SIMULATION/TOOLS/phase_noise.c
- refactor (co)sinus calculation out of phase_noise() into get_sin_cos()
  in nr_common.c
- NR UE: continuously estimate the frequency offset using PBCH DMRS
- NR UE: add command line parameter --initial-fo to specify known
  initial frequency offset
- NR UE: add support for continuous DL frequency offset compensation
  --cont-fo-comp
- NR UE: add support for continuous UL frequency offset
  pre-compensation. Depending on the main source of frequency offset,
  pre-compensate the UL frequency offset (FO) accordingly. Therefore
  modify the flag --cont-fo-comp to accept an integer value, where
  * 1 specifies, that the main FO contribution comes from the accuracy of the local oscillator (LO)
  * 2 specifies, that the main FO contribution comes from Doppler shift
- NR UE: add PI controller to continuous frequency offset compensation
- rfsimulator: enable and correct NTN LEO doppler simulation
- use SIMD to speed up nr_fo_compensation()
- Extend NTN LEO example in RUNMODEM.md to include continuous Doppler
  compensation
- NR UE: in nr_adjust_synch_ue() extend the peak search to +/- cyclic
  prefix size, esp. for LEO NTN scenarios the timing drifts during
  initial sync, which is mostly compensated with
  --ntn-initial-time-drift. But there might be a residual time offset,
  and by extending the peak search window we make this more tolerant.
- NR UE: remove unused nr_slot_tx_offset, it is unused since commit
  f3e60a14
- NR UE: remove now unnecessary local variable
  update_ntn_system_information, directly use
  UE->ntn_config_message->update instead
2025-04-14 16:59:27 +02:00
Reem Bahsoun 42a4292149 Modify ci_infra.yaml and XML to start CN from Grace Hopper 2025-04-14 11:39:13 +02:00
Reem Bahsoun b3a1e3d2e8 Doc update
- Update the Aerial tutorial to include Grace Hopper server and add reference to Gigabyte server setup instructions.
- Update the Aerial setup in the TESTBench.md
2025-04-14 11:39:08 +02:00
francescomani 7c4eabdb6e fix for DLSCH DMRS reference point (regression at the OAI UE introduced when testing with OAI gNB for a missing implementation in OAI gNB) 2025-04-14 11:28:00 +02:00
Robert Schmidt 75b237fb90 Add 5G RFsim NTN LEO CI Test 2025-04-14 10:45:40 +02:00
Robert Schmidt 890a6c702e Remove unnecessary fields in NTN-LEO gNB config 2025-04-14 10:42:10 +02:00