Commit 35877242 authored by francescomani's avatar francescomani

fix asan failures

parent 721b8e9d
...@@ -765,6 +765,7 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB) ...@@ -765,6 +765,7 @@ void phy_free_nr_gNB(PHY_VARS_gNB *gNB)
free_and_zero(gNB->nr_srs_info[id]->srs_generated_signal); free_and_zero(gNB->nr_srs_info[id]->srs_generated_signal);
free_and_zero(gNB->nr_srs_info[id]); free_and_zero(gNB->nr_srs_info[id]);
} }
free_and_zero(gNB->nr_srs_info);
free_ul_reference_signal_sequences(); free_ul_reference_signal_sequences();
free_gnb_lowpapr_sequences(); free_gnb_lowpapr_sequences();
...@@ -1025,10 +1026,11 @@ void init_nr_transport(PHY_VARS_gNB *gNB) ...@@ -1025,10 +1026,11 @@ void init_nr_transport(PHY_VARS_gNB *gNB)
nb_ul_slots_period = fp->slots_per_frame; nb_ul_slots_period = fp->slots_per_frame;
int buffer_ul_slots; // the UL channels are scheduled sl_ahead before they are transmitted int buffer_ul_slots; // the UL channels are scheduled sl_ahead before they are transmitted
if (gNB->if_inst->sl_ahead > nb_slots_per_period) int slot_ahead = gNB->if_inst ? gNB->if_inst->sl_ahead : 6;
buffer_ul_slots = nb_ul_slots_period + (gNB->if_inst->sl_ahead - nb_slots_per_period); if (slot_ahead > nb_slots_per_period)
buffer_ul_slots = nb_ul_slots_period + (slot_ahead - nb_slots_per_period);
else else
buffer_ul_slots = (nb_ul_slots_period < gNB->if_inst->sl_ahead) ? nb_ul_slots_period : gNB->if_inst->sl_ahead; buffer_ul_slots = (nb_ul_slots_period < slot_ahead) ? nb_ul_slots_period : slot_ahead;
gNB->max_nb_pucch = MAX_MOBILES_PER_GNB * buffer_ul_slots; gNB->max_nb_pucch = MAX_MOBILES_PER_GNB * buffer_ul_slots;
gNB->max_nb_srs = buffer_ul_slots << 1; // assuming at most 2 SRS per slot gNB->max_nb_srs = buffer_ul_slots << 1; // assuming at most 2 SRS per slot
...@@ -1070,9 +1072,11 @@ void reset_nr_transport(PHY_VARS_gNB *gNB) ...@@ -1070,9 +1072,11 @@ void reset_nr_transport(PHY_VARS_gNB *gNB)
for (int i = 0; i < gNB->max_nb_pucch; i++) for (int i = 0; i < gNB->max_nb_pucch; i++)
free_gNB_pucch(gNB->pucch[i]); free_gNB_pucch(gNB->pucch[i]);
free(gNB->pucch);
for (int i = 0; i < gNB->max_nb_srs; i++) for (int i = 0; i < gNB->max_nb_srs; i++)
free_gNB_srs(gNB->srs[i]); free_gNB_srs(gNB->srs[i]);
free(gNB->srs);
for (int i = 0; i < NUMBER_OF_NR_ULSCH_MAX; i++) for (int i = 0; i < NUMBER_OF_NR_ULSCH_MAX; i++)
free_gNB_ulsch(&gNB->ulsch[i], fp->N_RB_UL); free_gNB_ulsch(&gNB->ulsch[i], fp->N_RB_UL);
......
...@@ -366,6 +366,8 @@ int main(int argc, char **argv) ...@@ -366,6 +366,8 @@ int main(int argc, char **argv)
frame_parms->Ncp = extended_prefix_flag ? EXTENDED : NORMAL; frame_parms->Ncp = extended_prefix_flag ? EXTENDED : NORMAL;
crcTableInit(); crcTableInit();
nr_phy_config_request_sim(gNB, N_RB_DL, N_RB_DL, mu, Nid_cell,SSB_positions); nr_phy_config_request_sim(gNB, N_RB_DL, N_RB_DL, mu, Nid_cell,SSB_positions);
gNB->gNB_config.tdd_table.tdd_period.value = 6;
set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4);
phy_init_nr_gNB(gNB); phy_init_nr_gNB(gNB);
//init_eNB_afterRU(); //init_eNB_afterRU();
frame_length_complex_samples = frame_parms->samples_per_subframe; frame_length_complex_samples = frame_parms->samples_per_subframe;
...@@ -612,6 +614,11 @@ int main(int argc, char **argv) ...@@ -612,6 +614,11 @@ int main(int argc, char **argv)
reset_DLSCH_struct(gNB, &msgDataTx); reset_DLSCH_struct(gNB, &msgDataTx);
int nb_slots_to_set = TDD_CONFIG_NB_FRAMES * (1 << mu) * NR_NUMBER_OF_SUBFRAMES_PER_FRAME;
for (int i = 0; i < nb_slots_to_set; ++i)
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list[i].max_num_of_symbol_per_slot_list);
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list);
phy_free_nr_gNB(gNB); phy_free_nr_gNB(gNB);
free(RC.gNB[0]); free(RC.gNB[0]);
free(RC.gNB); free(RC.gNB);
......
...@@ -471,6 +471,8 @@ int main(int argc, char **argv) ...@@ -471,6 +471,8 @@ int main(int argc, char **argv)
frame_parms->freq_range = mu<2 ? nr_FR1 : nr_FR2; frame_parms->freq_range = mu<2 ? nr_FR1 : nr_FR2;
nr_phy_config_request_sim_pbchsim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions); nr_phy_config_request_sim_pbchsim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions);
gNB->gNB_config.tdd_table.tdd_period.value = 6;
set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4);
phy_init_nr_gNB(gNB); phy_init_nr_gNB(gNB);
frame_parms->ssb_start_subcarrier = 12 * gNB->gNB_config.ssb_table.ssb_offset_point_a.value + ssb_subcarrier_offset; frame_parms->ssb_start_subcarrier = 12 * gNB->gNB_config.ssb_table.ssb_offset_point_a.value + ssb_subcarrier_offset;
...@@ -816,6 +818,11 @@ int main(int argc, char **argv) ...@@ -816,6 +818,11 @@ int main(int argc, char **argv)
free_channel_desc_scm(gNB2UE); free_channel_desc_scm(gNB2UE);
int nb_slots_to_set = TDD_CONFIG_NB_FRAMES * (1 << mu) * NR_NUMBER_OF_SUBFRAMES_PER_FRAME;
for (int i = 0; i < nb_slots_to_set; ++i)
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list[i].max_num_of_symbol_per_slot_list);
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list);
phy_free_nr_gNB(gNB); phy_free_nr_gNB(gNB);
free(RC.gNB[0]); free(RC.gNB[0]);
free(RC.gNB); free(RC.gNB);
......
...@@ -672,9 +672,9 @@ int main(int argc, char **argv){ ...@@ -672,9 +672,9 @@ int main(int argc, char **argv){
memcpy((void*)&ru->config,(void*)&RC.gNB[0]->gNB_config,sizeof(ru->config)); memcpy((void*)&ru->config,(void*)&RC.gNB[0]->gNB_config,sizeof(ru->config));
RC.nb_nr_L1_inst=1; RC.nb_nr_L1_inst=1;
set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4);
phy_init_nr_gNB(gNB); phy_init_nr_gNB(gNB);
nr_phy_init_RU(ru); nr_phy_init_RU(ru);
set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4);
// Configure UE // Configure UE
UE = malloc(sizeof(PHY_VARS_NR_UE)); UE = malloc(sizeof(PHY_VARS_NR_UE));
......
...@@ -404,6 +404,8 @@ int main(int argc, char **argv) ...@@ -404,6 +404,8 @@ int main(int argc, char **argv)
cfg->carrier_config.num_tx_ant.value = n_tx; cfg->carrier_config.num_tx_ant.value = n_tx;
cfg->carrier_config.num_rx_ant.value = n_rx; cfg->carrier_config.num_rx_ant.value = n_rx;
nr_phy_config_request_sim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions); nr_phy_config_request_sim(gNB,N_RB_DL,N_RB_DL,mu,Nid_cell,SSB_positions);
gNB->gNB_config.tdd_table.tdd_period.value = 6;
set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4);
phy_init_nr_gNB(gNB); phy_init_nr_gNB(gNB);
/* RU handles rxdataF, and gNB just has a pointer. Here, we don't have an RU, /* RU handles rxdataF, and gNB just has a pointer. Here, we don't have an RU,
* so we need to allocate that memory as well. */ * so we need to allocate that memory as well. */
...@@ -721,6 +723,11 @@ int main(int argc, char **argv) ...@@ -721,6 +723,11 @@ int main(int argc, char **argv)
free_channel_desc_scm(UE2gNB); free_channel_desc_scm(UE2gNB);
term_freq_channel(); term_freq_channel();
int nb_slots_to_set = TDD_CONFIG_NB_FRAMES * (1 << mu) * NR_NUMBER_OF_SUBFRAMES_PER_FRAME;
for (int i = 0; i < nb_slots_to_set; ++i)
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list[i].max_num_of_symbol_per_slot_list);
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list);
for (i = 0; i < n_rx; i++) for (i = 0; i < n_rx; i++)
free(gNB->common_vars.rxdataF[i]); free(gNB->common_vars.rxdataF[i]);
phy_free_nr_gNB(gNB); phy_free_nr_gNB(gNB);
......
...@@ -418,7 +418,8 @@ int main(int argc, char **argv) ...@@ -418,7 +418,8 @@ int main(int argc, char **argv)
gNB->frame_parms.nb_antennas_rx = n_rx; gNB->frame_parms.nb_antennas_rx = n_rx;
nr_phy_config_request_sim(gNB, N_RB_UL, N_RB_UL, mu, Nid_cell, SSB_positions); nr_phy_config_request_sim(gNB, N_RB_UL, N_RB_UL, mu, Nid_cell, SSB_positions);
gNB->gNB_config.tdd_table.tdd_period.value = 6;
set_tdd_config_nr(&gNB->gNB_config, mu, 7, 6, 2, 4);
phy_init_nr_gNB(gNB); phy_init_nr_gNB(gNB);
//configure UE //configure UE
...@@ -639,6 +640,11 @@ int main(int argc, char **argv) ...@@ -639,6 +640,11 @@ int main(int argc, char **argv)
free_nr_ue_ul_harq(UE->ul_harq_processes, NR_MAX_ULSCH_HARQ_PROCESSES, UE->frame_parms.N_RB_UL, UE->frame_parms.nb_antennas_tx); free_nr_ue_ul_harq(UE->ul_harq_processes, NR_MAX_ULSCH_HARQ_PROCESSES, UE->frame_parms.N_RB_UL, UE->frame_parms.nb_antennas_tx);
int nb_slots_to_set = TDD_CONFIG_NB_FRAMES * (1 << mu) * NR_NUMBER_OF_SUBFRAMES_PER_FRAME;
for (int i = 0; i < nb_slots_to_set; ++i)
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list[i].max_num_of_symbol_per_slot_list);
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list);
term_nr_ue_signal(UE, 1); term_nr_ue_signal(UE, 1);
free(UE); free(UE);
......
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