Check whether RRC Setup is available before sending CBRA Msg4
-Required for the CU/DU split case if the RRC Setup arrives later than the first opportunity to transmit Msg4 -Next extension is to decouple RRCSetup from Msg4
This commit is contained in:
@@ -1388,6 +1388,11 @@ void nr_generate_Msg4(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
|
|||||||
|
|
||||||
if (ra->Msg4_frame == frameP && ra->Msg4_slot == slotP ) {
|
if (ra->Msg4_frame == frameP && ra->Msg4_slot == slotP ) {
|
||||||
|
|
||||||
|
if (nr_mac_rrc_check_RRCSetup(module_idP, ra->rnti) <= 0){
|
||||||
|
ra->Msg4_frame++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t time_domain_assignment = 0;
|
uint8_t time_domain_assignment = 0;
|
||||||
uint8_t mcsIndex = 0;
|
uint8_t mcsIndex = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -304,6 +304,14 @@ int8_t mac_rrc_nr_data_req(const module_id_t Mod_idP,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int8_t nr_mac_rrc_check_RRCSetup(const module_id_t Mod_idP,
|
||||||
|
const rnti_t rnti) {
|
||||||
|
struct rrc_gNB_ue_context_s *ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[Mod_idP], rnti);
|
||||||
|
char payload_size = ue_context_p->ue_context.Srb0.Tx_buffer.payload_size;
|
||||||
|
return payload_size;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int8_t nr_mac_rrc_data_ind(const module_id_t module_idP,
|
int8_t nr_mac_rrc_data_ind(const module_id_t module_idP,
|
||||||
const int CC_id,
|
const int CC_id,
|
||||||
const frame_t frameP,
|
const frame_t frameP,
|
||||||
|
|||||||
@@ -170,6 +170,12 @@ nr_rrc_data_req(
|
|||||||
const pdcp_transmission_mode_t modeP
|
const pdcp_transmission_mode_t modeP
|
||||||
);
|
);
|
||||||
|
|
||||||
|
int8_t nr_mac_rrc_check_RRCSetup(
|
||||||
|
const module_id_t Mod_idP,
|
||||||
|
const rnti_t rnti
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
int
|
int
|
||||||
nr_rrc_mac_remove_ue(module_id_t mod_idP,
|
nr_rrc_mac_remove_ue(module_id_t mod_idP,
|
||||||
rnti_t rntiP);
|
rnti_t rntiP);
|
||||||
|
|||||||
Reference in New Issue
Block a user