NR UE: introduce support to define multiple cells
This feature shall allow in future to simulate an arbitratry number of UEs connected to an other arbitrary number of cells. Therefore each RF-frontend (also called RU) needs to be configured for one specific cell. In case of handover of a UE from one cell to another cell, it needs to switch RUs accordingly (TODO). There has to be a 1-to-1 mapping between RUs and cells. Each UE will be assigned to one of the defined cells. Initially all UEs are assigned to cell 0.
This commit is contained in:
@@ -525,9 +525,16 @@ int nr_init_frame_parms_ue(NR_DL_FRAME_PARMS *fp,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nr_init_frame_parms_ue_sa(NR_DL_FRAME_PARMS *frame_parms, uint64_t downlink_frequency, int32_t delta_duplex, uint8_t mu, int N_RB_DL, int ssb_start_subcarrier, uint16_t nr_band)
|
||||
void nr_init_frame_parms_ue_sa(NR_DL_FRAME_PARMS *frame_parms, const nrUE_cell_params_t *cell)
|
||||
{
|
||||
LOG_I(PHY,"SA init parameters. DL freq %lu UL offset %d SSB numerology %d N_RB_DL %d\n",
|
||||
const uint64_t downlink_frequency = cell->rf_frequency;
|
||||
const int64_t delta_duplex = cell->rf_freq_offset;
|
||||
const uint8_t mu = cell->numerology;
|
||||
const int N_RB_DL = cell->N_RB_DL;
|
||||
const int ssb_start_subcarrier = cell->ssb_start;
|
||||
const uint16_t nr_band = cell->band;
|
||||
|
||||
LOG_I(PHY,"SA init parameters. DL freq %lu UL offset %ld SSB numerology %d N_RB_DL %d\n",
|
||||
downlink_frequency,
|
||||
delta_duplex,
|
||||
mu,
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
int nr_get_ssb_start_symbol(const NR_DL_FRAME_PARMS *fp, uint8_t i_ssb);
|
||||
void nr_init_frame_parms(nfapi_nr_config_request_scf_t *config, NR_DL_FRAME_PARMS *frame_parms);
|
||||
int nr_init_frame_parms_ue(NR_DL_FRAME_PARMS *frame_parms, fapi_nr_config_request_t *config, uint16_t nr_band);
|
||||
void nr_init_frame_parms_ue_sa(NR_DL_FRAME_PARMS *frame_parms, uint64_t downlink_frequency, int32_t delta_duplex, uint8_t mu, int N_RB_DL, int ssb_start_subcarrier, uint16_t nr_band);
|
||||
void nr_init_frame_parms_ue_sa(NR_DL_FRAME_PARMS *frame_parms, const nrUE_cell_params_t *cell);
|
||||
int nr_init_frame_parms_ue_sl(NR_DL_FRAME_PARMS *fp,
|
||||
sl_nr_phy_config_request_t *config,
|
||||
int threequarter_fs,
|
||||
|
||||
@@ -356,8 +356,20 @@ typedef struct {
|
||||
double tune_offset;
|
||||
uint64_t if_frequency;
|
||||
int if_freq_offset;
|
||||
int used_by_cell;
|
||||
} nrUE_RU_params_t;
|
||||
|
||||
typedef struct {
|
||||
int ru_id;
|
||||
int band;
|
||||
uint64_t rf_frequency;
|
||||
int64_t rf_freq_offset;
|
||||
int numerology;
|
||||
int N_RB_DL;
|
||||
int ssb_start;
|
||||
int used_by_ue;
|
||||
} nrUE_cell_params_t;
|
||||
|
||||
/// Top-level PHY Data Structure for UE
|
||||
typedef struct PHY_VARS_NR_UE_s {
|
||||
/// \brief Module ID indicator for this instance
|
||||
|
||||
Reference in New Issue
Block a user