Commit Graph
27429 Commits
Author SHA1 Message Date
Robert Schmidt cec54f1c89 Cleanup: Pass UE context directly into rrc_gNB_send_NGAP_UPLINK_NAS() 2024-10-17 19:06:45 +02:00
Robert Schmidt 098f45c14d Cleanup: Pass RRC/UE context directly into handle_rrcReconfigurationComplete() 2024-10-17 19:06:45 +02:00
Robert Schmidt 7836fe5090 Cleanup: Pass UE context into handle_rrcSetupComplete()
Pass UE context, without protocol_ctxt_t, for cleanup. Remove the return
from within the switch, as this would lead to memory leaks; nothing is
executed after the switch statement (except for freeing memory).
2024-10-17 19:06:45 +02:00
Robert Schmidt 0056ac7bc9 Cleanup: Pass UE context into rrc_gNB_process_MeasurementReport() 2024-10-17 19:06:45 +02:00
Robert Schmidt d5274af0ec Bugfix: correctly check for GTP initialization
The existing check for the initialization of GTP is wrong; GTP returns
-1 if it could not initialize. Correct this, such that the DU will stop
if GTP cannot be initialize.

If we continue, the DU is requested to set up a GTP tunnel; because GTP
is not initialized, it assumes it is in monolithic/no F1, and does not
set up a tunnel. The F1 UE Context setup response encoder then fails
with this assertion:

    Assertion (tnl->teid > 0) failed!
    In DU_send_UE_CONTEXT_SETUP_RESPONSE() ../../../openair2/F1AP/f1ap_du_ue_context_management.c:415

    Exiting execution
    ../../../openair2/F1AP/f1ap_du_ue_context_management.c:415 DU_send_UE_CONTEXT_SETUP_RESPONSE() Exiting OAI softmodem: _Assert_Exit_
    Aborted

Closes: #853
2024-10-17 19:06:45 +02:00
Robert Schmidt 30054b809e Handle faulty MeasurementReport gracefully
A UE might send a MeasurementReport without the actual IEs present
(intentionally or not). Check this and handle appropriately to avoid
assertion

    Assertion (measurementReport->criticalExtensions.present == NR_MeasurementReport__criticalExtensions_PR_measurementReport && measurementReport->criticalExtensions.choice.measurementReport != ((void*)0)) failed!
    In rrc_gNB_process_MeasurementReport() ../../../openair2/RRC/NR/rrc_gNB.c

Closes: #859
2024-10-17 19:06:45 +02:00
Robert Schmidt e815972492 Handle unsolicited UE Capability Information gracefully
A UE might send a UE Capability Information without unsolicitatedly
(intentionally or not). Check this and handle appropriately to avoid
assertion

    Assertion (UE->xids[xid] == RRC_UECAPABILITY_ENQUIRY) failed!
    In handle_ueCapabilityInformation() ../../../openair2/RRC/NR/rrc_gNB.c

Closes: #858
2024-10-17 19:06:45 +02:00
Robert Schmidt 542ef1c1c6 Handle fault rrcReestablishmentComplete gracefully
A UE might send a rrcReestablishmentComplete without the actual IEs
present (intentionally or not). Check this and handle appropriately to
avoid assertion

    Assertion (reestablishment_complete->criticalExtensions.present == NR_RRCReestablishmentComplete__criticalExtensions_PR_rrcReestablishmentComplete) failed!
    In handle_rrcReestablishmentComplete() ../../../openair2/RRC/NR/rrc_gNB.c:1364

Closes: #854
2024-10-17 19:06:45 +02:00
Robert Schmidt d71104da51 Handle repeated NGAP Initial Context Setup Request
Prior to this commit, if we receive an Initial Context Setup Request for
a UE that has AS security set up, the gNB asserts with

    Assertion (!ue_p->as_security_active) failed!
    In rrc_gNB_generate_SecurityModeCommand() openairinterface5g/openair2/RRC/NR/rrc_gNB.c:2590
    logic error: security already activ

However, TS 38.413 says:

> The AMF may initiate the Initial Context Setup procedure if a
> UE-associated logical NG-connection exists for the UE

(I interpret this as "it might happen anytime")

> store the received Security Key in the UE context and, if the NG-RAN
> node is required to activate security for the UE, take this security key
> into use.

(I interpret this as "do not set up AS security again")

In this commit, handle if we receive an Initial Context Setup Request
for an existing UE context. As said in the spec, we store the keys. If
security is not active, we trigger RRC Security Mode Command. If it is
active, we skip Security, and directly set up a PDU session. If there is
also no PDU session, we simply forward the NAS message, and acknowledge.

If there was no AS security, after security, the gNB would trigger the
setup of PDU sessions (if any), and then forward any NAS PDUs, which is
stated in the if block if AS security is already active.
2024-10-17 18:59:22 +02:00
Robert Schmidt 94a3a61e17 Reuse rrc_forward_ue_nas_message() for DL Information Transfer 2024-10-17 18:45:50 +02:00
Robert Schmidt 65b9af543a Cleanup rrc_gNB_generate_SecurityModeCommand()
Cleanup this function: pass UE context directly, remove protocol_ctxt_t.
2024-10-16 19:13:48 +02:00
Robert Schmidt 8c14bf4921 Simplify rrc_gNB_process_security()
rrc_gNB_process_security() does not only set (process) the security
algorithms, but also checks for those. However, we don't use the check.
Simplify the function, to reintroduce the check later. Rename to
set_UE_security_algos() to better reflect what the functions do.
2024-10-16 19:13:48 +02:00
Robert Schmidt 0cea0395e8 Cleanup and rename process_gNB_security_key()
Rename to set_UE_security_key(), as it is for the UE. pass UE context
directly.
2024-10-16 19:13:48 +02:00
Robert Schmidt 4a40efede3 Clean up rrc_gNB_process_security() and called functions
Pass rrc pointer and UE context directly instead of protocol_ctxt_t.
2024-10-16 19:13:48 +02:00
Robert Schmidt 1d85ae0245 Cleanup nr_rrc_pdcp_config_security()
Pass directly pointer to UE context, remove protocol_ctxt_t (which
simply is not required, and supposed to be removed anyway).
2024-10-16 19:13:33 +02:00
Robert Schmidt 65d8d410b5 Merge branch 'integration_2024_w41' into 'develop'
Integration: `2024.w41`

See merge request oai/openairinterface5g!3032

* !3006 Fix some sizeof and switch-case issues
* !3028 Add CMakePresets.json
* !3011 Aerial: cleanup unused code, avoid superfluous memcpy(), avoid L1 structures
* !3022 NR CSI-RS L1 refactoring → check CI
* !2935 Improvements in handling the beamforming procedure via FAPI
* !3026 NR ULSCH scheduler fix when using transform precoding
* !3031 CI: Increase test bitrates for 100 MHz scenario in SA-2x2 pipeline
* !3017 Fix SRS
* !2731 Implementation of 2-Step RA
* !3027 Add dockerized include what you use tool
2024-10-15 07:26:22 +00:00
Jaroslava Fiedlerova 6a72669a1b Merge remote-tracking branch 'origin/iwyu' into integration_2024_w41 2024-10-14 15:10:47 +02:00
Jaroslava Fiedlerova 75af74c731 Merge remote-tracking branch 'origin/RA_2-Step' into integration_2024_w41 2024-10-14 14:47:19 +02:00
francescomani eccecde2c7 Merge remote-tracking branch 'origin/fix-SNR-based-on-SRS' into integration_2024_w41 2024-10-14 14:31:17 +02:00
Jaroslava Fiedlerova e4cb68a750 Merge remote-tracking branch 'origin/ci-sa-2x2-increase-bitrate' into integration_2024_w41 2024-10-14 13:23:11 +02:00
Jaroslava Fiedlerova a177dfa3bb Merge remote-tracking branch 'origin/transform_precoding_hotfix' into integration_2024_w41 2024-10-14 13:22:54 +02:00
Robert Schmidt 4398a57eb2 Increase SC-FDMA test UL iperf traffic to 18Mbps 2024-10-13 19:03:33 +02:00
francescomani 4528be42de Merge remote-tracking branch 'origin/NR_gNB_BF_matrix' into integration_2024_w41 2024-10-11 16:55:25 +02:00
rmagueta be6dcccd93 Add CI test for SRS in nr_ulsim 2024-10-11 11:12:53 +01:00
rmagueta 765bb64b5c Fix SNR based on SRS 2024-10-11 11:12:21 +01:00
Robert Schmidt e8597a16ed Merge remote-tracking branch 'origin/NR_CSI_improvements' into integration_2024_w41 2024-10-11 11:56:53 +02:00
Robert Schmidt 3d32ce3904 Merge remote-tracking branch 'origin/aerial-cleanup' into integration_2024_w41 2024-10-11 11:56:46 +02:00
ndomingues c7e9d687c6 Set msg1_SubcarrierSpacing to the same value as the UL SCS
3GPP 38.331: If absent, the UE applies the SCS as derived from the prach-ConfigurationIndex in RACH-ConfigGeneric (see tables Table 6.3.3.1-1, Table 6.3.3.1-2, Table 6.3.3.2-2 and Table 6.3.3.2-3, TS 38.211 [16]).

This procedure for msg1_SubcarrierSpacing NULL is not implemented, so we aplly the same value of UL SCS.
2024-10-11 10:12:06 +01:00
Jaroslava Fiedlerova 444961470a Merge remote-tracking branch 'origin/cmake-presets' into integration_2024_w41 2024-10-11 11:09:12 +02:00
Jaroslava Fiedlerova cab28f0f5a Merge remote-tracking branch 'origin/misc-fixes' into integration_2024_w41 2024-10-11 11:09:00 +02:00
Bartosz Podrygajlo b69b4dc0f4 Add CMakePresets.json
Introduce CMakePresests.json which is a simple way to perform incremental build using cmake

New configure resets were added:
 - default: Configure compilation with default options
 - tests: Same as above but ENABLE_TESTS and SANITIZE_ADDRESS is ON

New build presets were added:
 - 5gdefault: Build the software for NR rfsimulator test
 - default: same as 5gdefault
 - 4gdefault: Build the software for LTE rfsimulator test
 - tests: build all unit tests

To configure using configuration preset:

`cmake --preset <preset_name>`

To build using a build preset:

`cmake --build --preset <preset_name>`
2024-10-11 09:12:49 +02:00
francescomani a4c211f2b4 removing p7 prach beamforming assertion 2024-10-11 08:02:06 +02:00
francescomani 3f550a27be decouple call for config scc from init of MAC 2024-10-11 08:02:06 +02:00
francescomani 7af574dd54 adding new config file parameters in FR2 RFsim CI config file 2024-10-11 08:02:06 +02:00
francescomani abc5069a55 handling beams in PHY RX channels 2024-10-11 08:02:06 +02:00
francescomani 014338105e remove unused bf_weights feild from config files 2024-10-11 08:02:06 +02:00
francescomani 64ed4e9262 handling beams in PHY TX channels 2024-10-11 08:02:06 +02:00
francescomani 7e82854b29 improvements to set beam index via FAPI message
use of number of SSBs transmitted before current one as fapi index, creation of a mapping vector from SSB to fapi index
2024-10-11 07:59:36 +02:00
francescomani 2a9a038dbd improvements in RU beamforming handling procedures 2024-10-11 07:59:31 +02:00
Jaroslava Fiedlerova bdefd02f27 CI: increase tested bitrate for 100 MHz scenario in SA-2x2
Modify the UL/DL UDP iperf test cases to use a higher requested bitrate
for the scenario with 100 MHz bandwidth in the SA-2x2 pipeline. Adjust
gNB config file to allow for higher UL throughput.
2024-10-11 07:57:34 +02:00
francescomani f3b6155f17 OAI specific config_request field for analog beamforming 2024-10-10 16:14:32 +02:00
Robert Schmidt eb98aa690e Docker: Use -Werror in Aerial build 2024-10-10 16:04:08 +02:00
Robert Schmidt 3da3ec1907 Resolve error "unknown type name"
Resolve error:

   nfapi/oai_integration/aerial/fapi_nvIPC.h:56:16: error: unknown type name ‘nvipc_params_t’
   56 | int nvIPC_Init(nvipc_params_t nvipc_params_s);

By including the header. Also, move the definiton of the struct to the
MAC, where it is actually stored, and out of the radio common_lib.h,
since this is not a radio (split 7/8) parameter.
2024-10-10 16:02:29 +02:00
Robert Schmidt 35174d7917 Remove useless code
We don't use CUDA (see previous commit). Further, the variables
referenced in this piece of code are not used later.
2024-10-10 16:02:29 +02:00
Robert Schmidt da5601b8bf Remove code enclosed in NVIPC_CUDA_ENABLE
When compiling aerial, we compile without CUDA support (see e.g.,
docker/Dockerfile.gNB.aerial.ubuntu22). Hence, do not check for it in
aerial for the moment, we won't use it for the foreseeable future.
2024-10-10 16:02:29 +02:00
Robert Schmidt c648dfd078 Bugfix: preamble_list is an array
Since commit e6e25275ed, preamble_list is
an array, not a pointer. Hence, we don't need to call free().
2024-10-10 16:02:29 +02:00
Robert Schmidt c945bef2f1 Remove check for NFAPI_MODE_AERIAL, it's pointless
In Aerial bindings (FAPI-Aerial), the NFAPI mode must be
NFAPI_MODE_AERIAL (otherwise, we would not be executing this code).
Hence, the switches don't make sense. Remove them.

The check can more easily be checked with

    git show <commit> --ignore-all-space
2024-10-10 16:02:29 +02:00
Robert Schmidt f2f08ac52a Remove ENABLE_AERIAL switch in aerial bindings
As is visible at the top of the patch, for compiling aerial_lib (the
binding FAPI-Aerial), we always add ENABLE_AERIAL. Thus, all the code
within ENABLE_AERIAL will be compiled; we can also simply take it out.
2024-10-10 16:02:29 +02:00
Robert Schmidt f7afc8e8ee Aerial: compile P5 with Aerial-specfic modifications 2024-10-10 16:02:29 +02:00
Robert Schmidt e04ed98994 Remove unused code 2024-10-10 16:02:29 +02:00