Commit Graph
4001 Commits
Author SHA1 Message Date
Robert Schmidt e497526543 Remove function declaration with non-existant definition 2024-10-17 19:06:45 +02:00
Robert Schmidt 788bc623e3 Cleanup rrc_gNB_decode_dcch(): use F1 message type, pass rrc pointer 2024-10-17 19:06:45 +02:00
Robert Schmidt da9f4cec18 Cleanup: pass UE context directly into handle_rrcReestablishmentComplete() 2024-10-17 19:06:45 +02:00
Robert Schmidt 118674ae4e Cleanup handle_ueCapabilityInformation()
Pass UE context pointer directly. In the switch, do not return to not
create memory leaks (after the switch, memory is freed). Move the
function up to make it appear before the use of the function.
2024-10-17 19:06:45 +02:00
Robert Schmidt 88d6117d99 Cleanup in securityModeFailure handling
The xer_fprintf() call is already present in rrc_gNB_decode_dcch()
above.
2024-10-17 19:06:45 +02:00
Robert Schmidt a5a746ee36 Cleanup: Pass UE context directly into rrc_gNB_generate_UECapabilityEnquiry() 2024-10-17 19:06:45 +02:00
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 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
Jaroslava Fiedlerova 75af74c731 Merge remote-tracking branch 'origin/RA_2-Step' into integration_2024_w41 2024-10-14 14:47:19 +02:00
Jaroslava Fiedlerova cab28f0f5a Merge remote-tracking branch 'origin/misc-fixes' into integration_2024_w41 2024-10-11 11:09:00 +02:00
ndomingues e4655154ee Add RA 2-Step configuration parameters to SIB1 2024-10-08 14:19:55 +01:00
Jaroslava Fiedlerova dbd37dac38 Merge remote-tracking branch 'origin/minor-ue-fixes' into integration_2024_w40b 2024-10-07 16:40:09 +02:00
Laurent THOMAS 8f46b07b22 Lacking RRC check: avoid SEGV if the received packet is not what we believe 2024-10-07 13:39:29 +02:00
Bartosz Podrygajlo 01066a3f0d Fix some sizeof and switch-case errors reported by CodeChecker
CodeChecker is a python application that collects reports from static analyzers like
clang-tidy, clangsa, cppcheck.
2024-10-07 09:35:24 +02:00
Jaroslava Fiedlerova 7be2a165b3 Merge remote-tracking branch 'origin/f1ap-msg-encdec-tests' into integration_2024_w40b 2024-10-04 07:52:01 +02:00
Guido Casati 3ce1f0e2c5 Use F1 gNB-CU Configuration Update Acknowledge lib in stack 2024-09-27 17:38:51 +02:00
Guido Casati 07da84ede2 Use F1 gNB-DU Configuration Update lib in stack 2024-09-27 17:38:38 +02:00
Guido Casati 28e2d67ee5 Fixes to F1 Setup Failure
* added missing Transaction ID to te F1 Setup Failure message struct
* fill F1 Setup Failure transaction ID in RRC before calling the F1 Setup Failure function
2024-09-27 17:38:38 +02:00
Guido Casati 3a5ace00d2 Use F1AP lib for F1 Setup Response in stack 2024-09-27 17:38:38 +02:00
Jaroslava Fiedlerova fb1cc6c253 Merge remote-tracking branch 'origin/sib19-gnb' into integration_2024_w39 2024-09-27 14:10:17 +02:00
Guido Casati 1d8e896567 Use F1AP lib for F1 Setup Request in stack 2024-09-27 11:22:03 +02:00
Guido Casati 1d0d7e7baf Use F1AP lib for DL RRC Message Transfer in stack 2024-09-27 11:22:03 +02:00
Robert SchmidtandGuido Casati 57ecb11d53 Use F1AP lib Init UL RRC Msg in stack
Co-authored-by: Guido Casati <hello@guidocasati.com>
2024-09-27 11:22:03 +02:00
Robert SchmidtandGuido Casati ba208c0fc2 Group 5G platform types for common 5G-specific types
Co-authored-by: Guido Casati <hello@guidocasati.com>
2024-09-25 16:00:32 +02:00
Robert SchmidtandGuido Casati ea28b9bb5b F1AP: RLC mode: introduce separate type
The currently used type does not cover all possibilities. While we don't
encode&decode them, it might still be good to be able to express it, so
introduce the new type.

Co-authored-by: Guido Casati <hello@guidocasati.com>
2024-09-25 15:56:03 +02:00
Jaroslava Fiedlerova b64b2e310d Merge remote-tracking branch 'origin/sib19-ue-reception' into integration_2024_w38b 2024-09-20 13:58:45 +02:00
Roberto Rosca 8bc2271001 conf parameters added (commented) + schedule sib19 only if parameters present in conf file 2024-09-18 12:17:17 +03:00
Roberto Rosca a197c0a41a Schedule SIB19 based on scheduling info from SIB1 2024-09-18 12:17:17 +03:00
Roberto Rosca b9d2f916bc Added scheduling info for sib19 to sib1 2024-09-18 12:17:17 +03:00
Roberto Rosca d994d537e9 Added sib19 structure with initialization 2024-09-18 12:17:17 +03:00
Roberto Rosca 4c15a04b87 Receive SIB19 on UE 2024-09-17 14:13:11 +03:00
Jaroslava Fiedlerova 3ca4f66e05 Merge remote-tracking branch 'origin/bugfix-rrcSetupComplete' into integration_2024_w38 2024-09-17 11:24:40 +02:00
Cedric Roux 24de83d3cd bugfix: reject malformed rrcSetupComplete message 2024-09-11 16:57:06 +02:00
francescomani f1c8134d4f prevent UE to declare RLF in phy-test mode 2024-09-11 15:05:49 +02:00
Raphael Defosseux 1691c607cc Merge remote-tracking branch 'origin/fix-nas-ue-memory-leaks' into integration_2024_w36 2024-09-09 12:08:56 +02:00
Robert Schmidt ab89324b1e Pretty-print PLMN in F1 Setup Request 2024-09-06 10:20:08 +02:00
Robert Schmidt 5d05078f4e Validate neighbour config when DUs connect 2024-09-06 10:20:08 +02:00
Roberto Louro MaguetaandLuis Pereira 3cfc10ddaa Bugfix: an A3 configuration is for a specific PCI
Co-authored-by: Luis Pereira <lpereira@allbesmart.pt>
2024-09-06 10:20:08 +02:00