new mac array for tdd-beam association in FR2
This commit is contained in:
+1
-1
@@ -771,7 +771,7 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
|
|||||||
//}
|
//}
|
||||||
|
|
||||||
LOG_I(HW,"slot %d, beam %d\n",slot,ru->common.beam_id[0][slot*fp->symbols_per_slot]);
|
LOG_I(HW,"slot %d, beam %d\n",slot,ru->common.beam_id[0][slot*fp->symbols_per_slot]);
|
||||||
|
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_WRITE_FLAGS, flags );
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_WRITE_FLAGS, flags );
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU, frame );
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU, frame );
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_TX0_RU, slot );
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TTI_NUMBER_TX0_RU, slot );
|
||||||
|
|||||||
@@ -582,7 +582,7 @@ typedef struct {
|
|||||||
|
|
||||||
} nfapi_nr_slot_indication_t;
|
} nfapi_nr_slot_indication_t;
|
||||||
|
|
||||||
// 3.4.2
|
// 3.4.2
|
||||||
|
|
||||||
//for pdcch_pdu:
|
//for pdcch_pdu:
|
||||||
|
|
||||||
|
|||||||
@@ -152,7 +152,6 @@ int nr_phy_init_RU(RU_t *ru) {
|
|||||||
ru->common.beam_id[i] = (uint8_t*)malloc16_clear(fp->symbols_per_slot*fp->slots_per_frame*sizeof(uint8_t));
|
ru->common.beam_id[i] = (uint8_t*)malloc16_clear(fp->symbols_per_slot*fp->slots_per_frame*sizeof(uint8_t));
|
||||||
memset(ru->common.beam_id[i],255,fp->symbols_per_slot*fp->slots_per_frame);
|
memset(ru->common.beam_id[i],255,fp->symbols_per_slot*fp->slots_per_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // !=IF5
|
} // !=IF5
|
||||||
|
|
||||||
ru->common.sync_corr = (uint32_t*)malloc16_clear( LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*sizeof(uint32_t)*fp->samples_per_subframe_wCP );
|
ru->common.sync_corr = (uint32_t*)malloc16_clear( LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*sizeof(uint32_t)*fp->samples_per_subframe_wCP );
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ int set_tdd_config_nr( nfapi_nr_config_request_scf_t *cfg,
|
|||||||
LOG_E(PHY,"set_tdd_configuration_nr: additionnal tdd configuration 2 is not supported for tdd configuration \n");
|
LOG_E(PHY,"set_tdd_configuration_nr: additionnal tdd configuration 2 is not supported for tdd configuration \n");
|
||||||
return (-1);
|
return (-1);
|
||||||
}*/
|
}*/
|
||||||
return (0);
|
return (nb_periods_per_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************
|
/*******************************************************************
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
|
|||||||
cfg->num_tlv++;
|
cfg->num_tlv++;
|
||||||
}
|
}
|
||||||
for (int i=0;i<32;i++) {
|
for (int i=0;i<32;i++) {
|
||||||
cfg->ssb_table.ssb_beam_id_list[32+i].beam_id.tl.tag = NFAPI_NR_CONFIG_BEAM_ID_TAG;
|
cfg->ssb_table.ssb_beam_id_list[32+i].beam_id.tl.tag = NFAPI_NR_CONFIG_BEAM_ID_TAG;
|
||||||
if ((cfg->ssb_table.ssb_mask_list[1].ssb_mask.value>>(31-i))&1) {
|
if ((cfg->ssb_table.ssb_mask_list[1].ssb_mask.value>>(31-i))&1) {
|
||||||
cfg->ssb_table.ssb_beam_id_list[32+i].beam_id.value = num_ssb;
|
cfg->ssb_table.ssb_beam_id_list[32+i].beam_id.value = num_ssb;
|
||||||
num_ssb++;
|
num_ssb++;
|
||||||
@@ -309,17 +309,19 @@ void config_common(int Mod_idP, int pdsch_AntennaPorts, NR_ServingCellConfigComm
|
|||||||
}
|
}
|
||||||
if(cfg->cell_config.frame_duplex_type.value == TDD){
|
if(cfg->cell_config.frame_duplex_type.value == TDD){
|
||||||
LOG_I(MAC,"Setting TDD configuration period to %d\n",cfg->tdd_table.tdd_period.value);
|
LOG_I(MAC,"Setting TDD configuration period to %d\n",cfg->tdd_table.tdd_period.value);
|
||||||
int return_tdd = set_tdd_config_nr(cfg,
|
int periods_per_frame = set_tdd_config_nr(cfg,
|
||||||
scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->subcarrierSpacing,
|
scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[0]->subcarrierSpacing,
|
||||||
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSlots,
|
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSlots,
|
||||||
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSymbols,
|
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofDownlinkSymbols,
|
||||||
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSlots,
|
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSlots,
|
||||||
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSymbols);
|
scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSymbols);
|
||||||
|
|
||||||
if (return_tdd != 0)
|
if (periods_per_frame < 0)
|
||||||
LOG_E(MAC,"TDD configuration can not be done\n");
|
LOG_E(MAC,"TDD configuration can not be done\n");
|
||||||
else
|
else {
|
||||||
LOG_I(MAC,"TDD has been properly configurated\n");
|
LOG_I(MAC,"TDD has been properly configurated\n");
|
||||||
|
RC.nrmac[Mod_idP]->tdd_beam_association = (uint8_t *)malloc16(periods_per_frame*sizeof(uint8_t));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -296,10 +296,6 @@ NR_SearchSpace_t *get_searchspace(
|
|||||||
NR_BWP_Downlink_t *bwp,
|
NR_BWP_Downlink_t *bwp,
|
||||||
NR_SearchSpace__searchSpaceType_PR target_ss);
|
NR_SearchSpace__searchSpaceType_PR target_ss);
|
||||||
|
|
||||||
void find_aggregation_candidates(uint8_t *aggregation_level,
|
|
||||||
uint8_t *nr_of_candidates,
|
|
||||||
NR_SearchSpace_t *ss);
|
|
||||||
|
|
||||||
long get_K2(NR_BWP_Uplink_t *ubwp, int time_domain_assignment, int mu);
|
long get_K2(NR_BWP_Uplink_t *ubwp, int time_domain_assignment, int mu);
|
||||||
|
|
||||||
void nr_save_pusch_fields(const NR_ServingCellConfigCommon_t *scc,
|
void nr_save_pusch_fields(const NR_ServingCellConfigCommon_t *scc,
|
||||||
|
|||||||
@@ -547,7 +547,8 @@ typedef struct gNB_MAC_INST_s {
|
|||||||
time_stats_t schedule_pch;
|
time_stats_t schedule_pch;
|
||||||
/// CCE lists
|
/// CCE lists
|
||||||
int cce_list[MAX_NUM_BWP][MAX_NUM_CORESET][MAX_NUM_CCE];
|
int cce_list[MAX_NUM_BWP][MAX_NUM_CORESET][MAX_NUM_CCE];
|
||||||
|
/// list of allocated beams per period
|
||||||
|
uint8_t *tdd_beam_association;
|
||||||
/// DL preprocessor for differentiated scheduling
|
/// DL preprocessor for differentiated scheduling
|
||||||
nr_pp_impl_dl pre_processor_dl;
|
nr_pp_impl_dl pre_processor_dl;
|
||||||
/// UL preprocessor for differentiated scheduling
|
/// UL preprocessor for differentiated scheduling
|
||||||
|
|||||||
Reference in New Issue
Block a user