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
zzha zzha
OpenXG-RAN
Commits
1ff806d5
Commit
1ff806d5
authored
Jun 05, 2020
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix shared lib dependency error
parent
d1e8c235
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
201 additions
and
70 deletions
+201
-70
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+37
-56
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+3
-2
openair1/SIMULATION/TOOLS/sim.h
openair1/SIMULATION/TOOLS/sim.h
+0
-9
targets/ARCH/rfsimulator/apply_channelmod.c
targets/ARCH/rfsimulator/apply_channelmod.c
+6
-2
targets/ARCH/rfsimulator/new_channel_sim.c
targets/ARCH/rfsimulator/new_channel_sim.c
+108
-0
targets/ARCH/rfsimulator/rfsimulator.h
targets/ARCH/rfsimulator/rfsimulator.h
+37
-0
targets/ARCH/rfsimulator/simulator.c
targets/ARCH/rfsimulator/simulator.c
+10
-1
No files found.
cmake_targets/CMakeLists.txt
View file @
1ff806d5
...
...
@@ -2239,26 +2239,28 @@ add_library(LFDS7
${
lfds7_queue
}
${
lfds7_ring
}
${
lfds7_qbss
}
${
lfds7_stack
}
${
lfds7_freelist
}
${
lfds7_btree
}
${
lfds7_hash
}
${
lfds7_ordered_list
}
${
lfds7_unordered_list
}
${
lfds7_misc
}
)
add_library
(
SIMU_COMMON
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/random_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/rangen_double.c
)
# Simulation library
##########################
set
(
SIMUSRC
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/random_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/rangen_double.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/multipath_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/multipath_tv_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/abstraction.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/channel_sim.c
${
OPENAIR1_DIR
}
/SIMULATION/RF/rf.c
${
OPENAIR1_DIR
}
/SIMULATION/RF/dac.c
${
OPENAIR1_DIR
}
/SIMULATION/RF/adc.c
${
OPENAIR_DIR
}
/targets/ARCH/rfsimulator/apply_channelmod.c
#${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
)
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/multipath_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/multipath_tv_channel.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/abstraction.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/channel_sim.c
${
OPENAIR1_DIR
}
/SIMULATION/RF/rf.c
${
OPENAIR1_DIR
}
/SIMULATION/RF/dac.c
${
OPENAIR1_DIR
}
/SIMULATION/RF/adc.c
#${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
)
# Simulation library
##########################
add_library
(
SIMU SHARED
${
SIMUSRC
}
)
add_library
(
SIMU SHARED
${
SIMUSRC
}
)
add_library
(
SIMU_ETH
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
...
...
@@ -2416,9 +2418,11 @@ target_link_libraries(gnbscope ${XFORMS_LIBRARIES})
add_library
(
rfsimulator MODULE
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/simulator.c
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/simulator.c
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/apply_channelmod.c
${
OPENAIR_TARGETS
}
/ARCH/rfsimulator/new_channel_sim.c
)
target_link_libraries
(
rfsimulator
${
ATLAS_LIBRARIES
}
)
target_link_libraries
(
rfsimulator
SIMU_COMMON
${
ATLAS_LIBRARIES
}
)
add_library
(
oai_iqplayer MODULE
${
OPENAIR_TARGETS
}
/ARCH/iqplayer/iqplayer_lib.c
...
...
@@ -2441,7 +2445,7 @@ endif (${T_TRACER})
add_custom_command
(
OUTPUT
${
OPENAIR_DIR
}
/common/utils/T/T_IDs.h
COMMAND make clean
COMMAND make
COMMAND make
-j2
COMMAND make check_vcd
WORKING_DIRECTORY
${
OPENAIR_DIR
}
/common/utils/T
DEPENDS
${
OPENAIR_DIR
}
/common/utils/T/T_messages.txt
...
...
@@ -2564,7 +2568,7 @@ add_dependencies(ocp-enb rrc_flag s1ap_flag x2_flag oai_iqplayer)
target_link_libraries
(
ocp-enb
-Wl,--start-group
RRC_LIB NR_RRC_LIB S1AP_LIB S1AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB X2AP_LIB X2AP_ENB M3AP_LIB M3AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_LIB SCHED_RU_LIB
PHY_COMMON PHY PHY_RU LFDS L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB LFDS7
PHY_COMMON PHY PHY_RU LFDS L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB LFDS7
SIMU_COMMON
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
${
FSPT_MSG_LIB
}
${
PROTO_AGENT_LIB
}
-Wl,--end-group z dl
)
target_link_libraries
(
ocp-enb
${
LIBXML2_LIBRARIES
}
pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
${
LIB_LMS_LIBRARIES
}
${
T_LIB
}
)
...
...
@@ -2634,7 +2638,7 @@ target_link_libraries (lte-uesoftmodem
-Wl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_ENB M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB F1AP F1AP_LIB
GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON
PHY_UE PHY_RU LFDS L2_UE L2_LTE LFDS7 SIMU NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
PHY_UE PHY_RU LFDS L2_UE L2_LTE LFDS7 SIMU
_COMMON SIMU
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
ATLAS_LIBRARIES
}
-Wl,--end-group z dl
)
...
...
@@ -2729,29 +2733,6 @@ target_link_libraries (nr-uesoftmodem ${T_LIB})
add_dependencies
(
nr-uesoftmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc
)
# USIM process
#################
#add_executable(usim
# ${OPENAIR3_DIR}/NAS/TOOLS/usim_data.c
# ${OPENAIR3_DIR}/NAS/USER/API/USIM/usim_api.c
# ${OPENAIR3_DIR}/NAS/USER/API/USIM/aka_functions.c
# ${OPENAIR3_DIR}/NAS/COMMON/UTIL/memory.c
# ${OPENAIR3_DIR}/NAS/COMMON/UTIL/nas_log.c
# ${OPENAIR3_DIR}/NAS/COMMON/UTIL/OctetString.c
# ${OPENAIR3_DIR}/NAS/COMMON/UTIL/TLVEncoder.c
# )
#target_link_libraries (usim ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
# ???
#####################
#add_executable(nvram
# ${OPENAIR3_DIR}/NAS/TOOLS/ue_data.c
# ${OPENAIR3_DIR}/NAS/COMMON/UTIL/memory.c
# ${OPENAIR3_DIR}/NAS/COMMON/UTIL/nas_log.c
# )
#target_link_libraries (nvram LIB_NAS_UE UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
###################################"
# Addexecutables for tests
####################################
...
...
@@ -2768,7 +2749,7 @@ add_executable(dlsim_tm4
${
T_SOURCE
}
)
target_link_libraries
(
dlsim_tm4
-Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB PHY LFDS
${
ITTI_LIB
}
-Wl,--end-group
-Wl,--start-group SIMU
_COMMON SIMU
UTIL SCHED_LIB SCHED_RU_LIB PHY LFDS
${
ITTI_LIB
}
-Wl,--end-group
pthread m rt
${
CONFIG_LIB
}
${
ATLAS_LIBRARIES
}
${
T_LIB
}
)
...
...
@@ -2781,7 +2762,7 @@ add_executable(polartest
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
polartest
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE CONFIG_LIB -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE CONFIG_LIB -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
dl
)
...
...
@@ -2796,7 +2777,7 @@ add_executable(smallblocktest
target_link_libraries
(
smallblocktest
-Wl,--start-group UTIL SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
dl
)
...
...
@@ -2809,7 +2790,7 @@ add_executable(ldpctest
add_dependencies
(
ldpctest ldpc_orig ldpc_optim ldpc_optim8seg ldpc
)
target_link_libraries
(
ldpctest
-Wl,--start-group UTIL SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
dl
)
...
...
@@ -2821,7 +2802,7 @@ add_executable(nr_dlschsim
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_dlschsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
...
...
@@ -2833,7 +2814,7 @@ add_executable(nr_pbchsim
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_pbchsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
...
...
@@ -2848,7 +2829,7 @@ add_executable(nr_pucchsim
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_pucchsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
...
...
@@ -2862,7 +2843,7 @@ add_executable(nr_dlsim
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_dlsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_NR -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_NR -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
target_compile_definitions
(
nr_dlsim PUBLIC -DPHYSICAL_SIMULATOR
)
...
...
@@ -2876,7 +2857,7 @@ add_executable(nr_prachsim
${
T_SOURCE
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_prachsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB RRC_LIB NR_RRC_LIB L2_NR CONFIG_LIB -Wl,--end-group m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB RRC_LIB NR_RRC_LIB L2_NR CONFIG_LIB -Wl,--end-group m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
add_executable
(
nr_ulschsim
${
OPENAIR1_DIR
}
/SIMULATION/NR_PHY/ulschsim.c
...
...
@@ -2886,7 +2867,7 @@ add_executable(nr_ulschsim
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_ulschsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
...
...
@@ -2900,7 +2881,7 @@ add_executable(nr_ulsim
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
nr_ulsim
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_NR -Wl,--end-group
-Wl,--start-group UTIL SIMU
_COMMON SIMU
PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON RRC_LIB NR_RRC_LIB CONFIG_LIB L2_NR -Wl,--end-group
m pthread
${
ATLAS_LIBRARIES
}
${
T_LIB
}
${
ITTI_LIB
}
dl
)
target_compile_definitions
(
nr_ulsim PUBLIC -DPHYSICAL_SIMULATOR
)
...
...
@@ -2919,7 +2900,7 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
${
NFAPI_USER_DIR
}
/nfapi.c
)
target_link_libraries
(
${
myExe
}
-Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_NR_COMMON PHY PHY_UE PHY_RU LFDS
${
ITTI_LIB
}
LFDS7 -Wl,--end-group
-Wl,--start-group SIMU
_COMMON SIMU
UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_NR_COMMON PHY PHY_UE PHY_RU LFDS
${
ITTI_LIB
}
LFDS7 -Wl,--end-group
pthread m rt
${
CONFIG_LIB
}
${
ATLAS_LIBRARIES
}
${
XFORMS_LIBRARIES
}
${
T_LIB
}
dl
)
...
...
@@ -2999,7 +2980,7 @@ if (${T_TRACER})
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_VNF_LIB NFAPI_USER_LIB
PHY_COMMON PHY PHY_UE PHY_NR PHY_NR_COMMON PHY_NR_UE PHY_RU PHY_MEX
L2 L2_LTE L2_NR L2_UE NR_L2_UE MAC_NR_COMMON MAC_NR MAC_UE_NR
CN_UTILS GTPV1U SCTP_CLIENT MME_APP UDP LIB_NAS_UE NB_IoT LFDS LFDS7 SIMU SIMU_ETH OPENAIR0_LIB
CN_UTILS GTPV1U SCTP_CLIENT MME_APP UDP LIB_NAS_UE NB_IoT LFDS LFDS7 SIMU
_COMMON SIMU
SIMU_ETH OPENAIR0_LIB
ldpc_orig ldpc_optim ldpc_optim8seg ldpc PROTO_AGENT dfts
)
if
(
TARGET
${
i
}
)
add_dependencies
(
${
i
}
generate_T
)
...
...
@@ -3043,7 +3024,7 @@ function(make_driver name dir)
endforeach
()
CONFIGURE_FILE
(
${
OPENAIR_CMAKE
}
/tools/Kbuild.cmake
${
OPENAIR_BIN_DIR
}
/
${
name
}
/Kbuild
)
add_custom_command
(
OUTPUT
${
name
}
.ko
COMMAND make -C
${
module_build_path
}
M=
${
OPENAIR_BIN_DIR
}
/
${
name
}
COMMAND make -
j2 -
C
${
module_build_path
}
M=
${
OPENAIR_BIN_DIR
}
/
${
name
}
WORKING_DIRECTORY
${
OPENAIR_BIN_DIR
}
/
${
name
}
COMMENT
"building
${
module
}
.ko"
VERBATIM
...
...
cmake_targets/tools/build_helper
View file @
1ff806d5
...
...
@@ -150,7 +150,9 @@ clean_all_files() {
set_openair_env
dir=$OPENAIR_DIR/cmake_targets
rm -rf $dir/log $OPENAIR_DIR/targets/bin/*
rm -rf $dir/ran_build $dir/lte-simulators/build
rm -rf $dir/ran_build $dir/ran_build_noLOG
rm -rf $dir/lte-simulators/build
rm -rf $dir/phy_simulators/build $dir/nas_sim_tools/build
rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt
rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build
}
...
...
@@ -177,7 +179,6 @@ compilations() {
cd $OPENAIR_DIR/cmake_targets/$1/build
set +e
{
rm -f $3
if [ "$BUILD_COVERITY_SCAN" == "1" ]; then
COV_SCAN_PREFIX="cov-build --dir cov-int"
else
...
...
openair1/SIMULATION/TOOLS/sim.h
View file @
1ff806d5
...
...
@@ -432,15 +432,6 @@ void multipath_tv_channel(channel_desc_t *desc,
/**@} */
/**@} */
void
rxAddInput
(
struct
complex16
*
input_sig
,
struct
complex16
*
after_channel_sig
,
int
rxAnt
,
channel_desc_t
*
channelDesc
,
int
nbSamples
,
uint64_t
TS
,
uint32_t
CirSize
);
int
modelid_fromname
(
char
*
modelname
);
double
channelmod_get_snr_dB
(
void
);
double
channelmod_get_sinr_dB
(
void
);
...
...
targets/ARCH/rfsimulator/apply_channelmod.c
View file @
1ff806d5
...
...
@@ -34,6 +34,9 @@
#include <common/utils/LOG/log.h>
#include <common/config/config_userapi.h>
#include <openair1/SIMULATION/TOOLS/sim.h>
#include <common/utils/telnetsrv/telnetsrv.h>
#include <common/utils/load_module_shlib.h>
#include <targets/ARCH/rfsimulator/rfsimulator.h>
/*
Legacy study:
...
...
@@ -99,8 +102,8 @@ void rxAddInput( struct complex16 *input_sig, struct complex16 *after_channel_si
}
//l
}
out_ptr
->
r
+=
round
(
rx_tmp
.
x
*
pathLossLinear
+
noise_per_sample
*
gauss
double
(
0
.
0
,
1
.
0
));
out_ptr
->
i
+=
round
(
rx_tmp
.
y
*
pathLossLinear
+
noise_per_sample
*
gauss
double
(
0
.
0
,
1
.
0
));
out_ptr
->
r
+=
round
(
rx_tmp
.
x
*
pathLossLinear
+
noise_per_sample
*
gauss
Ziggurat
(
0
.
0
,
1
.
0
));
out_ptr
->
i
+=
round
(
rx_tmp
.
y
*
pathLossLinear
+
noise_per_sample
*
gauss
Ziggurat
(
0
.
0
,
1
.
0
));
out_ptr
++
;
}
...
...
@@ -112,3 +115,4 @@ void rxAddInput( struct complex16 *input_sig, struct complex16 *after_channel_si
channelDesc
->
path_loss_dB
,
10
*
log10
(
noise_per_sample
));
}
targets/ARCH/rfsimulator/new_channel_sim.c
0 → 100644
View file @
1ff806d5
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Author and copyright: Laurent Thomas, open-cells.com
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdbool.h>
#include <errno.h>
#include <common/utils/assertions.h>
#include <common/utils/LOG/log.h>
#include <common/config/config_userapi.h>
#include <openair1/SIMULATION/TOOLS/sim.h>
#include <targets/ARCH/rfsimulator/rfsimulator.h>
// Ziggurat
static
double
wn
[
128
],
fn
[
128
];
static
uint32_t
iz
,
jz
,
jsr
=
123456789
,
kn
[
128
];
static
int32_t
hz
;
#define SHR3 (jz=jsr, jsr^=(jsr<<13),jsr^=(jsr>>17),jsr^=(jsr<<5),jz+jsr)
#define UNI (0.5+(signed) SHR3 * 0.2328306e-9)
double
nfix
(
void
)
{
const
double
r
=
3
.
442620
;
static
double
x
,
y
;
for
(;;)
{
x
=
hz
*
wn
[
iz
];
if
(
iz
==
0
)
{
do
{
x
=
-
0
.
2904764
*
log
(
UNI
);
y
=
-
log
(
UNI
);
}
while
(
y
+
y
<
x
*
x
);
return
(
hz
>
0
)
?
r
+
x
:
-
r
-
x
;
}
if
(
fn
[
iz
]
+
UNI
*
(
fn
[
iz
-
1
]
-
fn
[
iz
])
<
exp
(
-
0
.
5
*
x
*
x
))
{
return
x
;
}
hz
=
SHR3
;
iz
=
hz
&
127
;
if
(
abs
(
hz
)
<
kn
[
iz
])
{
return
((
hz
)
*
wn
[
iz
]);
}
}
}
/*!\Procedure to create tables for normal distribution kn,wn and fn. */
void
tableNor
(
unsigned
long
seed
)
{
jsr
=
seed
;
double
dn
=
3
.
442619855899
;
int
i
;
const
double
m1
=
2147483648
.
0
;
double
q
;
double
tn
=
3
.
442619855899
;
const
double
vn
=
9.91256303526217E-03
;
q
=
vn
/
exp
(
-
0
.
5
*
dn
*
dn
);
kn
[
0
]
=
((
dn
/
q
)
*
m1
);
kn
[
1
]
=
0
;
wn
[
0
]
=
(
q
/
m1
);
wn
[
127
]
=
(
dn
/
m1
);
fn
[
0
]
=
1
.
0
;
fn
[
127
]
=
(
exp
(
-
0
.
5
*
dn
*
dn
)
);
for
(
i
=
126
;
1
<=
i
;
i
--
)
{
dn
=
sqrt
(
-
2
.
0
*
log
(
vn
/
dn
+
exp
(
-
0
.
5
*
dn
*
dn
)));
kn
[
i
+
1
]
=
((
dn
/
tn
)
*
m1
);
tn
=
dn
;
fn
[
i
]
=
(
exp
(
-
0
.
5
*
dn
*
dn
));
wn
[
i
]
=
(
dn
/
m1
);
}
return
;
}
double
gaussZiggurat
(
double
mean
,
double
variance
)
{
hz
=
SHR3
;
iz
=
hz
&
127
;
return
abs
(
hz
)
<
kn
[
iz
]
?
hz
*
wn
[
iz
]
:
nfix
();
}
targets/ARCH/rfsimulator/rfsimulator.h
0 → 100644
View file @
1ff806d5
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Author and copyright: Laurent Thomas, open-cells.com
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
#ifndef __RFSIMULATOR_H
#define __RFSIMULATOR_H
double
gaussZiggurat
(
double
mean
,
double
variance
);
void
tableNor
(
unsigned
long
seed
);
void
rxAddInput
(
struct
complex16
*
input_sig
,
struct
complex16
*
after_channel_sig
,
int
rxAnt
,
channel_desc_t
*
channelDesc
,
int
nbSamples
,
uint64_t
TS
,
uint32_t
CirSize
);
#endif
targets/ARCH/rfsimulator/simulator.c
View file @
1ff806d5
...
...
@@ -50,6 +50,7 @@
#include "openair1/PHY/defs_UE.h"
#define CHANNELMOD_DYNAMICLOAD
#include <openair1/SIMULATION/TOOLS/sim.h>
#include <targets/ARCH/rfsimulator/rfsimulator.h>
#define PORT 4043 //default TCP port for this simulator
#define CirSize 307200 // 100ms is enough
...
...
@@ -146,6 +147,12 @@ void allocCirBuf(rfsimulator_state_t *bridge, int sock) {
// the value channel_model->path_loss_dB seems only a storage place (new_channel_desc_scm() only copy the passed value)
// Legacy changes directlty the variable channel_model->path_loss_dB place to place
// while calling new_channel_desc_scm() with path losses = 0
static
bool
init_done
=
false
;
if
(
!
init_done
)
{
randominit
(
0
);
tableNor
(
0
);
init_done
=
true
;
}
ptr
->
channel_model
=
new_channel_desc_scm
(
bridge
->
tx_num_channels
,
bridge
->
rx_num_channels
,
bridge
->
channelmod
,
bridge
->
sample_rate
,
...
...
@@ -561,6 +568,7 @@ int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimestamp, vo
pthread_mutex_unlock
(
&
Sockmutex
);
usleep
(
10000
);
pthread_mutex_lock
(
&
Sockmutex
);
if
(
t
->
lastWroteTS
<
t
->
nextTimestamp
)
{
// Assuming Tx is not done fully in another thread
// We can never write is the past from the received time
...
...
@@ -574,6 +582,7 @@ int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimestamp, vo
for
(
int
i
=
0
;
i
<
t
->
tx_num_channels
;
i
++
)
samplesVoid
[
i
]
=
(
void
*
)
&
v
;
LOG_I
(
HW
,
"No samples Tx occured, so we send 1 sample to notify it: Tx:%lu, Rx:%lu
\n
"
,
t
->
lastWroteTS
,
t
->
nextTimestamp
);
rfsimulator_write_internal
(
t
,
t
->
nextTimestamp
,
...
...
@@ -716,7 +725,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
rfsimulator
->
rx_num_channels
=
openair0_cfg
->
rx_num_channels
;
rfsimulator
->
sample_rate
=
openair0_cfg
->
sample_rate
;
rfsimulator
->
tx_bw
=
openair0_cfg
->
tx_bw
;
randominit
(
0
);
//
randominit(0);
set_taus_seed
(
0
);
return
0
;
}
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