Create CellGroup, SRB0, and SRB1, before sending Initial UL RRC message

During the Initial UL RRC Message, the CellGroup is created. Since the
CellGroup specifies the SRB1, the SRB1 should also be created (because
the DL RRC Messages is sent via SRB1). However, before this commit, the
CellGroup is created while having the RLC lock, so we cannot create
SRB1, as it results in a deadlock.

Therefore, we now first create CellGroup, SRB0, and SRB1, before giving
the UE message to the RLC.
This commit is contained in:
Robert Schmidt
2023-03-20 16:57:58 +01:00
parent c4c41d3b69
commit 27566f49dd
5 changed files with 77 additions and 55 deletions
+2 -6
View File
@@ -486,12 +486,8 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
void process_CellGroup(NR_CellGroupConfig_t *CellGroup, NR_UE_sched_ctrl_t *sched_ctrl);
void send_initial_ul_rrc_message(module_id_t module_id,
int CC_id,
int rnti,
int uid,
const uint8_t *sdu,
sdu_size_t sdu_len);
void prepare_initial_ul_rrc_message(gNB_MAC_INST *mac, NR_UE_info_t* UE);
void send_initial_ul_rrc_message(gNB_MAC_INST *mac, int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void* rawUE);
void abort_nr_dl_harq(NR_UE_info_t* UE, int8_t harq_pid);