forked from acouzens/open5gs
update it
This commit is contained in:
parent
f64f71b122
commit
9e3d6493f2
|
@ -43,24 +43,33 @@ static void * s6a_stats(void * arg)
|
|||
|
||||
/* Now, display everything */
|
||||
LOG_N( "------- app_test statistics ---------");
|
||||
if (now.tv_nsec >= start.tv_nsec) {
|
||||
if (now.tv_nsec >= start.tv_nsec)
|
||||
{
|
||||
LOG_N( " Executing for: %d.%06ld sec",
|
||||
(int)(now.tv_sec - start.tv_sec),
|
||||
(long)(now.tv_nsec - start.tv_nsec) / 1000);
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_N( " Executing for: %d.%06ld sec",
|
||||
(int)(now.tv_sec - 1 - start.tv_sec),
|
||||
(long)(now.tv_nsec + 1000000000 - start.tv_nsec) / 1000);
|
||||
}
|
||||
|
||||
if (s6a_config->mode & MODE_HSS) {
|
||||
LOG_N( " HSS: %" C_UINT64_T_FMT " message(s) echoed", copy.nb_echoed);
|
||||
if (s6a_config->mode & MODE_HSS)
|
||||
{
|
||||
LOG_N( " HSS: %llu message(s) echoed",
|
||||
copy.nb_echoed);
|
||||
}
|
||||
if (s6a_config->mode & MODE_MME) {
|
||||
if (s6a_config->mode & MODE_MME)
|
||||
{
|
||||
LOG_N( " MME:");
|
||||
LOG_N( " %" C_UINT64_T_FMT " message(s) sent", copy.nb_sent);
|
||||
LOG_N( " %" C_UINT64_T_FMT " error(s) received", copy.nb_errs);
|
||||
LOG_N( " %" C_UINT64_T_FMT " answer(s) received", copy.nb_recv);
|
||||
LOG_N( " %llu message(s) sent", copy.nb_sent);
|
||||
LOG_N( " %llu error(s) received", copy.nb_errs);
|
||||
LOG_N( " %llu answer(s) received", copy.nb_recv);
|
||||
LOG_N( " fastest: %ld.%06ld sec.", copy.shortest / 1000000, copy.shortest % 1000000);
|
||||
LOG_N( " slowest: %ld.%06ld sec.", copy.longest / 1000000, copy.longest % 1000000);
|
||||
LOG_N( " Average: %ld.%06ld sec.", copy.avg / 1000000, copy.avg % 1000000);
|
||||
}
|
||||
LOG_N( "-------------------------------------");
|
||||
}
|
||||
|
|
|
@ -17,18 +17,18 @@ extern "C" {
|
|||
|
||||
struct s6a_config_t {
|
||||
/* Diameter Identity of the local peer (FQDN -- ASCII) */
|
||||
char *cnf_diamid;
|
||||
char *cnf_diamid;
|
||||
/* Diameter realm of the local peer, default to realm part of cnf_diamid */
|
||||
char *cnf_diamrlm;
|
||||
char *cnf_diamrlm;
|
||||
|
||||
/* the local port for legacy Diameter (default: 3868) in host byte order */
|
||||
c_uint16_t cnf_port;
|
||||
c_uint16_t cnf_port;
|
||||
/* the local port for Diameter/TLS (default: 5658) in host byte order */
|
||||
c_uint16_t cnf_port_tls;
|
||||
c_uint16_t cnf_port_tls;
|
||||
|
||||
/* (supposedly) UTF-8, \0 terminated.
|
||||
* The Diameter Identity of the remote peer. */
|
||||
char *pi_diamid;
|
||||
char *pi_diamid;
|
||||
c_uint16_t pic_port; /* port to connect to. 0: default. */
|
||||
|
||||
c_uint32_t vendor_id; /* default 999999 */
|
||||
|
@ -38,10 +38,13 @@ struct s6a_config_t {
|
|||
char *dest_host; /* default NULL */
|
||||
char *user_name; /* default NULL */
|
||||
struct ta_stats {
|
||||
c_uint64_t nb_echoed; /* server */
|
||||
c_uint64_t nb_sent; /* client */
|
||||
c_uint64_t nb_recv; /* client */
|
||||
c_uint64_t nb_errs; /* client */
|
||||
unsigned long long nb_echoed; /* server */
|
||||
unsigned long long nb_sent; /* client */
|
||||
unsigned long long nb_recv; /* client */
|
||||
unsigned long long nb_errs; /* client */
|
||||
unsigned long shortest; /* fastest answer, in microseconds */
|
||||
unsigned long longest; /* slowest answer, in microseconds */
|
||||
unsigned long avg; /* average answer time, in microseconds */
|
||||
} stats;
|
||||
|
||||
pthread_mutex_t stats_lock;
|
||||
|
|
|
@ -14,7 +14,7 @@ int s6a_fd_init(const char *conffile)
|
|||
{
|
||||
int ret;
|
||||
|
||||
d_trace_level(&_s6a_fd, 0);
|
||||
d_trace_level(&_s6a_fd, 1);
|
||||
|
||||
gnutls_global_set_log_function(s6a_gnutls_log_func);
|
||||
gnutls_global_set_log_level(TRACE_MODULE);
|
||||
|
|
|
@ -93,6 +93,20 @@ static void s6a_aia_cb(void * data, struct msg ** msg)
|
|||
CHECK_POSIX_DO( pthread_mutex_lock(&s6a_config->stats_lock), );
|
||||
dur = ((ts.tv_sec - mi->ts.tv_sec) * 1000000) +
|
||||
((ts.tv_nsec - mi->ts.tv_nsec) / 1000);
|
||||
if (s6a_config->stats.nb_recv) {
|
||||
/* Ponderate in the avg */
|
||||
s6a_config->stats.avg = (s6a_config->stats.avg *
|
||||
s6a_config->stats.nb_recv + dur) / (s6a_config->stats.nb_recv + 1);
|
||||
/* Min, max */
|
||||
if (dur < s6a_config->stats.shortest)
|
||||
s6a_config->stats.shortest = dur;
|
||||
if (dur > s6a_config->stats.longest)
|
||||
s6a_config->stats.longest = dur;
|
||||
} else {
|
||||
s6a_config->stats.shortest = dur;
|
||||
s6a_config->stats.longest = dur;
|
||||
s6a_config->stats.avg = dur;
|
||||
}
|
||||
if (error)
|
||||
s6a_config->stats.nb_errs++;
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue