blob: e2a00b46e3279a198b7fbc41a16c69c25e1431b5 [file] [log] [blame]
// Copyright 2018 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.wlan.stats;
struct Counter {
uint64 count;
string name;
};
struct PacketCounter {
Counter in;
Counter out;
Counter drop;
Counter in_bytes;
Counter out_bytes;
Counter drop_bytes;
};
// LINT.IfChange
struct DispatcherStats {
PacketCounter any_packet;
PacketCounter mgmt_frame;
PacketCounter ctrl_frame;
PacketCounter data_frame;
};
const uint8 RSSI_BINS = 129;
/// RssiStats count the occurrence of the RSSIs.
/// RSSI value r's occurrence is counted in the bin[-r],
/// where r is defined in [-128, 0] in dBm.
struct RssiStats {
// TODO(alexandrew): Change this to array.
vector<uint64>:RSSI_BINS hist;
};
struct ClientMlmeStats {
PacketCounter svc_msg;
PacketCounter data_frame;
PacketCounter mgmt_frame;
PacketCounter tx_frame;
PacketCounter rx_frame;
RssiStats assoc_data_rssi;
RssiStats beacon_rssi;
};
struct ApMlmeStats {
PacketCounter not_used;
};
// LINT.ThenChange(//src/connectivity/wlan/lib/common/cpp/include/wlan/common/stats.h)
union MlmeStats {
1: ClientMlmeStats client_mlme_stats;
2: ApMlmeStats ap_mlme_stats;
};
struct IfaceStats {
DispatcherStats dispatcher_stats;
MlmeStats? mlme_stats;
};