Fix: skip c-rnti and reestablishment before first attach is completed.
This commit is contained in:
@@ -460,7 +460,7 @@ rx_sdu(const module_id_t enb_mod_idP,
|
||||
|
||||
if (RA_id != -1) {
|
||||
RA_t *ra = &(mac->common_channels[CC_idP].ra[RA_id]);
|
||||
mac_rrc_data_ind(enb_mod_idP,
|
||||
int8_t ret = mac_rrc_data_ind(enb_mod_idP,
|
||||
CC_idP,
|
||||
frameP, subframeP,
|
||||
UE_id,
|
||||
@@ -473,6 +473,7 @@ rx_sdu(const module_id_t enb_mod_idP,
|
||||
,ra->rach_resource_type > 0
|
||||
#endif
|
||||
);
|
||||
if (ret == 0) {
|
||||
/* Received a new rnti */
|
||||
ra->state = MSGCRNTI;
|
||||
LOG_I(MAC, "[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) Received rnti(Msg4)\n",
|
||||
@@ -502,6 +503,9 @@ rx_sdu(const module_id_t enb_mod_idP,
|
||||
}
|
||||
UE_template_ptr->ul_SR = 1;
|
||||
UE_scheduling_control->crnti_reconfigurationcomplete_flag = 1;
|
||||
} else {
|
||||
cancel_ra_proc(enb_mod_idP, CC_idP, frameP,current_rnti);
|
||||
}
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,6 +309,10 @@ mac_rrc_data_ind(
|
||||
ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt.module_id],rntiP);
|
||||
|
||||
if(ue_context_p) {
|
||||
if (ue_context_p->ue_context.Status != RRC_RECONFIGURED) {
|
||||
LOG_E(RRC,"[eNB %d] Received C-RNTI ,but UE %x status(%d) not RRC_RECONFIGURED\n",module_idP,rntiP,ue_context_p->ue_context.Status);
|
||||
return (-1);
|
||||
} else {
|
||||
rrc_eNB_generate_defaultRRCConnectionReconfiguration(&ctxt,
|
||||
ue_context_p,
|
||||
0);
|
||||
|
||||
@@ -7038,6 +7038,7 @@ rrc_eNB_decode_ccch(
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1000;
|
||||
rrc_eNB_previous_SRB2(ue_context_p);
|
||||
ue_context_p->ue_context.ue_reestablishment_timer = 0;
|
||||
}
|
||||
//previous rnti
|
||||
rnti_t previous_rnti = 0;
|
||||
@@ -7063,8 +7064,18 @@ rrc_eNB_decode_ccch(
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||
RC.mac[ctxt_pP->module_id]->UE_list.UE_sched_ctrl[UE_id].ue_reestablishment_reject_timer = 1000;
|
||||
rrc_eNB_previous_SRB2(ue_context_p);
|
||||
ue_context_p->ue_context.ue_reestablishment_timer = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//c-plane not end
|
||||
if((ue_context_p->ue_context.Status != RRC_RECONFIGURED) && (ue_context_p->ue_context.reestablishment_cause == ReestablishmentCause_spare1)) {
|
||||
LOG_E(RRC,
|
||||
PROTOCOL_RRC_CTXT_UE_FMT" LTE_RRCConnectionReestablishmentRequest (UE %x c-plane is not end), let's reject the UE\n",
|
||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),c_rnti);
|
||||
rrc_eNB_generate_RRCConnectionReestablishmentReject(ctxt_pP, ue_context_p, CC_id);
|
||||
break;
|
||||
}
|
||||
|
||||
if(ue_context_p->ue_context.ue_reestablishment_timer > 0) {
|
||||
LOG_E(RRC,
|
||||
|
||||
Reference in New Issue
Block a user