From c08540d8dea9a8ea71e0c7d342f9eadb341344ff Mon Sep 17 00:00:00 2001 From: Angelo Athanassopoulos Date: Tue, 4 Oct 2022 12:00:38 +0200 Subject: [PATCH] NR RRC - Added function to generate SRB2 Conf list --- openair2/RRC/NR/rrc_gNB.c | 11 +---------- openair2/RRC/NR/rrc_gNB_drbs.c | 17 +++++++++++++++++ openair2/RRC/NR/rrc_gNB_drbs.h | 3 +++ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/openair2/RRC/NR/rrc_gNB.c b/openair2/RRC/NR/rrc_gNB.c index efad8f0772..228f16d9dc 100755 --- a/openair2/RRC/NR/rrc_gNB.c +++ b/openair2/RRC/NR/rrc_gNB.c @@ -769,7 +769,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration( gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context; NR_DRB_ToAddModList_t **DRB_configList = NULL; NR_DRB_ToAddModList_t **DRB_configList2 = NULL; - NR_SRB_ToAddModList_t **SRB_configList2 = NULL; NR_SRB_ToAddModList_t *SRB_configList = ue_context_pP->ue_context.SRB_configList; struct NR_RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList *dedicatedNAS_MessageList = NULL; @@ -786,15 +785,7 @@ rrc_gNB_generate_dedicatedRRCReconfiguration( uint8_t xid = rrc_gNB_get_next_transaction_identifier(ctxt_pP->module_id); - /* Configure SRB2 */ - SRB_configList2 = &ue_context_pP->ue_context.SRB_configList2[xid]; - if (*SRB_configList2 == NULL) { - *SRB_configList2 = CALLOC(1, sizeof(**SRB_configList2)); - memset(*SRB_configList2, 0, sizeof(**SRB_configList2)); - NR_SRB_ToAddMod_t *SRB2_config = generateSRB2(); - ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config); - ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config); - } + NR_SRB_ToAddModList_t **SRB_configList2 = generateSRB2_confList(ue_p, SRB_configList, xid); DRB_configList = &ue_context_pP->ue_context.DRB_configList; if (*DRB_configList) { diff --git a/openair2/RRC/NR/rrc_gNB_drbs.c b/openair2/RRC/NR/rrc_gNB_drbs.c index 54cca080a3..1cb307165f 100644 --- a/openair2/RRC/NR/rrc_gNB_drbs.c +++ b/openair2/RRC/NR/rrc_gNB_drbs.c @@ -30,6 +30,23 @@ NR_SRB_ToAddMod_t *generateSRB2() { return SRB2_config; } +NR_SRB_ToAddModList_t **generateSRB2_confList(gNB_RRC_UE_t *ue, + NR_SRB_ToAddModList_t *SRB_configList, + uint8_t xid) { + NR_SRB_ToAddModList_t **SRB_configList2 = NULL; + + SRB_configList2 = &ue->SRB_configList2[xid]; + if (*SRB_configList2 == NULL) { + *SRB_configList2 = CALLOC(1, sizeof(**SRB_configList2)); + memset(*SRB_configList2, 0, sizeof(**SRB_configList2)); + NR_SRB_ToAddMod_t *SRB2_config = generateSRB2(); + ASN_SEQUENCE_ADD(&(*SRB_configList2)->list, SRB2_config); + ASN_SEQUENCE_ADD(&SRB_configList->list, SRB2_config); + } + + return SRB_configList2; +} + NR_DRB_ToAddMod_t *generateDRB(gNB_RRC_UE_t *ue, uint8_t drb_id, const pdu_session_param_t *pduSession, diff --git a/openair2/RRC/NR/rrc_gNB_drbs.h b/openair2/RRC/NR/rrc_gNB_drbs.h index 4c98d642dd..729b5b7819 100644 --- a/openair2/RRC/NR/rrc_gNB_drbs.h +++ b/openair2/RRC/NR/rrc_gNB_drbs.h @@ -36,6 +36,9 @@ #define NONGBR_FLOW (0) NR_SRB_ToAddMod_t *generateSRB2(void); +NR_SRB_ToAddModList_t **generateSRB2_confList(gNB_RRC_UE_t *ue, + NR_SRB_ToAddModList_t *SRB_configList, + uint8_t xid); NR_DRB_ToAddMod_t *generateDRB(gNB_RRC_UE_t *rrc_ue, uint8_t drb_id, const pdu_session_param_t *pduSession,