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
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
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.