Zephyr API Documentation 4.1.0-rc1
A Scalable Open Source RTOS
 4.1.0-rc1
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
net_stats.h
Go to the documentation of this file.
1
8/*
9 * Copyright (c) 2016 Intel Corporation
10 *
11 * SPDX-License-Identifier: Apache-2.0
12 */
13
14#ifndef ZEPHYR_INCLUDE_NET_NET_STATS_H_
15#define ZEPHYR_INCLUDE_NET_NET_STATS_H_
16
17#include <zephyr/types.h>
18#include <zephyr/net/net_core.h>
19#include <zephyr/net/net_mgmt.h>
20
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
46
56
66
83
110
130
176
193
207
221
235
249
263
277
288
299
302#if NET_TC_TX_COUNT == 0
303#define NET_TC_TX_STATS_COUNT 1
304#else
305#define NET_TC_TX_STATS_COUNT NET_TC_TX_COUNT
306#endif
307
308#if NET_TC_RX_COUNT == 0
309#define NET_TC_RX_STATS_COUNT 1
310#else
311#define NET_TC_RX_STATS_COUNT NET_TC_RX_COUNT
312#endif
313
321 struct {
324#if defined(CONFIG_NET_PKT_TXTIME_STATS_DETAIL)
326 struct net_stats_tx_time
327 tx_time_detail[NET_PKT_DETAIL_STATS_COUNT];
328#endif
337 } sent[NET_TC_TX_STATS_COUNT];
338
340 struct {
342 struct net_stats_rx_time rx_time;
343#if defined(CONFIG_NET_PKT_RXTIME_STATS_DETAIL)
345 struct net_stats_rx_time
346 rx_time_detail[NET_PKT_DETAIL_STATS_COUNT];
347#endif
349 net_stats_t pkts;
351 net_stats_t dropped;
353 net_stats_t bytes;
355 uint8_t priority;
356 } recv[NET_TC_RX_STATS_COUNT];
357};
358
359
373
374
378struct net_stats {
381
387
390
391#if defined(CONFIG_NET_STATISTICS_IPV6)
393 struct net_stats_ip ipv6;
394#endif
395
396#if defined(CONFIG_NET_STATISTICS_IPV4)
398 struct net_stats_ip ipv4;
399#endif
400
401#if defined(CONFIG_NET_STATISTICS_ICMP)
403 struct net_stats_icmp icmp;
404#endif
405
406#if defined(CONFIG_NET_STATISTICS_TCP)
408 struct net_stats_tcp tcp;
409#endif
410
411#if defined(CONFIG_NET_STATISTICS_UDP)
413 struct net_stats_udp udp;
414#endif
415
416#if defined(CONFIG_NET_STATISTICS_IPV6_ND)
418 struct net_stats_ipv6_nd ipv6_nd;
419#endif
420
421#if defined(CONFIG_NET_STATISTICS_IPV6_PMTU)
423 struct net_stats_ipv6_pmtu ipv6_pmtu;
424#endif
425
426#if defined(CONFIG_NET_STATISTICS_IPV4_PMTU)
428 struct net_stats_ipv4_pmtu ipv4_pmtu;
429#endif
430
431#if defined(CONFIG_NET_STATISTICS_MLD)
433 struct net_stats_ipv6_mld ipv6_mld;
434#endif
435
436#if defined(CONFIG_NET_STATISTICS_IGMP)
438 struct net_stats_ipv4_igmp ipv4_igmp;
439#endif
440
441#if defined(CONFIG_NET_STATISTICS_DNS)
443 struct net_stats_dns dns;
444#endif
445
446#if NET_TC_COUNT > 1
448 struct net_stats_tc tc;
449#endif
450
451#if defined(CONFIG_NET_PKT_TXTIME_STATS)
453 struct net_stats_tx_time tx_time;
454#endif
455
456#if defined(CONFIG_NET_PKT_RXTIME_STATS)
458 struct net_stats_rx_time rx_time;
459#endif
460
461#if defined(CONFIG_NET_PKT_TXTIME_STATS_DETAIL)
463 struct net_stats_tx_time tx_time_detail[NET_PKT_DETAIL_STATS_COUNT];
464#endif
465#if defined(CONFIG_NET_PKT_RXTIME_STATS_DETAIL)
467 struct net_stats_rx_time rx_time_detail[NET_PKT_DETAIL_STATS_COUNT];
468#endif
469
470#if defined(CONFIG_NET_STATISTICS_POWER_MANAGEMENT)
472 struct net_stats_pm pm;
473#endif
474};
475
537
554
565
579
580#ifdef CONFIG_NET_STATISTICS_ETHERNET_VENDOR
584struct net_stats_eth_vendor {
585 const char * const key;
586 uint32_t value;
587};
588#endif
589
641
658
669
698
699#if defined(CONFIG_NET_STATISTICS_USER_API)
700/* Management part definitions */
701
704#define _NET_STATS_LAYER NET_MGMT_LAYER_L3
705#define _NET_STATS_CODE 0x101
706#define _NET_STATS_BASE (NET_MGMT_LAYER(_NET_STATS_LAYER) | \
707 NET_MGMT_LAYER_CODE(_NET_STATS_CODE))
708
709enum net_request_stats_cmd {
710 NET_REQUEST_STATS_CMD_GET_ALL = 1,
711 NET_REQUEST_STATS_CMD_GET_PROCESSING_ERROR,
712 NET_REQUEST_STATS_CMD_GET_BYTES,
713 NET_REQUEST_STATS_CMD_GET_IP_ERRORS,
714 NET_REQUEST_STATS_CMD_GET_IPV4,
715 NET_REQUEST_STATS_CMD_GET_IPV6,
716 NET_REQUEST_STATS_CMD_GET_IPV6_ND,
717 NET_REQUEST_STATS_CMD_GET_IPV6_PMTU,
718 NET_REQUEST_STATS_CMD_GET_IPV4_PMTU,
719 NET_REQUEST_STATS_CMD_GET_ICMP,
720 NET_REQUEST_STATS_CMD_GET_UDP,
721 NET_REQUEST_STATS_CMD_GET_TCP,
722 NET_REQUEST_STATS_CMD_GET_ETHERNET,
723 NET_REQUEST_STATS_CMD_GET_PPP,
724 NET_REQUEST_STATS_CMD_GET_PM,
725 NET_REQUEST_STATS_CMD_GET_WIFI,
726 NET_REQUEST_STATS_CMD_RESET_WIFI,
727};
728
732#define NET_REQUEST_STATS_GET_ALL \
733 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_ALL)
734
736#define NET_REQUEST_STATS_GET_PROCESSING_ERROR \
737 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_PROCESSING_ERROR)
738
740#define NET_REQUEST_STATS_GET_BYTES \
741 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_BYTES)
742
744#define NET_REQUEST_STATS_GET_IP_ERRORS \
745 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IP_ERRORS)
746
749NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_ALL);
750NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_PROCESSING_ERROR);
751NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_BYTES);
752NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_IP_ERRORS);
753
756#if defined(CONFIG_NET_STATISTICS_IPV4)
758#define NET_REQUEST_STATS_GET_IPV4 \
759 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV4)
760
762NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_IPV4);
764#endif /* CONFIG_NET_STATISTICS_IPV4 */
765
766#if defined(CONFIG_NET_STATISTICS_IPV6)
768#define NET_REQUEST_STATS_GET_IPV6 \
769 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV6)
770
772NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_IPV6);
774#endif /* CONFIG_NET_STATISTICS_IPV6 */
775
776#if defined(CONFIG_NET_STATISTICS_IPV6_ND)
778#define NET_REQUEST_STATS_GET_IPV6_ND \
779 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV6_ND)
780
782NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_IPV6_ND);
784#endif /* CONFIG_NET_STATISTICS_IPV6_ND */
785
786#if defined(CONFIG_NET_STATISTICS_IPV6_PMTU)
788#define NET_REQUEST_STATS_GET_IPV6_PMTU \
789 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV6_PMTU)
790
792NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_IPV6_PMTU);
794#endif /* CONFIG_NET_STATISTICS_IPV6_PMTU */
795
796#if defined(CONFIG_NET_STATISTICS_IPV4_PMTU)
798#define NET_REQUEST_STATS_GET_IPV4_PMTU \
799 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV4_PMTU)
800
802NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_IPV4_PMTU);
804#endif /* CONFIG_NET_STATISTICS_IPV4_PMTU */
805
806#if defined(CONFIG_NET_STATISTICS_ICMP)
808#define NET_REQUEST_STATS_GET_ICMP \
809 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_ICMP)
810
812NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_ICMP);
814#endif /* CONFIG_NET_STATISTICS_ICMP */
815
816#if defined(CONFIG_NET_STATISTICS_UDP)
818#define NET_REQUEST_STATS_GET_UDP \
819 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_UDP)
820
822NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_UDP);
824#endif /* CONFIG_NET_STATISTICS_UDP */
825
826#if defined(CONFIG_NET_STATISTICS_TCP)
828#define NET_REQUEST_STATS_GET_TCP \
829 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_TCP)
830
832NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_TCP);
834#endif /* CONFIG_NET_STATISTICS_TCP */
835
836#if defined(CONFIG_NET_STATISTICS_ETHERNET)
838#define NET_REQUEST_STATS_GET_ETHERNET \
839 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_ETHERNET)
840
842NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_ETHERNET);
844#endif /* CONFIG_NET_STATISTICS_ETHERNET */
845
846#if defined(CONFIG_NET_STATISTICS_PPP)
848#define NET_REQUEST_STATS_GET_PPP \
849 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_PPP)
850
852NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_PPP);
854#endif /* CONFIG_NET_STATISTICS_PPP */
855
856#endif /* CONFIG_NET_STATISTICS_USER_API */
857
858#if defined(CONFIG_NET_STATISTICS_POWER_MANAGEMENT)
860#define NET_REQUEST_STATS_GET_PM \
861 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_PM)
862
864NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_PM);
866#endif /* CONFIG_NET_STATISTICS_POWER_MANAGEMENT */
867
868#if defined(CONFIG_NET_STATISTICS_WIFI)
870#define NET_REQUEST_STATS_GET_WIFI \
871 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_WIFI)
872
874NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_GET_WIFI);
878#define NET_REQUEST_STATS_RESET_WIFI \
879 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_RESET_WIFI)
880
882NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_STATS_RESET_WIFI);
884#endif /* CONFIG_NET_STATISTICS_WIFI */
885
886#define NET_STATS_GET_METRIC_NAME(_name) _name
887#define NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx) net_stats_##dev_id##_##sfx##_collector
888#define NET_STATS_GET_VAR(dev_id, sfx, var) zephyr_net_##var
889#define NET_STATS_GET_INSTANCE(dev_id, sfx, _not_used) STRINGIFY(_##dev_id##_##sfx)
890
891/* The label value is set to be the network interface name. Note that we skip
892 * the first character (_) when setting the label value. This can be changed
893 * if there is a way to token paste the instance name without the prefix character.
894 * Note also that the below macros have some parameters that are not used atm.
895 */
896#define NET_STATS_PROMETHEUS_COUNTER_DEFINE(_desc, _labelval, _not_used, \
897 _collector, _name, _stat_var_ptr) \
898 static PROMETHEUS_COUNTER_DEFINE( \
899 NET_STATS_GET_METRIC_NAME(_name), \
900 _desc, ({ .key = "nic", .value = &_labelval[1] }), \
901 &(_collector), _stat_var_ptr)
902
903#define NET_STATS_PROMETHEUS_GAUGE_DEFINE(_desc, _labelval, _not_used, \
904 _collector, _name, _stat_var_ptr) \
905 static PROMETHEUS_GAUGE_DEFINE( \
906 NET_STATS_GET_METRIC_NAME(_name), \
907 _desc, ({ .key = "nic", .value = &_labelval[1] }), \
908 &(_collector), _stat_var_ptr)
909
910#define NET_STATS_PROMETHEUS_SUMMARY_DEFINE(_desc, _labelval, _not_used, \
911 _collector, _name, _stat_var_ptr) \
912 static PROMETHEUS_SUMMARY_DEFINE( \
913 NET_STATS_GET_METRIC_NAME(_name), \
914 _desc, ({ .key = "nic", .value = &_labelval[1] }), \
915 &(_collector), _stat_var_ptr)
916
917#define NET_STATS_PROMETHEUS_HISTOGRAM_DEFINE(_desc, _labelval, _not_used, \
918 _collector, _name, _stat_var_ptr) \
919 static PROMETHEUS_HISTOGRAM_DEFINE( \
920 NET_STATS_GET_METRIC_NAME(_name), \
921 _desc, ({ .key = "nic", .value = &_labelval[1] }), \
922 &(_collector), _stat_var_ptr)
923
924/* IPv6 layer statistics */
925#if defined(CONFIG_NET_STATISTICS_IPV6)
926#define NET_STATS_PROMETHEUS_IPV6(iface, dev_id, sfx) \
927 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
928 "IPv6 packets sent", \
929 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_sent), \
930 "packet_count", \
931 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
932 NET_STATS_GET_VAR(dev_id, sfx, ipv6_sent), \
933 &(iface)->stats.ipv6.sent); \
934 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
935 "IPv6 packets received", \
936 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_recv), \
937 "packet_count", \
938 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
939 NET_STATS_GET_VAR(dev_id, sfx, ipv6_recv), \
940 &(iface)->stats.ipv6.recv); \
941 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
942 "IPv6 packets dropped", \
943 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_drop), \
944 "packet_count", \
945 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
946 NET_STATS_GET_VAR(dev_id, sfx, ipv6_drop), \
947 &(iface)->stats.ipv6.drop); \
948 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
949 "IPv6 packets forwarded", \
950 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_forward), \
951 "packet_count", \
952 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
953 NET_STATS_GET_VAR(dev_id, sfx, ipv6_forwarded), \
954 &(iface)->stats.ipv6.forwarded)
955#else
956#define NET_STATS_PROMETHEUS_IPV6(iface, dev_id, sfx)
957#endif
958
959/* IPv4 layer statistics */
960#if defined(CONFIG_NET_STATISTICS_IPV4)
961#define NET_STATS_PROMETHEUS_IPV4(iface, dev_id, sfx) \
962 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
963 "IPv4 packets sent", \
964 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_sent), \
965 "packet_count", \
966 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
967 NET_STATS_GET_VAR(dev_id, sfx, ipv4_sent), \
968 &(iface)->stats.ipv4.sent); \
969 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
970 "IPv4 packets received", \
971 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_recv), \
972 "packet_count", \
973 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
974 NET_STATS_GET_VAR(dev_id, sfx, ipv4_recv), \
975 &(iface)->stats.ipv4.recv); \
976 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
977 "IPv4 packets dropped", \
978 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_drop), \
979 "packet_count", \
980 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
981 NET_STATS_GET_VAR(dev_id, sfx, ipv4_drop), \
982 &(iface)->stats.ipv4.drop); \
983 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
984 "IPv4 packets forwarded", \
985 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_forwarded), \
986 "packet_count", \
987 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
988 NET_STATS_GET_VAR(dev_id, sfx, ipv4_forwarded), \
989 &(iface)->stats.ipv4.forwarded)
990#else
991#define NET_STATS_PROMETHEUS_IPV4(iface, dev_id, sfx)
992#endif
993
994/* ICMP layer statistics */
995#if defined(CONFIG_NET_STATISTICS_ICMP)
996#define NET_STATS_PROMETHEUS_ICMP(iface, dev_id, sfx) \
997 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
998 "ICMP packets sent", \
999 NET_STATS_GET_INSTANCE(dev_id, sfx, icmp_sent), \
1000 "packet_count", \
1001 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1002 NET_STATS_GET_VAR(dev_id, sfx, icmp_sent), \
1003 &(iface)->stats.icmp.sent); \
1004 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1005 "ICMP packets received", \
1006 NET_STATS_GET_INSTANCE(dev_id, sfx, icmp_recv), \
1007 "packet_count", \
1008 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1009 NET_STATS_GET_VAR(dev_id, sfx, icmp_recv), \
1010 &(iface)->stats.icmp.recv); \
1011 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1012 "ICMP packets dropped", \
1013 NET_STATS_GET_INSTANCE(dev_id, sfx, icmp_drop), \
1014 "packet_count", \
1015 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1016 NET_STATS_GET_VAR(dev_id, sfx, icmp_drop), \
1017 &(iface)->stats.icmp.drop); \
1018 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1019 "ICMP packets checksum error", \
1020 NET_STATS_GET_INSTANCE(dev_id, sfx, icmp_chkerr), \
1021 "packet_count", \
1022 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1023 NET_STATS_GET_VAR(dev_id, sfx, icmp_chkerr), \
1024 &(iface)->stats.icmp.chkerr); \
1025 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1026 "ICMP packets type error", \
1027 NET_STATS_GET_INSTANCE(dev_id, sfx, icmp_typeerr), \
1028 "packet_count", \
1029 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1030 NET_STATS_GET_VAR(dev_id, sfx, icmp_typeerr), \
1031 &(iface)->stats.icmp.typeerr)
1032#else
1033#define NET_STATS_PROMETHEUS_ICMP(iface, dev_id, sfx)
1034#endif
1035
1036/* UDP layer statistics */
1037#if defined(CONFIG_NET_STATISTICS_UDP)
1038#define NET_STATS_PROMETHEUS_UDP(iface, dev_id, sfx) \
1039 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1040 "UDP packets sent", \
1041 NET_STATS_GET_INSTANCE(dev_id, sfx, udp_sent), \
1042 "packet_count", \
1043 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1044 NET_STATS_GET_VAR(dev_id, sfx, udp_sent), \
1045 &(iface)->stats.udp.sent); \
1046 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1047 "UDP packets received", \
1048 NET_STATS_GET_INSTANCE(dev_id, sfx, udp_recv), \
1049 "packet_count", \
1050 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1051 NET_STATS_GET_VAR(dev_id, sfx, udp_recv), \
1052 &(iface)->stats.udp.recv); \
1053 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1054 "UDP packets dropped", \
1055 NET_STATS_GET_INSTANCE(dev_id, sfx, udp_drop), \
1056 "packet_count", \
1057 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1058 NET_STATS_GET_VAR(dev_id, sfx, udp_drop), \
1059 &(iface)->stats.udp.drop); \
1060 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1061 "UDP packets checksum error", \
1062 NET_STATS_GET_INSTANCE(dev_id, sfx, udp_chkerr), \
1063 "packet_count", \
1064 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1065 NET_STATS_GET_VAR(dev_id, sfx, udp_chkerr), \
1066 &(iface)->stats.udp.chkerr)
1067#else
1068#define NET_STATS_PROMETHEUS_UDP(iface, dev_id, sfx)
1069#endif
1070
1071/* TCP layer statistics */
1072#if defined(CONFIG_NET_STATISTICS_TCP)
1073#define NET_STATS_PROMETHEUS_TCP(iface, dev_id, sfx) \
1074 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1075 "TCP bytes sent", \
1076 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_bytes_sent), \
1077 "byte_count", \
1078 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1079 NET_STATS_GET_VAR(dev_id, sfx, tcp_bytes_sent), \
1080 &(iface)->stats.tcp.bytes.sent); \
1081 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1082 "TCP bytes received", \
1083 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_bytes_recv), \
1084 "byte_count", \
1085 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1086 NET_STATS_GET_VAR(dev_id, sfx, tcp_bytes_recv), \
1087 &(iface)->stats.tcp.bytes.received); \
1088 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1089 "TCP bytes resent", \
1090 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_bytes_resent), \
1091 "byte_count", \
1092 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1093 NET_STATS_GET_VAR(dev_id, sfx, tcp_bytes_resent), \
1094 &(iface)->stats.tcp.resent); \
1095 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1096 "TCP packets sent", \
1097 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_sent), \
1098 "packet_count", \
1099 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1100 NET_STATS_GET_VAR(dev_id, sfx, tcp_sent), \
1101 &(iface)->stats.tcp.sent); \
1102 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1103 "TCP packets received", \
1104 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_recv), \
1105 "packet_count", \
1106 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1107 NET_STATS_GET_VAR(dev_id, sfx, tcp_recv), \
1108 &(iface)->stats.tcp.recv); \
1109 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1110 "TCP packets dropped", \
1111 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_drop), \
1112 "packet_count", \
1113 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1114 NET_STATS_GET_VAR(dev_id, sfx, tcp_drop), \
1115 &(iface)->stats.tcp.drop); \
1116 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1117 "TCP packets checksum error", \
1118 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_chkerr), \
1119 "packet_count", \
1120 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1121 NET_STATS_GET_VAR(dev_id, sfx, tcp_chkerr), \
1122 &(iface)->stats.tcp.chkerr); \
1123 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1124 "TCP packets ack error", \
1125 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_ackerr), \
1126 "packet_count", \
1127 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1128 NET_STATS_GET_VAR(dev_id, sfx, tcp_ackerr), \
1129 &(iface)->stats.tcp.ackerr); \
1130 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1131 "TCP packets reset error", \
1132 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_rsterr), \
1133 "packet_count", \
1134 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1135 NET_STATS_GET_VAR(dev_id, sfx, tcp_rsterr), \
1136 &(iface)->stats.tcp.rsterr); \
1137 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1138 "TCP packets retransmitted", \
1139 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_rexmit), \
1140 "packet_count", \
1141 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1142 NET_STATS_GET_VAR(dev_id, sfx, tcp_rexmit), \
1143 &(iface)->stats.tcp.rexmit); \
1144 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1145 "TCP reset received", \
1146 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_rst_recv), \
1147 "packet_count", \
1148 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1149 NET_STATS_GET_VAR(dev_id, sfx, tcp_rst), \
1150 &(iface)->stats.tcp.rst); \
1151 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1152 "TCP connection drop", \
1153 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_conndrop), \
1154 "packet_count", \
1155 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1156 NET_STATS_GET_VAR(dev_id, sfx, tcp_conndrop), \
1157 &(iface)->stats.tcp.conndrop); \
1158 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1159 "TCP connection reset", \
1160 NET_STATS_GET_INSTANCE(dev_id, sfx, tcp_connrst), \
1161 "packet_count", \
1162 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1163 NET_STATS_GET_VAR(dev_id, sfx, tcp_connrst), \
1164 &(iface)->stats.tcp.connrst)
1165#else
1166#define NET_STATS_PROMETHEUS_TCP(iface, dev_id, sfx)
1167#endif
1168
1169/* IPv6 Neighbor Discovery statistics */
1170#if defined(CONFIG_NET_STATISTICS_IPV6_ND)
1171#define NET_STATS_PROMETHEUS_IPV6_ND(iface, dev_id, sfx) \
1172 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1173 "IPv6 ND packets sent", \
1174 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_nd_sent), \
1175 "packet_count", \
1176 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1177 NET_STATS_GET_VAR(dev_id, sfx, ipv6_nd_sent), \
1178 &(iface)->stats.ipv6_nd.sent); \
1179 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1180 "IPv6 ND packets received", \
1181 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_nd_recv), \
1182 "packet_count", \
1183 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1184 NET_STATS_GET_VAR(dev_id, sfx, ipv6_nd_recv), \
1185 &(iface)->stats.ipv6_nd.recv); \
1186 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1187 "IPv6 ND packets dropped", \
1188 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_nd_drop), \
1189 "packet_count", \
1190 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1191 NET_STATS_GET_VAR(dev_id, sfx, ipv6_nd_drop), \
1192 &(iface)->stats.ipv6_nd.drop)
1193#else
1194#define NET_STATS_PROMETHEUS_IPV6_ND(iface, dev_id, sfx)
1195#endif
1196
1197/* IPv6 Path MTU Discovery statistics */
1198#if defined(CONFIG_NET_STATISTICS_IPV6_PMTU)
1199#define NET_STATS_PROMETHEUS_IPV6_PMTU(iface, dev_id, sfx) \
1200 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1201 "IPv6 PMTU packets sent", \
1202 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_pmtu_sent), \
1203 "packet_count", \
1204 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1205 NET_STATS_GET_VAR(dev_id, sfx, ipv6_pmtu_sent), \
1206 &(iface)->stats.ipv6_pmtu.sent); \
1207 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1208 "IPv6 PMTU packets received", \
1209 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_pmtu_recv), \
1210 "packet_count", \
1211 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1212 NET_STATS_GET_VAR(dev_id, sfx, ipv6_pmtu_recv), \
1213 &(iface)->stats.ipv6_pmtu.recv); \
1214 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1215 "IPv6 PMTU packets dropped", \
1216 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_pmtu_drop), \
1217 "packet_count", \
1218 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1219 NET_STATS_GET_VAR(dev_id, sfx, ipv6_pmtu_drop), \
1220 &(iface)->stats.ipv6_pmtu.drop)
1221#else
1222#define NET_STATS_PROMETHEUS_IPV6_PMTU(iface, dev_id, sfx)
1223#endif
1224
1225/* IPv4 Path MTU Discovery statistics */
1226#if defined(CONFIG_NET_STATISTICS_IPV4_PMTU)
1227#define NET_STATS_PROMETHEUS_IPV4_PMTU(iface, dev_id, sfx) \
1228 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1229 "IPv4 PMTU packets sent", \
1230 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_pmtu_sent), \
1231 "packet_count", \
1232 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1233 NET_STATS_GET_VAR(dev_id, sfx, ipv4_pmtu_sent), \
1234 &(iface)->stats.ipv4_pmtu.sent); \
1235 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1236 "IPv4 PMTU packets received", \
1237 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_pmtu_recv), \
1238 "packet_count", \
1239 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1240 NET_STATS_GET_VAR(dev_id, sfx, ipv4_pmtu_recv), \
1241 &(iface)->stats.ipv4_pmtu.recv); \
1242 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1243 "IPv4 PMTU packets dropped", \
1244 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_pmtu_drop), \
1245 "packet_count", \
1246 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1247 NET_STATS_GET_VAR(dev_id, sfx, ipv4_pmtu_drop), \
1248 &(iface)->stats.ipv4_pmtu.drop)
1249#else
1250#define NET_STATS_PROMETHEUS_IPV4_PMTU(iface, dev_id, sfx)
1251#endif
1252
1253/* IPv6 Multicast Listener Discovery statistics */
1254#if defined(CONFIG_NET_STATISTICS_MLD)
1255#define NET_STATS_PROMETHEUS_MLD(iface, dev_id, sfx) \
1256 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1257 "IPv6 MLD packets sent", \
1258 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_mld_sent), \
1259 "packet_count", \
1260 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1261 NET_STATS_GET_VAR(dev_id, sfx, ipv6_mld_sent), \
1262 &(iface)->stats.ipv6_mld.sent); \
1263 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1264 "IPv6 MLD packets received", \
1265 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_mld_recv), \
1266 "packet_count", \
1267 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1268 NET_STATS_GET_VAR(dev_id, sfx, ipv6_mld_recv), \
1269 &(iface)->stats.ipv6_mld.recv); \
1270 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1271 "IPv6 MLD packets dropped", \
1272 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv6_mld_drop), \
1273 "packet_count", \
1274 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1275 NET_STATS_GET_VAR(dev_id, sfx, ipv6_mld_drop), \
1276 &(iface)->stats.ipv6_mld.drop)
1277#else
1278#define NET_STATS_PROMETHEUS_MLD(iface, dev_id, sfx)
1279#endif
1280
1281/* IPv4 IGMP statistics */
1282#if defined(CONFIG_NET_STATISTICS_IGMP)
1283#define NET_STATS_PROMETHEUS_IGMP(iface, dev_id, sfx) \
1284 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1285 "IPv4 IGMP packets sent", \
1286 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_igmp_sent), \
1287 "packet_count", \
1288 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1289 NET_STATS_GET_VAR(dev_id, sfx, ipv4_igmp_sent), \
1290 &(iface)->stats.ipv4_igmp.sent); \
1291 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1292 "IPv4 IGMP packets received", \
1293 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_igmp_recv), \
1294 "packet_count", \
1295 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1296 NET_STATS_GET_VAR(dev_id, sfx, ipv4_igmp_recv), \
1297 &(iface)->stats.ipv4_igmp.recv); \
1298 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1299 "IPv4 IGMP packets dropped", \
1300 NET_STATS_GET_INSTANCE(dev_id, sfx, ipv4_igmp_drop), \
1301 "packet_count", \
1302 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1303 NET_STATS_GET_VAR(dev_id, sfx, ipv4_igmp_drop), \
1304 &(iface)->stats.ipv4_igmp.drop)
1305#else
1306#define NET_STATS_PROMETHEUS_IGMP(iface, dev_id, sfx)
1307#endif
1308
1309/* DNS statistics */
1310#if defined(CONFIG_NET_STATISTICS_DNS)
1311#define NET_STATS_PROMETHEUS_DNS(iface, dev_id, sfx) \
1312 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1313 "DNS packets sent", \
1314 NET_STATS_GET_INSTANCE(dev_id, sfx, dns_sent), \
1315 "packet_count", \
1316 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1317 NET_STATS_GET_VAR(dev_id, sfx, dns_sent), \
1318 &(iface)->stats.dns.sent); \
1319 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1320 "DNS packets received", \
1321 NET_STATS_GET_INSTANCE(dev_id, sfx, dns_recv), \
1322 "packet_count", \
1323 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1324 NET_STATS_GET_VAR(dev_id, sfx, dns_recv), \
1325 &(iface)->stats.dns.recv); \
1326 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1327 "DNS packets dropped", \
1328 NET_STATS_GET_INSTANCE(dev_id, sfx, dns_drop), \
1329 "packet_count", \
1330 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1331 NET_STATS_GET_VAR(dev_id, sfx, dns_drop), \
1332 &(iface)->stats.dns.drop)
1333#else
1334#define NET_STATS_PROMETHEUS_DNS(iface, dev_id, sfx)
1335#endif
1336
1337/* TX time statistics */
1338#if defined(CONFIG_NET_PKT_TXTIME_STATS)
1339#define NET_STATS_PROMETHEUS_TX_TIME(iface, dev_id, sfx) \
1340 NET_STATS_PROMETHEUS_SUMMARY_DEFINE( \
1341 "TX time in microseconds", \
1342 NET_STATS_GET_INSTANCE(dev_id, sfx, tx_time), \
1343 "time", \
1344 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1345 NET_STATS_GET_VAR(dev_id, sfx, tx_time), \
1346 &(iface)->stats.tx_time)
1347#else
1348#define NET_STATS_PROMETHEUS_TX_TIME(iface, dev_id, sfx)
1349#endif
1350
1351/* RX time statistics */
1352#if defined(CONFIG_NET_PKT_RXTIME_STATS)
1353#define NET_STATS_PROMETHEUS_RX_TIME(iface, dev_id, sfx) \
1354 NET_STATS_PROMETHEUS_SUMMARY_DEFINE( \
1355 "RX time in microseconds", \
1356 NET_STATS_GET_INSTANCE(dev_id, sfx, rx_time), \
1357 "time", \
1358 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1359 NET_STATS_GET_VAR(dev_id, sfx, rx_time), \
1360 &(iface)->stats.rx_time)
1361#else
1362#define NET_STATS_PROMETHEUS_RX_TIME(iface, dev_id, sfx)
1363#endif
1364
1365/* Per network interface statistics via Prometheus */
1366#define NET_STATS_PROMETHEUS(iface, dev_id, sfx) \
1367 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1368 "Processing error", \
1369 NET_STATS_GET_INSTANCE(dev_id, sfx, process_error), \
1370 "error_count", \
1371 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1372 NET_STATS_GET_VAR(dev_id, sfx, processing_error), \
1373 &(iface)->stats.processing_error); \
1374 /* IP layer error statistics */ \
1375 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1376 "IP proto error", \
1377 NET_STATS_GET_INSTANCE(dev_id, sfx, ip_proto_error), \
1378 "error_count", \
1379 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1380 NET_STATS_GET_VAR(dev_id, sfx, ip_errors_protoerr), \
1381 &(iface)->stats.ip_errors.protoerr); \
1382 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1383 "IP version/header len error", \
1384 NET_STATS_GET_INSTANCE(dev_id, sfx, ip_vhl_error), \
1385 "error_count", \
1386 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1387 NET_STATS_GET_VAR(dev_id, sfx, ip_errors_vhlerr), \
1388 &(iface)->stats.ip_errors.vhlerr); \
1389 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1390 "IP header len error (high byte)", \
1391 NET_STATS_GET_INSTANCE(dev_id, sfx, ip_hblen_error), \
1392 "error_count", \
1393 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1394 NET_STATS_GET_VAR(dev_id, sfx, ip_errors_hblenerr), \
1395 &(iface)->stats.ip_errors.hblenerr); \
1396 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1397 "IP header len error (low byte)", \
1398 NET_STATS_GET_INSTANCE(dev_id, sfx, ip_lblen_error), \
1399 "error_count", \
1400 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1401 NET_STATS_GET_VAR(dev_id, sfx, ip_errors_lblenerr), \
1402 &(iface)->stats.ip_errors.lblenerr); \
1403 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1404 "IP fragment error", \
1405 NET_STATS_GET_INSTANCE(dev_id, sfx, ip_frag_error), \
1406 "error_count", \
1407 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1408 NET_STATS_GET_VAR(dev_id, sfx, ip_errors_fragerr), \
1409 &(iface)->stats.ip_errors.fragerr); \
1410 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1411 "IP checksum error", \
1412 NET_STATS_GET_INSTANCE(dev_id, sfx, ip_chk_error), \
1413 "error_count", \
1414 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1415 NET_STATS_GET_VAR(dev_id, sfx, ip_errors_chkerr), \
1416 &(iface)->stats.ip_errors.chkerr); \
1417 /* General network statistics */ \
1418 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1419 "Bytes received", \
1420 NET_STATS_GET_INSTANCE(dev_id, sfx, bytes_recv), \
1421 "byte_count", \
1422 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1423 NET_STATS_GET_VAR(dev_id, sfx, bytes_recv), \
1424 &(iface)->stats.bytes.received); \
1425 NET_STATS_PROMETHEUS_COUNTER_DEFINE( \
1426 "Bytes sent", \
1427 NET_STATS_GET_INSTANCE(dev_id, sfx, bytes_sent), \
1428 "byte_count", \
1429 NET_STATS_GET_COLLECTOR_NAME(dev_id, sfx), \
1430 NET_STATS_GET_VAR(dev_id, sfx, bytes_sent), \
1431 &(iface)->stats.bytes.sent); \
1432 NET_STATS_PROMETHEUS_IPV6(iface, dev_id, sfx); \
1433 NET_STATS_PROMETHEUS_IPV4(iface, dev_id, sfx); \
1434 NET_STATS_PROMETHEUS_ICMP(iface, dev_id, sfx); \
1435 NET_STATS_PROMETHEUS_UDP(iface, dev_id, sfx); \
1436 NET_STATS_PROMETHEUS_TCP(iface, dev_id, sfx); \
1437 NET_STATS_PROMETHEUS_IPV6_ND(iface, dev_id, sfx); \
1438 NET_STATS_PROMETHEUS_IPV6_PMTU(iface, dev_id, sfx); \
1439 NET_STATS_PROMETHEUS_IPV4_PMTU(iface, dev_id, sfx); \
1440 NET_STATS_PROMETHEUS_MLD(iface, dev_id, sfx); \
1441 NET_STATS_PROMETHEUS_IGMP(iface, dev_id, sfx); \
1442 NET_STATS_PROMETHEUS_DNS(iface, dev_id, sfx); \
1443 NET_STATS_PROMETHEUS_TX_TIME(iface, dev_id, sfx); \
1444 NET_STATS_PROMETHEUS_RX_TIME(iface, dev_id, sfx)
1445
1450#ifdef __cplusplus
1451}
1452#endif
1453
1454#endif /* ZEPHYR_INCLUDE_NET_NET_STATS_H_ */
Prometheus collector APIs.
Prometheus gauge APIs.
#define NET_MGMT_DEFINE_REQUEST_HANDLER(_mgmt_request)
Declare a request handler function for the given network event.
Definition net_mgmt.h:111
uint32_t net_stats_t
Network statistics counter.
Definition net_stats.h:45
Prometheus histogram APIs.
Prometheus metric interface.
Prometheus counter APIs.
Network core definitions.
Network Management API public header.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Number of bytes sent and received.
Definition net_stats.h:50
net_stats_t sent
Number of bytes sent.
Definition net_stats.h:52
net_stats_t received
Number of bytes received.
Definition net_stats.h:54
DNS statistics.
Definition net_stats.h:267
net_stats_t drop
Number of dropped DNS packets.
Definition net_stats.h:275
net_stats_t recv
Number of received DNS queries.
Definition net_stats.h:269
net_stats_t sent
Number of sent DNS responses.
Definition net_stats.h:272
Ethernet checksum statistics.
Definition net_stats.h:558
net_stats_t rx_csum_offload_good
Number of good RX checksum offloading.
Definition net_stats.h:560
net_stats_t rx_csum_offload_errors
Number of failed RX checksum offloading.
Definition net_stats.h:563
Ethernet error statistics.
Definition net_stats.h:479
net_stats_t tx_carrier_errors
Number of TX carrier errors.
Definition net_stats.h:517
net_stats_t uncorr_ecc_errors
Number of uncorrected ECC errors.
Definition net_stats.h:532
net_stats_t rx_long_length_errors
Number of RX long length errors.
Definition net_stats.h:499
net_stats_t tx_window_errors
Number of TX window errors.
Definition net_stats.h:526
net_stats_t corr_ecc_errors
Number of corrected ECC errors.
Definition net_stats.h:535
net_stats_t rx_missed_errors
Number of RX missed errors.
Definition net_stats.h:496
net_stats_t rx_crc_errors
Number of RX CRC errors.
Definition net_stats.h:487
net_stats_t rx_short_length_errors
Number of RX short length errors.
Definition net_stats.h:502
net_stats_t rx_align_errors
Number of RX buffer align errors.
Definition net_stats.h:505
net_stats_t rx_dma_failed
Number of RX DMA failed errors.
Definition net_stats.h:508
net_stats_t rx_no_buffer_count
Number of RX net_pkt allocation errors.
Definition net_stats.h:493
net_stats_t tx_fifo_errors
Number of TX FIFO errors.
Definition net_stats.h:520
net_stats_t rx_frame_errors
Number of RX frame errors.
Definition net_stats.h:490
net_stats_t rx_over_errors
Number of RX overrun errors.
Definition net_stats.h:484
net_stats_t tx_dma_failed
Number of TX DMA failed errors.
Definition net_stats.h:529
net_stats_t rx_length_errors
Number of RX length errors.
Definition net_stats.h:481
net_stats_t rx_buf_alloc_failed
Number of RX net_buf allocation errors.
Definition net_stats.h:511
net_stats_t tx_heartbeat_errors
Number of TX heartbeat errors.
Definition net_stats.h:523
net_stats_t tx_aborted_errors
Number of TX aborted errors.
Definition net_stats.h:514
Ethernet flow control statistics.
Definition net_stats.h:541
net_stats_t rx_flow_control_xon
Number of RX XON flow control.
Definition net_stats.h:543
net_stats_t tx_flow_control_xon
Number of TX XON flow control.
Definition net_stats.h:549
net_stats_t rx_flow_control_xoff
Number of RX XOFF flow control.
Definition net_stats.h:546
net_stats_t tx_flow_control_xoff
Number of TX XOFF flow control.
Definition net_stats.h:552
Ethernet hardware timestamp statistics.
Definition net_stats.h:569
net_stats_t tx_hwtstamp_timeouts
Number of RX hardware timestamp timeout.
Definition net_stats.h:574
net_stats_t rx_hwtstamp_cleared
Number of RX hardware timestamp cleared.
Definition net_stats.h:571
net_stats_t tx_hwtstamp_skipped
Number of RX hardware timestamp skipped.
Definition net_stats.h:577
All Ethernet specific statistics.
Definition net_stats.h:593
struct net_stats_pkts broadcast
Total number of broadcast packets received and sent.
Definition net_stats.h:601
struct net_stats_eth_csum csum
Total number of checksum errors in RX and TX.
Definition net_stats.h:616
net_stats_t tx_dropped
Total number of dropped TX packets.
Definition net_stats.h:625
struct net_stats_eth_hw_timestamp hw_timestamp
Total number of hardware timestamp errors in RX and TX.
Definition net_stats.h:619
struct net_stats_pkts multicast
Total number of multicast packets received and sent.
Definition net_stats.h:604
struct net_stats_eth_flow flow_control
Total number of flow control errors in RX and TX.
Definition net_stats.h:613
net_stats_t tx_restart_queue
Total number of TX queue restarts.
Definition net_stats.h:631
net_stats_t collisions
Total number of collisions.
Definition net_stats.h:622
struct net_stats_bytes bytes
Total number of bytes received and sent.
Definition net_stats.h:595
struct net_stats_eth_errors error_details
Total number of errors in RX and TX.
Definition net_stats.h:610
struct net_stats_pkts pkts
Total number of packets received and sent.
Definition net_stats.h:598
struct net_stats_pkts errors
Total number of errors in RX and TX.
Definition net_stats.h:607
net_stats_t tx_timeout_count
Total number of TX timeout errors.
Definition net_stats.h:628
net_stats_t unknown_protocol
Total number of RX unknown protocol packets.
Definition net_stats.h:634
ICMP statistics.
Definition net_stats.h:114
net_stats_t sent
Number of sent ICMP packets.
Definition net_stats.h:119
net_stats_t chkerr
Number of ICMP packets with a bad checksum.
Definition net_stats.h:128
net_stats_t drop
Number of dropped ICMP packets.
Definition net_stats.h:122
net_stats_t typeerr
Number of ICMP packets with a wrong type.
Definition net_stats.h:125
net_stats_t recv
Number of received ICMP packets.
Definition net_stats.h:116
IP layer error statistics.
Definition net_stats.h:87
net_stats_t hblenerr
Number of packets dropped due to wrong IP length, high byte.
Definition net_stats.h:94
net_stats_t vhlerr
Number of packets dropped due to wrong IP version or header length.
Definition net_stats.h:91
net_stats_t chkerr
Number of packets dropped due to IP checksum errors.
Definition net_stats.h:103
net_stats_t protoerr
Number of packets dropped because they were neither ICMP, UDP nor TCP.
Definition net_stats.h:108
net_stats_t lblenerr
Number of packets dropped due to wrong IP length, low byte.
Definition net_stats.h:97
net_stats_t fragerr
Number of packets dropped because they were IP fragments.
Definition net_stats.h:100
IP layer statistics.
Definition net_stats.h:70
net_stats_t forwarded
Number of forwarded packets at the IP layer.
Definition net_stats.h:78
net_stats_t recv
Number of received packets at the IP layer.
Definition net_stats.h:72
net_stats_t sent
Number of sent packets at the IP layer.
Definition net_stats.h:75
net_stats_t drop
Number of dropped packets at the IP layer.
Definition net_stats.h:81
IPv4 IGMP daemon statistics.
Definition net_stats.h:253
net_stats_t drop
Number of dropped IPv4 IGMP packets.
Definition net_stats.h:261
net_stats_t recv
Number of received IPv4 IGMP queries.
Definition net_stats.h:255
net_stats_t sent
Number of sent IPv4 IGMP reports.
Definition net_stats.h:258
IPv4 Path MTU Discovery statistics.
Definition net_stats.h:225
net_stats_t sent
Number of sent IPv4 PMTU packets.
Definition net_stats.h:233
net_stats_t recv
Number of received IPv4 PMTU packets.
Definition net_stats.h:230
net_stats_t drop
Number of dropped IPv4 PMTU packets.
Definition net_stats.h:227
IPv6 multicast listener daemon statistics.
Definition net_stats.h:239
net_stats_t recv
Number of received IPv6 MLD queries.
Definition net_stats.h:241
net_stats_t sent
Number of sent IPv6 MLD reports.
Definition net_stats.h:244
net_stats_t drop
Number of dropped IPv6 MLD packets.
Definition net_stats.h:247
IPv6 neighbor discovery statistics.
Definition net_stats.h:197
net_stats_t sent
Number of sent IPv6 neighbor discovery packets.
Definition net_stats.h:205
net_stats_t recv
Number of received IPv6 neighbor discovery packets.
Definition net_stats.h:202
net_stats_t drop
Number of dropped IPv6 neighbor discovery packets.
Definition net_stats.h:199
IPv6 Path MTU Discovery statistics.
Definition net_stats.h:211
net_stats_t recv
Number of received IPv6 PMTU packets.
Definition net_stats.h:216
net_stats_t drop
Number of dropped IPv6 PMTU packets.
Definition net_stats.h:213
net_stats_t sent
Number of sent IPv6 PMTU packets.
Definition net_stats.h:219
Number of network packets sent and received.
Definition net_stats.h:60
net_stats_t rx
Number of packets received.
Definition net_stats.h:64
net_stats_t tx
Number of packets sent.
Definition net_stats.h:62
Power management statistics.
Definition net_stats.h:363
uint32_t last_suspend_time
How long the last suspend took.
Definition net_stats.h:369
uint32_t start_time
Network interface last suspend start time.
Definition net_stats.h:371
uint64_t overall_suspend_time
Total suspend time.
Definition net_stats.h:365
net_stats_t suspend_count
How many times we were suspended.
Definition net_stats.h:367
All PPP specific statistics.
Definition net_stats.h:645
net_stats_t chkerr
Number of received PPP frames with a bad checksum.
Definition net_stats.h:656
struct net_stats_pkts pkts
Total number of packets received and sent.
Definition net_stats.h:650
struct net_stats_bytes bytes
Total number of bytes received and sent.
Definition net_stats.h:647
net_stats_t drop
Number of received and dropped PPP frames.
Definition net_stats.h:653
Network packet receive times for calculating average RX time.
Definition net_stats.h:292
uint64_t sum
Sum of network packet receive times.
Definition net_stats.h:294
net_stats_t count
Number of network packets received.
Definition net_stats.h:297
All Wi-Fi management statistics.
Definition net_stats.h:662
net_stats_t beacons_miss
Number of missed beacons.
Definition net_stats.h:667
net_stats_t beacons_rx
Number of received beacons.
Definition net_stats.h:664
Traffic class statistics.
Definition net_stats.h:319
net_stats_t dropped
Number of packets dropped for this traffic class.
Definition net_stats.h:332
net_stats_t bytes
Number of bytes sent for this traffic class.
Definition net_stats.h:334
struct net_stats_tx_time tx_time
Helper for calculating average TX time statistics.
Definition net_stats.h:323
net_stats_t pkts
Number of packets sent for this traffic class.
Definition net_stats.h:330
uint8_t priority
Priority of this traffic class.
Definition net_stats.h:336
struct net_stats_tc::@413 recv[NET_TC_RX_STATS_COUNT]
RX statistics for each traffic class.
struct net_stats_tc::@412 sent[NET_TC_TX_STATS_COUNT]
TX statistics for each traffic class.
TCP statistics.
Definition net_stats.h:134
net_stats_t ackerr
Number of received TCP segments with a bad ACK number.
Definition net_stats.h:157
net_stats_t rsterr
Number of received bad TCP RST (reset) segments.
Definition net_stats.h:160
net_stats_t rexmit
Number of retransmitted TCP segments.
Definition net_stats.h:166
net_stats_t chkerr
Number of TCP segments with a bad checksum.
Definition net_stats.h:154
net_stats_t seg_drop
Number of dropped TCP segments.
Definition net_stats.h:151
net_stats_t connrst
Number of connection attempts for closed ports, triggering a RST.
Definition net_stats.h:174
net_stats_t drop
Number of dropped packets at the TCP layer.
Definition net_stats.h:142
net_stats_t rst
Number of received TCP RST (reset) segments.
Definition net_stats.h:163
net_stats_t sent
Number of sent TCP segments.
Definition net_stats.h:148
net_stats_t resent
Amount of retransmitted data.
Definition net_stats.h:139
net_stats_t conndrop
Number of dropped connection attempts because too few connections were available.
Definition net_stats.h:171
net_stats_t recv
Number of received TCP segments.
Definition net_stats.h:145
struct net_stats_bytes bytes
Amount of received and sent TCP application data.
Definition net_stats.h:136
Network packet transfer times for calculating average TX time.
Definition net_stats.h:281
net_stats_t count
Number of network packets transferred.
Definition net_stats.h:286
uint64_t sum
Sum of network packet transfer times.
Definition net_stats.h:283
UDP statistics.
Definition net_stats.h:180
net_stats_t recv
Number of received UDP segments.
Definition net_stats.h:185
net_stats_t drop
Number of dropped UDP segments.
Definition net_stats.h:182
net_stats_t chkerr
Number of UDP segments with a bad checksum.
Definition net_stats.h:191
net_stats_t sent
Number of sent UDP segments.
Definition net_stats.h:188
All Wi-Fi specific statistics.
Definition net_stats.h:673
struct net_stats_pkts broadcast
Total number of broadcast packets received and sent.
Definition net_stats.h:684
struct net_stats_pkts multicast
Total number of multicast packets received and sent.
Definition net_stats.h:687
struct net_stats_sta_mgmt sta_mgmt
Total number of beacon errors.
Definition net_stats.h:675
struct net_stats_bytes bytes
Total number of bytes received and sent.
Definition net_stats.h:678
net_stats_t overrun_count
Total number of dropped packets at received and sent.
Definition net_stats.h:696
struct net_stats_pkts pkts
Total number of packets received and sent.
Definition net_stats.h:681
struct net_stats_pkts errors
Total number of errors in RX and TX.
Definition net_stats.h:690
struct net_stats_pkts unicast
Total number of unicast packets received and sent.
Definition net_stats.h:693
All network statistics in one struct.
Definition net_stats.h:378
net_stats_t processing_error
Count of malformed packets or packets we do not have handler for.
Definition net_stats.h:380
struct net_stats_bytes bytes
This calculates amount of data transferred through all the network interfaces.
Definition net_stats.h:386
struct net_stats_ip_errors ip_errors
IP layer errors.
Definition net_stats.h:389
Prometheus summary APIs.