Commit 65d8402b authored by Robert Schmidt's avatar Robert Schmidt

Remove mbsfn_flag from schedule_ue_spec(), simplify pre_processor interface

parent 64f2b566
......@@ -421,7 +421,8 @@ set_ul_DAI(int module_idP,
void
schedule_dlsch(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, int *mbsfn_flag) {
for (int CC_id = 0; CC_id < RC.nb_mac_CC[module_idP]; CC_id++) {
schedule_ue_spec(module_idP, CC_id, frameP, subframeP, mbsfn_flag);
if (mbsfn_flag[CC_id] == 0)
schedule_ue_spec(module_idP, CC_id, frameP, subframeP);
}
}
......@@ -447,8 +448,7 @@ void
schedule_ue_spec(module_id_t module_idP,
int CC_id,
frame_t frameP,
sub_frame_t subframeP,
int *mbsfn_flag)
sub_frame_t subframeP)
//------------------------------------------------------------------------------
{
int UE_id;
......@@ -569,13 +569,10 @@ schedule_ue_spec(module_id_t module_idP,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,
VCD_FUNCTION_IN);
start_meas(&eNB->schedule_dlsch_preprocessor);
memset(eNB->slice_info.rballoc_sub, 0, sizeof(eNB->slice_info.rballoc_sub));
dlsch_scheduler_pre_processor(module_idP,
0, //slice_idxP,
CC_id,
frameP,
subframeP,
mbsfn_flag,
eNB->slice_info.rballoc_sub);
subframeP);
stop_meas(&eNB->schedule_dlsch_preprocessor);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,
VCD_FUNCTION_OUT);
......@@ -597,9 +594,6 @@ schedule_ue_spec(module_id_t module_idP,
CC_id);
dl_req = &eNB->DL_req[CC_id].dl_config_request_body;
//if (mbsfn_flag[CC_id] > 0)
// return;
for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
LOG_D(MAC, "doing schedule_ue_spec for CC_id %d UE %d\n",
CC_id,
......@@ -1627,8 +1621,7 @@ schedule_ue_spec(module_id_t module_idP,
fill_DLSCH_dci(module_idP,
frameP,
subframeP,
mbsfn_flag);
subframeP);
stop_meas(&eNB->schedule_dlsch);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH,
VCD_FUNCTION_OUT);
......@@ -2520,8 +2513,7 @@ schedule_ue_spec_br(module_id_t module_idP,
void
fill_DLSCH_dci(module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP,
int *mbsfn_flagP)
sub_frame_t subframeP)
//------------------------------------------------------------------------------
{
// loop over all allocated UEs and compute frequency allocations for PDSCH
......@@ -2550,9 +2542,6 @@ fill_DLSCH_dci(module_id_t module_idP,
LOG_D(MAC, "Doing fill DCI for CC_id %d\n",
CC_id);
if (mbsfn_flagP[CC_id] > 0)
continue;
cc = &eNB->common_channels[CC_id];
N_RBG = to_rbg(cc->mib->message.dl_Bandwidth);
N_RB_DL = to_prb(cc->mib->message.dl_Bandwidth);
......
......@@ -619,8 +619,7 @@ void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
min_rb_unit,
(uint16_t (*)[MAX_MOBILES_PER_ENB])nb_rbs_required,
rballoc_sub,
MIMO_mode_indicator,
mbsfn_flag);
MIMO_mode_indicator);
}
}
......
......@@ -142,9 +142,8 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP,
@param Mod_id Instance of eNB
@param frame Frame index
@param subframe Index of subframe
@param mbsfn_flag Indicates that this subframe is for MCH/MCCH
*/
void fill_DLSCH_dci(module_id_t module_idP,frame_t frameP,sub_frame_t subframe,int *mbsfn_flag);
void fill_DLSCH_dci(module_id_t module_idP,frame_t frameP,sub_frame_t subframe);
/** \brief UE specific DLSCH scheduling. Retrieves next ue to be schduled from round-robin scheduler and gets the appropriate harq_pid for the subframe from PHY. If the process is active and requires a retransmission, it schedules the retransmission with the same PRB count and MCS as the first transmission. Otherwise it consults RLC for DCCH/DTCH SDUs (status with maximum number of available PRBS), builds the MAC header (timing advance sent by default) and copies
@param Mod_id Instance ID of eNB
......@@ -159,8 +158,7 @@ void schedule_dlsch(module_id_t module_idP, frame_t frameP,
void schedule_ue_spec(module_id_t module_idP,
int CC_id,
frame_t frameP,
sub_frame_t subframe,
int *mbsfn_flag);
sub_frame_t subframe);
void schedule_ue_spec_br(module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP);
......@@ -234,21 +232,18 @@ void clear_nfapi_information(eNB_MAC_INST *eNB, int CC_idP,
void dlsch_scheduler_pre_processor(module_id_t module_idP,
int slice_idxP,
int CC_id,
frame_t frameP,
sub_frame_t subframe,
int *mbsfn_flag,
uint8_t rballoc_sub[NFAPI_CC_MAX][N_RBG_MAX]);
sub_frame_t subframe);
void dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
int slice_idx,
frame_t frameP,
sub_frame_t subframeP,
int min_rb_unit[NFAPI_CC_MAX],
uint16_t nb_rbs_required[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB],
uint8_t rballoc_sub[NFAPI_CC_MAX][N_RBG_MAX],
uint8_t MIMO_mode_indicator[NFAPI_CC_MAX][N_RBG_MAX],
int *mbsfn_flag);
int slice_idx,
frame_t frameP,
sub_frame_t subframeP,
int min_rb_unit[NFAPI_CC_MAX],
uint16_t nb_rbs_required[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB],
uint8_t rballoc_sub[NFAPI_CC_MAX][N_RBG_MAX],
uint8_t MIMO_mode_indicator[NFAPI_CC_MAX][N_RBG_MAX]);
void dlsch_scheduler_pre_processor_partitioning(module_id_t Mod_id,
int slice_idx,
......
......@@ -879,15 +879,16 @@ void dlsch_scheduler_pre_processor_intraslice_sharing(module_id_t Mod_id,
// This function assigns pre-available RBS to each UE in specified sub-bands before scheduling is done
void
dlsch_scheduler_pre_processor(module_id_t Mod_id,
int slice_idx,
int CC_id,
frame_t frameP,
sub_frame_t subframeP,
int *mbsfn_flag,
uint8_t rballoc_sub[NFAPI_CC_MAX][N_RBG_MAX]) {
sub_frame_t subframeP) {
int UE_id;
uint8_t CC_id;
uint16_t i, j;
int slice_idx = 0;
int min_rb_unit[NFAPI_CC_MAX];
uint8_t rballoc_sub[NFAPI_CC_MAX][N_RBG_MAX];
memset(rballoc_sub, 0, sizeof(rballoc_sub));
eNB_MAC_INST *eNB = RC.mac[Mod_id];
slice_info_t *sli = &eNB->slice_info;
uint16_t (*nb_rbs_required)[MAX_MOBILES_PER_ENB] = sli->pre_processor_results[slice_idx].nb_rbs_required;
......@@ -907,8 +908,7 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
min_rb_unit,
nb_rbs_required,
rballoc_sub,
MIMO_mode_indicator,
mbsfn_flag); // FIXME: Not sure if useful
MIMO_mode_indicator);
// STATUS
// Store the DLSCH buffer for each logical channel
store_dlsch_buffer(Mod_id,
......@@ -1005,8 +1005,7 @@ dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
int min_rb_unit[NFAPI_CC_MAX],
uint16_t nb_rbs_required[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB],
uint8_t rballoc_sub[NFAPI_CC_MAX][N_RBG_MAX],
uint8_t MIMO_mode_indicator[NFAPI_CC_MAX][N_RBG_MAX],
int *mbsfn_flag) {
uint8_t MIMO_mode_indicator[NFAPI_CC_MAX][N_RBG_MAX]) {
int UE_id;
uint8_t CC_id;
int i, j;
......@@ -1025,9 +1024,6 @@ dlsch_scheduler_pre_processor_reset(module_id_t module_idP,
N_RBG[CC_id] = to_rbg(cc->mib->message.dl_Bandwidth);
min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id);
if (mbsfn_flag[CC_id] > 0) // If this CC is allocated for MBSFN skip it here
continue;
for (UE_id = 0; UE_id < MAX_MOBILES_PER_ENB; ++UE_id) {
UE_list = &RC.mac[module_idP]->UE_list;
ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id];
......
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