remove old BWP structures at UE MAC
This commit is contained in:
@@ -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
|
@param NR_UE_MAC_INST_t mac: pointer to local MAC instance
|
||||||
@returns void
|
@returns void
|
||||||
*/
|
*/
|
||||||
void config_control_ue(NR_UE_MAC_INST_t *mac){
|
void config_control_ue(NR_UE_MAC_INST_t *mac)
|
||||||
|
{
|
||||||
int bwp_id;
|
|
||||||
NR_ServingCellConfig_t *scd = mac->cg->spCellConfig->spCellConfigDedicated;
|
NR_ServingCellConfig_t *scd = mac->cg->spCellConfig->spCellConfigDedicated;
|
||||||
NR_BWP_Id_t dl_bwp_id = mac->current_DL_BWP.bwp_id;
|
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);
|
configure_ss_coreset(mac, scd, dl_bwp_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -412,8 +412,6 @@ typedef struct {
|
|||||||
NR_UE_UL_BWP_t current_UL_BWP;
|
NR_UE_UL_BWP_t current_UL_BWP;
|
||||||
NR_UL_TIME_ALIGNMENT_t ul_time_alignment;
|
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_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];
|
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;
|
uint8_t nb_tx_ssb;
|
||||||
} ssb_list_info_t;
|
} 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__ */
|
#endif /*__LAYER2_MAC_DEFS_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 n_RB_DLBWP,
|
||||||
uint16_t riv);
|
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 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);
|
void build_ssb_to_ro_map(NR_UE_MAC_INST_t *mac);
|
||||||
|
|||||||
@@ -85,40 +85,19 @@ void init_RA(module_id_t mod_id,
|
|||||||
prach_resources->POWER_OFFSET_2STEP_RA = 0;
|
prach_resources->POWER_OFFSET_2STEP_RA = 0;
|
||||||
prach_resources->RA_SCALING_FACTOR_BI = 1;
|
prach_resources->RA_SCALING_FACTOR_BI = 1;
|
||||||
|
|
||||||
struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList;
|
NR_BWP_Id_t dl_bwp_id = mac->current_DL_BWP.bwp_id;
|
||||||
NR_SearchSpaceId_t *ra_ss;
|
NR_BWP_DownlinkCommon_t *bwp_Common = get_bwp_downlink_common(mac, dl_bwp_id);
|
||||||
NR_SearchSpaceId_t ss_id = -1;
|
AssertFatal(bwp_Common != NULL, "bwp_Common is null\n");
|
||||||
NR_SearchSpace_t *ss = NULL;
|
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) {
|
AssertFatal(ss_id, "Didn't find ra-SearchSpace\n");
|
||||||
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(commonSearchSpaceList->list.count > 0, "common SearchSpace list has 0 elements\n");
|
AssertFatal(commonSearchSpaceList->list.count > 0, "common SearchSpace list has 0 elements\n");
|
||||||
// Common searchspace list
|
// Common searchspace list
|
||||||
for (int i = 0; i < commonSearchSpaceList->list.count; i++) {
|
for (int i = 0; i < commonSearchSpaceList->list.count; i++) {
|
||||||
ss = commonSearchSpaceList->list.array[i];
|
NR_SearchSpace_t *ss = commonSearchSpaceList->list.array[i];
|
||||||
if (ss->searchSpaceId == ss_id)
|
if (ss->searchSpaceId == *ss_id)
|
||||||
ra->ss = ss;
|
ra->ss = ss;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -266,8 +266,9 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
|
|||||||
int ss_id;
|
int ss_id;
|
||||||
|
|
||||||
uint8_t bwp_id = mac->current_DL_BWP.bwp_id;
|
uint8_t bwp_id = mac->current_DL_BWP.bwp_id;
|
||||||
//NR_ServingCellConfig_t *scd = mac->scg->spCellConfig->spCellConfigDedicated;
|
NR_ServingCellConfig_t *scd = mac->cg->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_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);
|
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);
|
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);
|
||||||
|
|||||||
@@ -526,11 +526,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
pusch_config_pdu->tbslbrm = 0;
|
pusch_config_pdu->tbslbrm = 0;
|
||||||
|
|
||||||
} else if (dci) {
|
} 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_start = current_UL_BWP->BWPStart;
|
||||||
pusch_config_pdu->bwp_size = current_UL_BWP->BWPSize;
|
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);
|
pusch_config_pdu->transform_precoding = get_transformPrecoding(current_UL_BWP, *dci_format, 0);
|
||||||
|
|
||||||
/*DCI format-related configuration*/
|
/*DCI format-related configuration*/
|
||||||
|
int target_ss;
|
||||||
if (*dci_format == NR_UL_DCI_FORMAT_0_0) {
|
if (*dci_format == NR_UL_DCI_FORMAT_0_0) {
|
||||||
|
|
||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_common;
|
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) {
|
} else if (*dci_format == NR_UL_DCI_FORMAT_0_1) {
|
||||||
|
|
||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
||||||
ul_layers_config(mac, pusch_config_pdu, dci, *dci_format);
|
ul_layers_config(mac, pusch_config_pdu, dci, *dci_format);
|
||||||
ul_ports_config(mac, &dmrslength, pusch_config_pdu, dci, *dci_format);
|
ul_ports_config(mac, &dmrslength, pusch_config_pdu, dci, *dci_format);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
LOG_E(NR_MAC, "In %s: UL grant from DCI format %d is not handled...\n", __FUNCTION__, *dci_format);
|
LOG_E(NR_MAC, "In %s: UL grant from DCI format %d is not handled...\n", __FUNCTION__, *dci_format);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int mappingtype = tda_info->mapping_type;
|
int mappingtype = tda_info->mapping_type;
|
||||||
@@ -577,8 +572,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
/* TRANSFORM PRECODING ------------------------------------------------------------------------------------------*/
|
/* TRANSFORM PRECODING ------------------------------------------------------------------------------------------*/
|
||||||
if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_enabled) {
|
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;
|
uint32_t n_RS_Id = 0;
|
||||||
if (NR_DMRS_ulconfig->transformPrecodingEnabled &&
|
if (NR_DMRS_ulconfig->transformPrecodingEnabled &&
|
||||||
NR_DMRS_ulconfig->transformPrecodingEnabled->nPUSCH_Identity != NULL)
|
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,
|
pusch_config_pdu->start_symbol_index,
|
||||||
mac->scc ? mac->scc->dmrs_TypeA_Position : mac->mib->dmrs_TypeA_Position);
|
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
|
// Num PRB Overhead from PUSCH-ServingCellConfig
|
||||||
if (current_UL_BWP->pusch_servingcellconfig && current_UL_BWP->pusch_servingcellconfig->xOverhead)
|
if (current_UL_BWP->pusch_servingcellconfig && current_UL_BWP->pusch_servingcellconfig->xOverhead)
|
||||||
N_PRB_oh = *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) {
|
if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) {
|
||||||
nfapi_nr_ue_ptrs_ports_t ptrs_ports_list;
|
nfapi_nr_ue_ptrs_ports_t ptrs_ports_list;
|
||||||
pusch_config_pdu->pusch_ptrs.ptrs_ports_list = &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,
|
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->rb_size,
|
||||||
pusch_config_pdu->mcs_index,
|
pusch_config_pdu->mcs_index,
|
||||||
pusch_config_pdu->mcs_table,
|
pusch_config_pdu->mcs_table,
|
||||||
&pusch_config_pdu->pusch_ptrs.ptrs_freq_density,
|
&pusch_config_pdu->pusch_ptrs.ptrs_freq_density,
|
||||||
&pusch_config_pdu->pusch_ptrs.ptrs_time_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.ptrs_ports_list->ptrs_re_offset,
|
||||||
&pusch_config_pdu->pusch_ptrs.num_ptrs_ports,
|
&pusch_config_pdu->pusch_ptrs.num_ptrs_ports,
|
||||||
&pusch_config_pdu->pusch_ptrs.ul_ptrs_power,
|
&pusch_config_pdu->pusch_ptrs.ul_ptrs_power,
|
||||||
pusch_config_pdu->nr_of_symbols);
|
pusch_config_pdu->nr_of_symbols);
|
||||||
if(valid_ptrs_setup==true) {
|
if(valid_ptrs_setup == true) {
|
||||||
pusch_config_pdu->pdu_bit_map |= PUSCH_PDU_BITMAP_PUSCH_PTRS;
|
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);
|
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);
|
||||||
|
|||||||
@@ -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)
|
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_UE_info_t *UE = (NR_UE_info_t *)rawUE;
|
||||||
NR_SCHED_ENSURE_LOCKED(&mac->sched_lock);
|
NR_SCHED_ENSURE_LOCKED(&mac->sched_lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user