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
Michael Black
OpenXG UE
Commits
e480d34f
Commit
e480d34f
authored
Jul 08, 2019
by
Florian Kaltenberger
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/uhd-priority-fix' into integration_develop-nr_2019w28
parents
360d6980
f862214b
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
33 additions
and
38 deletions
+33
-38
executables/nr-ru.c
executables/nr-ru.c
+7
-6
openair1/PHY/NR_TRANSPORT/nr_pbch.c
openair1/PHY/NR_TRANSPORT/nr_pbch.c
+2
-2
targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
+1
-0
targets/ARCH/COMMON/common_lib.c
targets/ARCH/COMMON/common_lib.c
+1
-23
targets/ARCH/COMMON/common_lib.h
targets/ARCH/COMMON/common_lib.h
+5
-3
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
+1
-0
targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
+1
-0
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
+1
-0
targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp
targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp
+1
-0
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
+8
-3
targets/ARCH/mobipass/interface.c
targets/ARCH/mobipass/interface.c
+1
-0
targets/ARCH/rfsimulator/simulator.c
targets/ARCH/rfsimulator/simulator.c
+1
-0
targets/ARCH/tcp_bridge/tcp_bridge.c
targets/ARCH/tcp_bridge/tcp_bridge.c
+1
-0
targets/ARCH/tcp_bridge/tcp_bridge_oai.c
targets/ARCH/tcp_bridge/tcp_bridge_oai.c
+1
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
+1
-1
No files found.
executables/nr-ru.c
View file @
e480d34f
...
@@ -1216,16 +1216,17 @@ static void *ru_thread_tx( void *param ) {
...
@@ -1216,16 +1216,17 @@ static void *ru_thread_tx( void *param ) {
int
i
=
0
;
int
i
=
0
;
int
ret
;
int
ret
;
if
(
ru
->
if_south
==
LOCAL_RF
)
{
//uhd_set_thread_prio();
LOG_I
(
PHY
,
"set ru_thread_tx uhd priority"
);
}
wait_on_condition
(
&
proc
->
mutex_FH1
,
&
proc
->
cond_FH1
,
&
proc
->
instance_cnt_FH1
,
"ru_thread_tx"
);
wait_on_condition
(
&
proc
->
mutex_FH1
,
&
proc
->
cond_FH1
,
&
proc
->
instance_cnt_FH1
,
"ru_thread_tx"
);
printf
(
"ru_thread_tx ready
\n
"
);
printf
(
"ru_thread_tx ready
\n
"
);
if
(
ru
->
rfdevice
.
uhd_set_thread_priority
!=
NULL
)
{
LOG_I
(
PHY
,
"set ru_thread_tx uhd priority
\n
"
);
ru
->
rfdevice
.
uhd_set_thread_priority
();
}
while
(
!
oai_exit
)
{
while
(
!
oai_exit
)
{
if
(
oai_exit
)
break
;
if
(
oai_exit
)
break
;
...
...
openair1/PHY/NR_TRANSPORT/nr_pbch.c
View file @
e480d34f
...
@@ -239,7 +239,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
...
@@ -239,7 +239,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint8_t
nushift
;
uint8_t
nushift
;
uint32_t
unscrambling_mask
;
uint32_t
unscrambling_mask
;
uint64_t
a_reversed
=
0
;
uint64_t
a_reversed
=
0
;
LOG_
I
(
PHY
,
"PBCH generation started
\n
"
);
LOG_
D
(
PHY
,
"PBCH generation started
\n
"
);
///Payload generation
///Payload generation
memset
((
void
*
)
pbch
,
0
,
sizeof
(
NR_gNB_PBCH
));
memset
((
void
*
)
pbch
,
0
,
sizeof
(
NR_gNB_PBCH
));
pbch
->
pbch_a
=
0
;
pbch
->
pbch_a
=
0
;
...
@@ -267,7 +267,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
...
@@ -267,7 +267,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
else
else
pbch
->
pbch_a
|=
((
config
->
sch_config
.
ssb_subcarrier_offset
.
value
>>
4
)
&
1
)
<<
29
;
//MSB of k_SSB (bit index 4)
pbch
->
pbch_a
|=
((
config
->
sch_config
.
ssb_subcarrier_offset
.
value
>>
4
)
&
1
)
<<
29
;
//MSB of k_SSB (bit index 4)
LOG_
I
(
PHY
,
"After extra byte: pbch_a = 0x%08x
\n
"
,
pbch
->
pbch_a
);
LOG_
D
(
PHY
,
"After extra byte: pbch_a = 0x%08x
\n
"
,
pbch
->
pbch_a
);
// Payload interleaving
// Payload interleaving
...
...
targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c
View file @
e480d34f
...
@@ -1124,6 +1124,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
...
@@ -1124,6 +1124,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
device
->
trx_set_gains_func
=
trx_brf_set_gains
;
device
->
trx_set_gains_func
=
trx_brf_set_gains
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
priv
=
(
void
*
)
brf
;
device
->
priv
=
(
void
*
)
brf
;
device
->
uhd_set_thread_priority
=
NULL
;
calibrate_rf
(
device
);
calibrate_rf
(
device
);
...
...
targets/ARCH/COMMON/common_lib.c
View file @
e480d34f
...
@@ -109,7 +109,6 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
...
@@ -109,7 +109,6 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
else
else
libname
=
OAI_RF_LIBNAME
;
libname
=
OAI_RF_LIBNAME
;
shlib_fdesc
[
0
].
fname
=
"device_init"
;
shlib_fdesc
[
0
].
fname
=
"device_init"
;
//shlib_fdesc[1].fname="uhd_set_thread_priority";
}
else
{
}
else
{
libname
=
OAI_TP_LIBNAME
;
libname
=
OAI_TP_LIBNAME
;
shlib_fdesc
[
0
].
fname
=
"transport_init"
;
shlib_fdesc
[
0
].
fname
=
"transport_init"
;
...
@@ -119,33 +118,12 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
...
@@ -119,33 +118,12 @@ int load_lib(openair0_device *device, openair0_config_t *openair0_cfg, eth_param
LOG_E
(
HW
,
"Library %s couldn't be loaded
\n
"
,
libname
);
LOG_E
(
HW
,
"Library %s couldn't be loaded
\n
"
,
libname
);
}
else
{
}
else
{
ret
=
((
devfunc_t
)
shlib_fdesc
[
0
].
fptr
)(
device
,
openair0_cfg
,
cfg
);
ret
=
((
devfunc_t
)
shlib_fdesc
[
0
].
fptr
)(
device
,
openair0_cfg
,
cfg
);
//uhd_set_thread_priority_fun = (set_prio_func_t)shlib_fdesc[1].fptr;
}
}
return
ret
;
return
ret
;
}
}
/*
void uhd_set_thread_prio(void) {
loader_shlibfunc_t shlib_fdesc[1];
int ret = 0;
char *libname;
if (getenv("RFSIMULATOR") != NULL)
libname="rfsimulator";
else
libname=OAI_RF_LIBNAME;
//shlib_fdesc[0].fname="uhd_set_thread_priority";
ret=load_module_shlib(libname,shlib_fdesc,1,NULL);
if (ret < 0) {
LOG_E(HW,"Library %s couldn't be loaded\n",libname);
} else {
//(set_prio_func_t)shlib_fdesc[0].fptr();
}
return ret;
}
*/
int
openair0_device_load
(
openair0_device
*
device
,
openair0_config_t
*
openair0_cfg
)
{
int
openair0_device_load
(
openair0_device
*
device
,
openair0_config_t
*
openair0_cfg
)
{
...
...
targets/ARCH/COMMON/common_lib.h
View file @
e480d34f
...
@@ -387,6 +387,10 @@ struct openair0_device_t {
...
@@ -387,6 +387,10 @@ struct openair0_device_t {
* \param arg pointer to capabilities or configuration
* \param arg pointer to capabilities or configuration
*/
*/
void
(
*
configure_rru
)(
int
idx
,
void
*
arg
);
void
(
*
configure_rru
)(
int
idx
,
void
*
arg
);
/*! \brief set UHD thread priority
*/
void
(
*
uhd_set_thread_priority
)(
void
);
};
};
/* type of device init function, implemented in shared lib */
/* type of device init function, implemented in shared lib */
...
@@ -445,9 +449,7 @@ int openair0_set_rx_frequencies(openair0_device *device, openair0_config_t *open
...
@@ -445,9 +449,7 @@ int openair0_set_rx_frequencies(openair0_device *device, openair0_config_t *open
#define gettid() syscall(__NR_gettid)
#define gettid() syscall(__NR_gettid)
/*@}*/
/*@}*/
void
uhd_set_thread_prio
(
void
);
typedef
void
(
*
set_prio_func_t
)(
void
);
//set_prio_func_t uhd_set_thread_priority_fun;
#ifdef __cplusplus
#ifdef __cplusplus
}
}
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
View file @
e480d34f
...
@@ -401,6 +401,7 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, eth
...
@@ -401,6 +401,7 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, eth
device
->
trx_stop_func
=
trx_eth_stop
;
device
->
trx_stop_func
=
trx_eth_stop
;
device
->
trx_set_freq_func
=
trx_eth_set_freq
;
device
->
trx_set_freq_func
=
trx_eth_set_freq
;
device
->
trx_set_gains_func
=
trx_eth_set_gains
;
device
->
trx_set_gains_func
=
trx_eth_set_gains
;
device
->
uhd_set_thread_priority
=
NULL
;
if
(
eth
->
flags
==
ETH_RAW_MODE
)
{
if
(
eth
->
flags
==
ETH_RAW_MODE
)
{
device
->
trx_write_func
=
trx_eth_write_raw
;
device
->
trx_write_func
=
trx_eth_write_raw
;
...
...
targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
View file @
e480d34f
...
@@ -772,6 +772,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
...
@@ -772,6 +772,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
device
->
trx_set_gains_func
=
trx_exmimo_set_gains
;
device
->
trx_set_gains_func
=
trx_exmimo_set_gains
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
priv
=
(
void
*
)
exm
;
device
->
priv
=
(
void
*
)
exm
;
device
->
uhd_set_thread_priority
=
NULL
;
printf
(
"EXMIMO2: Getting addresses for memory-mapped DMA
\n
"
);
printf
(
"EXMIMO2: Getting addresses for memory-mapped DMA
\n
"
);
...
...
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
View file @
e480d34f
...
@@ -405,6 +405,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg){
...
@@ -405,6 +405,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg){
device
->
trx_stop_func
=
trx_lms_stop
;
device
->
trx_stop_func
=
trx_lms_stop
;
device
->
trx_set_freq_func
=
trx_lms_set_freq
;
device
->
trx_set_freq_func
=
trx_lms_set_freq
;
device
->
trx_set_gains_func
=
trx_lms_set_gains
;
device
->
trx_set_gains_func
=
trx_lms_set_gains
;
device
->
uhd_set_thread_priority
=
NULL
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
openair0_cfg
=
openair0_cfg
;
...
...
targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp
View file @
e480d34f
...
@@ -706,6 +706,7 @@ int openair0_dev_init_sodera(openair0_device* device, openair0_config_t *openair
...
@@ -706,6 +706,7 @@ int openair0_dev_init_sodera(openair0_device* device, openair0_config_t *openair
device
->
trx_stop_func
=
trx_sodera_stop
;
device
->
trx_stop_func
=
trx_sodera_stop
;
device
->
trx_set_freq_func
=
trx_sodera_set_freq
;
device
->
trx_set_freq_func
=
trx_sodera_set_freq
;
device
->
trx_set_gains_func
=
trx_sodera_set_gains
;
device
->
trx_set_gains_func
=
trx_sodera_set_gains
;
device
->
uhd_set_thread_priority
=
NULL
;
s
->
sample_rate
=
openair0_cfg
[
0
].
sample_rate
;
s
->
sample_rate
=
openair0_cfg
[
0
].
sample_rate
;
s
->
channelscount
=
openair0_cfg
[
0
].
rx_num_channels
;
s
->
channelscount
=
openair0_cfg
[
0
].
rx_num_channels
;
...
...
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
View file @
e480d34f
...
@@ -919,6 +919,12 @@ int trx_usrp_reset_stats(openair0_device *device) {
...
@@ -919,6 +919,12 @@ int trx_usrp_reset_stats(openair0_device *device) {
return
(
0
);
return
(
0
);
}
}
/*! \brief Set uhd priority
*/
static
void
uhd_set_thread_priority
(
void
)
{
uhd
::
set_thread_priority_safe
(
1.0
);
}
#if defined(USRP_REC_PLAY)
#if defined(USRP_REC_PLAY)
extern
"C"
{
extern
"C"
{
/*! \brief Initializer for USRP record/playback config
/*! \brief Initializer for USRP record/playback config
...
@@ -1056,6 +1062,7 @@ extern "C" {
...
@@ -1056,6 +1062,7 @@ extern "C" {
device
->
trx_set_freq_func
=
trx_usrp_set_freq
;
device
->
trx_set_freq_func
=
trx_usrp_set_freq
;
device
->
trx_set_gains_func
=
trx_usrp_set_gains
;
device
->
trx_set_gains_func
=
trx_usrp_set_gains
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
uhd_set_thread_priority
=
uhd_set_thread_priority
;
std
::
cerr
<<
"USRP device initialized in subframes replay mode for "
<<
u_sf_loops
<<
" loops. Use mmap="
std
::
cerr
<<
"USRP device initialized in subframes replay mode for "
<<
u_sf_loops
<<
" loops. Use mmap="
<<
use_mmap
<<
std
::
endl
;
<<
use_mmap
<<
std
::
endl
;
}
else
{
}
else
{
...
@@ -1388,6 +1395,7 @@ extern "C" {
...
@@ -1388,6 +1395,7 @@ extern "C" {
device
->
trx_set_freq_func
=
trx_usrp_set_freq
;
device
->
trx_set_freq_func
=
trx_usrp_set_freq
;
device
->
trx_set_gains_func
=
trx_usrp_set_gains
;
device
->
trx_set_gains_func
=
trx_usrp_set_gains
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
openair0_cfg
=
openair0_cfg
;
device
->
uhd_set_thread_priority
=
uhd_set_thread_priority
;
s
->
sample_rate
=
openair0_cfg
[
0
].
sample_rate
;
s
->
sample_rate
=
openair0_cfg
[
0
].
sample_rate
;
// TODO:
// TODO:
...
@@ -1490,9 +1498,6 @@ extern "C" {
...
@@ -1490,9 +1498,6 @@ extern "C" {
return
0
;
return
0
;
}
}
void
uhd_set_thread_priority
(
void
)
{
uhd
::
set_thread_priority_safe
(
1.0
);
}
}
}
/*@}*/
/*@}*/
targets/ARCH/mobipass/interface.c
View file @
e480d34f
...
@@ -132,6 +132,7 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg,
...
@@ -132,6 +132,7 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg,
device
->
trx_set_gains_func
=
mobipass_set_gains
;
device
->
trx_set_gains_func
=
mobipass_set_gains
;
device
->
trx_write_func
=
mobipass_write
;
device
->
trx_write_func
=
mobipass_write
;
device
->
trx_read_func
=
mobipass_read
;
device
->
trx_read_func
=
mobipass_read
;
device
->
uhd_set_thread_priority
=
NULL
;
device
->
priv
=
mobi
;
device
->
priv
=
mobi
;
...
...
targets/ARCH/rfsimulator/simulator.c
View file @
e480d34f
...
@@ -642,6 +642,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
...
@@ -642,6 +642,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
device
->
trx_set_gains_func
=
rfsimulator_set_gains
;
device
->
trx_set_gains_func
=
rfsimulator_set_gains
;
device
->
trx_write_func
=
rfsimulator_write
;
device
->
trx_write_func
=
rfsimulator_write
;
device
->
trx_read_func
=
rfsimulator_read
;
device
->
trx_read_func
=
rfsimulator_read
;
device
->
uhd_set_thread_priority
=
NULL
;
/* let's pretend to be a b2x0 */
/* let's pretend to be a b2x0 */
device
->
type
=
USRP_B200_DEV
;
device
->
type
=
USRP_B200_DEV
;
device
->
openair0_cfg
=&
openair0_cfg
[
0
];
device
->
openair0_cfg
=&
openair0_cfg
[
0
];
...
...
targets/ARCH/tcp_bridge/tcp_bridge.c
View file @
e480d34f
...
@@ -267,6 +267,7 @@ int device_init(openair0_device* device, openair0_config_t *openair0_cfg)
...
@@ -267,6 +267,7 @@ int device_init(openair0_device* device, openair0_config_t *openair0_cfg)
device
->
trx_set_gains_func
=
tcp_bridge_set_gains
;
device
->
trx_set_gains_func
=
tcp_bridge_set_gains
;
device
->
trx_write_func
=
tcp_bridge_write
;
device
->
trx_write_func
=
tcp_bridge_write
;
device
->
trx_read_func
=
tcp_bridge_read
;
device
->
trx_read_func
=
tcp_bridge_read
;
device
->
uhd_set_thread_priority
=
NULL
;
device
->
priv
=
tcp_bridge
;
device
->
priv
=
tcp_bridge
;
...
...
targets/ARCH/tcp_bridge/tcp_bridge_oai.c
View file @
e480d34f
...
@@ -313,6 +313,7 @@ int device_init(openair0_device* device, openair0_config_t *openair0_cfg)
...
@@ -313,6 +313,7 @@ int device_init(openair0_device* device, openair0_config_t *openair0_cfg)
device
->
trx_set_freq_func
=
tcp_bridge_set_freq
;
device
->
trx_set_freq_func
=
tcp_bridge_set_freq
;
device
->
trx_set_gains_func
=
tcp_bridge_set_gains
;
device
->
trx_set_gains_func
=
tcp_bridge_set_gains
;
device
->
trx_write_func
=
tcp_bridge_write
;
device
->
trx_write_func
=
tcp_bridge_write
;
device
->
uhd_set_thread_priority
=
NULL
;
if
(
tcp_bridge
->
is_enb
)
{
if
(
tcp_bridge
->
is_enb
)
{
device
->
trx_read_func
=
tcp_bridge_read
;
device
->
trx_read_func
=
tcp_bridge_read
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf
View file @
e480d34f
...
@@ -262,7 +262,7 @@ RUs = (
...
@@ -262,7 +262,7 @@ RUs = (
THREAD_STRUCT
= (
THREAD_STRUCT
= (
{
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config
=
"PARALLEL_
SINGLE_THREAD
"
;
parallel_config
=
"PARALLEL_
RU_L1_TRX_SPLIT
"
;
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config
=
"WORKER_DISABLE"
;
worker_config
=
"WORKER_DISABLE"
;
}
}
...
...
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