Commit 212b8523 authored by Haruki NAOI's avatar Haruki NAOI

Fix: restrict mcs28 when using pdcch_ofdm_symbol=3.

(cherry picked from commit 8cb7279f98664fdd6cd1200ef5d59c0ddebdb785)
parent 496f9eee
...@@ -1354,6 +1354,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -1354,6 +1354,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
static int32_t tpc_accumulated = 0; static int32_t tpc_accumulated = 0;
UE_sched_ctrl_t *ue_sched_ctl; UE_sched_ctrl_t *ue_sched_ctl;
int mcs = 0; int mcs = 0;
int max_mcs = 28;
int i = 0; int i = 0;
int min_rb_unit[MAX_NUM_CCs]; int min_rb_unit[MAX_NUM_CCs];
int N_RB_DL[MAX_NUM_CCs]; int N_RB_DL[MAX_NUM_CCs];
...@@ -1479,9 +1480,11 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -1479,9 +1480,11 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
stop_meas(&eNB->schedule_dlsch_preprocessor); stop_meas(&eNB->schedule_dlsch_preprocessor);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,VCD_FUNCTION_OUT); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR,VCD_FUNCTION_OUT);
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
LOG_D(MAC, "doing schedule_ue_spec for CC_id %d\n",CC_id); LOG_D(MAC, "doing schedule_ue_spec for CC_id %d\n",CC_id);
dl_req = &eNB->DL_req[CC_id].dl_config_request_body; dl_req = &eNB->DL_req[CC_id].dl_config_request_body;
if(dl_req->number_pdcch_ofdm_symbols==3) max_mcs=27;
if (mbsfn_flag[CC_id]>0) if (mbsfn_flag[CC_id]>0)
continue; continue;
...@@ -1581,6 +1584,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -1581,6 +1584,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
eNB_UE_stats->dlsch_mcs[TB1] = cqi_to_mcs[ue_sched_ctl->dl_cqi[CC_id]]; eNB_UE_stats->dlsch_mcs[TB1] = cqi_to_mcs[ue_sched_ctl->dl_cqi[CC_id]];
eNB_UE_stats->dlsch_mcs[TB2] = cqi_to_mcs[ue_sched_ctl->dl_cqi[CC_id]]; eNB_UE_stats->dlsch_mcs[TB2] = cqi_to_mcs[ue_sched_ctl->dl_cqi[CC_id]];
} }
if(eNB_UE_stats->dlsch_mcs[TB1]>max_mcs) eNB_UE_stats->dlsch_mcs[TB1]=max_mcs;
if(eNB_UE_stats->dlsch_mcs[TB2]>max_mcs) eNB_UE_stats->dlsch_mcs[TB2]=max_mcs;
if (UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status == RRC_HO_EXECUTION) { if (UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status == RRC_HO_EXECUTION) {
eNB_UE_stats->dlsch_mcs[TB1] = 6; eNB_UE_stats->dlsch_mcs[TB1] = 6;
eNB_UE_stats->dlsch_mcs[TB2] = 6; eNB_UE_stats->dlsch_mcs[TB2] = 6;
...@@ -1907,7 +1912,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -1907,7 +1912,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
// if we have decreased too much or we don't have enough RBs, increase MCS // if we have decreased too much or we don't have enough RBs, increase MCS
while ( (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) while ( (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len))
&& ( ((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (mcs < 28)) && ( ((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (mcs < max_mcs))
||((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { ||((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) {
mcs++; mcs++;
TBS = get_TBS_DL(mcs, nb_rb); TBS = get_TBS_DL(mcs, nb_rb);
...@@ -2748,7 +2753,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -2748,7 +2753,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
(sdu_length_total + header_len_dcch + (sdu_length_total + header_len_dcch +
header_len_dtch + ta_len)) header_len_dtch + ta_len))
&& (((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (((ue_sched_ctl->dl_pow_off[CC_id] > 0)
&& (mcs < 28)) && (mcs < max_mcs))
|| ((ue_sched_ctl->dl_pow_off[CC_id] == 0) || ((ue_sched_ctl->dl_pow_off[CC_id] == 0)
&& (mcs <= 15)))) { && (mcs <= 15)))) {
mcs++; mcs++;
...@@ -3132,7 +3137,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP, ...@@ -3132,7 +3137,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
// if we have decreased too much or we don't have enough RBs, increase MCS // if we have decreased too much or we don't have enough RBs, increase MCS
while ( (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) while ( (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len))
&& ( ((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (mcs < 28)) && ( ((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (mcs < max_mcs))
|| ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15))) || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))
) { ) {
mcs++; mcs++;
......
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