diff --git a/CMakeLists.txt b/CMakeLists.txt index 15e79dcd72..48c2e6b53e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -746,6 +746,9 @@ set(NFAPI_USER_SRC add_library(NFAPI_USER_LIB ${NFAPI_USER_SRC}) target_link_libraries(NFAPI_USER_LIB PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs UTIL) target_link_libraries(NFAPI_USER_LIB PRIVATE nr_fapi_p7) +if(OAI_AERIAL) + target_compile_definitions(NFAPI_USER_LIB PRIVATE ENABLE_AERIAL) +endif() include_directories(${NFAPI_USER_DIR}) # Layer 1 diff --git a/nfapi/oai_integration/aerial/fapi_vnf_p7.c b/nfapi/oai_integration/aerial/fapi_vnf_p7.c index 85308472f3..32ea3974d9 100644 --- a/nfapi/oai_integration/aerial/fapi_vnf_p7.c +++ b/nfapi/oai_integration/aerial/fapi_vnf_p7.c @@ -93,47 +93,13 @@ int aerial_phy_nr_uci_indication(nfapi_nr_uci_indication_t *ind) return 1; } -NR_Sched_Rsp_t g_sched_resp; void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frame, sub_frame_t slot, NR_Sched_Rsp_t* sched_info); int oai_fapi_dl_tti_req(nfapi_nr_dl_tti_request_t *dl_config_req); int oai_fapi_ul_tti_req(nfapi_nr_ul_tti_request_t *ul_tti_req); int oai_fapi_tx_data_req(nfapi_nr_tx_data_request_t* tx_data_req); int oai_fapi_ul_dci_req(nfapi_nr_ul_dci_request_t* ul_dci_req); int oai_fapi_send_end_request(int cell, uint32_t frame, uint32_t slot); - -int trigger_scheduler(nfapi_nr_slot_indication_scf_t *slot_ind) -{ - - NR_UL_IND_t ind = {.frame = slot_ind->sfn, .slot = slot_ind->slot, }; - NR_UL_indication(&ind); - // Call into the scheduler (this is hardcoded and should be init properly!) - // memset(sched_resp, 0, sizeof(*sched_resp)); - gNB_dlsch_ulsch_scheduler(0, slot_ind->sfn, slot_ind->slot, &g_sched_resp); - - bool send_slt_resp = false; - if (g_sched_resp.DL_req.dl_tti_request_body.nPDUs> 0) { - oai_fapi_dl_tti_req(&g_sched_resp.DL_req); - send_slt_resp = true; - } - if (g_sched_resp.UL_tti_req.n_pdus > 0) { - oai_fapi_ul_tti_req(&g_sched_resp.UL_tti_req); - send_slt_resp = true; - } - if (g_sched_resp.TX_req.Number_of_PDUs > 0) { - oai_fapi_tx_data_req(&g_sched_resp.TX_req); - send_slt_resp = true; - } - if (g_sched_resp.UL_dci_req.numPdus > 0) { - oai_fapi_ul_dci_req(&g_sched_resp.UL_dci_req); - send_slt_resp = true; - } - if (send_slt_resp) { - oai_fapi_send_end_request(0,slot_ind->sfn, slot_ind->slot); - } - - return 1; -} - +extern int trigger_scheduler(nfapi_nr_slot_indication_scf_t *slot_ind); int aerial_phy_nr_slot_indication(nfapi_nr_slot_indication_scf_t *ind) { diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c index cd4deb2661..cf62d8b239 100644 --- a/nfapi/oai_integration/nfapi_vnf.c +++ b/nfapi/oai_integration/nfapi_vnf.c @@ -50,6 +50,9 @@ #include "nr_fapi_p7_utils.h" #include +#ifdef ENABLE_AERIAL +#include "aerial/fapi_vnf_p5.h" +#endif #define TEST @@ -1088,6 +1091,28 @@ int trigger_scheduler(nfapi_nr_slot_indication_scf_t *slot_ind) // memset(sched_resp, 0, sizeof(*sched_resp)); gNB_dlsch_ulsch_scheduler(0, slot_ind->sfn, slot_ind->slot, &g_sched_resp); +#ifdef ENABLE_AERIAL + bool send_slt_resp = false; + if (g_sched_resp.DL_req.dl_tti_request_body.nPDUs> 0) { + oai_fapi_dl_tti_req(&g_sched_resp.DL_req); + send_slt_resp = true; + } + if (g_sched_resp.UL_tti_req.n_pdus > 0) { + oai_fapi_ul_tti_req(&g_sched_resp.UL_tti_req); + send_slt_resp = true; + } + if (g_sched_resp.TX_req.Number_of_PDUs > 0) { + oai_fapi_tx_data_req(&g_sched_resp.TX_req); + send_slt_resp = true; + } + if (g_sched_resp.UL_dci_req.numPdus > 0) { + oai_fapi_ul_dci_req(&g_sched_resp.UL_dci_req); + send_slt_resp = true; + } + if (send_slt_resp) { + oai_fapi_send_end_request(0,slot_ind->sfn, slot_ind->slot); + } +#else if (g_sched_resp.DL_req.dl_tti_request_body.nPDUs > 0) oai_nfapi_dl_tti_req(&g_sched_resp.DL_req); @@ -1099,6 +1124,7 @@ int trigger_scheduler(nfapi_nr_slot_indication_scf_t *slot_ind) if (g_sched_resp.UL_dci_req.numPdus > 0) oai_nfapi_ul_dci_req(&g_sched_resp.UL_dci_req); +#endif NR_UL_IND_t ind = {.frame = slot_ind->sfn, .slot = slot_ind->slot, }; NR_UL_indication(&ind);