3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-15 16:39:24 +01:00
iwd/doc/station-api.txt
James Prestwood 4c3cbdc8d3 doc: Document station Affinities property
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.
2024-09-03 10:18:50 -05:00

222 lines
7.2 KiB
Plaintext

Station hierarchy
=================
Service net.connman.iwd
Interface net.connman.iwd.Station
Object path /net/connman/iwd/{phy0,phy1,...}/{1,2,...}
Methods void Scan()
Schedule a network scan.
Possible errors: net.connman.iwd.Busy
net.connman.iwd.Failed
void Disconnect()
Disconnect from the network. This also disables
iwd from trying to autoconnect to any other network
with this device.
Possible errors: net.connman.iwd.Busy
net.connman.iwd.Failed
net.connman.iwd.NotConnected
array(on) GetOrderedNetworks()
Return the list of networks found in the most recent
scan, sorted by their user interface importance
score as calculated by iwd. If the device is
currently connected to a network, that network is
always first on the list, followed by any known
networks that have been used at least once before,
followed by any other known networks and any other
detected networks as the last group. Within these
groups the maximum relative signal-strength is the
main sorting factor.
Every record returned contains a tuple of the
following values.
object Object
net.connman.iwd.Network object representing
the network.
int16 SignalStrength
Network's maximum signal strength expressed
in 100 * dBm. The value is the range of 0
(strongest signal) to -10000 (weakest signal)
array(sns) GetHiddenAccessPoints() [experimental]
Returns a list (possibly empty) of detected hidden
access points. The list is sorted according to the
relative signal strength of each access point.
Every record returned contains a 3-tuple of the
following values.
string Address
Access Point's address
int16 SignalStrength
Access Point's signal strength expressed in
100 * dBm. The value is the range of 0
(strongest signal) to -10000 (weakest signal)
string Type
The type of the hidden Access Point. Same
values as Network.Type.
void ConnectHiddenNetwork(string ssid)
Tries to find and connect to a hidden network for the
first time. Only hidden networks of type 'psk' and
'open' are supported. WPA-Enterprise hidden networks
must be provisioned.
The ssid parameter is used to find the hidden network.
If no network with the given ssid is found, an
net.connman.iwd.NotFound error is returned.
In the unlikely case that both an open and pre-shared
key hidden network with the given ssid is found an
net.connman.iwd.ServiceSetOverlap error is returned.
Once the hidden network is found, the connection will
proceed as normal. So the user agent will be asked
for a passphrase, etc.
This method should only be called once to provision
a hidden network. For all future connections the
regular Network.Connect() API should be used.
Possible errors: net.connman.iwd.Busy
net.connman.iwd.Failed
net.connman.iwd.InvalidArguments
net.connman.iwd.NotConfigured
net.connman.iwd.NotConnected
net.connman.iwd.NotFound
net.connman.iwd.ServiceSetOverlap
net.connman.iwd.AlreadyProvisioned
net.connman.iwd.NotHidden
void RegisterSignalLevelAgent(object path,
array(int16) levels)
Register the agent object to receive signal strength
level change notifications on the
net.connman.iwd.SignalLevelAgent interface, see
below. The "levels" parameters decides the
thresholds in dBm that will generate a call to the
agent's Changed method whenever current RSSI crosses
any of the values. The values must be passed in
descending order. The number and distance between
requested threshold values is a compromise between
resolution and the frequency of system wakeups and
context-switches that are going to be occurring to
update the client's signal meter. Only one agent
can be registered at any time.
Possible Errors: [service].Error.InvalidArguments
[service].Error.Failed
[service].Error.AlreadyExists
[service].Error.NotSupported
void UnregisterSignalLevelAgent(object path)
Unregister an existing agent.
Possible Errors: [service].Error.InvalidArguments
[service].Error.NotFound
Properties string State [readonly]
Reflects the general network connection state. One of:
"connected", "disconnected", "connecting",
"disconnecting", "roaming"
object ConnectedNetwork [readonly, optional]
net.connman.iwd.Network object representing the
network the device is currently connected to or to
which a connection is in progress. This property
will be updated with the object path of the Network
object as soon as the connection process is initiated,
and will remain for as long as the connection is in
progress, completed and the network has not been
disconnected.
On disconnection this property becomes invalid and
disappears from the property list. Refer to the
State property documentation if you need to track
the actual state of the connection.
boolean Scanning [readonly]
Reflects whether the station is currently scanning
for networks. net.connman.iwd.Network objects are
updated when this property goes from true to false.
object ConnectedAccessPoint [readonly, optional]
net.connman.iwd.BasicServiceSet object represeting the
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{5G} at which point
IWD will proceed with normal roaming behavior.
This property is cleared on roams/disconnections.
SignalLevelAgent hierarchy
==========================
Service unique name
Interface net.connman.iwd.SignalLevelAgent
Object path freely definable
Methods void Release(object device) [noreply]
This method gets called when the service daemon
unregisters the agent. An agent can use it to do
cleanup tasks. There is no need to unregister the
agent, because when this method gets called it has
already been unregistered.
void Changed(object device, uint8 level) [noreply]
This method gets called when the signal strength
measurement for the device's connected network changes
enough to go from one level to another out of the N
ranges defined by the array of (N-1) threshold values
passed to RegisterSignalLevelAgent(). It also gets
called immediately after the signal level agent is
registered. The level parameter is in the range from 0
to N, 0 being the strongest signal or above the first
threshold value in the array, and N being the weakest
and below the last threshold value. For example if
RegisterSignalLevelAgent was called with the array [-40,
-50, -60], the 'level' parameter of 0 would mean signal
is received at -40 or more dBm and 3 would mean below
-60 dBm and might correspond to 1 out of 4 bars on a UI
signal meter.