diff mbox

[2/3] hostapd: Fix explicit VHT channel switching

Message ID 1395146256-18815-3-git-send-email-michal.kazior@tieto.com
State Changes Requested
Headers show

Commit Message

Michal Kazior March 18, 2014, 12:37 p.m. UTC
The ieee80211ac wasn't properly set for CSA. This led to inconsistent
beacons in some cases.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
 src/ap/drv_callbacks.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Peer, Ilan March 19, 2014, 8:20 a.m. UTC | #1
Hi Michal,

> -----Original Message-----
> From: hostap-bounces@lists.shmoo.com [mailto:hostap-
> bounces@lists.shmoo.com] On Behalf Of Michal Kazior
> Sent: Tuesday, March 18, 2014 14:38
> To: j@w1.fi
> Cc: hostap@lists.shmoo.com
> Subject: [PATCH 2/3] hostapd: Fix explicit VHT channel switching
> 
> diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index
> 439bf66..9ed7601 100644
> --- a/src/ap/drv_callbacks.c
> +++ b/src/ap/drv_callbacks.c
> @@ -480,6 +480,8 @@ void hostapd_event_ch_switch(struct hostapd_data
> *hapd, int freq, int ht,
> 
>  	if (hapd->iface->csa_in_progress &&
>  	    freq == hapd->iface->cs_freq_params.freq) {
> +		hapd->iconf->ieee80211ac = hapd->iface-
> >cs_freq_params.vht_enabled;
> +

Same as in the previous patch I think. hapd->iface->cs_freq_params.vht_enabled is set based on the ieee80211ac, so I do not think that there is a need to update it here.

Regards,

Ilan.
Michal Kazior March 19, 2014, 8:27 a.m. UTC | #2
On 19 March 2014 09:20, Peer, Ilan <ilan.peer@intel.com> wrote:
> Hi Michal,
>
>> -----Original Message-----
>> From: hostap-bounces@lists.shmoo.com [mailto:hostap-
>> bounces@lists.shmoo.com] On Behalf Of Michal Kazior
>> Sent: Tuesday, March 18, 2014 14:38
>> To: j@w1.fi
>> Cc: hostap@lists.shmoo.com
>> Subject: [PATCH 2/3] hostapd: Fix explicit VHT channel switching
>>
>> diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index
>> 439bf66..9ed7601 100644
>> --- a/src/ap/drv_callbacks.c
>> +++ b/src/ap/drv_callbacks.c
>> @@ -480,6 +480,8 @@ void hostapd_event_ch_switch(struct hostapd_data
>> *hapd, int freq, int ht,
>>
>>       if (hapd->iface->csa_in_progress &&
>>           freq == hapd->iface->cs_freq_params.freq) {
>> +             hapd->iconf->ieee80211ac = hapd->iface-
>> >cs_freq_params.vht_enabled;
>> +
>
> Same as in the previous patch I think. hapd->iface->cs_freq_params.vht_enabled is set based on the ieee80211ac, so I do not think that there is a need to update it here.

With chan_switch you can have vht_enabled true/false. Without this
line you get invalid IEs after CSA in some cases.


MichaƂ
Peer, Ilan March 19, 2014, 11:11 a.m. UTC | #3
> -----Original Message-----
> From: Michal Kazior [mailto:michal.kazior@tieto.com]
> Sent: Wednesday, March 19, 2014 10:27
> To: Peer, Ilan
> Cc: j@w1.fi; hostap@lists.shmoo.com
> Subject: Re: [PATCH 2/3] hostapd: Fix explicit VHT channel switching
> 
> On 19 March 2014 09:20, Peer, Ilan <ilan.peer@intel.com> wrote:
> > Hi Michal,
> >
> >> -----Original Message-----
> >> From: hostap-bounces@lists.shmoo.com [mailto:hostap-
> >> bounces@lists.shmoo.com] On Behalf Of Michal Kazior
> >> Sent: Tuesday, March 18, 2014 14:38
> >> To: j@w1.fi
> >> Cc: hostap@lists.shmoo.com
> >> Subject: [PATCH 2/3] hostapd: Fix explicit VHT channel switching
> >>
> >> diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c index
> >> 439bf66..9ed7601 100644
> >> --- a/src/ap/drv_callbacks.c
> >> +++ b/src/ap/drv_callbacks.c
> >> @@ -480,6 +480,8 @@ void hostapd_event_ch_switch(struct
> hostapd_data
> >> *hapd, int freq, int ht,
> >>
> >>       if (hapd->iface->csa_in_progress &&
> >>           freq == hapd->iface->cs_freq_params.freq) {
> >> +             hapd->iconf->ieee80211ac = hapd->iface-
> >> >cs_freq_params.vht_enabled;
> >> +
> >
> > Same as in the previous patch I think. hapd->iface-
> >cs_freq_params.vht_enabled is set based on the ieee80211ac, so I do not
> think that there is a need to update it here.
> 
> With chan_switch you can have vht_enabled true/false. Without this line you
> get invalid IEs after CSA in some cases.

Agree that the current situation is not good, getting to situations that we report to support HT/VHT although this is not true. I just think that changing ieee80211ac is not the right path. As discussed previously, I think that it would be more appropriate to differentiate between the enabled capabilities and the actual current state, and use the current state (both HT/VHT) in the flows.

Ilan.
diff mbox

Patch

diff --git a/src/ap/drv_callbacks.c b/src/ap/drv_callbacks.c
index 439bf66..9ed7601 100644
--- a/src/ap/drv_callbacks.c
+++ b/src/ap/drv_callbacks.c
@@ -480,6 +480,8 @@  void hostapd_event_ch_switch(struct hostapd_data *hapd, int freq, int ht,
 
 	if (hapd->iface->csa_in_progress &&
 	    freq == hapd->iface->cs_freq_params.freq) {
+		hapd->iconf->ieee80211ac = hapd->iface->cs_freq_params.vht_enabled;
+
 		hostapd_cleanup_cs_params(hapd);
 
 		wpa_msg(hapd->msg_ctx, MSG_INFO, AP_CSA_FINISHED "freq=%d",