Commit cc22ec99 authored by Melissa Elkadi's avatar Melissa Elkadi

Calling scheduler before handling DCI to ensure nbits are set

Previously, we thought the memset in the nr_ue_dl_indication()
was causing issues / exposing a race. This is not the case. The
memset is not problematic, the issue is that in the emulate_l1
mode we were not always configuring the DCI nbits before handling
the DCI when we are pushing high (15 Mbps) throughput traffic.
parent a21fb77d
...@@ -748,6 +748,7 @@ void check_and_process_dci(nfapi_nr_dl_tti_request_t *dl_tti_request, ...@@ -748,6 +748,7 @@ void check_and_process_dci(nfapi_nr_dl_tti_request_t *dl_tti_request,
NR_UL_TIME_ALIGNMENT_t ul_time_alignment; NR_UL_TIME_ALIGNMENT_t ul_time_alignment;
memset(&ul_time_alignment, 0, sizeof(ul_time_alignment)); memset(&ul_time_alignment, 0, sizeof(ul_time_alignment));
fill_dci_from_dl_config(&mac->dl_info, &mac->dl_config_request); fill_dci_from_dl_config(&mac->dl_info, &mac->dl_config_request);
nr_ue_scheduler(&mac->dl_info, NULL);
nr_ue_dl_indication(&mac->dl_info, &ul_time_alignment); nr_ue_dl_indication(&mac->dl_info, &ul_time_alignment);
if (pthread_mutex_unlock(&mac->mutex_dl_info)) abort(); if (pthread_mutex_unlock(&mac->mutex_dl_info)) abort();
...@@ -1176,8 +1177,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_ ...@@ -1176,8 +1177,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
fill_scheduled_response(&scheduled_response, dl_config, NULL, NULL, dl_info->module_id, dl_info->cc_id, dl_info->frame, dl_info->slot, dl_info->thread_id); fill_scheduled_response(&scheduled_response, dl_config, NULL, NULL, dl_info->module_id, dl_info->cc_id, dl_info->frame, dl_info->slot, dl_info->thread_id);
nr_ue_if_module_inst[module_id]->scheduled_response(&scheduled_response); nr_ue_if_module_inst[module_id]->scheduled_response(&scheduled_response);
} }
if (!get_softmodem_params()->emulate_l1) memset(def_dci_pdu_rel15, 0, sizeof(*def_dci_pdu_rel15));
memset(def_dci_pdu_rel15, 0, sizeof(*def_dci_pdu_rel15));
} }
free(dl_info->dci_ind); free(dl_info->dci_ind);
dl_info->dci_ind = NULL; dl_info->dci_ind = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment