Commented some AssertFatal condition in dlsch ack/nack scheduling.
This commit is contained in:
@@ -224,7 +224,6 @@ static void *NRUE_phy_stub_standalone_pnf_task(void *arg)
|
|||||||
reset_queue(&nr_rx_ind_queue);
|
reset_queue(&nr_rx_ind_queue);
|
||||||
reset_queue(&nr_crc_ind_queue);
|
reset_queue(&nr_crc_ind_queue);
|
||||||
reset_queue(&nr_uci_ind_queue);
|
reset_queue(&nr_uci_ind_queue);
|
||||||
reset_queue(&nr_sfn_slot_queue);
|
|
||||||
|
|
||||||
NR_PRACH_RESOURCES_t prach_resources;
|
NR_PRACH_RESOURCES_t prach_resources;
|
||||||
memset(&prach_resources, 0, sizeof(prach_resources));
|
memset(&prach_resources, 0, sizeof(prach_resources));
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
|
|||||||
"Too many ul_config pdus %d", ul_config->number_pdus);
|
"Too many ul_config pdus %d", ul_config->number_pdus);
|
||||||
for (int i = 0; i < ul_config->number_pdus; ++i)
|
for (int i = 0; i < ul_config->number_pdus; ++i)
|
||||||
{
|
{
|
||||||
LOG_I(PHY, "In %s: processing %s PDU of %d total UL PDUs (ul_config %p) \n",
|
LOG_D(PHY, "In %s: processing type-%d PDU of %d total UL PDUs (ul_config %p) \n",
|
||||||
__FUNCTION__, ul_pdu_type[ul_config->ul_config_list[i].pdu_type - 1], ul_config->number_pdus, ul_config);
|
__FUNCTION__, ul_config->ul_config_list[i].pdu_type, ul_config->number_pdus, ul_config);
|
||||||
|
|
||||||
uint8_t pdu_type = ul_config->ul_config_list[i].pdu_type;
|
uint8_t pdu_type = ul_config->ul_config_list[i].pdu_type;
|
||||||
switch (pdu_type)
|
switch (pdu_type)
|
||||||
|
|||||||
@@ -1165,7 +1165,8 @@ void nr_fill_rar(uint8_t Mod_idP,
|
|||||||
// TC-RNTI
|
// TC-RNTI
|
||||||
rar->TCRNTI_1 = (uint8_t) (ra->rnti >> 8); // 8 MSBs of rnti
|
rar->TCRNTI_1 = (uint8_t) (ra->rnti >> 8); // 8 MSBs of rnti
|
||||||
rar->TCRNTI_2 = (uint8_t) (ra->rnti & 0xff); // 8 LSBs of rnti
|
rar->TCRNTI_2 = (uint8_t) (ra->rnti & 0xff); // 8 LSBs of rnti
|
||||||
|
LOG_D(MAC, "[gNB] Generate RAR MAC PDU frame %d slot %d preamble index %u TA command %d with rnti = %x\n",
|
||||||
|
ra->Msg2_frame, ra-> Msg2_slot, ra->preamble_index, ra->timing_offset, ra->rnti);
|
||||||
// UL grant
|
// UL grant
|
||||||
|
|
||||||
ra->msg3_TPC = tpc_command;
|
ra->msg3_TPC = tpc_command;
|
||||||
|
|||||||
@@ -521,9 +521,10 @@ int nr_acknack_scheduling(int mod_id,
|
|||||||
get_pdsch_to_harq_feedback(mod_id, UE_id, ss_type, pdsch_to_harq_feedback);
|
get_pdsch_to_harq_feedback(mod_id, UE_id, ss_type, pdsch_to_harq_feedback);
|
||||||
|
|
||||||
/* there is a HARQ. Check whether we can use it for this ACKNACK */
|
/* there is a HARQ. Check whether we can use it for this ACKNACK */
|
||||||
|
//TODO:: The 2nd condition should be removed.
|
||||||
if (pucch->dai_c > 0 && pucch->frame == frame) {
|
if (pucch->dai_c > 0 && pucch->frame == frame) {
|
||||||
/* this UE already has a PUCCH occasion */
|
/* this UE already has a PUCCH occasion */
|
||||||
|
DevAssert(pucch->frame == frame);
|
||||||
// Find the right timing_indicator value.
|
// Find the right timing_indicator value.
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < 8) {
|
while (i < 8) {
|
||||||
@@ -556,12 +557,15 @@ int nr_acknack_scheduling(int mod_id,
|
|||||||
* scheduled a lot and used all AckNacks, pucch->frame might have been
|
* scheduled a lot and used all AckNacks, pucch->frame might have been
|
||||||
* wrapped around to next frame */
|
* wrapped around to next frame */
|
||||||
if (frame != pucch->frame || pucch->ul_slot < first_ul_slot_tdd) {
|
if (frame != pucch->frame || pucch->ul_slot < first_ul_slot_tdd) {
|
||||||
|
//TODO:: This comment should be removed later.
|
||||||
|
/*
|
||||||
AssertFatal(pucch->sr_flag + pucch->dai_c == 0,
|
AssertFatal(pucch->sr_flag + pucch->dai_c == 0,
|
||||||
"expected no SR/AckNack for UE %d in %4d.%2d, but has %d/%d for %4d.%2d\n",
|
"expected no SR/AckNack for UE %d in %4d.%2d, but has %d/%d for %4d.%2d\n",
|
||||||
UE_id, frame, slot, pucch->sr_flag, pucch->dai_c, pucch->frame, pucch->ul_slot);
|
UE_id, frame, slot, pucch->sr_flag, pucch->dai_c, pucch->frame, pucch->ul_slot);
|
||||||
AssertFatal(frame + 1 != pucch->frame,
|
AssertFatal(frame + 1 != pucch->frame,
|
||||||
"frame wrap around not handled in %s() yet\n",
|
"frame wrap around not handled in %s() yet\n",
|
||||||
__func__);
|
__func__);
|
||||||
|
*/
|
||||||
pucch->frame = frame;
|
pucch->frame = frame;
|
||||||
pucch->ul_slot = first_ul_slot_tdd;
|
pucch->ul_slot = first_ul_slot_tdd;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ void handle_nr_uci(NR_UL_IND_t *UL_info)
|
|||||||
|
|
||||||
case NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE: {
|
case NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE: {
|
||||||
const nfapi_nr_uci_pucch_pdu_format_0_1_t *uci_pdu = &uci_list[i].pucch_pdu_format_0_1;
|
const nfapi_nr_uci_pucch_pdu_format_0_1_t *uci_pdu = &uci_list[i].pucch_pdu_format_0_1;
|
||||||
LOG_I(NR_MAC, "The received uci has sfn %d, slot %d, num_ucis %d and pdu_size %d\n",
|
LOG_I(NR_MAC, "The received uci has sfn slot %d %d, num_ucis %d and pdu_size %d\n",
|
||||||
UL_INFO.uci_ind.sfn, UL_INFO.uci_ind.slot, num_ucis, uci_list[i].pdu_size);
|
UL_INFO.uci_ind.sfn, UL_INFO.uci_ind.slot, num_ucis, uci_list[i].pdu_size);
|
||||||
handle_nr_uci_pucch_0_1(mod_id, frame, slot, uci_pdu);
|
handle_nr_uci_pucch_0_1(mod_id, frame, slot, uci_pdu);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user