2011-01-17 11:32:30

by Juuso Oikarinen

[permalink] [raw]
Subject: [PATCH] wl12xx: Increase scan channel dwell time for passive scans

From: Juuso Oikarinen <[email protected]>

The passive scan channel dwell time currently used is 30ms-60ms. A typical
beacon interval for AP's is 100ms. This leads to a ~30% worst-case probability
of finding an AP via passive scanning.

For 5GHz bands for DFS frequencies passive scanning is the only scanning
option. Hence for these, the probability of finding an AP is very low.

To fix this, increase the passive channel scan dwell times (also the early
leave value, as 5GHz channels are still typically very silent.) Use a value
of 100ms, because that covers most typical AP configurations.

Based on testing the probability of finding an AP (102.4ms beacon interval) on
a single scan round are as follows (based on 100 iterations):

dwell min/max (ms) | probability
---------------------+------------
30/60 | 35%
60/60 | 56%
80/80 | 77%
100/100 | 100%

Total scan times now and after the change:

Region | Before (s) | After (s)
-------+------------+----------
00 | 0.77 | 1.48
FI | 0.95 | 2.01
US | 0.91 | 1.76

Signed-off-by: Juuso Oikarinen <[email protected]>
---
drivers/net/wireless/wl12xx/conf.h | 16 ++++++++--------
drivers/net/wireless/wl12xx/main.c | 4 ++--
2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/wl12xx/conf.h b/drivers/net/wireless/wl12xx/conf.h
index f5c048c..21b72a5 100644
--- a/drivers/net/wireless/wl12xx/conf.h
+++ b/drivers/net/wireless/wl12xx/conf.h
@@ -1084,30 +1084,30 @@ struct conf_scan_settings {
/*
* The minimum time to wait on each channel for active scans
*
- * Range: 0 - 65536 tu
+ * Range: u32 tu/1000
*/
- u16 min_dwell_time_active;
+ u32 min_dwell_time_active;

/*
* The maximum time to wait on each channel for active scans
*
- * Range: 0 - 65536 tu
+ * Range: u32 tu/1000
*/
- u16 max_dwell_time_active;
+ u32 max_dwell_time_active;

/*
* The maximum time to wait on each channel for passive scans
*
- * Range: 0 - 65536 tu
+ * Range: u32 tu/1000
*/
- u16 min_dwell_time_passive;
+ u32 min_dwell_time_passive;

/*
* The maximum time to wait on each channel for passive scans
*
- * Range: 0 - 65536 tu
+ * Range: u32 tu/1000
*/
- u16 max_dwell_time_passive;
+ u32 max_dwell_time_passive;

/*
* Number of probe requests to transmit on each active scan channel
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 863e660..c1814f2 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -279,8 +279,8 @@ static struct conf_drv_settings default_conf = {
.scan = {
.min_dwell_time_active = 7500,
.max_dwell_time_active = 30000,
- .min_dwell_time_passive = 30000,
- .max_dwell_time_passive = 60000,
+ .min_dwell_time_passive = 100000,
+ .max_dwell_time_passive = 100000,
.num_probe_reqs = 2,
},
.rf = {
--
1.7.1



2011-01-17 13:39:53

by Kahn, Gery

[permalink] [raw]
Subject: Re: [PATCH] wl12xx: Increase scan channel dwell time for passive scans

Ok. Thank you

On Mon, Jan 17, 2011 at 14:42, Juuso Oikarinen
<[email protected]> wrote:
> On Mon, 2011-01-17 at 14:33 +0200, ext Kahn, Gery wrote:
>> Does it worth to have different value for 5GHz?
>>
>
> I guess the 100ms value benefits 2.4GHz passive scanning as well, does
> it not? In 2.4GHz band there are usually very few channels passive
> scanned (mostly channels 12 and 13 in the 00 region) so the cost of this
> increased wait time is quite little.
>
> -Juuso
>
>> On Mon, Jan 17, 2011 at 13:32,  <[email protected]> wrote:
>> > From: Juuso Oikarinen <[email protected]>
>> >
>> > The passive scan channel dwell time currently used is 30ms-60ms. A typical
>> > beacon interval for AP's is 100ms. This leads to a ~30% worst-case probability
>> > of finding an AP via passive scanning.
>> >
>> > For 5GHz bands for DFS frequencies passive scanning is the only scanning
>> > option. Hence for these, the probability of finding an AP is very low.
>> >
>> > To fix this, increase the passive channel scan dwell times (also the early
>> > leave value, as 5GHz channels are still typically very silent.) Use a value
>> > of 100ms, because that covers most typical AP configurations.
>> >
>> > Based on testing the probability of finding an AP (102.4ms beacon interval) on
>> > a single scan round are as follows (based on 100 iterations):
>> >
>> > dwell min/max (ms)   | probability
>> > ---------------------+------------
>> > 30/60                | 35%
>> > 60/60                | 56%
>> > 80/80                | 77%
>> > 100/100              | 100%
>> >
>> > Total scan times now and after the change:
>> >
>> > Region | Before (s) | After (s)
>> > -------+------------+----------
>> > 00     | 0.77       | 1.48
>> > FI     | 0.95       | 2.01
>> > US     | 0.91       | 1.76
>> >
>> > Signed-off-by: Juuso Oikarinen <[email protected]>
>> > ---
>
>

2011-01-17 12:33:28

by Kahn, Gery

[permalink] [raw]
Subject: Re: [PATCH] wl12xx: Increase scan channel dwell time for passive scans

Does it worth to have different value for 5GHz?

On Mon, Jan 17, 2011 at 13:32, <[email protected]> wrote:
> From: Juuso Oikarinen <[email protected]>
>
> The passive scan channel dwell time currently used is 30ms-60ms. A typical
> beacon interval for AP's is 100ms. This leads to a ~30% worst-case probability
> of finding an AP via passive scanning.
>
> For 5GHz bands for DFS frequencies passive scanning is the only scanning
> option. Hence for these, the probability of finding an AP is very low.
>
> To fix this, increase the passive channel scan dwell times (also the early
> leave value, as 5GHz channels are still typically very silent.) Use a value
> of 100ms, because that covers most typical AP configurations.
>
> Based on testing the probability of finding an AP (102.4ms beacon interval) on
> a single scan round are as follows (based on 100 iterations):
>
> dwell min/max (ms)   | probability
> ---------------------+------------
> 30/60                | 35%
> 60/60                | 56%
> 80/80                | 77%
> 100/100              | 100%
>
> Total scan times now and after the change:
>
> Region | Before (s) | After (s)
> -------+------------+----------
> 00     | 0.77       | 1.48
> FI     | 0.95       | 2.01
> US     | 0.91       | 1.76
>
> Signed-off-by: Juuso Oikarinen <[email protected]>
> ---
>  drivers/net/wireless/wl12xx/conf.h |   16 ++++++++--------
>  drivers/net/wireless/wl12xx/main.c |    4 ++--
>  2 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/net/wireless/wl12xx/conf.h b/drivers/net/wireless/wl12xx/conf.h
> index f5c048c..21b72a5 100644
> --- a/drivers/net/wireless/wl12xx/conf.h
> +++ b/drivers/net/wireless/wl12xx/conf.h
> @@ -1084,30 +1084,30 @@ struct conf_scan_settings {
>        /*
>         * The minimum time to wait on each channel for active scans
>         *
> -        * Range: 0 - 65536 tu
> +        * Range: u32 tu/1000
>         */
> -       u16 min_dwell_time_active;
> +       u32 min_dwell_time_active;
>
>        /*
>         * The maximum time to wait on each channel for active scans
>         *
> -        * Range: 0 - 65536 tu
> +        * Range: u32 tu/1000
>         */
> -       u16 max_dwell_time_active;
> +       u32 max_dwell_time_active;
>
>        /*
>         * The maximum time to wait on each channel for passive scans
>         *
> -        * Range: 0 - 65536 tu
> +        * Range: u32 tu/1000
>         */
> -       u16 min_dwell_time_passive;
> +       u32 min_dwell_time_passive;
>
>        /*
>         * The maximum time to wait on each channel for passive scans
>         *
> -        * Range: 0 - 65536 tu
> +        * Range: u32 tu/1000
>         */
> -       u16 max_dwell_time_passive;
> +       u32 max_dwell_time_passive;
>
>        /*
>         * Number of probe requests to transmit on each active scan channel
> diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
> index 863e660..c1814f2 100644
> --- a/drivers/net/wireless/wl12xx/main.c
> +++ b/drivers/net/wireless/wl12xx/main.c
> @@ -279,8 +279,8 @@ static struct conf_drv_settings default_conf = {
>        .scan = {
>                .min_dwell_time_active        = 7500,
>                .max_dwell_time_active        = 30000,
> -               .min_dwell_time_passive       = 30000,
> -               .max_dwell_time_passive       = 60000,
> +               .min_dwell_time_passive       = 100000,
> +               .max_dwell_time_passive       = 100000,
>                .num_probe_reqs               = 2,
>        },
>        .rf = {
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

2011-01-17 12:42:29

by Juuso Oikarinen

[permalink] [raw]
Subject: Re: [PATCH] wl12xx: Increase scan channel dwell time for passive scans

On Mon, 2011-01-17 at 14:33 +0200, ext Kahn, Gery wrote:
> Does it worth to have different value for 5GHz?
>

I guess the 100ms value benefits 2.4GHz passive scanning as well, does
it not? In 2.4GHz band there are usually very few channels passive
scanned (mostly channels 12 and 13 in the 00 region) so the cost of this
increased wait time is quite little.

-Juuso

> On Mon, Jan 17, 2011 at 13:32, <[email protected]> wrote:
> > From: Juuso Oikarinen <[email protected]>
> >
> > The passive scan channel dwell time currently used is 30ms-60ms. A typical
> > beacon interval for AP's is 100ms. This leads to a ~30% worst-case probability
> > of finding an AP via passive scanning.
> >
> > For 5GHz bands for DFS frequencies passive scanning is the only scanning
> > option. Hence for these, the probability of finding an AP is very low.
> >
> > To fix this, increase the passive channel scan dwell times (also the early
> > leave value, as 5GHz channels are still typically very silent.) Use a value
> > of 100ms, because that covers most typical AP configurations.
> >
> > Based on testing the probability of finding an AP (102.4ms beacon interval) on
> > a single scan round are as follows (based on 100 iterations):
> >
> > dwell min/max (ms) | probability
> > ---------------------+------------
> > 30/60 | 35%
> > 60/60 | 56%
> > 80/80 | 77%
> > 100/100 | 100%
> >
> > Total scan times now and after the change:
> >
> > Region | Before (s) | After (s)
> > -------+------------+----------
> > 00 | 0.77 | 1.48
> > FI | 0.95 | 2.01
> > US | 0.91 | 1.76
> >
> > Signed-off-by: Juuso Oikarinen <[email protected]>
> > ---