From 2e2246f946b0f13a5f7f57d6d35a66ef21907256 Mon Sep 17 00:00:00 2001 From: Luis Pereira <lpereira@allbesmart.pt> Date: Fri, 18 Nov 2022 16:16:05 +0100 Subject: [PATCH] Fix tx Msg.4 after rx Msg.3 through DCCH/DTCH --- openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c index cedb765c98d..e1cff2eaa18 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c @@ -1414,10 +1414,16 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra NR_ControlResourceSet_t *coreset = ra->coreset; AssertFatal(coreset!=NULL,"Coreset cannot be null for RA-Msg4\n"); + uint16_t mac_sdu_length = 0; + rnti_t tc_rnti = ra->rnti; // If UE is known by the network, C-RNTI to be used instead of TC-RNTI - if(ra->msg3_dcch_dtch) { + if (ra->msg3_dcch_dtch) { ra->rnti = ra->crnti; + } else { + mac_sdu_length = mac_rrc_nr_data_req(module_idP, CC_id, frameP, CCCH, ra->rnti, 1, NULL); + if (mac_sdu_length <= 0) + return; // need to wait until RRCSetup is encoded } NR_UE_info_t * UE = find_nr_UE(&nr_mac->UE_info, ra->rnti); @@ -1426,12 +1432,6 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra return; } - NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl; - - uint16_t mac_sdu_length = mac_rrc_nr_data_req(module_idP, CC_id, frameP, CCCH, ra->rnti, 1, NULL); - - if(mac_sdu_length <= 0) return; // need to wait until RRCSetup is encoded - long BWPStart = 0; long BWPSize = 0; NR_Type0_PDCCH_CSS_config_t *type0_PDCCH_CSS_config = NULL; @@ -1532,6 +1532,7 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra LOG_I(NR_MAC,"Generate msg4, rnti: %04x\n", ra->rnti); + NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl; /* get the PID of a HARQ process awaiting retrnasmission, or -1 otherwise */ int current_harq_pid = sched_ctrl->retrans_dl_harq.head; // HARQ management -- GitLab