Fix after review MR 1039
- FAPI structures not to be used as config_req at MAC since that FAPI is just for communication between MAC and PHY - additional frame_type member added to the FAPI struct
This commit is contained in:
@@ -203,12 +203,12 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
|
|||||||
uint32_t band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
|
uint32_t band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
|
||||||
frequency_range_t frequency_range = band<100?FR1:FR2;
|
frequency_range_t frequency_range = band<100?FR1:FR2;
|
||||||
|
|
||||||
lte_frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
|
mac->frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
|
||||||
|
|
||||||
// cell config
|
// cell config
|
||||||
|
|
||||||
cfg->cell_config.phy_cell_id = *scc->physCellId;
|
cfg->cell_config.phy_cell_id = *scc->physCellId;
|
||||||
cfg->cell_config.frame_duplex_type = frame_type;
|
cfg->cell_config.frame_duplex_type = mac->frame_type;
|
||||||
|
|
||||||
// SSB config
|
// SSB config
|
||||||
cfg->ssb_config.ss_pbch_power = scc->ss_PBCH_BlockPower;
|
cfg->ssb_config.ss_pbch_power = scc->ss_PBCH_BlockPower;
|
||||||
@@ -312,7 +312,7 @@ void config_common_ue(NR_UE_MAC_INST_t *mac,
|
|||||||
|
|
||||||
cfg->prach_config.num_prach_fd_occasions_list[i].k1 = scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.msg1_FrequencyStart;
|
cfg->prach_config.num_prach_fd_occasions_list[i].k1 = scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.msg1_FrequencyStart;
|
||||||
cfg->prach_config.num_prach_fd_occasions_list[i].prach_zero_corr_conf = scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.zeroCorrelationZoneConfig;
|
cfg->prach_config.num_prach_fd_occasions_list[i].prach_zero_corr_conf = scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric.zeroCorrelationZoneConfig;
|
||||||
cfg->prach_config.num_prach_fd_occasions_list[i].num_root_sequences = compute_nr_root_seq(scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup, nb_preambles, frame_type,frequency_range);
|
cfg->prach_config.num_prach_fd_occasions_list[i].num_root_sequences = compute_nr_root_seq(scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup, nb_preambles, mac->frame_type, frequency_range);
|
||||||
//cfg->prach_config.num_prach_fd_occasions_list[i].num_unused_root_sequences = ???
|
//cfg->prach_config.num_prach_fd_occasions_list[i].num_unused_root_sequences = ???
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -325,6 +325,8 @@ typedef struct {
|
|||||||
NR_ControlResourceSet_t *coreset[MAX_NUM_BWP][FAPI_NR_MAX_CORESET_PER_BWP];
|
NR_ControlResourceSet_t *coreset[MAX_NUM_BWP][FAPI_NR_MAX_CORESET_PER_BWP];
|
||||||
NR_SearchSpace_t *SSpace[MAX_NUM_BWP][FAPI_NR_MAX_CORESET_PER_BWP][FAPI_NR_MAX_SS_PER_CORESET];
|
NR_SearchSpace_t *SSpace[MAX_NUM_BWP][FAPI_NR_MAX_CORESET_PER_BWP][FAPI_NR_MAX_SS_PER_CORESET];
|
||||||
|
|
||||||
|
lte_frame_type_t frame_type;
|
||||||
|
|
||||||
/*BWP*/
|
/*BWP*/
|
||||||
// dedicated active DL BWP
|
// dedicated active DL BWP
|
||||||
NR_BWP_Id_t DL_BWP_Id;
|
NR_BWP_Id_t DL_BWP_Id;
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ long get_k2(NR_UE_MAC_INST_t *mac, uint8_t time_domain_ind) {
|
|||||||
fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int slot)
|
fapi_nr_ul_config_request_t *get_ul_config_request(NR_UE_MAC_INST_t *mac, int slot)
|
||||||
{
|
{
|
||||||
//Check if request to access ul_config is for a UL slot
|
//Check if request to access ul_config is for a UL slot
|
||||||
if (is_nr_UL_slot(mac->scc, slot, mac->phy_config.config_req.cell_config.frame_duplex_type) == 0) {
|
if (is_nr_UL_slot(mac->scc, slot, mac->frame_type) == 0) {
|
||||||
LOG_W(MAC, "Slot %d is not a UL slot. %s called for wrong slot!!!\n", slot, __FUNCTION__);
|
LOG_W(MAC, "Slot %d is not a UL slot. %s called for wrong slot!!!\n", slot, __FUNCTION__);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -1663,7 +1663,7 @@ void nr_ue_prach_scheduler(module_id_t module_idP, frame_t frameP, sub_frame_t s
|
|||||||
ra->RA_offset = 2; // to compensate the rx frame offset at the gNB
|
ra->RA_offset = 2; // to compensate the rx frame offset at the gNB
|
||||||
ra->generate_nr_prach = 0; // Reset flag for PRACH generation
|
ra->generate_nr_prach = 0; // Reset flag for PRACH generation
|
||||||
|
|
||||||
if (is_nr_UL_slot(scc, slotP, mac->phy_config.config_req.cell_config.frame_duplex_type)) {
|
if (is_nr_UL_slot(scc, slotP, mac->frame_type)) {
|
||||||
|
|
||||||
// WIP Need to get the proper selected ssb_idx
|
// WIP Need to get the proper selected ssb_idx
|
||||||
// Initial beam selection functionality is not available yet
|
// Initial beam selection functionality is not available yet
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ int nr_ue_ul_indication(nr_uplink_indication_t *ul_info){
|
|||||||
|
|
||||||
ret = nr_ue_scheduler(NULL, ul_info);
|
ret = nr_ue_scheduler(NULL, ul_info);
|
||||||
|
|
||||||
if (is_nr_UL_slot(mac->scc, ul_info->slot_tx, mac->phy_config.config_req.cell_config.frame_duplex_type) && get_softmodem_params()->do_ra)
|
if (is_nr_UL_slot(mac->scc, ul_info->slot_tx, mac->frame_type) && get_softmodem_params()->do_ra)
|
||||||
nr_ue_prach_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx, ul_info->thread_id);
|
nr_ue_prach_scheduler(module_id, ul_info->frame_tx, ul_info->slot_tx, ul_info->thread_id);
|
||||||
|
|
||||||
switch(ret){
|
switch(ret){
|
||||||
|
|||||||
Reference in New Issue
Block a user