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}) ...@@ -160,7 +160,7 @@ if(DEFINED ENV{XRAN_LIB_DIR})
else() else()
set (XRAN_LIB_DIR /usr/local/xran) set (XRAN_LIB_DIR /usr/local/xran)
endif() endif()
set (XRAN_DIR $ENV{XRAN_LIB_DIR}/src) set (XRAN_DIR $ENV{XRAN_LIB_DIR}/src)
set (XRAN_COMMON_DIR $ENV{XRAN_LIB_DIR}/../../test/common) set (XRAN_COMMON_DIR $ENV{XRAN_LIB_DIR}/../../test/common)
set (XRAN_LIB_API_DIR $ENV{XRAN_LIB_DIR}/api) 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) ...@@ -620,14 +620,25 @@ target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
# ORAN 5G library # 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 endif()
${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
)
add_library(oran_fhlib_5g MODULE ${ORAN_FHLIB_5G_SOURCE}) add_library(oran_fhlib_5g MODULE ${ORAN_FHLIB_5G_SOURCE})
target_include_directories(oran_fhlib_5g PRIVATE ${XRAN_DIR}) target_include_directories(oran_fhlib_5g PRIVATE ${XRAN_DIR})
...@@ -637,10 +648,14 @@ target_include_directories(oran_fhlib_5g PRIVATE ${XRAN_COMMON_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}) 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_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 ${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 pthread dl rt m numa)
target_link_libraries(oran_fhlib_5g PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(oran_fhlib_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
......
...@@ -38,7 +38,9 @@ ...@@ -38,7 +38,9 @@
#include "xran_compression.h" #include "xran_compression.h"
#include "xran_cp_api.h" #include "xran_cp_api.h"
#include "xran_fh_o_du.h" #include "xran_fh_o_du.h"
#if 0
#include "xran_mlog_task_id.h" #include "xran_mlog_task_id.h"
#endif
extern RuntimeConfig* p_startupConfiguration[XRAN_PORTS_NUM]; extern RuntimeConfig* p_startupConfiguration[XRAN_PORTS_NUM];
static SampleSplitStruct gsDlPostSymbolTaskSplit[MAX_PHY_INSTANCES][MAX_NUM_OF_SF_5G_CTX][MAX_TEST_SPLIT_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) ...@@ -225,8 +227,10 @@ app_bbu_pool_task_dl_config(void *pCookies)
uint16_t nCellIdx = pEventCtrl->nCellIdx; uint16_t nCellIdx = pEventCtrl->nCellIdx;
uint32_t nSfIdx = get_dl_sf_idx(pEventCtrl->nSlotIdx, nCellIdx); uint32_t nSfIdx = get_dl_sf_idx(pEventCtrl->nSlotIdx, nCellIdx);
uint32_t nCtxNum = get_dl_sf_ctx(nSfIdx, nCellIdx); uint32_t nCtxNum = get_dl_sf_ctx(nSfIdx, nCellIdx);
#if 0
uint32_t mlogVariablesCnt, mlogVariables[50]; uint32_t mlogVariablesCnt, mlogVariables[50];
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
uint32_t nRuCcidx = 0; uint32_t nRuCcidx = 0;
int32_t xran_port = 0; int32_t xran_port = 0;
SampleSplitStruct *pTaskPara = (SampleSplitStruct*)pEventCtrl->pTaskPara; SampleSplitStruct *pTaskPara = (SampleSplitStruct*)pEventCtrl->pTaskPara;
...@@ -254,7 +258,7 @@ app_bbu_pool_task_dl_config(void *pCookies) ...@@ -254,7 +258,7 @@ app_bbu_pool_task_dl_config(void *pCookies)
pXranConf = &app_io_xran_fh_config[xran_port]; pXranConf = &app_io_xran_fh_config[xran_port];
if(pXranConf == NULL) if(pXranConf == NULL)
rte_panic("pXranConf"); rte_panic("pXranConf");
#if 0
mlogVariablesCnt = 0; mlogVariablesCnt = 0;
mlogVariables[mlogVariablesCnt++] = 0xCCBBCCBB; mlogVariables[mlogVariablesCnt++] = 0xCCBBCCBB;
mlogVariables[mlogVariablesCnt++] = pEventCtrl->nSlotIdx; mlogVariables[mlogVariablesCnt++] = pEventCtrl->nSlotIdx;
...@@ -264,11 +268,12 @@ app_bbu_pool_task_dl_config(void *pCookies) ...@@ -264,11 +268,12 @@ app_bbu_pool_task_dl_config(void *pCookies)
mlogVariables[mlogVariablesCnt++] = nCtxNum; mlogVariables[mlogVariablesCnt++] = nCtxNum;
mlogVariables[mlogVariablesCnt++] = xran_port; mlogVariables[mlogVariablesCnt++] = xran_port;
mlogVariables[mlogVariablesCnt++] = nRuCcidx; mlogVariables[mlogVariablesCnt++] = nRuCcidx;
#endif
p_o_xu_cfg = p_startupConfiguration[xran_port]; p_o_xu_cfg = p_startupConfiguration[xran_port];
#if 0
mlog_start = MLogTick(); mlog_start = MLogTick();
#endif
if(LAYER_SPLIT == pTaskPara->eSplitType) { if(LAYER_SPLIT == pTaskPara->eSplitType) {
// iSplit = pTaskPara->nSplitIndex; // iSplit = pTaskPara->nSplitIndex;
...@@ -310,14 +315,15 @@ app_bbu_pool_task_dl_config(void *pCookies) ...@@ -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, 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); nLayer, 0, XRAN_NUM_OF_SYMBOL_PER_SLOT);
#if 0
if (mlogVariablesCnt) if (mlogVariablesCnt)
MLogAddVariables((uint32_t)mlogVariablesCnt, (uint32_t *)mlogVariables, mlog_start); MLogAddVariables((uint32_t)mlogVariablesCnt, (uint32_t *)mlogVariables, mlog_start);
#endif
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PCID_GNB_DL_CFG_CC0+nCellIdx, mlog_start, MLogTick()); MLogTask(PCID_GNB_DL_CFG_CC0+nCellIdx, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT; return EBBUPOOL_CORRECT;
} }
...@@ -443,12 +449,13 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies) ...@@ -443,12 +449,13 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies)
SampleSplitStruct *pTaskPara = (SampleSplitStruct*)pEventCtrl->pTaskPara; SampleSplitStruct *pTaskPara = (SampleSplitStruct*)pEventCtrl->pTaskPara;
uint16_t nSymbStart = 0, nSymb = 0, iOfdmSymb = 0, iSplit = 0; uint16_t nSymbStart = 0, nSymb = 0, iOfdmSymb = 0, iSplit = 0;
uint32_t nSymMask = 0; uint32_t nSymMask = 0;
#if 0
uint64_t mlog_start; uint64_t mlog_start;
uint32_t mlogVar[10]; uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0; uint32_t mlogVarCnt = 0;
uint16_t nLayerStart = 0, nLayer = 0; uint16_t nLayerStart = 0, nLayer = 0;
mlog_start = MLogTick(); mlog_start = MLogTick();
#endif
if(LAYER_SPLIT == pTaskPara->eSplitType) { if(LAYER_SPLIT == pTaskPara->eSplitType) {
nSymbStart = pTaskPara->nSymbStart; nSymbStart = pTaskPara->nSymbStart;
nSymb = pTaskPara->nSymbNum; nSymb = pTaskPara->nSymbNum;
...@@ -471,6 +478,7 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies) ...@@ -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); app_io_xran_dl_post_func(pEventCtrl->nCellIdx, pEventCtrl->nSlotIdx, /*0x3FFF*/ nSymMask, nLayerStart, nLayer);
#if 0
#if 1 #if 1
{ {
mlogVar[mlogVarCnt++] = 0xefefefef; mlogVar[mlogVarCnt++] = 0xefefefef;
...@@ -483,12 +491,14 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies) ...@@ -483,12 +491,14 @@ int32_t app_bbu_pool_task_dl_post(void *pCookies)
mlogVar[mlogVarCnt++] = iSplit; mlogVar[mlogVarCnt++] = iSplit;
MLogAddVariables(mlogVarCnt, mlogVar, mlog_start); MLogAddVariables(mlogVarCnt, mlogVar, mlog_start);
} }
#endif
#endif #endif
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PCID_GNB_DL_POST_CC0+nCellIdx, mlog_start, MLogTick()); MLogTask(PCID_GNB_DL_POST_CC0+nCellIdx, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT; return EBBUPOOL_CORRECT;
} }
...@@ -134,9 +134,11 @@ app_io_xran_sfidx_get(uint8_t nNrOfSlotInSf) ...@@ -134,9 +134,11 @@ app_io_xran_sfidx_get(uint8_t nNrOfSlotInSf)
void void
app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status) app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
uint32_t mlogVar[10]; uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0; uint32_t mlogVarCnt = 0;
#endif
//uint8_t Numerlogy = app_io_xran_fh_config[0].frame_conf.nNumerology; //uint8_t Numerlogy = app_io_xran_fh_config[0].frame_conf.nNumerology;
//uint8_t nNrOfSlotInSf = 1<<Numerlogy; //uint8_t nNrOfSlotInSf = 1<<Numerlogy;
//int32_t sfIdx = app_io_xran_sfidx_get(nNrOfSlotInSf); //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) ...@@ -152,14 +154,14 @@ app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
uint32_t ant_id, sym_id, idxElm; uint32_t ant_id, sym_id, idxElm;
struct xran_prb_map *pRbMap = NULL; struct xran_prb_map *pRbMap = NULL;
struct xran_prb_elm *pRbElm = NULL; struct xran_prb_elm *pRbElm = NULL;
#if 0
mlog_start = MLogTick(); mlog_start = MLogTick();
#endif
nCellIdx = pTag->cellId; nCellIdx = pTag->cellId;
nSlotIdx = pTag->slotiId; ///((status >> 16) & 0xFFFF); /** TTI aka slotIdx */ nSlotIdx = pTag->slotiId; ///((status >> 16) & 0xFFFF); /** TTI aka slotIdx */
sym = pTag->symbol & 0xFF; /* sym */ sym = pTag->symbol & 0xFF; /* sym */
ntti = (nSlotIdx + XRAN_N_FE_BUF_LEN -1) % XRAN_N_FE_BUF_LEN; ntti = (nSlotIdx + XRAN_N_FE_BUF_LEN -1) % XRAN_N_FE_BUF_LEN;
#if 0
{ {
mlogVar[mlogVarCnt++] = 0xbcbcbcbc; mlogVar[mlogVarCnt++] = 0xbcbcbcbc;
mlogVar[mlogVarCnt++] = o_xu_id; mlogVar[mlogVarCnt++] = o_xu_id;
...@@ -172,7 +174,7 @@ app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status) ...@@ -172,7 +174,7 @@ app_io_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status)
MLogAddVariables(mlogVarCnt, mlogVar, mlog_start); MLogAddVariables(mlogVarCnt, mlogVar, mlog_start);
} }
#endif
if(psIoCtrl == NULL) if(psIoCtrl == NULL)
{ {
printf("psIoCtrl NULL! o_xu_id= %d\n", o_xu_id); 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) ...@@ -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(); rte_pause();
#if 0
MLogTask(PID_GNB_SYM_CB, t1, MLogTick()); MLogTask(PID_GNB_SYM_CB, t1, MLogTick());
#endif
return; return;
} }
void void
app_io_xran_fh_rx_prach_callback(void *pCallbackTag, xran_status_t status) app_io_xran_fh_rx_prach_callback(void *pCallbackTag, xran_status_t status)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
uint32_t mlogVar[10]; uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0; uint32_t mlogVarCnt = 0;
...@@ -227,17 +231,21 @@ app_io_xran_fh_rx_prach_callback(void *pCallbackTag, xran_status_t status) ...@@ -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 >> 16; /* tti */
mlogVar[mlogVarCnt++] = status & 0xFF; /* sym */ mlogVar[mlogVarCnt++] = status & 0xFF; /* sym */
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick()); MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
#endif
rte_pause(); rte_pause();
#if 0
MLogTask(PID_GNB_PRACH_CB, t1, MLogTick()); MLogTask(PID_GNB_PRACH_CB, t1, MLogTick());
#endif
} }
void void
app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status) app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
uint32_t mlogVar[10]; uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0; uint32_t mlogVarCnt = 0;
#endif
//uint8_t Numerlogy = app_io_xran_fh_config[0].frame_conf.nNumerology; //uint8_t Numerlogy = app_io_xran_fh_config[0].frame_conf.nNumerology;
//uint8_t nNrOfSlotInSf = 1<<Numerlogy; //uint8_t nNrOfSlotInSf = 1<<Numerlogy;
//int32_t sfIdx = app_io_xran_sfidx_get(nNrOfSlotInSf); //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) ...@@ -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 */ nSlotIdx = pTag->slotiId; ///((status >> 16) & 0xFFFF); /** TTI aka slotIdx */
sym = pTag->symbol & 0xFF; /* sym */ sym = pTag->symbol & 0xFF; /* sym */
ntti = (nSlotIdx + XRAN_N_FE_BUF_LEN-1) % XRAN_N_FE_BUF_LEN; ntti = (nSlotIdx + XRAN_N_FE_BUF_LEN-1) % XRAN_N_FE_BUF_LEN;
#if 0
{ {
mlogVar[mlogVarCnt++] = 0xCCCCCCCC; mlogVar[mlogVarCnt++] = 0xCCCCCCCC;
mlogVar[mlogVarCnt++] = o_xu_id; mlogVar[mlogVarCnt++] = o_xu_id;
...@@ -268,7 +276,7 @@ app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status) ...@@ -268,7 +276,7 @@ app_io_xran_fh_rx_srs_callback(void *pCallbackTag, xran_status_t status)
mlogVar[mlogVarCnt++] = ntti; mlogVar[mlogVarCnt++] = ntti;
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick()); MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
} }
#endif
if(psIoCtrl == NULL) if(psIoCtrl == NULL)
{ {
printf("psIoCtrl NULL! o_xu_id= %d\n", o_xu_id); 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) ...@@ -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()); MLogTask(PID_GNB_SRS_CB, t1, MLogTick());
#endif
} }
void void
app_io_xran_fh_rx_bfw_callback(void *pCallbackTag, xran_status_t status) app_io_xran_fh_rx_bfw_callback(void *pCallbackTag, xran_status_t status)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
uint32_t mlogVar[10]; uint32_t mlogVar[10];
uint32_t mlogVarCnt = 0; uint32_t mlogVarCnt = 0;
...@@ -304,46 +315,63 @@ app_io_xran_fh_rx_bfw_callback(void *pCallbackTag, xran_status_t status) ...@@ -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 >> 16; /* tti */
mlogVar[mlogVarCnt++] = status & 0xFF; /* sym */ mlogVar[mlogVarCnt++] = status & 0xFF; /* sym */
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick()); MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
#endif
rte_pause(); rte_pause();
#if 0
MLogTask(PID_GNB_BFW_CB, t1, MLogTick()); MLogTask(PID_GNB_BFW_CB, t1, MLogTick());
#endif
} }
int32_t int32_t
app_io_xran_dl_tti_call_back(void * param) app_io_xran_dl_tti_call_back(void * param)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
#endif
oai_physide_dl_tti_call_back(param);
rte_pause(); rte_pause();
#if 0
MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick()); MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick());
#endif
return 0; return 0;
} }
int32_t int32_t
app_io_xran_ul_half_slot_call_back(void * param) app_io_xran_ul_half_slot_call_back(void * param)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
#endif
rte_pause(); rte_pause();
#if 0
MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick()); MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick());
#endif
return 0; return 0;
} }
int32_t int32_t
app_io_xran_ul_full_slot_call_back(void * param) app_io_xran_ul_full_slot_call_back(void * param)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
#endif
rte_pause(); rte_pause();
#if 0
MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick()); MLogTask(PID_GNB_PROC_TIMING, t1, MLogTick());
#endif
return 0; return 0;
} }
int32_t int32_t
app_io_xran_ul_custom_sym_call_back(void * param, struct xran_sense_of_time* time) app_io_xran_ul_custom_sym_call_back(void * param, struct xran_sense_of_time* time)
{ {
#if 0
uint64_t t1 = MLogTick(); uint64_t t1 = MLogTick();
uint32_t mlogVar[15]; uint32_t mlogVar[15];
uint32_t mlogVarCnt = 0; uint32_t mlogVarCnt = 0;
#endif
uint32_t sym_idx = 0; uint32_t sym_idx = 0;
#if 0
mlogVar[mlogVarCnt++] = 0xDEADDEAD; mlogVar[mlogVarCnt++] = 0xDEADDEAD;
if(time) { if(time) {
mlogVar[mlogVarCnt++] = time->type_of_event; 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 ...@@ -357,9 +385,11 @@ app_io_xran_ul_custom_sym_call_back(void * param, struct xran_sense_of_time* tim
sym_idx = time->nSymIdx; sym_idx = time->nSymIdx;
} }
MLogAddVariables(mlogVarCnt, mlogVar, MLogTick()); MLogAddVariables(mlogVarCnt, mlogVar, MLogTick());
#endif
rte_pause(); rte_pause();
#if 0
MLogTask(PID_GNB_SYM_CB + sym_idx, t1, MLogTick()); MLogTask(PID_GNB_SYM_CB + sym_idx, t1, MLogTick());
#endif
return 0; return 0;
} }
...@@ -1127,6 +1157,7 @@ app_io_xran_ext_type11_populate(struct xran_prb_elm* p_pRbMapElm, char *p_tx_dl_ ...@@ -1127,6 +1157,7 @@ app_io_xran_ext_type11_populate(struct xran_prb_elm* p_pRbMapElm, char *p_tx_dl_
return status; return status;
} }
#if 0
int32_t int32_t
app_io_xran_iq_content_init_cp_rb_map(struct xran_prb_map* pRbMap, 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) 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) ...@@ -1676,6 +1707,7 @@ app_io_xran_iq_content_init(uint32_t o_xu_id, RuntimeConfig *p_o_xu_cfg)
return 0; return 0;
} }
#endif
void app_io_xran_if_stop(void) void app_io_xran_if_stop(void)
{ {
...@@ -1689,6 +1721,7 @@ void app_io_xran_if_stop(void) ...@@ -1689,6 +1721,7 @@ void app_io_xran_if_stop(void)
} }
} }
#if 0
int32_t int32_t
app_io_xran_iq_content_get_up_prach(uint8_t appMode, struct xran_fh_config *pXranConf, 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, 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) ...@@ -2377,6 +2410,7 @@ app_io_xran_iq_content_get(uint32_t o_xu_id, RuntimeConfig *p_o_xu_cfg)
} }
return 0; return 0;
} }
#endif
int32_t int32_t
app_io_xran_eAxCid_conf_set(struct xran_eaxcid_config *p_eAxC_cfg, RuntimeConfig * p_s_cfg) app_io_xran_eAxCid_conf_set(struct xran_eaxcid_config *p_eAxC_cfg, RuntimeConfig * p_s_cfg)
......
...@@ -42,7 +42,9 @@ ...@@ -42,7 +42,9 @@
#include "xran_compression.h" #include "xran_compression.h"
#include "xran_cp_api.h" #include "xran_cp_api.h"
#include "xran_fh_o_du.h" #include "xran_fh_o_du.h"
#if 0
#include "xran_mlog_task_id.h" #include "xran_mlog_task_id.h"
#endif
extern RuntimeConfig* p_startupConfiguration[XRAN_PORTS_NUM]; extern RuntimeConfig* p_startupConfiguration[XRAN_PORTS_NUM];
static SampleSplitStruct gsUlCfgAxCTaskSplit[MAX_PHY_INSTANCES][MAX_NUM_OF_SF_5G_CTX][MAX_TEST_SPLIT_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) ...@@ -141,8 +143,10 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
uint16_t nCellIdx = pEventCtrl->nCellIdx; uint16_t nCellIdx = pEventCtrl->nCellIdx;
uint32_t nSfIdx = get_ul_sf_idx(pEventCtrl->nSlotIdx, nCellIdx); uint32_t nSfIdx = get_ul_sf_idx(pEventCtrl->nSlotIdx, nCellIdx);
uint32_t nCtxNum = get_ul_sf_ctx(nSfIdx, nCellIdx); uint32_t nCtxNum = get_ul_sf_ctx(nSfIdx, nCellIdx);
#if 0
uint64_t mlog_start = MLogTick();// nTtiStartTime = gTtiStartTime; uint64_t mlog_start = MLogTick();// nTtiStartTime = gTtiStartTime;
uint32_t mlogVariablesCnt, mlogVariables[50]; uint32_t mlogVariablesCnt, mlogVariables[50];
#endif
uint32_t nRuCcidx = 0; uint32_t nRuCcidx = 0;
int32_t xran_port = 0; int32_t xran_port = 0;
struct bbu_xran_io_if *psXranIoIf = app_io_xran_if_get(); 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) ...@@ -183,6 +187,7 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
else else
rte_panic("neAxc"); rte_panic("neAxc");
#endif #endif
#if 0
mlogVariablesCnt = 0; mlogVariablesCnt = 0;
mlogVariables[mlogVariablesCnt++] = 0xCCEECCEE; mlogVariables[mlogVariablesCnt++] = 0xCCEECCEE;
mlogVariables[mlogVariablesCnt++] = pEventCtrl->nSlotIdx; mlogVariables[mlogVariablesCnt++] = pEventCtrl->nSlotIdx;
...@@ -192,7 +197,7 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies) ...@@ -192,7 +197,7 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies)
mlogVariables[mlogVariablesCnt++] = nCtxNum; mlogVariables[mlogVariablesCnt++] = nCtxNum;
mlogVariables[mlogVariablesCnt++] = xran_port; mlogVariables[mlogVariablesCnt++] = xran_port;
mlogVariables[mlogVariablesCnt++] = nRuCcidx; mlogVariables[mlogVariablesCnt++] = nRuCcidx;
#endif
p_o_xu_cfg = p_startupConfiguration[xran_port]; p_o_xu_cfg = p_startupConfiguration[xran_port];
if(p_o_xu_cfg == NULL) if(p_o_xu_cfg == NULL)
rte_panic("p_o_xu_cfg"); rte_panic("p_o_xu_cfg");
...@@ -237,14 +242,15 @@ int32_t app_bbu_pool_task_ul_config(void * pCookies) ...@@ -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, 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); nLayer, 0, XRAN_NUM_OF_SYMBOL_PER_SLOT);
#if 0
if (mlogVariablesCnt) if (mlogVariablesCnt)
MLogAddVariables((uint32_t)mlogVariablesCnt, (uint32_t *)mlogVariables, mlog_start); MLogAddVariables((uint32_t)mlogVariablesCnt, (uint32_t *)mlogVariables, mlog_start);
#endif
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PCID_GNB_UL_CFG_CC0+nCellIdx, mlog_start, MLogTick()); MLogTask(PCID_GNB_UL_CFG_CC0+nCellIdx, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT; return EBBUPOOL_CORRECT;
} }
...@@ -531,14 +537,16 @@ app_bbu_pool_task_sym2_wakeup(void *pCookies) ...@@ -531,14 +537,16 @@ app_bbu_pool_task_sym2_wakeup(void *pCookies)
int32_t ret = 0; int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies; // EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
// uint16_t nCellIdx = pEventCtrl->nCellIdx; // uint16_t nCellIdx = pEventCtrl->nCellIdx;
#if 0
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 2); ret = app_bbu_pool_task_symX_wakeup(pCookies, 2);
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM2_WAKEUP, mlog_start, MLogTick()); MLogTask(PID_GNB_SYM2_WAKEUP, mlog_start, MLogTick());
#endif
return ret; return ret;
} }
...@@ -547,13 +555,16 @@ app_bbu_pool_task_sym6_wakeup(void *pCookies) ...@@ -547,13 +555,16 @@ app_bbu_pool_task_sym6_wakeup(void *pCookies)
{ {
int32_t ret = 0; int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies; // EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
#if 0
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 6); ret = app_bbu_pool_task_symX_wakeup(pCookies, 6);
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM6_WAKEUP, mlog_start, MLogTick()); MLogTask(PID_GNB_SYM6_WAKEUP, mlog_start, MLogTick());
#endif
return ret; return ret;
} }
...@@ -562,13 +573,16 @@ app_bbu_pool_task_sym11_wakeup(void *pCookies) ...@@ -562,13 +573,16 @@ app_bbu_pool_task_sym11_wakeup(void *pCookies)
{ {
int32_t ret = 0; int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies; // EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
#if 0
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 11); ret = app_bbu_pool_task_symX_wakeup(pCookies, 11);
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM11_WAKEUP, mlog_start, MLogTick()); MLogTask(PID_GNB_SYM11_WAKEUP, mlog_start, MLogTick());
#endif
return ret; return ret;
} }
...@@ -577,13 +591,16 @@ app_bbu_pool_task_sym13_wakeup(void *pCookies) ...@@ -577,13 +591,16 @@ app_bbu_pool_task_sym13_wakeup(void *pCookies)
{ {
int32_t ret = 0; int32_t ret = 0;
// EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies; // EventCtrlStruct *pEventCtrl = (EventCtrlStruct *)pCookies;
#if 0
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
ret = app_bbu_pool_task_symX_wakeup(pCookies, 13); ret = app_bbu_pool_task_symX_wakeup(pCookies, 13);
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SYM13_WAKEUP, mlog_start, MLogTick()); MLogTask(PID_GNB_SYM13_WAKEUP, mlog_start, MLogTick());
#endif
return ret; return ret;
} }
...@@ -606,7 +623,9 @@ app_bbu_pool_task_prach_wakeup(void *pCookies) ...@@ -606,7 +623,9 @@ app_bbu_pool_task_prach_wakeup(void *pCookies)
int32_t xran_port = 0; int32_t xran_port = 0;
uint32_t nRuCcidx = 0; uint32_t nRuCcidx = 0;
struct xran_fh_config *pXranConf = NULL; struct xran_fh_config *pXranConf = NULL;
#if 0
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
nOranCellIdx = nCellIdx; nOranCellIdx = nCellIdx;
xran_port = app_io_xran_map_cellid_to_port(psXranIoIf, nOranCellIdx, &nRuCcidx); xran_port = app_io_xran_map_cellid_to_port(psXranIoIf, nOranCellIdx, &nRuCcidx);
if(xran_port < 0) { if(xran_port < 0) {
...@@ -628,7 +647,9 @@ app_bbu_pool_task_prach_wakeup(void *pCookies) ...@@ -628,7 +647,9 @@ app_bbu_pool_task_prach_wakeup(void *pCookies)
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_PRACH_WAKEUP, mlog_start, MLogTick()); MLogTask(PID_GNB_PRACH_WAKEUP, mlog_start, MLogTick());
#endif
return EBBUPOOL_CORRECT; return EBBUPOOL_CORRECT;
} }
...@@ -652,7 +673,9 @@ app_bbu_pool_task_srs_wakeup(void *pCookies) ...@@ -652,7 +673,9 @@ app_bbu_pool_task_srs_wakeup(void *pCookies)
int32_t xran_port = 0; int32_t xran_port = 0;
uint32_t nRuCcidx = 0; uint32_t nRuCcidx = 0;
struct xran_fh_config *pXranConf = NULL; struct xran_fh_config *pXranConf = NULL;
#if 0
uint64_t mlog_start = MLogTick(); uint64_t mlog_start = MLogTick();
#endif
nOranCellIdx = nCellIdx; nOranCellIdx = nCellIdx;
xran_port = app_io_xran_map_cellid_to_port(psXranIoIf, nOranCellIdx, &nRuCcidx); xran_port = app_io_xran_map_cellid_to_port(psXranIoIf, nOranCellIdx, &nRuCcidx);
if(xran_port < 0) { if(xran_port < 0) {
...@@ -670,6 +693,8 @@ app_bbu_pool_task_srs_wakeup(void *pCookies) ...@@ -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); ret = app_io_xran_srs_decomp_func(nCellIdx, nSfIdx, nSymbMask, 0, Nrx_antennas, nSymStart, XRAN_NUM_OF_SYMBOL_PER_SLOT);
//unlock the next task //unlock the next task
next_event_unlock(pCookies); next_event_unlock(pCookies);
#if 0
MLogTask(PID_GNB_SRS_WAKEUP, mlog_start, MLogTick()); MLogTask(PID_GNB_SRS_WAKEUP, mlog_start, MLogTick());
#endif
return ret; return ret;
} }
...@@ -49,7 +49,11 @@ volatile uint32_t rx_cb_slot = 0; ...@@ -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 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)) #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); 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; extern struct xran_fh_config xranConf;
void oai_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status){ 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){ ...@@ -59,7 +63,11 @@ void oai_xran_fh_rx_callback(void *pCallbackTag, xran_status_t status){
uint32_t frame; uint32_t frame;
uint32_t subframe; uint32_t subframe;
uint32_t slot; 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_tti = callback_tag->slotiId;
rx_sym = callback_tag->symbol; rx_sym = callback_tag->symbol;
...@@ -112,7 +120,11 @@ int read_prach_data(ru_info_t *ru, int frame, int slot) ...@@ -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 */ /* calculate tti and subframe_id from frame, slot num */
int tti = 20 * (frame) + (slot); int tti = 20 * (frame) + (slot);
uint32_t subframe = XranGetSubFrameNum(tti, 2, 10); 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; int sym_idx = 0;
struct xran_device_ctx *xran_ctx = xran_dev_get_ctx(); 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 ...@@ -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++) { for (idxElm = 0; idxElm < pRbMap->nPrbElm; idxElm++) {
struct xran_section_desc *p_sec_desc = NULL; struct xran_section_desc *p_sec_desc = NULL;
p_prbMapElm = &pRbMap->prbMap[idxElm]; 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){ if(pRbMap->nPrbElm==1 && idxElm==0){
src = pData; src = pData;
} }
...@@ -373,7 +390,13 @@ int xran_fh_tx_send_slot(ru_info_t *ru, int frame, int slot, uint64_t timestamp) ...@@ -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++) { for (idxElm = 0; idxElm < pRbMap->nPrbElm; idxElm++) {
struct xran_section_desc *p_sec_desc = NULL; struct xran_section_desc *p_sec_desc = NULL;
p_prbMapElm = &pRbMap->prbMap[idxElm]; 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; payload_len = p_prbMapElm->nRBSize*N_SC_PER_PRB*4L;
dst = xran_add_hdr_offset(dst, p_prbMapElm->compMethod); dst = xran_add_hdr_offset(dst, p_prbMapElm->compMethod);
......
...@@ -1205,6 +1205,7 @@ app_alloc_all_cfgs(void) ...@@ -1205,6 +1205,7 @@ app_alloc_all_cfgs(void)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
#else #else
void *oai_main(int argc, char *argv[]) void *oai_main(int argc, char *argv[])
#endif
{ {
int32_t o_xu_id = 0; int32_t o_xu_id = 0;
char filename[256]; 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