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
OpenXG
OpenXG UE
Commits
622c2c04
Commit
622c2c04
authored
Apr 24, 2019
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removal of warnings
parent
be10634f
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
131 additions
and
155 deletions
+131
-155
openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
+2
-2
openair1/PHY/LTE_TRANSPORT/if4_tools.c
openair1/PHY/LTE_TRANSPORT/if4_tools.c
+2
-2
openair1/PHY/MODULATION/beamforming.c
openair1/PHY/MODULATION/beamforming.c
+25
-32
openair1/SCHED/ru_procedures.c
openair1/SCHED/ru_procedures.c
+1
-0
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+0
-2
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+67
-71
targets/RT/USER/ru_control.c
targets/RT/USER/ru_control.c
+34
-46
No files found.
openair1/PHY/LTE_ESTIMATION/lte_sync_time.c
View file @
622c2c04
...
...
@@ -34,6 +34,7 @@
#include "LAYER2/MAC/mac.h"
#include "RRC/LTE/rrc_extern.h"
#include "PHY_INTERFACE/phy_interface.h"
#include "PHY/LTE_REFSIG/lte_refsig.h"
// Note: this is for prototype of generate_drs_pusch (OTA synchronization of RRUs)
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
...
...
@@ -659,8 +660,7 @@ int ru_sync_time(RU_t *ru,
(
void
*
)
&
ru
->
common
.
rxdata
[
ar
][
0
],
frame_parms
->
ofdm_symbol_size
);
int32_t
tmp0
;
int32_t
magtmp0
,
maxlev0
=
0
;
int32_t
maxlev0
=
0
;
int
maxpos0
=
0
;
int64_t
avg0
=
0
;
int64_t
result
;
...
...
openair1/PHY/LTE_TRANSPORT/if4_tools.c
View file @
622c2c04
...
...
@@ -247,7 +247,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
(
void
*
)
rxF
,
PRACH_BLOCK_SIZE_BYTES
);
}
if
(
frame
==
0
)
LOG_D
(
PHY
,
"signal energy prach %d
\n
"
,
dB_fixed
(
signal_energy
(
rxF
,
839
)));
if
(
frame
==
0
)
LOG_D
(
PHY
,
"signal energy prach %d
\n
"
,
dB_fixed
(
signal_energy
(
(
int
*
)
rxF
,
839
)));
}
if
(
ru
->
idx
<=
1
)
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0
+
ru
->
idx
,
1
);
if
((
ru
->
ifdevice
.
trx_write_func
(
&
ru
->
ifdevice
,
...
...
@@ -385,7 +385,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint
int16_t
*
rxF
;
for
(
int
antenna_id
=
0
;
antenna_id
<
ru
->
nb_rx
;
antenna_id
++
)
{
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
#if (
LTE_
RRC_VERSION >= MAKE_VERSION(14, 0, 0))
if
(
*
packet_type
>
IF4p5_PRACH
)
rxF
=
&
prach_rxsigF_br
[
*
packet_type
-
IF4p5_PRACH
-
1
][
antenna_id
][
0
];
else
...
...
openair1/PHY/MODULATION/beamforming.c
View file @
622c2c04
...
...
@@ -93,7 +93,7 @@ int beam_precoding_one_eNB(int32_t **txdataF,
LTE_DL_FRAME_PARMS
*
frame_parms
)
{
int
p
,
re
,
symbol
,
aa
;
// loop index
int
p
,
symbol
,
aa
;
// loop index
int
re_offset
;
int
ofdm_symbol_size
=
frame_parms
->
ofdm_symbol_size
;
int
symbols_per_tti
=
frame_parms
->
symbols_per_tti
;
...
...
@@ -101,44 +101,37 @@ int beam_precoding_one_eNB(int32_t **txdataF,
re_offset
=
ofdm_symbol_size
*
symbols_per_tti
*
subframe
;
// txdataF_BF[aa][re] = sum(beam_weghts[p][aa][re]*txdataF[p][re]), p=0~nb_antenna_ports-1
// real part and image part need to compute separately
for
(
aa
=
0
;
aa
<
nb_tx
;
aa
++
)
{
memset
(
txdataF_BF
[
aa
],
0
,
sizeof
(
int32_t
)
*
(
ofdm_symbol_size
*
symbols_per_tti
));
for
(
p
=
0
;
p
<
nb_antenna_ports
;
p
++
){
if
(
p
<
nb_antenna_ports_eNB
||
p
==
5
){
for
(
symbol
=
0
;
symbol
<
symbols_per_tti
;
symbol
++
){
multadd_cpx_vector
((
int16_t
*
)
&
txdataF
[
p
][
symbol
*
ofdm_symbol_size
+
re_offset
],
(
int16_t
*
)
beam_weights
[
0
][
p
][
aa
],
(
int16_t
*
)
&
txdataF_BF
[
aa
][
symbol
*
ofdm_symbol_size
],
0
,
ofdm_symbol_size
,
15
);
/*
for (re=0; re<ofdm_symbol_size; re++){
// direct
((int16_t*)&txdataF_BF[aa][re])[0] += (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[0]*((int16_t*)&beam_weights[p][aa][re])[0])>>15);
((int16_t*)&txdataF_BF[aa][re])[0] -= (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[1]*((int16_t*)&beam_weights[p][aa][re])[1])>>15);
((int16_t*)&txdataF_BF[aa][re])[1] += (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[0]*((int16_t*)&beam_weights[p][aa][re])[1])>>15);
((int16_t*)&txdataF_BF[aa][re])[1] += (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[1]*((int16_t*)&beam_weights[p][aa][re])[0])>>15);
}
*/
}
}
}
}
memset
(
txdataF_BF
[
aa
],
0
,
sizeof
(
int32_t
)
*
(
ofdm_symbol_size
*
symbols_per_tti
));
for
(
p
=
0
;
p
<
nb_antenna_ports
;
p
++
){
if
(
p
<
nb_antenna_ports_eNB
||
p
==
5
){
for
(
symbol
=
0
;
symbol
<
symbols_per_tti
;
symbol
++
){
multadd_cpx_vector
((
int16_t
*
)
&
txdataF
[
p
][
symbol
*
ofdm_symbol_size
+
re_offset
],
(
int16_t
*
)
beam_weights
[
0
][
p
][
aa
],
(
int16_t
*
)
&
txdataF_BF
[
aa
][
symbol
*
ofdm_symbol_size
],
0
,
ofdm_symbol_size
,
15
);
/*
for (re=0; re<ofdm_symbol_size; re++){
// direct
((int16_t*)&txdataF_BF[aa][re])[0] += (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[0]*((int16_t*)&beam_weights[p][aa][re])[0])>>15);
((int16_t*)&txdataF_BF[aa][re])[0] -= (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[1]*((int16_t*)&beam_weights[p][aa][re])[1])>>15);
((int16_t*)&txdataF_BF[aa][re])[1] += (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[0]*((int16_t*)&beam_weights[p][aa][re])[1])>>15);
((int16_t*)&txdataF_BF[aa][re])[1] += (int16_t)((((int16_t*)&txdataF[p][re+symbol*ofdm_symbol_size+re_offset])[1]*((int16_t*)&beam_weights[p][aa][re])[0])>>15);
}
*/
}
}
}
}
return
0
;
}
openair1/SCHED/ru_procedures.c
View file @
622c2c04
...
...
@@ -50,6 +50,7 @@
#include "PHY/LTE_TRANSPORT/if5_tools.h"
#include "PHY/LTE_TRANSPORT/transport_common_proto.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
#include "PHY/LTE_ESTIMATION/lte_estimation.h"
#include "LAYER2/MAC/mac.h"
...
...
targets/RT/USER/lte-enb.c
View file @
622c2c04
...
...
@@ -476,7 +476,6 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
}
int
wakeup_txfh
(
L1_rxtx_proc_t
*
proc
,
int
frame_tx
,
int
subframe_tx
,
uint64_t
timestamp_tx
,
PHY_VARS_eNB
*
eNB
)
{
RU_t
*
ru
;
RU_proc_t
*
ru_proc
;
LTE_DL_FRAME_PARMS
*
fp
;
...
...
@@ -587,7 +586,6 @@ int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) {
LOG_D
(
PHY
,
"ENTERED wakeup_rxtx, %d.%d
\n
"
,
ru_proc
->
frame_rx
,
ru_proc
->
subframe_rx
);
int
i
;
struct
timespec
wait
;
int
sleep_cnt
=
0
;
...
...
targets/RT/USER/lte-ru.c
View file @
622c2c04
This diff is collapsed.
Click to expand it.
targets/RT/USER/ru_control.c
View file @
622c2c04
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2014 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
/*! \file lte-ru.c
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file ru_control.c
* \brief Top-level threads for RU entity
* \author R. Knopp, F. Kaltenberger, Navid Nikaein
* \date 201
2
* \date 201
8
* \version 0.1
* \company Eurecom
* \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr, navid.nikaein@eurecom.fr
...
...
@@ -101,6 +92,10 @@ void fill_rf_config(RU_t *ru, char *rf_config_file);
void
*
ru_thread_control
(
void
*
param
);
extern
void
reset_proc
(
RU_t
*
ru
);
extern
int
setup_RU_buffers
(
RU_t
*
ru
);
extern
void
phy_init_RU
(
RU_t
*
);
extern
const
char
ru_states
[
6
][
9
];
...
...
@@ -494,7 +489,7 @@ void configure_rru(int idx,
fill_rf_config
(
ru
,
ru
->
rf_config_file
);
// phy_init_RU(ru);
// phy_init_RU(ru);
}
...
...
@@ -506,14 +501,13 @@ void* ru_thread_control( void* param ) {
RU_proc_t
*
proc
=
&
ru
->
proc
;
RRU_CONFIG_msg_t
rru_config_msg
;
ssize_t
msg_len
;
int
len
,
ret
;
int
len
;
// Start IF device if any
if
(
ru
->
start_if
)
{
LOG_I
(
PHY
,
"Starting IF interface for RU %d
\n
"
,
ru
->
idx
);
AssertFatal
(
ru
->
start_if
(
ru
,
NULL
)
==
0
,
"Could not start the IF device
\n
"
);
ru
->
start_if
(
ru
,
NULL
)
==
0
,
"Could not start the IF device
\n
"
);
if
(
ru
->
if_south
!=
LOCAL_RF
)
wait_eNBs
();
}
...
...
@@ -597,17 +591,11 @@ void* ru_thread_control( void* param ) {
//if (ru->is_slave == 1) lte_sync_time_init(&ru->frame_parms);
if
(
ru
->
rfdevice
.
is_init
!=
1
){
ret
=
openair0_device_load
(
&
ru
->
rfdevice
,
&
ru
->
openair0_cfg
);
}
if
(
ru
->
rfdevice
.
is_init
!=
1
)
openair0_device_load
(
&
ru
->
rfdevice
,
&
ru
->
openair0_cfg
);
if
(
ru
->
rfdevice
.
trx_config_func
)
AssertFatal
((
ru
->
rfdevice
.
trx_config_func
(
&
ru
->
rfdevice
,
&
ru
->
openair0_cfg
)
==
0
),
"Failed to configure RF device for RU %d
\n
"
,
ru
->
idx
);
if
(
setup_RU_buffers
(
ru
)
!=
0
)
{
printf
(
"Exiting, cannot initialize RU Buffers
\n
"
);
exit
(
-
1
);
...
...
@@ -714,10 +702,10 @@ void* ru_thread_control( void* param ) {
case
RRU_frame_resynch
:
//RRU
if
(
ru
->
if_south
!=
LOCAL_RF
)
LOG_E
(
PHY
,
"Received RRU frame resynch message, should not happen in RAU
\n
"
);
else
{
LOG_I
(
PHY
,
"Received RRU_frame_resynch command
\n
"
);
ru
->
cmd
=
RU_FRAME_RESYNCH
;
ru
->
cmdval
=
((
uint16_t
*
)
&
rru_config_msg
.
msg
[
0
])[
0
];
LOG_I
(
PHY
,
"Received Frame Resynch message with value %d
\n
"
,
ru
->
cmdval
);
LOG_I
(
PHY
,
"Received RRU_frame_resynch command
\n
"
);
ru
->
cmd
=
RU_FRAME_RESYNCH
;
ru
->
cmdval
=
((
uint16_t
*
)
&
rru_config_msg
.
msg
[
0
])[
0
];
LOG_I
(
PHY
,
"Received Frame Resynch message with value %d
\n
"
,
ru
->
cmdval
);
}
break
;
...
...
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