Commit 76ba0aaa authored by Sagar Parsawar's avatar Sagar Parsawar

PRS config file changes for multiple gNB handling

parent fbef1099
...@@ -324,6 +324,22 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, ...@@ -324,6 +324,22 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
nr_gold_pdsch(ue,ue->scramblingID); nr_gold_pdsch(ue,ue->scramblingID);
// PRS vars
for(int idx = 0; idx < NR_MAX_PRS_COMB_SIZE; idx++)
{
prs_vars[idx] = (NR_UE_PRS *)malloc16_clear(sizeof(NR_UE_PRS));
// PRS channel estimates
prs_vars[idx]->prs_ch_estimates = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
prs_vars[idx]->prs_ch_estimates_time = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
AssertFatal(((prs_vars[idx]->prs_ch_estimates!=NULL) || (prs_vars[idx]->prs_ch_estimates_time!=NULL)), "NR UE init: PRS channel estimates malloc failed\n");
for (i=0; i<fp->nb_antennas_rx; i++) {
prs_vars[idx]->prs_ch_estimates[i] = (int32_t *)malloc16_clear(2*fp->ofdm_symbol_size*NR_MAX_NUM_PRS_SYMB);
prs_vars[idx]->prs_ch_estimates_time[i] = (int32_t *)malloc16_clear(2*fp->ofdm_symbol_size*NR_MAX_NUM_PRS_SYMB);
AssertFatal(((prs_vars[idx]->prs_ch_estimates[i]!=NULL) || (prs_vars[idx]->prs_ch_estimates_time[i]!=NULL)), "NR UE init: PRS channel estimates malloc failed %d\n", i);
}
}
// DLSCH // DLSCH
for (gNB_id = 0; gNB_id < ue->n_connected_gNB; gNB_id++) { for (gNB_id = 0; gNB_id < ue->n_connected_gNB; gNB_id++) {
for (th_id=0; th_id<RX_NB_TH_MAX; th_id++) { for (th_id=0; th_id<RX_NB_TH_MAX; th_id++) {
...@@ -336,18 +352,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, ...@@ -336,18 +352,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
prach_vars[gNB_id] = (NR_UE_PRACH *)malloc16_clear(sizeof(NR_UE_PRACH)); prach_vars[gNB_id] = (NR_UE_PRACH *)malloc16_clear(sizeof(NR_UE_PRACH));
pbch_vars[gNB_id] = (NR_UE_PBCH *)malloc16_clear(sizeof(NR_UE_PBCH)); pbch_vars[gNB_id] = (NR_UE_PBCH *)malloc16_clear(sizeof(NR_UE_PBCH));
prs_vars[gNB_id] = (NR_UE_PRS *)malloc16_clear(sizeof(NR_UE_PRS));
// PRS channel estimates
prs_vars[gNB_id]->prs_ch_estimates = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
prs_vars[gNB_id]->prs_ch_estimates_time = (int32_t **)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t *) );
AssertFatal(((prs_vars[gNB_id]->prs_ch_estimates!=NULL) || (prs_vars[gNB_id]->prs_ch_estimates_time!=NULL)), "NR UE init: PRS channel estimates malloc failed\n");
for (i=0; i<fp->nb_antennas_rx; i++) {
prs_vars[gNB_id]->prs_ch_estimates[i] = (int32_t *)malloc16_clear(2*fp->ofdm_symbol_size*NR_MAX_NUM_PRS_SYMB);
prs_vars[gNB_id]->prs_ch_estimates_time[i] = (int32_t *)malloc16_clear(2*fp->ofdm_symbol_size*NR_MAX_NUM_PRS_SYMB);
AssertFatal(((prs_vars[gNB_id]->prs_ch_estimates[i]!=NULL) || (prs_vars[gNB_id]->prs_ch_estimates_time[i]!=NULL)), "NR UE init: PRS channel estimates malloc failed %d\n", i);
}
if (abstraction_flag == 0) { if (abstraction_flag == 0) {
......
...@@ -406,7 +406,7 @@ int nr_prs_channel_estimation(uint8_t gNB_id, ...@@ -406,7 +406,7 @@ int nr_prs_channel_estimation(uint8_t gNB_id,
frame_params->ofdm_symbol_size, frame_params->ofdm_symbol_size,
&tdoa[l], &tdoa[l],
&ch_pwr[l]); &ch_pwr[l]);
LOG_I(PHY, "[gNB %d][Rx %d] TDoA for PRS symbol %d ==> %d / %d samples, peak channel power %.1f dB\n", gNB_id, rxAnt, l, tdoa[l]-(frame_params->ofdm_symbol_size>>1), frame_params->ofdm_symbol_size, 10*log10(ch_pwr[l])); LOG_I(PHY, "[gNB %d][Rx %d] TDoA for PRS symbol %2d ==> %d / %d samples, peak channel power %.1f dB\n", gNB_id, rxAnt, l, tdoa[l]-(frame_params->ofdm_symbol_size>>1), frame_params->ofdm_symbol_size, 10*log10(ch_pwr[l]));
} // for rxAnt } // for rxAnt
} //for l } //for l
......
...@@ -829,7 +829,7 @@ typedef struct { ...@@ -829,7 +829,7 @@ typedef struct {
NR_UE_DLSCH_t *dlsch_ra[NUMBER_OF_CONNECTED_gNB_MAX]; NR_UE_DLSCH_t *dlsch_ra[NUMBER_OF_CONNECTED_gNB_MAX];
NR_UE_DLSCH_t *dlsch_p[NUMBER_OF_CONNECTED_gNB_MAX]; NR_UE_DLSCH_t *dlsch_p[NUMBER_OF_CONNECTED_gNB_MAX];
NR_UE_DLSCH_t *dlsch_MCH[NUMBER_OF_CONNECTED_gNB_MAX]; NR_UE_DLSCH_t *dlsch_MCH[NUMBER_OF_CONNECTED_gNB_MAX];
NR_UE_PRS *prs_vars[NUMBER_OF_CONNECTED_gNB_MAX]; NR_UE_PRS *prs_vars[NR_MAX_PRS_COMB_SIZE];
//Paging parameters //Paging parameters
uint32_t IMSImod1024; uint32_t IMSImod1024;
......
...@@ -83,6 +83,7 @@ ...@@ -83,6 +83,7 @@
#define NR_MAX_PRS_LENGTH 3264 //272*6(max allocation per RB)*2(QPSK) #define NR_MAX_PRS_LENGTH 3264 //272*6(max allocation per RB)*2(QPSK)
#define NR_MAX_PRS_INIT_LENGTH_DWORD 102 // ceil(NR_MAX_CSI_RS_LENGTH/32) #define NR_MAX_PRS_INIT_LENGTH_DWORD 102 // ceil(NR_MAX_CSI_RS_LENGTH/32)
#define NR_MAX_NUM_PRS_SYMB 12 #define NR_MAX_NUM_PRS_SYMB 12
#define NR_MAX_PRS_COMB_SIZE 12
#define NR_MAX_PUSCH_DMRS_LENGTH NR_MAX_PDSCH_DMRS_LENGTH #define NR_MAX_PUSCH_DMRS_LENGTH NR_MAX_PDSCH_DMRS_LENGTH
#define NR_MAX_PUSCH_DMRS_INIT_LENGTH_DWORD NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD #define NR_MAX_PUSCH_DMRS_INIT_LENGTH_DWORD NR_MAX_PDSCH_DMRS_INIT_LENGTH_DWORD
......
...@@ -608,7 +608,7 @@ void RCconfig_nr_prs(void) ...@@ -608,7 +608,7 @@ void RCconfig_nr_prs(void)
uint16_t j; uint16_t j;
paramdef_t PRS_Params[] = PRS_PARAMS_DESC; paramdef_t PRS_Params[] = PRS_PARAMS_DESC;
paramlist_def_t PRS_ParamList = {GNB_CONFIG_STRING_PRS_CONFIG,NULL,0}; paramlist_def_t PRS_ParamList = {CONFIG_STRING_PRS_CONFIG,NULL,0};
if (RC.gNB == NULL) { if (RC.gNB == NULL) {
RC.gNB = (PHY_VARS_gNB **)malloc((1+NUMBER_OF_gNB_MAX)*sizeof(PHY_VARS_gNB*)); RC.gNB = (PHY_VARS_gNB **)malloc((1+NUMBER_OF_gNB_MAX)*sizeof(PHY_VARS_gNB*));
...@@ -640,24 +640,29 @@ void RCconfig_nr_prs(void) ...@@ -640,24 +640,29 @@ void RCconfig_nr_prs(void)
RC.gNB[j]->prs_cfg.PRSResourceOffset = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_OFFSET].uptr); RC.gNB[j]->prs_cfg.PRSResourceOffset = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_OFFSET].uptr);
RC.gNB[j]->prs_cfg.PRSResourceRepetition = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_REPETITION].uptr); RC.gNB[j]->prs_cfg.PRSResourceRepetition = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_REPETITION].uptr);
RC.gNB[j]->prs_cfg.PRSResourceTimeGap = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_TIME_GAP].uptr); RC.gNB[j]->prs_cfg.PRSResourceTimeGap = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_TIME_GAP].uptr);
RC.gNB[j]->prs_cfg.NPRSID = *(PRS_ParamList.paramarray[j][PRS_ID].uptr);
LOG_I(NR_PHY, "PRS Config for gNB_ID %d\n", j);
LOG_I(NR_PHY, "PRSResourceSetPeriod0 %d\n", RC.gNB[j]->prs_cfg.PRSResourceSetPeriod[0]); LOG_I(PHY, "--------------------------\n");
LOG_I(NR_PHY, "PRSResourceSetPeriod1 %d\n", RC.gNB[j]->prs_cfg.PRSResourceSetPeriod[1]); LOG_I(PHY, "PRS Config for gNB_ID %d\n", j);
LOG_I(NR_PHY, "SymbolStart %d\n", RC.gNB[j]->prs_cfg.SymbolStart); LOG_I(PHY, "--------------------------\n");
LOG_I(NR_PHY, "NumPRSSymbols %d\n", RC.gNB[j]->prs_cfg.NumPRSSymbols); LOG_I(PHY, "PRSResourceSetPeriod0 %d\n", RC.gNB[j]->prs_cfg.PRSResourceSetPeriod[0]);
LOG_I(NR_PHY, "NumRB %d\n", RC.gNB[j]->prs_cfg.NumRB); LOG_I(PHY, "PRSResourceSetPeriod1 %d\n", RC.gNB[j]->prs_cfg.PRSResourceSetPeriod[1]);
LOG_I(NR_PHY, "RBOffset %d\n", RC.gNB[j]->prs_cfg.RBOffset); LOG_I(PHY, "SymbolStart %d\n", RC.gNB[j]->prs_cfg.SymbolStart);
LOG_I(NR_PHY, "CombSize %d\n", RC.gNB[j]->prs_cfg.CombSize); LOG_I(PHY, "NumPRSSymbols %d\n", RC.gNB[j]->prs_cfg.NumPRSSymbols);
LOG_I(NR_PHY, "REOffset %d\n", RC.gNB[j]->prs_cfg.REOffset); LOG_I(PHY, "NumRB %d\n", RC.gNB[j]->prs_cfg.NumRB);
LOG_I(NR_PHY, "PRSResourceOffset %d\n", RC.gNB[j]->prs_cfg.PRSResourceOffset); LOG_I(PHY, "RBOffset %d\n", RC.gNB[j]->prs_cfg.RBOffset);
LOG_I(NR_PHY, "PRSResourceRepetition %d\n", RC.gNB[j]->prs_cfg.PRSResourceRepetition); LOG_I(PHY, "CombSize %d\n", RC.gNB[j]->prs_cfg.CombSize);
LOG_I(NR_PHY, "PRSResourceTimeGap %d\n", RC.gNB[j]->prs_cfg.PRSResourceTimeGap); LOG_I(PHY, "REOffset %d\n", RC.gNB[j]->prs_cfg.REOffset);
LOG_I(PHY, "PRSResourceOffset %d\n", RC.gNB[j]->prs_cfg.PRSResourceOffset);
LOG_I(PHY, "PRSResourceRepetition %d\n", RC.gNB[j]->prs_cfg.PRSResourceRepetition);
LOG_I(PHY, "PRSResourceTimeGap %d\n", RC.gNB[j]->prs_cfg.PRSResourceTimeGap);
LOG_I(PHY, "NPRS_ID %d\n", RC.gNB[j]->prs_cfg.NPRSID);
LOG_I(PHY, "--------------------------\n");
} // for j } // for j
} }
else else
{ {
LOG_I(NR_PHY,"No " GNB_CONFIG_STRING_PRS_CONFIG " configuration found\n"); LOG_I(NR_PHY,"No " CONFIG_STRING_PRS_CONFIG " configuration found\n");
} }
} }
......
...@@ -352,9 +352,6 @@ typedef enum { ...@@ -352,9 +352,6 @@ typedef enum {
#define CONFIG_STRING_L1_LIST "L1s" #define CONFIG_STRING_L1_LIST "L1s"
#define CONFIG_STRING_L1_CONFIG "l1_config" #define CONFIG_STRING_L1_CONFIG "l1_config"
/* PRS configuration section names */
#define GNB_CONFIG_STRING_PRS_CONFIG "prs_config"
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------------------------------------------------------*/
......
...@@ -35,8 +35,26 @@ ...@@ -35,8 +35,26 @@
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* PRS configuration section names */
#define CONFIG_STRING_PRS_LIST "PRSs"
#define CONFIG_STRING_PRS_CONFIG "prs_config"
/* Global parameters */
#define CONFIG_STRING_ACTIVE_GNBs "Active_gNBs"
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
/* PRS configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
#define PRS_GLOBAL_PARAMS_DESC { \
{CONFIG_STRING_ACTIVE_GNBs, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0} \
}
#define PRS_ACTIVE_GNBS_IDX 0
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
/* PRS configuration parameters names */ /* PRS configuration parameters names */
#define CONFIG_STRING_GNB_ID "gNB_id"
#define CONFIG_STRING_PRS_RESOURCE_SET_PERIOD0 "PRSResourceSetPeriod0" #define CONFIG_STRING_PRS_RESOURCE_SET_PERIOD0 "PRSResourceSetPeriod0"
#define CONFIG_STRING_PRS_RESOURCE_SET_PERIOD1 "PRSResourceSetPeriod1" #define CONFIG_STRING_PRS_RESOURCE_SET_PERIOD1 "PRSResourceSetPeriod1"
#define CONFIG_STRING_PRS_SYMBOL_START "SymbolStart" #define CONFIG_STRING_PRS_SYMBOL_START "SymbolStart"
...@@ -56,32 +74,34 @@ ...@@ -56,32 +74,34 @@
/* optname helpstr paramflags XXXptr defXXXval type numelt */ /* optname helpstr paramflags XXXptr defXXXval type numelt */
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------------------------------------------------------*/
#define PRS_PARAMS_DESC { \ #define PRS_PARAMS_DESC { \
{CONFIG_STRING_PRS_RESOURCE_SET_PERIOD0, NULL, 0, uptr:NULL, defintval:40, TYPE_UINT, 0}, \ {CONFIG_STRING_GNB_ID, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_RESOURCE_SET_PERIOD1, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_RESOURCE_SET_PERIOD0, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_SYMBOL_START, NULL, 0, uptr:NULL, defintval:7, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_RESOURCE_SET_PERIOD1, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_NUM_SYMBOLS, NULL, 0, uptr:NULL, defintval:4, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_SYMBOL_START, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_NUM_RB, NULL, 0, uptr:NULL, defintval:106, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_NUM_SYMBOLS, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_RB_OFFSET, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_NUM_RB, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_COMB_SIZE, NULL, 0, uptr:NULL, defintval:4, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_RB_OFFSET, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_RE_OFFSET, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_COMB_SIZE, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_RESOURCE_OFFSET, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_RE_OFFSET, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_RESOURCE_REPETITION, NULL, 0, uptr:NULL, defintval:1, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_RESOURCE_OFFSET, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_RESOURCE_TIME_GAP, NULL, 0, uptr:NULL, defuintval:1, TYPE_UINT, 0}, \ {CONFIG_STRING_PRS_RESOURCE_REPETITION, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_ID, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0} \ {CONFIG_STRING_PRS_RESOURCE_TIME_GAP, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0}, \
{CONFIG_STRING_PRS_ID, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0} \
} }
#define PRS_RESOURCE_SET_PERIOD0 0 #define PRS_GNB_ID 0
#define PRS_RESOURCE_SET_PERIOD1 1 #define PRS_RESOURCE_SET_PERIOD0 1
#define PRS_SYMBOL_START 2 #define PRS_RESOURCE_SET_PERIOD1 2
#define PRS_NUM_SYMBOLS 3 #define PRS_SYMBOL_START 3
#define PRS_NUM_RB 4 #define PRS_NUM_SYMBOLS 4
#define PRS_RB_OFFSET 5 #define PRS_NUM_RB 5
#define PRS_COMB_SIZE 6 #define PRS_RB_OFFSET 6
#define PRS_RE_OFFSET 7 #define PRS_COMB_SIZE 7
#define PRS_RESOURCE_OFFSET 8 #define PRS_RE_OFFSET 8
#define PRS_RESOURCE_REPETITION 9 #define PRS_RESOURCE_OFFSET 9
#define PRS_RESOURCE_TIME_GAP 10 #define PRS_RESOURCE_REPETITION 10
#define PRS_ID 11 #define PRS_RESOURCE_TIME_GAP 11
#define PRS_ID 12
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------------------------------------------------------------------------*/
#endif #endif
...@@ -1279,13 +1279,26 @@ void RCconfig_nr_ue_L1(void) { ...@@ -1279,13 +1279,26 @@ void RCconfig_nr_ue_L1(void) {
void RCconfig_nrUE_prs(void *cfg) void RCconfig_nrUE_prs(void *cfg)
{ {
int j = 0, gNB_id = 0; int j = 0, gNB_id = 0;
char aprefix[MAX_OPTNAME_SIZE*2 + 8];
PHY_VARS_NR_UE *ue = (PHY_VARS_NR_UE *)cfg; PHY_VARS_NR_UE *ue = (PHY_VARS_NR_UE *)cfg;
paramlist_def_t gParamList = {CONFIG_STRING_PRS_LIST,NULL,0};
paramdef_t gParams[] = PRS_GLOBAL_PARAMS_DESC;
config_getlist( &gParamList,gParams,sizeof(gParams)/sizeof(paramdef_t), NULL);
int num_gnbs = *(gParamList.paramarray[j][PRS_ACTIVE_GNBS_IDX].uptr);
paramlist_def_t PRS_ParamList = {{0},NULL,0};
for(int i = 0; i < num_gnbs; i++)
{
paramdef_t PRS_Params[] = PRS_PARAMS_DESC; paramdef_t PRS_Params[] = PRS_PARAMS_DESC;
paramlist_def_t PRS_ParamList = {GNB_CONFIG_STRING_PRS_CONFIG,NULL,0}; sprintf(PRS_ParamList.listname, "%s%i", CONFIG_STRING_PRS_CONFIG, i);
config_getlist( &PRS_ParamList,PRS_Params,sizeof(PRS_Params)/sizeof(paramdef_t), NULL);
printf("Inside RCconfig_nrUE_prs\n"); sprintf(aprefix, "%s.[%i]", CONFIG_STRING_PRS_LIST, 0);
config_getlist( &PRS_ParamList,PRS_Params,sizeof(PRS_Params)/sizeof(paramdef_t), aprefix);
if (PRS_ParamList.numelt > 0) { if (PRS_ParamList.numelt > 0) {
for (j = 0; j < PRS_ParamList.numelt; j++) {
gNB_id = *(PRS_ParamList.paramarray[j][PRS_GNB_ID].uptr);
ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[0] = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_SET_PERIOD0].uptr); ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[0] = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_SET_PERIOD0].uptr);
ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[1] = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_SET_PERIOD1].uptr); ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[1] = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_SET_PERIOD1].uptr);
ue->prs_vars[gNB_id]->prs_cfg.SymbolStart = *(PRS_ParamList.paramarray[j][PRS_SYMBOL_START].uptr); ue->prs_vars[gNB_id]->prs_cfg.SymbolStart = *(PRS_ParamList.paramarray[j][PRS_SYMBOL_START].uptr);
...@@ -1297,22 +1310,29 @@ void RCconfig_nrUE_prs(void *cfg) ...@@ -1297,22 +1310,29 @@ void RCconfig_nrUE_prs(void *cfg)
ue->prs_vars[gNB_id]->prs_cfg.PRSResourceOffset = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_OFFSET].uptr); ue->prs_vars[gNB_id]->prs_cfg.PRSResourceOffset = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_OFFSET].uptr);
ue->prs_vars[gNB_id]->prs_cfg.PRSResourceRepetition = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_REPETITION].uptr); ue->prs_vars[gNB_id]->prs_cfg.PRSResourceRepetition = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_REPETITION].uptr);
ue->prs_vars[gNB_id]->prs_cfg.PRSResourceTimeGap = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_TIME_GAP].uptr); ue->prs_vars[gNB_id]->prs_cfg.PRSResourceTimeGap = *(PRS_ParamList.paramarray[j][PRS_RESOURCE_TIME_GAP].uptr);
ue->prs_vars[gNB_id]->prs_cfg.NPRSID = *(PRS_ParamList.paramarray[j][PRS_ID].uptr);
LOG_I(NR_PHY, "PRS Config for at nrUE %d\n", 0);
LOG_I(NR_PHY, "PRSResourceSetPeriod0 %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[0]); LOG_I(PHY, "--------------------------\n");
LOG_I(NR_PHY, "PRSResourceSetPeriod1 %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[1]); LOG_I(PHY, "PRS Config for gNB_id %d\n", gNB_id);
LOG_I(NR_PHY, "SymbolStart %d\n", ue->prs_vars[gNB_id]->prs_cfg.SymbolStart); LOG_I(PHY, "--------------------------\n");
LOG_I(NR_PHY, "NumPRSSymbols %d\n", ue->prs_vars[gNB_id]->prs_cfg.NumPRSSymbols); LOG_I(PHY, "PRSResourceSetPeriod0 %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[0]);
LOG_I(NR_PHY, "NumRB %d\n", ue->prs_vars[gNB_id]->prs_cfg.NumRB); LOG_I(PHY, "PRSResourceSetPeriod1 %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceSetPeriod[1]);
LOG_I(NR_PHY, "RBOffset %d\n", ue->prs_vars[gNB_id]->prs_cfg.RBOffset); LOG_I(PHY, "SymbolStart %d\n", ue->prs_vars[gNB_id]->prs_cfg.SymbolStart);
LOG_I(NR_PHY, "CombSize %d\n", ue->prs_vars[gNB_id]->prs_cfg.CombSize); LOG_I(PHY, "NumPRSSymbols %d\n", ue->prs_vars[gNB_id]->prs_cfg.NumPRSSymbols);
LOG_I(NR_PHY, "REOffset %d\n", ue->prs_vars[gNB_id]->prs_cfg.REOffset); LOG_I(PHY, "NumRB %d\n", ue->prs_vars[gNB_id]->prs_cfg.NumRB);
LOG_I(NR_PHY, "PRSResourceOffset %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceOffset); LOG_I(PHY, "RBOffset %d\n", ue->prs_vars[gNB_id]->prs_cfg.RBOffset);
LOG_I(NR_PHY, "PRSResourceRepetition %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceRepetition); LOG_I(PHY, "CombSize %d\n", ue->prs_vars[gNB_id]->prs_cfg.CombSize);
LOG_I(NR_PHY, "PRSResourceTimeGap %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceTimeGap); LOG_I(PHY, "REOffset %d\n", ue->prs_vars[gNB_id]->prs_cfg.REOffset);
LOG_I(PHY, "PRSResourceOffset %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceOffset);
LOG_I(PHY, "PRSResourceRepetition %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceRepetition);
LOG_I(PHY, "PRSResourceTimeGap %d\n", ue->prs_vars[gNB_id]->prs_cfg.PRSResourceTimeGap);
LOG_I(PHY, "NPRS_ID %d\n", ue->prs_vars[gNB_id]->prs_cfg.NPRSID);
LOG_I(PHY, "--------------------------\n");
}
} }
else else
{ {
LOG_I(NR_PHY,"No " GNB_CONFIG_STRING_PRS_CONFIG " configuration found\n"); LOG_I(NR_PHY,"No %s configuration found\n", PRS_ParamList.listname);
}
} }
} }
prs_config = ( PRSs =
{ (
{
Active_gNBs = 2;
prs_config0 = (
{
gNB_id = 0;
PRSResourceSetPeriod0 = 40; PRSResourceSetPeriod0 = 40;
PRSResourceSetPeriod1 = 0; PRSResourceSetPeriod1 = 0;
SymbolStart = 7; SymbolStart = 7;
NumPRSSymbols = 4; NumPRSSymbols = 4;
NumRB = 56; NumRB = 106;
RBOffset = 0; RBOffset = 0;
CombSize = 4; CombSize = 4;
REOffset = 0; REOffset = 0;
...@@ -12,5 +17,25 @@ prs_config = ( ...@@ -12,5 +17,25 @@ prs_config = (
PRSResourceRepetition = 1; PRSResourceRepetition = 1;
PRSResourceTimeGap = 1; PRSResourceTimeGap = 1;
NPRS_ID = 0; NPRS_ID = 0;
} }
);
prs_config1 = (
{
gNB_id = 1;
PRSResourceSetPeriod0 = 40;
PRSResourceSetPeriod1 = 0;
SymbolStart = 7;
NumPRSSymbols = 4;
NumRB = 106;
RBOffset = 0;
CombSize = 4;
REOffset = 1;
PRSResourceOffset = 0;
PRSResourceRepetition = 1;
PRSResourceTimeGap = 1;
NPRS_ID = 0;
}
);
}
); );
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment