From 4491492a1185fb65c1297ecbc10ac883a89de66f Mon Sep 17 00:00:00 2001 From: WEI-TAI CHEN Date: Wed, 8 Aug 2018 16:17:59 -0700 Subject: [PATCH] Update nr_nFAPI structure in order to more choice for adding Rel16 in NR --- .../nfapi/public_inc/nfapi_nr_interface.h | 49 ++++++++++--------- openair1/SCHED_NR/fapi_nr_l1.c | 10 ++-- .../LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c | 8 +-- 3 files changed, 35 insertions(+), 32 deletions(-) diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h index 6fba09b8cd..f41222176c 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h @@ -267,14 +267,6 @@ typedef struct { - - - - - - - - typedef enum { NFAPI_NR_DL_DCI_FORMAT_1_0 = 0, NFAPI_NR_DL_DCI_FORMAT_1_1, @@ -400,51 +392,62 @@ uint8_t block_number_count; uint8_t *block_numbers; } nfapi_nr_dl_config_dci_dl_pdu_rel15_t; + //#define NFAPI_NR_DL_CONFIG_REQUEST_DCI_DL_PDU_REL15_TAG 0x???? +typedef struct { + nfapi_nr_dl_config_dci_dl_pdu_rel15_t dci_dl_pdu_rel15; +} nfapi_nr_dl_config_dci_dl_pdu; + +typedef struct { + nfapi_nr_ul_config_dci_ul_pdu_rel15_t dci_ul_pdu_rel15; +} nfapi_nr_ul_config_dci_ul_pdu; typedef struct { nfapi_tl_t tl; uint16_t length; - uint16_t pdu_index; + int16_t pdu_index; uint16_t transmission_power; -}nfapi_nr_dl_config_bch_pdu_rel15_t; +} nfapi_nr_dl_config_bch_pdu_rel15_t; #define NFAPI_NR_DL_CONFIG_REQUEST_BCH_PDU_REL15_TAG 0x5025 +typedef struct { + nfapi_nr_dl_config_bch_pdu_rel15_t bch_pdu_rel15; +} nfapi_nr_dl_config_bch_pdu; typedef struct { -}nfapi_nr_dl_config_dlsch_pdu_rel15_t; +} nfapi_nr_dl_config_dlsch_pdu; typedef struct { nfapi_tl_t tl; nfapi_nr_SearchSpace_t pagingSearchSpace; -}nfapi_nr_dl_config_pch_pdu_rel15_t; +} nfapi_nr_dl_config_pch_pdu; typedef struct { -}nfapi_nr_dl_config_nbch_pdu_rel15_t; +} nfapi_nr_dl_config_nbch_pdu; typedef struct { -}nfapi_nr_dl_config_npdcch_pdu_rel15_t; +} nfapi_nr_dl_config_npdcch_pdu; typedef struct { -}nfapi_nr_dl_config_ndlsch_pdu_rel15_t; +} nfapi_nr_dl_config_ndlsch_pdu; typedef struct { uint8_t pdu_type; uint8_t pdu_size; union { - nfapi_nr_dl_config_dci_dl_pdu_rel15_t dci_dl_pdu_rel15; - nfapi_nr_ul_config_dci_ul_pdu_rel15_t dci_ul_pdu_rel15; - nfapi_nr_dl_config_bch_pdu_rel15_t bch_pdu_rel15; - nfapi_nr_dl_config_dlsch_pdu_rel15_t dlsch_pdu_rel15; - nfapi_nr_dl_config_pch_pdu_rel15_t pch_pdu_rel15; - nfapi_nr_dl_config_nbch_pdu_rel15_t nbch_pdu_rel15; - nfapi_nr_dl_config_npdcch_pdu_rel15_t npdcch_pdu_rel15; - nfapi_nr_dl_config_ndlsch_pdu_rel15_t ndlsch_pdu_rel15; + nfapi_nr_dl_config_dci_dl_pdu dci_dl_pdu; + nfapi_nr_ul_config_dci_ul_pdu dci_ul_pdu; + nfapi_nr_dl_config_bch_pdu bch_pdu; + nfapi_nr_dl_config_dlsch_pdu dlsch_pdu; + nfapi_nr_dl_config_pch_pdu pch_pdu; + nfapi_nr_dl_config_nbch_pdu nbch_pdu; + nfapi_nr_dl_config_npdcch_pdu npdcch_pdu; + nfapi_nr_dl_config_ndlsch_pdu ndlsch_pdu; }; } nfapi_nr_dl_config_request_pdu_t; diff --git a/openair1/SCHED_NR/fapi_nr_l1.c b/openair1/SCHED_NR/fapi_nr_l1.c index 13d8104190..422d3174b7 100644 --- a/openair1/SCHED_NR/fapi_nr_l1.c +++ b/openair1/SCHED_NR/fapi_nr_l1.c @@ -42,8 +42,8 @@ void handle_nr_nfapi_bch_pdu(PHY_VARS_gNB *gNB, uint8_t *sdu) { - AssertFatal(dl_config_pdu->bch_pdu_rel15.length == 3, "BCH PDU has length %d != 3\n", - dl_config_pdu->bch_pdu_rel15.length); + AssertFatal(dl_config_pdu->bch_pdu.bch_pdu_rel15.length == 3, "BCH PDU has length %d != 3\n", + dl_config_pdu->bch_pdu.bch_pdu_rel15.length); LOG_I(PHY,"pbch_pdu[0]: %x,pbch_pdu[1]: %x,gNB->pbch_pdu[2]: %x\n",sdu[0],sdu[1],sdu[2]); gNB->pbch_pdu[0] = sdu[2]; @@ -90,9 +90,9 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){ //LOG_D(PHY,"NFAPI: dl_pdu %d : type %d\n",i,dl_config_pdu->pdu_type); switch (dl_config_pdu->pdu_type) { case NFAPI_NR_DL_CONFIG_BCH_PDU_TYPE: - AssertFatal(dl_config_pdu->bch_pdu_rel15.pdu_index < TX_req->tx_request_body.number_of_pdus, + AssertFatal(dl_config_pdu->bch_pdu.bch_pdu_rel15.pdu_index < TX_req->tx_request_body.number_of_pdus, "bch_pdu_rel8.pdu_index>=TX_req->number_of_pdus (%d>%d)\n", - dl_config_pdu->bch_pdu_rel15.pdu_index, + dl_config_pdu->bch_pdu.bch_pdu_rel15.pdu_index, TX_req->tx_request_body.number_of_pdus); gNB->pbch_configured=1; do_oai=1; @@ -100,7 +100,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){ handle_nr_nfapi_bch_pdu(gNB, proc, dl_config_pdu, - TX_req->tx_request_body.tx_pdu_list[dl_config_pdu->bch_pdu_rel15.pdu_index].segments[0].segment_data); + TX_req->tx_request_body.tx_pdu_list[dl_config_pdu->bch_pdu.bch_pdu_rel15.pdu_index].segments[0].segment_data); break; } } diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c index 9c45cc90c7..28a8472b14 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c @@ -97,10 +97,10 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t subfram memset((void *) dl_config_pdu, 0,sizeof(nfapi_nr_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_NR_DL_CONFIG_BCH_PDU_TYPE; dl_config_pdu->pdu_size =2 + sizeof(nfapi_nr_dl_config_bch_pdu_rel15_t); - dl_config_pdu->bch_pdu_rel15.tl.tag = NFAPI_NR_DL_CONFIG_REQUEST_BCH_PDU_REL15_TAG; - dl_config_pdu->bch_pdu_rel15.length = mib_sdu_length; - dl_config_pdu->bch_pdu_rel15.pdu_index = gNB->pdu_index[CC_id]; - dl_config_pdu->bch_pdu_rel15.transmission_power = 6000; + dl_config_pdu->bch_pdu.bch_pdu_rel15.tl.tag = NFAPI_NR_DL_CONFIG_REQUEST_BCH_PDU_REL15_TAG; + dl_config_pdu->bch_pdu.bch_pdu_rel15.length = mib_sdu_length; + dl_config_pdu->bch_pdu.bch_pdu_rel15.pdu_index = gNB->pdu_index[CC_id]; + dl_config_pdu->bch_pdu.bch_pdu_rel15.transmission_power = 6000; dl_req->tl.tag = NFAPI_DL_CONFIG_REQUEST_BODY_TAG; dl_req->number_pdu++; dl_config_request->header.message_id = NFAPI_DL_CONFIG_REQUEST;