added CQI request timer. CQI only requested periodically. MCS20 on UL works now.
This commit is contained in:
@@ -742,6 +742,7 @@ typedef struct {
|
||||
uint16_t ta_timer;
|
||||
int16_t ta_update;
|
||||
int32_t context_active_timer;
|
||||
int32_t cqi_req_timer;
|
||||
int32_t ul_inactivity_timer;
|
||||
int32_t ul_failure_timer;
|
||||
int32_t ra_pdcch_order_sent;
|
||||
|
||||
@@ -127,6 +127,8 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
|
||||
|
||||
// increment this, it is cleared when we receive an sdu
|
||||
eNB_mac_inst[module_idP].UE_list.UE_sched_ctrl[i].ul_inactivity_timer++;
|
||||
|
||||
eNB_mac_inst[module_idP].UE_list.UE_sched_ctrl[i].cqi_req_timer++;
|
||||
|
||||
if (mac_xface->get_eNB_UE_stats(module_idP, CC_id, rnti)==NULL) {
|
||||
// mac_remove_ue(module_idP, i, frameP, subframeP);
|
||||
|
||||
@@ -873,7 +873,14 @@ void schedule_ulsch_rnti(module_id_t module_idP,
|
||||
UE_template->ul_SR = 0;
|
||||
aggregation = process_ue_cqi(module_idP,UE_id); // =2 by default!!
|
||||
status = mac_eNB_get_rrc_status(module_idP,rnti);
|
||||
cqi_req = (status < RRC_CONNECTED)? 0:1;
|
||||
if (status < RRC_CONNECTED)
|
||||
cqi_req = 0;
|
||||
else if (UE_list->UE_sched_ctrl[UE_id].cqi_req_timer>30) {
|
||||
cqi_req = 1;
|
||||
UE_list->UE_sched_ctrl[UE_id].cqi_req_timer=0;
|
||||
}
|
||||
else
|
||||
cqi_req = 0;
|
||||
|
||||
//power control
|
||||
//compute the expected ULSCH RX power (for the stats)
|
||||
@@ -918,7 +925,9 @@ void schedule_ulsch_rnti(module_id_t module_idP,
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].target_rx_power=target_rx_power;
|
||||
UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_mcs1=UE_template->pre_assigned_mcs_ul;
|
||||
mcs = cmin (UE_template->pre_assigned_mcs_ul, openair_daq_vars.target_ue_ul_mcs); // adjust, based on user-defined MCS
|
||||
|
||||
if ((cqi_req==1) && (mcs==20)) {
|
||||
mcs=19;
|
||||
}
|
||||
if (UE_template->pre_allocated_rb_table_index_ul >=0) {
|
||||
rb_table_index=UE_template->pre_allocated_rb_table_index_ul;
|
||||
} else {
|
||||
|
||||
@@ -318,7 +318,7 @@ static LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs];
|
||||
|
||||
int multi_thread=1;
|
||||
uint32_t target_dl_mcs = 28; //maximum allowed mcs
|
||||
uint32_t target_ul_mcs = 19;
|
||||
uint32_t target_ul_mcs = 20;
|
||||
uint32_t timing_advance = 0;
|
||||
uint8_t exit_missed_slots=1;
|
||||
uint64_t num_missed_slots=0; // counter for the number of missed slots
|
||||
|
||||
Reference in New Issue
Block a user