Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG-RAN
Commits
64be738e
Commit
64be738e
authored
Apr 25, 2023
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
additional commits for G version
parent
5f17a21b
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
153 additions
and
45 deletions
+153
-45
CMakeLists.txt
CMakeLists.txt
+26
-11
radio/ETHERNET/oran/5g/app_dl_bbu_pool_tasks-G.c
radio/ETHERNET/oran/5g/app_dl_bbu_pool_tasks-G.c
+18
-8
radio/ETHERNET/oran/5g/app_io_fh_xran-G.c
radio/ETHERNET/oran/5g/app_io_fh_xran-G.c
+46
-12
radio/ETHERNET/oran/5g/app_ul_bbu_pool_tasks-G.c
radio/ETHERNET/oran/5g/app_ul_bbu_pool_tasks-G.c
+34
-9
radio/ETHERNET/oran/5g/oaioran.c
radio/ETHERNET/oran/5g/oaioran.c
+28
-5
radio/ETHERNET/oran/5g/sample-app-G.c
radio/ETHERNET/oran/5g/sample-app-G.c
+1
-0
No files found.
CMakeLists.txt
View file @
64be738e
...
...
@@ -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
)
...
...
radio/ETHERNET/oran/5g/app_dl_bbu_pool_tasks-G.c
View file @
64be738e
...
...
@@ -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
;
}
radio/ETHERNET/oran/5g/app_io_fh_xran-G.c
View file @
64be738e
...
...
@@ -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
)
...
...
radio/ETHERNET/oran/5g/app_ul_bbu_pool_tasks-G.c
View file @
64be738e
...
...
@@ -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
;
}
radio/ETHERNET/oran/5g/oaioran.c
View file @
64be738e
...
...
@@ -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
);
...
...
radio/ETHERNET/oran/5g/sample-app-G.c
View file @
64be738e
...
...
@@ -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
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment