[PATCH v2 2/2] WNM: Use standard BSS selection and enable abridged bit handling
Ben Greear
greearb at candelatech.com
Wed Sep 18 09:59:29 PDT 2024
On 9/18/24 09:53, Benjamin Berg wrote:
> On Wed, 2024-09-18 at 09:17 -0700, Ben Greear wrote:
>> On 9/18/24 09:12, Berg, Benjamin wrote:
>>> On Wed, 2024-09-18 at 07:08 -0700, Ben Greear wrote:
>>>> On 9/18/24 05:39, Benjamin Berg wrote:
>>>>
>>>> [SNIP]
>>>> Or is that somehow handled in the current code elsewhere?
>>>
>>> No, I believe it does not do anything since the commit I mentioned.
>>>
>>> If bss_in_list is set and it is better, then it will have already been
>>> sorted to the start by find_better_target.
>>>
>>> If bss_in_list is not set, then obviously the code will not be reached
>>> and the found target is used.
>>>
>>> And yes, that does mean that we are effectively ignoring the
>>> order/precedence value in the neighbor report (apart from a zero
>>> preference to mean "disallowed"). But, I do not think it is a change in
>>> behaviour at this point in time.
>>
>> We need to dampen roams in the case where a user sits between two APs at nearly the same
>> RSSI (well, same estimated tput). It should not roam back and forth every time a small environmental change
>> happens. The code you are removing at least attempted to do that as far as I
>> can tell.
>
> Hmm, right, I misunderstood. Yes, it prevents the roam if estimated
> throughput is not better by a margin.
>
> So, we have this code path (slightly updated by this patch) in
> wnm_scan_process:
>
> if (pre_scan_check) {
> struct os_reltime age;
>
> if (!bss)
> return 0;
>
> os_reltime_age(&bss->last_update, &age);
> if (age.sec >= 10)
> return 0;
>
> #ifndef CONFIG_NO_ROAMING
> if (current_bss && bss != current_bss &&
> wpa_supplicant_need_to_roam_within_ess(wpa_s, current_bss,
> bss))
> return 0;
> #endif /* CONFIG_NO_ROAMING */
> }
>
> We could do something similar if we are allowed to stay on current_bss.
>
> Basically we could just call wpa_supplicant_need_to_roam_within_ess
> outside of the "pre_scan_check" if we are allowed to stay with the
> current BSS. If that code decides that we should not roam, we simply
> select current_bss as our target and are done.
>
> Does that seem reasonable to you? We could even just have the same
> 100/16 logic there … but, is that actually better?
I'm sorry, but I'm too busy with other things right now to do a good job of thinking
through your proposal. If we _must_ (re)connect for some reason, we should take the 'best'
AP, but if we are already associated, there should be some friction to roaming. As long
a you are satisfied you are considering and meeting these goals, then probably you
are fine.
Thanks,
Ben
>
> Benjamin
>
--
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc http://www.candelatech.com
More information about the Hostap
mailing list