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
canghaiwuhen
OpenXG-RAN
Commits
7d0c9393
Commit
7d0c9393
authored
Aug 30, 2019
by
magounak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added NB_PUSCH_ANT_PORTS and modified extract.c
parent
bbaec98c
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
71 additions
and
29 deletions
+71
-29
common/utils/T/tracer/extract.c
common/utils/T/tracer/extract.c
+13
-0
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+11
-10
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
+1
-1
openair1/PHY/TOOLS/signal_energy.c
openair1/PHY/TOOLS/signal_energy.c
+0
-1
openair1/PHY/defs_eNB.h
openair1/PHY/defs_eNB.h
+1
-1
openair1/PHY/impl_defs_top.h
openair1/PHY/impl_defs_top.h
+1
-0
openair1/SCHED/prach_procedures.c
openair1/SCHED/prach_procedures.c
+1
-1
openair1/SCHED/ru_procedures.c
openair1/SCHED/ru_procedures.c
+7
-5
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+33
-7
targets/RT/USER/ru_control.c
targets/RT/USER/ru_control.c
+3
-3
No files found.
common/utils/T/tracer/extract.c
View file @
7d0c9393
...
...
@@ -18,6 +18,8 @@ void usage(void)
" (you can use several -f options)
\n
"
" -after <raw time> <nsec> 'event' time has to be greater than this
\n
"
" -count <n> dump 'n' matching events (less if EOF reached)
\n
"
" -modulo <n> dump frame which modulo <rru-count> is <n>
\n
"
" -rru-count <n> set rru count
\n
"
);
exit
(
1
);
}
...
...
@@ -51,10 +53,13 @@ int main(int n, char **v)
int
filter_arg
[
n
];
int
filter_value
[
n
];
int
filter_count
=
0
;
int
filter_frame
;
int
buffer_arg
;
int
found
;
int
count
=
1
;
int
check_time
=
0
;
int
modulo
=
0
;
int
rru_count
=
1
;
time_t
sec
;
long
nsec
;
...
...
@@ -77,6 +82,10 @@ int main(int n, char **v)
}
if
(
!
strcmp
(
v
[
i
],
"-count"
))
{
if
(
i
>
n
-
2
)
usage
();
count
=
atoi
(
v
[
++
i
]);
continue
;
}
if
(
!
strcmp
(
v
[
i
],
"-modulo"
))
{
if
(
i
>
n
-
2
)
usage
();
modulo
=
atoi
(
v
[
++
i
]);
continue
;
}
if
(
!
strcmp
(
v
[
i
],
"-rru-count"
))
{
if
(
i
>
n
-
2
)
usage
();
rru_count
=
atoi
(
v
[
++
i
]);
continue
;
}
if
(
file
==
NULL
)
{
file
=
v
[
i
];
continue
;
}
if
(
event_name
==
NULL
)
{
event_name
=
v
[
i
];
continue
;
}
if
(
buffer_name
==
NULL
)
{
buffer_name
=
v
[
i
];
continue
;
}
...
...
@@ -108,6 +117,8 @@ int main(int n, char **v)
for
(
i
=
0
;
i
<
filter_count
;
i
++
)
filter_arg
[
i
]
=
get_filter_arg
(
&
f
,
filter
[
i
],
"int"
);
filter_frame
=
get_filter_arg
(
&
f
,
"frame"
,
"int"
);
fd
=
open
(
file
,
O_RDONLY
);
if
(
fd
==
-
1
)
{
perror
(
file
);
exit
(
1
);
}
...
...
@@ -125,6 +136,8 @@ int main(int n, char **v)
break
;
if
(
i
!=
filter_count
)
continue
;
if
(
e
.
e
[
filter_frame
].
i
%
rru_count
!=
modulo
)
continue
;
if
(
check_time
&&
!
(
e
.
sending_time
.
tv_sec
>
sec
||
(
e
.
sending_time
.
tv_sec
==
sec
&&
e
.
sending_time
.
tv_nsec
>=
nsec
)))
...
...
openair1/PHY/INIT/lte_init.c
View file @
7d0c9393
...
...
@@ -482,30 +482,31 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB,
//FIXME
pusch_vars
[
UE_id
]
=
(
LTE_eNB_PUSCH
*
)
malloc16_clear
(
NUMBER_OF_UE_MAX
*
sizeof
(
LTE_eNB_PUSCH
));
pusch_vars
[
UE_id
]
->
rxdataF_ext
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
rxdataF_ext2
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
drs_ch_estimates
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
drs_ch_estimates_time
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
rxdataF_comp
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
ul_ch_mag
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
ul_ch_magb
=
(
int32_t
**
)
malloc16
(
2
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
rxdataF_ext
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
rxdataF_ext2
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
drs_ch_estimates
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
drs_ch_estimates_time
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
rxdataF_comp
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
ul_ch_mag
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
pusch_vars
[
UE_id
]
->
ul_ch_magb
=
(
int32_t
**
)
malloc16
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
*
));
AssertFatal
(
fp
->
ofdm_symbol_size
>
127
,
"fp->ofdm_symbol_size %d<128
\n
"
,
fp
->
ofdm_symbol_size
);
AssertFatal
(
fp
->
symbols_per_tti
>
11
,
"fp->symbols_per_tti %d < 12
\n
"
,
fp
->
symbols_per_tti
);
AssertFatal
(
fp
->
N_RB_UL
>
5
,
"fp->N_RB_UL %d < 6
\n
"
,
fp
->
N_RB_UL
);
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
NB_PUSCH_ANT_PORTS
;
i
++
)
{
// RK 2 times because of output format of FFT!
// FIXME We should get rid of this
pusch_vars
[
UE_id
]
->
rxdataF_ext
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
fp
->
N_RB_UL
*
12
*
fp
->
symbols_per_tti
);
pusch_vars
[
UE_id
]
->
rxdataF_ext2
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
fp
->
N_RB_UL
*
12
*
fp
->
symbols_per_tti
);
pusch_vars
[
UE_id
]
->
drs_ch_estimates
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
fp
->
N_RB_UL
*
12
*
fp
->
symbols_per_tti
);
pusch_vars
[
UE_id
]
->
drs_ch_estimates_time
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
2
*
sizeof
(
int32_t
)
*
fp
->
ofdm_symbol_size
);
pusch_vars
[
UE_id
]
->
drs_ch_estimates_time
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
NB_PUSCH_ANT_PORTS
*
sizeof
(
int32_t
)
*
fp
->
ofdm_symbol_size
);
pusch_vars
[
UE_id
]
->
rxdataF_comp
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
sizeof
(
int32_t
)
*
fp
->
N_RB_UL
*
12
*
fp
->
symbols_per_tti
);
pusch_vars
[
UE_id
]
->
ul_ch_mag
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
symbols_per_tti
*
sizeof
(
int32_t
)
*
fp
->
N_RB_UL
*
12
);
pusch_vars
[
UE_id
]
->
ul_ch_magb
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
symbols_per_tti
*
sizeof
(
int32_t
)
*
fp
->
N_RB_UL
*
12
);
}
pusch_vars
[
UE_id
]
->
llr
=
(
int16_t
*
)
malloc16_clear
(
(
8
*
((
3
*
8
*
6144
)
+
12
))
*
sizeof
(
int16_t
)
);
LOG_I
(
PHY
,
"llr[0] %p
\n
"
,
pusch_vars
[
UE_id
]
->
llr
);
}
//UE_id
...
...
@@ -570,7 +571,7 @@ void phy_free_lte_eNB(PHY_VARS_eNB *eNB)
free_and_zero
(
prach_vars
->
rxsigF
[
0
]);
for
(
UE_id
=
0
;
UE_id
<
NUMBER_OF_UE_MAX
;
UE_id
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
NB_PUSCH_ANT_PORTS
;
i
++
)
{
free_and_zero
(
pusch_vars
[
UE_id
]
->
rxdataF_ext
[
i
]);
free_and_zero
(
pusch_vars
[
UE_id
]
->
rxdataF_ext2
[
i
]);
free_and_zero
(
pusch_vars
[
UE_id
]
->
drs_ch_estimates
[
i
]);
...
...
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
View file @
7d0c9393
...
...
@@ -127,7 +127,7 @@ int lte_est_timing_advance_pusch(PHY_VARS_eNB *eNB,module_id_t UE_id)
int
sync_pos
=
(
frame_parms
->
ofdm_symbol_size
-
cyclic_shift
*
frame_parms
->
ofdm_symbol_size
/
12
)
%
(
frame_parms
->
ofdm_symbol_size
);
AssertFatal
(
frame_parms
->
ofdm_symbol_size
>
127
,
"frame_parms->ofdm_symbol_size %d<128
\n
"
,
frame_parms
->
ofdm_symbol_size
);
AssertFatal
(
frame_parms
->
nb_antennas_rx
>
0
&&
frame_parms
->
nb_antennas_rx
<
3
,
"frame_parms->nb_antennas_rx %d not in [0,1
]
\n
"
,
AssertFatal
(
frame_parms
->
nb_antennas_rx
>
0
&&
frame_parms
->
nb_antennas_rx
<
NB_PUSCH_ANT_PORTS
+
1
,
"frame_parms->nb_antennas_rx %d not in [0,1,2
]
\n
"
,
frame_parms
->
nb_antennas_rx
);
for
(
i
=
0
;
i
<
frame_parms
->
ofdm_symbol_size
;
i
++
)
{
temp
=
0
;
...
...
openair1/PHY/TOOLS/signal_energy.c
View file @
7d0c9393
...
...
@@ -226,7 +226,6 @@ int32_t signal_energy_nodc(int32_t *input,uint32_t length)
register
int32x4_t
tmpE
;
int32x2_t
tmpE2
;
int16x4_t
*
in
=
(
int16x4_t
*
)
input
;
tmpE
=
vdupq_n_s32
(
0
);
for
(
i
=
0
;
i
<
length
>>
1
;
i
++
)
{
...
...
openair1/PHY/defs_eNB.h
View file @
7d0c9393
...
...
@@ -689,7 +689,7 @@ typedef struct {
/// - second index: ? [0..12*N_RB_UL*frame_parms->symbols_per_tti[
int32_t
**
ul_ch_magb
;
/// measured RX power based on DRS
int
ulsch_power
[
2
];
int
ulsch_power
[
4
];
/// \brief llr values.
/// - first index: ? [0..1179743] (hard coded)
int16_t
*
llr
;
...
...
openair1/PHY/impl_defs_top.h
View file @
7d0c9393
...
...
@@ -175,6 +175,7 @@
#define SLOT_TIME_NS (SLOT_LENGTH_SAMPLES*(1e3)/7.68) // slot time in ns
#define NB_ANTENNA_PORTS_ENB 6 // total number of eNB antenna ports
#define NB_PUSCH_ANT_PORTS 4 // total number of eNB pusch antenna ports
#ifdef EXMIMO
#define TARGET_RX_POWER 55 // Target digital power for the AGC
...
...
openair1/SCHED/prach_procedures.c
View file @
7d0c9393
...
...
@@ -166,7 +166,7 @@ void prach_procedures(PHY_VARS_eNB *eNB
{
if
((
eNB
->
prach_energy_counter
==
100
)
&&
(
max_preamble_energy
[
0
]
>
eNB
->
measurements
.
prach_I0
+
eNB
->
prach_DTX_threshold
))
{
LOG_
I
(
PHY
,
"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d
\n
"
,
LOG_
D
(
PHY
,
"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d
\n
"
,
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
...
...
openair1/SCHED/ru_procedures.c
View file @
7d0c9393
...
...
@@ -794,10 +794,11 @@ void ru_fep_full_2thread(RU_t *ru) {
LOG_M
(
"rxdata.m"
,
"rxdata"
,
&
ru
->
common
.
rxdata
[
0
][
0
],
fp
->
samples_per_tti
*
2
,
1
,
1
);
exit
(
-
1
);
}
T
(
T_CALIBRATION_CHANNEL_ESTIMATES
,
T_INT
(
ru
->
idx
),
T_INT
(
proc
->
frame_rx
),
T_INT
(
proc
->
subframe_rx
),
/*
T(T_CALIBRATION_CHANNEL_ESTIMATES, T_INT(ru->idx), T_INT(proc->frame_rx), T_INT(proc->subframe_rx),
T_INT(l),T_BUFFER(&calibration->drs_ch_estimates[0][l*12*fp->N_RB_UL],
12*fp->N_RB_UL*sizeof(int32_t)));
*/
/*
Ns = 1;
l = 10;
...
...
@@ -819,15 +820,16 @@ void ru_fep_full_2thread(RU_t *ru) {
proc->subframe_rx,
0,//u = 0..29
0,//v = 0,1
/*eNB->ulsch[ru->idx]->cyclicShift,cyclic_shift,0..7*/
0
,
0,
l,//l
0,//interpolate,
0
/*eNB->ulsch[ru->idx]->rnti rnti or ru->ulsch[eNB_id]->rnti*/
);
0 );
T(T_CALIBRATION_CHANNEL_ESTIMATES, T_INT(ru->idx), T_INT(proc->frame_rx), T_INT(proc->subframe_rx),
T_INT(l),T_BUFFER(&calibration->drs_ch_estimates[0][l*12*fp->N_RB_UL],
12*fp->N_RB_UL*sizeof(int32_t)));
}
*/
}
else
{
AssertFatal
(
1
==
0
,
"Should not get here
\n
"
);
...
...
targets/RT/USER/lte-ru.c
View file @
7d0c9393
...
...
@@ -232,7 +232,7 @@ void fh_if4p5_south_in(RU_t *ru,int *frame,int *subframe) {
if
(
packet_type
==
IF4p5_PULFFT
)
proc
->
symbol_mask
[
sf
]
=
proc
->
symbol_mask
[
sf
]
|
(
1
<<
symbol_number
);
else
if
(
packet_type
==
IF4p5_PULCALIB
)
{
proc
->
symbol_mask
[
sf
]
=
(
2
<<
symbol_number
)
-
1
;
LOG_
I
(
PHY
,
"symbol_mask[%d] %d
\n
"
,
sf
,
proc
->
symbol_mask
[
sf
]);
LOG_
D
(
PHY
,
"symbol_mask[%d] %d
\n
"
,
sf
,
proc
->
symbol_mask
[
sf
]);
}
else
if
(
packet_type
==
IF4p5_PULTICK
)
{
proc
->
symbol_mask
[
sf
]
=
symbol_mask_full
;
...
...
@@ -346,14 +346,40 @@ void fh_if4p5_south_in(RU_t *ru,int *frame,int *subframe) {
T_BUFFER
(
calibration
->
drs_ch_estimates_time
[
0
],
fp
->
ofdm_symbol_size
*
sizeof
(
int32_t
)));
/* if (f==251 && ru->idx==0) {
//LOG_M("rxdataF_ext.m","rxdataFext",&calibration->rxdataF_ext[0][0], 14*12*(fp->N_RB_DL),1,1);
LOG_M("dmrs_time.m","dmrstime",calibration->drs_ch_estimates_time[0], fp->ofdm_symbol_size,1,1);
//exit(-1);
}*/
//}
}
/* if (ru->wait_cnt==0 && packet_type == IF4p5_PULCALIB && RC.collect==1 && ru->is_slave==1) {
Ns = 0;
l = 3;
u = 0;
ru->frame_parms.nb_antennas_rx = ru->nb_rx;
ulsch_extract_rbs_single(ru->common.rxdataF,
calibration->rxdataF_ext,
0,
fp->N_RB_DL,
3%(fp->symbols_per_tti/2),// l = symbol within slot
Ns,
fp);
lte_ul_channel_estimation_RRU(fp,
calibration->drs_ch_estimates,
calibration->drs_ch_estimates_time,
calibration->rxdataF_ext,
fp->N_RB_DL,
f,
sf,
u,
0,
0,
l,
0,
0);
T(T_CALIBRATION_CHANNEL_ESTIMATES, T_INT(ru->idx), T_INT(f), T_INT(sf),
T_INT(l),T_BUFFER(&calibration->drs_ch_estimates[0][l*12*fp->N_RB_UL],
12*fp->N_RB_UL*sizeof(int32_t)));
}*/
proc
->
symbol_mask
[
sf
]
=
0
;
...
...
targets/RT/USER/ru_control.c
View file @
7d0c9393
...
...
@@ -126,7 +126,7 @@ int send_config(RU_t *ru, RRU_CONFIG_msg_t rru_config_msg){
rru_config_msg
.
type
=
RRU_config
;
rru_config_msg
.
len
=
sizeof
(
RRU_CONFIG_msg_t
)
-
MAX_RRU_CONFIG_SIZE
+
sizeof
(
RRU_config_t
);
LOG_I
(
PHY
,
"Sending Configuration to RRU %d (num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d
\n
"
,
ru
->
idx
,
LOG_I
(
PHY
,
"Sending Configuration to RRU %d (
RRU p %d,RRU tag %d,
num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d
\n
"
,
ru
->
idx
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
p
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
tag
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
num_bands
,
...
...
@@ -236,7 +236,7 @@ int attach_rru(RU_t *ru) {
rru_config_msg
.
type
=
RRU_config
;
rru_config_msg
.
len
=
sizeof
(
RRU_CONFIG_msg_t
)
-
MAX_RRU_CONFIG_SIZE
+
sizeof
(
RRU_config_t
);
LOG_I
(
PHY
,
"Sending Configuration to RRU %d (num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d)
\n
"
,
ru
->
idx
,
LOG_I
(
PHY
,
"Sending Configuration to RRU %d (
RRU p %d,RRU tag %d,
num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d)
\n
"
,
ru
->
idx
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
p
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
tag
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
num_bands
,
...
...
@@ -331,7 +331,7 @@ int connect_rau(RU_t *ru) {
LOG_I
(
PHY
,
"Waiting for configuration from RAU
\n
"
);
}
else
{
LOG_I
(
PHY
,
"Configuration received from RAU (num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d)
\n
"
,
LOG_I
(
PHY
,
"Configuration received from RAU (
RRU p %d,RRU tag %d,
num_bands %d,band0 %d,txfreq %u,rxfreq %u,att_tx %d,att_rx %d,N_RB_DL %d,N_RB_UL %d,3/4FS %d, prach_FO %d, prach_CI %d)
\n
"
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
p
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
tag
,
((
RRU_config_t
*
)
&
rru_config_msg
.
msg
[
0
])
->
num_bands
,
...
...
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