Merge remote-tracking branch 'origin/e1ap-lib-improvements' into integration_2025_w06 (!3219)
E1AP enc/dec lib improvements This MR is including some fixes and improvements for the E1AP library, focusing mostly on Bearer Context Management: - struct reorganization: split setup and modification request messages into distinct structures, ensuring compliance with 3GPP TS 38.463 specifications - add encoding/decoding sub-functions for different IEs - improvements to Bearer Context Management: Implemented various improvements to the E1 Bearer Context Setup Response and Request, including the adoption of encoding/decoding sub-functions for different IEs - use lib functions whenever need (e.g. cp_bearer_context_setup_request in cucp_cuup_e1ap.c) - handle optional struct members as pointers - updated copy/equality check utility functions EDIT: The MR is also including the changes from !3222 (closed): > While testing E1 with security enabled for DRBs, it was found that > data traffic was not functional. > > The problem was that security settings were modified in the PDCP > reestablishment happening when receiving Bearer Context Modification > Request. > > So some restructuring was done. > > The actual fix is in 18176297, the others are for support. Basically > we introduce a boolean to check if the security settings are present in > Bearer Context Modification Request and we change PDCP security settings > only if they are. > > (Note that in OAI CU security settings are not sent in Bearer Context > Modification Request, so we could also remove all this, but we need to > be compatible with other cu-up and/or cu-cp.)
This commit is contained in:
@@ -125,7 +125,7 @@ void nr_derive_key_ng_ran_star(uint16_t pci, uint64_t nr_arfcn_dl, const uint8_t
|
||||
int dummy_nr_ue_ul_indication(nr_uplink_indication_t *ul_info) { return(0); }
|
||||
|
||||
void e1_bearer_context_setup(const e1ap_bearer_setup_req_t *req) { abort(); }
|
||||
void e1_bearer_context_modif(const e1ap_bearer_setup_req_t *req) { abort(); }
|
||||
void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req) { abort(); }
|
||||
void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd) { abort(); }
|
||||
|
||||
int8_t nr_rrc_RA_succeeded(const module_id_t mod_id, const uint8_t gNB_index) {
|
||||
|
||||
@@ -51,7 +51,7 @@ void e1_bearer_context_setup(const e1ap_bearer_setup_req_t *req)
|
||||
{
|
||||
abort();
|
||||
}
|
||||
void e1_bearer_context_modif(const e1ap_bearer_setup_req_t *req)
|
||||
void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req)
|
||||
{
|
||||
abort();
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ void nr_derive_key_ng_ran_star(uint16_t pci, uint64_t nr_arfcn_dl, const uint8_t
|
||||
extern void fix_scd(NR_ServingCellConfig_t *scd);// forward declaration
|
||||
|
||||
void e1_bearer_context_setup(const e1ap_bearer_setup_req_t *req) { abort(); }
|
||||
void e1_bearer_context_modif(const e1ap_bearer_setup_req_t *req) { abort(); }
|
||||
void e1_bearer_context_modif(const e1ap_bearer_mod_req_t *req) { abort(); }
|
||||
void e1_bearer_release_cmd(const e1ap_bearer_release_cmd_t *cmd) { abort(); }
|
||||
|
||||
int8_t nr_rrc_RA_succeeded(const module_id_t mod_id, const uint8_t gNB_index) {
|
||||
|
||||
Reference in New Issue
Block a user