diff mbox series

[v5,14/17] mesh: do not allow scan result to swap pri/sec

Message ID 916392b0390a00f37d93a9dc00d89951534dbf1d.1527629631.git.peter.oh@bowerswilkins.com
State Changes Requested
Headers show
Series mesh: enable DFS channels in mesh mode | expand

Commit Message

Peter Oh May 29, 2018, 9:39 p.m. UTC
From: Peter Oh <peter.oh@bowerswilkins.com>

Swapping between primary and secondary channel will break
mesh from joining, hence don't allow it.

Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
---
 wpa_supplicant/wpa_supplicant.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jouni Malinen May 31, 2018, 9:09 a.m. UTC | #1
On Tue, May 29, 2018 at 02:39:18PM -0700, peter.oh@bowerswilkins.com wrote:
> Swapping between primary and secondary channel will break
> mesh from joining, hence don't allow it.

Could you please point to the location in the IEEE 802.11 standard that
describes this exception in co-ex requirements?
Peter Oh June 1, 2018, 12:54 a.m. UTC | #2
On 05/31/2018 02:09 AM, Jouni Malinen wrote:
> On Tue, May 29, 2018 at 02:39:18PM -0700, peter.oh@bowerswilkins.com wrote:
>> Swapping between primary and secondary channel will break
>> mesh from joining, hence don't allow it.
> Could you please point to the location in the IEEE 802.11 standard that
> describes this exception in co-ex requirements?
>
no direct exception addressed in co-ex requirement section, but in 
802.11-2016 14.2.4 Mesh STA configuration it says Mesh STA configuration 
treats as identical if
- For VHT mesh STAs, the Basic VHT-MCS and NSS fields in the VHT 
Operation element of the
MLME-START.request are identical to the Basic VHT-MCS and NSS fields in 
the VHT Operation
element received in the MLME-MESHPEERINGMANAGEMENT.indication.
* center frequency is a part of VHT operation element, hence if channel 
is swap, then it won't be treated as identical anymore.

- For HT mesh STAs, the Basic HT-MCS Set field of the HT Operation 
parameter of the MLMESTART.
request is identical to the HT Operation element received in the 
MLMEMESHPEERINGMANAGEMENT.
indication.
* primary channel is part of HT operation parameter although standard 
addresses only Basic HT set here.

in Table 9-365: Mesh Peering Open frame Action field format
- 20/40 BSS Coexistence element in mesh is optional which current 
wpa_supplicant doesn't present  in mesh action frame.

Not sure if these sections are good enough to convince you, but there is 
drivers (not clearly remember if it's drivers or mac80211) limitation 
which needs this patch.
However this single patch can be dropped, since it's a kind of improving 
reliability patch, not a functional patch. let me know if you want me to 
drop it.

Thanks,
Peter
Jouni Malinen June 11, 2018, 4:58 p.m. UTC | #3
On Thu, May 31, 2018 at 05:54:33PM -0700, Peter Oh wrote:
> no direct exception addressed in co-ex requirement section, but in
> 802.11-2016 14.2.4 Mesh STA configuration it says Mesh STA configuration
> treats as identical if
> - For VHT mesh STAs, the Basic VHT-MCS and NSS fields in the VHT Operation
> element of the
> MLME-START.request are identical to the Basic VHT-MCS and NSS fields in the
> VHT Operation
> element received in the MLME-MESHPEERINGMANAGEMENT.indication.
> * center frequency is a part of VHT operation element, hence if channel is
> swap, then it won't be treated as identical anymore.
> 
> - For HT mesh STAs, the Basic HT-MCS Set field of the HT Operation parameter
> of the MLMESTART.
> request is identical to the HT Operation element received in the
> MLMEMESHPEERINGMANAGEMENT.
> indication.
> * primary channel is part of HT operation parameter although standard
> addresses only Basic HT set here.
> 
> in Table 9-365: Mesh Peering Open frame Action field format
> - 20/40 BSS Coexistence element in mesh is optional which current
> wpa_supplicant doesn't present  in mesh action frame.
> 
> Not sure if these sections are good enough to convince you, but there is
> drivers (not clearly remember if it's drivers or mac80211) limitation which
> needs this patch.

Could you please identify the exact limitations that "need this patch"?
I'm trying to understand whether this is just trying to hide an issue
that should really be fixed somewhere else.

> However this single patch can be dropped, since it's a kind of improving
> reliability patch, not a functional patch. let me know if you want me to
> drop it.

Huh? Improving reliability? That does not match the previous claim that
there are limitation that need this patch. So no, I'm certainly not
taking this without a clear description of why it is needed.
Peter Oh June 12, 2018, 6:07 p.m. UTC | #4
On 06/11/2018 09:58 AM, Jouni Malinen wrote:
> On Thu, May 31, 2018 at 05:54:33PM -0700, Peter Oh wrote:
> Could you please identify the exact limitations that "need this patch"?
> I'm trying to understand whether this is just trying to hide an issue
> that should really be fixed somewhere else.
The purpose of this patch is to avoid peer link failure due to swapping 
primary and secondary channel.
But as I replied in "mesh: do not allow pri/sec channel switch" patch, 
this exception may be not the right approach and could hide an existing 
issue. But again this patch series is to make mesh point use DFS 
channels, not to fix existing issue, so I'll remove this patch from the 
series in next revision.

>> However this single patch can be dropped, since it's a kind of improving
>> reliability patch, not a functional patch. let me know if you want me to
>> drop it.
> Huh? Improving reliability? That does not match the previous claim that
> there are limitation that need this patch. So no, I'm certainly not
> taking this without a clear description of why it is needed.
>
This is my commit message of this patch. "Swapping between primary and 
secondary channel will break mesh from joining, hence don't allow it."
swapping pri/sec channel does not alway happen which means mesh could be 
still able to join each other without this patch if swapping pri/sec 
doesn't happen after scan. But there are chances that swapping is 
happening after scan due to neighbor environment. Improving reliability 
here means improve peer link reliability by avoid such swap happening 
which leads mesh peer link failure.
But again I understood your concern and will remove this patch from the 
series and handle the swap pri/sec issue separately later.

Thanks,
Peter
diff mbox series

Patch

diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index df71b4f..b26e933 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -2185,7 +2185,7 @@  void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
 	}
 	freq->sec_channel_offset = ht40;
 
-	if (obss_scan) {
+	if (ssid->mode != WPAS_MODE_MESH && obss_scan) {
 		struct wpa_scan_results *scan_res;
 
 		scan_res = wpa_supplicant_get_scan_results(wpa_s, NULL, 0);