Merge remote-tracking branch 'origin/fix-Nid_cell-different_from_0' into integration_2022_wk08_b
This commit is contained in:
@@ -134,8 +134,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
|||||||
int gNB_id;
|
int gNB_id;
|
||||||
int th_id;
|
int th_id;
|
||||||
uint32_t ****pusch_dmrs;
|
uint32_t ****pusch_dmrs;
|
||||||
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;
|
|
||||||
abstraction_flag = 0;
|
abstraction_flag = 0;
|
||||||
LOG_I(PHY, "Initializing UE vars (abstraction %u) for gNB TXant %u, UE RXant %u\n", abstraction_flag, fp->nb_antennas_tx, fp->nb_antennas_rx);
|
LOG_I(PHY, "Initializing UE vars (abstraction %u) for gNB TXant %u, UE RXant %u\n", abstraction_flag, fp->nb_antennas_tx, fp->nb_antennas_rx);
|
||||||
phy_init_nr_top(ue);
|
phy_init_nr_top(ue);
|
||||||
@@ -191,7 +189,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
|||||||
///////////
|
///////////
|
||||||
ue->nr_gold_pusch_dmrs = (uint32_t ****)malloc16(fp->slots_per_frame*sizeof(uint32_t ***));
|
ue->nr_gold_pusch_dmrs = (uint32_t ****)malloc16(fp->slots_per_frame*sizeof(uint32_t ***));
|
||||||
pusch_dmrs = ue->nr_gold_pusch_dmrs;
|
pusch_dmrs = ue->nr_gold_pusch_dmrs;
|
||||||
n_scid = 0; // This quantity is indicated by higher layer parameter dmrs-SeqInitialization
|
|
||||||
|
|
||||||
for (slot=0; slot<fp->slots_per_frame; slot++) {
|
for (slot=0; slot<fp->slots_per_frame; slot++) {
|
||||||
pusch_dmrs[slot] = (uint32_t ***)malloc16(fp->symbols_per_slot*sizeof(uint32_t **));
|
pusch_dmrs[slot] = (uint32_t ***)malloc16(fp->symbols_per_slot*sizeof(uint32_t **));
|
||||||
@@ -208,7 +205,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nr_init_pusch_dmrs(ue, N_n_scid, n_scid);
|
|
||||||
///////////
|
///////////
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -271,9 +267,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ue->scramblingID_pdcch = fp->Nid_cell;
|
|
||||||
nr_gold_pdcch(ue,fp->Nid_cell);
|
|
||||||
|
|
||||||
//PDSCH DMRS init (eNB offset = 0)
|
//PDSCH DMRS init (eNB offset = 0)
|
||||||
ue->nr_gold_pdsch[0] = (uint32_t ****)malloc16(fp->slots_per_frame*sizeof(uint32_t ***));
|
ue->nr_gold_pdsch[0] = (uint32_t ****)malloc16(fp->slots_per_frame*sizeof(uint32_t ***));
|
||||||
uint32_t ****pdsch_dmrs = ue->nr_gold_pdsch[0];
|
uint32_t ****pdsch_dmrs = ue->nr_gold_pdsch[0];
|
||||||
@@ -293,12 +286,6 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// initializing the scrambling IDs for PDSCH DMRS
|
|
||||||
for (int i=0; i<2; i++)
|
|
||||||
ue->scramblingID[i]=fp->Nid_cell;
|
|
||||||
|
|
||||||
nr_gold_pdsch(ue,ue->scramblingID);
|
|
||||||
|
|
||||||
// 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++) {
|
||||||
|
|||||||
@@ -337,6 +337,22 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc,
|
|||||||
sync_pos_frame = n_symb_prefix0*(fp->ofdm_symbol_size + fp->nb_prefix_samples0)+(ue->symbol_offset-n_symb_prefix0)*(fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
sync_pos_frame = n_symb_prefix0*(fp->ofdm_symbol_size + fp->nb_prefix_samples0)+(ue->symbol_offset-n_symb_prefix0)*(fp->ofdm_symbol_size + fp->nb_prefix_samples);
|
||||||
// for a correct computation of frame number to sync with the one decoded at MIB we need to take into account in which of the n_frames we got sync
|
// for a correct computation of frame number to sync with the one decoded at MIB we need to take into account in which of the n_frames we got sync
|
||||||
ue->init_sync_frame = n_frames - 1 - is;
|
ue->init_sync_frame = n_frames - 1 - is;
|
||||||
|
|
||||||
|
// compute the scramblingID_pdcch and the gold pdcch
|
||||||
|
ue->scramblingID_pdcch = fp->Nid_cell;
|
||||||
|
nr_gold_pdcch(ue,fp->Nid_cell);
|
||||||
|
|
||||||
|
// compute the scrambling IDs for PDSCH DMRS
|
||||||
|
for (int i=0; i<2; i++)
|
||||||
|
ue->scramblingID[i]=fp->Nid_cell;
|
||||||
|
|
||||||
|
nr_gold_pdsch(ue,ue->scramblingID);
|
||||||
|
|
||||||
|
// initialize the pusch dmrs
|
||||||
|
uint16_t N_n_scid[2] = {fp->Nid_cell,fp->Nid_cell};
|
||||||
|
int n_scid = 0; // This quantity is indicated by higher layer parameter dmrs-SeqInitialization
|
||||||
|
nr_init_pusch_dmrs(ue, N_n_scid, n_scid);
|
||||||
|
|
||||||
// we also need to take into account the shift by samples_per_frame in case the if is true
|
// we also need to take into account the shift by samples_per_frame in case the if is true
|
||||||
if (ue->ssb_offset < sync_pos_frame){
|
if (ue->ssb_offset < sync_pos_frame){
|
||||||
ue->rx_offset = fp->samples_per_frame - sync_pos_frame + ue->ssb_offset;
|
ue->rx_offset = fp->samples_per_frame - sync_pos_frame + ue->ssb_offset;
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
|
|||||||
NR_UE_PUSCH *pusch_ue = UE->pusch_vars[thread_id][gNB_id];
|
NR_UE_PUSCH *pusch_ue = UE->pusch_vars[thread_id][gNB_id];
|
||||||
|
|
||||||
uint8_t num_of_codewords = 1; // tmp assumption
|
uint8_t num_of_codewords = 1; // tmp assumption
|
||||||
int Nid_cell = 0;
|
|
||||||
int N_PRB_oh = 0; // higher layer (RRC) parameter xOverhead in PUSCH-ServingCellConfig
|
int N_PRB_oh = 0; // higher layer (RRC) parameter xOverhead in PUSCH-ServingCellConfig
|
||||||
uint16_t number_dmrs_symbols = 0;
|
uint16_t number_dmrs_symbols = 0;
|
||||||
|
|
||||||
@@ -153,7 +152,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
|
|||||||
if (start_sc >= frame_parms->ofdm_symbol_size)
|
if (start_sc >= frame_parms->ofdm_symbol_size)
|
||||||
start_sc -= frame_parms->ofdm_symbol_size;
|
start_sc -= frame_parms->ofdm_symbol_size;
|
||||||
|
|
||||||
ulsch_ue->Nid_cell = Nid_cell;
|
ulsch_ue->Nid_cell = frame_parms->Nid_cell;
|
||||||
|
|
||||||
for (int i = start_symbol; i < start_symbol + number_of_symbols; i++) {
|
for (int i = start_symbol; i < start_symbol + number_of_symbols; i++) {
|
||||||
if((ul_dmrs_symb_pos >> i) & 0x01)
|
if((ul_dmrs_symb_pos >> i) & 0x01)
|
||||||
|
|||||||
@@ -926,7 +926,16 @@ int main(int argc, char **argv)
|
|||||||
init_nr_ue_transport(UE,0);
|
init_nr_ue_transport(UE,0);
|
||||||
|
|
||||||
nr_gold_pbch(UE);
|
nr_gold_pbch(UE);
|
||||||
nr_gold_pdcch(UE,0);
|
|
||||||
|
// compute the scramblingID_pdcch and the gold pdcch
|
||||||
|
UE->scramblingID_pdcch = frame_parms->Nid_cell;
|
||||||
|
nr_gold_pdcch(UE, frame_parms->Nid_cell);
|
||||||
|
|
||||||
|
// compute the scrambling IDs for PDSCH DMRS
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
UE->scramblingID[i] = frame_parms->Nid_cell;
|
||||||
|
|
||||||
|
nr_gold_pdsch(UE, UE->scramblingID);
|
||||||
|
|
||||||
nr_l2_init_ue(NULL);
|
nr_l2_init_ue(NULL);
|
||||||
UE_mac = get_mac_inst(0);
|
UE_mac = get_mac_inst(0);
|
||||||
|
|||||||
@@ -760,28 +760,17 @@ int main(int argc, char **argv)
|
|||||||
PHY_vars_UE_g[0][0] = UE;
|
PHY_vars_UE_g[0][0] = UE;
|
||||||
memcpy(&UE->frame_parms, frame_parms, sizeof(NR_DL_FRAME_PARMS));
|
memcpy(&UE->frame_parms, frame_parms, sizeof(NR_DL_FRAME_PARMS));
|
||||||
|
|
||||||
//phy_init_nr_top(frame_parms);
|
|
||||||
if (init_nr_ue_signal(UE, 1, 0) != 0) {
|
if (init_nr_ue_signal(UE, 1, 0) != 0) {
|
||||||
printf("Error at UE NR initialisation\n");
|
printf("Error at UE NR initialisation\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//nr_init_frame_parms_ue(&UE->frame_parms);
|
|
||||||
init_nr_ue_transport(UE, 0);
|
init_nr_ue_transport(UE, 0);
|
||||||
|
|
||||||
/*
|
// initialize the pusch dmrs
|
||||||
for (int sf = 0; sf < 2; sf++) {
|
uint16_t N_n_scid[2] = {frame_parms->Nid_cell,frame_parms->Nid_cell};
|
||||||
for (i = 0; i < 2; i++) {
|
int n_scid = 0; // This quantity is indicated by higher layer parameter dmrs-SeqInitialization
|
||||||
|
nr_init_pusch_dmrs(UE, N_n_scid, n_scid);
|
||||||
UE->ulsch[sf][0][i] = new_nr_ue_ulsch(N_RB_UL, 8, 0);
|
|
||||||
|
|
||||||
if (!UE->ulsch[sf][0][i]) {
|
|
||||||
printf("Can't get ue ulsch structures\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
//Configure UE
|
//Configure UE
|
||||||
NR_UE_RRC_INST_t rrcue;
|
NR_UE_RRC_INST_t rrcue;
|
||||||
|
|||||||
Reference in New Issue
Block a user