Skip to content

Commit

Permalink
mac80211: implement station stats retrieval
Browse files Browse the repository at this point in the history
This implements the required cfg80211 callback in mac80211
to allow userspace to get station statistics.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Johannes Berg authored and David S. Miller committed Jan 28, 2008
1 parent fd5b74d commit 7bbdd2d
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions net/mac80211/cfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,31 @@ static int ieee80211_config_default_key(struct wiphy *wiphy,
return 0;
}

static int ieee80211_get_station(struct wiphy *wiphy, struct net_device *dev,
u8 *mac, struct station_stats *stats)
{
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
struct sta_info *sta;

sta = sta_info_get(local, mac);
if (!sta)
return -ENOENT;

/* XXX: verify sta->dev == dev */

stats->filled = STATION_STAT_INACTIVE_TIME |
STATION_STAT_RX_BYTES |
STATION_STAT_TX_BYTES;

stats->inactive_time = jiffies_to_msecs(jiffies - sta->last_rx);
stats->rx_bytes = sta->rx_bytes;
stats->tx_bytes = sta->tx_bytes;

sta_info_put(sta);

return 0;
}

struct cfg80211_ops mac80211_config_ops = {
.add_virtual_intf = ieee80211_add_iface,
.del_virtual_intf = ieee80211_del_iface,
Expand All @@ -277,4 +302,5 @@ struct cfg80211_ops mac80211_config_ops = {
.del_key = ieee80211_del_key,
.get_key = ieee80211_get_key,
.set_default_key = ieee80211_config_default_key,
.get_station = ieee80211_get_station,
};

0 comments on commit 7bbdd2d

Please sign in to comment.