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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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-RAN
Commits
31cf3ac0
Commit
31cf3ac0
authored
Apr 24, 2019
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removal of warnings
parent
c245e426
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 @
31cf3ac0
...
...
@@ -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 @
31cf3ac0
...
...
@@ -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 @
31cf3ac0
...
...
@@ -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 @
31cf3ac0
...
...
@@ -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 @
31cf3ac0
...
...
@@ -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 @
31cf3ac0
This diff is collapsed.
Click to expand it.
targets/RT/USER/ru_control.c
View file @
31cf3ac0
/*******************************************************************************
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