14#ifndef ZEPHYR_INCLUDE_NET_NET_STATS_H_
15#define ZEPHYR_INCLUDE_NET_NET_STATS_H_
238#if NET_TC_TX_COUNT == 0
239#define NET_TC_TX_STATS_COUNT 1
241#define NET_TC_TX_STATS_COUNT NET_TC_TX_COUNT
244#if NET_TC_RX_COUNT == 0
245#define NET_TC_RX_STATS_COUNT 1
247#define NET_TC_RX_STATS_COUNT NET_TC_RX_COUNT
256#if defined(CONFIG_NET_PKT_TXTIME_STATS_DETAIL)
258 tx_time_detail[NET_PKT_DETAIL_STATS_COUNT];
267#if defined(CONFIG_NET_PKT_RXTIME_STATS_DETAIL)
269 rx_time_detail[NET_PKT_DETAIL_STATS_COUNT];
305#if defined(CONFIG_NET_STATISTICS_IPV6)
310#if defined(CONFIG_NET_STATISTICS_IPV4)
315#if defined(CONFIG_NET_STATISTICS_ICMP)
320#if defined(CONFIG_NET_STATISTICS_TCP)
325#if defined(CONFIG_NET_STATISTICS_UDP)
330#if defined(CONFIG_NET_STATISTICS_IPV6_ND)
335#if defined(CONFIG_NET_STATISTICS_MLD)
340#if defined(CONFIG_NET_STATISTICS_IGMP)
350#if defined(CONFIG_NET_PKT_TXTIME_STATS)
355#if defined(CONFIG_NET_PKT_RXTIME_STATS)
360#if defined(CONFIG_NET_PKT_TXTIME_STATS_DETAIL)
364#if defined(CONFIG_NET_PKT_RXTIME_STATS_DETAIL)
369#if defined(CONFIG_NET_STATISTICS_POWER_MANAGEMENT)
428#ifdef CONFIG_NET_STATISTICS_ETHERNET_VENDOR
432struct net_stats_eth_vendor {
433 const char *
const key;
456#ifdef CONFIG_NET_STATISTICS_ETHERNET_VENDOR
458 struct net_stats_eth_vendor *vendor;
499#if defined(CONFIG_NET_STATISTICS_USER_API)
502#define _NET_STATS_LAYER NET_MGMT_LAYER_L3
503#define _NET_STATS_CODE 0x101
504#define _NET_STATS_BASE (NET_MGMT_LAYER(_NET_STATS_LAYER) | \
505 NET_MGMT_LAYER_CODE(_NET_STATS_CODE))
507enum net_request_stats_cmd {
508 NET_REQUEST_STATS_CMD_GET_ALL = 1,
509 NET_REQUEST_STATS_CMD_GET_PROCESSING_ERROR,
510 NET_REQUEST_STATS_CMD_GET_BYTES,
511 NET_REQUEST_STATS_CMD_GET_IP_ERRORS,
512 NET_REQUEST_STATS_CMD_GET_IPV4,
513 NET_REQUEST_STATS_CMD_GET_IPV6,
514 NET_REQUEST_STATS_CMD_GET_IPV6_ND,
515 NET_REQUEST_STATS_CMD_GET_ICMP,
516 NET_REQUEST_STATS_CMD_GET_UDP,
517 NET_REQUEST_STATS_CMD_GET_TCP,
518 NET_REQUEST_STATS_CMD_GET_ETHERNET,
519 NET_REQUEST_STATS_CMD_GET_PPP,
520 NET_REQUEST_STATS_CMD_GET_PM,
521 NET_REQUEST_STATS_CMD_GET_WIFI,
524#define NET_REQUEST_STATS_GET_ALL \
525 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_ALL)
529#define NET_REQUEST_STATS_GET_PROCESSING_ERROR \
530 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_PROCESSING_ERROR)
534#define NET_REQUEST_STATS_GET_BYTES \
535 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_BYTES)
539#define NET_REQUEST_STATS_GET_IP_ERRORS \
540 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IP_ERRORS)
544#if defined(CONFIG_NET_STATISTICS_IPV4)
545#define NET_REQUEST_STATS_GET_IPV4 \
546 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV4)
551#if defined(CONFIG_NET_STATISTICS_IPV6)
552#define NET_REQUEST_STATS_GET_IPV6 \
553 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV6)
558#if defined(CONFIG_NET_STATISTICS_IPV6_ND)
559#define NET_REQUEST_STATS_GET_IPV6_ND \
560 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_IPV6_ND)
565#if defined(CONFIG_NET_STATISTICS_ICMP)
566#define NET_REQUEST_STATS_GET_ICMP \
567 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_ICMP)
572#if defined(CONFIG_NET_STATISTICS_UDP)
573#define NET_REQUEST_STATS_GET_UDP \
574 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_UDP)
579#if defined(CONFIG_NET_STATISTICS_TCP)
580#define NET_REQUEST_STATS_GET_TCP \
581 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_TCP)
586#if defined(CONFIG_NET_STATISTICS_ETHERNET)
587#define NET_REQUEST_STATS_GET_ETHERNET \
588 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_ETHERNET)
593#if defined(CONFIG_NET_STATISTICS_PPP)
594#define NET_REQUEST_STATS_GET_PPP \
595 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_PPP)
602#if defined(CONFIG_NET_STATISTICS_POWER_MANAGEMENT)
603#define NET_REQUEST_STATS_GET_PM \
604 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_PM)
609#if defined(CONFIG_NET_STATISTICS_WIFI)
610#define NET_REQUEST_STATS_GET_WIFI \
611 (_NET_STATS_BASE | NET_REQUEST_STATS_CMD_GET_WIFI)
#define NET_MGMT_DEFINE_REQUEST_HANDLER(_mgmt_request)
Definition: net_mgmt.h:96
#define NET_TC_RX_STATS_COUNT
Definition: net_stats.h:245
uint32_t net_stats_t
Network statistics counter.
Definition: net_stats.h:36
#define NET_TC_TX_STATS_COUNT
Definition: net_stats.h:239
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:41
net_stats_t sent
Number of bytes sent.
Definition: net_stats.h:43
net_stats_t received
Number of bytes received.
Definition: net_stats.h:45
Ethernet checksum statistics.
Definition: net_stats.h:414
net_stats_t rx_csum_offload_good
Definition: net_stats.h:415
net_stats_t rx_csum_offload_errors
Definition: net_stats.h:416
Ethernet error statistics.
Definition: net_stats.h:377
net_stats_t tx_carrier_errors
Definition: net_stats.h:391
net_stats_t uncorr_ecc_errors
Definition: net_stats.h:397
net_stats_t rx_long_length_errors
Definition: net_stats.h:384
net_stats_t tx_window_errors
Definition: net_stats.h:394
net_stats_t corr_ecc_errors
Definition: net_stats.h:398
net_stats_t rx_missed_errors
Definition: net_stats.h:383
net_stats_t rx_crc_errors
Definition: net_stats.h:380
net_stats_t rx_short_length_errors
Definition: net_stats.h:385
net_stats_t rx_align_errors
Definition: net_stats.h:386
net_stats_t rx_dma_failed
Definition: net_stats.h:387
net_stats_t rx_no_buffer_count
Definition: net_stats.h:382
net_stats_t tx_fifo_errors
Definition: net_stats.h:392
net_stats_t rx_frame_errors
Definition: net_stats.h:381
net_stats_t rx_over_errors
Definition: net_stats.h:379
net_stats_t tx_dma_failed
Definition: net_stats.h:395
net_stats_t rx_length_errors
Definition: net_stats.h:378
net_stats_t rx_buf_alloc_failed
Definition: net_stats.h:388
net_stats_t tx_heartbeat_errors
Definition: net_stats.h:393
net_stats_t tx_aborted_errors
Definition: net_stats.h:390
Ethernet flow control statistics.
Definition: net_stats.h:404
net_stats_t rx_flow_control_xon
Definition: net_stats.h:405
net_stats_t tx_flow_control_xon
Definition: net_stats.h:407
net_stats_t rx_flow_control_xoff
Definition: net_stats.h:406
net_stats_t tx_flow_control_xoff
Definition: net_stats.h:408
Ethernet hardware timestamp statistics.
Definition: net_stats.h:422
net_stats_t tx_hwtstamp_timeouts
Definition: net_stats.h:424
net_stats_t rx_hwtstamp_cleared
Definition: net_stats.h:423
net_stats_t tx_hwtstamp_skipped
Definition: net_stats.h:425
All Ethernet specific statistics.
Definition: net_stats.h:441
struct net_stats_pkts broadcast
Definition: net_stats.h:444
struct net_stats_eth_csum csum
Definition: net_stats.h:449
net_stats_t tx_dropped
Definition: net_stats.h:452
struct net_stats_eth_hw_timestamp hw_timestamp
Definition: net_stats.h:450
struct net_stats_pkts multicast
Definition: net_stats.h:445
struct net_stats_eth_flow flow_control
Definition: net_stats.h:448
net_stats_t tx_restart_queue
Definition: net_stats.h:454
net_stats_t collisions
Definition: net_stats.h:451
struct net_stats_bytes bytes
Definition: net_stats.h:442
struct net_stats_eth_errors error_details
Definition: net_stats.h:447
struct net_stats_pkts pkts
Definition: net_stats.h:443
struct net_stats_pkts errors
Definition: net_stats.h:446
net_stats_t tx_timeout_count
Definition: net_stats.h:453
net_stats_t unknown_protocol
Definition: net_stats.h:455
ICMP statistics.
Definition: net_stats.h:105
net_stats_t sent
Number of sent ICMP packets.
Definition: net_stats.h:110
net_stats_t chkerr
Number of ICMP packets with a bad checksum.
Definition: net_stats.h:119
net_stats_t drop
Number of dropped ICMP packets.
Definition: net_stats.h:113
net_stats_t typeerr
Number of ICMP packets with a wrong type.
Definition: net_stats.h:116
net_stats_t recv
Number of received ICMP packets.
Definition: net_stats.h:107
IP layer error statistics.
Definition: net_stats.h:78
net_stats_t hblenerr
Number of packets dropped due to wrong IP length, high byte.
Definition: net_stats.h:85
net_stats_t vhlerr
Number of packets dropped due to wrong IP version or header length.
Definition: net_stats.h:82
net_stats_t chkerr
Number of packets dropped due to IP checksum errors.
Definition: net_stats.h:94
net_stats_t protoerr
Number of packets dropped because they were neither ICMP, UDP nor TCP.
Definition: net_stats.h:99
net_stats_t lblenerr
Number of packets dropped due to wrong IP length, low byte.
Definition: net_stats.h:88
net_stats_t fragerr
Number of packets dropped because they were IP fragments.
Definition: net_stats.h:91
IP layer statistics.
Definition: net_stats.h:61
net_stats_t forwarded
Number of forwarded packets at the IP layer.
Definition: net_stats.h:69
net_stats_t recv
Number of received packets at the IP layer.
Definition: net_stats.h:63
net_stats_t sent
Number of sent packets at the IP layer.
Definition: net_stats.h:66
net_stats_t drop
Number of dropped packets at the IP layer.
Definition: net_stats.h:72
IPv4 IGMP daemon statistics.
Definition: net_stats.h:211
net_stats_t drop
Number of dropped IPv4 IGMP packets.
Definition: net_stats.h:219
net_stats_t recv
Number of received IPv4 IGMP queries.
Definition: net_stats.h:213
net_stats_t sent
Number of sent IPv4 IGMP reports.
Definition: net_stats.h:216
IPv6 multicast listener daemon statistics.
Definition: net_stats.h:197
net_stats_t recv
Number of received IPv6 MLD queries.
Definition: net_stats.h:199
net_stats_t sent
Number of sent IPv6 MLD reports.
Definition: net_stats.h:202
net_stats_t drop
Number of dropped IPv6 MLD packets.
Definition: net_stats.h:205
IPv6 neighbor discovery statistics.
Definition: net_stats.h:188
net_stats_t sent
Definition: net_stats.h:191
net_stats_t recv
Definition: net_stats.h:190
net_stats_t drop
Definition: net_stats.h:189
Number of network packets sent and received.
Definition: net_stats.h:51
net_stats_t rx
Number of packets received.
Definition: net_stats.h:55
net_stats_t tx
Number of packets sent.
Definition: net_stats.h:53
Power management statistics.
Definition: net_stats.h:281
uint32_t last_suspend_time
Definition: net_stats.h:284
uint32_t start_time
Definition: net_stats.h:285
uint64_t overall_suspend_time
Definition: net_stats.h:282
net_stats_t suspend_count
Definition: net_stats.h:283
All PPP specific statistics.
Definition: net_stats.h:465
net_stats_t chkerr
Number of received PPP frames with a bad checksum.
Definition: net_stats.h:473
struct net_stats_pkts pkts
Definition: net_stats.h:467
struct net_stats_bytes bytes
Definition: net_stats.h:466
net_stats_t drop
Number of received and dropped PPP frames.
Definition: net_stats.h:470
Network packet receive times for calculating average RX time.
Definition: net_stats.h:233
uint64_t sum
Definition: net_stats.h:234
net_stats_t count
Definition: net_stats.h:235
All Wi-Fi management statistics.
Definition: net_stats.h:479
net_stats_t beacons_miss
Number of missed beacons.
Definition: net_stats.h:484
net_stats_t beacons_rx
Number of received beacons.
Definition: net_stats.h:481
Traffic class statistics.
Definition: net_stats.h:253
net_stats_t bytes
Definition: net_stats.h:261
struct net_stats_tx_time tx_time
Definition: net_stats.h:255
struct net_stats_tc::@335 sent[1]
struct net_stats_tc::@336 recv[1]
net_stats_t pkts
Definition: net_stats.h:260
uint8_t priority
Definition: net_stats.h:262
TCP statistics.
Definition: net_stats.h:125
net_stats_t ackerr
Number of received TCP segments with a bad ACK number.
Definition: net_stats.h:148
net_stats_t rsterr
Number of received bad TCP RST (reset) segments.
Definition: net_stats.h:151
net_stats_t rexmit
Number of retransmitted TCP segments.
Definition: net_stats.h:157
net_stats_t chkerr
Number of TCP segments with a bad checksum.
Definition: net_stats.h:145
net_stats_t seg_drop
Number of dropped TCP segments.
Definition: net_stats.h:142
net_stats_t connrst
Number of connection attempts for closed ports, triggering a RST.
Definition: net_stats.h:165
net_stats_t drop
Number of dropped packets at the TCP layer.
Definition: net_stats.h:133
net_stats_t rst
Number of received TCP RST (reset) segments.
Definition: net_stats.h:154
net_stats_t sent
Number of sent TCP segments.
Definition: net_stats.h:139
net_stats_t resent
Amount of retransmitted data.
Definition: net_stats.h:130
net_stats_t conndrop
Number of dropped connection attempts because too few connections were available.
Definition: net_stats.h:162
net_stats_t recv
Number of received TCP segments.
Definition: net_stats.h:136
struct net_stats_bytes bytes
Amount of received and sent TCP application data.
Definition: net_stats.h:127
Network packet transfer times for calculating average TX time.
Definition: net_stats.h:225
net_stats_t count
Definition: net_stats.h:227
uint64_t sum
Definition: net_stats.h:226
UDP statistics.
Definition: net_stats.h:171
net_stats_t recv
Number of received UDP segments.
Definition: net_stats.h:176
net_stats_t drop
Number of dropped UDP segments.
Definition: net_stats.h:173
net_stats_t chkerr
Number of UDP segments with a bad checksum.
Definition: net_stats.h:182
net_stats_t sent
Number of sent UDP segments.
Definition: net_stats.h:179
All Wi-Fi specific statistics.
Definition: net_stats.h:490
struct net_stats_pkts broadcast
Definition: net_stats.h:494
struct net_stats_pkts multicast
Definition: net_stats.h:495
struct net_stats_sta_mgmt sta_mgmt
Definition: net_stats.h:491
struct net_stats_bytes bytes
Definition: net_stats.h:492
struct net_stats_pkts pkts
Definition: net_stats.h:493
struct net_stats_pkts errors
Definition: net_stats.h:496
All network statistics in one struct.
Definition: net_stats.h:292
net_stats_t processing_error
Count of malformed packets or packets we do not have handler for.
Definition: net_stats.h:294
struct net_stats_bytes bytes
This calculates amount of data transferred through all the network interfaces.
Definition: net_stats.h:300
struct net_stats_ip_errors ip_errors
IP layer errors.
Definition: net_stats.h:303