From e678676a3d768bc8d2186711664e92aa3548a47a Mon Sep 17 00:00:00 2001 From: francescomani Date: Fri, 19 May 2023 18:07:05 +0200 Subject: [PATCH] remove old BWP structures at UE MAC --- openair2/LAYER2/NR_MAC_UE/config_ue.c | 21 +------- openair2/LAYER2/NR_MAC_UE/mac_defs.h | 4 -- openair2/LAYER2/NR_MAC_UE/mac_proto.h | 1 - openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c | 39 ++++---------- .../NR_MAC_UE/nr_ue_dci_configuration.c | 5 +- openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c | 53 ++++++------------- .../NR_MAC_gNB/gNB_scheduler_primitives.c | 1 - 7 files changed, 31 insertions(+), 93 deletions(-) diff --git a/openair2/LAYER2/NR_MAC_UE/config_ue.c b/openair2/LAYER2/NR_MAC_UE/config_ue.c index a3bb33868e..4ac46f7962 100644 --- a/openair2/LAYER2/NR_MAC_UE/config_ue.c +++ b/openair2/LAYER2/NR_MAC_UE/config_ue.c @@ -439,28 +439,11 @@ void config_common_ue(NR_UE_MAC_INST_t *mac, @param NR_UE_MAC_INST_t mac: pointer to local MAC instance @returns void */ -void config_control_ue(NR_UE_MAC_INST_t *mac){ - - int bwp_id; +void config_control_ue(NR_UE_MAC_INST_t *mac) +{ NR_ServingCellConfig_t *scd = mac->cg->spCellConfig->spCellConfigDedicated; NR_BWP_Id_t dl_bwp_id = mac->current_DL_BWP.bwp_id; - // configure DLbwp - if (scd->downlinkBWP_ToAddModList) { - for (int i = 0; i < scd->downlinkBWP_ToAddModList->list.count; i++) { - bwp_id = scd->downlinkBWP_ToAddModList->list.array[i]->bwp_Id; - mac->DLbwp[bwp_id-1] = scd->downlinkBWP_ToAddModList->list.array[i]; - } - } - - // configure ULbwp - if (scd->uplinkConfig->uplinkBWP_ToAddModList) { - for (int i = 0; i < scd->uplinkConfig->uplinkBWP_ToAddModList->list.count; i++) { - bwp_id = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[i]->bwp_Id; - mac->ULbwp[bwp_id-1] = scd->uplinkConfig->uplinkBWP_ToAddModList->list.array[i]; - } - } - configure_ss_coreset(mac, scd, dl_bwp_id); } diff --git a/openair2/LAYER2/NR_MAC_UE/mac_defs.h b/openair2/LAYER2/NR_MAC_UE/mac_defs.h index cc2f90280e..14ff5d886e 100644 --- a/openair2/LAYER2/NR_MAC_UE/mac_defs.h +++ b/openair2/LAYER2/NR_MAC_UE/mac_defs.h @@ -412,8 +412,6 @@ typedef struct { NR_UE_UL_BWP_t current_UL_BWP; NR_UL_TIME_ALIGNMENT_t ul_time_alignment; - NR_BWP_Downlink_t *DLbwp[MAX_NUM_BWP_UE]; - NR_BWP_Uplink_t *ULbwp[MAX_NUM_BWP_UE]; NR_ControlResourceSet_t *coreset[MAX_NUM_BWP_UE][FAPI_NR_MAX_CORESET_PER_BWP]; NR_SearchSpace_t *SSpace[MAX_NUM_BWP_UE][FAPI_NR_MAX_SS]; @@ -527,7 +525,5 @@ typedef struct ssb_list_info { uint8_t nb_tx_ssb; } ssb_list_info_t; -void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, fapi_nr_dl_config_request_t *dl_config, int rnti_type, int ss_id); - /*@}*/ #endif /*__LAYER2_MAC_DEFS_H__ */ diff --git a/openair2/LAYER2/NR_MAC_UE/mac_proto.h b/openair2/LAYER2/NR_MAC_UE/mac_proto.h index 53888c0f1d..573430878e 100644 --- a/openair2/LAYER2/NR_MAC_UE/mac_proto.h +++ b/openair2/LAYER2/NR_MAC_UE/mac_proto.h @@ -420,7 +420,6 @@ int8_t nr_ue_process_dci_freq_dom_resource_assignment(nfapi_nr_ue_pusch_pdu_t *p uint16_t n_RB_DLBWP, uint16_t riv); -void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, fapi_nr_dl_config_request_t *dl_config, int rnti_type, int ss_id); void fill_dci_search_candidates(NR_SearchSpace_t *ss,fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15, int slot, int rnti); void build_ssb_to_ro_map(NR_UE_MAC_INST_t *mac); diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c index 65ea5e2a79..155ea5cc19 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c @@ -85,40 +85,19 @@ void init_RA(module_id_t mod_id, prach_resources->POWER_OFFSET_2STEP_RA = 0; prach_resources->RA_SCALING_FACTOR_BI = 1; - struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList; - NR_SearchSpaceId_t *ra_ss; - NR_SearchSpaceId_t ss_id = -1; - NR_SearchSpace_t *ss = NULL; + NR_BWP_Id_t dl_bwp_id = mac->current_DL_BWP.bwp_id; + NR_BWP_DownlinkCommon_t *bwp_Common = get_bwp_downlink_common(mac, dl_bwp_id); + AssertFatal(bwp_Common != NULL, "bwp_Common is null\n"); + NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon; + NR_SearchSpaceId_t *ss_id = pdcch_ConfigCommon->choice.setup->ra_SearchSpace; + struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = pdcch_ConfigCommon->choice.setup->commonSearchSpaceList; - if (mac->scc) { - NR_SearchSpaceId_t *ra_ss = mac->scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->ra_SearchSpace; - if (ra_ss) { - commonSearchSpaceList = mac->scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList; - ss_id = *ra_ss; - } - } else if (mac->scc_SIB) { - NR_SearchSpaceId_t *ra_ss = mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->ra_SearchSpace; - if (ra_ss) { - commonSearchSpaceList = mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->commonSearchSpaceList; - ss_id = *ra_ss; - } - } - if (ss_id < 0) { - if (mac->current_DL_BWP.bwp_id>0) { - ra_ss = mac->DLbwp[mac->current_DL_BWP.bwp_id-1]->bwp_Common->pdcch_ConfigCommon->choice.setup->ra_SearchSpace; - if (ra_ss) { - commonSearchSpaceList = mac->DLbwp[mac->current_DL_BWP.bwp_id-1]->bwp_Common->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList; - ss_id = *ra_ss; - } - } - } - - AssertFatal(ss_id>-1,"Didn't find ra-SearchSpace\n"); + AssertFatal(ss_id, "Didn't find ra-SearchSpace\n"); AssertFatal(commonSearchSpaceList->list.count > 0, "common SearchSpace list has 0 elements\n"); // Common searchspace list for (int i = 0; i < commonSearchSpaceList->list.count; i++) { - ss = commonSearchSpaceList->list.array[i]; - if (ss->searchSpaceId == ss_id) + NR_SearchSpace_t *ss = commonSearchSpaceList->list.array[i]; + if (ss->searchSpaceId == *ss_id) ra->ss = ss; } diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c index 69cdfde879..333bb21725 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c @@ -266,8 +266,9 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl int ss_id; uint8_t bwp_id = mac->current_DL_BWP.bwp_id; - //NR_ServingCellConfig_t *scd = mac->scg->spCellConfig->spCellConfigDedicated; - NR_BWP_DownlinkDedicated_t *bwpd = (bwp_id>0) ? mac->DLbwp[bwp_id-1]->bwp_Dedicated : (mac->cg ? mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP : NULL); + NR_ServingCellConfig_t *scd = mac->cg->spCellConfig->spCellConfigDedicated; + NR_BWP_DownlinkDedicated_t *bwpd = bwp_id > 0 ? scd->downlinkBWP_ToAddModList->list.array[bwp_id - 1]->bwp_Dedicated: + scd->initialDownlinkBWP; NR_BWP_DownlinkCommon_t *bwp_Common = get_bwp_downlink_common(mac, bwp_id); LOG_D(NR_MAC, "[DCI_CONFIG] ra_rnti %p (%x) crnti %p (%x) t_crnti %p (%x)\n", &ra->ra_rnti, ra->ra_rnti, &mac->crnti, mac->crnti, &ra->t_crnti, ra->t_crnti); diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c index 49eb8416f1..a8535e185b 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c @@ -526,11 +526,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, pusch_config_pdu->tbslbrm = 0; } else if (dci) { - NR_BWP_Id_t ul_bwp_id = mac->current_UL_BWP.bwp_id; - - int target_ss; - bool valid_ptrs_setup = 0; - pusch_config_pdu->bwp_start = current_UL_BWP->BWPStart; pusch_config_pdu->bwp_size = current_UL_BWP->BWPSize; @@ -544,21 +539,21 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, pusch_config_pdu->transform_precoding = get_transformPrecoding(current_UL_BWP, *dci_format, 0); /*DCI format-related configuration*/ + int target_ss; if (*dci_format == NR_UL_DCI_FORMAT_0_0) { - target_ss = NR_SearchSpace__searchSpaceType_PR_common; - + if ((pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) && + pusch_config_pdu->nr_of_symbols < 3) + pusch_config_pdu->num_dmrs_cdm_grps_no_data = 1; + else + pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; } else if (*dci_format == NR_UL_DCI_FORMAT_0_1) { - target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific; ul_layers_config(mac, pusch_config_pdu, dci, *dci_format); ul_ports_config(mac, &dmrslength, pusch_config_pdu, dci, *dci_format); - } else { - LOG_E(NR_MAC, "In %s: UL grant from DCI format %d is not handled...\n", __FUNCTION__, *dci_format); return -1; - } int mappingtype = tda_info->mapping_type; @@ -577,8 +572,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, /* TRANSFORM PRECODING ------------------------------------------------------------------------------------------*/ if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled) { - pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; - uint32_t n_RS_Id = 0; if (NR_DMRS_ulconfig->transformPrecodingEnabled && NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity != NULL) @@ -664,18 +657,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, pusch_config_pdu->start_symbol_index, mac->scc ? mac->scc->dmrs_TypeA_Position : mac->mib->dmrs_TypeA_Position); - if (ul_bwp_id > 0 && - mac->ULbwp[ul_bwp_id - 1] && - pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled && - *dci_format != NR_UL_DCI_FORMAT_0_1) { - pusch_config_pdu->num_dmrs_cdm_grps_no_data = 1; - } else if (*dci_format == NR_UL_DCI_FORMAT_0_0 || - (ul_bwp_id > 0 && - mac->ULbwp[ul_bwp_id-1] && - pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled)) { - pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2; - } - // Num PRB Overhead from PUSCH-ServingCellConfig if (current_UL_BWP->pusch_servingcellconfig && current_UL_BWP->pusch_servingcellconfig->xOverhead) N_PRB_oh = *current_UL_BWP->pusch_servingcellconfig->xOverhead; @@ -699,17 +680,17 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac, if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) { nfapi_nr_ue_ptrs_ports_t ptrs_ports_list; pusch_config_pdu->pusch_ptrs.ptrs_ports_list = &ptrs_ports_list; - valid_ptrs_setup = set_ul_ptrs_values(pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup, - pusch_config_pdu->rb_size, - pusch_config_pdu->mcs_index, - pusch_config_pdu->mcs_table, - &pusch_config_pdu->pusch_ptrs.ptrs_freq_density, - &pusch_config_pdu->pusch_ptrs.ptrs_time_density, - &pusch_config_pdu->pusch_ptrs.ptrs_ports_list->ptrs_re_offset, - &pusch_config_pdu->pusch_ptrs.num_ptrs_ports, - &pusch_config_pdu->pusch_ptrs.ul_ptrs_power, - pusch_config_pdu->nr_of_symbols); - if(valid_ptrs_setup==true) { + bool valid_ptrs_setup = set_ul_ptrs_values(pusch_Config->dmrs_UplinkForPUSCH_MappingTypeB->choice.setup->phaseTrackingRS->choice.setup, + pusch_config_pdu->rb_size, + pusch_config_pdu->mcs_index, + pusch_config_pdu->mcs_table, + &pusch_config_pdu->pusch_ptrs.ptrs_freq_density, + &pusch_config_pdu->pusch_ptrs.ptrs_time_density, + &pusch_config_pdu->pusch_ptrs.ptrs_ports_list->ptrs_re_offset, + &pusch_config_pdu->pusch_ptrs.num_ptrs_ports, + &pusch_config_pdu->pusch_ptrs.ul_ptrs_power, + pusch_config_pdu->nr_of_symbols); + if(valid_ptrs_setup == true) { pusch_config_pdu->pdu_bit_map |= PUSCH_PDU_BITMAP_PUSCH_PTRS; } LOG_D(NR_MAC, "UL PTRS values: PTRS time den: %d, PTRS freq den: %d\n", pusch_config_pdu->pusch_ptrs.ptrs_time_density, pusch_config_pdu->pusch_ptrs.ptrs_freq_density); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index 33bd6831d1..5ceaed1f56 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -2897,7 +2897,6 @@ void UL_tti_req_ahead_initialization(gNB_MAC_INST * gNB, NR_ServingCellConfigCom void send_initial_ul_rrc_message(gNB_MAC_INST *mac, int rnti, const uint8_t *sdu, sdu_size_t sdu_len, void *rawUE) { - LOG_W(MAC, "[RAPROC] Received SDU for CCCH length %d for UE %04x\n", sdu_len, rnti); NR_UE_info_t *UE = (NR_UE_info_t *)rawUE; NR_SCHED_ENSURE_LOCKED(&mac->sched_lock);