public inbox for iwd@lists.linux.dev
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: James Prestwood <prestwoj@gmail.com>, iwd@lists.linux.dev
Subject: Re: [PATCH v2 2/4] knownnetworks: sort known frequencies by BSS rank
Date: Wed, 24 Jan 2024 13:06:58 -0600	[thread overview]
Message-ID: <3eaadb6e-53ff-443f-a638-ae091482a74f@gmail.com> (raw)
In-Reply-To: <edaa845f-5e5a-47c4-90da-820c294637e4@gmail.com>

Hi James,

On 1/24/24 12:55, James Prestwood wrote:
> 
> On 1/24/24 10:44 AM, Denis Kenzior wrote:
>> Hi James,
>>
>>>> Perhaps an easier way to accomplish this would be to add known frequencies 
>>>> in reverse bss->rank sorted order.  That way last seen frequency with best 
>>>> ranked BSS would be first?
>>>
>>> I'm not sure I understand, how would this be any different than just reversing
>>
>> Well, right now we maintain the least recently seen frequency list in a very 
>> simple way:
>>
>> - When scan results become available
>>     - Walk the result list (which is sorted by bss_rank?)
>>     - Add each result's frequency to the frequency cache
>>         - Remove any matching entry in the cache
>>         - Add it to head
>>
>> Since the result list is sorted, the top entry in the frequency cache is the 
>> least ranked.  This doesn't matter for small networks since there would only 
>> be a couple results.
>>
>> What we should do is to add the frequencies to the frequency cache in reverse 
>> order.  That way the highest ranked bss is at the top of the frequency cache.
> 
> Oh I see, I didn't realize the list was already sorted since its coming from 
> network->bss_list. But wouldn't we have the same problem here? Old frequencies 

There are a few paths.  One if network becoming promoted from unknown -> known, 
one for scan results being reported.  But in all or most cases the order is 
predetermined and would be by bss rank.

> with a high rank would remain at the front unless they were seen by a recent 

No, because each time the frequency cache is updated, new entries are put at the 
top of the list.  This automatically pushes older (as in least recently seen 
order) entries further down.

> scan. So if you saw a really high ranked AP once then never again it would 
> always stay at the front.

Nope.  Not in the current used implementation.

> 
> Another thing I didn't consider is multiple BSS's on the same frequency :)

This is generally not a problem since frequencies are stored per SSID, so for 
well planned networks you wouldn't have this.  But yes, this possibility is 
something you need to take into account.  My suggestion would still handle this 
nicely.

> 
> Maybe introducing a last seen time would help, though that adds even more 
> complication.

Yep.  Only reason to do so would be for serialization to disk I think.

Regards,
-Denis

  reply	other threads:[~2024-01-24 19:07 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-24 13:39 [PATCH v2 1/4] knownnetworks: pass scan_bss to known_network_add_frequency James Prestwood
2024-01-24 13:39 ` [PATCH v2 2/4] knownnetworks: sort known frequencies by BSS rank James Prestwood
2024-01-24 18:10   ` Denis Kenzior
2024-01-24 18:33     ` James Prestwood
2024-01-24 18:44       ` Denis Kenzior
2024-01-24 18:55         ` James Prestwood
2024-01-24 19:06           ` Denis Kenzior [this message]
2024-01-25 13:21             ` James Prestwood
2024-01-25 15:39               ` Denis Kenzior
2024-01-24 13:40 ` [PATCH v2 3/4] station: knownnetworks: limit quick scans to 5 freqs per network James Prestwood
2024-01-24 18:21   ` Denis Kenzior
2024-01-24 13:40 ` [PATCH v2 4/4] auto-t: add test for known frequency sorting/maximum James Prestwood
2024-01-24 18:16 ` [PATCH v2 1/4] knownnetworks: pass scan_bss to known_network_add_frequency Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3eaadb6e-53ff-443f-a638-ae091482a74f@gmail.com \
    --to=denkenz@gmail.com \
    --cc=iwd@lists.linux.dev \
    --cc=prestwoj@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox