Commit 30db6220 authored by ChiehChun's avatar ChiehChun

Add static TBS and Calculate throughput

parent 94be6b07
......@@ -575,6 +575,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,
......@@ -585,6 +587,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]) {
......@@ -593,7 +598,10 @@ void pf_dl(module_id_t module_id,
NR_UE_harq_t *harq = &sched_ctrl->harq_processes[current_harq_pid];
/* 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) {
......@@ -754,6 +762,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 ;
if (sched_ctrl->rbSize <= 0 && !get_softmodem_params()->phy_test)
continue;
......@@ -912,6 +921,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] += sdu_length_total;
// Check if there is data from RLC or CE
......
......@@ -392,6 +392,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