fix Msg3 PHICH issue and C-RNTI DRB active issue
This commit is contained in:
committed by
shono.takafumi
parent
df5e22efee
commit
548eaae610
@@ -212,12 +212,12 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t *ra, frame_t frameP,
|
|||||||
hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP, subframeP, sf_ahead_dl);
|
hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP, subframeP, sf_ahead_dl);
|
||||||
hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST;
|
hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST;
|
||||||
|
|
||||||
if (NFAPI_MODE != NFAPI_MONOLITHIC) {
|
//if (NFAPI_MODE != NFAPI_MONOLITHIC) {
|
||||||
oai_nfapi_hi_dci0_req(hi_dci0_req);
|
// oai_nfapi_hi_dci0_req(hi_dci0_req);
|
||||||
hi_dci0_req_body->number_of_hi=0;
|
// hi_dci0_req_body->number_of_hi=0;
|
||||||
}
|
//}
|
||||||
|
|
||||||
LOG_D(MAC, "MSG3: HI_DCI0 SFN/SF:%d number_of_dci:%d number_of_hi:%d\n", NFAPI_SFNSF2DEC(hi_dci0_req->sfn_sf), hi_dci0_req_body->number_of_dci, hi_dci0_req_body->number_of_hi);
|
//LOG_D(MAC, "MSG3: HI_DCI0 SFN/SF:%d number_of_dci:%d number_of_hi:%d\n", NFAPI_SFNSF2DEC(hi_dci0_req->sfn_sf), hi_dci0_req_body->number_of_dci, hi_dci0_req_body->number_of_hi);
|
||||||
|
|
||||||
// save UL scheduling information for preprocessor
|
// save UL scheduling information for preprocessor
|
||||||
for (j = 0; j < ra->msg3_nb_rb; j++)
|
for (j = 0; j < ra->msg3_nb_rb; j++)
|
||||||
|
|||||||
@@ -312,6 +312,23 @@ rx_sdu(const module_id_t enb_mod_idP,
|
|||||||
|
|
||||||
if (ra->msg3_round >= mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) {
|
if (ra->msg3_round >= mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) {
|
||||||
cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti);
|
cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti);
|
||||||
|
nfapi_hi_dci0_request_t *hi_dci0_req = NULL;
|
||||||
|
uint8_t sf_ahead_dl = ul_subframe2_k_phich(&mac->common_channels[CC_idP], subframeP);
|
||||||
|
hi_dci0_req = &mac->HI_DCI0_req[CC_idP][(subframeP + sf_ahead_dl) % 10];
|
||||||
|
nfapi_hi_dci0_request_body_t *hi_dci0_req_body = &hi_dci0_req->hi_dci0_request_body;
|
||||||
|
nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &hi_dci0_req_body->hi_dci0_pdu_list[hi_dci0_req_body->number_of_dci + hi_dci0_req_body->number_of_hi];
|
||||||
|
memset((void *) hi_dci0_pdu, 0, sizeof(nfapi_hi_dci0_request_pdu_t));
|
||||||
|
hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_HI_PDU_TYPE;
|
||||||
|
hi_dci0_pdu->pdu_size = 2 + sizeof(nfapi_hi_dci0_hi_pdu);
|
||||||
|
hi_dci0_pdu->hi_pdu.hi_pdu_rel8.tl.tag = NFAPI_HI_DCI0_REQUEST_HI_PDU_REL8_TAG;
|
||||||
|
hi_dci0_pdu->hi_pdu.hi_pdu_rel8.resource_block_start = first_rb;
|
||||||
|
hi_dci0_pdu->hi_pdu.hi_pdu_rel8.cyclic_shift_2_for_drms = 0;
|
||||||
|
hi_dci0_pdu->hi_pdu.hi_pdu_rel8.hi_value = 0;
|
||||||
|
hi_dci0_req_body->number_of_hi++;
|
||||||
|
hi_dci0_req_body->sfnsf = sfnsf_add_subframe(frameP, subframeP, 0);
|
||||||
|
hi_dci0_req_body->tl.tag = NFAPI_HI_DCI0_REQUEST_BODY_TAG;
|
||||||
|
hi_dci0_req->sfn_sf = sfnsf_add_subframe(frameP, subframeP, sf_ahead_dl);
|
||||||
|
hi_dci0_req->header.message_id = NFAPI_HI_DCI0_REQUEST;
|
||||||
} else {
|
} else {
|
||||||
if (ra->rach_resource_type > 0) {
|
if (ra->rach_resource_type > 0) {
|
||||||
cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti); // TODO: Currently we don't support retransmission of Msg3 ( If in error Cancel RA procedure and reattach)
|
cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti); // TODO: Currently we don't support retransmission of Msg3 ( If in error Cancel RA procedure and reattach)
|
||||||
|
|||||||
@@ -6711,6 +6711,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else { // remove LCHAN from MAC/PHY
|
} else { // remove LCHAN from MAC/PHY
|
||||||
|
#if 0
|
||||||
if (ue_context_pP->ue_context.DRB_active[drb_id] == 1) {
|
if (ue_context_pP->ue_context.DRB_active[drb_id] == 1) {
|
||||||
// DRB has just been removed so remove RLC + PDCP for DRB
|
// DRB has just been removed so remove RLC + PDCP for DRB
|
||||||
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
|
/* rrc_pdcp_config_req (ctxt_pP->module_id, frameP, 1, CONFIG_ACTION_REMOVE,
|
||||||
@@ -6727,6 +6728,11 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete(
|
|||||||
}
|
}
|
||||||
|
|
||||||
ue_context_pP->ue_context.DRB_active[drb_id] = 0;
|
ue_context_pP->ue_context.DRB_active[drb_id] = 0;
|
||||||
|
#endif
|
||||||
|
if (DRB_configList->list.array[i]->logicalChannelIdentity) {
|
||||||
|
DRB2LCHAN[i] = (uint8_t) * DRB_configList->list.array[i]->logicalChannelIdentity;
|
||||||
|
}
|
||||||
|
|
||||||
LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (DRB) ---> MAC_eNB\n",
|
LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT" RRC_eNB --- MAC_CONFIG_REQ (DRB) ---> MAC_eNB\n",
|
||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user