signaling RRC RA problems (leading to possible radio link failure)
This commit is contained in:
@@ -177,10 +177,9 @@ void nr_ue_rrc_timer_trigger(int instance, int frame, int gnb_id)
|
||||
itti_send_msg_to_task(TASK_RRC_NRUE, instance, message_p);
|
||||
}
|
||||
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success)
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, bool success)
|
||||
{
|
||||
MessageDef *message_p = itti_alloc_new_message(TASK_MAC_UE, 0, NR_RRC_MAC_RA_IND);
|
||||
NR_RRC_MAC_RA_IND (message_p).frame = frame;
|
||||
NR_RRC_MAC_RA_IND (message_p).RA_succeeded = success;
|
||||
itti_send_msg_to_task(TASK_RRC_NRUE, GNB_MODULE_ID_TO_INSTANCE(mod_id), message_p);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ void nr_mac_rrc_data_ind_ue(const module_id_t module_id,
|
||||
void nr_mac_rrc_inactivity_timer_ind(const module_id_t mod_id);
|
||||
void nr_mac_rrc_msg3_ind(const module_id_t mod_id, const int rnti, int gnb_id);
|
||||
void nr_ue_rrc_timer_trigger(int instance, int frame, int gnb_id);
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, int frame, bool success);
|
||||
void nr_mac_rrc_ra_ind(const module_id_t mod_id, bool success);
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, Rrc_Msg_Type_t msg_type);
|
||||
void process_msg_rcc_to_mac(MessageDef *msg);
|
||||
#endif
|
||||
|
||||
@@ -1975,6 +1975,16 @@ void nr_rrc_handle_ra_indication(NR_UE_RRC_INST_t *rrc, bool ra_succeeded)
|
||||
nr_timer_stop(&timers->T304);
|
||||
// TODO handle the rest of procedures as described in 5.3.5.3 for when
|
||||
// reconfigurationWithSync is included in spCellConfig
|
||||
} else if (!ra_succeeded) {
|
||||
// upon random access problem indication from MCG MAC
|
||||
// while neither T300, T301, T304, T311 nor T319 are running
|
||||
// consider radio link failure to be detected
|
||||
if (!nr_timer_is_active(&timers->T300)
|
||||
&& !nr_timer_is_active(&timers->T301)
|
||||
&& !nr_timer_is_active(&timers->T304)
|
||||
&& !nr_timer_is_active(&timers->T311)
|
||||
&& !nr_timer_is_active(&timers->T319))
|
||||
handle_rlf_detection(rrc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2040,11 +2050,10 @@ void *rrc_nrue(void *notUsed)
|
||||
|
||||
case NR_RRC_MAC_RA_IND:
|
||||
LOG_D(NR_RRC,
|
||||
"[UE %ld] Received %s: frame %d RA %s\n",
|
||||
rrc->ue_id,
|
||||
ITTI_MSG_NAME(msg_p),
|
||||
NR_RRC_MAC_RA_IND(msg_p).frame,
|
||||
NR_RRC_MAC_RA_IND(msg_p).RA_succeeded ? "successful" : "failed");
|
||||
"[UE %ld] Received %s: RA %s\n",
|
||||
rrc->ue_id,
|
||||
ITTI_MSG_NAME(msg_p),
|
||||
NR_RRC_MAC_RA_IND(msg_p).RA_succeeded ? "successful" : "failed");
|
||||
nr_rrc_handle_ra_indication(rrc, NR_RRC_MAC_RA_IND(msg_p).RA_succeeded);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user