From 6b3dd8716b4ec73ed6a33e4e8c87dcbec0db6fb6 Mon Sep 17 00:00:00 2001 From: Robert Schmidt <robert.schmidt@eurecom.fr> Date: Thu, 17 May 2018 14:49:50 +0200 Subject: [PATCH] FlexRAN: set values of removed slices to 0 --- openair2/ENB_APP/flexran_agent_ran_api.c | 2 ++ openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 4 ---- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 4 ---- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c index 9b6ecae593..bea680c48c 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.c +++ b/openair2/ENB_APP/flexran_agent_ran_api.c @@ -1487,6 +1487,7 @@ int flexran_remove_dl_slice(mid_t mod_id, int slice_idx) /* move last element to the position of the removed one */ if (slice_idx != sli->n_dl) memcpy(&sli->dl[slice_idx], &sli->dl[sli->n_dl], sizeof(sli->dl[sli->n_dl])); + memset(&sli->dl[sli->n_dl], 0, sizeof(sli->dl[sli->n_dl])); /* all UEs that have been in the old slice are put into slice index 0 */ int *assoc_list = RC.mac[mod_id]->UE_list.assoc_dl_slice_idx; @@ -1763,6 +1764,7 @@ int flexran_remove_ul_slice(mid_t mod_id, int slice_idx) /* move last element to the position of the removed one */ if (slice_idx != sli->n_ul) memcpy(&sli->ul[slice_idx], &sli->ul[sli->n_ul], sizeof(sli->ul[sli->n_ul])); + memset(&sli->ul[sli->n_ul], 0, sizeof(sli->ul[sli->n_ul])); /* all UEs that have been in the old slice are put into slice index 0 */ int *assoc_list = RC.mac[mod_id]->UE_list.assoc_ul_slice_idx; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index bc929b7534..c4c1cd1ca5 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -418,10 +418,6 @@ schedule_dlsch(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, in sli->avg_pct_dl = 1.0 / sli->n_dl; //sli->slice_counter = sli->n_dl; - // reset the slice percentage for inactive slices - for (i = sli->n_dl; i < MAX_NUM_SLICES; i++) { - sli->dl[i].pct = 0; - } for (i = 0; i < sli->n_dl; i++) { if (sli->dl[i].pct < 0) { LOG_W(MAC, "[eNB %d][SLICE %d][DL] frame %d subframe %d: invalid percentage %f. resetting to zero", diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 684a74f0f7..68cd5de8bd 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -1043,10 +1043,6 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, sli->tot_pct_ul = 0; sli->avg_pct_ul = 1.0 / sli->n_ul; - // reset the slice percentage for inactive slices - for (i = sli->n_ul; i< MAX_NUM_SLICES; i++) { - sli->ul[i].pct = 0; - } for (i = 0; i < sli->n_ul; i++) { if (sli->ul[i].pct < 0 ){ LOG_W(MAC, -- GitLab