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
8d90eda6
Commit
8d90eda6
authored
Mar 14, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug fix after merge
parent
b2cc1252
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
15 additions
and
15 deletions
+15
-15
common/config/libconfig/config_libconfig.c
common/config/libconfig/config_libconfig.c
+1
-0
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+2
-2
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+10
-11
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+2
-2
No files found.
common/config/libconfig/config_libconfig.c
View file @
8d90eda6
...
@@ -130,6 +130,7 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
...
@@ -130,6 +130,7 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
{
{
case
TYPE_STRING
:
case
TYPE_STRING
:
printf
(
"call config_lookup_string for '%s' %p
\n
"
,
cfgpath
,
&
(
libconfig_privdata
.
cfg
));
fflush
(
stdout
);
if
(
config_lookup_string
(
&
(
libconfig_privdata
.
cfg
),
cfgpath
,
(
const
char
**
)
&
str
))
{
if
(
config_lookup_string
(
&
(
libconfig_privdata
.
cfg
),
cfgpath
,
(
const
char
**
)
&
str
))
{
if
(
cfgoptions
[
i
].
numelt
>
0
&&
str
!=
NULL
&&
strlen
(
str
)
>=
cfgoptions
[
i
].
numelt
)
{
if
(
cfgoptions
[
i
].
numelt
>
0
&&
str
!=
NULL
&&
strlen
(
str
)
>=
cfgoptions
[
i
].
numelt
)
{
fprintf
(
stderr
,
"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated
\n
"
,
fprintf
(
stderr
,
"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated
\n
"
,
...
...
openair2/ENB_APP/enb_config.c
View file @
8d90eda6
...
@@ -210,8 +210,8 @@ void RCconfig_macrlc() {
...
@@ -210,8 +210,8 @@ void RCconfig_macrlc() {
mac_top_init_eNB
();
mac_top_init_eNB
();
for
(
j
=
0
;
j
<
RC
.
nb_macrlc_inst
;
j
++
)
{
for
(
j
=
0
;
j
<
RC
.
nb_macrlc_inst
;
j
++
)
{
RC
.
mac
[
j
]
->
phy_test
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_PHY_TEST_IDX
].
iptr
);
//
RC.mac[j]->phy_test = *(MacRLC_ParamList.paramarray[j][MACRLC_PHY_TEST_IDX].iptr);
printf
(
"PHY_TEST = %d,%d
\n
"
,
RC
.
mac
[
j
]
->
phy_test
,
j
);
//
printf("PHY_TEST = %d,%d\n", RC.mac[j]->phy_test, j);
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"local_RRC"
)
==
0
)
{
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"local_RRC"
)
==
0
)
{
// check number of instances is same as RRC/PDCP
// check number of instances is same as RRC/PDCP
...
...
targets/RT/USER/lte-enb.c
View file @
8d90eda6
...
@@ -446,6 +446,8 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
...
@@ -446,6 +446,8 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
{
{
eNB_proc_t
*
proc
=
&
eNB
->
proc
;
eNB_proc_t
*
proc
=
&
eNB
->
proc
;
eNB_rxtx_proc_t
*
proc_rxtx
=
&
proc
->
proc_rxtx
[
0
];
eNB_rxtx_proc_t
*
proc_rxtx
=
&
proc
->
proc_rxtx
[
0
];
LTE_DL_FRAME_PARMS
*
fp
=
&
ru
->
frame_parms
;
RU_proc_t
*
ru_proc
=&
ru
->
proc
;
proc
->
frame_rx
=
frame_rx
;
proc
->
frame_rx
=
frame_rx
;
proc
->
subframe_rx
=
subframe_rx
;
proc
->
subframe_rx
=
subframe_rx
;
...
@@ -453,14 +455,16 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
...
@@ -453,14 +455,16 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
if
(
!
oai_exit
)
{
if
(
!
oai_exit
)
{
T
(
T_ENB_MASTER_TICK
,
T_INT
(
0
),
T_INT
(
proc
->
frame_rx
),
T_INT
(
proc
->
subframe_rx
));
T
(
T_ENB_MASTER_TICK
,
T_INT
(
0
),
T_INT
(
proc
->
frame_rx
),
T_INT
(
proc
->
subframe_rx
));
proc_rxtx
->
subframe_rx
=
proc
->
subframe_rx
;
proc_rxtx
->
timestamp_tx
=
ru_proc
->
timestamp_rx
+
(
sf_ahead
*
fp
->
samples_per_tti
);
proc_rxtx
->
frame_rx
=
proc
->
frame_rx
;
proc_rxtx
->
frame_rx
=
ru_proc
->
frame_rx
;
proc_rxtx
->
subframe_tx
=
(
proc
->
subframe_rx
+
sf_ahead
)
%
10
;
proc_rxtx
->
subframe_rx
=
ru_proc
->
subframe_rx
;
proc_rxtx
->
frame_tx
=
(
proc
->
subframe_rx
>
(
9
-
sf_ahead
))
?
(
1
+
proc
->
frame_rx
)
&
1023
:
proc
->
frame_rx
;
proc_rxtx
->
frame_tx
=
(
proc_rxtx
->
subframe_rx
>
(
9
-
sf_ahead
))
?
(
proc_rxtx
->
frame_rx
+
1
)
&
1023
:
proc_rxtx
->
frame_rx
;
proc
->
frame_tx
=
proc_rxtx
->
frame_tx
;
proc_rxtx
->
subframe_tx
=
(
proc_rxtx
->
subframe_rx
+
sf_ahead
)
%
10
;
proc_rxtx
->
timestamp_tx
=
proc
->
timestamp_tx
;
if
(
rxtx
(
eNB
,
proc_rxtx
,
string
)
<
0
)
LOG_E
(
PHY
,
"eNB %d CC_id %d failed during execution
\n
"
,
eNB
->
Mod_id
,
eNB
->
CC_id
);
if
(
rxtx
(
eNB
,
proc_rxtx
,
string
)
<
0
)
LOG_E
(
PHY
,
"eNB %d CC_id %d failed during execution
\n
"
,
eNB
->
Mod_id
,
eNB
->
CC_id
);
ru_proc
->
timestamp_tx
=
proc_rxtx
->
timestamp_tx
;
ru_proc
->
subframe_tx
=
proc_rxtx
->
subframe_tx
;
ru_proc
->
frame_tx
=
proc_rxtx
->
frame_tx
;
}
}
}
}
...
@@ -511,7 +515,6 @@ int wakeup_tx(PHY_VARS_eNB *eNB,RU_proc_t *ru_proc) {
...
@@ -511,7 +515,6 @@ int wakeup_tx(PHY_VARS_eNB *eNB,RU_proc_t *ru_proc) {
eNB_rxtx_proc_t
*
proc_rxtx1
=&
proc
->
proc_rxtx
[
1
];
//*proc_rxtx=&proc->proc_rxtx[proc->frame_rx&1];
eNB_rxtx_proc_t
*
proc_rxtx1
=&
proc
->
proc_rxtx
[
1
];
//*proc_rxtx=&proc->proc_rxtx[proc->frame_rx&1];
eNB_rxtx_proc_t
*
proc_rxtx0
=&
proc
->
proc_rxtx
[
0
];
eNB_rxtx_proc_t
*
proc_rxtx0
=&
proc
->
proc_rxtx
[
0
];
LTE_DL_FRAME_PARMS
*
fp
=
&
eNB
->
frame_parms
;
struct
timespec
wait
;
struct
timespec
wait
;
wait
.
tv_sec
=
0
;
wait
.
tv_sec
=
0
;
...
@@ -1034,12 +1037,9 @@ void kill_eNB_proc(int inst) {
...
@@ -1034,12 +1037,9 @@ void kill_eNB_proc(int inst) {
kill_td_thread
(
eNB
);
kill_td_thread
(
eNB
);
kill_te_thread
(
eNB
);
kill_te_thread
(
eNB
);
LOG_I
(
PHY
,
"Killing TX CC_id %d inst %d
\n
"
,
CC_id
,
inst
);
LOG_I
(
PHY
,
"Killing TX CC_id %d inst %d
\n
"
,
CC_id
,
inst
);
proc_rxtx
[
0
].
instance_cnt_rxtx
=
0
;
// FIXME data race!
proc_rxtx
[
1
].
instance_cnt_rxtx
=
0
;
// FIXME data race!
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
pthread_mutex_lock
(
&
proc_rxtx
[
i
].
mutex_rxtx
);
pthread_mutex_lock
(
&
proc_rxtx
[
i
].
mutex_rxtx
);
proc_rxtx
[
i
].
instance_cnt_rxtx
=
0
;
proc_rxtx
[
i
].
instance_cnt_rxtx
=
0
;
pthread_cond_signal
(
&
proc_rxtx
[
i
].
cond_rxtx
);
pthread_mutex_unlock
(
&
proc_rxtx
[
i
].
mutex_rxtx
);
pthread_mutex_unlock
(
&
proc_rxtx
[
i
].
mutex_rxtx
);
}
}
proc
->
instance_cnt_prach
=
0
;
proc
->
instance_cnt_prach
=
0
;
...
@@ -1064,7 +1064,6 @@ void kill_eNB_proc(int inst) {
...
@@ -1064,7 +1064,6 @@ void kill_eNB_proc(int inst) {
LOG_I
(
PHY
,
"Destroying UL_INFO mutex
\n
"
);
LOG_I
(
PHY
,
"Destroying UL_INFO mutex
\n
"
);
pthread_mutex_destroy
(
&
eNB
->
UL_INFO_mutex
);
pthread_mutex_destroy
(
&
eNB
->
UL_INFO_mutex
);
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
pthread_cond_signal
(
&
proc_rxtx
[
i
].
cond_rxtx
);
LOG_I
(
PHY
,
"Joining rxtx[%d] mutex/cond
\n
"
,
i
);
LOG_I
(
PHY
,
"Joining rxtx[%d] mutex/cond
\n
"
,
i
);
pthread_join
(
proc_rxtx
[
i
].
pthread_rxtx
,
(
void
**
)
&
status
);
pthread_join
(
proc_rxtx
[
i
].
pthread_rxtx
,
(
void
**
)
&
status
);
LOG_I
(
PHY
,
"Destroying rxtx[%d] mutex/cond
\n
"
,
i
);
LOG_I
(
PHY
,
"Destroying rxtx[%d] mutex/cond
\n
"
,
i
);
...
...
targets/RT/USER/lte-ru.c
View file @
8d90eda6
...
@@ -777,8 +777,6 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) {
...
@@ -777,8 +777,6 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) {
if
(
ru
==
RC
.
ru
[
0
])
{
if
(
ru
==
RC
.
ru
[
0
])
{
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_RU
,
proc
->
frame_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_RU
,
proc
->
frame_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_RU
,
proc
->
subframe_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_RU
,
proc
->
subframe_rx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU
,
proc
->
frame_tx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX0_RU
,
proc
->
subframe_tx
);
}
}
if
(
proc
->
first_rx
==
0
)
{
if
(
proc
->
first_rx
==
0
)
{
...
@@ -853,6 +851,8 @@ void tx_rf(RU_t *ru) {
...
@@ -853,6 +851,8 @@ void tx_rf(RU_t *ru) {
for
(
i
=
0
;
i
<
ru
->
nb_tx
;
i
++
)
for
(
i
=
0
;
i
<
ru
->
nb_tx
;
i
++
)
txp
[
i
]
=
(
void
*
)
&
ru
->
common
.
txdata
[
i
][(
proc
->
subframe_tx
*
fp
->
samples_per_tti
)
-
sf_extension
];
txp
[
i
]
=
(
void
*
)
&
ru
->
common
.
txdata
[
i
][(
proc
->
subframe_tx
*
fp
->
samples_per_tti
)
-
sf_extension
];
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU
,
proc
->
frame_tx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX0_RU
,
proc
->
subframe_tx
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST
,
(
proc
->
timestamp_tx
-
ru
->
openair0_cfg
.
tx_sample_advance
)
&
0xffffffff
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST
,
(
proc
->
timestamp_tx
-
ru
->
openair0_cfg
.
tx_sample_advance
)
&
0xffffffff
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
1
);
...
...
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