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
lizhongxiao
OpenXG UE
Commits
ae989c72
Commit
ae989c72
authored
Apr 11, 2018
by
Cedric Roux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop-simL1-fixes' into develop_integration_2018_w15
parents
c4c2ba39
c3713add
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
55 additions
and
57 deletions
+55
-57
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+4
-3
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+3
-3
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+2
-2
openair1/SIMULATION/RF/dac.c
openair1/SIMULATION/RF/dac.c
+4
-6
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+4
-2
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
...TS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
+1
-2
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf
+1
-1
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+1
-1
targets/SIMU/USER/channel_sim.c
targets/SIMU/USER/channel_sim.c
+10
-6
targets/SIMU/USER/oaisim.c
targets/SIMU/USER/oaisim.c
+6
-10
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+17
-19
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
ae989c72
...
@@ -5028,7 +5028,7 @@ void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms,
...
@@ -5028,7 +5028,7 @@ void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms,
pdsch_vars
->
llr_offset
[
pdcch_vars
->
num_pdcch_symbols
]
=
0
;
pdsch_vars
->
llr_offset
[
pdcch_vars
->
num_pdcch_symbols
]
=
0
;
LOG_I
(
PHY
,
"compute_llr_offset: nb RB %d - Qm %d
\n
"
,
nb_rb_alloc
,
dlsch0_harq
->
Qm
);
//
LOG_I(PHY,"compute_llr_offset: nb RB %d - Qm %d \n", nb_rb_alloc, dlsch0_harq->Qm);
//dlsch0_harq->rb_alloc_even;
//dlsch0_harq->rb_alloc_even;
//dlsch0_harq->rb_alloc_odd;
//dlsch0_harq->rb_alloc_odd;
...
@@ -5057,16 +5057,17 @@ void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms,
...
@@ -5057,16 +5057,17 @@ void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms,
pdsch_vars
->
llr_length
[
symbol
]
=
data_re
;
pdsch_vars
->
llr_length
[
symbol
]
=
data_re
;
if
(
symbol
<
(
frame_parms
->
symbols_per_tti
-
1
))
if
(
symbol
<
(
frame_parms
->
symbols_per_tti
-
1
))
pdsch_vars
->
llr_offset
[
symbol
+
1
]
=
pdsch_vars
->
llr_offset
[
symbol
]
+
llr_offset
;
pdsch_vars
->
llr_offset
[
symbol
+
1
]
=
pdsch_vars
->
llr_offset
[
symbol
]
+
llr_offset
;
/*
LOG_I(PHY,"Granted Re subframe %d / symbol %d => %d (%d RBs)\n", subframe, symbol_mod, granted_re,dlsch0_harq->nb_rb);
LOG_I(PHY,"Granted Re subframe %d / symbol %d => %d (%d RBs)\n", subframe, symbol_mod, granted_re,dlsch0_harq->nb_rb);
LOG_I(PHY,"Pbch/PSS/SSS Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, pbch_pss_sss_re);
LOG_I(PHY,"Pbch/PSS/SSS Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, pbch_pss_sss_re);
LOG_I(PHY,"CRS Re Per PRB subframe %d / symbol %d => %d \n", subframe, symbol_mod, crs_re);
LOG_I(PHY,"CRS Re Per PRB subframe %d / symbol %d => %d \n", subframe, symbol_mod, crs_re);
LOG_I(PHY,"Data Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, data_re);
LOG_I(PHY,"Data Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, data_re);
LOG_I(PHY,"Data Re subframe %d-symbol %d => llr length %d, llr offset %d \n", subframe, symbol,
LOG_I(PHY,"Data Re subframe %d-symbol %d => llr length %d, llr offset %d \n", subframe, symbol,
pdsch_vars->llr_length[symbol], pdsch_vars->llr_offset[symbol]);
pdsch_vars->llr_length[symbol], pdsch_vars->llr_offset[symbol]);
*/
}
}
}
}
void
prepare_dl_decoding_format1_1A
(
DCI_format_t
dci_format
,
void
prepare_dl_decoding_format1_1A
(
DCI_format_t
dci_format
,
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
ae989c72
...
@@ -48,7 +48,7 @@ int16_t interf_unaw_shift = 13;
...
@@ -48,7 +48,7 @@ int16_t interf_unaw_shift = 13;
//#define DEBUG_HARQ
//#define DEBUG_HARQ
#define DEBUG_PHY 1
//
#define DEBUG_PHY 1
//#define DEBUG_DLSCH_DEMOD 1
//#define DEBUG_DLSCH_DEMOD 1
//#define DISABLE_LOG_X
//#define DISABLE_LOG_X
...
@@ -842,7 +842,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
...
@@ -842,7 +842,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
pllr_symbol_cw1
=
(
int8_t
*
)
pdsch_vars
[
eNB_id
]
->
llr
[
1
];
pllr_symbol_cw1
=
(
int8_t
*
)
pdsch_vars
[
eNB_id
]
->
llr
[
1
];
pllr_symbol_cw0
+=
llr_offset_symbol
;
pllr_symbol_cw0
+=
llr_offset_symbol
;
pllr_symbol_cw1
+=
llr_offset_symbol
;
pllr_symbol_cw1
+=
llr_offset_symbol
;
/*
LOG_I(PHY,"compute LLRs [AbsSubframe %d.%d-%d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d @LLR Buff %p @LLR Buff(symb) %p\n",
LOG_I(PHY,"compute LLRs [AbsSubframe %d.%d-%d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d @LLR Buff %p @LLR Buff(symb) %p\n",
frame, subframe,symbol,
frame, subframe,symbol,
nb_rb,dlsch0_harq->Qm,
nb_rb,dlsch0_harq->Qm,
...
@@ -850,7 +850,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
...
@@ -850,7 +850,7 @@ int rx_pdsch(PHY_VARS_UE *ue,
pdsch_vars[eNB_id]->llr_offset[symbol],
pdsch_vars[eNB_id]->llr_offset[symbol],
(int16_t*)pdsch_vars[eNB_id]->llr[0],
(int16_t*)pdsch_vars[eNB_id]->llr[0],
pllr_symbol_cw0);
pllr_symbol_cw0);
*/
switch
(
dlsch0_harq
->
Qm
)
{
switch
(
dlsch0_harq
->
Qm
)
{
case
2
:
case
2
:
if
((
rx_type
==
rx_standard
)
||
(
codeword_TB1
==
-
1
))
{
if
((
rx_type
==
rx_standard
)
||
(
codeword_TB1
==
-
1
))
{
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
ae989c72
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
#include <sched.h>
#include <sched.h>
#include "targets/RT/USER/lte-softmodem.h"
#include "targets/RT/USER/lte-softmodem.h"
#define DEBUG_PHY_PROC
//
#define DEBUG_PHY_PROC
#ifndef PUCCH
#ifndef PUCCH
#define PUCCH
#define PUCCH
...
@@ -81,7 +81,7 @@ extern uint32_t downlink_frequency[MAX_NUM_CCs][4];
...
@@ -81,7 +81,7 @@ extern uint32_t downlink_frequency[MAX_NUM_CCs][4];
#endif
#endif
#define UE_DEBUG_TRACE 1
//
#define UE_DEBUG_TRACE 1
void
dump_dlsch
(
PHY_VARS_UE
*
ue
,
UE_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
subframe
,
uint8_t
harq_pid
)
void
dump_dlsch
(
PHY_VARS_UE
*
ue
,
UE_rxtx_proc_t
*
proc
,
uint8_t
eNB_id
,
uint8_t
subframe
,
uint8_t
harq_pid
)
{
{
...
...
openair1/SIMULATION/RF/dac.c
View file @
ae989c72
...
@@ -91,10 +91,8 @@ double dac_fixed_gain(double *s_re[2],
...
@@ -91,10 +91,8 @@ double dac_fixed_gain(double *s_re[2],
int
i
;
int
i
;
int
aa
;
int
aa
;
double
amp
,
amp1_local
,
*
amp1p
;
double
amp1_local
,
*
amp1p
;
double
amp
=
pow
(
10
.
0
,.
05
*
txpwr_dBm
)
/
sqrt
(
nb_tx_antennas
);
//this is amp per tx antenna
amp
=
//sqrt(NB_RE)*pow(10.0,.05*txpwr_dBm)/sqrt(nb_tx_antennas); //this is amp per tx antenna
pow
(
10
.
0
,.
05
*
txpwr_dBm
)
/
sqrt
(
nb_tx_antennas
);
//this is amp per tx antenna
if
(
amp1
==
NULL
)
amp1p
=
&
amp1_local
;
if
(
amp1
==
NULL
)
amp1p
=
&
amp1_local
;
else
amp1p
=
amp1
;
else
amp1p
=
amp1
;
...
@@ -123,7 +121,7 @@ double dac_fixed_gain(double *s_re[2],
...
@@ -123,7 +121,7 @@ double dac_fixed_gain(double *s_re[2],
//printf("DL: amp1 %f dB (%d,%d), tx_power %f\n",20*log10(amp1),input_offset,input_offset_meas,txpwr_dBm);
//printf("DL: amp1 %f dB (%d,%d), tx_power %f\n",20*log10(amp1),input_offset,input_offset_meas,txpwr_dBm);
*/
*/
// printf("DAC: amp/amp1p %f amp1 %f dB (%d,%d), tx_power %f\n",amp/(*amp1p),20*log10(*amp1p),input_offset,input_offset_meas,txpwr_dBm);
for
(
i
=
0
;
i
<
length
;
i
++
)
{
for
(
i
=
0
;
i
<
length
;
i
++
)
{
for
(
aa
=
0
;
aa
<
nb_tx_antennas
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
nb_tx_antennas
;
aa
++
)
{
s_re
[
aa
][
i
]
=
amp
*
((
double
)(((
short
*
)
input
[
aa
]))[((
i
+
input_offset
)
<<
1
)])
/
(
*
amp1p
);
s_re
[
aa
][
i
]
=
amp
*
((
double
)(((
short
*
)
input
[
aa
]))[((
i
+
input_offset
)
<<
1
)])
/
(
*
amp1p
);
...
@@ -131,7 +129,7 @@ double dac_fixed_gain(double *s_re[2],
...
@@ -131,7 +129,7 @@ double dac_fixed_gain(double *s_re[2],
}
}
}
}
// printf("ener %e\n",signal_energy_fp(s_re,s_im,nb_tx_antennas,length,0));
// printf("ener %e\n",signal_energy_fp(s_re,s_im,nb_tx_antennas,length
<length_meas?length:length_meas
,0));
return
(
signal_energy_fp
(
s_re
,
s_im
,
nb_tx_antennas
,
length
<
length_meas
?
length
:
length_meas
,
0
)
/
NB_RE
);
return
(
signal_energy_fp
(
s_re
,
s_im
,
nb_tx_antennas
,
length
<
length_meas
?
length
:
length_meas
,
0
)
/
NB_RE
);
}
}
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
ae989c72
...
@@ -542,7 +542,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP,
...
@@ -542,7 +542,7 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP,
rnti
=
UE_RNTI
(
module_idP
,
i
);
rnti
=
UE_RNTI
(
module_idP
,
i
);
CC_id
=
UE_PCCID
(
module_idP
,
i
);
CC_id
=
UE_PCCID
(
module_idP
,
i
);
if
((
frameP
==
0
)
&&
(
subframeP
==
0
))
{
if
((
(
frameP
&
127
)
==
0
)
&&
(
subframeP
==
0
))
{
LOG_I
(
MAC
,
LOG_I
(
MAC
,
"UE rnti %x : %s, PHR %d dB DL CQI %d PUSCH SNR %d PUCCH SNR %d
\n
"
,
"UE rnti %x : %s, PHR %d dB DL CQI %d PUSCH SNR %d PUCCH SNR %d
\n
"
,
rnti
,
rnti
,
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
ae989c72
...
@@ -1281,7 +1281,7 @@ schedule_ulsch_rnti(module_id_t module_idP,
...
@@ -1281,7 +1281,7 @@ schedule_ulsch_rnti(module_id_t module_idP,
// this is the normalized RX power and this should be constant (regardless of mcs
// this is the normalized RX power and this should be constant (regardless of mcs
normalized_rx_power
=
UE_sched_ctrl
->
pusch_snr
[
CC_id
];
normalized_rx_power
=
UE_sched_ctrl
->
pusch_snr
[
CC_id
];
target_rx_power
=
1
7
8
;
target_rx_power
=
1
5
8
;
// this assumes accumulated tpc
// this assumes accumulated tpc
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
// make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out
...
...
openair2/LAYER2/PDCP_v10.1.0/pdcp.c
View file @
ae989c72
...
@@ -859,7 +859,8 @@ void pdcp_update_stats(const protocol_ctxt_t* const ctxt_pP){
...
@@ -859,7 +859,8 @@ void pdcp_update_stats(const protocol_ctxt_t* const ctxt_pP){
for
(
pdcp_uid
=
0
;
pdcp_uid
<
NUMBER_OF_UE_MAX
;
pdcp_uid
++
){
for
(
pdcp_uid
=
0
;
pdcp_uid
<
NUMBER_OF_UE_MAX
;
pdcp_uid
++
){
//printf("frame %d and subframe %d \n", pdcp_enb[ctxt_pP->module_id].frame, pdcp_enb[ctxt_pP->module_id].subframe);
//printf("frame %d and subframe %d \n", pdcp_enb[ctxt_pP->module_id].frame, pdcp_enb[ctxt_pP->module_id].subframe);
// tx stats
// tx stats
if
(
pdcp_enb
[
ctxt_pP
->
module_id
].
sfn
%
Pdcp_stats_tx_window_ms
[
ctxt_pP
->
module_id
][
pdcp_uid
]
==
0
){
if
(
Pdcp_stats_tx_window_ms
[
ctxt_pP
->
module_id
][
pdcp_uid
]
>
0
&&
pdcp_enb
[
ctxt_pP
->
module_id
].
sfn
%
Pdcp_stats_tx_window_ms
[
ctxt_pP
->
module_id
][
pdcp_uid
]
==
0
){
// unit: bit/s
// unit: bit/s
Pdcp_stats_tx_throughput_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_tx_bytes_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
*
8
;
Pdcp_stats_tx_throughput_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_tx_bytes_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
*
8
;
Pdcp_stats_tx_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_tx_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
];
Pdcp_stats_tx_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_tx_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
];
...
@@ -875,7 +876,8 @@ void pdcp_update_stats(const protocol_ctxt_t* const ctxt_pP){
...
@@ -875,7 +876,8 @@ void pdcp_update_stats(const protocol_ctxt_t* const ctxt_pP){
Pdcp_stats_tx_aiat_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
0
;
Pdcp_stats_tx_aiat_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
0
;
}
}
if
(
pdcp_enb
[
ctxt_pP
->
module_id
].
sfn
%
Pdcp_stats_rx_window_ms
[
ctxt_pP
->
module_id
][
pdcp_uid
]
==
0
){
if
(
Pdcp_stats_rx_window_ms
[
ctxt_pP
->
module_id
][
pdcp_uid
]
>
0
&&
pdcp_enb
[
ctxt_pP
->
module_id
].
sfn
%
Pdcp_stats_rx_window_ms
[
ctxt_pP
->
module_id
][
pdcp_uid
]
==
0
){
// rx stats
// rx stats
Pdcp_stats_rx_goodput_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_rx_bytes_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
*
8
;
Pdcp_stats_rx_goodput_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_rx_bytes_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
*
8
;
Pdcp_stats_rx_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_rx_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
];
Pdcp_stats_rx_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
]
=
Pdcp_stats_rx_tmp_w
[
ctxt_pP
->
module_id
][
pdcp_uid
][
rb_id
];
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf
View file @
ae989c72
...
@@ -73,8 +73,7 @@ eNBs =
...
@@ -73,8 +73,7 @@ eNBs =
srs_SubframeConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
104
;
pusch_p0_Nominal
= -
96
;
pusch_alpha
=
"AL1"
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
104
;
pucch_p0_Nominal
= -
104
;
msg3_delta_Preamble
=
6
;
msg3_delta_Preamble
=
6
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf
View file @
ae989c72
...
@@ -11,7 +11,7 @@ RUs = (
...
@@ -11,7 +11,7 @@ RUs = (
tr_preference
=
"udp_if4p5"
;
tr_preference
=
"udp_if4p5"
;
nb_tx
=
1
;
nb_tx
=
1
;
nb_rx
=
1
;
nb_rx
=
1
;
max_pdschReferenceSignalPower
= -
29
;
max_pdschReferenceSignalPower
= -
15
;
max_rxgain
=
120
;
max_rxgain
=
120
;
bands
= [
7
,
13
];
bands
= [
7
,
13
];
}
}
...
...
targets/RT/USER/lte-ru.c
View file @
ae989c72
...
@@ -1227,7 +1227,7 @@ static inline int wakeup_prach_ru(RU_t *ru) {
...
@@ -1227,7 +1227,7 @@ static inline int wakeup_prach_ru(RU_t *ru) {
ru
->
eNB_list
[
0
]
->
proc
.
frame_prach
=
ru
->
proc
.
frame_rx
;
ru
->
eNB_list
[
0
]
->
proc
.
frame_prach
=
ru
->
proc
.
frame_rx
;
ru
->
eNB_list
[
0
]
->
proc
.
subframe_prach
=
ru
->
proc
.
subframe_rx
;
ru
->
eNB_list
[
0
]
->
proc
.
subframe_prach
=
ru
->
proc
.
subframe_rx
;
}
}
LOG_
I
(
PHY
,
"RU %d: waking up PRACH thread
\n
"
,
ru
->
idx
);
LOG_
D
(
PHY
,
"RU %d: waking up PRACH thread
\n
"
,
ru
->
idx
);
// the thread can now be woken up
// the thread can now be woken up
AssertFatal
(
pthread_cond_signal
(
&
ru
->
proc
.
cond_prach
)
==
0
,
"ERROR pthread_cond_signal for RU prach thread
\n
"
);
AssertFatal
(
pthread_cond_signal
(
&
ru
->
proc
.
cond_prach
)
==
0
,
"ERROR pthread_cond_signal for RU prach thread
\n
"
);
}
}
...
...
targets/SIMU/USER/channel_sim.c
View file @
ae989c72
...
@@ -60,7 +60,11 @@
...
@@ -60,7 +60,11 @@
#include "oaisim.h"
#include "oaisim.h"
#define RF
#define RF
//#define DEBUG_SIM
#define DEBUG_SIM
/*
#undef LOG_D
#define LOG_D(A,B,C...) printf(B,C)
*/
int
number_rb_ul
;
int
number_rb_ul
;
int
first_rbUL
;
int
first_rbUL
;
...
@@ -232,7 +236,6 @@ void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM
...
@@ -232,7 +236,6 @@ void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM
pthread_mutex_lock
(
&
RU_output_mutex
[
UE_id
]);
pthread_mutex_lock
(
&
RU_output_mutex
[
UE_id
]);
if
(
RU_output_mask
[
UE_id
]
==
0
)
{
// This is the first eNodeB for this UE, clear the buffer
if
(
RU_output_mask
[
UE_id
]
==
0
)
{
// This is the first eNodeB for this UE, clear the buffer
for
(
aa
=
0
;
aa
<
nb_antennas_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
nb_antennas_rx
;
aa
++
)
{
memset
((
void
*
)
r_re_DL
[
UE_id
][
aa
],
0
,(
RC
.
ru
[
0
]
->
frame_parms
.
samples_per_tti
)
*
sizeof
(
double
));
memset
((
void
*
)
r_re_DL
[
UE_id
][
aa
],
0
,(
RC
.
ru
[
0
]
->
frame_parms
.
samples_per_tti
)
*
sizeof
(
double
));
memset
((
void
*
)
r_im_DL
[
UE_id
][
aa
],
0
,(
RC
.
ru
[
0
]
->
frame_parms
.
samples_per_tti
)
*
sizeof
(
double
));
memset
((
void
*
)
r_im_DL
[
UE_id
][
aa
],
0
,(
RC
.
ru
[
0
]
->
frame_parms
.
samples_per_tti
)
*
sizeof
(
double
));
...
@@ -375,7 +378,8 @@ void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM
...
@@ -375,7 +378,8 @@ void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM
UE_id
,
ru_id
,
UE_id
,
ru_id
,
10
*
log10
(
rx_pwr
),
subframe
);
10
*
log10
(
rx_pwr
),
subframe
);
#endif
#endif
pthread_mutex_lock
(
&
RU_output_mutex
[
UE_id
]);
pthread_mutex_lock
(
&
RU_output_mutex
[
UE_id
]);
for
(
i
=
0
;
i
<
frame_parms
->
samples_per_tti
;
i
++
)
{
for
(
i
=
0
;
i
<
frame_parms
->
samples_per_tti
;
i
++
)
{
for
(
aa
=
0
;
aa
<
nb_antennas_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
nb_antennas_rx
;
aa
++
)
{
...
@@ -389,14 +393,14 @@ void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM
...
@@ -389,14 +393,14 @@ void do_DL_sig(channel_desc_t *RU2UE[NUMBER_OF_RU_MAX][NUMBER_OF_UE_MAX][MAX_NUM
double
*
r_re_p
[
2
]
=
{
r_re_DL
[
ru_id
][
0
],
r_re_DL
[
ru
_id
][
1
]};
double
*
r_re_p
[
2
]
=
{
r_re_DL
[
UE_id
][
0
],
r_re_DL
[
UE
_id
][
1
]};
double
*
r_im_p
[
2
]
=
{
r_im_DL
[
ru_id
][
0
],
r_im_DL
[
ru
_id
][
1
]};
double
*
r_im_p
[
2
]
=
{
r_im_DL
[
UE_id
][
0
],
r_im_DL
[
UE
_id
][
1
]};
#ifdef DEBUG_SIM
#ifdef DEBUG_SIM
rx_pwr
=
signal_energy_fp
(
r_re_p
,
r_im_p
,
nb_antennas_rx
,
length
<
length_meas
?
length
:
length_meas
,
0
)
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
rx_pwr
=
signal_energy_fp
(
r_re_p
,
r_im_p
,
nb_antennas_rx
,
length
<
length_meas
?
length
:
length_meas
,
0
)
/
(
12
.
0
*
frame_parms
->
N_RB_DL
);
LOG_D
(
OCM
,
"[SIM][DL] UE %d : ADC in %f dBm/RE for subframe %d
\n
"
,
UE_id
,
10
*
log10
(
rx_pwr
),
subframe
);
LOG_D
(
OCM
,
"[SIM][DL] UE %d : ADC in %f dBm/RE for subframe %d
\n
"
,
UE_id
,
10
*
log10
(
rx_pwr
),
subframe
);
#endif
#endif
rxdata
=
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
common_vars
.
rxdata
;
rxdata
=
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
common_vars
.
rxdata
;
sf_offset
=
(
subframe
*
frame_parms
->
samples_per_tti
)
+
offset
;
sf_offset
=
(
subframe
*
frame_parms
->
samples_per_tti
)
+
offset
;
...
...
targets/SIMU/USER/oaisim.c
View file @
ae989c72
...
@@ -737,19 +737,16 @@ l2l1_task (void *args_p)
...
@@ -737,19 +737,16 @@ l2l1_task (void *args_p)
CC_id
=
0
;
CC_id
=
0
;
int
all_done
=
0
;
int
all_done
=
0
;
while
(
all_done
==
0
)
{
while
(
all_done
==
0
)
{
pthread_mutex_lock
(
&
subframe_mutex
);
pthread_mutex_lock
(
&
subframe_mutex
);
int
subframe_ru_mask_local
=
subframe_ru_mask
;
int
subframe_ru_mask_local
=
(
subframe_select
(
&
RC
.
ru
[
0
]
->
frame_parms
,(
sf
+
4
)
%
10
)
!=
SF_UL
)
?
subframe_ru_mask
:
((
1
<<
NB_RU
)
-
1
)
;
int
subframe_UE_mask_local
=
subframe_UE_mask
;
int
subframe_UE_mask_local
=
(
RC
.
ru
[
0
]
->
frame_parms
.
frame_type
==
FDD
||
subframe_select
(
&
RC
.
ru
[
0
]
->
frame_parms
,(
sf
+
4
)
%
10
)
!=
SF_DL
)
?
subframe_UE_mask
:
((
1
<<
NB_UE_INST
)
-
1
)
;
pthread_mutex_unlock
(
&
subframe_mutex
);
pthread_mutex_unlock
(
&
subframe_mutex
);
LOG_D
(
EMU
,
"Frame %d, Subframe %d, NB_RU %d, NB_UE %d: Checking masks %x,%x
\n
"
,
frame
,
sf
,
NB_RU
,
NB_UE_INST
,
subframe_ru_mask_local
,
subframe_UE_mask_local
);
LOG_D
(
EMU
,
"Frame %d, Subframe %d, NB_RU %d, NB_UE %d: Checking masks %x,%x
\n
"
,
frame
,
sf
,
NB_RU
,
NB_UE_INST
,
subframe_ru_mask_local
,
subframe_UE_mask_local
);
if
((
subframe_ru_mask_local
==
((
1
<<
NB_RU
)
-
1
))
&&
if
((
subframe_ru_mask_local
==
((
1
<<
NB_RU
)
-
1
))
&&
(
subframe_UE_mask_local
==
((
1
<<
NB_UE_INST
)
-
1
)))
(
subframe_UE_mask_local
==
((
1
<<
NB_UE_INST
)
-
1
)))
all_done
=
1
;
all_done
=
1
;
else
usleep
(
1500
);
else
usleep
(
1500
);
}
}
...
@@ -816,18 +813,16 @@ l2l1_task (void *args_p)
...
@@ -816,18 +813,16 @@ l2l1_task (void *args_p)
fwrite (stats_buffer, 1, len, eNB_stats[eNB_inst]);
fwrite (stats_buffer, 1, len, eNB_stats[eNB_inst]);
fflush(eNB_stats[eNB_inst]);
fflush(eNB_stats[eNB_inst]);
}
}
*/
#ifdef OPENAIR2
#ifdef OPENAIR2
/*
if (eNB_l2_stats) {
if (eNB_l2_stats) {
len = dump_eNB_l2_stats (stats_buffer, 0);
len = dump_eNB_l2_stats (stats_buffer, 0);
rewind (eNB_l2_stats);
rewind (eNB_l2_stats);
fwrite (stats_buffer, 1, len, eNB_l2_stats);
fwrite (stats_buffer, 1, len, eNB_l2_stats);
fflush(eNB_l2_stats);
fflush(eNB_l2_stats);
}
}
*/
#endif
#endif
*/
#endif
#endif
}
}
}
// eNB_inst loop
}
// eNB_inst loop
...
@@ -1070,6 +1065,7 @@ void set_UE_defaults(int nb_ue) {
...
@@ -1070,6 +1065,7 @@ void set_UE_defaults(int nb_ue) {
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
pdcch_vars
[
i
][
0
]
->
agregationLevel
=
0xFF
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
pdcch_vars
[
i
][
0
]
->
agregationLevel
=
0xFF
;
}
}
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
current_dlsch_cqi
[
0
]
=
10
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
current_dlsch_cqi
[
0
]
=
10
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
tx_power_max_dBm
=
23
;
}
}
}
}
}
}
...
...
targets/SIMU/USER/oaisim_functions.c
View file @
ae989c72
...
@@ -1087,20 +1087,21 @@ int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
...
@@ -1087,20 +1087,21 @@ int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
subframe
=
(
last_ru_rx_timestamp
[
ru_id
][
CC_id
]
/
RC
.
ru
[
ru_id
]
->
frame_parms
.
samples_per_tti
)
%
10
;
subframe
=
(
last_ru_rx_timestamp
[
ru_id
][
CC_id
]
/
RC
.
ru
[
ru_id
]
->
frame_parms
.
samples_per_tti
)
%
10
;
LOG_D
(
EMU
,
"RU_trx_read generating UL subframe %d (Ts %llu, current TS %llu)
\n
"
,
if
(
subframe_select
(
&
RC
.
ru
[
ru_id
]
->
frame_parms
,
subframe
)
!=
SF_DL
||
RC
.
ru
[
ru_id
]
->
frame_parms
.
frame_type
==
FDD
)
{
subframe
,(
unsigned
long
long
)
*
ptimestamp
,
LOG_D
(
EMU
,
"RU_trx_read generating UL subframe %d (Ts %llu, current TS %llu)
\n
"
,
(
unsigned
long
long
)
current_ru_rx_timestamp
[
ru_id
][
CC_id
]);
subframe
,(
unsigned
long
long
)
*
ptimestamp
,
(
unsigned
long
long
)
current_ru_rx_timestamp
[
ru_id
][
CC_id
]);
do_UL_sig
(
UE2RU
,
enb_data
,
do_UL_sig
(
UE2RU
,
ue_data
,
enb_data
,
subframe
,
ue_data
,
0
,
// abstraction_flag
subframe
,
&
RC
.
ru
[
ru_id
]
->
frame_parms
,
0
,
// abstraction_flag
0
,
// frame is only used for abstraction
&
RC
.
ru
[
ru_id
]
->
frame_parms
,
ru_id
,
0
,
// frame is only used for abstraction
CC_id
);
ru_id
,
CC_id
);
}
last_ru_rx_timestamp
[
ru_id
][
CC_id
]
+=
RC
.
ru
[
ru_id
]
->
frame_parms
.
samples_per_tti
;
last_ru_rx_timestamp
[
ru_id
][
CC_id
]
+=
RC
.
ru
[
ru_id
]
->
frame_parms
.
samples_per_tti
;
sample_count
+=
RC
.
ru
[
ru_id
]
->
frame_parms
.
samples_per_tti
;
sample_count
+=
RC
.
ru
[
ru_id
]
->
frame_parms
.
samples_per_tti
;
}
}
...
@@ -1352,9 +1353,6 @@ void init_devices(void){
...
@@ -1352,9 +1353,6 @@ void init_devices(void){
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
rfdevice
.
trx_set_freq_func
=
UE_trx_set_freq
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
rfdevice
.
trx_set_freq_func
=
UE_trx_set_freq
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
rfdevice
.
trx_set_gains_func
=
UE_trx_set_gains
;
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
rfdevice
.
trx_set_gains_func
=
UE_trx_set_gains
;
last_UE_rx_timestamp
[
UE_id
][
CC_id
]
=
0
;
last_UE_rx_timestamp
[
UE_id
][
CC_id
]
=
0
;
}
}
}
}
}
}
...
@@ -1529,11 +1527,11 @@ void update_ocm()
...
@@ -1529,11 +1527,11 @@ void update_ocm()
//LOG_D(OMG," extracting position of eNb...\n");
//LOG_D(OMG," extracting position of eNb...\n");
//display_node_list(enb_node_list);
//display_node_list(enb_node_list);
// display_node_list(ue_node_list);
// display_node_list(ue_node_list);
extract_position
(
enb_node_list
,
enb_data
,
RC
.
nb_RU
);
//
extract_position(enb_node_list, enb_data, RC.nb_RU);
//extract_position_fixed_enb(enb_data, NB_eNB_INST,frame);
//extract_position_fixed_enb(enb_data, NB_eNB_INST,frame);
//LOG_D(OMG," extracting position of UE...\n");
//LOG_D(OMG," extracting position of UE...\n");
// if (oai_emulation.info.omg_model_ue == TRACE)
// if (oai_emulation.info.omg_model_ue == TRACE)
extract_position
(
ue_node_list
,
ue_data
,
NB_UE_INST
);
//
extract_position(ue_node_list, ue_data, NB_UE_INST);
/* if (frame % 50 == 0)
/* if (frame % 50 == 0)
LOG_N(OCM,"Path loss for TTI %d : \n", frame);
LOG_N(OCM,"Path loss for TTI %d : \n", frame);
...
...
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