fix for PHY structure disactivation
This commit is contained in:
@@ -175,12 +175,18 @@ void rx_func(void *param)
|
|||||||
|
|
||||||
T(T_GNB_PHY_DL_TICK, T_INT(gNB->Mod_id), T_INT(frame_tx), T_INT(slot_tx));
|
T(T_GNB_PHY_DL_TICK, T_INT(gNB->Mod_id), T_INT(frame_tx), T_INT(slot_tx));
|
||||||
|
|
||||||
// disactivate PHY stats if UE is inactive for more than 10 frames
|
// disactivate PHY stats if UE is inactive for a given number of frames
|
||||||
for (int i = 0; i < MAX_MOBILES_PER_GNB; i++) {
|
for (int i = 0; i < MAX_MOBILES_PER_GNB; i++) {
|
||||||
NR_gNB_PHY_STATS_t *stats = &gNB->phy_stats[i];
|
NR_gNB_PHY_STATS_t *stats = &gNB->phy_stats[i];
|
||||||
if(stats->active && (frame_rx > (stats->frame + NUMBER_FRAMES_PHY_UE_INACTIVE) % 1024))
|
if(stats->active && (((frame_rx - stats->frame + 1024) % 1024) > NUMBER_FRAMES_PHY_UE_INACTIVE))
|
||||||
stats->active = false;
|
stats->active = false;
|
||||||
}
|
}
|
||||||
|
// disactivate ULSCH structure if it is inactive for a given number of frames
|
||||||
|
for (int i = 0; i < NUMBER_OF_NR_ULSCH_MAX; i++) {
|
||||||
|
NR_gNB_ULSCH_t *ulsch = gNB->ulsch[i];
|
||||||
|
if (ulsch->active && (((frame_rx - ulsch->harq_process->frame + 1024) % 1024) > NUMBER_FRAMES_PHY_UE_INACTIVE))
|
||||||
|
ulsch->active = false;
|
||||||
|
}
|
||||||
|
|
||||||
// RX processing
|
// RX processing
|
||||||
int rx_slot_type = nr_slot_select(cfg,frame_rx,slot_rx);
|
int rx_slot_type = nr_slot_select(cfg,frame_rx,slot_rx);
|
||||||
|
|||||||
@@ -51,9 +51,6 @@ int16_t find_nr_ulsch(PHY_VARS_gNB *gNB, uint16_t rnti, int pid, int frame)
|
|||||||
// if there is already an active ULSCH for this RNTI and HARQ_PID
|
// if there is already an active ULSCH for this RNTI and HARQ_PID
|
||||||
if ((ulsch->harq_pid == pid) && (ulsch->rnti == rnti))
|
if ((ulsch->harq_pid == pid) && (ulsch->rnti == rnti))
|
||||||
return i;
|
return i;
|
||||||
// remove inactive ULSCH (from disconnected UEs)
|
|
||||||
else if ((frame > (ulsch->harq_process->frame + NUMBER_FRAMES_PHY_UE_INACTIVE) % 1024))
|
|
||||||
ulsch->active = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return first_free_index;
|
return first_free_index;
|
||||||
|
|||||||
Reference in New Issue
Block a user