From 1273446804ca70d0307220863d04f90bf45b4dfc Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jan 2025 16:11:00 +0100 Subject: [PATCH] e1: change security settings only if parameters present If the Bearer Context Modification Request does not contain security information, the PDCP entity shall keep the currently configured security settings. Passing -1 for ciphering_algorithm and integrity_algorithm is the way to implement this logic. --- openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c b/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c index ed39dbeff0..3417940051 100644 --- a/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c +++ b/openair2/LAYER2/nr_pdcp/cucp_cuup_handler.c @@ -279,6 +279,10 @@ void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req) security_parameters.integrity_algorithm = req->secInfo->integrityProtectionAlgorithm; memcpy(security_parameters.ciphering_key, req->secInfo->encryptionKey, NR_K_KEY_SIZE); memcpy(security_parameters.integrity_key, req->secInfo->integrityProtectionKey, NR_K_KEY_SIZE); + } else { + /* don't change security settings if not present in the Bearer Context Modification Request */ + security_parameters.ciphering_algorithm = -1; + security_parameters.integrity_algorithm = -1; } nr_pdcp_reestablishment(req->gNB_cu_up_ue_id, to_modif->id,