2013-03-19 21:24:00

by Ben Greear

[permalink] [raw]
Subject: [PATCH 1/2] mac80211: Add beacon stats to debugfs.

From: Ben Greear <[email protected]>

Beacon-timeout and number of beacon loss events.

Signed-off-by: Ben Greear <[email protected]>
---
:100644 100644 6d5aec9... dc962aa... M net/mac80211/debugfs_netdev.c
:100644 100644 6cc8e14... 0f08f22... M net/mac80211/debugfs_sta.c
net/mac80211/debugfs_netdev.c | 11 +++++++++++
net/mac80211/debugfs_sta.c | 2 ++
2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 6d5aec9..dc962aa 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -123,6 +123,15 @@ static ssize_t ieee80211_if_fmt_##name( \
return scnprintf(buf, buflen, "%d\n", sdata->field / 16); \
}

+#define IEEE80211_IF_FMT_JIFFIES_TO_MS(name, field) \
+static ssize_t ieee80211_if_fmt_##name( \
+ const struct ieee80211_sub_if_data *sdata, \
+ char *buf, int buflen) \
+{ \
+ return scnprintf(buf, buflen, "%d\n", \
+ jiffies_to_msecs(sdata->field)); \
+}
+
#define __IEEE80211_IF_FILE(name, _write) \
static ssize_t ieee80211_if_read_##name(struct file *file, \
char __user *userbuf, \
@@ -174,6 +183,7 @@ IEEE80211_IF_FILE(bssid, u.mgd.bssid, MAC);
IEEE80211_IF_FILE(aid, u.mgd.aid, DEC);
IEEE80211_IF_FILE(last_beacon, u.mgd.last_beacon_signal, DEC);
IEEE80211_IF_FILE(ave_beacon, u.mgd.ave_beacon_signal, DEC_DIV_16);
+IEEE80211_IF_FILE(beacon_timeout, u.mgd.beacon_timeout, JIFFIES_TO_MS);

static int ieee80211_set_smps(struct ieee80211_sub_if_data *sdata,
enum ieee80211_smps_mode smps_mode)
@@ -539,6 +549,7 @@ static void add_sta_files(struct ieee80211_sub_if_data *sdata)
DEBUGFS_ADD(aid);
DEBUGFS_ADD(last_beacon);
DEBUGFS_ADD(ave_beacon);
+ DEBUGFS_ADD(beacon_timeout);
DEBUGFS_ADD_MODE(smps, 0600);
DEBUGFS_ADD_MODE(tkip_mic_test, 0200);
DEBUGFS_ADD_MODE(uapsd_queues, 0600);
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 6cc8e14..0f08f22 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -52,6 +52,7 @@ static const struct file_operations sta_ ##name## _ops = { \
STA_FILE(aid, sta.aid, D);
STA_FILE(dev, sdata->name, S);
STA_FILE(last_signal, last_signal, D);
+STA_FILE(beacon_loss_count, beacon_loss_count, D);

static ssize_t sta_flags_read(struct file *file, char __user *userbuf,
size_t count, loff_t *ppos)
@@ -371,6 +372,7 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta)
DEBUGFS_ADD(agg_status);
DEBUGFS_ADD(dev);
DEBUGFS_ADD(last_signal);
+ DEBUGFS_ADD(beacon_loss_count);
DEBUGFS_ADD(ht_capa);

DEBUGFS_ADD_COUNTER(rx_packets, rx_packets);
--
1.7.3.4



2013-03-22 10:27:57

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH 1/2] mac80211: Add beacon stats to debugfs.

Neither of these patches apply.

johannes


2013-03-19 21:24:09

by Ben Greear

[permalink] [raw]
Subject: [PATCH 2/2] mac80211: Be more careful about sending beacon-loss-events.

From: Ben Greear <[email protected]>

I don't think we should send the events unless it was actually
a beacon that was lost...not just any probe of an AP.

Signed-off-by: Ben Greear <[email protected]>
---
:100644 100644 f46607a... 81e0619... M net/mac80211/mlme.c
net/mac80211/mlme.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index f46607a..81e0619 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1624,12 +1624,14 @@ static void ieee80211_mgd_probe_ap(struct ieee80211_sub_if_data *sdata,
goto out;
}

- if (beacon)
+ if (beacon) {
mlme_dbg_ratelimited(sdata,
"detected beacon loss from AP - sending probe request\n");

- ieee80211_cqm_rssi_notify(&sdata->vif,
- NL80211_CQM_RSSI_BEACON_LOSS_EVENT, GFP_KERNEL);
+ ieee80211_cqm_rssi_notify(&sdata->vif,
+ NL80211_CQM_RSSI_BEACON_LOSS_EVENT,
+ GFP_KERNEL);
+ }

/*
* The driver/our work has already reported this event or the
--
1.7.3.4