Skip to content
Snippets Groups Projects
Commit b37e234e authored by Florian Kaltenberger's avatar Florian Kaltenberger
Browse files

added CQI request timer. CQI only requested periodically. MCS20 on UL works now.

parent c48f074a
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment