blob: b59cfc6a273315b2516758a8514dc50e9b79d9b5 [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() -> (struct {
counters AllCounters;
});
/// Resets all of the counters to zero returning the counter values
/// immediately prior.
Reset() -> (struct {
counters AllCounters;
});
};
/// Table describing all counters.
///
/// May be empty if no counters are supported.
type AllCounters = table {
/// MAC Counters for TX
1: mac_tx MacCounters;
/// MAC Counters for RX
2: mac_rx MacCounters;
};
/// Counters associated with the MAC layer.
///
/// Some counters are only valid for RX or TX.
type MacCounters = table {
/// The total number of frames
1: total uint32;
/// The total number of unicast frames
2: unicast uint32;
/// The total number of broadcast frames
3: broadcast uint32;
/// The number of frames with ack request
4: ack_requested uint32;
/// The number of frames that were acked
5: acked uint32;
/// The number of frames without ack request
6: no_ack_requested uint32;
/// The number of data frames
7: data uint32;
/// The number of data poll frames
8: data_poll uint32;
/// The number of beacon frames
9: beacon uint32;
/// The number of beacon request frames
10: beacon_request uint32;
/// The number of other types of frames
11: other uint32;
/// The number of frames filtered by address filter (allowlist
/// or denylist).
12: address_filtered uint32;
/// The number of retransmission attempts.
/// TX only.
13: retries uint32;
/// The number of expired retransmission retries for direct message.
/// TX only.
14: direct_max_retry_expiry uint32;
/// The number of expired retransmission retries for indirect message
/// TX only.
15: indirect_max_retry_expiry uint32;
/// The number of received frames filtered by destination check.
/// RX only.
16: dest_addr_filtered uint32;
/// The number of received duplicated frames.
/// RX only.
17: duplicated uint32;
/// The number of received frames with no or malformed content.
/// RX only.
18: err_no_frame uint32;
/// The number of received frames from unknown neighbor.
/// RX only.
19: err_unknown_neighbor uint32;
/// The number of received frames whose source address is invalid.
/// RX only.
20: err_invalid_src_addr uint32;
/// The number of received frames with security error.
/// RX only.
21: err_sec uint32;
/// The number of received frames with FCS error.
/// RX only.
22: err_fcs uint32;
/// The number of CCA failures.
/// TX only.
23: err_cca uint32;
/// The number of frame transmission failures due to abort error.
/// TX only.
24: err_abort uint32;
/// The number of frames that were dropped due to a busy channel.
/// TX only.
25: err_busy_channel uint32;
/// The number of frames that encountered some other error.
26: err_other uint32;
};