This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

Network Statistics

Overview

Network statistics are collected if :kconfig:`CONFIG_NET_STATISTICS` is set. Individual component statistics for IPv4 or IPv6 can be turned off if those statistics are not needed. See various options in subsys/net/ip/Kconfig.stats file for details.

By default, the system collects network statistics per network interface. This can be controlled by :kconfig:`CONFIG_NET_STATISTICS_PER_INTERFACE` option.

The :kconfig:`CONFIG_NET_STATISTICS_USER_API` option can be set if the application wants to collect statistics for further processing. The network management interface API is used for that. See Network Management for details.

The :kconfig:`CONFIG_NET_STATISTICS_ETHERNET` option can be set to collect generic Ethernet statistics. If the :kconfig:`CONFIG_NET_STATISTICS_ETHERNET_VENDOR` option is set, then Ethernet device driver can collect Ethernet device specific statistics. These statistics can then be transferred to application for processing.

If the :kconfig:`CONFIG_NET_SHELL` option is set, then network shell can show statistics information with net stats command.

API Reference

group net_stats

Network statistics library.

Defines

NET_TC_TX_STATS_COUNT
NET_TC_RX_STATS_COUNT

Typedefs

typedef uint32_t net_stats_t

Network statistics counter.

struct net_stats_bytes
#include <net_stats.h>

Number of bytes sent and received.

Public Members

net_stats_t sent

Number of bytes sent

net_stats_t received

Number of bytes received

struct net_stats_pkts
#include <net_stats.h>

Number of network packets sent and received.

Public Members

net_stats_t tx

Number of packets sent

net_stats_t rx

Number of packets received

struct net_stats_ip
#include <net_stats.h>

IP layer statistics.

Public Members

net_stats_t recv

Number of received packets at the IP layer.

net_stats_t sent

Number of sent packets at the IP layer.

net_stats_t forwarded

Number of forwarded packets at the IP layer.

net_stats_t drop

Number of dropped packets at the IP layer.

struct net_stats_ip_errors
#include <net_stats.h>

IP layer error statistics.

Public Members

net_stats_t vhlerr

Number of packets dropped due to wrong IP version or header length.

net_stats_t hblenerr

Number of packets dropped due to wrong IP length, high byte.

net_stats_t lblenerr

Number of packets dropped due to wrong IP length, low byte.

net_stats_t fragerr

Number of packets dropped because they were IP fragments.

net_stats_t chkerr

Number of packets dropped due to IP checksum errors.

net_stats_t protoerr

Number of packets dropped because they were neither ICMP, UDP nor TCP.

struct net_stats_icmp
#include <net_stats.h>

ICMP statistics.

Public Members

net_stats_t recv

Number of received ICMP packets.

net_stats_t sent

Number of sent ICMP packets.

net_stats_t drop

Number of dropped ICMP packets.

net_stats_t typeerr

Number of ICMP packets with a wrong type.

net_stats_t chkerr

Number of ICMP packets with a bad checksum.

struct net_stats_tcp
#include <net_stats.h>

TCP statistics.

Public Members

struct net_stats_bytes bytes

Amount of received and sent TCP application data.

net_stats_t resent

Amount of retransmitted data.

net_stats_t drop

Number of dropped packets at the TCP layer.

net_stats_t recv

Number of received TCP segments.

net_stats_t sent

Number of sent TCP segments.

net_stats_t seg_drop

Number of dropped TCP segments.

net_stats_t chkerr

Number of TCP segments with a bad checksum.

net_stats_t ackerr

Number of received TCP segments with a bad ACK number.

net_stats_t rsterr

Number of received bad TCP RST (reset) segments.

net_stats_t rst

Number of received TCP RST (reset) segments.

net_stats_t rexmit

Number of retransmitted TCP segments.

net_stats_t conndrop

Number of dropped connection attempts because too few connections were available.

net_stats_t connrst

Number of connection attempts for closed ports, triggering a RST.

struct net_stats_udp
#include <net_stats.h>

UDP statistics.

Public Members

net_stats_t drop

Number of dropped UDP segments.

net_stats_t recv

Number of received UDP segments.

net_stats_t sent

Number of sent UDP segments.

net_stats_t chkerr

Number of UDP segments with a bad checksum.

struct net_stats_ipv6_nd
#include <net_stats.h>

IPv6 neighbor discovery statistics.

struct net_stats_ipv6_mld
#include <net_stats.h>

IPv6 multicast listener daemon statistics.

Public Members

net_stats_t recv

Number of received IPv6 MLD queries

net_stats_t sent

Number of sent IPv6 MLD reports

net_stats_t drop

Number of dropped IPv6 MLD packets

struct net_stats_ipv4_igmp
#include <net_stats.h>

IPv4 IGMP daemon statistics.

Public Members

net_stats_t recv

Number of received IPv4 IGMP queries

net_stats_t sent

Number of sent IPv4 IGMP reports

net_stats_t drop

Number of dropped IPv4 IGMP packets

struct net_stats_tx_time
#include <net_stats.h>

Network packet transfer times for calculating average TX time.

struct net_stats_rx_time
#include <net_stats.h>

Network packet receive times for calculating average RX time.

struct net_stats_tc
#include <net_stats.h>

Traffic class statistics.

struct net_stats_pm
#include <net_stats.h>

Power management statistics.

struct net_stats
#include <net_stats.h>

All network statistics in one struct.

Public Members

net_stats_t processing_error

Count of malformed packets or packets we do not have handler for

struct net_stats_bytes bytes

This calculates amount of data transferred through all the network interfaces.

struct net_stats_ip_errors ip_errors

IP layer errors

struct net_stats_eth_errors
#include <net_stats.h>

Ethernet error statistics.

struct net_stats_eth_flow
#include <net_stats.h>

Ethernet flow control statistics.

struct net_stats_eth_csum
#include <net_stats.h>

Ethernet checksum statistics.

struct net_stats_eth_hw_timestamp
#include <net_stats.h>

Ethernet hardware timestamp statistics.

struct net_stats_eth
#include <net_stats.h>

All Ethernet specific statistics.

struct net_stats_ppp
#include <net_stats.h>

All PPP specific statistics.

Public Members

net_stats_t drop

Number of received and dropped PPP frames.

net_stats_t chkerr

Number of received PPP frames with a bad checksum.