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
canghaiwuhen
OpenXG-RAN
Commits
60d53688
Commit
60d53688
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
56c6e593
6dcd2ead
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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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 @
60d53688
...
@@ -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