nFAPI time conversion: handle numerologies flexibly

At both the PNF and the VNF, introduce a separate numerology field, and
pass the numerology when converting time information using macros from
nfapi_interface.h. The actually numerology is still hardcoded to 1 (as it
was before), but the follow-up commits will put a suitable numerology.

In both cases, but the numerology next to the frame/slot information.
This commit is contained in:
Robert Schmidt
2025-01-27 10:59:19 +01:00
parent abe77333b1
commit f7617f8c9b
12 changed files with 91 additions and 88 deletions
+3 -1
View File
@@ -2523,7 +2523,9 @@ void nr_ue_pucch_scheduler(NR_UE_MAC_INST_t *mac, frame_t frameP, int slotP)
LOG_E(NR_MAC, "Error in pucch allocation\n");
return;
}
mac->nr_ue_emul_l1.active_uci_sfn_slot = NFAPI_SFNSLOT2HEX(frameP, slotP);
DevAssert(mac->current_DL_BWP != NULL);
int mu = mac->current_DL_BWP->scs;
mac->nr_ue_emul_l1.active_uci_sfn_slot = NFAPI_SFNSLOT2DEC(mu, frameP, slotP);
int ret = nr_ue_configure_pucch(mac,
slotP,
frameP,
+6 -4
View File
@@ -1043,11 +1043,13 @@ void *nrue_standalone_pnf_task(void *context)
// TODO: Update sinr field of slot_rnti_mcs to be array.
for (int i = 0; i < ch_info->nb_of_csi; ++i)
{
slot_rnti_mcs[NFAPI_SFNSLOT2SLOT(ch_info->sfn_slot)].sinr = ch_info->csi[i].sinr;
slot_rnti_mcs[NFAPI_SFNSLOT2SLOT(ch_info->sfn_slot)].area_code = ch_info->csi[i].area_code;
int mu = 1; // NR-UE emul-L1 is hardcoded to 30kHZ, see check_and_process_dci()
int frame = NFAPI_SFNSLOTDEC2SFN(mu, ch_info->sfn_slot);
int slot = NFAPI_SFNSLOTDEC2SLOT(mu, ch_info->sfn_slot);
slot_rnti_mcs[slot].sinr = ch_info->csi[i].sinr;
slot_rnti_mcs[slot].area_code = ch_info->csi[i].area_code;
LOG_D(NR_PHY, "Received_SINR[%d] = %f, sfn:slot %d:%d\n",
i, ch_info->csi[i].sinr, NFAPI_SFNSLOT2SFN(ch_info->sfn_slot), NFAPI_SFNSLOT2SLOT(ch_info->sfn_slot));
LOG_D(NR_PHY, "Received_SINR[%d] = %f, sfn:slot %d:%d\n", i, ch_info->csi[i].sinr, frame, slot);
}
if (!put_queue(&nr_chan_param_queue, ch_info))