2020-03-05 14:05:23

by Nicolas Cavallari

[permalink] [raw]
Subject: [PATCH] mac80211: Do not send mesh HWMP PREQ if HWMP is disabled

From: Nicolas Cavallari <[email protected]>

When trying to transmit to an unknown destination, the mesh code would
unconditionally transmit a HWMP PREQ even if HWMP is not the current
path selection algorithm.

Signed-off-by: Nicolas Cavallari <[email protected]>
---
net/mac80211/mesh_hwmp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index d69983370381..38a0383dfbcf 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -1152,7 +1152,8 @@ int mesh_nexthop_resolve(struct ieee80211_sub_if_data *sdata,
}
}

- if (!(mpath->flags & MESH_PATH_RESOLVING))
+ if (!(mpath->flags & MESH_PATH_RESOLVING) &&
+ mesh_path_sel_is_hwmp(sdata))
mesh_queue_preq(mpath, PREQ_Q_F_START);

if (skb_queue_len(&mpath->frame_queue) >= MESH_FRAME_QUEUE_LEN)
--
2.25.1


2020-03-05 20:16:30

by Thomas Pedersen

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Do not send mesh HWMP PREQ if HWMP is disabled

On 3/5/20 6:04 AM, Nicolas Cavallari wrote:
> From: Nicolas Cavallari <[email protected]>
>
> When trying to transmit to an unknown destination, the mesh code would
> unconditionally transmit a HWMP PREQ even if HWMP is not the current
> path selection algorithm.
>
> Signed-off-by: Nicolas Cavallari <[email protected]>
> ---
> net/mac80211/mesh_hwmp.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
> index d69983370381..38a0383dfbcf 100644
> --- a/net/mac80211/mesh_hwmp.c
> +++ b/net/mac80211/mesh_hwmp.c
> @@ -1152,7 +1152,8 @@ int mesh_nexthop_resolve(struct ieee80211_sub_if_data *sdata,
> }
> }
>
> - if (!(mpath->flags & MESH_PATH_RESOLVING))
> + if (!(mpath->flags & MESH_PATH_RESOLVING) &&
> + mesh_path_sel_is_hwmp(sdata))
> mesh_queue_preq(mpath, PREQ_Q_F_START);
>
> if (skb_queue_len(&mpath->frame_queue) >= MESH_FRAME_QUEUE_LEN)
>

The skb would still get queued onto the mpath->frame_queue. Is it
this expected? ie. do you have a non-hwmp path selection algorithm which
will handle it, or are you really checking if path selection is
disabled?

--
-- thomas

2020-03-06 08:51:05

by Nicolas Cavallari

[permalink] [raw]
Subject: Re: [PATCH] mac80211: Do not send mesh HWMP PREQ if HWMP is disabled

On 05/03/2020 21:07, Thomas Pedersen wrote:
> On 3/5/20 6:04 AM, Nicolas Cavallari wrote:
>> From: Nicolas Cavallari <[email protected]>
>>
>> When trying to transmit to an unknown destination, the mesh code would
>> unconditionally transmit a HWMP PREQ even if HWMP is not the current
>> path selection algorithm.
>>
>
> The skb would still get queued onto the mpath->frame_queue. Is it
> this expected? ie. do you have a non-hwmp path selection algorithm which
> will handle it, or are you really checking if path selection is
> disabled?


Well, there is no way to disable path selection, is it ? The only way for
HWMP to be disabled is to use a vendor path selection, right ?
So as soon as userspace adds the path, the skb will be sent.