2018-04-27 19:26:53

by Peter Oh

[permalink] [raw]
Subject: [PATCH] mesh: don't process mesh channel switch unless csa ie provided

From: Peter Oh <[email protected]>

There is no meaning to call ieee80211_mesh_process_chnswitch
without CSA IE provided, since the function will always return error.

Signed-off-by: Peter Oh <[email protected]>
---
net/mac80211/mesh.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index d51da26e9c18..8ced757dff8d 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -1196,7 +1196,7 @@ static void ieee80211_mesh_rx_bcn_presp(struct ieee80211_sub_if_data *sdata,
stype, mgmt, &elems, rx_status);

if (ifmsh->csa_role != IEEE80211_MESH_CSA_ROLE_INIT &&
- !sdata->vif.csa_active)
+ !sdata->vif.csa_active && elems.ch_switch_ie)
ieee80211_mesh_process_chnswitch(sdata, &elems, true);
}

--
2.11.0 (Apple Git-81)


2018-05-07 20:06:45

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mesh: don't process mesh channel switch unless csa ie provided

On Mon, 2018-05-07 at 13:04 -0700, Peter Oh wrote:
>
> On 05/07/2018 12:44 PM, Johannes Berg wrote:
> > On Fri, 2018-04-27 at 12:26 -0700, [email protected] wrote:
> > > From: Peter Oh <[email protected]>
> > >
> > > There is no meaning to call ieee80211_mesh_process_chnswitch
> > > without CSA IE provided, since the function will always return error.
> >
> > I'm not convinced, an extended channel switch element might be present
> > instead?
>
> I expected the comment. Yes, extended channel switch element could be
> present instead of channel switch element which I missed to take care
> of. So you can ignore the patch for now and I'll get back with right
> patch for it.

Heh. Well, but then why bother at all? I mean, the inner function will
do the check and fail, and nothing will happen, so why bother?

johannes

2018-05-07 20:04:27

by Peter Oh

[permalink] [raw]
Subject: Re: [PATCH] mesh: don't process mesh channel switch unless csa ie provided



On 05/07/2018 12:44 PM, Johannes Berg wrote:
> On Fri, 2018-04-27 at 12:26 -0700, [email protected] wrote:
>> From: Peter Oh <[email protected]>
>>
>> There is no meaning to call ieee80211_mesh_process_chnswitch
>> without CSA IE provided, since the function will always return error.
> I'm not convinced, an extended channel switch element might be present
> instead?
I expected the comment. Yes, extended channel switch element could be
present instead of channel switch element which I missed to take care
of. So you can ignore the patch for now and I'll get back with right
patch for it.

Thanks,
Peter

2018-05-07 19:44:49

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mesh: don't process mesh channel switch unless csa ie provided

On Fri, 2018-04-27 at 12:26 -0700, [email protected] wrote:
> From: Peter Oh <[email protected]>
>
> There is no meaning to call ieee80211_mesh_process_chnswitch
> without CSA IE provided, since the function will always return error.

I'm not convinced, an extended channel switch element might be present
instead?

johannes

2018-05-07 20:28:22

by Peter Oh

[permalink] [raw]
Subject: Re: [PATCH] mesh: don't process mesh channel switch unless csa ie provided



On 05/07/2018 01:06 PM, Johannes Berg wrote:
> On Mon, 2018-05-07 at 13:04 -0700, Peter Oh wrote:
>> On 05/07/2018 12:44 PM, Johannes Berg wrote:
>>> On Fri, 2018-04-27 at 12:26 -0700, [email protected] wrote:
>>>> From: Peter Oh <[email protected]>
>>>>
>>>> There is no meaning to call ieee80211_mesh_process_chnswitch
>>>> without CSA IE provided, since the function will always return error.
>>> I'm not convinced, an extended channel switch element might be present
>>> instead?
>> I expected the comment. Yes, extended channel switch element could be
>> present instead of channel switch element which I missed to take care
>> of. So you can ignore the patch for now and I'll get back with right
>> patch for it.
> Heh. Well, but then why bother at all? I mean, the inner function will
> do the check and fail, and nothing will happen, so why bother?
>
My real concern is that ieee80211_mesh_process_chnswitch function could
process at certain level of channel switch procedure although mesh
channel switch parameter element is not given which is mandatory of CSA
for mesh.
However the reason I didn't use mesh_chansw_params_ie to check is
because even though it is correct for standard, I'm not sure if it's
practically right. IMPO, sending CSA means devices (ap or mesh) detected
radar, so the ultimate goal to achieve is to evacuate the channel
although there is something missed in frames.

Peter