diff --git a/openair2/NR_PHY_INTERFACE/NR_IF_Module.c b/openair2/NR_PHY_INTERFACE/NR_IF_Module.c index 37bedddf4659205ca83c5944e12496d3ba7f0ff7..0047527e5f9d5a926cdbe771e429b7a2d54104b0 100644 --- a/openair2/NR_PHY_INTERFACE/NR_IF_Module.c +++ b/openair2/NR_PHY_INTERFACE/NR_IF_Module.c @@ -385,7 +385,15 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc } } -static void run_scheduler(module_id_t module_id, int CC_id, int frame, int slot) +extern void handle_nr_slot_ind(uint16_t sfn, uint16_t slot); +static void pnf_send_slot_ind(module_id_t module_id, int CC_id, int frame, int slot) +{ + (void) module_id; + (void) CC_id; + handle_nr_slot_ind(frame, slot); +} + +static void run_scheduler_monolithic(module_id_t module_id, int CC_id, int frame, int slot) { NR_IF_Module_t *ifi = nr_if_inst[module_id]; // gNB_MAC_INST *mac = RC.nrmac[module_id]; @@ -410,6 +418,8 @@ static void run_scheduler(module_id_t module_id, int CC_id, int frame, int slot) sched_info->TX_req = &mac->TX_req[CC_id]; */ + // + #ifdef DUMP_FAPI dump_dl(sched_info); #endif @@ -500,7 +510,12 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) { nr_if_inst[Mod_id]->CC_mask=0; nr_if_inst[Mod_id]->NR_UL_indication = NR_UL_indication; - nr_if_inst[Mod_id]->NR_slot_indication = run_scheduler; + if (NFAPI_MODE == NFAPI_MONOLITHIC) + nr_if_inst[Mod_id]->NR_slot_indication = run_scheduler_monolithic; + else if (NFAPI_MODE == NFAPI_MODE_PNF) + nr_if_inst[Mod_id]->NR_slot_indication = pnf_send_slot_ind; + else // NFAPI_MODE_VNF + NULL; AssertFatal(pthread_mutex_init(&nr_if_inst[Mod_id]->if_mutex,NULL)==0, "allocation of nr_if_inst[%d]->if_mutex fails\n",Mod_id); }