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
487ef8c2
Commit
487ef8c2
authored
Dec 01, 2017
by
Cedric Roux
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'florian.kaltenberger/openairinterface5g-fix_ue' into develop
parents
4d4ffac4
87535679
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
151 additions
and
99 deletions
+151
-99
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+2
-1
common/config/config_cmdline.c
common/config/config_cmdline.c
+6
-3
common/config/config_load_configmodule.c
common/config/config_load_configmodule.c
+5
-4
common/config/config_load_configmodule.h
common/config/config_load_configmodule.h
+1
-0
common/config/config_userapi.c
common/config/config_userapi.c
+9
-1
common/config/config_userapi.h
common/config/config_userapi.h
+4
-0
common/config/libconfig/config_libconfig.c
common/config/libconfig/config_libconfig.c
+20
-9
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+3
-4
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+3
-1
openair2/RRC/LITE/L2_interface.c
openair2/RRC/LITE/L2_interface.c
+4
-1
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+5
-5
openair2/UTIL/LOG/log.h
openair2/UTIL/LOG/log.h
+2
-2
targets/DOCS/oai_L1_L2_procedures.pdf
targets/DOCS/oai_L1_L2_procedures.pdf
+0
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf
+17
-0
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+63
-65
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-softmodem.h
+2
-2
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+1
-0
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+4
-1
No files found.
cmake_targets/CMakeLists.txt
View file @
487ef8c2
...
...
@@ -1804,6 +1804,7 @@ add_executable(lte-softmodem-nos1
${
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
...
...
@@ -1934,7 +1935,7 @@ add_executable(oaisim_nos1
${
x2ap_h
}
${
OPENAIR_BIN_DIR
}
/messages_xml.h
${
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/rt_wrapper.c
${
OPENAIR_TARGETS
}
/SIMU/USER/channel_sim.c
${
OPENAIR_TARGETS
}
/SIMU/USER/init_lte.c
...
...
common/config/config_cmdline.c
View file @
487ef8c2
...
...
@@ -52,9 +52,12 @@ char defbool[2]="1";
switch
(
cfgoptions
->
type
)
{
case
TYPE_STRING
:
config_check_valptr
(
cfgoptions
,
(
char
**
)(
cfgoptions
->
strptr
),
sizeof
(
char
*
));
config_check_valptr
(
cfgoptions
,
cfgoptions
->
strptr
,
strlen
(
tmpval
+
1
));
sprintf
(
*
(
cfgoptions
->
strptr
),
"%s"
,
tmpval
);
if
(
cfgoptions
->
numelt
==
0
)
{
config_check_valptr
(
cfgoptions
,
cfgoptions
->
strptr
,
strlen
(
tmpval
)
+
1
);
sprintf
(
*
(
cfgoptions
->
strptr
),
"%s"
,
tmpval
);
}
else
{
sprintf
(
(
char
*
)(
cfgoptions
->
strptr
),
"%s"
,
tmpval
);
}
printf_cmdl
(
"[CONFIG] %s set to %s from command line
\n
"
,
cfgoptions
->
optname
,
tmpval
);
optisset
=
1
;
break
;
...
...
common/config/config_load_configmodule.c
View file @
487ef8c2
...
...
@@ -129,20 +129,21 @@ int i;
/* default */
if
(
cfgparam
==
NULL
)
{
cfgparam
=
"libconfig:oaisoftmodem.conf"
;
tmpflags
=
tmpflags
|
CONFIG_NOOOPT
;
cfgparam
=
DEFAULT_CFGMODE
":"
DEFAULT_CFGFILENAME
;
}
/* parse the config parameters to set the config source */
i
=
sscanf
(
cfgparam
,
"%m[^':']:%ms"
,
&
cfgmode
,
&
modeparams
);
if
(
i
<
0
)
{
fprintf
(
stderr
,
"[CONFIG] %s, %d, sscanf error parsing config source %s: %s
\n
"
,
__FILE__
,
__LINE__
,
cfgparam
,
strerror
(
errno
));
cfgmode
=
strdup
(
"libconfig"
);
modeparams
=
strdup
(
"oaisoftmodem.conf"
);
cfgmode
=
strdup
(
DEFAULT_CFGMODE
);
modeparams
=
strdup
(
DEFAULT_CFGFILENAME
);
}
else
if
(
i
==
1
)
{
/* -O argument doesn't contain ":" separator, assume -O <conf file> option, default cfgmode to libconfig
with one parameter, the path to the configuration file */
modeparams
=
cfgmode
;
cfgmode
=
strdup
(
"libconfig"
);
cfgmode
=
strdup
(
DEFAULT_CFGMODE
);
}
cfgptr
=
malloc
(
sizeof
(
configmodule_interface_t
));
...
...
common/config/config_load_configmodule.h
View file @
487ef8c2
...
...
@@ -46,6 +46,7 @@
#define CONFIG_DEBUGCMDLINE 4 // print command line processing messages
#define CONFIG_HELP 8 // print help message
#define CONFIG_ABORT 16 // config failed,abort execution
#define CONFIG_NOOOPT 32 // no -O option found when parsing command line
typedef
int
(
*
configmodule_initfunc_t
)(
char
*
cfgP
[],
int
numP
);
...
...
common/config/config_userapi.c
View file @
487ef8c2
...
...
@@ -50,7 +50,11 @@ configmodule_interface_t *config_get_if(void)
char
*
config_check_valptr
(
paramdef_t
*
cfgoptions
,
char
**
ptr
,
int
length
)
{
printf_ptrs
(
"-- %s 0x%08lx %i
\n
"
,
cfgoptions
->
optname
,(
uintptr_t
)(
*
ptr
),
length
);
printf_ptrs
(
"[CONFIG] %s ptr: 0x%08lx requested size: %i
\n
"
,
cfgoptions
->
optname
,(
uintptr_t
)(
ptr
),
length
);
if
(
cfgoptions
->
numelt
>
0
)
{
/* already allocated */
return
*
ptr
;
}
if
(
*
ptr
==
NULL
)
{
*
ptr
=
malloc
(
length
);
if
(
*
ptr
!=
NULL
)
{
...
...
@@ -147,3 +151,7 @@ int config_isparamset(paramdef_t *params,int paramidx)
return
0
;
}
}
int
config_getparamval_fromparamdefidx
(
paramdef_t
*
cfgoptions
,
int
paramidx
)
{
}
common/config/config_userapi.h
View file @
487ef8c2
...
...
@@ -38,6 +38,9 @@
extern
"C"
{
#endif
#define DEFAULT_CFGFILENAME "oaisoftmodem.conf"
#define DEFAULT_CFGMODE "libconfig"
#define CONFIG_GETSOURCE ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgmode )
#define CONFIG_GETNUMP ( (config_get_if()==NULL) ? 0 : config_get_if()->num_cfgP )
#define CONFIG_GETP(P) ( (config_get_if()==NULL) ? NULL : config_get_if()->cfgP[P] )
...
...
@@ -51,6 +54,7 @@ extern int config_get(paramdef_t *params,int numparams, char *prefix);
extern
int
config_isparamset
(
paramdef_t
*
params
,
int
paramidx
);
extern
void
config_assign_int
(
paramdef_t
*
cfgoptions
,
char
*
fullname
,
int
val
);
extern
int
config_process_cmdline
(
paramdef_t
*
cfgoptions
,
int
numoptions
,
char
*
prefix
);
extern
int
config_getparamval_fromparamdefidx
(
paramdef_t
*
cfgoptions
,
int
paramidx
);
#define config_getlist config_get_if()->getlist
#define CONFIG_GETCONFFILE (config_get_if()->cfgP[0])
...
...
common/config/libconfig/config_libconfig.c
View file @
487ef8c2
...
...
@@ -104,17 +104,28 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
cfgpath
,
str
,
cfgoptions
[
i
].
numelt
);
str
[
strlen
(
str
)
-
1
]
=
0
;
}
config_check_valptr
(
&
(
cfgoptions
[
i
]),
(
char
**
)(
&
(
cfgoptions
[
i
].
strptr
)),
sizeof
(
char
*
));
config_check_valptr
(
&
(
cfgoptions
[
i
]),
cfgoptions
[
i
].
strptr
,
strlen
(
str
)
+
1
);
sprintf
(
*
(
cfgoptions
[
i
].
strptr
)
,
"%s"
,
str
);
printf_params
(
"[LIBCONFIG] %s: %s
\n
"
,
cfgpath
,
*
(
cfgoptions
[
i
].
strptr
)
);
if
(
cfgoptions
[
i
].
numelt
==
0
)
{
config_check_valptr
(
&
(
cfgoptions
[
i
]),
(
char
**
)(
&
(
cfgoptions
[
i
].
strptr
)),
sizeof
(
char
*
));
config_check_valptr
(
&
(
cfgoptions
[
i
]),
cfgoptions
[
i
].
strptr
,
strlen
(
str
)
+
1
);
sprintf
(
*
(
cfgoptions
[
i
].
strptr
)
,
"%s"
,
str
);
printf_params
(
"[LIBCONFIG] %s: %s
\n
"
,
cfgpath
,
*
(
cfgoptions
[
i
].
strptr
)
);
}
else
{
sprintf
(
(
char
*
)(
cfgoptions
[
i
].
strptr
)
,
"%s"
,
str
);
printf_params
(
"[LIBCONFIG] %s: %s
\n
"
,
cfgpath
,(
char
*
)
cfgoptions
[
i
].
strptr
);
}
}
else
{
if
(
cfgoptions
[
i
].
defstrval
!=
NULL
)
{
defval
=
1
;
config_check_valptr
(
&
(
cfgoptions
[
i
]),
(
char
**
)(
&
(
cfgoptions
[
i
].
strptr
)),
sizeof
(
char
*
));
config_check_valptr
(
&
(
cfgoptions
[
i
]),
cfgoptions
[
i
].
strptr
,
strlen
(
cfgoptions
[
i
].
defstrval
)
+
1
);
sprintf
(
*
(
cfgoptions
[
i
].
strptr
),
"%s"
,
cfgoptions
[
i
].
defstrval
);
printf_params
(
"[LIBCONFIG] %s set to default value %s
\n
"
,
cfgpath
,
*
(
cfgoptions
[
i
].
strptr
));
if
(
cfgoptions
[
i
].
numelt
==
0
)
{
config_check_valptr
(
&
(
cfgoptions
[
i
]),
(
char
**
)(
&
(
cfgoptions
[
i
].
strptr
)),
sizeof
(
char
*
));
config_check_valptr
(
&
(
cfgoptions
[
i
]),
cfgoptions
[
i
].
strptr
,
strlen
(
cfgoptions
[
i
].
defstrval
)
+
1
);
sprintf
(
*
(
cfgoptions
[
i
].
strptr
),
"%s"
,
cfgoptions
[
i
].
defstrval
);
printf_params
(
"[LIBCONFIG] %s set to default value %s
\n
"
,
cfgpath
,
*
(
cfgoptions
[
i
].
strptr
));
}
else
{
sprintf
((
char
*
)(
cfgoptions
[
i
].
strptr
),
"%s"
,
cfgoptions
[
i
].
defstrval
);
printf_params
(
"[LIBCONFIG] %s set to default value %s
\n
"
,
cfgpath
,
(
char
*
)
cfgoptions
[
i
].
strptr
);
}
}
else
{
notfound
=
1
;
}
...
...
@@ -183,7 +194,7 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
read_intarray
(
&
cfgoptions
[
i
],
setting
,
cfgpath
);
}
else
{
if
(
cfgoptions
[
i
].
defintarrayval
!=
NULL
)
{
config_check_valptr
(
&
(
cfgoptions
[
i
]),(
char
**
)
&
(
cfgoptions
[
i
].
iptr
),
sizeof
(
int32_t
));
config_check_valptr
(
&
(
cfgoptions
[
i
]),(
char
**
)
&
(
cfgoptions
[
i
].
iptr
),
sizeof
(
int32_t
*
));
cfgoptions
[
i
].
iptr
=
cfgoptions
[
i
].
defintarrayval
;
defval
=
1
;
for
(
int
j
=
0
;
j
<
cfgoptions
[
i
].
numelt
;
j
++
)
{
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
487ef8c2
...
...
@@ -2939,12 +2939,12 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
//dump_dci(&ue->frame_parms, &dci_alloc_rx[i]);
ue
->
UE_mode
[
eNB_id
]
=
PUSCH
;
}
else
{
}
}
else
{
LOG_E
(
PHY
,
"[UE %d] Frame %d, subframe %d: Problem in DCI!
\n
"
,
ue
->
Mod_id
,
frame_rx
,
subframe_rx
);
dump_dci
(
&
ue
->
frame_parms
,
&
dci_alloc_rx
[
i
]);
}
}
}
else
if
((
dci_alloc_rx
[
i
].
rnti
==
SI_RNTI
)
&&
((
dci_alloc_rx
[
i
].
format
==
format1A
)
||
(
dci_alloc_rx
[
i
].
format
==
format1C
)))
{
...
...
@@ -2977,7 +2977,6 @@ int ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint
}
}
}
else
if
((
dci_alloc_rx
[
i
].
rnti
==
P_RNTI
)
&&
((
dci_alloc_rx
[
i
].
format
==
format1A
)
||
(
dci_alloc_rx
[
i
].
format
==
format1C
)))
{
...
...
openair2/ENB_APP/enb_config.c
View file @
487ef8c2
...
...
@@ -2592,7 +2592,9 @@ void RCConfig(void) {
/* get global parameters, defined outside any section in the config file */
printf
(
"Getting ENBSParams
\n
"
);
config_get
(
ENBSParams
,
sizeof
(
ENBSParams
)
/
sizeof
(
paramdef_t
),
NULL
);
RC
.
nb_inst
=
ENBSParams
[
ENB_ACTIVE_ENBS_IDX
].
numelt
;
...
...
openair2/RRC/LITE/L2_interface.c
View file @
487ef8c2
...
...
@@ -807,7 +807,10 @@ mac_UE_get_rrc_status(
)
//------------------------------------------------------------------------------
{
return
(
UE_rrc_inst
[
Mod_idP
].
Info
[
indexP
].
State
);
if
(
UE_rrc_inst
)
return
(
UE_rrc_inst
[
Mod_idP
].
Info
[
indexP
].
State
);
else
return
(
-
1
);
}
//-------------------------------------------------------------------------------------------//
...
...
openair2/RRC/LITE/rrc_eNB.c
View file @
487ef8c2
...
...
@@ -627,12 +627,12 @@ void rrc_eNB_emulation_notify_ue_module_id(
return
;
}
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
RC
.
rrc
[
enb_module_id
].
carrier
[
CC_id
].
sib1
!=
NULL
)
{
if
(
&
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
!=
NULL
)
{
if
(
(
RC
.
rrc
[
enb_module_id
].
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
0
]
==
cell_identity_byte0P
)
&&
(
RC
.
rrc
[
enb_module_id
].
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
1
]
==
cell_identity_byte1P
)
&&
(
RC
.
rrc
[
enb_module_id
].
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
2
]
==
cell_identity_byte2P
)
&&
(
RC
.
rrc
[
enb_module_id
].
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
3
]
==
cell_identity_byte3P
)
(
&
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
0
]
==
cell_identity_byte0P
)
&&
(
&
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
1
]
==
cell_identity_byte1P
)
&&
(
&
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
2
]
==
cell_identity_byte2P
)
&&
(
&
RC
.
rrc
[
enb_module_id
]
->
carrier
[
CC_id
].
sib1
->
cellAccessRelatedInfo
.
cellIdentity
.
buf
[
3
]
==
cell_identity_byte3P
)
)
{
ue_context_p
=
rrc_eNB_get_ue_context
(
RC
.
rrc
[
enb_module_id
],
...
...
openair2/UTIL/LOG/log.h
View file @
487ef8c2
...
...
@@ -314,8 +314,8 @@ void *log_thread_function(void * list);
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define LOG_GLOBALPARAMS_DESC { \
{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, NULL, 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING,
sizeof(gloglevel)
}, \
{LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,NULL, 0, strptr:(char **)&glogverbo, defstrval:log_verbosity_names[2].name, TYPE_STRING,
sizeof(glogverbo)
}, \
{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, NULL, 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING,
0
}, \
{LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,NULL, 0, strptr:(char **)&glogverbo, defstrval:log_verbosity_names[2].name, TYPE_STRING,
0
}, \
{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, NULL, 0, iptr:&(g_log->onlinelog), defintval:1, TYPE_INT, 0, }, \
{LOG_CONFIG_STRING_GLOBAL_LOG_INFILE, NULL, 0, iptr:&(g_log->filelog), defintval:0, TYPE_INT, 0, }, \
}
...
...
targets/DOCS/oai_L1_L2_procedures.pdf
View file @
487ef8c2
No preview for this file type
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf
View file @
487ef8c2
...
...
@@ -17,3 +17,20 @@ RUs = (
}
);
log_config
= {
global_log_level
=
"debug"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"debug"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"debug"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
targets/RT/USER/lte-softmodem.c
View file @
487ef8c2
...
...
@@ -227,6 +227,9 @@ threads_t threads= {-1,-1,-1,-1,-1,-1,-1};
*/
uint8_t
abstraction_flag
=
0
;
/* forward declarations */
void
set_default_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
]);
/*---------------------BMC: timespec helpers -----------------------------*/
struct
timespec
min_diff_time
=
{
.
tv_sec
=
0
,
.
tv_nsec
=
0
};
...
...
@@ -593,10 +596,11 @@ static void get_options(void) {
if
(
UE_flag
>
0
)
{
uint8_t
n_rb_dl
;
paramdef_t
cmdline_uemodeparams
[]
=
CMDLINE_UEMODEPARAMS_DESC
;
paramdef_t
cmdline_ueparams
[]
=
CMDLINE_UEPARAMS_DESC
;
set_default_frame_parms
(
frame_parms
);
config_process_cmdline
(
cmdline_uemodeparams
,
sizeof
(
cmdline_uemodeparams
)
/
sizeof
(
paramdef_t
),
NULL
);
config_process_cmdline
(
cmdline_ueparams
,
sizeof
(
cmdline_ueparams
)
/
sizeof
(
paramdef_t
),
NULL
);
...
...
@@ -606,22 +610,21 @@ static void get_options(void) {
input_fd
=
fopen
(
loopfile
,
"r"
);
AssertFatal
(
input_fd
!=
NULL
,
"Please provide a valid input file
\n
"
);
}
if
(
(
cmdline_uemodeparams
[
CMDLINE_CALIBUERX_IDX
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
mode
=
rx_calib_ue
;
if
(
(
cmdline_uemodeparams
[
CMDLINE_CALIBUERXMED_IDX
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
mode
=
rx_calib_ue_med
;
if
(
(
cmdline_uemodeparams
[
CMDLINE_CALIBUERXBYP_IDX
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
mode
=
rx_calib_ue_byp
;
if
(
*
(
cmdline_uemodeparams
[
CMDLINE_DEBUGUEPRACH_IDX
].
uptr
)
>
0
)
mode
=
debug_prach
;
if
(
*
(
cmdline_uemodeparams
[
CMDLINE_NOL2CONNECT_IDX
].
uptr
)
>
0
)
mode
=
no_L2_connect
;
if
(
*
(
cmdline_uemodeparams
[
CMDLINE_CALIBPRACHTX_IDX
].
uptr
)
>
0
)
mode
=
calib_prach_tx
;
if
(
(
cmdline_uemodeparams
[
CMDLINE_DEBUGUEPRACH_IDX
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
mode
=
debug_prach
;
if
(
(
cmdline_uemodeparams
[
CMDLINE_NOL2CONNECT_IDX
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
mode
=
no_L2_connect
;
if
(
(
cmdline_uemodeparams
[
CMDLINE_CALIBPRACHTX_IDX
].
paramflags
&
PARAMFLAG_PARAMSET
)
!=
0
)
mode
=
calib_prach_tx
;
if
(
dumpframe
>
0
)
mode
=
rx_dump_frame
;
if
(
downlink_frequency
[
0
][
0
]
>
0
)
{
for
(
CC_id
=
1
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
downlink_frequency
[
CC_id
][
1
]
=
downlink_frequency
[
0
][
0
];
downlink_frequency
[
CC_id
][
2
]
=
downlink_frequency
[
0
][
0
];
downlink_frequency
[
CC_id
][
3
]
=
downlink_frequency
[
0
][
0
];
printf
(
"Downlink for CC_id %d frequency set to %u
\n
"
,
CC_id
,
downlink_frequency
[
CC_id
][
0
]);
}
UE_scan
=
0
;
printf
(
"Downlink frequency set to %u
\n
"
,
downlink_frequency
[
0
][
0
]);
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
frame_parms
[
CC_id
]
->
dl_CarrierFreq
=
downlink_frequency
[
0
][
0
];
}
UE_scan
=
0
;
}
if
(
tddflag
>
0
)
{
...
...
@@ -629,38 +632,38 @@ static void get_options(void) {
frame_parms
[
CC_id
]
->
frame_type
=
TDD
;
}
if
(
frame_parms
[
0
]
->
N_RB_DL
!=
0
)
{
if
(
frame_parms
[
0
]
->
N_RB_DL
<
6
)
{
frame_parms
[
0
]
->
N_RB_DL
=
6
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 6
\n
"
,
frame_parms
[
0
]
->
N_RB_DL
)
;
}
if
(
frame_parms
[
0
]
->
N_RB_DL
>
100
)
{
frame_parms
[
0
]
->
N_RB_DL
=
100
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 100
\n
"
,
frame_parms
[
0
]
->
N_RB_DL
)
;
}
if
(
frame_parms
[
0
]
->
N_RB_DL
>
50
&&
frame_parms
[
0
]
->
N_RB_DL
<
100
)
{
frame_parms
[
0
]
->
N_RB_DL
=
50
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 50
\n
"
,
frame_parms
[
0
]
->
N_RB_DL
)
;
}
if
(
frame_parms
[
0
]
->
N_RB_DL
>
25
&&
frame_parms
[
0
]
->
N_RB_DL
<
50
)
{
frame_parms
[
0
]
->
N_RB_DL
=
25
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 25
\n
"
,
frame_parms
[
0
]
->
N_RB_DL
)
;
}
UE_scan
=
0
;
frame_parms
[
0
]
->
N_RB_UL
=
frame_parms
[
0
]
->
N_RB_DL
;
for
(
CC_id
=
1
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
frame_parms
[
CC_id
]
->
N_RB_DL
=
frame_parms
[
0
]
->
N_RB_DL
;
frame_parms
[
CC_id
]
->
N_RB_UL
=
frame_parms
[
0
]
->
N_RB_UL
;
}
if
(
n_rb_dl
!=
0
)
{
printf
(
"NB_RB set to %d
\n
"
,
n_rb_dl
);
if
(
n_rb_dl
<
6
)
{
n_rb_dl
=
6
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 6
\n
"
,
n_rb_dl
);
}
if
(
n_rb_dl
>
100
)
{
n_rb_dl
=
100
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 100
\n
"
,
n_rb_dl
);
}
if
(
n_rb_dl
>
50
&&
n_rb_dl
<
100
)
{
n_rb_dl
=
50
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 50
\n
"
,
n_rb_dl
);
}
if
(
n_rb_dl
>
25
&&
n_rb_dl
<
50
)
{
n_rb_dl
=
25
;
printf
(
"%i: Invalid number of ressource blocks, adjusted to 25
\n
"
,
n_rb_dl
);
}
UE_scan
=
0
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
frame_parms
[
CC_id
]
->
N_RB_DL
=
n_rb_dl
;
frame_parms
[
CC_id
]
->
N_RB_UL
=
n_rb_dl
;
}
}
for
(
CC_id
=
1
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
tx_max_power
[
CC_id
]
=
tx_max_power
[
0
];
rx_gain
[
0
][
CC_id
]
=
rx_gain
[
0
][
0
];
tx_gain
[
0
][
CC_id
]
=
tx_gain
[
0
][
0
];
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
tx_max_power
[
CC_id
]
=
tx_max_power
[
0
];
rx_gain
[
0
][
CC_id
]
=
rx_gain
[
0
][
0
];
tx_gain
[
0
][
CC_id
]
=
tx_gain
[
0
][
0
];
}
}
/* UE_flag > 0 */
#if T_TRACER
paramdef_t
cmdline_ttraceparams
[]
=
CMDLINE_TTRACEPARAMS_DESC
;
config_process_cmdline
(
cmdline_ttraceparams
,
sizeof
(
cmdline_ttraceparams
)
/
sizeof
(
paramdef_t
),
NULL
);
...
...
@@ -675,10 +678,11 @@ static void get_options(void) {
NB_RU
=
RC
.
nb_RU
;
printf
(
"Configuration: nb_rrc_inst %d, nb_L1_inst %d, nb_ru %d
\n
"
,
NB_eNB_INST
,
RC
.
nb_L1_inst
,
NB_RU
);
}
}
else
if
(
UE_flag
==
1
&&
(
CONFIG_GETCONFFILE
!=
NULL
)
)
{
}
else
if
(
UE_flag
==
1
&&
(
!
(
CONFIG_ISFLAGSET
(
CONFIG_NOOOPT
)))
)
{
// Here the configuration file is the XER encoded UE capabilities
// Read it in and store in asn1c data structures
strcpy
(
uecap_xer
,
CONFIG_GETCONFFILE
);
sprintf
(
uecap_xer
,
"%stargets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml"
,
getenv
(
"OPENAIR_HOME"
));
printf
(
"%s
\n
"
,
uecap_xer
);
uecap_xer_in
=
1
;
}
/* UE with config file */
}
...
...
@@ -691,7 +695,7 @@ int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */
#endif
void
set_default_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
]);
void
set_default_frame_parms
(
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
])
{
int
CC_id
;
...
...
@@ -728,11 +732,12 @@ void set_default_frame_parms(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) {
frame_parms
[
CC_id
]
->
prach_config_common
.
prach_ConfigInfo
.
highSpeedFlag
=
0
;
frame_parms
[
CC_id
]
->
prach_config_common
.
prach_ConfigInfo
.
prach_FreqOffset
=
0
;
downlink_frequency
[
CC_id
][
0
]
=
2680000000
;
// Use float to avoid issue with frequency over 2^31.
downlink_frequency
[
CC_id
][
1
]
=
downlink_frequency
[
CC_id
][
0
];
downlink_frequency
[
CC_id
][
2
]
=
downlink_frequency
[
CC_id
][
0
];
downlink_frequency
[
CC_id
][
3
]
=
downlink_frequency
[
CC_id
][
0
];
//
downlink_frequency[CC_id][0] = 2680000000; // Use float to avoid issue with frequency over 2^31.
//
downlink_frequency[CC_id][1] = downlink_frequency[CC_id][0];
//
downlink_frequency[CC_id][2] = downlink_frequency[CC_id][0];
//
downlink_frequency[CC_id][3] = downlink_frequency[CC_id][0];
//printf("Downlink for CC_id %d frequency set to %u\n", CC_id, downlink_frequency[CC_id][0]);
frame_parms
[
CC_id
]
->
dl_CarrierFreq
=
downlink_frequency
[
CC_id
][
0
];
}
...
...
@@ -905,14 +910,14 @@ int main( int argc, char **argv )
// set default parameters
if
(
UE_flag
==
1
)
set_default_frame_parms
(
frame_parms
);
//
if (UE_flag == 1) set_default_frame_parms(frame_parms);
logInit
();
printf
(
"Reading in command-line options
\n
"
);
get_options
();
if
(
CONFIG_ISFLAGSET
(
CONFIG_ABORT
))
{
if
(
CONFIG_ISFLAGSET
(
CONFIG_ABORT
)
&&
UE_flag
==
0
)
{
fprintf
(
stderr
,
"Getting configuration failed
\n
"
);
exit
(
-
1
);
}
...
...
@@ -931,7 +936,7 @@ int main( int argc, char **argv )
printf
(
"configuring for UE
\n
"
);
set_comp_log
(
HW
,
LOG_DEBUG
,
LOG_HIGH
,
1
);
set_comp_log
(
PHY
,
LOG_
DEBUG
,
LOG_HIGH
,
1
);
set_comp_log
(
PHY
,
LOG_
INFO
,
LOG_HIGH
,
1
);
set_comp_log
(
MAC
,
LOG_INFO
,
LOG_HIGH
,
1
);
set_comp_log
(
RLC
,
LOG_INFO
,
LOG_HIGH
|
FLAG_THREAD
,
1
);
set_comp_log
(
PDCP
,
LOG_INFO
,
LOG_HIGH
,
1
);
...
...
@@ -1080,8 +1085,9 @@ int main( int argc, char **argv )
else
if
(
frame_parms
[
CC_id
]
->
N_RB_DL
==
25
)
UE
[
CC_id
]
->
N_TA_offset
=
624
/
4
;
}
init_openair0
();
}
}
fill_modeled_runtime_table
(
runtime_phy_rx
,
runtime_phy_tx
);
...
...
@@ -1130,8 +1136,6 @@ int main( int argc, char **argv )
#if defined(ENABLE_ITTI)
if
((
UE_flag
==
1
)
||
(
RC
.
nb_inst
>
0
))
{
...
...
@@ -1149,16 +1153,6 @@ int main( int argc, char **argv )
}
#endif
if
(
phy_test
==
0
)
{
if
(
UE_flag
==
1
)
{
printf
(
"Filling UE band info
\n
"
);
fill_ue_band_info
();
dl_phy_sync_success
(
0
,
0
,
0
,
1
);
}
}
mlockall
(
MCL_CURRENT
|
MCL_FUTURE
);
...
...
@@ -1225,14 +1219,18 @@ int main( int argc, char **argv )
rt_sleep_ns
(
10
*
100000000ULL
);
// start the main threads
if
(
UE_flag
==
1
)
{
int
eMBMS_active
=
0
;
init_UE
(
1
,
eMBMS_active
,
uecap_xer_in
);
if
(
phy_test
==
0
)
{
printf
(
"Filling UE band info
\n
"
);
fill_ue_band_info
();
dl_phy_sync_success
(
0
,
0
,
0
,
1
);
}
number_of_cards
=
1
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
PHY_vars_UE_g
[
0
][
CC_id
]
->
rf_map
.
card
=
0
;
PHY_vars_UE_g
[
0
][
CC_id
]
->
rf_map
.
chain
=
CC_id
+
chain_offset
;
...
...
targets/RT/USER/lte-softmodem.h
View file @
487ef8c2
...
...
@@ -65,7 +65,7 @@
#define CONFIG_HLP_NOSNGLT "Disables single-thread mode in lte-softmodem\n"
#define CONFIG_HLP_TADV "Set timing_advance\n"
#define CONFIG_HLP_DLF "Set the downlink frequency for all component carriers\n"
#define CONFIG_HLP_CHOFF "Channel id offset"
#define CONFIG_HLP_CHOFF "Channel id offset
\n
"
#define CONFIG_HLP_SOFTS "Enable soft scope and L1 and L2 stats (Xforms)\n"
#define CONFIG_HLP_EXMCAL "Calibrate the EXMIMO borad, available files: exmimo2_2arxg.lime exmimo2_2brxg.lime \n"
#define CONFIG_HLP_ITTIL "Generate ITTI analyzser logs (similar to wireshark logs but with more details)\n"
...
...
@@ -127,7 +127,7 @@
{"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:&
n_rb_dl,
defintval:0, TYPE_UINT8, 0}, \
}
...
...
targets/RT/USER/lte-ue.c
View file @
487ef8c2
...
...
@@ -303,6 +303,7 @@ static void *UE_thread_synch(void *arg)
}
while
(
ind
<
sizeof
(
eutra_bands
)
/
sizeof
(
eutra_bands
[
0
]));
if
(
found
==
0
)
{
LOG_E
(
PHY
,
"Can't find EUTRA band for frequency %d"
,
UE
->
frame_parms
.
dl_CarrierFreq
);
exit_fun
(
"Can't find EUTRA band for frequency"
);
return
&
UE_thread_synch_retval
;
}
...
...
targets/SIMU/USER/oaisim_functions.c
View file @
487ef8c2
...
...
@@ -782,7 +782,10 @@ void get_simulation_options(int argc, char *argv[])
}
}
if
(
load_configmodule
(
argc
,
argv
)
==
NULL
)
{
exit_fun
(
"[SOFTMODEM] Error, configuration module init failed
\n
"
);
}
if
(
RC
.
config_file_name
!=
NULL
)
{
/* Read eNB configuration file */
RCConfig
();
...
...
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