Loading...
Searching...
No Matches
netstats.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 INRIA
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
21#include <stdint.h>
22#include "cib.h"
23#include "net/l2util.h"
24#include "mutex.h"
25
26#ifndef NET_NETSTATS_H
27#define NET_NETSTATS_H
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
36#ifndef NETSTATS_NB_SIZE
37#define NETSTATS_NB_SIZE (8)
38#endif
39
43#ifndef NETSTATS_NB_QUEUE_SIZE
44#define NETSTATS_NB_QUEUE_SIZE (4)
45#endif
46
51#define NETSTATS_LAYER2 (0x01)
52#define NETSTATS_IPV6 (0x02)
53#define NETSTATS_RPL (0x03)
54#define NETSTATS_ALL (0xFF)
60typedef struct {
62 uint32_t tx_mcast_count;
64 uint32_t tx_success;
67 uint32_t tx_failed;
68 uint32_t tx_bytes;
69 uint32_t rx_count;
70 uint32_t rx_bytes;
72
76typedef struct {
77#if IS_USED(MODULE_NETSTATS_NEIGHBOR_TX_TIME) || DOXYGEN
78 uint32_t time_tx_avg;
79#endif
80#if IS_USED(MODULE_NETSTATS_NEIGHBOR_ETX) || DOXYGEN
81 uint16_t etx;
82#endif
83#if IS_USED(MODULE_NETSTATS_NEIGHBOR_COUNT) || DOXYGEN
84 uint16_t tx_count;
85 uint16_t tx_fail;
86 uint16_t rx_count;
87#endif
88 uint16_t last_updated;
89 uint16_t last_halved;
90 uint8_t l2_addr[L2UTIL_ADDR_MAX_LEN];
91 uint8_t l2_addr_len;
92 uint8_t freshness;
93#if IS_USED(MODULE_NETSTATS_NEIGHBOR_RSSI) || DOXYGEN
94 uint8_t rssi;
95#endif
96#if IS_USED(MODULE_NETSTATS_NEIGHBOR_LQI) || DOXYGEN
97 uint8_t lqi;
98#endif
100
104typedef struct {
109
114
118 uint32_t stats_queue_time_tx[NETSTATS_NB_QUEUE_SIZE];
119
124
130
131#ifdef __cplusplus
132}
133#endif
134
135#endif /* NET_NETSTATS_H */
Circular integer buffer interface.
#define L2UTIL_ADDR_MAX_LEN
maximum expected length for addresses
Definition l2util.h:37
#define NETSTATS_NB_SIZE
The max number of entries in the peer stats table.
Definition netstats.h:37
#define NETSTATS_NB_QUEUE_SIZE
The CIB size for tx correlation.
Definition netstats.h:44
Link-layer helper function definitions.
Mutex for thread synchronization.
circular integer buffer structure
Definition cib.h:34
Mutex structure.
Definition mutex.h:146
Stats per peer struct.
Definition netstats.h:76
uint8_t rssi
Average RSSI of received frames in abs([dBm])
Definition netstats.h:94
uint16_t last_halved
seconds timestamp of last halving
Definition netstats.h:89
uint16_t tx_fail
Number of sent frames that did not get ACKed.
Definition netstats.h:85
uint16_t tx_count
Number of sent frames to this peer.
Definition netstats.h:84
uint16_t etx
ETX of this peer.
Definition netstats.h:81
uint8_t l2_addr_len
Length of netstats_nb::l2_addr.
Definition netstats.h:91
uint32_t time_tx_avg
Average frame TX time in µs.
Definition netstats.h:78
uint16_t last_updated
seconds timestamp of last update
Definition netstats.h:88
uint8_t freshness
Freshness counter.
Definition netstats.h:92
uint8_t lqi
Average LQI of received frames.
Definition netstats.h:97
uint16_t rx_count
Number of received frames.
Definition netstats.h:86
L2 Peer Info struct.
Definition netstats.h:104
mutex_t lock
Neighbor Table access lock.
Definition netstats.h:128
cib_t stats_idx
CIB for the tx correlation.
Definition netstats.h:108
Global statistics struct.
Definition netstats.h:60
uint32_t tx_bytes
sent bytes
Definition netstats.h:68
uint32_t rx_bytes
received bytes
Definition netstats.h:70
uint32_t tx_mcast_count
packets sent via multicast (including broadcast)
Definition netstats.h:62
uint32_t tx_failed
failed sending operations
Definition netstats.h:67
uint32_t tx_unicast_count
packets sent via unicast
Definition netstats.h:61
uint32_t rx_count
received (data) packets
Definition netstats.h:69
uint32_t tx_success
successful sending operations (either acknowledged or unconfirmed sending operation,...
Definition netstats.h:64