diff --git a/openair1/SCHED_NR/phy_procedures_nr_common.c b/openair1/SCHED_NR/phy_procedures_nr_common.c old mode 100644 new mode 100755 index ad73457cb31e882ffcf1dc90b3b529c68017aace..7c3f49a2913c682859ae0cf333249722dae332c4 --- a/openair1/SCHED_NR/phy_procedures_nr_common.c +++ b/openair1/SCHED_NR/phy_procedures_nr_common.c @@ -175,6 +175,100 @@ void nr_configure_css_dci_from_mib(nfapi_nr_dl_config_pdcch_parameters_rel15_t* void nr_configure_css_dci_from_pdcch_config(nfapi_nr_dl_config_pdcch_parameters_rel15_t* pdcch_params, nfapi_nr_coreset_t* coreset, nfapi_nr_search_space_t* search_space) { +//coreset + + //ControlResourceSetId + pdcch_params->config_type = coreset->coreset_id; + + //frequencyDomainResources + pdcch_params->n_rb = coreset->frequency_domain_resources; + + //duration + pdcch_params->n_symb = coreset->duration; + + //cce-REG-MappingType + switch (coreset->cce_reg_mapping_type) { + case NFAPI_NR_CCE_REG_MAPPING_NON_INTERLEAVED: //Non_interleaved + pdcch_params->reg_bundle_size = 0; + pdcch_params->interleaver_size = 0; + pdcch_params->shift_index = 0; + break; + case NFAPI_NR_CCE_REG_MAPPING_INTERLEAVED: //interleaved + pdcch_params->reg_bundle_size = coreset->reg_bundle_size; + pdcch_params->interleaver_size = coreset->interleaver_size; + pdcch_params->shift_index = coreset->shift_index; + break; + } + //precoderGranularity + pdcch_params->precoder_granularity = coreset->precoder_granularity; +/* + if (tci_present_in_dci == tciPresentInDCI_t->tciPresentInDCI_enabled){ + //not sure information + } +*/ + //pdcch-DMRS-ScramblingID + pdcch_params->scrambling_id = coreset->dmrs_scrambling_id; + + + + +//SearchSpace 38.213, Reference defs_nr_UE.h - 755-840 code + //searchSpaceId + search_space->search_space_id = 0; + + //controlResourceSetId + if(coreset->coreset_id != NULL){ + search_space->coreset_id = coreset->coreset_id; //Value 0 or Value 1 + } + + //monitoringSlotPeriodicityAndOffset + //pdcch_params->nb_slots = search_space->slot_monitoring_offset; //output not sure. + pdcch_params->nb_slots = search_space->slot_monitoring_periodicity; //nr_sl1=1,nr_sl2=2,nr_sl4=4,nr_sl5=5,nr_sl8=8,nr_sl10=10,nr_sl16=16,nr_sl20=20,nr_sl40=40,nr_sl80=80,nr_sl160=160,nr_sl320=320,nr_sl640=640,nr_sl1280=1280,nr_sl2560=2560 + + //duration + search_space->duration = search_space->slot_monitoring_periodicity-1; //The maximum valid duration is periodicity-1 + + + //monitoringSymbolsWithinSlot + pdcch_params->first_symbol = search_space->monitoring_symbols_in_slot; //38.213 page.69 + + //nrofCandidates + //NFAPI_NR_MAX_NB_CCE_AGGREGATION_LEVELS = 5 {1,2,4,8,16} + pdcch_params->aggregation_level = search_space->number_of_candidates[NFAPI_NR_MAX_NB_CCE_AGGREGATION_LEVELS]; + + if (search_space->search_space_type == 0){ + //Common_CSS + pdcch_params->search_space_type = search_space->search_space_type; + if(search_space->css_formats_0_0_and_1_0 == 0){ //Type0-"SI-RNTI, Type0A-SI-RNTI, Type1-RA-RNTI or TC-RNTI, Type2-P-RNTI, Type3-C-RNTI or CS-RNTI" + pdcch_params->dci_format = search_space->css_formats_0_0_and_1_0; + } + if(search_space->css_format_2_0 == 2){ //Type3-"SFI-RNTI" + pdcch_params->dci_format = search_space->css_format_2_0; + //Not SFI-Aggregation-LeveL + //pdcch_params->aggregation_level = search_space->number_of_candidates[NFAPI_NR_MAX_NB_CCE_AGGREGATION_LEVELS]; + } + if(search_space->css_format_2_1 == 3){ //Type3-"INT-RNTI" + pdcch_params->dci_format = search_space->css_format_2_1; + } + if(search_space->css_format_2_2 == 4){ //Type3-"TPC-PUSCH_RNTI or TPC-PUCCH-RNTI" + pdcch_params->dci_format = search_space->css_format_2_2; + } + if(search_space->css_format_2_3 == 5){ //Type3-"TPC-SRS-RNTI" + pdcch_params->dci_format = search_space->css_format_2_3; + //Monitoring periodicity of SRS PDCCH in number of slots for DCI format 2-3 + pdcch_params->nb_slots = search_space->srs_monitoring_periodicity; //mp1=1,mp2=2,mp4=4,mp5=5,mp8=8,mp10=10,mp16=16,mp20=20 + } + } + if (search_space->search_space_type == 1){ + //Ue_Specific_USS + pdcch_params->search_space_type = search_space->search_space_type; + if(search_space->uss_dci_formats == 0){ //DCI formats 0-0 and 1-0 + pdcch_params->dci_format = search_space->uss_dci_formats; + } + if(search_space->uss_dci_formats == 1){ //DCI formats 0-1 and 1-1 + pdcch_params->dci_format = search_space->uss_dci_formats; + } + } }