<feed xmlns='http://www.w3.org/2005/Atom'>
<title>usteer/openwrt, branch master</title>
<subtitle>OpenWrt AP service for client steering</subtitle>
<id>https://git.openwrt.org/project/usteer/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/usteer/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/'/>
<updated>2026-05-19T21:52:45Z</updated>
<entry>
<title>ubus: added reassoc_delay and reason code</title>
<updated>2026-05-19T21:52:45Z</updated>
<author>
<name>Nils Hendrik Rottgardt</name>
</author>
<published>2024-11-03T19:42:20Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=7532e1252fb937fe34b6da05e86fd34babd91ef5'/>
<id>urn:sha1:7532e1252fb937fe34b6da05e86fd34babd91ef5</id>
<content type='text'>
Multi Band Operations (MBO) provide stations with additional information
about roaming requests. Reassociation delay avoids ping-pong between APs.
By default a delay of 30s is requested from the station.
MBO code 5 defines signal quality as a reason for roaming. This could be
enhanced in the future by responding with other dynamically defined
reasons to improve further how transitions are handled by stations.

- ubus: add reason code to bss_transition request (actually static only)
- ubus: add reassociation delay to let the client know how long it should stay at the new AP
  dereived from station block timeout.
- main: add config option for reassociation delay with 30s as default

Signed-off-by: Nils Hendrik Rottgardt &lt;n.rottgardt@gmail.com&gt;
</content>
</entry>
<entry>
<title>policy: add dynamic signal threshold to band-steering</title>
<updated>2026-05-19T21:52:37Z</updated>
<author>
<name>Nils Hendrik Rottgardt</name>
</author>
<published>2024-11-10T22:47:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=7b1379a951be3a7b3f9b35099b20857038cb5b30'/>
<id>urn:sha1:7b1379a951be3a7b3f9b35099b20857038cb5b30</id>
<content type='text'>
Avoids ping-pong between bands by adding a dynamic signal threshold.
If 5Ghz band is below roaming threshold (e.g. -70) and 2,4Ghz over
band-steering threshold (e.g. -50) this adds a dynamic threshold
depends on the signal level when station has connected. It adapts to
worser signal slowly. This allows to reduce the check interval to
lower values like 30s as new standard.

- band_steering: added dynamic signal threshold
- main: added config option band_steering_signal threshold which specifies
  the difference until a signal is defined as "better" and band steering
  is triggered
- main: reduced interval to 30000ms to get in use of dynamic threshold
  more often. It is not neccessary to "wait" anymore to steer a station
  to a higher band.
- usteer: updated default in config

Signed-off-by: Nils Hendrik Rottgardt &lt;n.rottgardt@gmail.com&gt;
</content>
</entry>
<entry>
<title>policy: optimized steering with different levels of aggressiveness</title>
<updated>2026-05-19T21:51:11Z</updated>
<author>
<name>Nils Hendrik Rottgardt</name>
</author>
<published>2024-10-20T11:28:35Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=49ba5f1869bb54755bc0f2b521ae17aaa8d03112'/>
<id>urn:sha1:49ba5f1869bb54755bc0f2b521ae17aaa8d03112</id>
<content type='text'>
Add some new options and also changed disassociation_timer/_imminent call
to have a better roaming experience. This is necessary for some Intel WiFi
cards ignoring actual transition request frames due
to expecting a combination of disassociation_timer and
disassociation_imminent = true.
According to posts on the OpenWrt forum this behavior isn't limited
to just Intel WiFi cards. Affected stations respond with
BSS-TM-RESP status=1 (error) and refuse to roam.

- Add new aggr. levels combined with station specific configuration
- Set disassociation imminent and timer as default option to have a
  better roaming by default
- Use abridged flag to put priority on neighbors provided
- Take care of correct disassociation_timer corresponding to kick_time
- Let Disassociation Timer run a countdown before dissassociating the station
  if roam_kick_delay is longer than validity_period like defined in IEEE.
  Fix validity_period to 100 beacon intervals.
- Add new logging messages (verbose and debug) to visualize the station behaviour

Signed-off-by: Nils Hendrik Rottgardt &lt;n.rottgardt@gmail.com&gt;
</content>
</entry>
<entry>
<title>main: disable probe steering by default</title>
<updated>2022-06-28T00:27:20Z</updated>
<author>
<name>Stijn Tintel</name>
</author>
<published>2022-06-27T19:48:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=87de1ab6553cb9a4bdbae39621962d7f487d1788'/>
<id>urn:sha1:87de1ab6553cb9a4bdbae39621962d7f487d1788</id>
<content type='text'>
As probe steering only makes sense in specific deployments, it should be
disabled by default.

Update the example config to reflect this change.

Signed-off-by: Stijn Tintel &lt;stijn@linux-ipv6.be&gt;
Acked-by: David Bauer &lt;mail@david-bauer.net&gt;
</content>
</entry>
<entry>
<title>usteer: add option for probe steering</title>
<updated>2022-06-28T00:27:13Z</updated>
<author>
<name>Stijn Tintel</name>
</author>
<published>2022-06-27T19:26:02Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=73c424b9e4d7251aa23f110cce1ea70e06c1a51f'/>
<id>urn:sha1:73c424b9e4d7251aa23f110cce1ea70e06c1a51f</id>
<content type='text'>
Probe suppression is mostly useful in high density deployments, where
all APs responding to all client probes would result in all channels
being saturated. It effectively hides APs from clients, and can cause
problems in normal density deployments.

Add an option for it, so it can be disabled.

Signed-off-by: Stijn Tintel &lt;stijn@linux-ipv6.be&gt;
Acked-by: David Bauer &lt;mail@david-bauer.net&gt;
</content>
</entry>
<entry>
<title>main: disable load balancing by default</title>
<updated>2022-06-28T00:27:02Z</updated>
<author>
<name>Stijn Tintel</name>
</author>
<published>2022-06-27T13:19:41Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=80b0b652bc2c6f33c205d3ac55db660953e7f609'/>
<id>urn:sha1:80b0b652bc2c6f33c205d3ac55db660953e7f609</id>
<content type='text'>
As load-balancing only makes sense in specific deployments, it should be
disabled by default.

Update the example config to reflect this change.

Signed-off-by: Stijn Tintel &lt;stijn@linux-ipv6.be&gt;
Acked-by: David Bauer &lt;mail@david-bauer.net&gt;
</content>
</entry>
<entry>
<title>local-node: periodically send link-measurement requests</title>
<updated>2022-04-04T15:08:07Z</updated>
<author>
<name>David Bauer</name>
</author>
<published>2022-03-26T21:58:15Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=f88ac239034e06ae18b398dfa5058d60a574f877'/>
<id>urn:sha1:f88ac239034e06ae18b398dfa5058d60a574f877</id>
<content type='text'>
Send link-measurement requests to every supporting local-sta in order to
acquire information to assess the link-quality bi-directional.

The link-measurement request is sent each configurable interval. It can
be disabled by configuring the interval to 0.

Signed-off-by: David Bauer &lt;mail@david-bauer.net&gt;
</content>
</entry>
<entry>
<title>band-steering: add band-steering component</title>
<updated>2022-03-18T20:46:29Z</updated>
<author>
<name>David Bauer</name>
</author>
<published>2022-03-15T21:56:14Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=f4e120c9a3f460cd8478f072d4c7879e1bf98136'/>
<id>urn:sha1:f4e120c9a3f460cd8478f072d4c7879e1bf98136</id>
<content type='text'>
This adds a new band-steering component to usteer.

With band-steering enabled, usteer will attempt to move clients with a
consistently good SNR / signal from 2.4 GHz to the 5 GHz band.

In contrast to existing policies usteer tracks, band-steering is
non-invasive and will not lead to forceful connection termination.

Signed-off-by: David Bauer &lt;mail@david-bauer.net&gt;
</content>
</entry>
<entry>
<title>policy: add steer-reject-timeout</title>
<updated>2022-03-18T20:46:29Z</updated>
<author>
<name>David Bauer</name>
</author>
<published>2022-02-23T22:44:57Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=439acc5d2bdd26dbfb63435269a2daeb26a21133'/>
<id>urn:sha1:439acc5d2bdd26dbfb63435269a2daeb26a21133</id>
<content type='text'>
Add a timeout in case a STA rejected a transition request. For this
configurable timeframe, usteer will refrain from steering the client
another time.

Signed-off-by: David Bauer &lt;mail@david-bauer.net&gt;
</content>
</entry>
<entry>
<title>add local_mode config option</title>
<updated>2022-03-17T09:05:56Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2022-03-17T09:00:12Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/usteer/commit/?id=32fed79117cd816dab78c30047e659358d9ec251'/>
<id>urn:sha1:32fed79117cd816dab78c30047e659358d9ec251</id>
<content type='text'>
This prevents communication with other usteer nodes and allows it to be
used for purely local band steering / load balancing

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
</feed>
