diff options
Diffstat (limited to 'common/include/utils.h')
| -rw-r--r-- | common/include/utils.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/common/include/utils.h b/common/include/utils.h new file mode 100644 index 0000000..7b26103 --- /dev/null +++ b/common/include/utils.h @@ -0,0 +1,61 @@ +#ifndef _UTILS_H +#define _UTILS_H + +#ifdef __cpluscplus +extern "C" +{ +#endif + +#include <stdint.h> +#include <stdio.h> + +struct metrics +{ + uint64_t rx_pkts; + uint64_t rx_bytes; + + uint64_t rx_err_pkts; + uint64_t rx_err_bytes; + + uint64_t succ_tx_v4_pkts; + uint64_t succ_tx_v4_bytes; + + uint64_t succ_tx_v6_pkts; + uint64_t succ_tx_v6_bytes; + + uint64_t err_tx_v4_pkts; + uint64_t err_tx_v4_bytes; + + uint64_t err_tx_v6_pkts; + uint64_t err_tx_v6_bytes; +}; + +inline void metrics_dump(struct metrics *metrics) +{ + printf(" rx_pkts : %ld\n", metrics->rx_pkts); + printf(" rx_bytes : %ld\n", metrics->rx_bytes); + + printf(" rx_err_pkts : %ld\n", metrics->rx_err_pkts); + printf(" rx_err_bytes : %ld\n", metrics->rx_err_bytes); + + printf(" succ_tx_v4_pkts : %ld\n", metrics->succ_tx_v4_pkts); + printf(" succ_tx_v4_bytes : %ld\n", metrics->succ_tx_v4_bytes); + + printf(" succ_tx_v6_pkts : %ld\n", metrics->succ_tx_v6_pkts); + printf(" succ_tx_v6_bytes : %ld\n", metrics->succ_tx_v6_bytes); + + printf(" err_tx_v4_pkts : %ld\n", metrics->err_tx_v4_pkts); + printf(" err_tx_v4_bytes : %ld\n", metrics->err_tx_v4_bytes); + + printf(" err_tx_v6_pkts : %ld\n", metrics->err_tx_v6_pkts); + printf(" err_tx_v6_bytes : %ld\n", metrics->err_tx_v6_bytes); +} + +#define ATOMIC_READ(x) __atomic_fetch_add(x, 0, __ATOMIC_RELAXED) +#define ATOMIC_ADD(x, y) __atomic_fetch_add(x, y, __ATOMIC_RELAXED) + +#ifdef __cpluscplus +} +#endif + +#endif |
