mbed-os/features/nanostack/FEATURE_NANOSTACK/sal-stack-nanostack/docs/15_API_debug.md

3.8 KiB

Network debug statistics API

This chapter describes the debug statistics interface API.

API Header

Using the network debug statistics API, it is possible to collect statistics from the stack in real-time for debugging purposes. You can use this API by including the following header to your application:

#include nwk_stats_api.h

An overview of the function definitions and the Network statistics structure (nwk_stats_t) itself are presented further in this document.

##Initializing protocol stats collection

To initialize collection of network statistics in the network (NWK) statistics structure:

void protocol_stats_init
(
	void
)

Start stats collection

To start collecting network statistics in the Network (NWK) statistics structure:

void protocol_stats_start
(
	nwk_stats_t	*stats_ptr
)
Parameter Description
stats_ptr A pointer to the statistics structure on application.

Stop stats collection

To stop collecting network statistics in NWK statistics structure:

void protocol_stats_stop
(
	void
)

Reset stats

To reset network statistics to clean slate state, that is, all the statistics counters are set to zero:

void protocol_stats_reset
(
	void
)

Types of collectable stats

Various types of network stats can be collected using the structure typedef struct nwk_stats_t . The following statistics can be collected:

Member Description
mac_tx_buffer_overflow Provides a count MAC TX queue overflow.
mac_rx_count Number of received MAC packets.
mac_tx_count Number of transmitted MAC packets.
mac_rx_drop Number of dropped MAC packets.

MAC payload flow

Member Description
mac_tx_bytes Number of bytes transmitted.
mac_rx_bytes Number of bytes received.
mac_tx_failed Number of times a transmission failed.
mac_tx_retry Number of times retries were made.
mac_tx_cca_cnt Number of times clear channel assessment was made.
mac_tx_failed_cca Number of failed CCA attempts.
mac_security_drop Number of security packets dropped.
Member Description
ip_rx_count Number of IP packets received.
ip_tx_count Number of IP packets transmitted.
ip_rx_drop Number of IP packets dropped.
ip_cksum_error IP checksum error count.

IP payload flow

Member Description
ip_tx_bytes Number of bytes transmitted as IP packets.
ip_rx_bytes Number of bytes received as IP packets.
ip_routed_up Number of bytes routed as IP packets.
ip_no_route Number of times an IP route was not found.

Fragmentation statistics

Member Description
frag_rx_errors Fragmentation errors in reception.
frag_tx_errors Fragmentation errors in transmission.

RPL statistics

Member Description
rpl_route_routecost_better_change Number of times an RPL parent was changed.
ip_routeloop_detect Number of times an RPL IP loop creation was detected.
rpl_memory_overflow Total of allocations failed due RPL memory overflow.
rpl_parent_tx_fail Number of times transmission to a DODAG parent failed.
rpl_unknown_instance Number of times a packet was received with an unknown RPL Instance ID.
rpl_local_repair Number of times local repair was initiated.
rpl_global_repair Number of times global repair was initiated.
rpl_malformed_message Number of malformed RPL messages received.
rpl_time_no_next_hop Number of seconds spent with no RPL next hop.
rpl_total_memory Total memory currently allocated by RPL.

Various buffers

Member Description
buf_alloc A count of buffer allocation.
buf_headroom_realloc A buffer headroom allocation count.
buf_headroom_shuffle A buffer headroom shuffling count.
buf_headroom_fail A buffer headroom failure count.