linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] mac80211: Add a debug entry to track last beacon
@ 2011-08-21 15:43 Mohammed Shafi Shajakhan
  2011-08-21 15:58 ` mohammed
  0 siblings, 1 reply; 3+ messages in thread
From: Mohammed Shafi Shajakhan @ 2011-08-21 15:43 UTC (permalink / raw)
  To: johannes
  Cc: linville, linux-wireless, rodrigue, senthilb, rmanohar,
	Mohammed Shafi Shajakhan

From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>

when we obtain time_since_last_beacon_ms parameter from the mac80211
debugfs it should be always less than 100, otherwise we are missing
beacons.

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
---
 net/mac80211/debugfs_netdev.c |   14 ++++++++++++++
 net/mac80211/ieee80211_i.h    |    3 +++
 net/mac80211/mlme.c           |    2 ++
 3 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 9ea7c0d..18e1bfc 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -157,6 +157,19 @@ 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);
 
+static ssize_t ieee80211_if_fmt_time_since_last_beacon_ms(
+	const struct ieee80211_sub_if_data *sdata, char *buf, int buflen)
+{
+	const struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
+	unsigned long time_since_last_beacon;
+
+	time_since_last_beacon = jiffies_to_msecs(jiffies -
+						  ifmgd->last_beacon_timestamp);
+	return scnprintf(buf, buflen, "%lu\n",
+			 time_since_last_beacon);
+}
+__IEEE80211_IF_FILE(time_since_last_beacon_ms, NULL);
+
 static int ieee80211_set_smps(struct ieee80211_sub_if_data *sdata,
 			      enum ieee80211_smps_mode smps_mode)
 {
@@ -394,6 +407,7 @@ static void add_sta_files(struct ieee80211_sub_if_data *sdata)
 
 	DEBUGFS_ADD(bssid);
 	DEBUGFS_ADD(aid);
+	DEBUGFS_ADD(time_since_last_beacon_ms);
 	DEBUGFS_ADD(last_beacon);
 	DEBUGFS_ADD(ave_beacon);
 	DEBUGFS_ADD_MODE(smps, 0600);
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index ea74190..ec532a5 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -410,6 +410,9 @@ struct ieee80211_if_managed {
 
 	u8 use_4addr;
 
+	/* timestamp of the last Beacon frame in the current BSS. */
+	unsigned long last_beacon_timestamp;
+
 	/* Signal strength from the last Beacon frame in the current BSS. */
 	int last_beacon_signal;
 
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index d6470c7..13ee1b6 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1758,6 +1758,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
 	if (memcmp(bssid, mgmt->bssid, ETH_ALEN) != 0)
 		return;
 
+	ifmgd->last_beacon_timestamp = jiffies;
+
 	/* Track average RSSI from the Beacon frames of the current AP */
 	ifmgd->last_beacon_signal = rx_status->signal;
 	if (ifmgd->flags & IEEE80211_STA_RESET_SIGNAL_AVE) {
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC] mac80211: Add a debug entry to track last beacon
  2011-08-21 15:43 [RFC] mac80211: Add a debug entry to track last beacon Mohammed Shafi Shajakhan
@ 2011-08-21 15:58 ` mohammed
  2011-08-22 13:59   ` mohammed
  0 siblings, 1 reply; 3+ messages in thread
From: mohammed @ 2011-08-21 15:58 UTC (permalink / raw)
  To: Mohammed Shafi Shajakhan
  Cc: johannes, linville, linux-wireless, rodrigue, senthilb, rmanohar

On Sunday 21 August 2011 09:13 PM, Mohammed Shafi Shajakhan wrote:
> From: Mohammed Shafi Shajakhan<mohammed@qca.qualcomm.com>
>
> when we obtain time_since_last_beacon_ms parameter from the mac80211
> debugfs it should be always less than 100, otherwise we are missing
> beacons.

made a mistake in the commit-log
'time_since_last_beacon_ms' should be always less than the configured 
beacon interval in the AP, otherwise we are missing beacons

>
> Signed-off-by: Mohammed Shafi Shajakhan<mohammed@qca.qualcomm.com>
> ---
>   net/mac80211/debugfs_netdev.c |   14 ++++++++++++++
>   net/mac80211/ieee80211_i.h    |    3 +++
>   net/mac80211/mlme.c           |    2 ++
>   3 files changed, 19 insertions(+), 0 deletions(-)
>
> diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
> index 9ea7c0d..18e1bfc 100644
> --- a/net/mac80211/debugfs_netdev.c
> +++ b/net/mac80211/debugfs_netdev.c
> @@ -157,6 +157,19 @@ 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);
>
> +static ssize_t ieee80211_if_fmt_time_since_last_beacon_ms(
> +	const struct ieee80211_sub_if_data *sdata, char *buf, int buflen)
> +{
> +	const struct ieee80211_if_managed *ifmgd =&sdata->u.mgd;
> +	unsigned long time_since_last_beacon;
> +
> +	time_since_last_beacon = jiffies_to_msecs(jiffies -
> +						  ifmgd->last_beacon_timestamp);
> +	return scnprintf(buf, buflen, "%lu\n",
> +			 time_since_last_beacon);
> +}
> +__IEEE80211_IF_FILE(time_since_last_beacon_ms, NULL);
> +
>   static int ieee80211_set_smps(struct ieee80211_sub_if_data *sdata,
>   			      enum ieee80211_smps_mode smps_mode)
>   {
> @@ -394,6 +407,7 @@ static void add_sta_files(struct ieee80211_sub_if_data *sdata)
>
>   	DEBUGFS_ADD(bssid);
>   	DEBUGFS_ADD(aid);
> +	DEBUGFS_ADD(time_since_last_beacon_ms);
>   	DEBUGFS_ADD(last_beacon);
>   	DEBUGFS_ADD(ave_beacon);
>   	DEBUGFS_ADD_MODE(smps, 0600);
> diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
> index ea74190..ec532a5 100644
> --- a/net/mac80211/ieee80211_i.h
> +++ b/net/mac80211/ieee80211_i.h
> @@ -410,6 +410,9 @@ struct ieee80211_if_managed {
>
>   	u8 use_4addr;
>
> +	/* timestamp of the last Beacon frame in the current BSS. */
> +	unsigned long last_beacon_timestamp;
> +
>   	/* Signal strength from the last Beacon frame in the current BSS. */
>   	int last_beacon_signal;
>
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index d6470c7..13ee1b6 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -1758,6 +1758,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
>   	if (memcmp(bssid, mgmt->bssid, ETH_ALEN) != 0)
>   		return;
>
> +	ifmgd->last_beacon_timestamp = jiffies;
> +
>   	/* Track average RSSI from the Beacon frames of the current AP */
>   	ifmgd->last_beacon_signal = rx_status->signal;
>   	if (ifmgd->flags&  IEEE80211_STA_RESET_SIGNAL_AVE) {


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC] mac80211: Add a debug entry to track last beacon
  2011-08-21 15:58 ` mohammed
@ 2011-08-22 13:59   ` mohammed
  0 siblings, 0 replies; 3+ messages in thread
From: mohammed @ 2011-08-22 13:59 UTC (permalink / raw)
  To: Johannes Berg
  Cc: linville, linux-wireless, rodrigue, senthilb, rmanohar,
	Mohammed Shafi Shajakhan

On Sunday 21 August 2011 09:28 PM, mohammed wrote:
> On Sunday 21 August 2011 09:13 PM, Mohammed Shafi Shajakhan wrote:
>> From: Mohammed Shafi Shajakhan<mohammed@qca.qualcomm.com>
>>
>> when we obtain time_since_last_beacon_ms parameter from the mac80211
>> debugfs it should be always less than 100, otherwise we are missing
>> beacons.
>
> made a mistake in the commit-log
> 'time_since_last_beacon_ms' should be always less than the configured
> beacon interval in the AP, otherwise we are missing beacons


also the case of station not getting associated should be taken care. 
will sending a proper patch addressing the above two. thanks!

>
>>
>> Signed-off-by: Mohammed Shafi Shajakhan<mohammed@qca.qualcomm.com>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-08-22 13:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-21 15:43 [RFC] mac80211: Add a debug entry to track last beacon Mohammed Shafi Shajakhan
2011-08-21 15:58 ` mohammed
2011-08-22 13:59   ` mohammed

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).