blob: 65c6e0c9036a3c6c7b57cdced4e051774ba9af26 [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.lowpan.device;
protocol Counters {
/// Returns a snapshot of the counters without resetting the counters.
Get() -> (AllCounters counters);
/// Resets all of the counters to zero returning the counter values
/// immediately prior.
Reset() -> (AllCounters counters);
};
/// Table describing all counters.
///
/// May be empty if no counters are supported.
table AllCounters {
/// MAC Counters for TX
1: MacCounters mac_tx;
/// MAC Counters for RX
2: MacCounters mac_rx;
};
/// Counters associated with the MAC layer.
///
/// Some counters are only valid for RX or TX.
table MacCounters {
/// The total number of frames
1: uint32 total;
/// The total number of unicast frames
2: uint32 unicast;
/// The total number of broadcast frames
3: uint32 broadcast;
/// The number of frames with ack request
4: uint32 ack_requested;
/// The number of frames that were acked
5: uint32 acked;
/// The number of frames without ack request
6: uint32 no_ack_requested;
/// The number of data frames
7: uint32 data;
/// The number of data poll frames
8: uint32 data_poll;
/// The number of beacon frames
9: uint32 beacon;
/// The number of beacon request frames
10: uint32 beacon_request;
/// The number of other types of frames
11: uint32 other;
/// The number of frames filtered by address filter (allowlist
/// or denylist).
12: uint32 address_filtered;
/// The number of retransmission attempts.
/// TX only.
13: uint32 retries;
/// The number of expired retransmission retries for direct message.
/// TX only.
14: uint32 direct_max_retry_expiry;
/// The number of expired retransmission retries for indirect message
/// TX only.
15: uint32 indirect_max_retry_expiry;
/// The number of received frames filtered by destination check.
/// RX only.
16: uint32 dest_addr_filtered;
/// The number of received duplicated frames.
/// RX only.
17: uint32 duplicated;
/// The number of received frames with no or malformed content.
/// RX only.
18: uint32 err_no_frame;
/// The number of received frames from unknown neighbor.
/// RX only.
19: uint32 err_unknown_neighbor;
/// The number of received frames whose source address is invalid.
/// RX only.
20: uint32 err_invalid_src_addr;
/// The number of received frames with security error.
/// RX only.
21: uint32 err_sec;
/// The number of received frames with FCS error.
/// RX only.
22: uint32 err_fcs;
/// The number of CCA failures.
/// TX only.
23: uint32 err_cca;
/// The number of frame transmission failures due to abort error.
/// TX only.
24: uint32 err_abort;
/// The number of frames that were dropped due to a busy channel.
/// TX only.
25: uint32 err_busy_channel;
/// The number of frames that encountered some other error.
26: uint32 err_other;
};