Commit 572e22ed authored by ChiehChun's avatar ChiehChun

Add dlsch_current_bytes and Calculate throughput

parent d9602208
......@@ -440,6 +440,8 @@ bool allocate_retransmission(module_id_t module_id,
return true;
}
float thr_ue[MAX_MOBILES_PER_GNB];
void pf_dl(module_id_t module_id,
frame_t frame,
sub_frame_t slot,
......@@ -449,6 +451,9 @@ void pf_dl(module_id_t module_id,
int max_num_ue) {
const int UE_id = 0;
float coeff_ue[MAX_MOBILES_PER_GNB];
NR_UE_list_t UE_sched; // UEs that could be scheduled
int *uep = &UE_sched.head;
/* Loop UE_info->list to check retransmission */
for (int UE_id = UE_info->list.head; UE_id >= 0; UE_id = UE_info->list.next[UE_id]) {
......@@ -459,7 +464,10 @@ void pf_dl(module_id_t module_id,
const rnti_t rnti = UE_info->rnti[UE_id];
/* Calculate Throughput */
const float a = 0.0005f; // corresponds to 200ms window
const uint32_t b = UE_info->mac_stats[UE_id].dlsch_current_bytes;
thr_ue[UE_id] = (1 - a) * thr_ue[UE_id] + a * b;
LOG_I(MAC,"thr_ue[%d] %f\n",UE_id, thr_ue[UE_id]);
/* retransmission */
if (harq->round != 0) {
......@@ -642,6 +650,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
NR_UE_list_t *UE_list = &UE_info->list;
for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
UE_info->mac_stats[UE_id].dlsch_current_bytes = 0;
/* update TA and set ta_apply every 10 frames.
* Possible improvement: take the periodicity from input file.
......@@ -1038,6 +1047,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
}
UE_info->mac_stats[UE_id].dlsch_total_bytes += TBS;
UE_info->mac_stats[UE_id].dlsch_current_bytes = TBS;
UE_info->mac_stats[UE_id].lc_bytes_tx[lcid] += dlsch_total_bytes;
retInfo->rbSize = sched_ctrl->rbSize;
......
......@@ -438,6 +438,7 @@ typedef struct {
int dlsch_rounds[8];
int dlsch_errors;
int dlsch_total_bytes;
int dlsch_current_bytes;
int ulsch_rounds[8];
int ulsch_errors;
int ulsch_total_bytes_scheduled;
......
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