All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] BSS timestamp fix/cleanup
@ 2012-03-13 12:57 Johannes Berg
  2012-03-13 12:57 ` [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF Johannes Berg
  2012-03-13 12:57 ` [PATCH 2/2] cfg80211: clarify timestamp in cfg80211_inform_bss Johannes Berg
  0 siblings, 2 replies; 9+ messages in thread
From: Johannes Berg @ 2012-03-13 12:57 UTC (permalink / raw)
  To: John Linville; +Cc: Arend van Spriel, linux-wireless

I was looking at this code and thought I'd clarify it
and remove some abuse in brcmfmac.

johannes

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

* [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2012-03-13 12:57 [PATCH 0/2] BSS timestamp fix/cleanup Johannes Berg
@ 2012-03-13 12:57 ` Johannes Berg
  2012-03-13 18:32   ` Franky Lin
  2014-12-22 12:58   ` Johannes Berg
  2012-03-13 12:57 ` [PATCH 2/2] cfg80211: clarify timestamp in cfg80211_inform_bss Johannes Berg
  1 sibling, 2 replies; 9+ messages in thread
From: Johannes Berg @ 2012-03-13 12:57 UTC (permalink / raw)
  To: John Linville; +Cc: Arend van Spriel, linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

The cfg80211_inform_bss() timestamp argument is
intended to be the TSF, not any form of host
timestamp.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c |   10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c	2012-03-10 09:17:00.000000000 +0100
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c	2012-03-13 13:45:43.000000000 +0100
@@ -2003,7 +2003,6 @@ static s32 brcmf_inform_single_bss(struc
 	s32 err = 0;
 	u16 channel;
 	u32 freq;
-	u64 notify_timestamp;
 	u16 notify_capability;
 	u16 notify_interval;
 	u8 *notify_ie;
@@ -2026,7 +2025,6 @@ static s32 brcmf_inform_single_bss(struc
 	freq = ieee80211_channel_to_frequency(channel, band->band);
 	notify_channel = ieee80211_get_channel(wiphy, freq);
 
-	notify_timestamp = jiffies_to_msecs(jiffies)*1000; /* uSec */
 	notify_capability = le16_to_cpu(bi->capability);
 	notify_interval = le16_to_cpu(bi->beacon_period);
 	notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
@@ -2040,10 +2038,9 @@ static s32 brcmf_inform_single_bss(struc
 	WL_CONN("Capability: %X\n", notify_capability);
 	WL_CONN("Beacon interval: %d\n", notify_interval);
 	WL_CONN("Signal: %d\n", notify_signal);
-	WL_CONN("notify_timestamp: %#018llx\n", notify_timestamp);
 
 	bss = cfg80211_inform_bss(wiphy, notify_channel, (const u8 *)bi->BSSID,
-		notify_timestamp, notify_capability, notify_interval, notify_ie,
+		0, notify_capability, notify_interval, notify_ie,
 		notify_ielen, notify_signal, GFP_KERNEL);
 
 	if (!bss)
@@ -2098,7 +2095,6 @@ static s32 wl_inform_ibss(struct brcmf_c
 	s32 err = 0;
 	u16 channel;
 	u32 freq;
-	u64 notify_timestamp;
 	u16 notify_capability;
 	u16 notify_interval;
 	u8 *notify_ie;
@@ -2134,7 +2130,6 @@ static s32 wl_inform_ibss(struct brcmf_c
 	freq = ieee80211_channel_to_frequency(channel, band->band);
 	notify_channel = ieee80211_get_channel(wiphy, freq);
 
-	notify_timestamp = jiffies_to_msecs(jiffies)*1000; /* uSec */
 	notify_capability = le16_to_cpu(bi->capability);
 	notify_interval = le16_to_cpu(bi->beacon_period);
 	notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
@@ -2145,10 +2140,9 @@ static s32 wl_inform_ibss(struct brcmf_c
 	WL_CONN("capability: %X\n", notify_capability);
 	WL_CONN("beacon interval: %d\n", notify_interval);
 	WL_CONN("signal: %d\n", notify_signal);
-	WL_CONN("notify_timestamp: %#018llx\n", notify_timestamp);
 
 	bss = cfg80211_inform_bss(wiphy, notify_channel, bssid,
-		notify_timestamp, notify_capability, notify_interval,
+		0, notify_capability, notify_interval,
 		notify_ie, notify_ielen, notify_signal, GFP_KERNEL);
 
 	if (!bss) {



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

* [PATCH 2/2] cfg80211: clarify timestamp in cfg80211_inform_bss
  2012-03-13 12:57 [PATCH 0/2] BSS timestamp fix/cleanup Johannes Berg
  2012-03-13 12:57 ` [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF Johannes Berg
@ 2012-03-13 12:57 ` Johannes Berg
  1 sibling, 0 replies; 9+ messages in thread
From: Johannes Berg @ 2012-03-13 12:57 UTC (permalink / raw)
  To: John Linville; +Cc: Arend van Spriel, linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

This is intended to be the timestamp sent by the
peer in the beacon/probe response, not any form
of host timestamp. Clarify the documentation and
variable names.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 include/net/cfg80211.h |    7 +++----
 net/wireless/scan.c    |    7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

--- a/include/net/cfg80211.h	2012-03-13 09:11:23.000000000 +0100
+++ b/include/net/cfg80211.h	2012-03-13 13:49:53.000000000 +0100
@@ -2697,7 +2697,7 @@ cfg80211_inform_bss_frame(struct wiphy *
  * @wiphy: the wiphy reporting the BSS
  * @channel: The channel the frame was received on
  * @bssid: the BSSID of the BSS
- * @timestamp: the TSF timestamp sent by the peer
+ * @tsf: the TSF sent by the peer in the beacon/probe response (or 0)
  * @capability: the capability field sent by the peer
  * @beacon_interval: the beacon interval announced by the peer
  * @ie: additional IEs sent by the peer
@@ -2713,9 +2713,8 @@ cfg80211_inform_bss_frame(struct wiphy *
 struct cfg80211_bss * __must_check
 cfg80211_inform_bss(struct wiphy *wiphy,
 		    struct ieee80211_channel *channel,
-		    const u8 *bssid,
-		    u64 timestamp, u16 capability, u16 beacon_interval,
-		    const u8 *ie, size_t ielen,
+		    const u8 *bssid, u64 tsf, u16 capability,
+		    u16 beacon_interval, const u8 *ie, size_t ielen,
 		    s32 signal, gfp_t gfp);
 
 struct cfg80211_bss *cfg80211_get_bss(struct wiphy *wiphy,
--- a/net/wireless/scan.c	2012-03-10 09:17:06.000000000 +0100
+++ b/net/wireless/scan.c	2012-03-13 13:50:24.000000000 +0100
@@ -734,9 +734,8 @@ cfg80211_bss_update(struct cfg80211_regi
 struct cfg80211_bss*
 cfg80211_inform_bss(struct wiphy *wiphy,
 		    struct ieee80211_channel *channel,
-		    const u8 *bssid,
-		    u64 timestamp, u16 capability, u16 beacon_interval,
-		    const u8 *ie, size_t ielen,
+		    const u8 *bssid, u64 tsf, u16 capability,
+		    u16 beacon_interval, const u8 *ie, size_t ielen,
 		    s32 signal, gfp_t gfp)
 {
 	struct cfg80211_internal_bss *res;
@@ -758,7 +757,7 @@ cfg80211_inform_bss(struct wiphy *wiphy,
 	memcpy(res->pub.bssid, bssid, ETH_ALEN);
 	res->pub.channel = channel;
 	res->pub.signal = signal;
-	res->pub.tsf = timestamp;
+	res->pub.tsf = tsf;
 	res->pub.beacon_interval = beacon_interval;
 	res->pub.capability = capability;
 	/*



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

* Re: [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2012-03-13 12:57 ` [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF Johannes Berg
@ 2012-03-13 18:32   ` Franky Lin
  2014-12-22 12:58   ` Johannes Berg
  1 sibling, 0 replies; 9+ messages in thread
From: Franky Lin @ 2012-03-13 18:32 UTC (permalink / raw)
  To: Johannes Berg; +Cc: John Linville, Arend Van Spriel, linux-wireless

On 03/13/2012 05:57 AM, Johannes Berg wrote:
> From: Johannes Berg<johannes.berg@intel.com>
>
> The cfg80211_inform_bss() timestamp argument is
> intended to be the TSF, not any form of host
> timestamp.
>
> Signed-off-by: Johannes Berg<johannes.berg@intel.com>

Thanks Johannes.

Acked-by: Franky Lin <frankyl@broadcom.com>


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

* Re: [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2012-03-13 12:57 ` [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF Johannes Berg
  2012-03-13 18:32   ` Franky Lin
@ 2014-12-22 12:58   ` Johannes Berg
  2014-12-22 13:13     ` Arend van Spriel
  1 sibling, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2014-12-22 12:58 UTC (permalink / raw)
  To: Arend van Spriel, Franky Lin; +Cc: linux-wireless

By the way - I know now that the proprietary Broadcom driver has the
same bug, to the point where this is apparently getting encoded into the
Android framework.

I urge you to fix this issue there as well. If an absolute "last
updated" timestamp is needed (and "last seen [ms] ago" isn't sufficient)
then new API will be needed.

johannes


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

* Re: [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2014-12-22 12:58   ` Johannes Berg
@ 2014-12-22 13:13     ` Arend van Spriel
  2014-12-22 13:14       ` Johannes Berg
  0 siblings, 1 reply; 9+ messages in thread
From: Arend van Spriel @ 2014-12-22 13:13 UTC (permalink / raw)
  To: Johannes Berg; +Cc: Franky Lin, linux-wireless

On 12/22/14 13:58, Johannes Berg wrote:
> By the way - I know now that the proprietary Broadcom driver has the
> same bug, to the point where this is apparently getting encoded into the
> Android framework.
>
> I urge you to fix this issue there as well. If an absolute "last
> updated" timestamp is needed (and "last seen [ms] ago" isn't sufficient)
> then new API will be needed.

Sorry, seem to have missed the original patches somehow. Guess because 
it says *brmc*80211.

Regards,
Arend

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

* Re: [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2014-12-22 13:13     ` Arend van Spriel
@ 2014-12-22 13:14       ` Johannes Berg
  2014-12-22 13:26         ` Arend van Spriel
  0 siblings, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2014-12-22 13:14 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: Franky Lin, linux-wireless

On Mon, 2014-12-22 at 14:13 +0100, Arend van Spriel wrote:
> On 12/22/14 13:58, Johannes Berg wrote:
> > By the way - I know now that the proprietary Broadcom driver has the
> > same bug, to the point where this is apparently getting encoded into the
> > Android framework.
> >
> > I urge you to fix this issue there as well. If an absolute "last
> > updated" timestamp is needed (and "last seen [ms] ago" isn't sufficient)
> > then new API will be needed.
> 
> Sorry, seem to have missed the original patches somehow. Guess because 
> it says *brmc*80211.

No no - it's a looong time ago and was also applied a long time ago. It
just reared it's head again in another place.

johannes


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

* Re: [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2014-12-22 13:14       ` Johannes Berg
@ 2014-12-22 13:26         ` Arend van Spriel
  2014-12-24  7:49           ` Arik Nemtsov
  0 siblings, 1 reply; 9+ messages in thread
From: Arend van Spriel @ 2014-12-22 13:26 UTC (permalink / raw)
  To: Johannes Berg; +Cc: Franky Lin, linux-wireless

On 12/22/14 14:14, Johannes Berg wrote:
> On Mon, 2014-12-22 at 14:13 +0100, Arend van Spriel wrote:
>> On 12/22/14 13:58, Johannes Berg wrote:
>>> By the way - I know now that the proprietary Broadcom driver has the
>>> same bug, to the point where this is apparently getting encoded into the
>>> Android framework.
>>>
>>> I urge you to fix this issue there as well. If an absolute "last
>>> updated" timestamp is needed (and "last seen [ms] ago" isn't sufficient)
>>> then new API will be needed.
>>
>> Sorry, seem to have missed the original patches somehow. Guess because
>> it says *brmc*80211.
>
> No no - it's a looong time ago and was also applied a long time ago. It
> just reared it's head again in another place.

Found the commit in git log. So you mean the proprietary DHD driver or 
Android bcmdhd still uses host timestamp. I agree it should be fixed, 
but I may need some good arguments to convince my co-workers. So what 
kind of issues are rearing their (ugly) heads? supplicant issues?

Regards,
Arend

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

* Re: [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF
  2014-12-22 13:26         ` Arend van Spriel
@ 2014-12-24  7:49           ` Arik Nemtsov
  0 siblings, 0 replies; 9+ messages in thread
From: Arik Nemtsov @ 2014-12-24  7:49 UTC (permalink / raw)
  To: Arend van Spriel; +Cc: Johannes Berg, Franky Lin, linux-wireless

On Mon, Dec 22, 2014 at 3:26 PM, Arend van Spriel <arend@broadcom.com> wrote:
> On 12/22/14 14:14, Johannes Berg wrote:
>>
>> On Mon, 2014-12-22 at 14:13 +0100, Arend van Spriel wrote:
>>>
>>> On 12/22/14 13:58, Johannes Berg wrote:
>>>>
>>>> By the way - I know now that the proprietary Broadcom driver has the
>>>> same bug, to the point where this is apparently getting encoded into the
>>>> Android framework.
>>>>
>>>> I urge you to fix this issue there as well. If an absolute "last
>>>> updated" timestamp is needed (and "last seen [ms] ago" isn't sufficient)
>>>> then new API will be needed.
>>>
>>>
>>> Sorry, seem to have missed the original patches somehow. Guess because
>>> it says *brmc*80211.
>>
>>
>> No no - it's a looong time ago and was also applied a long time ago. It
>> just reared it's head again in another place.
>
>
> Found the commit in git log. So you mean the proprietary DHD driver or
> Android bcmdhd still uses host timestamp. I agree it should be fixed, but I
> may need some good arguments to convince my co-workers. So what kind of
> issues are rearing their (ugly) heads? supplicant issues?

Basically the Android framework is using the TSF from the scan results
as a timestamp for when the BSS was seen. In Android LL a new CTS test
was added to verify these values.
This of course means the CTS test fails for every vendor besides BRCM :)

It seems the framework knows it's a driver bug, since in the java code
they explicitly name the variable "tsf", before assigning it to the
scan result timestamp..

Arik

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

end of thread, other threads:[~2014-12-24  7:49 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-13 12:57 [PATCH 0/2] BSS timestamp fix/cleanup Johannes Berg
2012-03-13 12:57 ` [PATCH 1/2] brmc80211: dont use jiffies for BSS TSF Johannes Berg
2012-03-13 18:32   ` Franky Lin
2014-12-22 12:58   ` Johannes Berg
2014-12-22 13:13     ` Arend van Spriel
2014-12-22 13:14       ` Johannes Berg
2014-12-22 13:26         ` Arend van Spriel
2014-12-24  7:49           ` Arik Nemtsov
2012-03-13 12:57 ` [PATCH 2/2] cfg80211: clarify timestamp in cfg80211_inform_bss Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.