Commit 64be738e authored by Raymond Knopp's avatar Raymond Knopp

additional commits for G version

parent 5f17a21b
......@@ -160,7 +160,7 @@ if(DEFINED ENV{XRAN_LIB_DIR})
else()
set (XRAN_LIB_DIR /usr/local/xran)
endif()
set (XRAN_DIR $ENV{XRAN_LIB_DIR}/src)
set (XRAN_COMMON_DIR $ENV{XRAN_LIB_DIR}/../../test/common)
set (XRAN_LIB_API_DIR $ENV{XRAN_LIB_DIR}/api)
......@@ -620,14 +620,25 @@ target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
# ORAN 5G library
######################################################################
add_boolean_option(ORAN_BRONZE OFF "Build support for Bronze version of ORAN FHI")
if (ORAN_BRONZE)
set(ORAN_FHLIB_5G_SOURCE
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/sample-app-bronze.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/common_bronze.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/config_bronze.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/oran_isolate.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/oaioran.c
)
else()
set(ORAN_FHLIB_5G_SOURCE
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/sample-app-G.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/common-G.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/config-G.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/oran_isolate.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/oaioran.c
)
set(ORAN_FHLIB_5G_SOURCE
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/sample-app-bronze.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/common_bronze.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/config_bronze.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/oran_isolate.c
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/oaioran.c
)
endif()
add_library(oran_fhlib_5g MODULE ${ORAN_FHLIB_5G_SOURCE})
target_include_directories(oran_fhlib_5g PRIVATE ${XRAN_DIR})
......@@ -637,10 +648,14 @@ target_include_directories(oran_fhlib_5g PRIVATE ${XRAN_COMMON_DIR})
target_include_directories(oran_fhlib_5g PRIVATE ${XRAN_LIB_API_DIR})
set_target_properties(oran_fhlib_5g PROPERTIES COMPILE_FLAGS "-fvisibility=hidden -march=native -I$ENV{RTE_SDK}/$ENV{RTE_TARGET}/include")
SET(DPDK_LIBS "-Wl,-rpath,$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -Wl,--whole-archive -L$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -ldpdk -Wl,--no-whole-archive")
#SET(DPDK_LIBS "-Wl,-rpath,$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -Wl,--whole-archive -L$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -ldpdk -Wl,--no-whole-archive")
execute_process(
COMMAND bash -c "pkg-config --libs libdpdk | tr -d i '\n'| sed 's/[[:space:]]*$//'"
OUTPUT_VARIABLE DPDK_LIBS
)
TARGET_LINK_LIBRARIES(oran_fhlib_5g PRIVATE ${DPDK_LIBS})
TARGET_LINK_LIBRARIES(oran_fhlib_5g PRIVATE -L${XRAN_LIB_DIR} -lxran)
TARGET_LINK_LIBRARIES(oran_fhlib_5g PRIVATE -L${XRAN_LIB_DIR}/build -lxran)
TARGET_LINK_LIBRARIES(oran_fhlib_5g PRIVATE pthread dl rt m numa)
target_link_libraries(oran_fhlib_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
......
......@@ -38,7 +38,9 @@
#include "xran_compression.h"
#include "xran_cp_api.h"
#include "xran_fh_o_du.h"
#if 0
#include "xran_mlog_task_id.h"
#endif
extern RuntimeConfig* p_startupConfiguration[XRAN_PORTS_NUM];
static SampleSplitStruct gsDlPostSymbolTaskSplit[MAX_PHY_INSTANCES][MAX_NUM_OF_SF_5G_CTX][MAX_TEST_SPLIT_NUM];
......@@ -225,8 +227,10 @@ app_bbu_pool_task_dl_config(void *pCookies)
uint16_t nCellIdx = pEventCtrl->nCellIdx;
uint32_t nSfIdx = get_dl_sf_idx(pEventCtrl->nSlotIdx, nCellIdx);
uint32_t nCtxNum = get_dl_sf_ctx(nSfIdx, nCellIdx);
#if 0
uint32_t mlogVariablesCnt, mlogVariables[50];
uint64_t mlog_start = MLogTick();
#endif
uint32_t nRuCcidx = 0;
int32_t xran_port = 0;
SampleSplitStruct *pTaskPara = (SampleSplitStruct*)pEventCtrl->pTaskPara;
......@@ -254,7 +258,7 @@ app_bbu_pool_task_dl_config(void *pCookies)
pXranConf = &app_io_xran_fh_config[xran_port];
if(pXranConf == NULL)
rte_panic("pXranConf");
#if 0
mlogVariablesCnt = 0;
mlogVariables[mlogVariablesCnt++] = 0xCCBBCCBB;
mlogVariables[mlogVariablesCnt++] = pEventCtrl->nSlotIdx;
......@@ -264,11 +268,12 @@ app_bbu_pool_task_dl_config(void *pCookies)
mlogVariables[mlogVariablesCnt++] = nCtxNum;
mlogVariables[mlogVariablesCnt++] = xran_port;
mlogVariables[mlogVariablesCnt++] = nRuCcidx;
#endif
p_o_xu_cfg = p_startupConfiguration[xran_port];
#if 0
mlog_start = MLogTick();
#endif
if(LAYER_SPLIT == pTaskPara->eSplitType) {
// iSplit = pTaskPara->nSplitIndex;
......@@ -310,14 +315,15 @@ app_bbu_pool_task_dl_config(void *pCookies)
xran_prepare_cp_dl_slot(xran_port, nSfIdx, nRuCcidx, /*psXranIoIf->num_cc_per_port[xran_port]*/ 1, nSymbMask, nLayerStart,
nLayer, 0, XRAN_NUM_OF_SYMBOL_PER_SLOT);
#if 0
if (mlogVariablesCnt)
MLogAddVariables((uint32_t)mlogVariablesCnt, (uint32_t *)mlogVariables, mlog_start);
#endif
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PCID_GNB_DL_CFG_CC0+nCellIdx, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT;
}
......@@ -443,12 +449,13 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies)
SampleSplitStruct *pTaskPara = (SampleSplitStruct*)pEventCtrl->pTaskPara;
uint16_t nSymbStart = 0, nSymb = 0, iOfdmSymb = 0, iSplit = 0;
uint32_t nSymMask = 0;
#if 0
uint64_t mlog_start;
uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0;
uint16_t nLayerStart = 0, nLayer = 0;
mlog_start = MLogTick();
#endif
if(LAYER_SPLIT == pTaskPara->eSplitType) {
nSymbStart = pTaskPara->nSymbStart;
nSymb = pTaskPara->nSymbNum;
......@@ -471,6 +478,7 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies)
app_io_xran_dl_post_func(pEventCtrl->nCellIdx, pEventCtrl->nSlotIdx, /*0x3FFF*/ nSymMask, nLayerStart, nLayer);
#if 0
#if 1
{
mlogVar[mlogVarCnt++] = 0xefefefef;
......@@ -483,12 +491,14 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies)
mlogVar[mlogVarCnt++] = iSplit;
MLogAddVariables(mlogVarCnt, mlogVar, mlog_start);
}
#endif
#endif
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PCID_GNB_DL_POST_CC0+nCellIdx, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT;
}
......@@ -134,9 +134,11 @@ app_io_xran_sfidx_get(uint8_t nNrOfSlotInSf)
void
app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
{
#if 0
uint64_t t1 = MLogTick();
uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0;
#endif
//uint8_t Numerlogy = app_io_xran_fh_config[0].frame_conf.nNumerology;
//uint8_t nNrOfSlotInSf = 1<<Numerlogy;
//int32_t sfIdx = app_io_xran_sfidx_get(nNrOfSlotInSf);
......@@ -152,14 +154,14 @@ app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
uint32_t ant_id, sym_id, idxElm;
struct xran_prb_map *pRbMap = NULL;
struct xran_prb_elm *pRbElm = NULL;
#if 0
mlog_start = MLogTick();
#endif
nCellIdx = pTag->cellId;
nSlotIdx = pTag->slotiId; ///((status >> 16) & 0xFFFF); /** TTI aka slotIdx */
sym = pTag->symbol & 0xFF; /* sym */
ntti = (nSlotIdx + XRAN_N_FE_BUF_LEN -1) % XRAN_N_FE_BUF_LEN;
#if 0
{
mlogVar[mlogVarCnt++] = 0xbcbcbcbc;
mlogVar[mlogVarCnt++] = o_xu_id;
......@@ -172,7 +174,7 @@ app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
MLogAddVariables(mlogVarCnt, mlogVar, mlog_start);
}
#endif
if(psIoCtrl == NULL)
{
printf("psIoCtrl NULL! o_xu_id= %d\n", o_xu_id);
......@@ -209,16 +211,18 @@ app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
}
}
}
oai_xran_rh_rx_callback(pCallbackTag, status);
rte_pause();
#if 0
MLogTask(PID_GNB_SYM_CB, t1, MLogTick());
#endif
return;
}
void
app_io_xran_fh_rx_prach_callback(void *pCallbackTag, xran_status_t status)
{
#if 0
uint64_t t1 = MLogTick();
uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0;
......@@ -227,17 +231,21 @@ app_io_xran_fh_rx_prach_callback(void *pCallbackTag, xran_status_t status)
mlogVar[mlogVarCnt++] = status >> 16; /* tti */
mlogVar[mlogVarCnt++] = status & 0xFF; /* sym */
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
#endif
rte_pause();
#if 0
MLogTask(PID_GNB_PRACH_CB, t1, MLogTick());
#endif
}
void
app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status)
{
#if 0
uint64_t t1 = MLogTick();
uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0;
#endif
//uint8_t Numerlogy = app_io_xran_fh_config[0].frame_conf.nNumerology;
//uint8_t nNrOfSlotInSf = 1<<Numerlogy;
//int32_t sfIdx = app_io_xran_sfidx_get(nNrOfSlotInSf);
......@@ -258,7 +266,7 @@ app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status)
nSlotIdx = pTag->slotiId; ///((status >> 16) & 0xFFFF); /** TTI aka slotIdx */
sym = pTag->symbol & 0xFF; /* sym */
ntti = (nSlotIdx + XRAN_N_FE_BUF_LEN-1) % XRAN_N_FE_BUF_LEN;
#if 0
{
mlogVar[mlogVarCnt++] = 0xCCCCCCCC;
mlogVar[mlogVarCnt++] = o_xu_id;
......@@ -268,7 +276,7 @@ app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status)
mlogVar[mlogVarCnt++] = ntti;
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
}
#endif
if(psIoCtrl == NULL)
{
printf("psIoCtrl NULL! o_xu_id= %d\n", o_xu_id);
......@@ -290,12 +298,15 @@ app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status)
}
}
}
#if 0
MLogTask(PID_GNB_SRS_CB, t1, MLogTick());
#endif
}
void
app_io_xran_fh_rx_bfw_callback(void *pCallbackTag, xran_status_t status)
{
#if 0
uint64_t t1 = MLogTick();
uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0;
......@@ -304,46 +315,63 @@ app_io_xran_fh_rx_bfw_callback(void *pCallbackTag, xran_status_t status)
mlogVar[mlogVarCnt++] = status >> 16; /* tti */
mlogVar[mlogVarCnt++] = status & 0xFF; /* sym */
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
#endif
rte_pause();
#if 0
MLogTask(PID_GNB_BFW_CB, t1, MLogTick());
#endif
}
int32_t
app_io_xran_dl_tti_call_back(void * param)
{
#if 0
uint64_t t1 = MLogTick();
#endif
oai_physide_dl_tti_call_back(param);
rte_pause();
#if 0
MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick());
#endif
return 0;
}
int32_t
app_io_xran_ul_half_slot_call_back(void * param)
{
#if 0
uint64_t t1 = MLogTick();
#endif
rte_pause();
#if 0
MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick());
#endif
return 0;
}
int32_t
app_io_xran_ul_full_slot_call_back(void * param)
{
#if 0
uint64_t t1 = MLogTick();
#endif
rte_pause();
#if 0
MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick());
#endif
return 0;
}
int32_t
app_io_xran_ul_custom_sym_call_back(void * param, struct xran_sense_of_time* time)
{
#if 0
uint64_t t1 = MLogTick();
uint32_t mlogVar[15];
uint32_t mlogVarCnt = 0;
#endif
uint32_t sym_idx = 0;
#if 0
mlogVar[mlogVarCnt++] = 0xDEADDEAD;
if(time) {
mlogVar[mlogVarCnt++] = time->type_of_event;
......@@ -357,9 +385,11 @@ app_io_xran_ul_custom_sym_call_back(void * param, struct xran_sense_of_time* tim
sym_idx = time->nSymIdx;
}
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
#endif
rte_pause();
#if 0
MLogTask(PID_GNB_SYM_CB + sym_idx, t1, MLogTick());
#endif
return 0;
}
......@@ -1127,6 +1157,7 @@ app_io_xran_ext_type11_populate(struct xran_prb_elm* p_pRbMapElm, char *p_tx_dl_
return status;
}
#if 0
int32_t
app_io_xran_iq_content_init_cp_rb_map(struct xran_prb_map* pRbMap,
enum xran_pkt_dir dir, int32_t cc_id, int32_t ant_id, int32_t sym_id, int32_t tti, uint16_t nRBs)
......@@ -1676,6 +1707,7 @@ app_io_xran_iq_content_init(uint32_t o_xu_id, RuntimeConfig *p_o_xu_cfg)
return 0;
}
#endif
void app_io_xran_if_stop(void)
{
......@@ -1689,6 +1721,7 @@ void app_io_xran_if_stop(void)
}
}
#if 0
int32_t
app_io_xran_iq_content_get_up_prach(uint8_t appMode, struct xran_fh_config *pXranConf,
struct bbu_xran_io_if *psBbuIo, struct xran_io_shared_ctrl *psIoCtrl, struct o_xu_buffers * p_iq,
......@@ -2377,6 +2410,7 @@ app_io_xran_iq_content_get(uint32_t o_xu_id, RuntimeConfig *p_o_xu_cfg)
}
return 0;
}
#endif
int32_t
app_io_xran_eAxCid_conf_set(struct xran_eaxcid_config *p_eAxC_cfg, RuntimeConfig * p_s_cfg)
......
......@@ -42,7 +42,9 @@
#include "xran_compression.h"
#include "xran_cp_api.h"
#include "xran_fh_o_du.h"
#if 0
#include "xran_mlog_task_id.h"
#endif
extern RuntimeConfig* p_startupConfiguration[XRAN_PORTS_NUM];
static SampleSplitStruct gsUlCfgAxCTaskSplit[MAX_PHY_INSTANCES][MAX_NUM_OF_SF_5G_CTX][MAX_TEST_SPLIT_NUM];
......@@ -141,8 +143,10 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
uint16_t nCellIdx = pEventCtrl->nCellIdx;
uint32_t nSfIdx = get_ul_sf_idx(pEventCtrl->nSlotIdx, nCellIdx);
uint32_t nCtxNum = get_ul_sf_ctx(nSfIdx, nCellIdx);
#if 0
uint64_t mlog_start = MLogTick();// nTtiStartTime = gTtiStartTime;
uint32_t mlogVariablesCnt, mlogVariables[50];
#endif
uint32_t nRuCcidx = 0;
int32_t xran_port = 0;
struct bbu_xran_io_if *psXranIoIf = app_io_xran_if_get();
......@@ -183,6 +187,7 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
else
rte_panic("neAxc");
#endif
#if 0
mlogVariablesCnt = 0;
mlogVariables[mlogVariablesCnt++] = 0xCCEECCEE;
mlogVariables[mlogVariablesCnt++] = pEventCtrl->nSlotIdx;
......@@ -192,7 +197,7 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
mlogVariables[mlogVariablesCnt++] = nCtxNum;
mlogVariables[mlogVariablesCnt++] = xran_port;
mlogVariables[mlogVariablesCnt++] = nRuCcidx;
#endif
p_o_xu_cfg = p_startupConfiguration[xran_port];
if(p_o_xu_cfg == NULL)
rte_panic("p_o_xu_cfg");
......@@ -237,14 +242,15 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
xran_prepare_cp_ul_slot(xran_port, nSfIdx, nRuCcidx, /*psXranIoIf->num_cc_per_port[xran_port]*/ 1, nSymbMask, nLayerStart,
nLayer, 0, XRAN_NUM_OF_SYMBOL_PER_SLOT);
#if 0
if (mlogVariablesCnt)
MLogAddVariables((uint32_t)mlogVariablesCnt, (uint32_t *)mlogVariables, mlog_start);
#endif
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PCID_GNB_UL_CFG_CC0+nCellIdx, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT;
}
......@@ -531,14 +537,16 @@ app_bbu_pool_task_sym2_wakeup(void *pCookies)
int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
// uint16_t nCellIdx = pEventCtrl->nCellIdx;
#if 0
uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 2);
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM2_WAKEUP, mlog_start, MLogTick());
#endif
return ret;
}
......@@ -547,13 +555,16 @@ app_bbu_pool_task_sym6_wakeup(void *pCookies)
{
int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
#if 0
uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 6);
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM6_WAKEUP, mlog_start, MLogTick());
#endif
return ret;
}
......@@ -562,13 +573,16 @@ app_bbu_pool_task_sym11_wakeup(void *pCookies)
{
int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
#if 0
uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 11);
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM11_WAKEUP, mlog_start, MLogTick());
#endif
return ret;
}
......@@ -577,13 +591,16 @@ app_bbu_pool_task_sym13_wakeup(void *pCookies)
{
int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
#if 0
uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 13);
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM13_WAKEUP, mlog_start, MLogTick());
#endif
return ret;
}
......@@ -606,7 +623,9 @@ app_bbu_pool_task_prach_wakeup(void *pCookies)
int32_t xran_port = 0;
uint32_t nRuCcidx = 0;
struct xran_fh_config *pXranConf = NULL;
#if 0
uint64_t mlog_start = MLogTick();
#endif
nOranCellIdx = nCellIdx;
xran_port = app_io_xran_map_cellid_to_port(psXranIoIf, nOranCellIdx, &nRuCcidx);
if(xran_port < 0) {
......@@ -628,7 +647,9 @@ app_bbu_pool_task_prach_wakeup(void *pCookies)
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_PRACH_WAKEUP, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT;
}
......@@ -652,7 +673,9 @@ app_bbu_pool_task_srs_wakeup(void *pCookies)
int32_t xran_port = 0;
uint32_t nRuCcidx = 0;
struct xran_fh_config *pXranConf = NULL;
#if 0
uint64_t mlog_start = MLogTick();
#endif
nOranCellIdx = nCellIdx;
xran_port = app_io_xran_map_cellid_to_port(psXranIoIf, nOranCellIdx, &nRuCcidx);
if(xran_port < 0) {
......@@ -670,6 +693,8 @@ app_bbu_pool_task_srs_wakeup(void *pCookies)
ret = app_io_xran_srs_decomp_func(nCellIdx, nSfIdx, nSymbMask, 0, Nrx_antennas, nSymStart, XRAN_NUM_OF_SYMBOL_PER_SLOT);
//unlock the next task
next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SRS_WAKEUP, mlog_start, MLogTick());
#endif
return ret;
}
......@@ -49,7 +49,11 @@ volatile uint32_t rx_cb_slot = 0;
#define GetFrameNum(tti,SFNatSecStart,numSubFramePerSystemFrame, numSlotPerSubFrame) ((((uint32_t)tti / ((uint32_t)numSubFramePerSystemFrame * (uint32_t)numSlotPerSubFrame)) + SFNatSecStart) & 0x3FF)
#define GetSlotNum(tti, numSlotPerSfn) ((uint32_t)tti % ((uint32_t)numSlotPerSfn))
#ifdef ORAN_BRONZE
int xran_is_prach_slot(uint32_t subframe_id, uint32_t slot_id);
#else
int xran_is_prach_slot(uint8_t PortId, uint32_t subframe_id, uint32_t slot_id);
#endif
extern struct xran_fh_config xranConf;
void oai_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status){
......@@ -59,7 +63,11 @@ void oai_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status){
uint32_t frame;
uint32_t subframe;
uint32_t slot;
tti = xran_get_slot_idx(&frame,&subframe,&slot,&second);
tti = xran_get_slot_idx(
#ifndef ORAN_BRONZE
0,
#endif
&frame,&subframe,&slot,&second);
rx_tti = callback_tag->slotiId;
rx_sym = callback_tag->symbol;
......@@ -112,7 +120,11 @@ int read_prach_data(ru_info_t *ru, int frame, int slot)
/* calculate tti and subframe_id from frame, slot num */
int tti = 20 * (frame) + (slot);
uint32_t subframe = XranGetSubFrameNum(tti, 2, 10);
uint32_t is_prach_slot = xran_is_prach_slot(subframe, (slot % 2));
uint32_t is_prach_slot = xran_is_prach_slot(
#ifndef ORAN_BRONZE
0,
#endif
subframe, (slot % 2));
int sym_idx = 0;
struct xran_device_ctx *xran_ctx = xran_dev_get_ctx();
......@@ -235,8 +247,13 @@ int xran_fh_rx_read_slot(ru_info_t *ru, int *frame, int *slot, int oframe, int o
for (idxElm = 0; idxElm < pRbMap->nPrbElm; idxElm++) {
struct xran_section_desc *p_sec_desc = NULL;
p_prbMapElm = &pRbMap->prbMap[idxElm];
p_sec_desc = p_prbMapElm->p_sec_desc[sym_id];
p_sec_desc =
#ifdef ORAN_BRONZE
p_prbMapElm->p_sec_desc[sym_id];
#else
//assumes on section descriptor per symbol
&p_prbMapElm->sec_desc[sym_id][0];
#endif
if(pRbMap->nPrbElm==1 && idxElm==0){
src = pData;
}
......@@ -373,7 +390,13 @@ int xran_fh_tx_send_slot(ru_info_t *ru, int frame, int slot, uint64_t timestamp)
for (idxElm = 0; idxElm < pRbMap->nPrbElm; idxElm++) {
struct xran_section_desc *p_sec_desc = NULL;
p_prbMapElm = &pRbMap->prbMap[idxElm];
p_sec_desc = p_prbMapElm->p_sec_desc[sym_id];
p_sec_desc =
#ifdef ORAN_BRONZE
p_prbMapElm->p_sec_desc[sym_id];
#else
//assumes on section descriptor per symbol
&p_prbMapElm->sec_desc[sym_id][0];
#endif
payload_len = p_prbMapElm->nRBSize*N_SC_PER_PRB*4L;
dst = xran_add_hdr_offset(dst, p_prbMapElm->compMethod);
......
......@@ -1205,6 +1205,7 @@ app_alloc_all_cfgs(void)
int main(int argc, char *argv[])
#else
void *oai_main(int argc, char *argv[])
#endif
{
int32_t o_xu_id = 0;
char filename[256];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment