diff mbox

mac80211: adapt slot time in IBSS mode

Message ID 1354569690-23559-1-git-send-email-siwu@hrz.tu-chemnitz.de (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Simon Wunderlich Dec. 3, 2012, 9:21 p.m. UTC
In 5GHz/802.11a, we are allowed to use short slot times. Doing this
may increases performance by 20% for legacy connections (54 MBit/s).
I can confirm this in my tests (27% more throughput using iperf), and
also have a small positive effect (5% more throughput) for HT rates,
tested on 1 stream.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
---
 net/mac80211/ibss.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Julian Calaby Dec. 3, 2012, 11 p.m. UTC | #1
Hi Simon,

On Tue, Dec 4, 2012 at 8:21 AM, Simon Wunderlich
<simon.wunderlich@s2003.tu-chemnitz.de> wrote:
> In 5GHz/802.11a, we are allowed to use short slot times. Doing this
> may increases performance by 20% for legacy connections (54 MBit/s).
> I can confirm this in my tests (27% more throughput using iperf), and
> also have a small positive effect (5% more throughput) for HT rates,
> tested on 1 stream.
>
> Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
> ---
>  net/mac80211/ibss.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
> index fa862b2..1a5d29c 100644
> --- a/net/mac80211/ibss.c
> +++ b/net/mac80211/ibss.c
> @@ -201,6 +201,19 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
>         bss_change |= BSS_CHANGED_BASIC_RATES;
>         bss_change |= BSS_CHANGED_HT;
>         bss_change |= BSS_CHANGED_IBSS;
> +
> +       /* In 5 GHz/802.11a, we can always use short slot time.
> +        * (IEEE 802.11-2012 18.3.8.7)
> +        *
> +        * In 2.4GHz, we must always use long slots in IBSS for compatibility
> +        * reasons.
> +        * (IEEE 802.11-2012 19.4.5)
> +        *
> +        * HT follows these specifications (IEEE 802.11-2012 20.3.18)
> +        */
> +       sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ;
> +       bss_change |= BSS_CHANGED_ERP_SLOT;
> +

I don't know if this is done elsewhere, but this code doesn't match
the comment - there is no test for IBSS mode.

Thanks,
Nicolas Cavallari Dec. 4, 2012, 8:08 a.m. UTC | #2
On 04/12/2012 00:00, Julian Calaby wrote:
> Hi Simon,
> 
> On Tue, Dec 4, 2012 at 8:21 AM, Simon Wunderlich
> <simon.wunderlich@s2003.tu-chemnitz.de> wrote:
>> In 5GHz/802.11a, we are allowed to use short slot times. Doing this
>> may increases performance by 20% for legacy connections (54 MBit/s).
>> I can confirm this in my tests (27% more throughput using iperf), and
>> also have a small positive effect (5% more throughput) for HT rates,
>> tested on 1 stream.
>>
>> Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
>> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
>> ---
>>  net/mac80211/ibss.c |   13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
>> index fa862b2..1a5d29c 100644
>> --- a/net/mac80211/ibss.c
>> +++ b/net/mac80211/ibss.c
>> @@ -201,6 +201,19 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
>>         bss_change |= BSS_CHANGED_BASIC_RATES;
>>         bss_change |= BSS_CHANGED_HT;
>>         bss_change |= BSS_CHANGED_IBSS;
>> +
>> +       /* In 5 GHz/802.11a, we can always use short slot time.
>> +        * (IEEE 802.11-2012 18.3.8.7)
>> +        *
>> +        * In 2.4GHz, we must always use long slots in IBSS for compatibility
>> +        * reasons.
>> +        * (IEEE 802.11-2012 19.4.5)
>> +        *
>> +        * HT follows these specifications (IEEE 802.11-2012 20.3.18)
>> +        */
>> +       sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ;
>> +       bss_change |= BSS_CHANGED_ERP_SLOT;
>> +
> 
> I don't know if this is done elsewhere, but this code doesn't match
> the comment - there is no test for IBSS mode.
> 
> Thanks,
> 

Do you happen to know any code path that calls
__ieee80211_sta_join_ibss() without being in IBSS mode ?

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Wunderlich Dec. 4, 2012, 10:42 a.m. UTC | #3
Hey Julian,

On Tue, Dec 04, 2012 at 10:00:33AM +1100, Julian Calaby wrote:
> 
> I don't know if this is done elsewhere, but this code doesn't match
> the comment - there is no test for IBSS mode.

As Nicolas pointed out, this is only called in IBSS - it is part of the
ibss join/initialization code, so this is not a problem. :)

Cheers,
	Simon
Johannes Berg Dec. 4, 2012, 2:54 p.m. UTC | #4
On Mon, 2012-12-03 at 22:21 +0100, Simon Wunderlich wrote:
> In 5GHz/802.11a, we are allowed to use short slot times. Doing this
> may increases performance by 20% for legacy connections (54 MBit/s).
> I can confirm this in my tests (27% more throughput using iperf), and
> also have a small positive effect (5% more throughput) for HT rates,
> tested on 1 stream.

Applied.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Julian Calaby Dec. 4, 2012, 10:07 p.m. UTC | #5
Hi Nicolas,

On Tue, Dec 4, 2012 at 7:08 PM, Nicolas Cavallari
<Nicolas.Cavallari@lri.fr> wrote:
> On 04/12/2012 00:00, Julian Calaby wrote:
>> Hi Simon,
>>
>> On Tue, Dec 4, 2012 at 8:21 AM, Simon Wunderlich
>> <simon.wunderlich@s2003.tu-chemnitz.de> wrote:
>>> In 5GHz/802.11a, we are allowed to use short slot times. Doing this
>>> may increases performance by 20% for legacy connections (54 MBit/s).
>>> I can confirm this in my tests (27% more throughput using iperf), and
>>> also have a small positive effect (5% more throughput) for HT rates,
>>> tested on 1 stream.
>>>
>>> Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
>>> Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
>>> ---
>>>  net/mac80211/ibss.c |   13 +++++++++++++
>>>  1 file changed, 13 insertions(+)
>>>
>>> diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
>>> index fa862b2..1a5d29c 100644
>>> --- a/net/mac80211/ibss.c
>>> +++ b/net/mac80211/ibss.c
>>> @@ -201,6 +201,19 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
>>>         bss_change |= BSS_CHANGED_BASIC_RATES;
>>>         bss_change |= BSS_CHANGED_HT;
>>>         bss_change |= BSS_CHANGED_IBSS;
>>> +
>>> +       /* In 5 GHz/802.11a, we can always use short slot time.
>>> +        * (IEEE 802.11-2012 18.3.8.7)
>>> +        *
>>> +        * In 2.4GHz, we must always use long slots in IBSS for compatibility
>>> +        * reasons.
>>> +        * (IEEE 802.11-2012 19.4.5)
>>> +        *
>>> +        * HT follows these specifications (IEEE 802.11-2012 20.3.18)
>>> +        */
>>> +       sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ;
>>> +       bss_change |= BSS_CHANGED_ERP_SLOT;
>>> +
>>
>> I don't know if this is done elsewhere, but this code doesn't match
>> the comment - there is no test for IBSS mode.
>>
>> Thanks,
>>
>
> Do you happen to know any code path that calls
> __ieee80211_sta_join_ibss() without being in IBSS mode ?

Groan.

I clearly need to read patches better.

Thanks,
diff mbox

Patch

diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index fa862b2..1a5d29c 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -201,6 +201,19 @@  static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
 	bss_change |= BSS_CHANGED_BASIC_RATES;
 	bss_change |= BSS_CHANGED_HT;
 	bss_change |= BSS_CHANGED_IBSS;
+
+	/* In 5 GHz/802.11a, we can always use short slot time.
+	 * (IEEE 802.11-2012 18.3.8.7)
+	 *
+	 * In 2.4GHz, we must always use long slots in IBSS for compatibility
+	 * reasons.
+	 * (IEEE 802.11-2012 19.4.5)
+	 *
+	 * HT follows these specifications (IEEE 802.11-2012 20.3.18)
+	 */
+	sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ;
+	bss_change |= BSS_CHANGED_ERP_SLOT;
+
 	sdata->vif.bss_conf.ibss_joined = true;
 	sdata->vif.bss_conf.ibss_creator = creator;
 	ieee80211_bss_info_change_notify(sdata, bss_change);