diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 37db1cad279f2023c2004d640c26aa0dde23a903..e86cfa43a616bbf6e4bb7e2d933d2bde2423eb0a 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -7,6 +7,10 @@ ID = ENB_DL_TICK DESC = eNodeB downlink tick - one tick per ms at start of downlink processing GROUP = ALL:PHY:GRAPHIC:ENB FORMAT = int,eNB_ID : int,frame : int,subframe +ID = ENB_DLSCH_UE_DCI + DESC = eNodeB downlink UE specific DCI as sent by the PHY layer + GROUP = ALL:PHY:GRAPHIC:ENB + FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format ID = ENB_INPUT_SIGNAL DESC = eNodeB received signal in the time domain for a duration of 1ms GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index c3172a612f17883dce8fc31233edb7f0f118ddd7..8ebc1bdf12c5acf4babf356f35653b43bda12453 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -147,32 +147,27 @@ static void enb_main_gui(gui *g, event_handler *h, void *database) /* downlink UE DCIs */ line = new_container(g, HORIZONTAL); widget_add_child(g, top_container, line, -1); - timeline_plot = new_timeline(g, 512, 4, 5); + timeline_plot = new_timeline(g, 512, 8, 5); widget_add_child(g, line, timeline_plot, -1); container_set_child_growable(g, line, timeline_plot, 1); - for (i = 0; i < 4; i++) + widget_add_child(g, line, new_label(g,"DL/UL TICK/DCI/ACK/NACK "), 0); + for (i = 0; i < 8; i++) timeline_set_subline_background_color(g, timeline_plot, i, new_color(g, i & 1 ? "#ddd" : "#eee")); - timelog = new_timelog(h, database, "ENB_DL_TICK"); timeview = new_view_time(3600, 10, g, timeline_plot); + /* tick logging */ + timelog = new_timelog(h, database, "ENB_DL_TICK"); subview = new_subview_time(timeview, 0, FOREGROUND_COLOR); logger_add_view(timelog, subview); - widget_add_child(g, line, new_label(g,"DL TICK/DCI/ACK/NACK "), 0); + /* DCI logging */ + timelog = new_timelog(h, database, "ENB_DLSCH_UE_DCI"); + subview = new_subview_time(timeview, 1, new_color(g, "#228")); + logger_add_view(timelog, subview); /* uplink UE DCIs */ - line = new_container(g, HORIZONTAL); - widget_add_child(g, top_container, line, -1); - timeline_plot = new_timeline(g, 512, 4, 5); - widget_add_child(g, line, timeline_plot, -1); - container_set_child_growable(g, line, timeline_plot, 1); - for (i = 0; i < 4; i++) - timeline_set_subline_background_color(g, timeline_plot, i, - new_color(g, i & 1 ? "#ddd" : "#eee")); timelog = new_timelog(h, database, "ENB_UL_TICK"); - timeview = new_view_time(3600, 10, g, timeline_plot); - subview = new_subview_time(timeview, 0, FOREGROUND_COLOR); + subview = new_subview_time(timeview, 4, FOREGROUND_COLOR); logger_add_view(timelog, subview); - widget_add_child(g, line, new_label(g,"UL TICK/DCI/ACK/NACK "), 0); } int main(int n, char **v) @@ -235,6 +230,7 @@ int main(int n, char **v) on_off(database, "ENB_INPUT_SIGNAL", is_on, 1); on_off(database, "ENB_UL_TICK", is_on, 1); on_off(database, "ENB_DL_TICK", is_on, 1); + on_off(database, "ENB_DLSCH_UE_DCI", is_on, 1); for (i = 0; i < on_off_n; i++) on_off(database, on_off_name[i], is_on, on_off_action[i]); diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 2566adc4c676f685952f3d6e0b996013fcbd75f2..29b632ecb9373f3ae92646a24c8b8ca7674ac492 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1162,6 +1162,9 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e else UE_id = i; + T(T_ENB_DLSCH_UE_DCI, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(UE_id), + T_INT(DCI_pdu->dci_alloc[i].rnti), T_INT(DCI_pdu->dci_alloc[i].format)); + if (UE_id>=0) { if ((frame%100)==0) { LOG_D(PHY,"Frame %3d, SF %d \n",frame,subframe);