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
promise
OpenXG-RAN
Commits
2e3ea07d
Commit
2e3ea07d
authored
6 years ago
by
Luis Ariza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Restoring provisional arrays
parent
44ef3b6c
Changes
28
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
311 additions
and
310 deletions
+311
-310
cmake_targets/build_oai
cmake_targets/build_oai
+1
-1
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+10
-6
openair1/PHY/INIT/lte_init.c
openair1/PHY/INIT/lte_init.c
+1
-1
openair1/PHY/INIT/lte_param_init.c
openair1/PHY/INIT/lte_param_init.c
+5
-2
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c
+4
-4
openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
+6
-6
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
+20
-20
openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
...air1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
+24
-24
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
+31
-31
openair1/PHY/LTE_TRANSPORT/dci.c
openair1/PHY/LTE_TRANSPORT/dci.c
+61
-61
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+3
-3
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
+6
-6
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+76
-76
openair1/PHY/LTE_TRANSPORT/initial_sync.c
openair1/PHY/LTE_TRANSPORT/initial_sync.c
+4
-4
openair1/PHY/LTE_TRANSPORT/phich.c
openair1/PHY/LTE_TRANSPORT/phich.c
+1
-1
openair1/PHY/LTE_TRANSPORT/pmch.c
openair1/PHY/LTE_TRANSPORT/pmch.c
+5
-5
openair1/PHY/LTE_TRANSPORT/pucch.c
openair1/PHY/LTE_TRANSPORT/pucch.c
+1
-1
openair1/PHY/LTE_TRANSPORT/sss.c
openair1/PHY/LTE_TRANSPORT/sss.c
+6
-6
openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
+3
-3
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+1
-1
openair1/PHY/MODULATION/slot_fep_mbsfn.c
openair1/PHY/MODULATION/slot_fep_mbsfn.c
+6
-6
openair1/SCHED/pucch_pc.c
openair1/SCHED/pucch_pc.c
+5
-5
openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
+1
-1
openair2/RRC/LITE/rrc_UE.c
openair2/RRC/LITE/rrc_UE.c
+8
-8
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf
...ERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf
+8
-8
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+4
-6
targets/RT/USER/lte-ue.c
targets/RT/USER/lte-ue.c
+6
-6
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+4
-8
No files found.
cmake_targets/build_oai
View file @
2e3ea07d
...
...
@@ -456,7 +456,7 @@ function main() {
echo_info
"Installing packages"
check_install_oai_software
if
[
"
$HW
"
==
"OAI_USRP"
]
;
then
echo_info
"installing packages for USRP support"
echo_info
"installing packages for USRP support
ok
"
check_install_usrp_uhd_driver
if
[
!
"
$DISABLE_HARDWARE_DEPENDENCY
"
==
"True"
]
;
then
install_usrp_uhd_driver
$UHD_IMAGES_DIR
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/tools/build_helper
View file @
2e3ea07d
...
...
@@ -240,16 +240,17 @@ install_protobuf_c_from_source(){
}
install_usrp_uhd_driver_from_source(){
echo "install usrp driver from source"
uhd_install_log=$OPENAIR_DIR/cmake_targets/log/uhd_install_log.txt
echo_info "\nInstalling UHD driver from sources. The log file for UHD driver installation is here: $uhd_install_log "
(
cd /tmp
echo "Downloading UHD driver"
rm -rf /tmp/uhd
git clone git
://github.com/EttusResearch/uhd.git
cd uhd
git checkout tags/release_003_010_001_001
mkdir -p host/build
#
rm -rf /tmp/uhd
#git clone https
://github.com/EttusResearch/uhd.git
3
cd uhd
#
git checkout tags/release_003_010_001_001
#
mkdir -p host/build
cd host/build
$CMAKE ../
echo "Compiling UHD"
...
...
@@ -266,7 +267,8 @@ check_install_usrp_uhd_driver(){
$SUDO apt-get remove -y uhd || true
$SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y
v=$(lsb_release -cs)
$SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main"
echo " uhd driver pipe $v"
#$SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main"
#The new USRP repository
$SUDO add-apt-repository ppa:ettusresearch/uhd -y
$SUDO apt-get update
...
...
@@ -285,6 +287,7 @@ check_install_usrp_uhd_driver(){
}
install_usrp_uhd_driver() {
echo "Installing usrp_uhd_driver"
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
# We move uhd-host apart because it depends on linux kernel version
# On newer kernels, it fails to install
...
...
@@ -292,6 +295,7 @@ install_usrp_uhd_driver() {
fi
if [ -z $1 ]; then
$SUDO uhd_images_downloader
echo "Install in folder $1"
else
$SUDO uhd_images_downloader -i $1
fi
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/INIT/lte_init.c
View file @
2e3ea07d
...
...
@@ -1104,8 +1104,8 @@ int phy_init_lte_ue(PHY_VARS_UE *ue,
//ue->current_thread_id = (uint8_t*)malloc16( 10*sizeof(uint8_t) );
for
(
i
=
0
;
i
<
10
;
i
++
)
{
ue
->
current_thread_id
[
i
]
=
i
%
2
;
current_thread_id
[
i
]
=
i
%
2
;
ue
->
current_thread_id
[
i
]
=
i
%
2
;
printf
(
"ue->Mod_id %d, thread %d = %d
\n
"
,
ue
->
Mod_id
,
i
,
ue
->
current_thread_id
[
i
]);
}
printf
(
"Initializing UE vars (abstraction %"
PRIu8
") for eNB TXant %"
PRIu8
", UE RXant %"
PRIu8
"
\n
"
,
abstraction_flag
,
fp
->
nb_antennas_tx
,
fp
->
nb_antennas_rx
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/INIT/lte_param_init.c
View file @
2e3ea07d
...
...
@@ -130,8 +130,11 @@ void lte_param_init(unsigned char N_tx_port_eNB,
UE
->
perfect_ce
=
perfect_ce
;
/* the UE code is multi-thread "aware", we need to setup this array */
//for (i = 0; i < 10; i++) UE->current_thread_id[i] = i % 2;
for
(
i
=
0
;
i
<
10
;
i
++
)
{
UE
->
current_thread_id
[
i
]
=
i
%
2
;
printf
(
"[lte_param_id] ue->Mod_id %d, thread %d = %d
\n
"
,
UE
->
Mod_id
,
i
,
UE
->
current_thread_id
[
i
]);
}
printf
(
"Done lte_param_init
\n
"
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c
View file @
2e3ea07d
...
...
@@ -60,8 +60,8 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms,
temp
=
0
;
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_rx
;
aa
++
)
{
Re
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_id
][
aa
])[(
i
<<
2
)];
Im
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_id
][
aa
])[
1
+
(
i
<<
2
)];
Re
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_id
][
aa
])[(
i
<<
2
)];
Im
=
((
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_id
][
aa
])[
1
+
(
i
<<
2
)];
temp
+=
(
Re
*
Re
/
2
)
+
(
Im
*
Im
/
2
);
}
...
...
@@ -119,9 +119,9 @@ void lte_adjust_synch(LTE_DL_FRAME_PARMS *frame_parms,
#ifdef DEBUG_PHY
LOG_D
(
PHY
,
"AbsSubframe %d.%d: ThreadId %d diff =%i rx_offset (final) = %i : clear %d,max_pos = %d,max_pos_fil = %d (peak %d) max_val %d target_pos %d
\n
"
,
ue
->
proc
.
proc_rxtx
[
current_thread_id
[
subframe
]].
frame_rx
,
ue
->
proc
.
proc_rxtx
[
ue
->
current_thread_id
[
subframe
]].
frame_rx
,
subframe
,
current_thread_id
[
subframe
],
ue
->
current_thread_id
[
subframe
],
diff
,
ue
->
rx_offset
,
clear
,
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
View file @
2e3ea07d
...
...
@@ -52,7 +52,7 @@ int lte_dl_bf_channel_estimation_freq(PHY_VARS_UE *phy_vars_ue,
int
uespec_pilot
[
300
];
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
phy_vars_ue
->
frame_parms
;
LTE_UE_DLSCH_t
**
dlsch_ue
=
phy_vars_ue
->
dlsch
[
current_thread_id
[
Ns
>>
1
]][
eNB_id
];
LTE_UE_DLSCH_t
**
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]][
eNB_id
];
LTE_DL_UE_HARQ_t
*
dlsch0_harq
;
harq_pid
=
dlsch_ue
[
0
]
->
current_harq_pid
;
...
...
@@ -64,9 +64,9 @@ int lte_dl_bf_channel_estimation_freq(PHY_VARS_UE *phy_vars_ue,
else
rballoc
=
dlsch0_harq
->
rb_alloc_even
;
rxdataF
=
phy_vars_ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
rxdataF
;
rxdataF
=
phy_vars_ue
->
common_vars
.
common_vars_rx_data_per_thread
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]].
rxdataF
;
dl_bf_ch_estimates
=
phy_vars_ue
->
pdsch_vars
[
current_thread_id
[
Ns
>>
1
]][
eNB_id
]
->
dl_bf_ch_estimates
;
dl_bf_ch_estimates
=
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]][
eNB_id
]
->
dl_bf_ch_estimates
;
beamforming_mode
=
phy_vars_ue
->
transmission_mode
[
eNB_id
]
>
6
?
phy_vars_ue
->
transmission_mode
[
eNB_id
]
:
0
;
if
(
phy_vars_ue
->
high_speed_flag
==
0
)
// use second channel estimate position for temporary storage
...
...
@@ -766,7 +766,7 @@ int lte_dl_bf_channel_estimation(PHY_VARS_UE *phy_vars_ue,
int
uespec_pilot
[
300
];
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
phy_vars_ue
->
frame_parms
;
LTE_UE_DLSCH_t
**
dlsch_ue
=
phy_vars_ue
->
dlsch
[
current_thread_id
[
Ns
>>
1
]][
eNB_id
];
LTE_UE_DLSCH_t
**
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]][
eNB_id
];
LTE_DL_UE_HARQ_t
*
dlsch0_harq
;
harq_pid
=
dlsch_ue
[
0
]
->
current_harq_pid
;
...
...
@@ -778,9 +778,9 @@ int lte_dl_bf_channel_estimation(PHY_VARS_UE *phy_vars_ue,
else
rballoc
=
dlsch0_harq
->
rb_alloc_even
;
rxdataF
=
phy_vars_ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
rxdataF
;
rxdataF
=
phy_vars_ue
->
common_vars
.
common_vars_rx_data_per_thread
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]].
rxdataF
;
dl_bf_ch_estimates
=
phy_vars_ue
->
pdsch_vars
[
current_thread_id
[
Ns
>>
1
]][
eNB_id
]
->
dl_bf_ch_estimates
;
dl_bf_ch_estimates
=
phy_vars_ue
->
pdsch_vars
[
phy_vars_ue
->
current_thread_id
[
Ns
>>
1
]][
eNB_id
]
->
dl_bf_ch_estimates
;
beamforming_mode
=
phy_vars_ue
->
transmission_mode
[
eNB_id
]
>
6
?
phy_vars_ue
->
transmission_mode
[
eNB_id
]
:
0
;
if
(
phy_vars_ue
->
high_speed_flag
==
0
)
// use second channel estimate position for temporary storage
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
View file @
2e3ea07d
...
...
@@ -51,10 +51,10 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue,
uint16_t
Nid_cell
=
(
eNB_offset
==
0
)
?
ue
->
frame_parms
.
Nid_cell
:
ue
->
measurements
.
adj_cell_id
[
eNB_offset
-
1
];
uint8_t
nushift
,
pilot0
,
pilot1
,
pilot2
,
pilot3
;
uint8_t
previous_thread_id
=
current_thread_id
[
Ns
>>
1
]
==
0
?
(
RX_NB_TH
-
1
)
:
(
current_thread_id
[
Ns
>>
1
]
-
1
);
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates
[
eNB_offset
];
uint8_t
previous_thread_id
=
ue
->
current_thread_id
[
Ns
>>
1
]
==
0
?
(
RX_NB_TH
-
1
)
:
(
ue
->
current_thread_id
[
Ns
>>
1
]
-
1
);
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates
[
eNB_offset
];
int
**
dl_ch_estimates_previous
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
previous_thread_id
].
dl_ch_estimates
[
eNB_offset
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
rxdataF
;
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]].
rxdataF
;
pilot0
=
0
;
if
(
ue
->
frame_parms
.
Ncp
==
0
)
{
// normal prefix
...
...
@@ -95,7 +95,7 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue,
k
=
(
nu
+
nushift
)
%
6
;
#ifdef DEBUG_CH
printf
(
"Channel Estimation : ThreadId %d, eNB_offset %d cell_id %d ch_offset %d, OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d
\n
"
,
current_thread_id
[
Ns
>>
1
],
eNB_offset
,
Nid_cell
,
ch_offset
,
ue
->
frame_parms
.
ofdm_symbol_size
,
printf
(
"Channel Estimation : ThreadId %d, eNB_offset %d cell_id %d ch_offset %d, OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d
\n
"
,
ue
->
current_thread_id
[
Ns
>>
1
],
eNB_offset
,
Nid_cell
,
ch_offset
,
ue
->
frame_parms
.
ofdm_symbol_size
,
ue
->
frame_parms
.
Ncp
,
l
,
Ns
,
k
);
#endif
...
...
@@ -804,18 +804,18 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue,
// do ifft of channel estimate
for
(
aarx
=
0
;
aarx
<
ue
->
frame_parms
.
nb_antennas_rx
;
aarx
++
)
for
(
p
=
0
;
p
<
ue
->
frame_parms
.
nb_antenna_ports_eNB
;
p
++
)
{
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
])
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
])
{
//LOG_I(PHY,"Channel Impulse Computation Slot %d ThreadId %d Symbol %d \n", Ns, current_thread_id[Ns>>1], l);
idft
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates_time
[
eNB_offset
][(
p
<<
1
)
+
aarx
],
1
);
//LOG_I(PHY,"Channel Impulse Computation Slot %d ThreadId %d Symbol %d \n", Ns,
ue->
current_thread_id[Ns>>1], l);
idft
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates
[
eNB_offset
][(
p
<<
1
)
+
aarx
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates_time
[
eNB_offset
][(
p
<<
1
)
+
aarx
],
1
);
}
}
}
#if T_TRACER
T
(
T_UE_PHY_DL_CHANNEL_ESTIMATE
,
T_INT
(
eNB_id
),
T_INT
(
ue
->
Mod_id
),
T_INT
(
ue
->
proc
.
proc_rxtx
[
current_thread_id
[
Ns
>>
1
]].
frame_rx
%
1024
),
T_INT
(
ue
->
proc
.
proc_rxtx
[
current_thread_id
[
Ns
>>
1
]].
subframe_rx
),
T_INT
(
0
),
T_BUFFER
(
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates_time
[
eNB_offset
][
0
][
0
],
512
*
4
));
T_INT
(
ue
->
proc
.
proc_rxtx
[
ue
->
current_thread_id
[
Ns
>>
1
]].
frame_rx
%
1024
),
T_INT
(
ue
->
proc
.
proc_rxtx
[
ue
->
current_thread_id
[
Ns
>>
1
]].
subframe_rx
),
T_INT
(
0
),
T_BUFFER
(
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]].
dl_ch_estimates_time
[
eNB_offset
][
0
][
0
],
512
*
4
));
#endif
return
(
0
);
...
...
@@ -841,10 +841,10 @@ int lte_dl_channel_estimation_freq(PHY_VARS_UE *ue,
uint16_t
Nid_cell
=
(
eNB_offset
==
0
)
?
ue
->
frame_parms
.
Nid_cell
:
ue
->
measurements
.
adj_cell_id
[
eNB_offset
-
1
];
uint8_t
nushift
,
pilot0
,
pilot1
,
pilot2
,
pilot3
;
uint8_t
previous_thread_id
=
current_thread_id
[
Ns
>>
1
]
==
0
?
(
RX_NB_TH
-
1
)
:
(
current_thread_id
[
Ns
>>
1
]
-
1
);
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
&
0x1
].
dl_ch_estimates
[
eNB_offset
];
int
**
dl_ch_estimates_previous
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
((
Ns
>>
1
)
&
0x1
)
==
1
?
1
:
0
].
dl_ch_estimates
[
eNB_offset
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
(
Ns
>>
1
)
&
0x1
].
rxdataF
;
uint8_t
previous_thread_id
=
ue
->
current_thread_id
[
Ns
>>
1
]
==
0
?
(
RX_NB_TH
-
1
)
:
(
ue
->
current_thread_id
[
Ns
>>
1
]
-
1
);
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
dl_ch_estimates
[
eNB_offset
];
int
**
dl_ch_estimates_previous
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
previous_thread_id
].
dl_ch_estimates
[
eNB_offset
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
Ns
>>
1
]
].
rxdataF
;
int
subframe
=
Ns
>>
1
;
pilot0
=
0
;
...
...
@@ -1595,18 +1595,18 @@ int lte_dl_channel_estimation_freq(PHY_VARS_UE *ue,
// do ifft of channel estimate
for (aarx=0; aarx<ue->frame_parms.nb_antennas_rx; aarx++)
for (p=0; p<ue->frame_parms.nb_antenna_ports_eNB; p++) {
if (ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx])
if (ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx])
{
//LOG_I(PHY,"Channel Impulse Computation Slot %d ThreadId %d Symbol %d \n", Ns, current_thread_id[Ns>>1], l);
idft((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][(p<<1)+aarx],1);
//LOG_I(PHY,"Channel Impulse Computation Slot %d ThreadId %d Symbol %d \n", Ns,
ue->
current_thread_id[Ns>>1], l);
idft((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][(p<<1)+aarx],1);
}
}
}
#if T_TRACER
T(T_UE_PHY_DL_CHANNEL_ESTIMATE, T_INT(eNB_id), T_INT(ue->Mod_id),
T_INT(ue->proc.proc_rxtx[
current_thread_id[Ns>>1]].frame_rx%1024), T_INT(ue->proc.proc_rxtx[
current_thread_id[Ns>>1]].subframe_rx),
T_INT(0), T_BUFFER(&ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][0][0], 512 * 4));
T_INT(ue->proc.proc_rxtx[
ue->current_thread_id[Ns>>1]].frame_rx%1024), T_INT(ue->proc.proc_rxtx[ue->
current_thread_id[Ns>>1]].subframe_rx),
T_INT(0), T_BUFFER(&ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][0][0], 512 * 4));
#endif*/
return
(
0
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
View file @
2e3ea07d
...
...
@@ -45,8 +45,8 @@ int lte_dl_mbsfn_channel_estimation(PHY_VARS_UE *ue,
// unsigned int n;
// int i;
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
0
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
;
int
**
dl_ch_estimates
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
0
];
int
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
;
ch_offset
=
(
l
*
(
ue
->
frame_parms
.
ofdm_symbol_size
));
symbol_offset
=
ch_offset
;
//phy_vars_ue->lte_frame_parms.ofdm_symbol_size*l;
...
...
@@ -735,31 +735,31 @@ int lte_dl_mbsfn_channel_estimation(PHY_VARS_UE *ue,
// do ifft of channel estimate
for
(
aa
=
0
;
aa
<
ue
->
frame_parms
.
nb_antennas_rx
*
ue
->
frame_parms
.
nb_antennas_tx
;
aa
++
)
{
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
])
{
if
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
])
{
switch
(
ue
->
frame_parms
.
N_RB_DL
)
{
case
6
:
idft128
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft128
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
25
:
idft512
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft512
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
50
:
idft1024
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft1024
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
75
:
idft1536
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft1536
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
case
100
:
idft2048
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
idft2048
((
int16_t
*
)
&
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_offset
][
aa
][
8
],
(
int16_t
*
)
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates_time
[
eNB_offset
][
aa
],
1
);
break
;
default:
...
...
@@ -1479,31 +1479,31 @@ int lte_dl_mbsfn_channel_estimation_freq(PHY_VARS_UE *ue,
// do ifft of channel estimate
/*
for (aa=0; aa<ue->frame_parms.nb_antennas_rx*ue->frame_parms.nb_antennas_tx; aa++) {
if (ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa]) {
if (ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa]) {
switch (ue->frame_parms.N_RB_DL) {
case 6:
idft128((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
idft128((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
1);
break;
case 25:
idft512((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
idft512((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
1);
break;
case 50:
idft1024((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
idft1024((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
1);
break;
case 75:
idft1536((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
idft1536((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
1);
break;
case 100:
idft2048((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
idft2048((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates[eNB_offset][aa][8],
(int16_t*) ue->common_vars.common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].dl_ch_estimates_time[eNB_offset][aa],
1);
break;
default:
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c
View file @
2e3ea07d
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/dci.c
View file @
2e3ea07d
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
2e3ea07d
...
...
@@ -7355,7 +7355,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
uint8_t
transmission_mode
=
ue
->
transmission_mode
[
eNB_id
];
ANFBmode_t
AckNackFBMode
;
LTE_UE_ULSCH_t
*
ulsch
=
ue
->
ulsch
[
eNB_id
];
LTE_UE_DLSCH_t
**
dlsch
=
ue
->
dlsch
[
current_thread_id
[
subframe
]][
0
];
LTE_UE_DLSCH_t
**
dlsch
=
ue
->
dlsch
[
ue
->
current_thread_id
[
subframe
]][
0
];
PHY_MEASUREMENTS
*
meas
=
&
ue
->
measurements
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
// uint32_t current_dlsch_cqi = ue->current_dlsch_cqi[eNB_id];
...
...
@@ -8162,7 +8162,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
//int dl_subframe = (subframe<4) ? (subframe+6) : (subframe-4);
int
dl_subframe
=
subframe
;
if
(
ue
->
dlsch
[
current_thread_id
[
subframe
]][
eNB_id
][
0
]
->
harq_ack
[
dl_subframe
].
send_harq_status
>
0
)
{
// we have downlink transmission
if
(
ue
->
dlsch
[
ue
->
current_thread_id
[
subframe
]][
eNB_id
][
0
]
->
harq_ack
[
dl_subframe
].
send_harq_status
>
0
)
{
// we have downlink transmission
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
1
;
}
else
{
ulsch
->
harq_processes
[
harq_pid
]
->
O_ACK
=
0
;
...
...
@@ -8921,7 +8921,7 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe)
uint8_t
transmission_mode
=
ue
->
transmission_mode
[
eNB_id
];
PHY_MEASUREMENTS
*
meas
=
&
ue
->
measurements
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
int32_t
**
dl_channel_est
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
];
int32_t
**
dl_channel_est
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
];
double
*
s_dB
;
s_dB
=
ue
->
sinr_CQI_dB
;
// LTE_UE_ULSCH_t *ulsch = ue->ulsch[eNB_id];
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
View file @
2e3ea07d
...
...
@@ -272,7 +272,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
return(max_turbo_iterations);
}*/
/*harq_pid = dlsch->current_harq_pid[current_thread_id[subframe]];
/*harq_pid = dlsch->current_harq_pid[
phy_vars_ue->
current_thread_id[subframe]];
if (harq_pid >= 8) {
printf("dlsch_decoding.c: Illegal harq_pid %d\n",harq_pid);
return(max_turbo_iterations);
...
...
@@ -962,9 +962,9 @@ uint32_t dlsch_decoding_emul(PHY_VARS_UE *phy_vars_ue,
break
;
case
PDSCH
:
// TB0
dlsch_ue
=
phy_vars_ue
->
dlsch
[
current_thread_id
[
subframe
]][
eNB_id
][
0
];
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
][
0
];
harq_pid
=
dlsch_ue
->
current_harq_pid
;
ue_id
=
(
uint32_t
)
find_ue
((
int16_t
)
phy_vars_ue
->
pdcch_vars
[
current_thread_id
[
subframe
]][(
uint32_t
)
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]);
ue_id
=
(
uint32_t
)
find_ue
((
int16_t
)
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][(
uint32_t
)
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]);
DevAssert
(
ue_id
!=
(
uint32_t
)
-
1
);
dlsch_eNB
=
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
->
dlsch
[
ue_id
][
0
];
...
...
@@ -1008,9 +1008,9 @@ uint32_t dlsch_decoding_emul(PHY_VARS_UE *phy_vars_ue,
break
;
case
PDSCH1
:
{
// TB1
dlsch_ue
=
phy_vars_ue
->
dlsch
[
current_thread_id
[
subframe
]][
eNB_id
][
1
];
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
][
1
];
harq_pid
=
dlsch_ue
->
current_harq_pid
;
int8_t
UE_id
=
find_ue
(
phy_vars_ue
->
pdcch_vars
[
current_thread_id
[
subframe
]][
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
);
int8_t
UE_id
=
find_ue
(
phy_vars_ue
->
pdcch_vars
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
]
->
crnti
,
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
);
DevAssert
(
UE_id
!=
-
1
);
dlsch_eNB
=
PHY_vars_eNB_g
[
eNB_id2
][
CC_id
]
->
dlsch
[
UE_id
][
1
];
// reset HARQ
...
...
@@ -1062,7 +1062,7 @@ uint32_t dlsch_decoding_emul(PHY_VARS_UE *phy_vars_ue,
break
;
default:
dlsch_ue
=
phy_vars_ue
->
dlsch
[
current_thread_id
[
subframe
]][
eNB_id
][
0
];
dlsch_ue
=
phy_vars_ue
->
dlsch
[
phy_vars_ue
->
current_thread_id
[
subframe
]][
eNB_id
][
0
];
LOG_E
(
PHY
,
"dlsch_decoding_emul: FATAL, unknown DLSCH_id %d
\n
"
,
dlsch_id
);
dlsch_ue
->
last_iteration_cnt
=
1
+
dlsch_ue
->
max_turbo_iterations
;
return
(
1
+
dlsch_ue
->
max_turbo_iterations
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
View file @
2e3ea07d
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/initial_sync.c
View file @
2e3ea07d
...
...
@@ -86,7 +86,7 @@ int pbch_detection(PHY_VARS_UE *ue, runmode_t mode)
0
,
0
);
printf
(
"after lte_ue_measurements:TDD? %d UE %d, dig %3.1f
\n
"
,
ue
->
frame_parms
.
frame_type
,
ue
->
Mod_id
,
10
*
log10
(
ue
->
measurements
.
rssi
));
//
printf("after lte_ue_measurements:TDD? %d UE %d, dig %3.1f\n",ue->frame_parms.frame_type,ue->Mod_id,10*log10(ue->measurements.rssi));
if
(
ue
->
frame_parms
.
frame_type
==
TDD
)
{
ue_rrc_measurements
(
ue
,
2
,
...
...
@@ -97,7 +97,7 @@ int pbch_detection(PHY_VARS_UE *ue, runmode_t mode)
0
,
0
);
}
printf
(
" after ue_rrc_measurements_freq: UE %d, dig %3.1f
\n
"
,
ue
->
Mod_id
,
10
*
log10
(
ue
->
measurements
.
rssi
));
//
printf(" after ue_rrc_measurements_freq: UE %d, dig %3.1f\n",ue->Mod_id,10*log10(ue->measurements.rssi));
//#ifdef DEBUG_INITIAL_SYNCH
LOG_I
(
PHY
,
"[UE %d] RX RSSI %d dBm, digital (%d, %d) dB, linear (%d, %d), avg rx power %d dB (%d lin), RX gain %d dB
\n
"
,
ue
->
Mod_id
,
...
...
@@ -303,7 +303,7 @@ int pbch_detection_freq(PHY_VARS_UE *ue, runmode_t mode)
0
,
0
,
0
);
printf
(
" after lte_ue_measurements_freq: UE %d, dig %3.1f
\n
"
,
ue
->
Mod_id
,
10
*
log10
(
ue
->
measurements
.
rssi
));
//
printf(" after lte_ue_measurements_freq: UE %d, dig %3.1f\n",ue->Mod_id,10*log10(ue->measurements.rssi));
if
(
ue
->
frame_parms
.
frame_type
==
TDD
)
{
ue_rrc_measurements_freq
(
ue
,
...
...
@@ -315,7 +315,7 @@ int pbch_detection_freq(PHY_VARS_UE *ue, runmode_t mode)
0
,
0
);
}
printf
(
" after ue_rrc_measurements_freq: TDD? %d UE %d, dig %3.1f
\n
"
,
ue
->
frame_parms
.
frame_type
,
ue
->
Mod_id
,
10
*
log10
(
ue
->
measurements
.
rssi
));
//
printf(" after ue_rrc_measurements_freq: TDD? %d UE %d, dig %3.1f\n",ue->frame_parms.frame_type,ue->Mod_id,10*log10(ue->measurements.rssi));
//#ifdef DEBUG_INITIAL_SYNCH
LOG_I
(
PHY
,
"[UE %d] RX RSSI %d dBm, digital (%d, %d) dB, linear (%d, %d), avg rx power %d dB (%d lin), RX gain %d dB
\n
"
,
ue
->
Mod_id
,
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/phich.c
View file @
2e3ea07d
...
...
@@ -1078,7 +1078,7 @@ void rx_phich(PHY_VARS_UE *ue,
LTE_DL_FRAME_PARMS
*
frame_parms
=&
ue
->
frame_parms
;
LTE_UE_PDCCH
**
pdcch_vars
=
&
ue
->
pdcch_vars
[
current_thread_id
[
subframe
]][
eNB_id
];
LTE_UE_PDCCH
**
pdcch_vars
=
&
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
subframe
]][
eNB_id
];
// uint8_t HI;
uint8_t
harq_pid
=
phich_subframe_to_harq_pid
(
frame_parms
,
proc
->
frame_rx
,
subframe
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/pmch.c
View file @
2e3ea07d
...
...
@@ -74,7 +74,7 @@ void dump_mch(PHY_VARS_UE *ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,in
write_output
(
fname
,
vname
,
ue
->
pdsch_vars_MCH
[
eNB_id
]
->
dl_ch_magb0
[
0
],
12
*
N_RB_DL
*
nsymb_pmch
,
1
,
1
);
write_output
(
"mch00_ch0.m"
,
"pmch00_ch0"
,
&
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
][
0
][
0
]),
&
(
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
][
0
][
0
]),
ue
->
frame_parms
.
ofdm_symbol_size
*
12
,
1
,
1
);
write_output
(
"rxsig_mch.m"
,
"rxs_mch"
,
...
...
@@ -1022,16 +1022,16 @@ int rx_pmch(PHY_VARS_UE *ue,
//printf("*********************mch: symbol %d\n",symbol);
if
(
ue
->
do_ofdm_mod
)
mch_extract_rbs_freq
(
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
],
mch_extract_rbs_freq
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
symbol
,
subframe
,
frame_parms
);
else
mch_extract_rbs
(
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
],
mch_extract_rbs
(
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
,
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
dl_ch_estimates
[
eNB_id
],
pdsch_vars
[
eNB_id
]
->
rxdataF_ext
,
pdsch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
symbol
,
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/pucch.c
View file @
2e3ea07d
...
...
@@ -2531,7 +2531,7 @@ int32_t rx_pucch_emul(PHY_VARS_eNB *eNB,
rnti
=
eNB
->
ulsch
[
UE_index
]
->
rnti
;
for
(
UE_id
=
0
;
UE_id
<
NB_UE_INST
;
UE_id
++
)
{
if
(
rnti
==
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
pdcch_vars
[
current_thread_id
[
subframe
]][
0
]
->
crnti
)
if
(
rnti
==
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
pdcch_vars
[
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
current_thread_id
[
subframe
]][
0
]
->
crnti
)
break
;
}
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/sss.c
View file @
2e3ea07d
...
...
@@ -160,7 +160,7 @@ int _do_pss_sss_extract(PHY_VARS_UE *ue,
int32_t
*
pss_rxF
,
*
pss_rxF_ext
;
int32_t
*
sss_rxF
,
*
sss_rxF_ext
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
uint8_t
next_thread_id
=
current_thread_id
[
subframe
]
==
(
RX_NB_TH
-
1
)
?
0
:
(
current_thread_id
[
subframe
]
+
1
);
uint8_t
next_thread_id
=
ue
->
current_thread_id
[
subframe
]
==
(
RX_NB_TH
-
1
)
?
0
:
(
ue
->
current_thread_id
[
subframe
]
+
1
);
int
rx_offset
=
frame_parms
->
ofdm_symbol_size
-
3
*
12
;
uint8_t
pss_symb
,
sss_symb
;
...
...
@@ -174,7 +174,7 @@ int _do_pss_sss_extract(PHY_VARS_UE *ue,
pss_symb
=
6
-
frame_parms
->
Ncp
;
sss_symb
=
pss_symb
-
1
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
;
pss_rxF
=
&
rxdataF
[
aarx
][(
rx_offset
+
(
pss_symb
*
(
frame_parms
->
ofdm_symbol_size
)))];
sss_rxF
=
&
rxdataF
[
aarx
][(
rx_offset
+
(
sss_symb
*
(
frame_parms
->
ofdm_symbol_size
)))];
...
...
@@ -184,7 +184,7 @@ int _do_pss_sss_extract(PHY_VARS_UE *ue,
if
(
subframe
==
5
||
subframe
==
0
)
{
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
;
sss_rxF
=
&
rxdataF
[
aarx
][(
rx_offset
+
(
sss_symb
*
(
frame_parms
->
ofdm_symbol_size
)))];
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
next_thread_id
].
rxdataF
;
...
...
@@ -192,7 +192,7 @@ int _do_pss_sss_extract(PHY_VARS_UE *ue,
}
else
if
(
subframe
==
6
||
subframe
==
1
)
{
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
;
pss_rxF
=
&
rxdataF
[
aarx
][(
rx_offset
+
(
pss_symb
*
(
frame_parms
->
ofdm_symbol_size
)))];
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
next_thread_id
].
rxdataF
;
...
...
@@ -223,7 +223,7 @@ int _do_pss_sss_extract(PHY_VARS_UE *ue,
{
if
(
subframe
==
5
||
subframe
==
0
)
{
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
;
sss_rxF
=
&
rxdataF
[
aarx
][(
1
+
(
sss_symb
*
(
frame_parms
->
ofdm_symbol_size
)))];
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
next_thread_id
].
rxdataF
;
...
...
@@ -231,7 +231,7 @@ int _do_pss_sss_extract(PHY_VARS_UE *ue,
}
else
if
(
subframe
==
6
||
subframe
==
1
)
{
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
;
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
;
pss_rxF
=
&
rxdataF
[
aarx
][(
rx_offset
+
(
pss_symb
*
(
frame_parms
->
ofdm_symbol_size
)))];
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
next_thread_id
].
rxdataF
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
View file @
2e3ea07d
...
...
@@ -262,7 +262,7 @@ uint32_t ulsch_encoding(uint8_t *a,
// fill CQI/PMI information
if
(
ulsch
->
O
>
0
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING_FILL_CQI
,
VCD_FUNCTION_IN
);
rnti
=
ue
->
pdcch_vars
[
current_thread_id
[
subframe_rx
]][
eNB_id
]
->
crnti
;
rnti
=
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
subframe_rx
]][
eNB_id
]
->
crnti
;
fill_CQI
(
ulsch
,
meas
,
0
,
harq_pid
,
ue
->
frame_parms
.
N_RB_DL
,
rnti
,
tmode
,
ue
->
sinr_eff
);
LOG_D
(
PHY
,
"ULSCH Encoding rnti %x
\n
"
,
rnti
);
...
...
@@ -971,7 +971,7 @@ int ulsch_encoding_emul(uint8_t *ulsch_buffer,
LTE_UE_DLSCH_t
**
dlsch
=
ue
->
dlsch
[
0
][
eNB_id
];
PHY_MEASUREMENTS
*
meas
=
&
ue
->
measurements
;
uint8_t
tmode
=
ue
->
transmission_mode
[
eNB_id
];
uint16_t
rnti
=
ue
->
pdcch_vars
[
current_thread_id
[
subframe_rx
]][
eNB_id
]
->
crnti
;
uint16_t
rnti
=
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
subframe_rx
]][
eNB_id
]
->
crnti
;
LOG_D
(
PHY
,
"EMUL UE ulsch_encoding for eNB %d,mod_id %d, harq_pid %d rnti %x, ACK(%d,%d)
\n
"
,
eNB_id
,
ue
->
Mod_id
,
harq_pid
,
rnti
,
ulsch
->
o_ACK
[
0
],
ulsch
->
o_ACK
[
1
]);
...
...
@@ -1005,7 +1005,7 @@ int ulsch_encoding_emul(uint8_t *ulsch_buffer,
//UE_transport_info_TB_index[ue->Mod_id]+=ue->ulsch[eNB_id]->harq_processes[harq_pid]->TBS>>3;
// navid: currently more than one eNB is not supported in the code
UE_transport_info
[
ue
->
Mod_id
][
ue
->
CC_id
].
num_eNB
=
1
;
UE_transport_info
[
ue
->
Mod_id
][
ue
->
CC_id
].
rnti
[
0
]
=
ue
->
pdcch_vars
[
current_thread_id
[
subframe_rx
]][
0
]
->
crnti
;
UE_transport_info
[
ue
->
Mod_id
][
ue
->
CC_id
].
rnti
[
0
]
=
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
subframe_rx
]][
0
]
->
crnti
;
UE_transport_info
[
ue
->
Mod_id
][
ue
->
CC_id
].
eNB_id
[
0
]
=
eNB_id
;
UE_transport_info
[
ue
->
Mod_id
][
ue
->
CC_id
].
harq_pid
[
0
]
=
harq_pid
;
UE_transport_info
[
ue
->
Mod_id
][
ue
->
CC_id
].
tbs
[
0
]
=
ue
->
ulsch
[
eNB_id
]
->
harq_processes
[
harq_pid
]
->
TBS
>>
3
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
View file @
2e3ea07d
...
...
@@ -2002,7 +2002,7 @@ uint32_t ulsch_decoding_emul(PHY_VARS_eNB *eNB, eNB_rxtx_proc_t *proc,
#endif
for
(
UE_id
=
0
;
UE_id
<
NB_UE_INST
;
UE_id
++
)
{
if
(
rnti
==
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
pdcch_vars
[
current_thread_id
[
subframe
]][
0
]
->
crnti
)
if
(
rnti
==
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
pdcch_vars
[
PHY_vars_UE_g
[
UE_id
][
CC_id
]
->
current_thread_id
[
subframe
]][
0
]
->
crnti
)
break
;
}
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/MODULATION/slot_fep_mbsfn.c
View file @
2e3ea07d
...
...
@@ -110,7 +110,7 @@ int slot_fep_mbsfn(PHY_VARS_UE *ue,
#endif
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_rx
;
aa
++
)
{
memset
(
&
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
[
aa
][
frame_parms
->
ofdm_symbol_size
*
l
],
0
,
frame_parms
->
ofdm_symbol_size
*
sizeof
(
int
));
memset
(
&
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
[
aa
][
frame_parms
->
ofdm_symbol_size
*
l
],
0
,
frame_parms
->
ofdm_symbol_size
*
sizeof
(
int
));
if
(
l
==
0
)
{
#if UE_TIMING_TRACE
start_meas
(
&
ue
->
rx_dft_stats
);
...
...
@@ -119,7 +119,7 @@ int slot_fep_mbsfn(PHY_VARS_UE *ue,
nb_prefix_samples0
+
subframe_offset
-
SOFFSET
)
%
frame_length_samples
],
(
int16_t
*
)
&
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
[
aa
][
frame_parms
->
ofdm_symbol_size
*
l
],
1
);
(
int16_t
*
)
&
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
[
aa
][
frame_parms
->
ofdm_symbol_size
*
l
],
1
);
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
rx_dft_stats
);
#endif
...
...
@@ -141,7 +141,7 @@ int slot_fep_mbsfn(PHY_VARS_UE *ue,
(
frame_parms
->
ofdm_symbol_size
+
nb_prefix_samples
)
*
(
l
-
1
)
+
subframe_offset
-
SOFFSET
)
%
frame_length_samples
],
(
int16_t
*
)
&
common_vars
->
common_vars_rx_data_per_thread
[
current_thread_id
[
subframe
]].
rxdataF
[
aa
][
frame_parms
->
ofdm_symbol_size
*
l
],
1
);
(
int16_t
*
)
&
common_vars
->
common_vars_rx_data_per_thread
[
ue
->
current_thread_id
[
subframe
]].
rxdataF
[
aa
][
frame_parms
->
ofdm_symbol_size
*
l
],
1
);
#if UE_TIMING_TRACE
stop_meas
(
&
ue
->
rx_dft_stats
);
#endif
...
...
@@ -287,7 +287,7 @@ int slot_fep_mbsfn_freq(PHY_VARS_UE *ue,
#endif
/*for (aa=0; aa<frame_parms->nb_antennas_rx; aa++) {
memset(&common_vars->common_vars_rx_data_per_thread[current_thread_id[subframe]].rxdataF[aa][frame_parms->ofdm_symbol_size*l],0,frame_parms->ofdm_symbol_size*sizeof(int));
memset(&common_vars->common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].rxdataF[aa][frame_parms->ofdm_symbol_size*l],0,frame_parms->ofdm_symbol_size*sizeof(int));
if (l==0) {
#if UE_TIMING_TRACE
start_meas(&ue->rx_dft_stats);
...
...
@@ -296,7 +296,7 @@ int slot_fep_mbsfn_freq(PHY_VARS_UE *ue,
nb_prefix_samples0 +
subframe_offset -
SOFFSET) % frame_length_samples],
(int16_t *)&common_vars->common_vars_rx_data_per_thread[current_thread_id[subframe]].rxdataF[aa][frame_parms->ofdm_symbol_size*l],1);
(int16_t *)&common_vars->common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].rxdataF[aa][frame_parms->ofdm_symbol_size*l],1);
#if UE_TIMING_TRACE
stop_meas(&ue->rx_dft_stats);
#endif
...
...
@@ -318,7 +318,7 @@ int slot_fep_mbsfn_freq(PHY_VARS_UE *ue,
(frame_parms->ofdm_symbol_size+nb_prefix_samples)*(l-1) +
subframe_offset-
SOFFSET) % frame_length_samples],
(int16_t *)&common_vars->common_vars_rx_data_per_thread[current_thread_id[subframe]].rxdataF[aa][frame_parms->ofdm_symbol_size*l],1);
(int16_t *)&common_vars->common_vars_rx_data_per_thread[
ue->
current_thread_id[subframe]].rxdataF[aa][frame_parms->ofdm_symbol_size*l],1);
#if UE_TIMING_TRACE
stop_meas(&ue->rx_dft_stats);
#endif
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED/pucch_pc.c
View file @
2e3ea07d
...
...
@@ -52,7 +52,7 @@ int16_t pucch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t subframe,u
Po_PUCCH
=
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)
+
ue
->
frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
+
ue
->
dlsch
[
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
g_pucch
;
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
g_pucch
;
switch
(
pucch_fmt
)
{
case
pucch_format1
:
...
...
@@ -95,19 +95,19 @@ int16_t pucch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t subframe,u
if
(
pucch_fmt
!=
pucch_format1
)
{
LOG_D
(
PHY
,
"[UE %d][PDSCH %x] AbsSubframe %d.%d: Po_PUCCH %d dBm : Po_NOMINAL_PUCCH %d dBm, PL %d dB, g_pucch %d dB
\n
"
,
ue
->
Mod_id
,
ue
->
dlsch
[
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
rnti
,
proc
->
frame_tx
%
1024
,
subframe
,
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
rnti
,
proc
->
frame_tx
%
1024
,
subframe
,
Po_PUCCH
,
ue
->
frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
,
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
ue
->
dlsch
[
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
g_pucch
);
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
g_pucch
);
}
else
{
LOG_D
(
PHY
,
"[UE %d][SR %x] AbsSubframe %d.%d: Po_PUCCH %d dBm : Po_NOMINAL_PUCCH %d dBm, PL %d dB g_pucch %d dB
\n
"
,
ue
->
Mod_id
,
ue
->
dlsch
[
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
rnti
,
proc
->
frame_tx
%
1024
,
subframe
,
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
rnti
,
proc
->
frame_tx
%
1024
,
subframe
,
Po_PUCCH
,
ue
->
frame_parms
.
ul_power_control_config_common
.
p0_NominalPUCCH
,
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
ue
->
dlsch
[
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
g_pucch
);
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
subframe_rx
]][
eNB_id
][
0
]
->
g_pucch
);
}
return
(
Po_PUCCH
);
...
...
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/LTE_PHY/dlsim_tm4.c
View file @
2e3ea07d
...
...
@@ -2052,7 +2052,7 @@ int main(int argc, char **argv)
if
(
n_frames
==
1
)
printf
(
"%d
\n
"
,
numCCE
);
//
printf("%d\n",numCCE);
// apply RNTI-based nCCE allocation
memset
(
CCE_table
,
0
,
800
*
sizeof
(
int
));
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/rrc_UE.c
View file @
2e3ea07d
...
...
@@ -2668,9 +2668,9 @@ int decode_BCCH_DLSCH_Message(
LOG_E
(
RRC
,
"[UE %"
PRIu8
"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)
\n
"
,
ctxt_pP
->
module_id
,
dec_rval
.
consumed
);
for
(
i
=
0
;
i
<
Sdu_len
;
i
++
)
/*
for (i=0;i<Sdu_len;i++)
printf("%02x ",Sdu[i]);
printf
(
"
\n
"
);
printf("\n");
*/
// free the memory
SEQUENCE_free
(
&
asn_DEF_BCCH_DL_SCH_Message
,
(
void
*
)
bcch_message
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_BCCH
,
VCD_FUNCTION_OUT
);
...
...
@@ -2716,7 +2716,7 @@ int decode_BCCH_DLSCH_Message(
(
void
*
)
&
bcch_message
->
message
.
choice
.
c1
.
choice
.
systemInformationBlockType1
,
sizeof
(
SystemInformationBlockType1_t
)
);
LOG_D
(
RRC
,
"[UE %"
PRIu8
"] Decoding First SIB1
\n
"
,
ctxt_pP
->
module_id
);
printf
(
"SIB1: BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1 %d, ctxt_pP->frame % 2 == 0? %d, UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1 == 0? %d, frame %d
\n
"
,
BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1
,((
ctxt_pP
->
frame
%
2
)
==
0
),((
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
1
)
==
0
),
ctxt_pP
->
frame
);
//
printf("SIB1: BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1 %d, ctxt_pP->frame % 2 == 0? %d, UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1 == 0? %d, frame %d\n",BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1,((ctxt_pP->frame % 2) == 0),((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 0),ctxt_pP->frame);
decode_SIB1
(
ctxt_pP
,
eNB_index
,
rsrq
,
rsrp
);
//printf("decode_BCCH_DLSCH_Message \n");
}
...
...
@@ -2736,7 +2736,7 @@ int decode_BCCH_DLSCH_Message(
LOG_I
(
RRC
,
"[UE %"
PRIu8
"] Decoding SI for frameP %"
PRIu32
"
\n
"
,
ctxt_pP
->
module_id
,
ctxt_pP
->
frame
);
printf
(
"Decoding SI: BCCH_DL_SCH_MessageType__c1_PR_systemInformation %d, (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) %d
\n
"
,
BCCH_DL_SCH_MessageType__c1_PR_systemInformation
,(
UE_rrc_inst
[
ctxt_pP
->
module_id
].
Info
[
eNB_index
].
SIStatus
&
1
));
//
printf("Decoding SI: BCCH_DL_SCH_MessageType__c1_PR_systemInformation %d, (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) %d\n",BCCH_DL_SCH_MessageType__c1_PR_systemInformation,(UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1));
decode_SI
(
ctxt_pP
,
eNB_index
);
}
break
;
...
...
@@ -2783,9 +2783,9 @@ int decode_PCCH_DLSCH_Message(
LOG_E
(
RRC
,
"[UE %"
PRIu8
"] Failed to decode PCCH_MESSAGE (%zu bits)
\n
"
,
ctxt_pP
->
module_id
,
dec_rval
.
consumed
);
for
(
i
=
0
;
i
<
Sdu_len
;
i
++
)
/*
for (i=0;i<Sdu_len;i++)
printf("%02x ",Sdu[i]);
printf
(
"
\n
"
);
printf("\n");
*/
// free the memory
SEQUENCE_free
(
&
asn_DEF_PCCH_Message
,
(
void
*
)
pcch_message
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_PCCH
,
VCD_FUNCTION_OUT
);
...
...
@@ -3470,10 +3470,10 @@ static void dump_sib5( SystemInformationBlockType5_t *sib5 )
*
ifcfInfo
->
cellReselectionPriority
);
}
LOG_I
(
RRC
,
" NeighCellConfig : "
);
for
(
j
=
0
;
j
<
ifcfInfo
->
neighCellConfig
.
size
;
j
++
)
{
/*
for (j=0;j<ifcfInfo->neighCellConfig.size;j++) {
printf("%2x ",ifcfInfo->neighCellConfig.buf[j]);
}
printf
(
"
\n
"
);
printf("\n");
*/
if
(
ifcfInfo
->
q_OffsetFreq
)
LOG_I
(
RRC
,
" Q_OffsetFreq : %d
\n
"
,
Qoffsettab
[
*
ifcfInfo
->
q_OffsetFreq
]);
if
(
ifcfInfo
->
interFreqNeighCellList
)
{
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf
View file @
2e3ea07d
...
...
@@ -139,7 +139,7 @@ eNBs =
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.1
2
.11"
;
mme_ip_address
= ( {
ipv4
=
"192.168.1
3
.11"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
...
...
@@ -149,18 +149,18 @@ eNBs =
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
eth3
"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.
215
/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
eth3
"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.
215
/24"
;
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
lo
"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.
170
/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
lo
"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.
170
/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
rrh_gw_config
= (
{
local_if_name
=
"
eth0
"
;
remote_address
=
"1
0.10.10.215
"
;
local_address
=
"1
0.10.10.6
0"
;
local_if_name
=
"
lo
"
;
remote_address
=
"1
92.168.12.171
"
;
local_address
=
"1
92.168.12.17
0"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
rrh_gw_active
=
"yes"
;
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-enb.c
View file @
2e3ea07d
...
...
@@ -2118,7 +2118,6 @@ int setup_eNB_buffers(PHY_VARS_eNB **phy_vars_eNB, openair0_config_t *openair0_c
int
i
,
j
;
int
CC_id
,
card
,
ant
;
int
do_ofdm_mod
=
PHY_vars_UE_g
[
0
][
0
]
->
do_ofdm_mod
;
//uint16_t N_TA_offset = 0;
LTE_DL_FRAME_PARMS
*
frame_parms
;
...
...
@@ -2146,7 +2145,7 @@ int setup_eNB_buffers(PHY_VARS_eNB **phy_vars_eNB, openair0_config_t *openair0_c
if
(
openair0_cfg
[
CC_id
].
mmapped_dma
==
1
)
{
// replace RX signal buffers with mmaped HW versions
if
(
do_ofdm_mod
){
if
(
PHY_vars_UE_g
[
0
][
0
]
->
do_ofdm_mod
){
for
(
i
=
0
;
i
<
frame_parms
->
nb_antennas_rx
;
i
++
)
{
card
=
i
/
4
;
ant
=
i
%
4
;
...
...
@@ -2280,7 +2279,6 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
int
inst
;
PHY_VARS_eNB
*
eNB
;
int
ret
;
int
do_ofdm_mod
=
PHY_vars_UE_g
[
0
][
0
]
->
do_ofdm_mod
;
for
(
inst
=
0
;
inst
<
nb_inst
;
inst
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
...
...
@@ -2309,7 +2307,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
proc_uespec_rx
=
NULL
;
eNB
->
proc_tx
=
NULL
;
eNB
->
tx_fh
=
NULL
;
eNB
->
rx_fh
=
(
do_ofdm_mod
)
?
rx_rf_freq
:
rx_rf
;
eNB
->
rx_fh
=
(
PHY_vars_UE_g
[
0
][
0
]
->
do_ofdm_mod
)
?
rx_rf_freq
:
rx_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_if
=
start_if
;
eNB
->
fh_asynch
=
fh_if5_asynch_DL
;
...
...
@@ -2339,7 +2337,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
proc_uespec_rx
=
NULL
;
eNB
->
proc_tx
=
NULL
;
//proc_tx_rru_if4p5;
eNB
->
tx_fh
=
NULL
;
eNB
->
rx_fh
=
(
do_ofdm_mod
)
?
rx_rf_freq
:
rx_rf
;
eNB
->
rx_fh
=
(
PHY_vars_UE_g
[
0
][
0
]
->
do_ofdm_mod
)
?
rx_rf_freq
:
rx_rf
;
eNB
->
fh_asynch
=
fh_if4p5_asynch_DL
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_if
=
start_if
;
...
...
@@ -2372,7 +2370,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
eNB
->
proc_uespec_rx
=
phy_procedures_eNB_uespec_RX
;
eNB
->
proc_tx
=
proc_tx_full
;
eNB
->
tx_fh
=
NULL
;
eNB
->
rx_fh
=
(
do_ofdm_mod
)
?
rx_rf_freq
:
rx_rf
;
eNB
->
rx_fh
=
(
PHY_vars_UE_g
[
0
][
0
]
->
do_ofdm_mod
)
?
rx_rf_freq
:
rx_rf
;
eNB
->
start_rf
=
start_rf
;
eNB
->
start_if
=
NULL
;
eNB
->
fh_asynch
=
NULL
;
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-ue.c
View file @
2e3ea07d
...
...
@@ -1037,9 +1037,9 @@ void *UE_thread(void *arg) {
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
thread_idx
];
// update thread index for received subframe
current_thread_id
[
sub_frame
]
=
thread_idx
;
UE
->
current_thread_id
[
sub_frame
]
=
thread_idx
;
LOG_D
(
PHY
,
"Process Subframe %d thread Idx %d , frame %d
\n
"
,
sub_frame
,
current_thread_id
[
sub_frame
],
proc
->
frame_rx
);
LOG_D
(
PHY
,
"Process Subframe %d thread Idx %d , frame %d
\n
"
,
sub_frame
,
UE
->
current_thread_id
[
sub_frame
],
proc
->
frame_rx
);
/*if (sub_frame==6 && ((proc->frame_rx&0x1)==0))
{
write_output("lteue_rxsigF_frame0.m","lteue_rxsF0", UE->common_vars.common_vars_rx_data_per_thread[0].rxdataF[0],10*UE->frame_parms.ofdm_symbol_size*UE->frame_parms.symbols_per_tti,1,16);
...
...
@@ -1308,9 +1308,9 @@ void *UE_thread_freq(void *arg) {
UE_rxtx_proc_t
*
proc
=
&
UE
->
proc
.
proc_rxtx
[
thread_idx
];
// update thread index for received subframe
//current_thread_id[sub_frame] = thread_idx; Please it is important to check with Raymond. I think it is not necessary.
//
UE->
current_thread_id[sub_frame] = thread_idx; Please it is important to check with Raymond. I think it is not necessary.
LOG_D
(
PHY
,
"Process Subframe %d thread Idx %d , frame %d
\n
"
,
sub_frame
,
current_thread_id
[
sub_frame
],
proc
->
frame_rx
);
LOG_D
(
PHY
,
"Process Subframe %d thread Idx %d , frame %d
\n
"
,
sub_frame
,
UE
->
current_thread_id
[
sub_frame
],
proc
->
frame_rx
);
thread_idx
++
;
if
(
thread_idx
>=
RX_NB_TH
)
...
...
@@ -1318,7 +1318,7 @@ void *UE_thread_freq(void *arg) {
if
(
UE
->
mode
!=
loop_through_memory
)
{
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_rx
;
i
++
){
rxp_freq
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
sub_frame
]].
rxdataF
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
sub_frame
*
UE
->
frame_parms
.
ofdm_symbol_size
*
UE
->
frame_parms
.
symbols_per_tti
];
//14*1024->50RB
rxp_freq
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
common_vars_rx_data_per_thread
[
UE
->
current_thread_id
[
sub_frame
]].
rxdataF
[
i
][
UE
->
frame_parms
.
ofdm_symbol_size
+
sub_frame
*
UE
->
frame_parms
.
ofdm_symbol_size
*
UE
->
frame_parms
.
symbols_per_tti
];
//14*1024->50RB
}
for
(
i
=
0
;
i
<
UE
->
frame_parms
.
nb_antennas_tx
;
i
++
)
txp_freq
[
i
]
=
(
void
*
)
&
UE
->
common_vars
.
txdataF
[
i
][
...
...
@@ -1365,7 +1365,7 @@ void *UE_thread_freq(void *arg) {
AssertFatal
(
writeBlockSize
-
readBlockSize
==
UE
->
rfdevice
.
trx_read_func
(
&
UE
->
rfdevice
,
&
timestamp1
,
(
void
**
)
UE
->
common_vars
.
common_vars_rx_data_per_thread
[
current_thread_id
[
sub_frame
]].
rxdataF
,
(
void
**
)
UE
->
common_vars
.
common_vars_rx_data_per_thread
[
UE
->
current_thread_id
[
sub_frame
]].
rxdataF
,
writeBlockSize
-
readBlockSize
,
UE
->
frame_parms
.
nb_antennas_rx
),
""
);
if
(
writeBlockSize
-
readBlockSize
<
0
)
...
...
This diff is collapsed.
Click to expand it.
targets/SIMU/USER/oaisim_functions.c
View file @
2e3ea07d
...
...
@@ -1004,7 +1004,7 @@ openair0_timestamp current_eNB_rx_timestamp[NUMBER_OF_eNB_MAX][MAX_NUM_CCs];
openair0_timestamp
current_UE_rx_timestamp
[
NUMBER_OF_UE_MAX
][
MAX_NUM_CCs
];
openair0_timestamp
last_eNB_rx_timestamp
[
NUMBER_OF_eNB_MAX
][
MAX_NUM_CCs
];
openair0_timestamp
last_UE_rx_timestamp
[
NUMBER_OF_UE_MAX
][
MAX_NUM_CCs
];
static
int
first_run
=
0
;
int
eNB_trx_start
(
openair0_device
*
device
)
{
return
(
0
);
}
...
...
@@ -1043,16 +1043,12 @@ extern int subframe_eNB_mask,subframe_UE_mask;
int
eNB_trx_read
(
openair0_device
*
device
,
openair0_timestamp
*
ptimestamp
,
void
**
buff
,
int
nsamps
,
int
cc
)
{
/*static int first_run=0;
static double sum;
static int count1;
static
int
count
;
if
(
!
first_run
)
{
first_run
=
1
;
sum=0;
count1=0;
count
=
0
;
}
static int count=0;
if
(
count
==
500
)
{
//Use ./oaisim -q option to enable the oai performance profiler.
...
...
@@ -1060,7 +1056,7 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
print_opp_meas_oaisim
();
reset_opp_meas_oaisim
();
}
count++;
*/
count
++
;
int
ret
=
nsamps
;
int
eNB_id
=
device
->
Mod_id
;
...
...
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