summaryrefslogtreecommitdiff
path: root/common/include/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/include/utils.h')
-rw-r--r--common/include/utils.h61
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