Commit c8f960c9 authored by khalidhamdy's avatar khalidhamdy

edit scheduler for emtc UE

parent 18d57dbb
......@@ -536,6 +536,18 @@ schedule_ue_spec_br(
if (mbsfn_flag[CC_id] > 0)
continue;
unsigned int rmax;
unsigned int narrowBandindex_index;
unsigned int first_rb, rep, reps;
// rmax from RRC connection setup
getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index);
first_rb = narrowband_to_first_rb(cc,narrowBandindex_index);
if (vrb_map[first_rb] == 1) // skip scheduling emtc UEs if first RB is taken
continue ;
for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id])
{
......@@ -549,14 +561,7 @@ schedule_ue_spec_br(
// at the end of the scheduler make sure the right subbands coresponding to these RBs are allocated the UE in UE_template directely
// also check on the fill_DCI function
unsigned int rmax;
unsigned int narrowBandindex_index;
unsigned int first_rb, rep, reps;
// rmax from RRC connection setup
getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index);
first_rb = narrowband_to_first_rb(cc,narrowBandindex_index);
vrb_map[first_rb] = 1;
vrb_map[first_rb + 1] = 1;
......
......@@ -999,6 +999,9 @@ abort();
rb_table_index--;
}
//********************************* [khalid] here will make the modification for emtc
TBS = get_TBS_UL(mcs,rb_table[rb_table_index]);
UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_rx+=rb_table[rb_table_index];
UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_TBS=TBS;
......@@ -1016,10 +1019,10 @@ abort();
// bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB)
// increment for next UE allocation
first_rb[CC_id]+=rb_table[rb_table_index];
first_rb[CC_id]+=rb_table[rb_table_index]; // khalid just shifting the first rb for next ue to schedule
//store for possible retransmission
UE_template->nb_rb_ul[harq_pid] = rb_table[rb_table_index];
UE_template->first_rb_ul[harq_pid] = first_rb[CC_id];
UE_template->first_rb_ul[harq_pid] = first_rb[CC_id]; // khalid? should store the firsy
UE_sched_ctrl->ul_scheduled |= (1<<harq_pid);
if (UE_id == UE_list->head)
......@@ -1039,7 +1042,7 @@ abort();
hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi];
memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t));
hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE;
hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu);
hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu); // khalid these items in nFapi in
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dci_format = NFAPI_UL_DCI_FORMAT_0;
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation;
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti;
......@@ -1052,7 +1055,7 @@ abort();
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.new_data_indication_1 = ndi;
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc = tpc;
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request = cqi_req;
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframe];
hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframe]; // khalid valid for TDD only
if (!CCE_allocation_infeasible(module_idP,CC_id,2,subframeP,
aggregation,
......
......@@ -162,9 +162,14 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
wakeup_prach_eNB_br(eNB,NULL,proc->frame_rx,proc->subframe_rx);
#endif
}
// khalid begin chain of every thread
// UE-specific RX processing for subframe n
phy_procedures_eNB_uespec_RX(eNB, proc, no_relay );
/* khalid : detection of MSG3 is simple but seems there is another entity that fill the buffers to this phy_rx chain */
pthread_mutex_lock(&eNB->UL_INFO_mutex);
eNB->UL_INFO.frame = proc->frame_rx;
eNB->UL_INFO.subframe = proc->subframe_rx;
......
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