Update to odulow per maintenance bronze
[o-du/phy.git] / fapi_5g / source / utils / nr5g_fapi_log.c
index 1d44055..de13ce6 100644 (file)
  **/
 #include "nr5g_fapi_std.h"
 #include "nr5g_fapi_log.h"
+#include "nr5g_fapi_memory.h"
 
 nr5g_fapi_log_types_t nr5g_fapi_log_level_g;
+nr5g_fapi_performance_statistic_t fapi_statis_info_wls_get_dl;
+nr5g_fapi_performance_statistic_t fapi_statis_info_parse_dl;
+nr5g_fapi_performance_statistic_t fapi_statis_info_wls_send_dl;
+nr5g_fapi_performance_statistic_t fapi_statis_info_wls_get_ul;
+nr5g_fapi_performance_statistic_t fapi_statis_info_parse_ul;
+nr5g_fapi_performance_statistic_t fapi_statis_info_wls_send_ul;
+uint64_t tick_total_wls_get_per_tti_dl = 0;
+uint64_t tick_total_parse_per_tti_dl = 0;
+uint64_t tick_total_wls_send_per_tti_dl = 0;
+uint64_t tick_total_wls_get_per_tti_ul = 0;
+uint64_t tick_total_parse_per_tti_ul = 0;
+uint64_t tick_total_wls_send_per_tti_ul = 0;
+uint16_t g_statistic_start_flag = 0;
 
 //------------------------------------------------------------------------------
 /** @ingroup        group_lte_source_phy_api
@@ -52,9 +66,6 @@ char *get_logger_type_str(
         case TRACE_LOG:
             return ("TRACE_LOG");
 
-        case HEXDUMP_LOG:
-            return ("HEXDUMP_LOG");
-
         default:
             printf("Log Error Type\n");
             return ("");
@@ -95,4 +106,171 @@ nr5g_fapi_log_types_t nr5g_fapi_get_log_level(
 {
     return nr5g_fapi_log_level_g;
 }
+#ifdef STATISTIC_MODE
+uint16_t nr5g_fapi_statistic_info_set(
+    nr5g_fapi_performance_statistic_t * fapi_statis_info,
+    uint64_t * tick_val_in,
+    uint16_t start_flag)
+{
+
+    uint64_t tick_val = *tick_val_in;
+    uint64_t cnt = fapi_statis_info->count;
+
+    if (start_flag) {
+        if (cnt) {
+            if (tick_val < fapi_statis_info->min_cycle) {
+                fapi_statis_info->min_cycle = tick_val;
+            } else if (tick_val > fapi_statis_info->max_cycle) {
+                fapi_statis_info->max_cycle = tick_val;
+            }
+
+            fapi_statis_info->avg_cycle += tick_val;
+            fapi_statis_info->count++;
+
+        } else {
+            fapi_statis_info->avg_cycle = tick_val;
+            fapi_statis_info->min_cycle = tick_val;
+            fapi_statis_info->max_cycle = tick_val;
+            fapi_statis_info->count++;
+        }
+    }
+    *tick_val_in = 0;
+    return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_set_all(
+    )
+{
+
+    nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_get_dl,
+        &tick_total_wls_get_per_tti_dl, g_statistic_start_flag);
+    nr5g_fapi_statistic_info_set(&fapi_statis_info_parse_dl,
+        &tick_total_parse_per_tti_dl, g_statistic_start_flag);
+    nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_send_dl,
+        &tick_total_wls_send_per_tti_dl, g_statistic_start_flag);
+    nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_get_ul,
+        &tick_total_wls_get_per_tti_ul, g_statistic_start_flag);
+    nr5g_fapi_statistic_info_set(&fapi_statis_info_parse_ul,
+        &tick_total_parse_per_tti_ul, g_statistic_start_flag);
+    nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_send_ul,
+        &tick_total_wls_send_per_tti_ul, g_statistic_start_flag);
+
+    return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_init(
+    )
+{
+
+    NR5G_FAPI_MEMSET(&fapi_statis_info_wls_get_dl,
+        sizeof(nr5g_fapi_performance_statistic_t), 0,
+        sizeof(nr5g_fapi_performance_statistic_t));
+    NR5G_FAPI_MEMSET(&fapi_statis_info_parse_dl,
+        sizeof(nr5g_fapi_performance_statistic_t), 0,
+        sizeof(nr5g_fapi_performance_statistic_t));
+    NR5G_FAPI_MEMSET(&fapi_statis_info_wls_send_dl,
+        sizeof(nr5g_fapi_performance_statistic_t), 0,
+        sizeof(nr5g_fapi_performance_statistic_t));
+    NR5G_FAPI_MEMSET(&fapi_statis_info_wls_get_ul,
+        sizeof(nr5g_fapi_performance_statistic_t), 0,
+        sizeof(nr5g_fapi_performance_statistic_t));
+    NR5G_FAPI_MEMSET(&fapi_statis_info_parse_ul,
+        sizeof(nr5g_fapi_performance_statistic_t), 0,
+        sizeof(nr5g_fapi_performance_statistic_t));
+    NR5G_FAPI_MEMSET(&fapi_statis_info_wls_send_ul,
+        sizeof(nr5g_fapi_performance_statistic_t), 0,
+        sizeof(nr5g_fapi_performance_statistic_t));
+    return 0;
+
+}
+
+uint16_t nr5g_fapi_statistic_info_print(
+    )
+{
+
+    printf("\n");
+    printf
+        ("dl wls get Kcycle (count, min, max, avg)   : %d    %9.2f       %9.2f       %9.2f \n",
+        fapi_statis_info_wls_get_dl.count,
+        fapi_statis_info_wls_get_dl.min_cycle / 1000.,
+        fapi_statis_info_wls_get_dl.max_cycle / 1000.,
+        fapi_statis_info_wls_get_dl.avg_cycle /
+        fapi_statis_info_wls_get_dl.count / 1000.);
+    printf
+        ("dl FAPI parse Kcycle (count, min, max, avg): %d    %9.2f       %9.2f       %9.2f \n",
+        fapi_statis_info_parse_dl.count,
+        fapi_statis_info_parse_dl.min_cycle / 1000.,
+        fapi_statis_info_parse_dl.max_cycle / 1000.,
+        fapi_statis_info_parse_dl.avg_cycle / fapi_statis_info_parse_dl.count /
+        1000.);
+    printf
+        ("dl wls send Kcycle(count, min, max, avg)   : %d    %9.2f       %9.2f       %9.2f \n",
+        fapi_statis_info_wls_send_dl.count,
+        fapi_statis_info_wls_send_dl.min_cycle / 1000.,
+        fapi_statis_info_wls_send_dl.max_cycle / 1000.,
+        fapi_statis_info_wls_send_dl.avg_cycle /
+        fapi_statis_info_wls_send_dl.count / 1000.);
+
+    printf
+        ("ul wls get Kcycle(count, min, max, avg)    : %d    %9.2f       %9.2f       %9.2f \n",
+        fapi_statis_info_wls_get_ul.count,
+        fapi_statis_info_wls_get_ul.min_cycle / 1000.,
+        fapi_statis_info_wls_get_ul.max_cycle / 1000.,
+        fapi_statis_info_wls_get_ul.avg_cycle /
+        fapi_statis_info_wls_get_ul.count / 1000.);
+    printf
+        ("ul FAPI parse Kcycle(count, min, max, avg) : %d    %9.2f       %9.2f       %9.2f \n",
+        fapi_statis_info_parse_ul.count,
+        fapi_statis_info_parse_ul.min_cycle / 1000.,
+        fapi_statis_info_parse_ul.max_cycle / 1000.,
+        fapi_statis_info_parse_ul.avg_cycle / fapi_statis_info_parse_ul.count /
+        1000.);
+    printf
+        ("ul wls send Kcycle(count, min, max, avg)   : %d    %9.2f       %9.2f       %9.2f \n",
+        fapi_statis_info_wls_send_ul.count,
+        fapi_statis_info_wls_send_ul.min_cycle / 1000.,
+        fapi_statis_info_wls_send_ul.max_cycle / 1000.,
+        fapi_statis_info_wls_send_ul.avg_cycle /
+        fapi_statis_info_wls_send_ul.count / 1000.);
+    return 0;
+
+}
+#else
+uint16_t nr5g_fapi_statistic_info_set(
+    nr5g_fapi_performance_statistic_t * fapi_statis_info,
+    uint64_t * tick_val_in,
+    uint16_t start_flag)
+{
+
+    fapi_statis_info->avg_cycle = 0;
+       *tick_val_in = 0;
+       if(start_flag) *tick_val_in = 0;
+       return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_set_all(
+    )
+{
+
+
+    return 0;
+}
+
+uint16_t nr5g_fapi_statistic_info_init(
+    )
+{
+
+    return 0;
+
+}
+
+uint16_t nr5g_fapi_statistic_info_print(
+    )
+{
+
+    return 0;
+
+}
 
+#endif