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) {
|
if (RA_id != -1) {
|
||||||
RA_t *ra = &(mac->common_channels[CC_idP].ra[RA_id]);
|
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,
|
CC_idP,
|
||||||
frameP, subframeP,
|
frameP, subframeP,
|
||||||
UE_id,
|
UE_id,
|
||||||
@@ -473,6 +473,7 @@ rx_sdu(const module_id_t enb_mod_idP,
|
|||||||
,ra->rach_resource_type > 0
|
,ra->rach_resource_type > 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
if (ret == 0) {
|
||||||
/* Received a new rnti */
|
/* Received a new rnti */
|
||||||
ra->state = MSGCRNTI;
|
ra->state = MSGCRNTI;
|
||||||
LOG_I(MAC, "[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) Received rnti(Msg4)\n",
|
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_template_ptr->ul_SR = 1;
|
||||||
UE_scheduling_control->crnti_reconfigurationcomplete_flag = 1;
|
UE_scheduling_control->crnti_reconfigurationcomplete_flag = 1;
|
||||||
|
} else {
|
||||||
|
cancel_ra_proc(enb_mod_idP, CC_idP, frameP,current_rnti);
|
||||||
|
}
|
||||||
// break;
|
// break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -309,6 +309,10 @@ mac_rrc_data_ind(
|
|||||||
ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt.module_id],rntiP);
|
ue_context_p = rrc_eNB_get_ue_context(RC.rrc[ctxt.module_id],rntiP);
|
||||||
|
|
||||||
if(ue_context_p) {
|
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,
|
rrc_eNB_generate_defaultRRCConnectionReconfiguration(&ctxt,
|
||||||
ue_context_p,
|
ue_context_p,
|
||||||
0);
|
0);
|
||||||
|
|||||||
@@ -7038,6 +7038,7 @@ rrc_eNB_decode_ccch(
|
|||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
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;
|
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);
|
rrc_eNB_previous_SRB2(ue_context_p);
|
||||||
|
ue_context_p->ue_context.ue_reestablishment_timer = 0;
|
||||||
}
|
}
|
||||||
//previous rnti
|
//previous rnti
|
||||||
rnti_t previous_rnti = 0;
|
rnti_t previous_rnti = 0;
|
||||||
@@ -7063,8 +7064,18 @@ rrc_eNB_decode_ccch(
|
|||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
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;
|
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);
|
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) {
|
if(ue_context_p->ue_context.ue_reestablishment_timer > 0) {
|
||||||
LOG_E(RRC,
|
LOG_E(RRC,
|
||||||
|
|||||||
Reference in New Issue
Block a user