diff mbox series

[v2,1/8] doc: Document station Affinities property

Message ID 20240819175151.1310546-1-prestwoj@gmail.com (mailing list archive)
State New
Headers show
Series [v2,1/8] doc: Document station Affinities property | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
prestwoj/iwd-alpine-ci-fetch success Fetch PR
prestwoj/iwd-alpine-ci-setupell success Prep - Setup ELL
prestwoj/iwd-ci-fetch success Fetch PR
prestwoj/iwd-ci-gitlint success GitLint
prestwoj/iwd-ci-setupell success Prep - Setup ELL
prestwoj/iwd-alpine-ci-makedistcheck success Make Distcheck
prestwoj/iwd-ci-makedistcheck success Make Distcheck
prestwoj/iwd-alpine-ci-build success Build - Configure
prestwoj/iwd-ci-build success Build - Configure
prestwoj/iwd-ci-makecheckvalgrind success Make Check w/Valgrind
prestwoj/iwd-ci-makecheck success Make Check
prestwoj/iwd-ci-clang success clang PASS
prestwoj/iwd-alpine-ci-makecheckvalgrind success Make Check w/Valgrind
prestwoj/iwd-alpine-ci-makecheck success Make Check
prestwoj/iwd-ci-incremental_build success Incremental Build with patches
prestwoj/iwd-alpine-ci-incremental_build success Incremental Build with patches
prestwoj/iwd-ci-testrunner success test-runner PASS

Commit Message

James Prestwood Aug. 19, 2024, 5:51 p.m. UTC
This documents new DBus property that expose a bit more control to
how IWD roams.

Setting the affinity on the connected BSS effectively "locks" IWD to
that BSS (except at critical RSSI levels, explained below). This can
be useful for clients that have access to more information about the
environment than IWD. For example, if a client is stationary there
is likely no point in trying to roam until it has moved elsewhere.

A new main.conf option would also be added:

[General].CriticalRoamThreshold

This would be the new roam threshold set if the currently connected
BSS is in the Affinities list. If the RSSI continues to drop below
this level IWD will still attempt to roam.
---
 doc/station-api.txt | 17 +++++++++++++++++
 src/iwd.config.rst  | 16 ++++++++++++++++
 2 files changed, 33 insertions(+)

Comments

Denis Kenzior Aug. 23, 2024, 4:03 p.m. UTC | #1
Hi James,

On 8/19/24 12:51 PM, James Prestwood wrote:
> This documents new DBus property that expose a bit more control to
> how IWD roams.
> 
> Setting the affinity on the connected BSS effectively "locks" IWD to
> that BSS (except at critical RSSI levels, explained below). This can
> be useful for clients that have access to more information about the
> environment than IWD. For example, if a client is stationary there
> is likely no point in trying to roam until it has moved elsewhere.
> 
> A new main.conf option would also be added:
> 
> [General].CriticalRoamThreshold
> 
> This would be the new roam threshold set if the currently connected
> BSS is in the Affinities list. If the RSSI continues to drop below
> this level IWD will still attempt to roam.
> ---
>   doc/station-api.txt | 17 +++++++++++++++++
>   src/iwd.config.rst  | 16 ++++++++++++++++
>   2 files changed, 33 insertions(+)

Couple of questions:

> +			Setting the affinity will lower the roaming threshold,
> +			effectively locking IWD to the current BSS unless the
> +			RSSI drops below the critical threshold set by
> +			[General].CriticalRoamThreshold{_5GHz} at which point

Should '{_5GHz}' be without the '_'?

<snip>

> +
> +   * - CriticalRoamThreshold5G

What about 6G?

> +     - Value: rssi dBm value, from -100 to 1, default: **-82**
> +
> +       This has the same effect as ``CriticalRoamThreshold``, but for the 5GHz
> +       band.
> +
>      * - RoamRetryInterval
>        - Value: unsigned int value in seconds (default: **60**)
>   

Regards,
-Denis
James Prestwood Aug. 23, 2024, 4:09 p.m. UTC | #2
Hi Denis,

On 8/23/24 9:03 AM, Denis Kenzior wrote:
> Hi James,
>
> On 8/19/24 12:51 PM, James Prestwood wrote:
>> This documents new DBus property that expose a bit more control to
>> how IWD roams.
>>
>> Setting the affinity on the connected BSS effectively "locks" IWD to
>> that BSS (except at critical RSSI levels, explained below). This can
>> be useful for clients that have access to more information about the
>> environment than IWD. For example, if a client is stationary there
>> is likely no point in trying to roam until it has moved elsewhere.
>>
>> A new main.conf option would also be added:
>>
>> [General].CriticalRoamThreshold
>>
>> This would be the new roam threshold set if the currently connected
>> BSS is in the Affinities list. If the RSSI continues to drop below
>> this level IWD will still attempt to roam.
>> ---
>>   doc/station-api.txt | 17 +++++++++++++++++
>>   src/iwd.config.rst  | 16 ++++++++++++++++
>>   2 files changed, 33 insertions(+)
>
> Couple of questions:
>
>> +            Setting the affinity will lower the roaming threshold,
>> +            effectively locking IWD to the current BSS unless the
>> +            RSSI drops below the critical threshold set by
>> +            [General].CriticalRoamThreshold{_5GHz} at which point
>
> Should '{_5GHz}' be without the '_'?

Yep, that was a typo

>
> <snip>
>
>> +
>> +   * - CriticalRoamThreshold5G
>
> What about 6G?
We could add one for 6G as well, I was just maintaining what we had 
today with respect to the existing thresholds. I can add 6GHz thresholds 
across the board in a later patch set.
>
>
>> +     - Value: rssi dBm value, from -100 to 1, default: **-82**
>> +
>> +       This has the same effect as ``CriticalRoamThreshold``, but 
>> for the 5GHz
>> +       band.
>> +
>>      * - RoamRetryInterval
>>        - Value: unsigned int value in seconds (default: **60**)
>
> Regards,
> -Denis
Denis Kenzior Aug. 23, 2024, 4:11 p.m. UTC | #3
Hi James,
>>> +            [General].CriticalRoamThreshold{_5GHz} at which point
>>
>> Should '{_5GHz}' be without the '_'?
> 
> Yep, that was a typo

Okay, and I guess also drop the Hz since the setting is just 5G.

> 
>>
>> <snip>
>>
>>> +
>>> +   * - CriticalRoamThreshold5G
>>
>> What about 6G?
> We could add one for 6G as well, I was just maintaining what we had today with 
> respect to the existing thresholds. I can add 6GHz thresholds across the board 
> in a later patch set.

Okay, that's fine.

Regards,
-Denis
diff mbox series

Patch

diff --git a/doc/station-api.txt b/doc/station-api.txt
index 84f1b7bf..0bd4a352 100644
--- a/doc/station-api.txt
+++ b/doc/station-api.txt
@@ -170,6 +170,23 @@  Properties	string State [readonly]
 			BSS the device is currently connected to or to which
 			a connection is in progress.
 
+		ao Affinities [optional] [experimental]
+
+			Array of net.connman.iwd.BasicServiceSet object paths
+			that will be treated with higher affinity compared to
+			other BSS's. Currently the only allowed value to be
+			set in this array is the path to the currently connected
+			BasicServiceSet object, i.e.
+			Station.ConnectedAccessPoint.
+
+			Setting the affinity will lower the roaming threshold,
+			effectively locking IWD to the current BSS unless the
+			RSSI drops below the critical threshold set by
+			[General].CriticalRoamThreshold{_5GHz} at which point
+			IWD will proceed with normal roaming behavior.
+
+			This property is cleared on roams/disconnections.
+
 SignalLevelAgent hierarchy
 ==========================
 
diff --git a/src/iwd.config.rst b/src/iwd.config.rst
index d9c94e01..2d1f6dcd 100644
--- a/src/iwd.config.rst
+++ b/src/iwd.config.rst
@@ -130,6 +130,22 @@  The group ``[General]`` contains general settings.
        This value can be used to control how aggressively **iwd** roams when
        connected to a 5GHz access point.
 
+   * - CriticalRoamThreshold
+     - Value: rssi dBm value, from -100 to 1, default: **-80**
+
+       The threshold (for 2.4GHz) at which IWD will roam regardless of the
+       affinity set to the current BSS. If the connected BSS has affinity
+       (set in Station's Affinities list) the roam threshold will be lowed to
+       this value and IWD will not attempt to roam (or roam scan) until either
+       the affinity is cleared, or the signal drops below this threshold.
+
+
+   * - CriticalRoamThreshold5G
+     - Value: rssi dBm value, from -100 to 1, default: **-82**
+
+       This has the same effect as ``CriticalRoamThreshold``, but for the 5GHz
+       band.
+
    * - RoamRetryInterval
      - Value: unsigned int value in seconds (default: **60**)