flag do_ra alternative to phy_test to perform RA procedures
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -822,6 +822,9 @@ int main( int argc, char **argv )
|
|||||||
|
|
||||||
openair0_cfg[0].threequarter_fs = threequarter_fs;
|
openair0_cfg[0].threequarter_fs = threequarter_fs;
|
||||||
|
|
||||||
|
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
|
||||||
|
|||||||
@@ -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 ) {
|
|||||||
|
|
||||||
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;
|
||||||
|
|||||||
@@ -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"
|
|||||||
/*-----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#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"
|
|||||||
#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 {
|
|||||||
//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
|
||||||
|
|||||||
@@ -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,
|
|||||||
} // 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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -360,7 +360,8 @@ 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){
|
||||||
@@ -380,10 +381,10 @@ 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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user