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
lizhongxiao
OpenXG-RAN
Commits
c9d1fe85
Commit
c9d1fe85
authored
Apr 06, 2020
by
Francesco Mani
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'NR_RRC_PRACH_procedures_todevelop' into NR_RRC_PRACH_procedures
parents
cd843860
8892d006
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
36 additions
and
28 deletions
+36
-28
executables/nr-softmodem-common.h
executables/nr-softmodem-common.h
+1
-0
executables/nr-softmodem.c
executables/nr-softmodem.c
+3
-0
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+3
-5
executables/softmodem-common.h
executables/softmodem-common.h
+4
-0
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+13
-13
openair1/SIMULATION/NR_PHY/ulsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
+2
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+8
-7
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+1
-1
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+1
-1
No files found.
executables/nr-softmodem-common.h
View file @
c9d1fe85
...
@@ -57,6 +57,7 @@
...
@@ -57,6 +57,7 @@
#define CONFIG_HLP_DLSHIFT "dynamic shift for LLR compuation for TM3/4 (default 0)\n"
#define CONFIG_HLP_DLSHIFT "dynamic shift for LLR compuation for TM3/4 (default 0)\n"
#define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n"
#define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n"
#define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n"
#define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n"
#define CONFIG_HLP_DORA "test gNB and UE with RA procedures\n"
#define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n"
#define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n"
#define CONFIG_HLP_EXCCLK "tells hardware to use a clock reference (0:internal(default), 1:external, 2:gpsdo)\n"
#define CONFIG_HLP_EXCCLK "tells hardware to use a clock reference (0:internal(default), 1:external, 2:gpsdo)\n"
#define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n"
#define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n"
...
...
executables/nr-softmodem.c
View file @
c9d1fe85
...
@@ -830,6 +830,9 @@ int main( int argc, char **argv )
...
@@ -830,6 +830,9 @@ int main( int argc, char **argv )
openair0_cfg
[
0
].
threequarter_fs
=
threequarter_fs
;
openair0_cfg
[
0
].
threequarter_fs
=
threequarter_fs
;
EPC_MODE_ENABLED
=
!
IS_SOFTMODEM_NOS1
;
//!get_softmodem_params()->phy_test;
EPC_MODE_ENABLED
=
!
IS_SOFTMODEM_NOS1
;
//!get_softmodem_params()->phy_test;
if
(
get_softmodem_params
()
->
do_ra
)
AssertFatal
(
get_softmodem_params
()
->
phy_test
==
0
,
"RA and phy_test are mutually exclusive
\n
"
);
#if T_TRACER
#if T_TRACER
T_Config_Init
();
T_Config_Init
();
#endif
#endif
...
...
executables/nr-uesoftmodem.c
View file @
c9d1fe85
...
@@ -716,6 +716,9 @@ int main( int argc, char **argv ) {
...
@@ -716,6 +716,9 @@ int main( int argc, char **argv ) {
PHY_vars_UE_g
=
malloc
(
sizeof
(
PHY_VARS_NR_UE
**
));
PHY_vars_UE_g
=
malloc
(
sizeof
(
PHY_VARS_NR_UE
**
));
PHY_vars_UE_g
[
0
]
=
malloc
(
sizeof
(
PHY_VARS_NR_UE
*
)
*
MAX_NUM_CCs
);
PHY_vars_UE_g
[
0
]
=
malloc
(
sizeof
(
PHY_VARS_NR_UE
*
)
*
MAX_NUM_CCs
);
if
(
get_softmodem_params
()
->
do_ra
)
AssertFatal
(
get_softmodem_params
()
->
phy_test
==
0
,
"RA and phy_test are mutually exclusive
\n
"
);
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
printf
(
"frame_parms %d
\n
"
,
frame_parms
[
CC_id
]
->
ofdm_symbol_size
);
printf
(
"frame_parms %d
\n
"
,
frame_parms
[
CC_id
]
->
ofdm_symbol_size
);
frame_parms
[
CC_id
]
->
nb_antennas_tx
=
nb_antenna_tx
;
frame_parms
[
CC_id
]
->
nb_antennas_tx
=
nb_antenna_tx
;
...
@@ -742,11 +745,6 @@ int main( int argc, char **argv ) {
...
@@ -742,11 +745,6 @@ int main( int argc, char **argv ) {
init_nr_ue_vars
(
UE
[
CC_id
],
frame_parms
[
CC_id
],
0
,
abstraction_flag
);
init_nr_ue_vars
(
UE
[
CC_id
],
frame_parms
[
CC_id
],
0
,
abstraction_flag
);
if
(
get_softmodem_params
()
->
phy_test
==
1
)
UE
[
CC_id
]
->
mac_enabled
=
0
;
else
UE
[
CC_id
]
->
mac_enabled
=
1
;
UE
[
CC_id
]
->
mac_enabled
=
1
;
UE
[
CC_id
]
->
mac_enabled
=
1
;
UE
[
CC_id
]
->
if_inst
=
nr_ue_if_module_init
(
0
);
UE
[
CC_id
]
->
if_inst
=
nr_ue_if_module_init
(
0
);
UE
[
CC_id
]
->
UE_scan
=
UE_scan
;
UE
[
CC_id
]
->
UE_scan
=
UE_scan
;
...
...
executables/softmodem-common.h
View file @
c9d1fe85
...
@@ -50,6 +50,7 @@ extern "C"
...
@@ -50,6 +50,7 @@ extern "C"
#define CONFIG_HLP_DUMPFRAME "dump UE received frame to rxsig_frame0.dat and exit\n"
#define CONFIG_HLP_DUMPFRAME "dump UE received frame to rxsig_frame0.dat and exit\n"
#define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n"
#define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n"
#define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n"
#define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n"
#define CONFIG_HLP_DORA "test gNB and UE with RA procedures\n"
#define CONFIG_HLP_EXTS "tells hardware to use an external timing reference\n"
#define CONFIG_HLP_EXTS "tells hardware to use an external timing reference\n"
#define CONFIG_HLP_DMRSSYNC "tells RU to insert DMRS in subframe 1 slot 0"
#define CONFIG_HLP_DMRSSYNC "tells RU to insert DMRS in subframe 1 slot 0"
#define CONFIG_HLP_CLK "tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)\n"
#define CONFIG_HLP_CLK "tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)\n"
...
@@ -89,6 +90,7 @@ extern "C"
...
@@ -89,6 +90,7 @@ extern "C"
/*-----------------------------------------------------------------------------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------------------------------------------------------------------------------*/
#define RF_CONFIG_FILE softmodem_params.rf_config_file
#define RF_CONFIG_FILE softmodem_params.rf_config_file
#define PHY_TEST softmodem_params.phy_test
#define PHY_TEST softmodem_params.phy_test
#define DO_RA softmodem_params.do_ra
#define WAIT_FOR_SYNC softmodem_params.wait_for_sync
#define WAIT_FOR_SYNC softmodem_params.wait_for_sync
#define SINGLE_THREAD_FLAG softmodem_params.single_thread_flag
#define SINGLE_THREAD_FLAG softmodem_params.single_thread_flag
#define CHAIN_OFFSET softmodem_params.chain_offset
#define CHAIN_OFFSET softmodem_params.chain_offset
...
@@ -104,6 +106,7 @@ extern "C"
...
@@ -104,6 +106,7 @@ extern "C"
#define CMDLINE_PARAMS_DESC { \
#define CMDLINE_PARAMS_DESC { \
{"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)},\
{"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}, \
{"do-ra", CONFIG_HLP_DORA, PARAMFLAG_BOOL, iptr:&DO_RA, defintval:0, TYPE_INT, 0}, \
{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \
{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \
{"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \
{"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \
{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \
...
@@ -192,6 +195,7 @@ typedef struct {
...
@@ -192,6 +195,7 @@ typedef struct {
//THREAD_STRUCT thread_struct;
//THREAD_STRUCT thread_struct;
char
rf_config_file
[
1024
];
char
rf_config_file
[
1024
];
int
phy_test
;
int
phy_test
;
int
do_ra
;
uint8_t
usim_test
;
uint8_t
usim_test
;
int
emulate_rf
;
int
emulate_rf
;
int
wait_for_sync
;
//eNodeB only
int
wait_for_sync
;
//eNodeB only
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
c9d1fe85
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
#ifdef EMOS
#ifdef EMOS
#include "SCHED/phy_procedures_emos.h"
#include "SCHED/phy_procedures_emos.h"
#endif
#endif
#include "executables/softmodem-common.h"
//#define DEBUG_PHY_PROC
//#define DEBUG_PHY_PROC
#define NR_PDCCH_SCHED
#define NR_PDCCH_SCHED
...
@@ -2255,24 +2255,24 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
...
@@ -2255,24 +2255,24 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue,
} // UE_mode==PUSCH
} // UE_mode==PUSCH
*/
*/
nr_ue_pusch_common_procedures
(
ue
,
nr_ue_pusch_common_procedures
(
ue
,
harq_pid
,
harq_pid
,
slot_tx
,
slot_tx
,
thread_id
,
thread_id
,
gNB_id
,
gNB_id
,
&
ue
->
frame_parms
);
&
ue
->
frame_parms
);
}
}
/* RACH */
/* RACH */
if
((
ue
->
UE_mode
[
gNB_id
]
==
PRACH
)
&&
(
ue
->
prach_vars
[
gNB_id
]
->
prach_Config_enabled
==
1
))
{
if
(
get_softmodem_params
()
->
do_ra
==
1
)
{
if
((
ue
->
UE_mode
[
gNB_id
]
==
PRACH
)
&&
(
ue
->
prach_vars
[
gNB_id
]
->
prach_Config_enabled
==
1
))
{
nr_ue_prach_procedures
(
ue
,
proc
,
gNB_id
,
mode
);
nr_ue_prach_procedures
(
ue
,
proc
,
gNB_id
,
mode
);
}
else
{
ue
->
prach_resources
[
gNB_id
]
->
generate_nr_prach
=
0
;
}
}
}
else
{
ue
->
prach_resources
[
gNB_id
]
->
generate_nr_prach
=
0
;
}
LOG_I
(
PHY
,
"****** end TX-Chain for AbsSubframe %d.%d ******
\n
"
,
frame_tx
,
slot_tx
);
LOG_I
(
PHY
,
"****** end TX-Chain for AbsSubframe %d.%d ******
\n
"
,
frame_tx
,
slot_tx
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX
,
VCD_FUNCTION_OUT
);
...
...
openair1/SIMULATION/NR_PHY/ulsim.c
View file @
c9d1fe85
...
@@ -353,7 +353,8 @@ int main(int argc, char **argv)
...
@@ -353,7 +353,8 @@ int main(int argc, char **argv)
T_stdout
=
1
;
T_stdout
=
1
;
get_softmodem_params
()
->
phy_test
=
1
;
get_softmodem_params
()
->
phy_test
=
1
;
get_softmodem_params
()
->
do_ra
=
0
;
if
(
snr1set
==
0
)
if
(
snr1set
==
0
)
snr1
=
snr0
+
10
;
snr1
=
snr0
+
10
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
c9d1fe85
...
@@ -360,11 +360,12 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -360,11 +360,12 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
gNB
->
ta_len
=
2
;
gNB
->
ta_len
=
2
;
}
}
nr_schedule_RA
(
module_idP
,
frame_txP
,
slot_txP
);
if
(
get_softmodem_params
()
->
phy_test
==
0
)
nr_schedule_RA
(
module_idP
,
frame_txP
,
slot_txP
);
// Phytest scheduling
// Phytest scheduling
if
(
get_softmodem_params
()
->
phy_test
&&
slot_txP
==
1
){
if
(
get_softmodem_params
()
->
phy_test
&&
slot_txP
==
1
){
//
nr_schedule_uss_dlsch_phytest(module_idP, frame_txP, slot_txP,NULL);
nr_schedule_uss_dlsch_phytest
(
module_idP
,
frame_txP
,
slot_txP
,
NULL
);
// resetting ta flag
// resetting ta flag
gNB
->
ta_len
=
0
;
gNB
->
ta_len
=
0
;
}
}
...
@@ -380,12 +381,12 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -380,12 +381,12 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
if
(
is_nr_UL_slot
(
cc
->
ServingCellConfigCommon
,
slot_rxP
))
{
if
(
is_nr_UL_slot
(
cc
->
ServingCellConfigCommon
,
slot_rxP
))
{
schedule_nr_prach
(
module_idP
,
(
frame_rxP
+
1
)
&
1023
,
slot_rxP
);
if
(
get_softmodem_params
()
->
phy_test
==
0
)
{
schedule_nr_prach
(
module_idP
,
(
frame_rxP
+
1
)
&
1023
,
slot_rxP
);
nr_schedule_reception_msg3
(
module_idP
,
0
,
frame_rxP
,
slot_rxP
);
nr_schedule_reception_msg3
(
module_idP
,
0
,
frame_rxP
,
slot_rxP
);
}
if
(
get_softmodem_params
()
->
phy_test
&&
slot_rxP
==
8
){
if
(
get_softmodem_params
()
->
phy_test
&&
slot_rxP
==
8
){
//
nr_schedule_uss_ulsch_phytest(module_idP, frame_rxP, slot_rxP);
nr_schedule_uss_ulsch_phytest
(
module_idP
,
frame_rxP
,
slot_rxP
);
}
}
}
}
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
c9d1fe85
...
@@ -204,7 +204,7 @@ static void init_NR_SI(gNB_RRC_INST *rrc) {
...
@@ -204,7 +204,7 @@ static void init_NR_SI(gNB_RRC_INST *rrc) {
);
);
if
(
get_softmodem_params
()
->
phy_test
>
0
)
{
if
(
get_softmodem_params
()
->
phy_test
>
0
||
get_softmodem_params
()
->
do_ra
>
0
)
{
// This is for phytest only, emulate first X2 message if uecap.raw file is present
// This is for phytest only, emulate first X2 message if uecap.raw file is present
FILE
*
fd
;
FILE
*
fd
;
...
...
openair2/RRC/NR_UE/rrc_UE.c
View file @
c9d1fe85
...
@@ -319,7 +319,7 @@ NR_UE_RRC_INST_t* openair_rrc_top_init_ue_nr(char* rrc_config_path){
...
@@ -319,7 +319,7 @@ NR_UE_RRC_INST_t* openair_rrc_top_init_ue_nr(char* rrc_config_path){
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_ResourceConfig_list
,
NR_maxNrofCSI_ResourceConfigurations
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_ResourceConfig_list
,
NR_maxNrofCSI_ResourceConfigurations
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_ReportConfig_list
,
NR_maxNrofCSI_ReportConfigurations
);
RRC_LIST_INIT
(
NR_UE_rrc_inst
->
CSI_ReportConfig_list
,
NR_maxNrofCSI_ReportConfigurations
);
if
(
get_softmodem_params
()
->
phy_test
==
1
)
{
if
(
get_softmodem_params
()
->
phy_test
==
1
||
get_softmodem_params
()
->
do_ra
==
1
)
{
// read in files for RRCReconfiguration and RBconfig
// read in files for RRCReconfiguration and RBconfig
FILE
*
fd
;
FILE
*
fd
;
char
filename
[
1024
];
char
filename
[
1024
];
...
...
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