// 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(//garnet/lib/wlan/common/include/wlan/common/stats.h) union MlmeStats { ClientMlmeStats client_mlme_stats; ApMlmeStats ap_mlme_stats; }; struct IfaceStats { DispatcherStats dispatcher_stats; MlmeStats? mlme_stats; };