Set the tc-rnti only in CBRA
- TC-RNTI is set and used after RAR reception according to the specs - C-RNTI is used in CFRA
This commit is contained in:
@@ -760,7 +760,6 @@ void nr_ra_succeeded(module_id_t mod_id, frame_t frame, int slot){
|
|||||||
LOG_I(MAC, "[UE %d][%d.%d][RAPROC] RA procedure succeeded. CF-RA: RAR successfully received.\n", mod_id, frame, slot);
|
LOG_I(MAC, "[UE %d][%d.%d][RAPROC] RA procedure succeeded. CF-RA: RAR successfully received.\n", mod_id, frame, slot);
|
||||||
|
|
||||||
ra->RA_window_cnt = -1;
|
ra->RA_window_cnt = -1;
|
||||||
mac->crnti = ra->t_crnti;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|||||||
@@ -2299,7 +2299,6 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
|||||||
uint8_t is_Msg3 = 1;
|
uint8_t is_Msg3 = 1;
|
||||||
frame_t frame_tx = 0;
|
frame_t frame_tx = 0;
|
||||||
int slot_tx = 0;
|
int slot_tx = 0;
|
||||||
uint16_t rnti = 0;
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
NR_RA_HEADER_RAPID *rarh = (NR_RA_HEADER_RAPID *) dlsch_buffer; // RAR subheader pointer
|
NR_RA_HEADER_RAPID *rarh = (NR_RA_HEADER_RAPID *) dlsch_buffer; // RAR subheader pointer
|
||||||
NR_MAC_RAR *rar = (NR_MAC_RAR *) (dlsch_buffer + 1); // RAR subPDU pointer
|
NR_MAC_RAR *rar = (NR_MAC_RAR *) (dlsch_buffer + 1); // RAR subPDU pointer
|
||||||
@@ -2351,9 +2350,6 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
|||||||
unsigned char csi_req;
|
unsigned char csi_req;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TC-RNTI
|
|
||||||
ra->t_crnti = rar->TCRNTI_2 + (rar->TCRNTI_1 << 8);
|
|
||||||
|
|
||||||
// TA command
|
// TA command
|
||||||
ul_time_alignment->apply_ta = 1;
|
ul_time_alignment->apply_ta = 1;
|
||||||
ul_time_alignment->ta_command = 31 + rar->TA2 + (rar->TA1 << 5);
|
ul_time_alignment->ta_command = 31 + rar->TA2 + (rar->TA1 << 5);
|
||||||
@@ -2399,12 +2395,6 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
|||||||
rar_grant.Msg3_f_alloc = (uint16_t) ((rar->UL_GRANT_3 >> 4) | (rar->UL_GRANT_2 << 4) | ((rar->UL_GRANT_1 & 0x03) << 12));
|
rar_grant.Msg3_f_alloc = (uint16_t) ((rar->UL_GRANT_3 >> 4) | (rar->UL_GRANT_2 << 4) | ((rar->UL_GRANT_1 & 0x03) << 12));
|
||||||
// frequency hopping
|
// frequency hopping
|
||||||
rar_grant.freq_hopping = (unsigned char) (rar->UL_GRANT_1 >> 2);
|
rar_grant.freq_hopping = (unsigned char) (rar->UL_GRANT_1 >> 2);
|
||||||
// TC-RNTI
|
|
||||||
if (ra->t_crnti) {
|
|
||||||
rnti = ra->t_crnti;
|
|
||||||
} else {
|
|
||||||
rnti = mac->crnti;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DEBUG_RAR
|
#ifdef DEBUG_RAR
|
||||||
LOG_I(NR_MAC, "rarh->E = 0x%x\n", rarh->E);
|
LOG_I(NR_MAC, "rarh->E = 0x%x\n", rarh->E);
|
||||||
@@ -2444,12 +2434,19 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
|||||||
if (ret != -1){
|
if (ret != -1){
|
||||||
|
|
||||||
fapi_nr_ul_config_request_t *ul_config = get_ul_config_request(mac, slot_tx);
|
fapi_nr_ul_config_request_t *ul_config = get_ul_config_request(mac, slot_tx);
|
||||||
|
uint16_t rnti = mac->crnti;
|
||||||
|
|
||||||
if (!ul_config) {
|
if (!ul_config) {
|
||||||
LOG_W(MAC, "In %s: ul_config request is NULL. Probably due to unexpected UL DCI in frame.slot %d.%d. Ignoring DCI!\n", __FUNCTION__, frame, slot);
|
LOG_W(MAC, "In %s: ul_config request is NULL. Probably due to unexpected UL DCI in frame.slot %d.%d. Ignoring DCI!\n", __FUNCTION__, frame, slot);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Upon successful reception, set the T-CRNTI to the RAR value if the RA preamble is selected among the contention-based RA Preambles
|
||||||
|
if (!ra->cfra) {
|
||||||
|
ra->t_crnti = rar->TCRNTI_2 + (rar->TCRNTI_1 << 8);
|
||||||
|
rnti = ra->t_crnti;
|
||||||
|
}
|
||||||
|
|
||||||
nfapi_nr_ue_pusch_pdu_t *pusch_config_pdu = &ul_config->ul_config_list[ul_config->number_pdus].pusch_config_pdu;
|
nfapi_nr_ue_pusch_pdu_t *pusch_config_pdu = &ul_config->ul_config_list[ul_config->number_pdus].pusch_config_pdu;
|
||||||
|
|
||||||
fill_ul_config(ul_config, frame_tx, slot_tx, FAPI_NR_UL_CONFIG_TYPE_PUSCH);
|
fill_ul_config(ul_config, frame_tx, slot_tx, FAPI_NR_UL_CONFIG_TYPE_PUSCH);
|
||||||
|
|||||||
Reference in New Issue
Block a user