diff --git a/openair2/COMMON/platform_constants.h b/openair2/COMMON/platform_constants.h index d1bfab34ae..aab2afff82 100644 --- a/openair2/COMMON/platform_constants.h +++ b/openair2/COMMON/platform_constants.h @@ -84,7 +84,7 @@ #else #define MAX_MOBILES_PER_ENB 16 #define MAX_MOBILES_PER_ENB_NB_IoT 16 - #define MAX_MOBILES_PER_GNB 16 + #define MAX_MOBILES_PER_GNB 2//16 #define MAX_eNB 2 #define MAX_gNB 2 #endif @@ -97,7 +97,7 @@ #define MAX_gNB 2 #endif -#define NUMBER_OF_NR_DLSCH_MAX 16 +#define NUMBER_OF_NR_DLSCH_MAX 2//16 #define NUMBER_OF_NR_ULSCH_MAX 16 #define MAX_MANAGED_ENB_PER_MOBILE 2 diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c index 39451954ee..8ac85c64dd 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c @@ -333,6 +333,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, } // refresh UE list based on UEs dropped by PHY in previous subframe + /* for (i = 0; i < MAX_MOBILES_PER_GNB; i++) { if (UE_list->active[i]) { @@ -351,7 +352,7 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, } //END if (UE_list->active[i]) } //END for (i = 0; i < MAX_MOBILES_PER_GNB; i++) - + */ PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES,NOT_A_RNTI, frameP, slotP,module_idP); // pdcp_run(&ctxt); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index b1a3471edc..2aad88158b 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -911,14 +911,14 @@ void fill_nfapi_coresets_and_searchspaces(NR_CellGroupConfig_t *cg, } if (searchSpace_i->duration) ss->duration = *searchSpace_i->duration; else ss->duration = 1; - - + + AssertFatal(searchSpace_i->monitoringSymbolsWithinSlot->size == 2, "ss_i->monitoringSymbolsWithinSlot = %d != 2\n", searchSpace_i->monitoringSymbolsWithinSlot->size); ((uint8_t*)&ss->monitoring_symbols_in_slot)[1] = searchSpace_i->monitoringSymbolsWithinSlot->buf[0]; ((uint8_t*)&ss->monitoring_symbols_in_slot)[0] = searchSpace_i->monitoringSymbolsWithinSlot->buf[1]; - + AssertFatal(searchSpace_i->nrofCandidates!=NULL,"searchSpace_%d->nrofCandidates is null\n",searchSpace_i->searchSpaceId); if (searchSpace_i->nrofCandidates->aggregationLevel1 == NR_SearchSpace__nrofCandidates__aggregationLevel1_n8) ss->number_of_candidates[0] = 8; @@ -935,17 +935,28 @@ void fill_nfapi_coresets_and_searchspaces(NR_CellGroupConfig_t *cg, if (searchSpace_i->nrofCandidates->aggregationLevel16 == NR_SearchSpace__nrofCandidates__aggregationLevel16_n8) ss->number_of_candidates[4] = 8; else ss->number_of_candidates[4] = searchSpace_i->nrofCandidates->aggregationLevel16; - - AssertFatal(searchSpace_i->searchSpaceType->present==NR_SearchSpace__searchSpaceType_PR_ue_Specific, - "searchspace %d is not ue-Specific\n",searchSpace_i->searchSpaceId); - AssertFatal(searchSpace_i->searchSpaceType->choice.ue_Specific!=NULL, - "searchspace %d ue-Specific is null\n",searchSpace_i->searchSpaceId); - ss->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC; - - ss->uss_dci_formats = searchSpace_i->searchSpaceType->choice.ue_Specific-> dci_Formats; - - + + if (searchSpace_i->searchSpaceType->present==NR_SearchSpace__searchSpaceType_PR_ue_Specific && searchSpace_i->searchSpaceType->choice.ue_Specific!=NULL) { + + ss->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC; + + ss->uss_dci_formats = searchSpace_i->searchSpaceType->choice.ue_Specific-> dci_Formats; + + } else if (searchSpace_i->searchSpaceType->present==NR_SearchSpace__searchSpaceType_PR_common && searchSpace_i->searchSpaceType->choice.common!=NULL) { + ss->search_space_type = NFAPI_NR_SEARCH_SPACE_TYPE_COMMON; + + if (searchSpace_i->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0) + ss->css_formats_0_0_and_1_0 = 1; + if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_0) { + ss->css_format_2_0 = 1; + // add aggregation info + } + if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_1) + ss->css_format_2_1 = 1; + if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_2) + ss->css_format_2_2 = 1; + if (searchSpace_i->searchSpaceType->choice.common->dci_Format2_3) + ss->css_format_2_3 = 1; + } } - - } diff --git a/openair2/LAYER2/NR_MAC_gNB/main.c b/openair2/LAYER2/NR_MAC_gNB/main.c index df868d378e..0266e6617e 100644 --- a/openair2/LAYER2/NR_MAC_gNB/main.c +++ b/openair2/LAYER2/NR_MAC_gNB/main.c @@ -48,7 +48,7 @@ void mac_top_init_gNB(void) { module_id_t i,j; int list_el; - UE_list_t *UE_list; + NR_UE_list_t *UE_list; gNB_MAC_INST *nrmac; LOG_I(MAC, "[MAIN] Init function start:nb_nr_macrlc_inst=%d\n",RC.nb_nr_macrlc_inst); @@ -115,8 +115,8 @@ void mac_top_init_gNB(void) UE_list->head_ul = -1; UE_list->avail = 0; - for (list_el = 0; list_el < MAX_MOBILES_PER_ENB - 1; list_el++) { - UE_list->next[list_el] = list_el + 1; + for (list_el = 0; list_el < MAX_MOBILES_PER_GNB - 1; list_el++) { + UE_list->next[list_el] = list_el + 1; UE_list->next_ul[list_el] = list_el + 1; UE_list->active[list_el] = FALSE; }