Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
OpenXG
OpenXG UE
Commits
33e81f1b
Commit
33e81f1b
authored
Mar 01, 2018
by
oai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
introduce distinct executables for ue and eNodeB (lte-uesoftmodem, lte-softmodem)
parent
a9ddda96
Changes
21
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1420 additions
and
549 deletions
+1420
-549
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+77
-13
cmake_targets/build_oai
cmake_targets/build_oai
+17
-3
common/utils/load_module_shlib.c
common/utils/load_module_shlib.c
+37
-15
common/utils/load_module_shlib.h
common/utils/load_module_shlib.h
+19
-9
common/utils/telnetsrv/telnetsrv.c
common/utils/telnetsrv/telnetsrv.c
+8
-2
common/utils/telnetsrv/telnetsrv.h
common/utils/telnetsrv/telnetsrv.h
+2
-0
openair1/PHY/CODING/3gpplte_sse.c
openair1/PHY/CODING/3gpplte_sse.c
+1
-1
openair1/PHY/CODING/3gpplte_turbo_decoder.c
openair1/PHY/CODING/3gpplte_turbo_decoder.c
+9
-1
openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
+2
-0
openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
+2
-0
openair1/PHY/CODING/coding_load.c
openair1/PHY/CODING/coding_load.c
+61
-12
openair1/PHY/CODING/defs.h
openair1/PHY/CODING/defs.h
+3
-105
openair1/PHY/INIT/init_top.c
openair1/PHY/INIT/init_top.c
+1
-1
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
+2
-4
openair1/PHY/extern.h
openair1/PHY/extern.h
+1
-1
openair1/PHY/vars.h
openair1/PHY/vars.h
+1
-1
openair2/RRC/LITE/L2_interface_ue.c
openair2/RRC/LITE/L2_interface_ue.c
+1
-0
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+1
-1
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+33
-376
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-softmodem.h
+3
-4
targets/RT/USER/lte-uesoftmodem.c
targets/RT/USER/lte-uesoftmodem.c
+1139
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
33e81f1b
...
...
@@ -1216,9 +1216,7 @@ set(PHY_SRC_UE
${
OPENAIR1_DIR
}
/PHY/CODING/ccoding_byte_lte.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_sse.c
${
OPENAIR1_DIR
}
/PHY/CODING/crc_byte.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
${
OPENAIR1_DIR
}
/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c
${
PHY_TURBOIF
}
${
OPENAIR1_DIR
}
/PHY/CODING/lte_rate_matching.c
${
OPENAIR1_DIR
}
/PHY/CODING/viterbi.c
${
OPENAIR1_DIR
}
/PHY/CODING/viterbi_lte.c
...
...
@@ -1946,14 +1944,12 @@ add_executable(lte-softmodem
${
s1ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ru.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-softmodem.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks_ue.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
...
...
@@ -1969,9 +1965,9 @@ add_executable(lte-softmodem
target_link_libraries
(
lte-softmodem
-Wl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
NFAPI_
COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_
USER_LIB
-Wl,--end-group z dl
)
target_link_libraries
(
lte-softmodem
${
LIBXML2_LIBRARIES
}
)
...
...
@@ -1986,14 +1982,12 @@ add_executable(lte-softmodem-nos1
${
s1ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-enb.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ru.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-softmodem.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks_ue.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
...
...
@@ -2007,9 +2001,9 @@ add_executable(lte-softmodem-nos1
)
target_link_libraries
(
lte-softmodem-nos1
-Wl,--start-group
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2
${
MSC_LIB
}
${
RAL_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
${
FLEXRAN_AGENT_LIB
}
LFDS7
NFAPI_
COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_
USER_LIB
-Wl,--end-group z dl
)
target_link_libraries
(
lte-softmodem-nos1
${
LIBXML2_LIBRARIES
}
)
...
...
@@ -2017,6 +2011,76 @@ target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt
target_link_libraries
(
lte-softmodem-nos1
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
T_LIB
}
)
# lte-uesoftmodem is UE implementation
#######################################
add_executable
(
lte-uesoftmodem
${
rrc_h
}
${
s1ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-uesoftmodem.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks_ue.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/utils.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
XFORMS_SOURCE
}
${
XFORMS_SOURCE_SOFTMODEM
}
${
T_SOURCE
}
${
CONFIG_SOURCES
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
lte-uesoftmodem
-Wl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_UE_LIB PHY_UE LFDS L2_UE
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
LFDS7
-Wl,--end-group z dl
)
target_link_libraries
(
lte-uesoftmodem
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-uesoftmodem pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-uesoftmodem
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-uesoftmodem
${
T_LIB
}
)
# lte-softmodem-nos1 is both eNB and UE implementation
###################################################
add_executable
(
lte-uesoftmodem-nos1
${
rrc_h
}
${
s1ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
OPENAIR_TARGETS
}
/RT/USER/rt_wrapper.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-ue.c
${
OPENAIR_TARGETS
}
/RT/USER/lte-uesoftmodem.c
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
${
OPENAIR_TARGETS
}
/COMMON/create_tasks_ue.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR_DIR
}
/common/utils/system.c
${
XFORMS_SOURCE
}
${
XFORMS_SOURCE_SOFTMODEM
}
${
T_SOURCE
}
${
CONFIG_SOURCES
}
${
SHLIB_LOADER_SOURCES
}
)
target_link_libraries
(
lte-uesoftmodem-nos1
-Wl,--start-group
RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_UE_LIB PHY_UE LFDS L2_UE
${
MSC_LIB
}
${
RAL_LIB
}
${
ITTI_LIB
}
${
MIH_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
LFDS7
-Wl,--end-group z dl
)
target_link_libraries
(
lte-uesoftmodem-nos1
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-uesoftmodem-nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
XFORMS_LIBRARIES
}
${
PROTOBUF_LIB
}
${
CMAKE_DL_LIBS
}
${
LIBYAML_LIBRARIES
}
)
target_link_libraries
(
lte-uesoftmodem-nos1
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-uesoftmodem-nos1
${
T_LIB
}
)
# USIM process
#################
#add_executable(usim
...
...
cmake_targets/build_oai
View file @
33e81f1b
...
...
@@ -359,7 +359,11 @@ function main() {
CMAKE_CMD
=
"
$CMAKE_CMD
.."
echo_info
"CMAKE_CMD=
$CMAKE_CMD
"
if
[
"
$eNB
"
=
"1"
]
&&
[
"
$UE
"
=
"1"
]
;
then
echo_error
"Cannot build UE and eNB on one build_oai execution"
echo_error
"use 2 build_oai invocations"
exit
fi
#########################################################
# check validity of HW and TP parameters for eNB
#########################################################
...
...
@@ -488,10 +492,20 @@ function main() {
DIR
=
$OPENAIR_DIR
/cmake_targets
if
[
"
$NOS1
"
=
"1"
]
;
then
lte_build_dir
=
lte_noS1_build_oai
lte_exec
=
lte-softmodem-nos1
if
[
"
$eNB
"
=
"1"
]
;
then
lte_exec
=
lte-softmodem-nos1
fi
if
[
"
$UE
"
=
"1"
]
;
then
lte_exec
=
lte-uesoftmodem-nos1
fi
else
lte_build_dir
=
lte_build_oai
lte_exec
=
lte-softmodem
if
[
"
$eNB
"
=
"1"
]
;
then
lte_exec
=
lte-softmodem
fi
if
[
"
$UE
"
=
"1"
]
;
then
lte_exec
=
lte-uesoftmodem
fi
fi
# configuration module libraries, one currently available, using libconfig
...
...
common/utils/load_module_shlib.c
View file @
33e81f1b
...
...
@@ -48,11 +48,11 @@ void loader_init(void) {
loader_data
.
mainexec_buildversion
=
PACKAGE_VERSION
;
int
ret
=
config_get
(
LoaderParams
,
sizeof
(
LoaderParams
)
/
sizeof
(
paramdef_t
),
LOADER_CONFIG_PREFIX
);
if
(
ret
<
0
)
{
fprintf
(
stderr
,
"[LOADER] %s %d configuration couldn't be performed"
,
__FILE__
,
__LINE__
);
printf
(
"[LOADER] configuration couldn't be performed via config module, parameters set to default values
\n
"
);
if
(
loader_data
.
shlibpath
==
NULL
)
{
loader_data
.
shlibpath
=
DEFAULT_PATH
;
}
return
;
loader_data
.
maxshlibs
=
DEFAULT_MAXSHLIBS
;
}
loader_data
.
shlibs
=
malloc
(
loader_data
.
maxshlibs
*
sizeof
(
loader_shlibdesc_t
));
if
(
loader_data
.
shlibs
==
NULL
)
{
...
...
@@ -96,7 +96,10 @@ int ret;
if
(
shlibpath
==
NULL
)
{
shlibpath
=
loader_data
.
shlibpath
;
}
/* no specific shared lib version */
if
(
shlibversion
==
NULL
)
{
shlibversion
=
""
;
}
/* alloc memory for full module shared lib file name */
tmpstr
=
malloc
(
strlen
(
shlibpath
)
+
strlen
(
modname
)
+
strlen
(
shlibversion
)
+
16
);
if
(
tmpstr
==
NULL
)
{
...
...
@@ -120,6 +123,7 @@ int load_module_shlib(char *modname,loader_shlibfunc_t *farray, int numf)
void
*
lib_handle
;
initfunc_t
fpi
;
checkverfunc_t
fpc
;
getfarrayfunc_t
fpg
;
char
*
shlib_path
;
char
*
afname
=
NULL
;
int
ret
=
0
;
...
...
@@ -155,25 +159,29 @@ int load_module_shlib(char *modname,loader_shlibfunc_t *farray, int numf)
}
if
(
farray
!=
NULL
)
{
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
=
malloc
(
numf
*
sizeof
(
loader_shlibfunc_t
));
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
numfunc
=
0
;
for
(
int
i
=
0
;
i
<
numf
;
i
++
)
{
farray
[
i
].
fptr
=
dlsym
(
lib_handle
,
farray
[
i
].
fname
);
if
(
farray
[
i
].
fptr
==
NULL
)
{
fprintf
(
stderr
,
"[LOADER] %s %d %s function not found %s
\n
"
,
__FILE__
,
__LINE__
,
dlerror
(),
farray
[
i
].
fname
);
ret
=
-
1
;
}
ret
=
-
1
;
}
else
{
/* farray[i].fptr == NULL */
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
[
i
].
fname
=
strdup
(
farray
[
i
].
fname
);
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
[
i
].
fptr
=
farray
[
i
].
fptr
;
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
numfunc
++
;
}
/* farray[i].fptr != NULL */
}
/* for int i... */
}
/* farray ! NULL */
}
else
{
/* farray ! NULL */
sprintf
(
afname
,
"%s_getfarray"
,
modname
);
fpg
=
dlsym
(
lib_handle
,
afname
);
if
(
fpg
!=
NULL
)
{
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
numfunc
=
fpg
(
&
(
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
));
}
}
/* farray ! NULL */
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
name
=
strdup
(
modname
);
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
thisshlib_path
=
strdup
(
shlib_path
);
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
=
malloc
(
numf
*
sizeof
(
loader_shlibfunc_t
));
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
numfunc
=
0
;
for
(
int
i
=
0
;
i
<
numf
;
i
++
)
{
if
(
farray
[
i
].
fptr
!=
NULL
)
{
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
[
i
].
fname
=
strdup
(
farray
[
i
].
fname
);
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
funcarray
[
i
].
fptr
=
farray
[
i
].
fptr
;
loader_data
.
shlibs
[
loader_data
.
numshlibs
].
numfunc
++
;
}
}
(
loader_data
.
numshlibs
)
++
;
}
/* lib_handle != NULL */
...
...
@@ -182,3 +190,17 @@ int load_module_shlib(char *modname,loader_shlibfunc_t *farray, int numf)
if
(
lib_handle
!=
NULL
)
dlclose
(
lib_handle
);
return
ret
;
}
void
*
get_shlibmodule_fptr
(
char
*
modname
,
char
*
fname
)
{
for
(
int
i
=
0
;
i
<
loader_data
.
numshlibs
&&
loader_data
.
shlibs
[
i
].
name
!=
NULL
;
i
++
)
{
if
(
strcmp
(
loader_data
.
shlibs
[
i
].
name
,
modname
)
==
0
)
{
for
(
int
j
=
0
;
j
<
loader_data
.
shlibs
[
i
].
numfunc
;
j
++
)
{
if
(
strcmp
(
loader_data
.
shlibs
[
i
].
funcarray
[
j
].
fname
,
fname
)
==
0
)
{
return
loader_data
.
shlibs
[
i
].
funcarray
[
j
].
fptr
;
}
}
/* for j loop on module functions*/
}
}
/* for i loop on modules */
return
NULL
;
}
common/utils/load_module_shlib.h
View file @
33e81f1b
...
...
@@ -33,8 +33,7 @@
#define LOAD_SHLIB_H
typedef
int
(
*
initfunc_t
)(
void
);
typedef
int
(
*
checkverfunc_t
)(
char
*
mainexec_version
,
char
**
shlib_version
);
typedef
struct
{
char
*
fname
;
...
...
@@ -58,23 +57,34 @@ typedef struct {
loader_shlibdesc_t
*
shlibs
;
}
loader_data_t
;
/* function type of functions which may be implemented by a module */
/* 1: init function, called when loading, if found in the shared lib */
typedef
int
(
*
initfunc_t
)(
void
);
/* 2: version checking function, called when loading, if it returns -1, trigger main exec abort */
typedef
int
(
*
checkverfunc_t
)(
char
*
mainexec_version
,
char
**
shlib_version
);
/* 3: get function array function, called when loading when a module doesn't provide */
/* the function array when calling load_module_shlib (farray param NULL) */
typedef
int
(
*
getfarrayfunc_t
)(
loader_shlibfunc_t
**
funcarray
);
#ifdef LOAD_MODULE_SHLIB_MAIN
#define LOADER_CONFIG_PREFIX "loader"
#define DEFAULT_PATH ""
#define DEFAULT_PATH ""
#define DEFAULT_MAXSHLIBS 10
loader_data_t
loader_data
;
/*----------------------------------------------------------------------------------------------------------------------------------------------*/
/* LOADER parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*----------------------------------------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------------------------------------
--
*/
/* LOADER parameters
*/
/* optname helpstr paramflags XXXptr defXXXval
type numelt */
/*----------------------------------------------------------------------------------------------------------------------------------------------
--
*/
#define LOADER_PARAMS_DESC { \
{"shlibpath", NULL, PARAMFLAG_NOFREE, strptr:(char **)&(loader_data.shlibpath), defstrval:DEFAULT_PATH, TYPE_STRING, 0}, \
{"maxshlibs", NULL, 0, uptr:&(loader_data.maxshlibs), defintval:
10,
TYPE_UINT32, 0}, \
{"shlibpath", NULL, PARAMFLAG_NOFREE, strptr:(char **)&(loader_data.shlibpath), defstrval:DEFAULT_PATH,
TYPE_STRING, 0}, \
{"maxshlibs", NULL, 0, uptr:&(loader_data.maxshlibs), defintval:
DEFAULT_MAXSHLIBS,
TYPE_UINT32, 0}, \
}
/*-------------------------------------------------------------------------------------------------------------*/
#else
/* LOAD_MODULE_SHLIB_MAIN */
extern
int
load_module_shlib
(
char
*
modname
,
loader_shlibfunc_t
*
farray
,
int
numf
);
extern
void
*
get_shlibmodule_fptr
(
char
*
modname
,
char
*
fname
);
extern
loader_data_t
loader_data
;
#endif
/* LOAD_MODULE_SHLIB_MAIN */
...
...
common/utils/telnetsrv/telnetsrv.c
View file @
33e81f1b
...
...
@@ -51,7 +51,7 @@
#include <dlfcn.h>
#include <sys/time.h>
#include <sys/resource.h>
#include "common/utils/load_module_shlib.h"
#include "common/config/config_userapi.h"
#include <readline/history.h>
...
...
@@ -787,4 +787,10 @@ int telnetsrv_checkbuildver(char * mainexec_buildversion, char ** shlib_buildve
return
0
;
}
int
telnetsrv_getfarray
(
loader_shlibfunc_t
**
farray
)
{
*
farray
=
malloc
(
sizeof
(
loader_shlibfunc_t
));
(
*
farray
)[
0
].
fname
=
TELNET_ADDCMD_FNAME
;
(
*
farray
)[
0
].
fptr
=
(
int
(
*
)(
void
)
)
add_telnetcmd
;
return
1
;
}
common/utils/telnetsrv/telnetsrv.h
View file @
33e81f1b
...
...
@@ -131,6 +131,8 @@ VT escape sequence definition, for smarter display....
#define STDFMT "\x1b[0m"
/*---------------------------------------------------------------------------------------------*/
#define TELNET_ADDCMD_FNAME "add_telnetcmd"
typedef
int
(
*
add_telnetcmd_func_t
)(
char
*
,
telnetshell_vardef_t
*
,
telnetshell_cmddef_t
*
);
#ifdef TELNETSERVERCODE
int
add_telnetcmd
(
char
*
modulename
,
telnetshell_vardef_t
*
var
,
telnetshell_cmddef_t
*
cmd
);
void
set_sched
(
pthread_t
tid
,
int
pid
,
int
priority
);
...
...
openair1/PHY/CODING/3gpplte_sse.c
View file @
33e81f1b
...
...
@@ -696,7 +696,7 @@ int main(int argc,char **argv)
printf
(
"Input %d : %d
\n
"
,
i
,
input
[
i
]);
}
threegpplte_turbo_encoder
(
&
input
[
0
],
threegpplte_turbo_encoder
_sse
(
&
input
[
0
],
INPUT_LENGTH
,
&
output
[
0
],
0
,
...
...
openair1/PHY/CODING/3gpplte_turbo_decoder.c
View file @
33e81f1b
...
...
@@ -874,14 +874,22 @@ void compute_ext_s(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext,
unsigned
char
phy_threegpplte_turbo_decoder_scalar
(
llr_t
*
y
,
llr_t
*
y2
,
unsigned
char
*
decoded_bytes
,
unsigned
char
*
decoded_bytes2
,
unsigned
short
n
,
unsigned
short
f1
,
unsigned
short
f2
,
unsigned
char
max_iterations
,
unsigned
char
crc_type
,
unsigned
char
F
,
unsigned
char
inst
)
time_stats_t
*
init_stats
,
time_stats_t
*
alpha_stats
,
time_stats_t
*
beta_stats
,
time_stats_t
*
gamma_stats
,
time_stats_t
*
ext_stats
,
time_stats_t
*
intl1_stats
,
time_stats_t
*
intl2_stats
)
{
/* y is a pointer to the input
...
...
openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
View file @
33e81f1b
...
...
@@ -1172,7 +1172,9 @@ void init_td16(void)
}
unsigned
char
phy_threegpplte_turbo_decoder16
(
short
*
y
,
short
*
y2
,
unsigned
char
*
decoded_bytes
,
unsigned
char
*
decoded_bytes2
,
unsigned
short
n
,
unsigned
short
f1
,
unsigned
short
f2
,
...
...
openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
View file @
33e81f1b
...
...
@@ -898,7 +898,9 @@ void init_td8(void)
}
unsigned
char
phy_threegpplte_turbo_decoder8
(
short
*
y
,
short
y2
,
unsigned
char
*
decoded_bytes
,
unsigned
char
*
decoded_bytes2
,
unsigned
short
n
,
unsigned
short
f1
,
unsigned
short
f2
,
...
...
openair1/PHY/CODING/coding_load.c
View file @
33e81f1b
...
...
@@ -29,13 +29,32 @@
* \note
* \warning
*/
#define _GNU_SOURCE
#include <sys/types.h>
#include "PHY/defs.h"
#include "PHY/extern.h"
#include "common/utils/load_module_shlib.h"
#include "common/utils/telnetsrv/telnetsrv.h"
static
int
coding_setmod_cmd
(
char
*
buff
,
int
debug
,
telnet_printfunc_t
prnt
);
static
telnetshell_cmddef_t
coding_cmdarray
[]
=
{
{
"mode"
,
"[sse,avx2,stdc,none]"
,
coding_setmod_cmd
},
{
""
,
""
,
NULL
},
};
telnetshell_vardef_t
coding_vardef
[]
=
{
{
"maxiter"
,
TELNET_VARTYPE_INT32
,
&
max_turbo_iterations
},
{
""
,
0
,
NULL
}
};
/* PHY/defs.h contains MODE_DECODE_XXX macros, following table must match */
static
char
*
modedesc
[]
=
{
"none"
,
"sse"
,
"C"
,
"avx2"
};
static
int
curmode
;
/* function description array, to be used when loading the encoding/decoding shared lib */
loader_shlibfunc_t
shlib_fdesc
[
DECODE_NUM_FPTR
];
/* encoding decoding functions pointers, filled here and used when encoding/decoding */
/*defined as extern in PHY?CODING/extern.h */
decoder_if_t
decoder16
;
decoder_if_t
decoder8
;
encoder_if_t
encoder
;
...
...
@@ -59,7 +78,6 @@ uint8_t nodecod(short *y,
time_stats_t
*
intl1_stats
,
time_stats_t
*
intl2_stats
)
{
printf
(
"."
);
return
max_iterations
+
1
;
};
...
...
@@ -70,11 +88,6 @@ void decoding_setmode (int mode) {
decoder16
=
nodecod
;
encoder
=
(
encoder_if_t
)
shlib_fdesc
[
ENCODE_C_FPTRIDX
].
fptr
;
break
;
case
MODE_DECODE_SSE
:
decoder8
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD8_SSE_FPTRIDX
].
fptr
;
decoder16
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD16_SSE_FPTRIDX
].
fptr
;
encoder
=
(
encoder_if_t
)
shlib_fdesc
[
ENCODE_SSE_FPTRIDX
].
fptr
;
break
;
case
MODE_DECODE_C
:
decoder16
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD_C_FPTRIDX
].
fptr
;
decoder8
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD_C_FPTRIDX
].
fptr
;
...
...
@@ -85,15 +98,22 @@ void decoding_setmode (int mode) {
decoder8
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD8_SSE_FPTRIDX
].
fptr
;
encoder
=
(
encoder_if_t
)
shlib_fdesc
[
ENCODE_SSE_FPTRIDX
].
fptr
;
break
;
default:
mode
=
MODE_DECODE_SSE
;
case
MODE_DECODE_SSE
:
decoder8
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD8_SSE_FPTRIDX
].
fptr
;
decoder16
=
(
decoder_if_t
)
shlib_fdesc
[
DECODE_TD16_SSE_FPTRIDX
].
fptr
;
encoder
=
(
encoder_if_t
)
shlib_fdesc
[
ENCODE_SSE_FPTRIDX
].
fptr
;
break
;
}
curmode
=
mode
;
}
int
load_codinglib
(
void
)
{
int
ret
;
memset
(
shlib_fdesc
,
0
,
sizeof
(
shlib_fdesc
));
shlib_fdesc
[
DECODE_INITTD8_SSE_FPTRIDX
].
fname
=
"init_td8"
;
shlib_fdesc
[
DECODE_INITTD16_SSE_FPTRIDX
].
fname
=
"init_td16"
;
shlib_fdesc
[
DECODE_INITTD_AVX2_FPTRIDX
].
fname
=
"init_td16avx2"
;
...
...
@@ -117,10 +137,18 @@ int load_codinglib(void) {
/* execute encoder/decoder init functions */
shlib_fdesc
[
DECODE_INITTD8_SSE_FPTRIDX
].
fptr
();
shlib_fdesc
[
DECODE_INITTD16_SSE_FPTRIDX
].
fptr
();
shlib_fdesc
[
DECODE_INITTD_AVX2_FPTRIDX
].
fptr
();
shlib_fdesc
[
ENCODE_INIT_SSE_FPTRIDX
].
fptr
();
if
(
shlib_fdesc
[
DECODE_INITTD_AVX2_FPTRIDX
].
fptr
!=
NULL
)
{
shlib_fdesc
[
DECODE_INITTD_AVX2_FPTRIDX
].
fptr
();
}
if
(
shlib_fdesc
[
ENCODE_INIT_SSE_FPTRIDX
].
fptr
!=
NULL
)
{
shlib_fdesc
[
ENCODE_INIT_SSE_FPTRIDX
].
fptr
();
}
decoding_setmode
(
MODE_DECODE_SSE
);
/* look for telnet server, if it is loaded, add the coding commands to it */
add_telnetcmd_func_t
addcmd
=
(
add_telnetcmd_func_t
)
get_shlibmodule_fptr
(
"telnetsrv"
,
TELNET_ADDCMD_FNAME
);
if
(
addcmd
!=
NULL
)
{
addcmd
(
"coding"
,
coding_vardef
,
coding_cmdarray
);
}
return
0
;
}
...
...
@@ -132,3 +160,24 @@ void free_codinglib(void) {
}
/* functions for telnet support, when telnet server is loaded */
int
coding_setmod_cmd
(
char
*
buff
,
int
debug
,
telnet_printfunc_t
prnt
)
{
if
(
debug
>
0
)
prnt
(
"coding_setmod_cmd received %s
\n
"
,
buff
);
if
(
strcasestr
(
buff
,
"sse"
)
!=
NULL
)
{
decoding_setmode
(
MODE_DECODE_SSE
);
}
else
if
(
strcasestr
(
buff
,
"avx2"
)
!=
NULL
)
{
decoding_setmode
(
MODE_DECODE_AVX2
);
}
else
if
(
strcasestr
(
buff
,
"stdc"
)
!=
NULL
)
{
decoding_setmode
(
MODE_DECODE_C
);
}
else
if
(
strcasestr
(
buff
,
"none"
)
!=
NULL
)
{
decoding_setmode
(
MODE_DECODE_NONE
);
}
else
{
prnt
(
"%s: wrong setmod parameter...
\n
"
,
buff
);
}
prnt
(
"Coding and decoding current mode: %s
\n
"
,
modedesc
[
curmode
]);
return
0
;
}
openair1/PHY/CODING/defs.h
View file @
33e81f1b
...
...
@@ -37,7 +37,7 @@
#define CRC8 3
#define MAX_TURBO_ITERATIONS_MBSFN 8
#define MAX_TURBO_ITERATIONS
4
#define MAX_TURBO_ITERATIONS
max_turbo_iterations
#define LTE_NULL 2
...
...
@@ -294,21 +294,7 @@ void ccodedot11_init_inv(void);
/*\fn void threegpplte_turbo_encoder(uint8_t *input,uint16_t input_length_bytes,uint8_t *output,uint8_t F,uint16_t interleaver_f1,uint16_t interleaver_f2)
\brief This function implements a rate 1/3 8-state parralel concatenated turbo code (3GPP-LTE).
@param input Pointer to input buffer
@param input_length_bytes Number of bytes to encode
@param output Pointer to output buffer
@param F Number of filler bits at input
@param interleaver_f1 F1 generator
@param interleaver_f2 F2 generator
*/
void
threegpplte_turbo_encoder
(
uint8_t
*
input
,
uint16_t
input_length_bytes
,
uint8_t
*
output
,
uint8_t
F
,
uint16_t
interleaver_f1
,
uint16_t
interleaver_f2
);
/** \fn void ccodelte_encode(int32_t numbits,uint8_t add_crc, uint8_t *inPtr,uint8_t *outPtr,uint16_t rnti)
...
...
@@ -440,95 +426,7 @@ int32_t rate_matching_lte(uint32_t N_coded,
uint32_t
off
);
/*!
\brief This routine performs max-logmap detection for the 3GPP turbo code (with termination). It is optimized for SIMD processing and 16-bit
LLR arithmetic, and requires SSE2,SSSE3 and SSE4.1 (gcc >=4.3 and appropriate CPU)
@param y LLR input (16-bit precision)
@param decoded_bytes Pointer to decoded output
@param n number of coded bits (including tail bits)
@param max_iterations The maximum number of iterations to perform
@param interleaver_f1 F1 generator
@param interleaver_f2 F2 generator
@param crc_type Length of 3GPPLTE crc (CRC24a,CRC24b,CRC16,CRC8)
@param F Number of filler bits at start of packet
@returns number of iterations used (this is 1+max if incorrect crc or if crc_len=0)
*/
uint8_t
phy_threegpplte_turbo_decoder16
(
int16_t
*
y
,
uint8_t
*
decoded_bytes
,
uint16_t
n
,
uint16_t
interleaver_f1
,
uint16_t
interleaver_f2
,
uint8_t
max_iterations
,
uint8_t
crc_type
,
uint8_t
F
,
time_stats_t
*
init_stats
,
time_stats_t
*
alpha_stats
,
time_stats_t
*
beta_stats
,
time_stats_t
*
gamma_stats
,
time_stats_t
*
ext_stats
,
time_stats_t
*
intl1_stats
,
time_stats_t
*
intl2_stats
);
uint8_t
phy_threegpplte_turbo_decoder16avx2
(
int16_t
*
y
,
int16_t
*
y2
,
uint8_t
*
decoded_bytes
,
uint8_t
*
decoded_bytes2
,
uint16_t
n
,
uint16_t
interleaver_f1
,
uint16_t
interleaver_f2
,
uint8_t
max_iterations
,
uint8_t
crc_type
,
uint8_t
F
,
time_stats_t
*
init_stats
,
time_stats_t
*
alpha_stats
,
time_stats_t
*
beta_stats
,
time_stats_t
*
gamma_stats
,
time_stats_t
*
ext_stats
,
time_stats_t
*
intl1_stats
,
time_stats_t
*
intl2_stats
);
/*!
\brief This routine performs max-logmap detection for the 3GPP turbo code (with termination). It is optimized for SIMD processing and 8-bit
LLR arithmetic, and requires SSE2,SSSE3 and SSE4.1 (gcc >=4.3 and appropriate CPU)
@param y LLR input (16-bit precision)
@param decoded_bytes Pointer to decoded output
@param n number of coded bits (including tail bits)
@param max_iterations The maximum number of iterations to perform
@param interleaver_f1 F1 generator
@param interleaver_f2 F2 generator
@param crc_type Length of 3GPPLTE crc (CRC24a,CRC24b,CRC16,CRC8)
@param F Number of filler bits at start of packet
@returns number of iterations used (this is 1+max if incorrect crc or if crc_len=0)
*/
uint8_t
phy_threegpplte_turbo_decoder8
(
int16_t
*
y
,
uint8_t
*
decoded_bytes
,
uint16_t
n
,
uint16_t
interleaver_f1
,
uint16_t
interleaver_f2
,
uint8_t
max_iterations
,
uint8_t
crc_type
,
uint8_t
F
,
time_stats_t
*
init_stats
,
time_stats_t
*
alpha_stats
,
time_stats_t
*
beta_stats
,
time_stats_t
*
gamma_stats
,
time_stats_t
*
ext_stats
,
time_stats_t
*
intl1_stats
,
time_stats_t
*
intl2_stats
);
uint8_t
phy_threegpplte_turbo_decoder_scalar
(
int16_t
*
y
,
uint8_t
*
decoded_bytes
,
uint16_t
n
,
uint16_t
interleaver_f1
,
uint16_t
interleaver_f2
,
uint8_t
max_iterations
,
uint8_t
crc_type
,
uint8_t
F
,
uint8_t
inst
);
/** @} */
uint32_t
crcbit
(
uint8_t
*
,
int32_t
,
...
...
openair1/PHY/INIT/init_top.c
View file @
33e81f1b
...
...
@@ -22,7 +22,7 @@
/*!\brief Initilization and reconfiguration routines for LTE PHY */
#include "defs.h"
#include "PHY/extern.h"
#include "PHY/CODING/extern.h"
void
init_lte_top
(
LTE_DL_FRAME_PARMS
*
frame_parms
)
{
...
...
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
View file @
33e81f1b
...
...
@@ -207,10 +207,8 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
((
ue
->
frame_parms
.
frame_type
==
TDD
)
&&
((
subframe
==
1
)
||
(
subframe
==
6
)))
)
{
// FDD PSS/SSS, compute noise in DTX REs
if
(
ue
->
frame_parms
.
Ncp
==
NORMAL
)
{
if
(
ue
->
frame_parms
.
Ncp
==
NORMAL
)
{
for
(
aarx
=
0
;
aarx
<
ue
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
{
if
(
ue
->
frame_parms
.
frame_type
==
FDD
)
{
rxF_sss
=
(
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
[
aarx
][(
5
*
ue
->
frame_parms
.
ofdm_symbol_size
)];
...
...
@@ -266,7 +264,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
ue
->
measurements
.
n0_power_tot_dB
=
(
unsigned
short
)
dB_fixed
(
ue
->
measurements
.
n0_power_tot
/
(
12
*
aarx
));
ue
->
measurements
.
n0_power_tot_dBm
=
ue
->
measurements
.
n0_power_tot_dB
-
ue
->
rx_total_gain_dB
-
dB_fixed
(
ue
->
frame_parms
.
ofdm_symbol_size
);
}
else
{
LOG_E
(
PHY
,
"Not yet implemented: noise power calculation when prefix length = EXTENDED
\n
"
);
LOG_E
(
PHY
,
"Not yet implemented: noise power calculation when prefix length =
=
EXTENDED
\n
"
);
}
}
else
if
((
ue
->
frame_parms
.
frame_type
==
TDD
)
&&
...
...
openair1/PHY/extern.h
View file @
33e81f1b
...
...
@@ -126,6 +126,6 @@ extern unsigned short Nb_81_110[8][4];
extern
uint16_t
hundred_times_log10_NPRB
[
100
];
extern
uint8_t
alpha_lut
[
8
];
extern
uint8_t
max_turbo_iterations
;
#endif
/*__PHY_EXTERN_H__ */
openair1/PHY/vars.h
View file @
33e81f1b
...
...
@@ -149,5 +149,5 @@ int16_t unscrambling_lut[65536*16] __attribute__((aligned(32)));
/// lookup table for scrambling in TX
uint8_t
scrambling_lut
[
65536
*
16
]
__attribute__
((
aligned
(
32
)));
uint8_t
max_turbo_iterations
=
4
;
#endif
/*__PHY_VARS_H__ */
openair2/RRC/LITE/L2_interface_ue.c
View file @
33e81f1b
...
...
@@ -65,6 +65,7 @@ mac_rrc_data_req_ue(
)
//--------------------------------------------------------------------------
{
#ifdef DEBUG_RRC
int
i
;
LOG_I
(
RRC
,
"[eNB %d] mac_rrc_data_req to SRB ID=%d
\n
"
,
Mod_idP
,
Srb_id
);
...
...
openair2/RRC/LITE/rrc_UE.c
View file @
33e81f1b
...
...
@@ -242,6 +242,7 @@ openair_rrc_on_ue(
{
unsigned
short
i
;
LOG_I
(
RRC
,
PROTOCOL_RRC_CTXT_FMT
" UE?:OPENAIR RRC IN....
\n
"
,
PROTOCOL_RRC_CTXT_ARGS
(
ctxt_pP
));
...
...
@@ -4841,7 +4842,6 @@ rrc_rx_tx_ue(
)
//-----------------------------------------------------------------------------
{
//uint8_t UE_id;
#ifdef LOCALIZATION
double
estimated_distance
;
...
...
targets/RT/USER/lte-softmodem.c
View file @
33e81f1b
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-softmodem.h
View file @
33e81f1b
...
...
@@ -129,10 +129,10 @@
{"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \
{"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \
{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:90, TYPE_INT, 0}, \
{"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:
0,
TYPE_UINT8, 0}, \
{"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:
25,
TYPE_UINT8, 0}, \
}
#define DEFAULT_DLF 2680000000
extern
int16_t
dlsch_demod_shift
;
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* command line parameters common to eNodeB and UE */
...
...
@@ -155,12 +155,11 @@ extern int16_t dlsch_demod_shift;
{"threadSlot1ProcTwo", NULL, 0, iptr:&(threads.slot1_proc_two), defintval:1, TYPE_INT, 0}, \
{"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \
{"A" , CONFIG_HLP_TADV, 0, uptr:&timing_advance, defintval:0, TYPE_UINT, 0}, \
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:
2680000000
, TYPE_UINT, 0}, \
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:
DEFAULT_DLF
, TYPE_UINT, 0}, \
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, i8ptr:&threequarter_fs, defintval:0, TYPE_INT8, 0}, \
{"K" , CONFIG_HLP_ITTIL, PARAMFLAG_NOFREE, strptr:&itti_dump_file, defstrval:"/tmp/itti.dump", TYPE_STRING, 0}, \
{"U" , CONFIG_HLP_UE, PARAMFLAG_BOOL, i8ptr:&UE_flag, defintval:0, TYPE_INT8, 0}, \
{"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \
{"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \
{"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \
...
...
targets/RT/USER/lte-uesoftmodem.c
0 → 100644
View file @
33e81f1b
This diff is collapsed.
Click to expand it.
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