1 /******************************************************************************
3 * Copyright (c) 2021 Intel.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 *******************************************************************************/
20 * @file This file defines all the functions used for logging.
23 #include "nr5g_fapi_std.h"
24 #include "nr5g_fapi_log.h"
25 #include "nr5g_fapi_memory.h"
27 nr5g_fapi_log_types_t nr5g_fapi_log_level_g;
28 nr5g_fapi_performance_statistic_t fapi_statis_info_wls_get_dl;
29 nr5g_fapi_performance_statistic_t fapi_statis_info_parse_dl;
30 nr5g_fapi_performance_statistic_t fapi_statis_info_wls_send_dl;
31 nr5g_fapi_performance_statistic_t fapi_statis_info_wls_get_ul;
32 nr5g_fapi_performance_statistic_t fapi_statis_info_parse_ul;
33 nr5g_fapi_performance_statistic_t fapi_statis_info_wls_send_ul;
34 uint64_t tick_total_wls_get_per_tti_dl = 0;
35 uint64_t tick_total_parse_per_tti_dl = 0;
36 uint64_t tick_total_wls_send_per_tti_dl = 0;
37 uint64_t tick_total_wls_get_per_tti_ul = 0;
38 uint64_t tick_total_parse_per_tti_ul = 0;
39 uint64_t tick_total_wls_send_per_tti_ul = 0;
40 uint16_t g_statistic_start_flag = 0;
42 //------------------------------------------------------------------------------
43 /** @ingroup group_lte_source_phy_api
45 * @param[in] FAPI log level
47 * @return String of log type
49 * @description The returns log level sring
52 //------------------------------------------------------------------------------
53 char *get_logger_type_str(
54 nr5g_fapi_log_types_t e)
70 printf("Log Error Type\n");
72 //case NONE: Should never be reached.
76 //------------------------------------------------------------------------------
77 /** @ingroup group_lte_source_phy_api
79 * @param[in] log level
83 * @description The function sets log level
86 //------------------------------------------------------------------------------
87 void nr5g_fapi_set_log_level(
88 nr5g_fapi_log_types_t new_level)
90 nr5g_fapi_log_level_g = new_level;
93 //------------------------------------------------------------------------------
94 /** @ingroup group_lte_source_phy_api
100 * @description The function returns log level.
103 //------------------------------------------------------------------------------
104 nr5g_fapi_log_types_t nr5g_fapi_get_log_level(
107 return nr5g_fapi_log_level_g;
109 #ifdef STATISTIC_MODE
110 uint16_t nr5g_fapi_statistic_info_set(
111 nr5g_fapi_performance_statistic_t * fapi_statis_info,
112 uint64_t * tick_val_in,
116 uint64_t tick_val = *tick_val_in;
117 uint64_t cnt = fapi_statis_info->count;
121 if (tick_val < fapi_statis_info->min_cycle) {
122 fapi_statis_info->min_cycle = tick_val;
123 } else if (tick_val > fapi_statis_info->max_cycle) {
124 fapi_statis_info->max_cycle = tick_val;
127 fapi_statis_info->avg_cycle += tick_val;
128 fapi_statis_info->count++;
131 fapi_statis_info->avg_cycle = tick_val;
132 fapi_statis_info->min_cycle = tick_val;
133 fapi_statis_info->max_cycle = tick_val;
134 fapi_statis_info->count++;
141 uint16_t nr5g_fapi_statistic_info_set_all(
145 nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_get_dl,
146 &tick_total_wls_get_per_tti_dl, g_statistic_start_flag);
147 nr5g_fapi_statistic_info_set(&fapi_statis_info_parse_dl,
148 &tick_total_parse_per_tti_dl, g_statistic_start_flag);
149 nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_send_dl,
150 &tick_total_wls_send_per_tti_dl, g_statistic_start_flag);
151 nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_get_ul,
152 &tick_total_wls_get_per_tti_ul, g_statistic_start_flag);
153 nr5g_fapi_statistic_info_set(&fapi_statis_info_parse_ul,
154 &tick_total_parse_per_tti_ul, g_statistic_start_flag);
155 nr5g_fapi_statistic_info_set(&fapi_statis_info_wls_send_ul,
156 &tick_total_wls_send_per_tti_ul, g_statistic_start_flag);
161 uint16_t nr5g_fapi_statistic_info_init(
165 NR5G_FAPI_MEMSET(&fapi_statis_info_wls_get_dl,
166 sizeof(nr5g_fapi_performance_statistic_t), 0,
167 sizeof(nr5g_fapi_performance_statistic_t));
168 NR5G_FAPI_MEMSET(&fapi_statis_info_parse_dl,
169 sizeof(nr5g_fapi_performance_statistic_t), 0,
170 sizeof(nr5g_fapi_performance_statistic_t));
171 NR5G_FAPI_MEMSET(&fapi_statis_info_wls_send_dl,
172 sizeof(nr5g_fapi_performance_statistic_t), 0,
173 sizeof(nr5g_fapi_performance_statistic_t));
174 NR5G_FAPI_MEMSET(&fapi_statis_info_wls_get_ul,
175 sizeof(nr5g_fapi_performance_statistic_t), 0,
176 sizeof(nr5g_fapi_performance_statistic_t));
177 NR5G_FAPI_MEMSET(&fapi_statis_info_parse_ul,
178 sizeof(nr5g_fapi_performance_statistic_t), 0,
179 sizeof(nr5g_fapi_performance_statistic_t));
180 NR5G_FAPI_MEMSET(&fapi_statis_info_wls_send_ul,
181 sizeof(nr5g_fapi_performance_statistic_t), 0,
182 sizeof(nr5g_fapi_performance_statistic_t));
187 uint16_t nr5g_fapi_statistic_info_print(
193 ("dl wls get Kcycle (count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
194 fapi_statis_info_wls_get_dl.count,
195 fapi_statis_info_wls_get_dl.min_cycle / 1000.,
196 fapi_statis_info_wls_get_dl.max_cycle / 1000.,
197 fapi_statis_info_wls_get_dl.avg_cycle /
198 fapi_statis_info_wls_get_dl.count / 1000.);
200 ("dl FAPI parse Kcycle (count, min, max, avg): %d %9.2f %9.2f %9.2f \n",
201 fapi_statis_info_parse_dl.count,
202 fapi_statis_info_parse_dl.min_cycle / 1000.,
203 fapi_statis_info_parse_dl.max_cycle / 1000.,
204 fapi_statis_info_parse_dl.avg_cycle / fapi_statis_info_parse_dl.count /
207 ("dl wls send Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
208 fapi_statis_info_wls_send_dl.count,
209 fapi_statis_info_wls_send_dl.min_cycle / 1000.,
210 fapi_statis_info_wls_send_dl.max_cycle / 1000.,
211 fapi_statis_info_wls_send_dl.avg_cycle /
212 fapi_statis_info_wls_send_dl.count / 1000.);
215 ("ul wls get Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
216 fapi_statis_info_wls_get_ul.count,
217 fapi_statis_info_wls_get_ul.min_cycle / 1000.,
218 fapi_statis_info_wls_get_ul.max_cycle / 1000.,
219 fapi_statis_info_wls_get_ul.avg_cycle /
220 fapi_statis_info_wls_get_ul.count / 1000.);
222 ("ul FAPI parse Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
223 fapi_statis_info_parse_ul.count,
224 fapi_statis_info_parse_ul.min_cycle / 1000.,
225 fapi_statis_info_parse_ul.max_cycle / 1000.,
226 fapi_statis_info_parse_ul.avg_cycle / fapi_statis_info_parse_ul.count /
229 ("ul wls send Kcycle(count, min, max, avg) : %d %9.2f %9.2f %9.2f \n",
230 fapi_statis_info_wls_send_ul.count,
231 fapi_statis_info_wls_send_ul.min_cycle / 1000.,
232 fapi_statis_info_wls_send_ul.max_cycle / 1000.,
233 fapi_statis_info_wls_send_ul.avg_cycle /
234 fapi_statis_info_wls_send_ul.count / 1000.);
239 uint16_t nr5g_fapi_statistic_info_set(
240 nr5g_fapi_performance_statistic_t * fapi_statis_info,
241 uint64_t * tick_val_in,
245 fapi_statis_info->avg_cycle = 0;
247 if(start_flag) *tick_val_in = 0;
251 uint16_t nr5g_fapi_statistic_info_set_all(
259 uint16_t nr5g_fapi_statistic_info_init(
268 uint16_t nr5g_fapi_statistic_info_print(