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
a591de46
Commit
a591de46
authored
Jun 20, 2019
by
yilmazt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Operation of all of the physical simulators are tested and verified + various warning removals
parent
08475be3
Changes
31
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
293 additions
and
552 deletions
+293
-552
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+14
-14
cmake_targets/build_oai
cmake_targets/build_oai
+16
-0
cmake_targets/lte_noS1_build_oai/CMakeLists.template
cmake_targets/lte_noS1_build_oai/CMakeLists.template
+0
-9
executables/nr-ru.c
executables/nr-ru.c
+2
-2
executables/nr-softmodem-common.h
executables/nr-softmodem-common.h
+14
-9
executables/nr-softmodem.c
executables/nr-softmodem.c
+24
-6
executables/nr-softmodem.h
executables/nr-softmodem.h
+1
-1
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+18
-1
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
+4
-4
openair1/PHY/INIT/nr_init.c
openair1/PHY/INIT/nr_init.c
+3
-2
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+2
-2
openair1/PHY/MODULATION/nr_modulation.c
openair1/PHY/MODULATION/nr_modulation.c
+6
-7
openair1/PHY/NR_REFSIG/nr_gold_ue.c
openair1/PHY/NR_REFSIG/nr_gold_ue.c
+10
-7
openair1/PHY/NR_REFSIG/refsig_defs_ue.h
openair1/PHY/NR_REFSIG/refsig_defs_ue.h
+23
-19
openair1/SCHED/ru_procedures.c
openair1/SCHED/ru_procedures.c
+3
-3
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+28
-9
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+2
-3
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+5
-7
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+42
-382
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/dlsim.c
+6
-6
openair1/SIMULATION/NR_PHY/pucchsim.c
openair1/SIMULATION/NR_PHY/pucchsim.c
+2
-2
openair1/SIMULATION/NR_PHY/ulschsim.c
openair1/SIMULATION/NR_PHY/ulschsim.c
+5
-10
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/LAYER2/NR_MAC_gNB/main.c
+2
-2
openair2/NETWORK_DRIVER/MESH/local.h
openair2/NETWORK_DRIVER/MESH/local.h
+3
-1
openair2/UTIL/OPT/opt.h
openair2/UTIL/OPT/opt.h
+7
-7
openair2/UTIL/OPT/probe.c
openair2/UTIL/OPT/probe.c
+9
-4
targets/ARCH/COMMON/common_lib.c
targets/ARCH/COMMON/common_lib.c
+1
-2
targets/RT/USER/lte-softmodem-common.c
targets/RT/USER/lte-softmodem-common.c
+1
-0
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-softmodem.h
+38
-29
No files found.
cmake_targets/autotests/test_case_list.xml
View file @
a591de46
...
@@ -953,20 +953,20 @@
...
@@ -953,20 +953,20 @@
<pre_exec>
$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash
</pre_exec>
<pre_exec>
$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash
</pre_exec>
<pre_exec_args></pre_exec_args>
<pre_exec_args></pre_exec_args>
<main_exec>
$OPENAIR_DIR/targets/bin/dlsim.Rel15
</main_exec>
<main_exec>
$OPENAIR_DIR/targets/bin/dlsim.Rel15
</main_exec>
<main_exec_args>
-m
5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O
60
<main_exec_args>
-m
=5 -g=F -s=-1 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=
60
-m
4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O
60
-m
=4 -g=F -s=0 -w=1.0 -f=.2 -n=500 -B=6 -c=4 -z=2 -O=
60
-m
15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O
60
-m
=15 -g=F -s=6.7 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=
60
-m
15 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c2 -z2 -O
60
-m
=15 -g=F -s=6.7 -w=1.0 -f=.2 -n=500 -B=25 -c=2 -z=2 -O=
60
-m
15 -gG -s1.4 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O
25
-m
=15 -g=G -s=1.4 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=
25
-m
15 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c2 -z2 -O
25
-m
=15 -g=G -s=1.4 -w=1.0 -f=.2 -n=500 -B=25 -c=2 -z=2 -O=
25
-m
25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O
60
-m
=25 -g=F -s=17.4 -w=1.0 -f=.2 -n=500 -B=25 -c=3 -z=2 -O=
60
-m
25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O
60
-m
=25 -g=F -s=17.5 -w=1.0 -f=.2 -n=500 -B=25 -c=3 -z=2 -r=1022 -O=
60
-m
26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O
60
-m
=26 -g=F -s=17.7 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=
60
-m
26 -gF -s17.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -O
60
-m
=26 -g=F -s=17.6 -w=1.0 -f=.2 -n=500 -B=100 -c=2 -z=2 -O=
60
-m
26 -gF -s17.3 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1600 -O
60
-m
=26 -g=F -s=17.3 -w=1.0 -f=.2 -n=500 -B=100 -c=2 -z=2 -r=1600 -O=
60
-m
26 -gF -s16.6 -w1.0 -f.2 -n500 -B100 -c2 -z2 -r1899 -O
60
-m
=26 -g=F -s=16.6 -w=1.0 -f=.2 -n=500 -B=100 -c=2 -z=2 -r=1899 -O=
60
-m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O
60
-m=14 -g=F -s=6.8 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -x=2 -y=2 -z=2 -O=
60
-m
13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O
60
</main_exec_args>
-m
=13 -g=F -s=5.9 -w=1.0 -f=.2 -n=500 -B=25 -c=3 -x=2 -y=2 -z=2 -O=
60
</main_exec_args>
<tags>
dlsim.test1 dlsim.test5 dlsim.test6 dlsim.test6b dlsim.test7 dlsim.test7b dlsim.test10 dlsim.test10b dlsim.test11 dlsim.test11a dlsim.test11b dlsim.test11c dlsim.TM2_test1 dlsim.TM2_test1b
</tags>
<tags>
dlsim.test1 dlsim.test5 dlsim.test6 dlsim.test6b dlsim.test7 dlsim.test7b dlsim.test10 dlsim.test10b dlsim.test11 dlsim.test11a dlsim.test11b dlsim.test11c dlsim.TM2_test1 dlsim.TM2_test1b
</tags>
<search_expr_true>
"passed"
</search_expr_true>
<search_expr_true>
"passed"
</search_expr_true>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
<search_expr_false>
segmentation fault|assertion|exiting|fatal
</search_expr_false>
...
...
cmake_targets/build_oai
View file @
a591de46
...
@@ -574,6 +574,22 @@ function main() {
...
@@ -574,6 +574,22 @@ function main() {
compilations
\
compilations
\
$build_dir
$exec
\
$build_dir
$exec
\
$exec
$dbin
/
$exec
.
$REL
$exec
$dbin
/
$exec
.
$REL
# if --eNB --UE are both provided together as build options
if
[
"
$eNB
"
=
"1"
-a
"
$UE
"
=
"1"
]
;
then
echo_info
"Compiling lte-uesoftmodem"
compilations
\
$build_dir
lte-uesoftmodem
\
lte-uesoftmodem
$dbin
/lte-uesoftmodem.
$REL
fi
# if --gNB --nrUE are both provided together as build options
if
[
"
$gNB
"
=
"1"
-a
"
$nrUE
"
=
"1"
]
;
then
echo_info
"Compiling nr-uesoftmodem"
compilations
\
$build_dir
nr-uesoftmodem
\
nr-uesoftmodem
$dbin
/nr-uesoftmodem.
$REL
fi
# mandatory shared lib
# mandatory shared lib
compilations
\
compilations
\
...
...
cmake_targets/lte_noS1_build_oai/CMakeLists.template
deleted
100644 → 0
View file @
08475be3
set(ENABLE_ITTI True)
set(ENABLE_USE_MME False)
set(PDCP_USE_NETLINK True)
set(LINK_ENB_PDCP_TO_IP_DRIVER True)
set(LINK_ENB_PDCP_TO_GTPV1U False)
set(PDCP_USE_NETLINK_QUEUES False)
set(LINUX True)
set(SECU False)
set(NAS_UE False)
executables/nr-ru.c
View file @
a591de46
...
@@ -88,8 +88,8 @@ unsigned short config_frames[4] = {2,9,11,13};
...
@@ -88,8 +88,8 @@ unsigned short config_frames[4] = {2,9,11,13};
#endif
#endif
/* these variables have to be defined before including ENB_APP/enb_paramdef.h and GNB_APP/gnb_paramdef.h */
/* these variables have to be defined before including ENB_APP/enb_paramdef.h and GNB_APP/gnb_paramdef.h */
static
int
DEFBANDS
[]
=
{
7
};
//
static int DEFBANDS[] = {7};
static
int
DEFENBS
[]
=
{
0
};
//
static int DEFENBS[] = {0};
static
int
DEFNRBANDS
[]
=
{
7
};
static
int
DEFNRBANDS
[]
=
{
7
};
static
int
DEFGNBS
[]
=
{
0
};
static
int
DEFGNBS
[]
=
{
0
};
...
...
executables/nr-softmodem-common.h
View file @
a591de46
...
@@ -93,20 +93,24 @@
...
@@ -93,20 +93,24 @@
#define CONFIG_HLP_USRP_CLK_SRC "USRP clock source: 'internal' or 'external'\n"
#define CONFIG_HLP_USRP_CLK_SRC "USRP clock source: 'internal' or 'external'\n"
#define CONFIG_HLP_FLOG "Enable online log \n"
#define CONFIG_HLP_FLOG "Enable online log \n"
#define CONFIG_HLP_LOGL "Set the global log level, valid
e options: (9:trace, 8/7:debug, 6:info, 4:warn, 3:error
)\n"
#define CONFIG_HLP_LOGL "Set the global log level, valid
options: (4:trace, 3:debug, 2:info, 1:warn, (0:error)
)\n"
#define CONFIG_HLP_LOGV "Set the global log verbosity \n"
#define CONFIG_HLP_LOGV "Set the global log verbosity \n"
#define CONFIG_HLP_TELN "Start embedded telnet server \n"
#define CONFIG_HLP_TELN "Start embedded telnet server \n"
#define CONFIG_HLP_MSC "Enable the MSC tracing utility \n"
#define CONFIG_HLP_SNR "Set average SNR in dB (for --siml1 option)\n"
#define CONFIG_HLP_SNR "Set average SNR in dB (for --siml1 option)\n"
/*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------*/
/* command line parameters for LOG utility */
/* command line parameters for LOG utility */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*------------------------------------------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------------------------------------------*/
#define START_MSC softmodem_params.start_msc
#define CMDLINE_LOGPARAMS_DESC { \
#define CMDLINE_LOGPARAMS_DESC { \
{"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \
{"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \
{"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \
{"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \
{"G" , CONFIG_HLP_LOGV, 0, uptr:&glog_verbosity, defintval:0, TYPE_UINT16, 0}, \
{"G" , CONFIG_HLP_LOGV, 0, uptr:&glog_verbosity, defintval:0, TYPE_UINT16, 0}, \
{"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \
{"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \
{"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \
}
}
#define CMDLINE_ONLINELOG_IDX 0
#define CMDLINE_ONLINELOG_IDX 0
#define CMDLINE_GLOGLEVEL_IDX 1
#define CMDLINE_GLOGLEVEL_IDX 1
#define CMDLINE_GLOGVERBO_IDX 2
#define CMDLINE_GLOGVERBO_IDX 2
...
@@ -114,6 +118,7 @@
...
@@ -114,6 +118,7 @@
/***************************************************************************************************************************************/
/***************************************************************************************************************************************/
extern
pthread_cond_t
sync_cond
;
extern
pthread_cond_t
sync_cond
;
extern
pthread_mutex_t
sync_mutex
;
extern
pthread_mutex_t
sync_mutex
;
extern
int
sync_var
;
extern
int
sync_var
;
...
...
executables/nr-softmodem.c
View file @
a591de46
...
@@ -189,6 +189,23 @@ int transmission_mode=1;
...
@@ -189,6 +189,23 @@ int transmission_mode=1;
int
emulate_rf
=
0
;
int
emulate_rf
=
0
;
int
numerology
=
0
;
int
numerology
=
0
;
typedef
struct
{
uint64_t
optmask
;
THREAD_STRUCT
thread_struct
;
char
rf_config_file
[
1024
];
int
phy_test
;
uint8_t
usim_test
;
int
emulate_rf
;
int
wait_for_sync
;
//eNodeB only
int
single_thread_flag
;
//eNodeB only
int
chain_offset
;
int
numerology
;
unsigned
int
start_msc
;
uint32_t
clock_source
;
int
hw_timing_advance
;
}
softmodem_params_t
;
static
softmodem_params_t
softmodem_params
;
static
char
*
parallel_config
=
NULL
;
static
char
*
parallel_config
=
NULL
;
static
char
*
worker_config
=
NULL
;
static
char
*
worker_config
=
NULL
;
static
THREAD_STRUCT
thread_struct
;
static
THREAD_STRUCT
thread_struct
;
...
@@ -492,7 +509,8 @@ static void get_options(void) {
...
@@ -492,7 +509,8 @@ static void get_options(void) {
uint32_t
online_log_messages
;
uint32_t
online_log_messages
;
uint32_t
glog_level
,
glog_verbosity
;
uint32_t
glog_level
,
glog_verbosity
;
uint32_t
start_telnetsrv
;
uint32_t
start_telnetsrv
;
paramdef_t
cmdline_params
[]
=
CMDLINE_PARAMS_DESC
;
char
*
in_ip
=
NULL
,
*
in_path
=
NULL
;
paramdef_t
cmdline_params
[]
=
CMDLINE_PARAMS_DESC_GNB
;
paramdef_t
cmdline_logparams
[]
=
CMDLINE_LOGPARAMS_DESC
;
paramdef_t
cmdline_logparams
[]
=
CMDLINE_LOGPARAMS_DESC
;
config_process_cmdline
(
cmdline_params
,
sizeof
(
cmdline_params
)
/
sizeof
(
paramdef_t
),
NULL
);
config_process_cmdline
(
cmdline_params
,
sizeof
(
cmdline_params
)
/
sizeof
(
paramdef_t
),
NULL
);
...
@@ -550,10 +568,10 @@ static void get_options(void) {
...
@@ -550,10 +568,10 @@ static void get_options(void) {
void
set_default_frame_parms
(
nfapi_nr_config_request_t
*
config
[
MAX_NUM_CCs
],
NR_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
])
{
void
set_default_frame_parms
(
nfapi_nr_config_request_t
*
config
[
MAX_NUM_CCs
],
int
CC_id
;
NR_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
])
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
frame_parms
[
CC_id
]
=
(
NR_DL_FRAME_PARMS
*
)
malloc
(
sizeof
(
NR_DL_FRAME_PARMS
));
frame_parms
[
CC_id
]
=
(
NR_DL_FRAME_PARMS
*
)
malloc
(
sizeof
(
NR_DL_FRAME_PARMS
));
config
[
CC_id
]
=
(
nfapi_nr_config_request_t
*
)
malloc
(
sizeof
(
nfapi_nr_config_request_t
));
config
[
CC_id
]
=
(
nfapi_nr_config_request_t
*
)
malloc
(
sizeof
(
nfapi_nr_config_request_t
));
config
[
CC_id
]
->
subframe_config
.
numerology_index_mu
.
value
=
1
;
config
[
CC_id
]
->
subframe_config
.
numerology_index_mu
.
value
=
1
;
...
@@ -861,7 +879,7 @@ static void wait_nfapi_init(char *thread_name) {
...
@@ -861,7 +879,7 @@ static void wait_nfapi_init(char *thread_name) {
int
main
(
int
argc
,
char
**
argv
)
int
main
(
int
argc
,
char
**
argv
)
{
{
int
i
,
CC_id
,
ru_id
;
int
i
,
ru_id
,
CC_id
=
0
;
start_background_system
();
start_background_system
();
///static configuration for NR at the moment
///static configuration for NR at the moment
...
...
executables/nr-softmodem.h
View file @
a591de46
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
/* command line parameters common to eNodeB and UE */
/* command line parameters common to eNodeB and UE */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define CMDLINE_PARAMS_DESC { \
#define CMDLINE_PARAMS_DESC
_GNB
{ \
{"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&rf_config_file, defstrval:NULL, TYPE_STRING, sizeof(rf_config_file)},\
{"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&rf_config_file, defstrval:NULL, TYPE_STRING, sizeof(rf_config_file)},\
{"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \
{"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \
{"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&phy_test, defintval:0, TYPE_INT, 0}, \
{"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&phy_test, defintval:0, TYPE_INT, 0}, \
...
...
executables/nr-uesoftmodem.c
View file @
a591de46
...
@@ -161,6 +161,23 @@ uint8_t nb_antenna_rx = 1;
...
@@ -161,6 +161,23 @@ uint8_t nb_antenna_rx = 1;
char
ref
[
128
]
=
"internal"
;
char
ref
[
128
]
=
"internal"
;
char
channels
[
128
]
=
"0"
;
char
channels
[
128
]
=
"0"
;
typedef
struct
{
uint64_t
optmask
;
THREAD_STRUCT
thread_struct
;
char
rf_config_file
[
1024
];
int
phy_test
;
uint8_t
usim_test
;
int
emulate_rf
;
int
wait_for_sync
;
//eNodeB only
int
single_thread_flag
;
//eNodeB only
int
chain_offset
;
int
numerology
;
unsigned
int
start_msc
;
uint32_t
clock_source
;
int
hw_timing_advance
;
}
softmodem_params_t
;
static
softmodem_params_t
softmodem_params
;
static
char
*
parallel_config
=
NULL
;
static
char
*
parallel_config
=
NULL
;
static
char
*
worker_config
=
NULL
;
static
char
*
worker_config
=
NULL
;
static
THREAD_STRUCT
thread_struct
;
static
THREAD_STRUCT
thread_struct
;
...
@@ -386,7 +403,7 @@ int16_t dlsch_demod_shift;
...
@@ -386,7 +403,7 @@ int16_t dlsch_demod_shift;
static
void
get_options
(
void
)
{
static
void
get_options
(
void
)
{
int
CC_id
;
int
CC_id
;
int
tddflag
=
0
,
nonbiotflag
;
int
tddflag
=
0
,
nonbiotflag
;
char
*
loopfile
=
NULL
;
char
*
loopfile
=
NULL
,
*
in_ip
=
NULL
,
*
in_path
=
NULL
;
int
dumpframe
=
0
;
int
dumpframe
=
0
;
uint32_t
online_log_messages
;
uint32_t
online_log_messages
;
uint32_t
glog_level
,
glog_verbosity
;
uint32_t
glog_level
,
glog_verbosity
;
...
...
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
View file @
a591de46
...
@@ -525,10 +525,10 @@ typedef struct{
...
@@ -525,10 +525,10 @@ typedef struct{
uint8_t
css_format_2_2
;
uint8_t
css_format_2_2
;
uint8_t
css_format_2_3
;
uint8_t
css_format_2_3
;
uint8_t
uss_dci_formats
;
uint8_t
uss_dci_formats
;
uint16_t
srs_monitoring_periodicity
;
uint16_t
srs_monitoring_periodicity
;
uint16_t
slot_monitoring_periodicity
;
uint16_t
slot_monitoring_periodicity
;
uint16_t
slot_monitoring_offset
;
uint16_t
slot_monitoring_offset
;
uint
16
_t
monitoring_symbols_in_slot
;
uint
32
_t
monitoring_symbols_in_slot
;
uint16_t
number_of_candidates
[
NFAPI_NR_MAX_NB_CCE_AGGREGATION_LEVELS
];
uint16_t
number_of_candidates
[
NFAPI_NR_MAX_NB_CCE_AGGREGATION_LEVELS
];
}
nfapi_nr_search_space_t
;
}
nfapi_nr_search_space_t
;
...
...
openair1/PHY/INIT/nr_init.c
View file @
a591de46
...
@@ -279,11 +279,12 @@ void phy_config_request(PHY_Config_t *phy_config) {
...
@@ -279,11 +279,12 @@ void phy_config_request(PHY_Config_t *phy_config) {
}*/
}*/
void
phy_free_nr_gNB
(
PHY_VARS_gNB
*
gNB
)
{
void
phy_free_nr_gNB
(
PHY_VARS_gNB
*
gNB
)
{
//NR_DL_FRAME_PARMS* const fp = &gNB->frame_parms;
//NR_DL_FRAME_PARMS* const fp = &gNB->frame_parms;
//nfapi_nr_config_request_t *cfg = &gNB->gNB_config;
//nfapi_nr_config_request_t *cfg = &gNB->gNB_config;
NR_gNB_COMMON
*
const
common_vars
=
&
gNB
->
common_vars
;
NR_gNB_COMMON
*
const
common_vars
=
&
gNB
->
common_vars
;
NR_gNB_PUSCH
**
const
pusch_vars
=
gNB
->
pusch_vars
;
//
NR_gNB_PUSCH **const pusch_vars = gNB->pusch_vars;
/*LTE_eNB_SRS *const srs_vars = gNB->srs_vars;
/*LTE_eNB_SRS *const srs_vars = gNB->srs_vars;
LTE_eNB_PRACH *const prach_vars = &gNB->prach_vars;*/
LTE_eNB_PRACH *const prach_vars = &gNB->prach_vars;*/
uint32_t
***
pdcch_dmrs
=
gNB
->
nr_gold_pdcch_dmrs
;
uint32_t
***
pdcch_dmrs
=
gNB
->
nr_gold_pdcch_dmrs
;
...
...
openair1/PHY/INIT/nr_init_ue.c
View file @
a591de46
...
@@ -678,13 +678,13 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
...
@@ -678,13 +678,13 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
int
i
,
j
,
k
,
l
,
slot
,
symb
,
q
,
layer
;
int
i
,
j
,
k
,
l
,
slot
,
symb
,
q
;
int
eNB_id
;
int
eNB_id
;
int
th_id
;
int
th_id
;
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
);
int
n_ssb_crb
=
(
fp
->
N_RB_DL
-
20
);
int
k_ssb
=
0
;
int
k_ssb
=
0
;
uint32_t
****
pusch_dmrs
;
uint32_t
****
pusch_dmrs
;
int
N_n_scid
[
2
]
=
{
0
,
1
};
// [HOTFIX] This is a temporary implementation of scramblingID0 and scramblingID1 which are given by DMRS-UplinkConfig
uint16_t
N_n_scid
[
2
]
=
{
0
,
1
};
// [HOTFIX] This is a temporary implementation of scramblingID0 and scramblingID1 which are given by DMRS-UplinkConfig
int
n_scid
;
int
n_scid
;
abstraction_flag
=
0
;
abstraction_flag
=
0
;
fp
->
nb_antennas_tx
=
1
;
fp
->
nb_antennas_tx
=
1
;
...
...
openair1/PHY/MODULATION/nr_modulation.c
View file @
a591de46
...
@@ -26,20 +26,19 @@ extern short nr_mod_table[NR_MOD_TABLE_SIZE_SHORT];
...
@@ -26,20 +26,19 @@ extern short nr_mod_table[NR_MOD_TABLE_SIZE_SHORT];
void
nr_modulation
(
uint32_t
*
in
,
void
nr_modulation
(
uint32_t
*
in
,
uint16_t
length
,
uint16_t
length
,
uint16_t
mod_order
,
uint16_t
mod_order
,
int16_t
*
out
)
{
int16_t
*
out
)
{
uint16_t
offset
;
uint16_t
offset
;
uint16_t
order
;
int
i
,
j
;
uint8_t
idx
,
b_idx
;
uint8_t
idx
,
b_idx
;
offset
=
(
mod_order
==
2
)
?
NR_MOD_TABLE_QPSK_OFFSET
:
(
mod_order
==
4
)
?
NR_MOD_TABLE_QAM16_OFFSET
:
\
offset
=
(
mod_order
==
2
)
?
NR_MOD_TABLE_QPSK_OFFSET
:
(
mod_order
==
4
)
?
NR_MOD_TABLE_QAM16_OFFSET
:
\
(
mod_order
==
6
)
?
NR_MOD_TABLE_QAM64_OFFSET
:
(
mod_order
==
8
)
?
NR_MOD_TABLE_QAM256_OFFSET
:
0
;
(
mod_order
==
6
)
?
NR_MOD_TABLE_QAM64_OFFSET
:
(
mod_order
==
8
)
?
NR_MOD_TABLE_QAM256_OFFSET
:
0
;
for
(
i
=
0
;
i
<
length
/
mod_order
;
i
++
)
{
for
(
int
i
=
0
;
i
<
length
/
mod_order
;
i
++
)
{
idx
=
0
;
idx
=
0
;
for
(
int
j
=
0
;
j
<
mod_order
;
j
++
)
for
(
j
=
0
;
j
<
mod_order
;
j
++
)
{
{
b_idx
=
(
i
*
mod_order
+
j
)
&
0x1f
;
b_idx
=
(
i
*
mod_order
+
j
)
&
0x1f
;
if
(
i
&&
(
!
b_idx
))
if
(
i
&&
(
!
b_idx
))
in
++
;
in
++
;
...
...
openair1/PHY/NR_REFSIG/nr_gold_ue.c
View file @
a591de46
...
@@ -23,7 +23,6 @@
...
@@ -23,7 +23,6 @@
void
nr_gold_pbch
(
PHY_VARS_NR_UE
*
ue
)
void
nr_gold_pbch
(
PHY_VARS_NR_UE
*
ue
)
{
{
unsigned
int
n
,
x1
,
x2
;
unsigned
int
n
,
x1
,
x2
;
unsigned
int
Nid
,
i_ssb
,
i_ssb2
;
unsigned
int
Nid
,
i_ssb
,
i_ssb2
;
unsigned
char
Lmax
,
l
,
n_hf
,
N_hf
;
unsigned
char
Lmax
,
l
,
n_hf
,
N_hf
;
...
@@ -63,9 +62,10 @@ void nr_gold_pbch(PHY_VARS_NR_UE* ue)
...
@@ -63,9 +62,10 @@ void nr_gold_pbch(PHY_VARS_NR_UE* ue)
}
}
void
nr_gold_pdcch
(
PHY_VARS_NR_UE
*
ue
,
unsigned
short
n_idDMRS
,
unsigned
short
length_dmrs
)
void
nr_gold_pdcch
(
PHY_VARS_NR_UE
*
ue
,
unsigned
short
n_idDMRS
,
unsigned
short
length_dmrs
)
{
{
unsigned
char
ns
,
l
;
unsigned
char
ns
,
l
;
unsigned
int
n
,
x1
,
x2
,
x2tmp0
;
unsigned
int
n
,
x1
,
x2
,
x2tmp0
;
unsigned
int
nid
;
unsigned
int
nid
;
...
@@ -106,9 +106,11 @@ void nr_gold_pdcch(PHY_VARS_NR_UE* ue,unsigned short n_idDMRS, unsigned short le
...
@@ -106,9 +106,11 @@ void nr_gold_pdcch(PHY_VARS_NR_UE* ue,unsigned short n_idDMRS, unsigned short le
}
}
}
}
void
nr_gold_pdsch
(
PHY_VARS_NR_UE
*
ue
,
unsigned
short
lbar
,
unsigned
short
*
n_idDMRS
,
unsigned
short
length_dmrs
)
void
nr_gold_pdsch
(
PHY_VARS_NR_UE
*
ue
,
unsigned
short
lbar
,
unsigned
short
*
n_idDMRS
,
unsigned
short
length_dmrs
)
{
{
unsigned
char
ns
,
l
;
unsigned
char
ns
,
l
;
unsigned
int
n
,
x1
,
x2
,
x2tmp0
;
unsigned
int
n
,
x1
,
x2
,
x2tmp0
;
int
nscid
;
int
nscid
;
...
@@ -161,9 +163,10 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDM
...
@@ -161,9 +163,10 @@ void nr_gold_pdsch(PHY_VARS_NR_UE* ue,unsigned short lbar,unsigned short *n_idDM
}
}
}
}
void
nr_init_pusch_dmrs
(
PHY_VARS_NR_UE
*
ue
,
uint16_t
*
N_n_scid
,
uint8_t
n_scid
)
void
nr_init_pusch_dmrs
(
PHY_VARS_NR_UE
*
ue
,
uint16_t
*
N_n_scid
,
uint8_t
n_scid
)
{
{
uint32_t
x1
,
x2
,
n
;
uint32_t
x1
,
x2
,
n
;
uint8_t
reset
,
slot
,
symb
,
q
;
uint8_t
reset
,
slot
,
symb
,
q
;
NR_DL_FRAME_PARMS
*
fp
=
&
ue
->
frame_parms
;
NR_DL_FRAME_PARMS
*
fp
=
&
ue
->
frame_parms
;
...
...
openair1/PHY/NR_REFSIG/refsig_defs_ue.h
View file @
a591de46
...
@@ -31,38 +31,42 @@
...
@@ -31,38 +31,42 @@
/*!\brief This function generates the NR Gold sequence (38-211, Sec 5.2.1) for the PBCH DMRS.
/*!\brief This function generates the NR Gold sequence (38-211, Sec 5.2.1) for the PBCH DMRS.
@param PHY_VARS_NR_UE* ue structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables
@param PHY_VARS_NR_UE* ue structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables
*/
*/
int
nr_pbch_dmrs_rx
(
int
dmrss
,
unsigned
int
*
nr_gold_pbch
,
int32_t
*
output
);
int
nr_pbch_dmrs_rx
(
int
dmrss
,
unsigned
int
*
nr_gold_pbch
,
int32_t
*
output
);
/*!\brief This function generates the NR Gold sequence (38-211, Sec 5.2.1) for the PDCCH DMRS.
/*!\brief This function generates the NR Gold sequence (38-211, Sec 5.2.1) for the PDCCH DMRS.
@param PHY_VARS_NR_UE* ue structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables
@param PHY_VARS_NR_UE* ue structure provides configuration, frame parameters and the pointers to the 32 bits sequence storage tables
*/
*/
int
nr_pdcch_dmrs_rx
(
PHY_VARS_NR_UE
*
ue
,
int
nr_pdcch_dmrs_rx
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
eNB_offset
,
uint8_t
eNB_offset
,
unsigned
int
Ns
,
unsigned
int
Ns
,
unsigned
int
*
nr_gold_pdcch
,
unsigned
int
*
nr_gold_pdcch
,
int32_t
*
output
,
int32_t
*
output
,
unsigned
short
p
,
unsigned
short
p
,
unsigned
short
nb_rb_corset
);
unsigned
short
nb_rb_corset
);
int
nr_pdsch_dmrs_rx
(
PHY_VARS_NR_UE
*
ue
,
int
nr_pdsch_dmrs_rx
(
PHY_VARS_NR_UE
*
ue
,
unsigned
int
Ns
,
unsigned
int
Ns
,
unsigned
int
*
nr_gold_pdsch
,
unsigned
int
*
nr_gold_pdsch
,
int32_t
*
output
,
int32_t
*
output
,
unsigned
short
p
,
unsigned
short
p
,
unsigned
char
lp
,
unsigned
char
lp
,
unsigned
short
nb_pdsch_rb
);
unsigned
short
nb_pdsch_rb
);
void
nr_gold_pbch
(
PHY_VARS_NR_UE
*
ue
);
void
nr_gold_pbch
(
PHY_VARS_NR_UE
*
ue
);
void
nr_gold_pdcch
(
PHY_VARS_NR_UE
*
ue
,
void
nr_gold_pdcch
(
PHY_VARS_NR_UE
*
ue
,
unsigned
short
n_idDMRS
,
unsigned
short
n_idDMRS
,
unsigned
short
length_dmrs
);
unsigned
short
length_dmrs
);
void
nr_gold_pdsch
(
PHY_VARS_NR_UE
*
ue
,
void
nr_gold_pdsch
(
PHY_VARS_NR_UE
*
ue
,
unsigned
short
lbar
,
unsigned
short
lbar
,
unsigned
short
*
n_idDMRS
,
unsigned
short
*
n_idDMRS
,
unsigned
short
length_dmrs
);
unsigned
short
length_dmrs
);
void
nr_init_pusch_dmrs
(
PHY_VARS_NR_UE
*
ue
,
uint16_t
*
N_n_scid
,
uint8_t
n_scid
);
void
nr_init_pusch_dmrs
(
PHY_VARS_NR_UE
*
ue
,
uint16_t
*
N_n_scid
,
uint8_t
n_scid
);
#endif
#endif
openair1/SCHED/ru_procedures.c
View file @
a591de46
...
@@ -218,11 +218,11 @@ void feptx_ofdm_2thread(RU_t *ru,int frame,int subframe) {
...
@@ -218,11 +218,11 @@ void feptx_ofdm_2thread(RU_t *ru,int frame,int subframe) {
}
}
void
feptx_ofdm
(
RU_t
*
ru
,
int
frame
,
int
subframe
)
{
void
feptx_ofdm
(
RU_t
*
ru
,
int
frame
,
int
subframe
)
{
LTE_DL_FRAME_PARMS
*
fp
=
ru
->
frame_parms
;
LTE_DL_FRAME_PARMS
*
fp
=
ru
->
frame_parms
;
unsigned
int
aa
,
slot_offset
,
slot_offset_F
;
unsigned
int
aa
,
slot_offset
,
slot_offset_F
;
int
dummy_tx_b
[
7680
*
4
]
__attribute__
((
aligned
(
32
)));
int
dummy_tx_b
[
7680
*
4
]
__attribute__
((
aligned
(
32
)));
int
i
,
j
,
tx_offset
;
int
i
,
j
,
tx_offset
;
int
slot_sizeF
=
(
fp
->
ofdm_symbol_size
)
*
int
slot_sizeF
=
(
fp
->
ofdm_symbol_size
)
*
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
a591de46
...
@@ -206,31 +206,50 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
...
@@ -206,31 +206,50 @@ void phy_procedures_gNB_TX(PHY_VARS_gNB *gNB,
}
}
void
nr_ulsch_procedures
(
PHY_VARS_gNB
*
gNB
,
gNB_L1_rxtx_proc_t
*
proc
,
int
UE_id
,
uint8_t
harq_pid
)
{
void
nr_ulsch_procedures
(
PHY_VARS_gNB
*
gNB
,
gNB_L1_rxtx_proc_t
*
proc
,
NR_DL_FRAME_PARMS
*
frame_parms
=
&
gNB
->
frame_parms
;
int
UE_id
,
uint8_t
harq_pid
)
{
NR_DL_FRAME_PARMS
*
frame_parms
=
&
gNB
->
frame_parms
;
nfapi_nr_ul_config_ulsch_pdu
*
rel15_ul
=
&
gNB
->
ulsch
[
UE_id
+
1
][
0
]
->
harq_processes
[
harq_pid
]
->
ulsch_pdu
;
nfapi_nr_ul_config_ulsch_pdu
*
rel15_ul
=
&
gNB
->
ulsch
[
UE_id
+
1
][
0
]
->
harq_processes
[
harq_pid
]
->
ulsch_pdu
;
nfapi_nr_ul_config_ulsch_pdu_rel15_t
*
nfapi_ulsch_pdu_rel15
=
&
rel15_ul
->
ulsch_pdu_rel15
;
nfapi_nr_ul_config_ulsch_pdu_rel15_t
*
nfapi_ulsch_pdu_rel15
=
&
rel15_ul
->
ulsch_pdu_rel15
;
uint8_t
ret
;
//
uint8_t ret;
uint32_t
G
;
uint32_t
G
;
int
Nid_cell
=
0
;
// [hna] shouldn't be a local variable (should be signaled)
int
Nid_cell
=
0
;
// [hna] shouldn't be a local variable (should be signaled)
G
=
nr_get_G
(
nfapi_ulsch_pdu_rel15
->
number_rbs
,
nfapi_ulsch_pdu_rel15
->
number_symbols
,
nfapi_ulsch_pdu_rel15
->
nb_re_dmrs
,
nfapi_ulsch_pdu_rel15
->
length_dmrs
,
nfapi_ulsch_pdu_rel15
->
Qm
,
nfapi_ulsch_pdu_rel15
->
n_layers
);
G
=
nr_get_G
(
nfapi_ulsch_pdu_rel15
->
number_rbs
,
nfapi_ulsch_pdu_rel15
->
number_symbols
,
nfapi_ulsch_pdu_rel15
->
nb_re_dmrs
,
nfapi_ulsch_pdu_rel15
->
length_dmrs
,
nfapi_ulsch_pdu_rel15
->
Qm
,
nfapi_ulsch_pdu_rel15
->
n_layers
);
//----------------------------------------------------------
//----------------------------------------------------------
//------------------- ULSCH unscrambling -------------------
//------------------- ULSCH unscrambling -------------------
//----------------------------------------------------------
//----------------------------------------------------------
nr_ulsch_unscrambling
(
gNB
->
pusch_vars
[
UE_id
]
->
llr
,
G
,
0
,
Nid_cell
,
rel15_ul
->
rnti
);
nr_ulsch_unscrambling
(
gNB
->
pusch_vars
[
UE_id
]
->
llr
,
G
,
0
,
Nid_cell
,
rel15_ul
->
rnti
);
//----------------------------------------------------------
//----------------------------------------------------------
//--------------------- ULSCH decoding ---------------------
//--------------------- ULSCH decoding ---------------------
//----------------------------------------------------------
//----------------------------------------------------------
ret
=
nr_ulsch_decoding
(
gNB
,
UE_id
,
gNB
->
pusch_vars
[
UE_id
]
->
llr
,
frame_parms
,
proc
->
frame_rx
,
//ret = nr_ulsch_decoding(gNB,
nfapi_ulsch_pdu_rel15
->
number_symbols
,
proc
->
slot_rx
,
harq_pid
,
0
);
nr_ulsch_decoding
(
gNB
,
UE_id
,
gNB
->
pusch_vars
[
UE_id
]
->
llr
,
frame_parms
,
proc
->
frame_rx
,
nfapi_ulsch_pdu_rel15
->
number_symbols
,
proc
->
slot_rx
,
harq_pid
,
0
);
// if (ret > ulsch_gNB->max_ldpc_iterations)
// if (ret > ulsch_gNB->max_ldpc_iterations)
// n_errors++;
// n_errors++;
...
...
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
a591de46
...
@@ -40,9 +40,8 @@
...
@@ -40,9 +40,8 @@
#include "PHY/impl_defs_nr.h"
#include "PHY/impl_defs_nr.h"
extern
PHY_VARS_NR_UE
***
PHY_vars_UE_g
;
extern
PHY_VARS_NR_UE
***
PHY_vars_UE_g
;
int8_t
nr_ue_scheduled_response
(
nr_scheduled_response_t
*
scheduled_response
){
int8_t
nr_ue_scheduled_response
(
nr_scheduled_response_t
*
scheduled_response
)
{
/// module id
/// module id
module_id_t
module_id
=
scheduled_response
->
module_id
;
module_id_t
module_id
=
scheduled_response
->
module_id
;
/// component carrier id
/// component carrier id
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
a591de46
...
@@ -2463,10 +2463,11 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
...
@@ -2463,10 +2463,11 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
#endif
#endif
void
phy_procedures_nrUE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
uint8_t
thread_id
)
{
void
phy_procedures_nrUE_TX
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
,
NR_DL_FRAME_PARMS
*
frame_parms
=&
ue
->
frame_parms
;
uint8_t
thread_id
)
{
fapi_nr_dci_pdu_rel15_t
*
ul_dci_pdu
;
fapi_nr_dci_pdu_rel15_t
*
ul_dci_pdu
;
NR_UE_ULSCH_t
*
ulsch_ue
;
NR_UE_ULSCH_t
*
ulsch_ue
;
NR_UL_UE_HARQ_t
*
harq_process_ul_ue
;
NR_UL_UE_HARQ_t
*
harq_process_ul_ue
;
...
@@ -2487,7 +2488,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g
...
@@ -2487,7 +2488,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g
harq_pid
=
0
;
//temporary implementation
harq_pid
=
0
;
//temporary implementation
generate_ue_ulsch_params
(
ue
,
generate_ue_ulsch_params
(
ue
,
0
,
0
,
gNB_id
,
gNB_id
,
...
@@ -2496,7 +2496,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g
...
@@ -2496,7 +2496,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g
ulsch_ue
=
ue
->
ulsch
[
thread_id
][
gNB_id
][
0
];
// cwd_index = 0
ulsch_ue
=
ue
->
ulsch
[
thread_id
][
gNB_id
][
0
];
// cwd_index = 0
harq_process_ul_ue
=
ulsch_ue
->
harq_processes
[
harq_pid
];
harq_process_ul_ue
=
ulsch_ue
->
harq_processes
[
harq_pid
];
TBS
=
nr_compute_tbs
(
ul_dci_pdu
->
mcs
,
harq_process_ul_ue
->
nb_rb
,
ulsch_ue
->
Nsymb_pusch
,
ulsch_ue
->
nb_re_dmrs
,
ulsch_ue
->
length_dmrs
,
ul_dci_pdu
->
precod_nbr_layers
);
TBS
=
nr_compute_tbs
(
ul_dci_pdu
->
mcs
,
harq_process_ul_ue
->
nb_rb
,
ulsch_ue
->
Nsymb_pusch
,
ulsch_ue
->
nb_re_dmrs
,
ulsch_ue
->
length_dmrs
,
ul_dci_pdu
->
precod_nbr_layers
);
//-----------------------------------------------------//
//-----------------------------------------------------//
...
@@ -2524,7 +2523,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g
...
@@ -2524,7 +2523,6 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t g
*/
*/
nr_ue_pusch_common_procedures
(
ue
,
nr_ue_pusch_common_procedures
(
ue
,
slot_tx
,
slot_tx
,
ul_dci_pdu
->
precod_nbr_layers
,
ul_dci_pdu
->
precod_nbr_layers
,
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
a591de46
This diff is collapsed.
Click to expand it.
openair1/SIMULATION/NR_PHY/dlsim.c
View file @
a591de46
...
@@ -195,7 +195,7 @@ int main(int argc, char **argv)
...
@@ -195,7 +195,7 @@ int main(int argc, char **argv)
cpuf
=
get_cpu_freq_GHz
();
cpuf
=
get_cpu_freq_GHz
();
if
(
load_configmodule
(
argc
,
argv
,
CONFIG_ENABLECMDLINEONLY
)
==
0
)
{
if
(
load_configmodule
(
argc
,
argv
,
CONFIG_ENABLECMDLINEONLY
)
==
0
)
{
exit_fun
(
"[SOFTMODEM] Error, configuration module init failed
\n
"
);
exit_fun
(
"[SOFTMODEM] Error, configuration module init failed
\n
"
);
}
}
...
@@ -449,8 +449,8 @@ int main(int argc, char **argv)
...
@@ -449,8 +449,8 @@ int main(int argc, char **argv)
gNB2UE
=
new_channel_desc_scm
(
n_tx
,
gNB2UE
=
new_channel_desc_scm
(
n_tx
,
n_rx
,
n_rx
,
channel_model
,
channel_model
,
fs
,
fs
,
bw
,
bw
,
0
,
0
,
0
,
0
,
0
);
0
);
...
@@ -703,7 +703,7 @@ int main(int argc, char **argv)
...
@@ -703,7 +703,7 @@ int main(int argc, char **argv)
for
(
i
=
0
;
i
<
frame_length_complex_samples
;
i
++
)
{
for
(
i
=
0
;
i
<
frame_length_complex_samples
;
i
++
)
{
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_rx
;
aa
++
)
{
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_rx
;
aa
++
)
{
((
short
*
)
UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
]
=
(
short
)
((
r_re
[
aa
][
i
]
+
sqrt
(
sigma2
/
2
)
*
gaussdouble
(
0
.
0
,
1
.
0
)));
((
short
*
)
UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
]
=
(
short
)
((
r_re
[
aa
][
i
]
+
sqrt
(
sigma2
/
2
)
*
gaussdouble
(
0
.
0
,
1
.
0
)));
((
short
*
)
UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
+
1
]
=
(
short
)
((
r_im
[
aa
][
i
]
+
sqrt
(
sigma2
/
2
)
*
gaussdouble
(
0
.
0
,
1
.
0
)));
((
short
*
)
UE
->
common_vars
.
rxdata
[
aa
])[
2
*
i
+
1
]
=
(
short
)
((
r_im
[
aa
][
i
]
+
sqrt
(
sigma2
/
2
)
*
gaussdouble
(
0
.
0
,
1
.
0
)));
}
}
...
@@ -726,7 +726,7 @@ int main(int argc, char **argv)
...
@@ -726,7 +726,7 @@ int main(int argc, char **argv)
UE_proc
.
frame_rx
=
frame
;
UE_proc
.
frame_rx
=
frame
;
UE_proc
.
nr_tti_rx
=
slot
;
UE_proc
.
nr_tti_rx
=
slot
;
UE_proc
.
subframe_rx
=
slot
;
UE_proc
.
subframe_rx
=
slot
;
nr_ue_scheduled_response
(
&
UE_mac
->
scheduled_response
);
nr_ue_scheduled_response
(
&
UE_mac
->
scheduled_response
);
printf
(
"Running phy procedures UE RX %d.%d
\n
"
,
frame
,
slot
);
printf
(
"Running phy procedures UE RX %d.%d
\n
"
,
frame
,
slot
);
...
@@ -743,7 +743,7 @@ int main(int argc, char **argv)
...
@@ -743,7 +743,7 @@ int main(int argc, char **argv)
if
(
UE
->
frame_parms
.
nb_antennas_rx
>
1
)
if
(
UE
->
frame_parms
.
nb_antennas_rx
>
1
)
LOG_M
(
"rxsigF1.m"
,
"rxsF1"
,
UE
->
common_vars
.
common_vars_rx_data_per_thread
[
0
].
rxdataF
[
1
],
slot_length_complex_samples_no_prefix
,
1
,
1
);
LOG_M
(
"rxsigF1.m"
,
"rxsF1"
,
UE
->
common_vars
.
common_vars_rx_data_per_thread
[
0
].
rxdataF
[
1
],
slot_length_complex_samples_no_prefix
,
1
,
1
);
}
}
if
(
UE
->
dci_ind
.
number_of_dcis
==
0
)
n_errors
++
;
if
(
UE
->
dci_ind
.
number_of_dcis
==
0
)
n_errors
++
;
}
}
}
//noise trials
}
//noise trials
...
...
openair1/SIMULATION/NR_PHY/pucchsim.c
View file @
a591de46
...
@@ -94,7 +94,7 @@ int main(int argc, char **argv)
...
@@ -94,7 +94,7 @@ int main(int argc, char **argv)
// int sync_pos, sync_pos_slot;
// int sync_pos, sync_pos_slot;
// FILE *rx_frame_file;
// FILE *rx_frame_file;
FILE
*
output_fd
=
NULL
;
FILE
*
output_fd
=
NULL
;
uint8_t
write_output_file
=
0
;
//
uint8_t write_output_file=0;
//int result;
//int result;
//int freq_offset;
//int freq_offset;
//int subframe_offset;
//int subframe_offset;
...
@@ -144,7 +144,7 @@ int main(int argc, char **argv)
...
@@ -144,7 +144,7 @@ int main(int argc, char **argv)
while
((
c
=
getopt
(
argc
,
argv
,
"f:hA:f:g:n:o:s:S:t:x:y:z:N:F:GR:P:IL:"
))
!=
-
1
)
{
while
((
c
=
getopt
(
argc
,
argv
,
"f:hA:f:g:n:o:s:S:t:x:y:z:N:F:GR:P:IL:"
))
!=
-
1
)
{
switch
(
c
)
{
switch
(
c
)
{
case
'f'
:
case
'f'
:
write_output_file
=
1
;
//
write_output_file=1;
output_fd
=
fopen
(
optarg
,
"w"
);
output_fd
=
fopen
(
optarg
,
"w"
);
if
(
output_fd
==
NULL
)
{
if
(
output_fd
==
NULL
)
{
...
...
openair1/SIMULATION/NR_PHY/ulschsim.c
View file @
a591de46
...
@@ -104,7 +104,7 @@ int main(int argc, char **argv) {
...
@@ -104,7 +104,7 @@ int main(int argc, char **argv) {
char
c
;
char
c
;
int
i
,
sf
;
int
i
,
sf
;
double
SNR
,
SNR_lin
,
snr0
=
-
2
.
0
,
snr1
=
2
.
0
;
double
SNR
,
snr0
=
-
2
.
0
,
snr1
=
2
.
0
;
//, SNR_lin
;
double
snr_step
=
0
.
1
;
double
snr_step
=
0
.
1
;
uint8_t
snr1set
=
0
;
uint8_t
snr1set
=
0
;
FILE
*
output_fd
=
NULL
;
FILE
*
output_fd
=
NULL
;
...
@@ -123,7 +123,7 @@ int main(int argc, char **argv) {
...
@@ -123,7 +123,7 @@ int main(int argc, char **argv) {
//unsigned char pbch_phase = 0;
//unsigned char pbch_phase = 0;
int
frame
=
0
,
subframe
=
0
;
int
frame
=
0
,
subframe
=
0
;
NR_DL_FRAME_PARMS
*
frame_parms
;
NR_DL_FRAME_PARMS
*
frame_parms
;
double
sigma
;
//
double sigma;
unsigned
char
qbits
=
8
;
unsigned
char
qbits
=
8
;
int
ret
;
int
ret
;
int
loglvl
=
OAILOG_WARNING
;
int
loglvl
=
OAILOG_WARNING
;
...
@@ -531,15 +531,10 @@ int main(int argc, char **argv) {
...
@@ -531,15 +531,10 @@ int main(int argc, char **argv) {
//if (i<16) printf("modulated_input[%d] = %d\n",i,modulated_input[i]);
//if (i<16) printf("modulated_input[%d] = %d\n",i,modulated_input[i]);
SNR_lin
=
pow
(
10
,
SNR
/
10
.
0
);
//SNR_lin = pow(10, SNR / 10.0);
sigma
=
1
.
0
/
sqrt
(
2
*
SNR_lin
);
//sigma = 1.0 / sqrt(2 * SNR_lin);
#if 0
channel_output_fixed[i] = (short) quantize(sigma / 4.0 / 4.0,
modulated_input[i] + sigma * gaussdouble(0.0, 1.0),
qbits);
#else
channel_output_fixed
[
i
]
=
(
short
)
quantize
(
0
.
01
,
modulated_input
[
i
],
qbits
);
channel_output_fixed
[
i
]
=
(
short
)
quantize
(
0
.
01
,
modulated_input
[
i
],
qbits
);
#endif
//channel_output_fixed[i] = (short) quantize(sigma / 4.0 / 4.0, modulated_input[i] + sigma * gaussdouble(0.0, 1.0), qbits);
//channel_output_fixed[i] = (char)quantize8bit(sigma/4.0,(2.0*modulated_input[i]) - 1.0 + sigma*gaussdouble(0.0,1.0));
//channel_output_fixed[i] = (char)quantize8bit(sigma/4.0,(2.0*modulated_input[i]) - 1.0 + sigma*gaussdouble(0.0,1.0));
//printf("channel_output_fixed[%d]: %d\n",i,channel_output_fixed[i]);
//printf("channel_output_fixed[%d]: %d\n",i,channel_output_fixed[i]);
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
a591de46
...
@@ -453,7 +453,7 @@ int main(int argc, char **argv) {
...
@@ -453,7 +453,7 @@ int main(int argc, char **argv) {
unsigned
char
harq_pid
=
0
;
unsigned
char
harq_pid
=
0
;
unsigned
int
TBS
=
8424
;
unsigned
int
TBS
=
8424
;
unsigned
int
available_bits
;
unsigned
int
available_bits
;
uint8_t
nb_re_dmrs
=
UE
->
dmrs_UplinkConfig
.
pusch_maxLength
*
(
UE
->
dmrs_UplinkConfig
.
pusch_dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
;
uint8_t
nb_re_dmrs
=
UE
->
dmrs_UplinkConfig
.
pusch_maxLength
*
(
UE
->
dmrs_UplinkConfig
.
pusch_dmrs_type
==
pusch_dmrs_type1
)
?
6
:
4
;
uint8_t
length_dmrs
=
1
;
uint8_t
length_dmrs
=
1
;
unsigned
char
mod_order
;
unsigned
char
mod_order
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
a591de46
...
@@ -400,7 +400,7 @@ void nr_configure_dci_from_pdcch_config(nfapi_nr_dl_config_pdcch_parameters_rel1
...
@@ -400,7 +400,7 @@ void nr_configure_dci_from_pdcch_config(nfapi_nr_dl_config_pdcch_parameters_rel1
// first symbol
// first symbol
//AssertFatal(pdcch_scs==kHz15, "PDCCH SCS above 15kHz not allowed if a symbol above 2 is monitored");
//AssertFatal(pdcch_scs==kHz15, "PDCCH SCS above 15kHz not allowed if a symbol above 2 is monitored");
for
(
int
i
=
0
;
i
<
get_symbolsperslot
(
&
cfg
);
i
++
)
for
(
int
i
=
0
;
i
<
get_symbolsperslot
(
&
cfg
);
i
++
)
if
((
search_space
->
monitoring_symbols_in_slot
>>
(
15
-
i
))
&
1
)
{
if
((
search_space
->
monitoring_symbols_in_slot
>>
(
31
-
i
))
&
1
)
{
pdcch_params
->
first_symbol
=
i
;
pdcch_params
->
first_symbol
=
i
;
break
;
break
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/main.c
View file @
a591de46
...
@@ -57,8 +57,8 @@ void nr_init_coreset(nfapi_nr_coreset_t *coreset) {
...
@@ -57,8 +57,8 @@ void nr_init_coreset(nfapi_nr_coreset_t *coreset) {
coreset
->
dmrs_scrambling_id
=
0
;
coreset
->
dmrs_scrambling_id
=
0
;
}
}
void
nr_init_search_space
(
nfapi_nr_search_space_t
*
search_space
)
{
void
nr_init_search_space
(
nfapi_nr_search_space_t
*
search_space
)
{
search_space
->
search_space_id
=
1
;
search_space
->
search_space_id
=
1
;
search_space
->
coreset_id
=
1
;
search_space
->
coreset_id
=
1
;
search_space
->
search_space_type
=
NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC
;
search_space
->
search_space_type
=
NFAPI_NR_SEARCH_SPACE_TYPE_UE_SPECIFIC
;
...
...
openair2/NETWORK_DRIVER/MESH/local.h
View file @
a591de46
...
@@ -64,7 +64,9 @@
...
@@ -64,7 +64,9 @@
#include "rrc_nas_primitives.h"
#include "rrc_nas_primitives.h"
#include "COMMON/platform_types.h"
#include "COMMON/platform_types.h"
#define MAKE_VERSION(a,b,c) ((a)*256+(b)*16+(c))
#ifndef MAKE_VERSION
#define MAKE_VERSION(a,b,c) ((a)*256+(b)*16+(c))
#endif
struct
rb_entity
{
struct
rb_entity
{
nasRadioBearerId_t
rab_id
;
nasRadioBearerId_t
rab_id
;
...
...
openair2/UTIL/OPT/opt.h
View file @
a591de46
...
@@ -68,14 +68,14 @@ typedef guint8 gboolean;
...
@@ -68,14 +68,14 @@ typedef guint8 gboolean;
#define CONFIG_HLP_TYPEMON "Type of L2 monitoring messages: none,pcap,wireshark \n"
#define CONFIG_HLP_TYPEMON "Type of L2 monitoring messages: none,pcap,wireshark \n"
#define CONFIG_HLP_L2MONIP "ip address for wireshark messages \n"
#define CONFIG_HLP_L2MONIP "ip address for wireshark messages \n"
#define CONFIG_HLP_L2MONPATH "file path for pcap messages on localhost \n"
#define CONFIG_HLP_L2MONPATH "file path for pcap messages on localhost \n"
/*---------------------------------------------------------------------------------------------------------------------------------------------
--------------------------
*/
/*---------------------------------------------------------------------------------------------------------------------------------------------*/
/* command line parameters for LOG utility
*/
/* command line parameters for LOG utility */
/* optname
helpstr paramflags XXXptr defXXXval type
numelt */
/* optname
helpstr paramflags XXXptr defXXXval type
numelt */
/*---------------------------------------------------------------------------------------------------------------------------------------------
--------------------------
*/
/*---------------------------------------------------------------------------------------------------------------------------------------------*/
#define OPT_PARAMS_DESC { \
#define OPT_PARAMS_DESC { \
{"type" ,
CONFIG_HLP_TYPEMON, 0, strptr:&in_type, defstrval:"none", TYPE_STRING, 0},
\
{"type" ,
CONFIG_HLP_TYPEMON, 0, strptr:&in_type, defstrval:"none", TYPE_STRING, 0},
\
{"ip" ,
CONFIG_HLP_L2MONIP, 0, strptr:&in_ip, defstrval:"127.0.0.1", TYPE_STRING, 0},
\
{"ip" ,
CONFIG_HLP_L2MONIP, 0, strptr:&in_ip, defstrval:"127.0.0.1", TYPE_STRING, 0},
\
{"path" ,
CONFIG_HLP_L2MONPATH, 0, strptr:&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, 0},
\
{"path" ,
CONFIG_HLP_L2MONPATH, 0, strptr:&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, 0},
\
}
}
#define OPTTYPE_IDX 0
#define OPTTYPE_IDX 0
...
...
openair2/UTIL/OPT/probe.c
View file @
a591de46
...
@@ -99,8 +99,6 @@ int opt_enabled=0;
...
@@ -99,8 +99,6 @@ int opt_enabled=0;
//static unsigned char g_PDUBuffer[1600];
//static unsigned char g_PDUBuffer[1600];
//static unsigned int g_PDUOffset;
//static unsigned int g_PDUOffset;
char
in_ip
[
40
];
char
in_path
[
FILENAME_MAX
];
FILE
*
file_fd
=
NULL
;
FILE
*
file_fd
=
NULL
;
pcap_hdr_t
file_header
=
{
pcap_hdr_t
file_header
=
{
0xa1b2c3d4
,
/* magic number */
0xa1b2c3d4
,
/* magic number */
...
@@ -334,7 +332,9 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType,
...
@@ -334,7 +332,9 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType,
/* Write an individual PDU (PCAP packet header + mac-context + mac-pdu) */
/* Write an individual PDU (PCAP packet header + mac-context + mac-pdu) */
static
int
MAC_LTE_PCAP_WritePDU
(
MAC_Context_Info_t
*
context
,
static
int
MAC_LTE_PCAP_WritePDU
(
MAC_Context_Info_t
*
context
,
const
uint8_t
*
PDU
,
unsigned
int
length
)
{
const
uint8_t
*
PDU
,
unsigned
int
length
)
{
pcaprec_hdr_t
packet_header
;
pcaprec_hdr_t
packet_header
;
uint8_t
context_header
[
256
];
uint8_t
context_header
[
256
];
int
offset
=
0
;
int
offset
=
0
;
...
@@ -379,6 +379,7 @@ static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context,
...
@@ -379,6 +379,7 @@ static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context,
fwrite
(
PDU
,
1
,
length
,
file_fd
);
fwrite
(
PDU
,
1
,
length
,
file_fd
);
return
1
;
return
1
;
}
}
#include <common/ran_context.h>
#include <common/ran_context.h>
extern
RAN_CONTEXT_t
RC
;
extern
RAN_CONTEXT_t
RC
;
#include <openair1/PHY/phy_extern_ue.h>
#include <openair1/PHY/phy_extern_ue.h>
...
@@ -434,8 +435,11 @@ void trace_pdu(int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size,
...
@@ -434,8 +435,11 @@ void trace_pdu(int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size,
}
}
}
}
/*---------------------------------------------------*/
/*---------------------------------------------------*/
int
init_opt
(
void
)
{
int
init_opt
(
void
)
{
char
*
in_type
=
NULL
;
char
*
in_type
=
NULL
;
char
*
in_ip
=
NULL
;
char
*
in_path
=
NULL
;
paramdef_t
opt_params
[]
=
OPT_PARAMS_DESC
;
paramdef_t
opt_params
[]
=
OPT_PARAMS_DESC
;
checkedparam_t
opt_checkParams
[]
=
OPTPARAMS_CHECK_DESC
;
checkedparam_t
opt_checkParams
[]
=
OPTPARAMS_CHECK_DESC
;
uint16_t
in_port
;
uint16_t
in_port
;
...
@@ -520,6 +524,7 @@ int init_opt(void) {
...
@@ -520,6 +524,7 @@ int init_opt(void) {
// memset(mac_info, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8);
// memset(mac_info, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8);
return
(
1
);
return
(
1
);
}
}
void
terminate_opt
(
void
)
{
void
terminate_opt
(
void
)
{
/* Close local socket */
/* Close local socket */
// free(mac_info);
// free(mac_info);
...
...
targets/ARCH/COMMON/common_lib.c
View file @
a591de46
...
@@ -153,8 +153,7 @@ void uhd_set_thread_prio(void) {
...
@@ -153,8 +153,7 @@ void uhd_set_thread_prio(void) {
}
else
{
}
else
{
(
set_prio_func_t
)
shlib_fdesc
[
0
].
fptr
();
(
set_prio_func_t
)
shlib_fdesc
[
0
].
fptr
();
}
}
return
ret
;
//return ret;
}
}
int
openair0_device_load
(
openair0_device
*
device
,
int
openair0_device_load
(
openair0_device
*
device
,
...
...
targets/RT/USER/lte-softmodem-common.c
View file @
a591de46
...
@@ -54,6 +54,7 @@ softmodem_params_t *get_softmodem_params(void) {
...
@@ -54,6 +54,7 @@ softmodem_params_t *get_softmodem_params(void) {
void
get_common_options
(
void
)
{
void
get_common_options
(
void
)
{
uint32_t
online_log_messages
;
uint32_t
online_log_messages
;
uint32_t
glog_level
;
uint32_t
glog_level
;
uint32_t
glog_verbosity
;
uint32_t
start_telnetsrv
;
uint32_t
start_telnetsrv
;
uint32_t
noS1
;
uint32_t
noS1
;
uint32_t
nokrnmod
;
uint32_t
nokrnmod
;
...
...
targets/RT/USER/lte-softmodem.h
View file @
a591de46
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