<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/sta_info.h, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-06-24T13:19:26Z</updated>
<entry>
<title>wifi: mac80211: add support to accumulate removed link statistics</title>
<updated>2025-06-24T13:19:26Z</updated>
<author>
<name>Sarika Sharma</name>
</author>
<published>2025-05-28T05:44:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=80b2fa46791742cf8723813bcc93cf39f107c034'/>
<id>urn:sha1:80b2fa46791742cf8723813bcc93cf39f107c034</id>
<content type='text'>
Currently, if a link gets removed in between for a station then
directly accumulated data will fall down to sum of other active links.
This will bring inconsistency in station dump statistics.

For instance, let's take Tx packets
- at t=0-&gt; link-0:2 link-1:3 Tx packets =&gt; accumulated = 5
- at t=1-&gt; link-0:4 link-1:6 Tx packets =&gt; accumulated = 10
let say at t=2, link-0 went down =&gt; link-0:0 link-1:7 =&gt; accumulated = 7
Here, suddenly accumulated Tx packets will come down to 7 from 10.
This is showing inconsistency.

Therefore, store link-0 data when it went down and add to accumulated
Tx packet = 11.

Hence, store the removed link statistics data in sta structure and
add it in accumulated statistics for consistency.

Signed-off-by: Sarika Sharma &lt;quic_sarishar@quicinc.com&gt;
Link: https://patch.msgid.link/20250528054420.3050133-7-quic_sarishar@quicinc.com
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: add support towards MLO handling of station statistics</title>
<updated>2025-06-24T13:19:26Z</updated>
<author>
<name>Sarika Sharma</name>
</author>
<published>2025-05-28T05:44:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e581b7fe62218d390520287e0095bfd6fe0454f8'/>
<id>urn:sha1:e581b7fe62218d390520287e0095bfd6fe0454f8</id>
<content type='text'>
Currently, in supporting API's to fill sinfo structure from sta
structure, is mapped to fill the fields from sta-&gt;deflink. However,
for multi-link (ML) station, sinfo structure should be filled from
corresponding link_id.

Therefore, add  link_id as an additional argument in supporting API's
for filling sinfo structure correctly. Link_id is set to -1 for non-ML
station and corresponding link_id for ML stations. In supporting API's
for filling sinfo structure, check for link_id, if link_id &lt; 0, fill
the sinfo structure from sta-&gt;deflink, otherwise fill from
sta-&gt;link[link_id].

Current, changes are done at the deflink level i.e, pass -1 as link_id.
Actual link_id will be added in subsequent patches to support
station statistics for MLO.

Signed-off-by: Sarika Sharma &lt;quic_sarishar@quicinc.com&gt;
Link: https://patch.msgid.link/20250528054420.3050133-2-quic_sarishar@quicinc.com
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Revert "mac80211: Dynamically set CoDel parameters per station"</title>
<updated>2025-04-23T13:22:11Z</updated>
<author>
<name>Toke Høiland-Jørgensen</name>
</author>
<published>2025-04-03T18:39:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4876376988081d636a4c4e5f03a5556386b49087'/>
<id>urn:sha1:4876376988081d636a4c4e5f03a5556386b49087</id>
<content type='text'>
This reverts commit 484a54c2e597dbc4ace79c1687022282905afba0. The CoDel
parameter change essentially disables CoDel on slow stations, with some
questionable assumptions, as Dave pointed out in [0]. Quoting from
there:

  But here are my pithy comments as to why this part of mac80211 is so
  wrong...

   static void sta_update_codel_params(struct sta_info *sta, u32 thr)
   {
  -       if (thr &amp;&amp; thr &lt; STA_SLOW_THRESHOLD * sta-&gt;local-&gt;num_sta) {

  1) sta-&gt;local-&gt;num_sta is the number of associated, rather than
  active, stations. "Active" stations in the last 50ms or so, might have
  been a better thing to use, but as most people have far more than that
  associated, we end up with really lousy codel parameters, all the
  time. Mistake numero uno!

  2) The STA_SLOW_THRESHOLD was completely arbitrary in 2016.

  -               sta-&gt;cparams.target = MS2TIME(50);

  This, by itself, was probably not too bad. 30ms might have been
  better, at the time, when we were battling powersave etc, but 20ms was
  enough, really, to cover most scenarios, even where we had low rate
  2Ghz multicast to cope with. Even then, codel has a hard time finding
  any sane drop rate at all, with a target this high.

  -               sta-&gt;cparams.interval = MS2TIME(300);

  But this was horrible, a total mistake, that is leading to codel being
  completely ineffective in almost any scenario on clients or APS.
  100ms, even 80ms, here, would be vastly better than this insanity. I'm
  seeing 5+seconds of delay accumulated in a bunch of otherwise happily
  fq-ing APs....

  100ms of observed jitter during a flow is enough. Certainly (in 2016)
  there were interactions with powersave that I did not understand, and
  still don't, but if you are transmitting in the first place, powersave
  shouldn't be a problemmmm.....

  -               sta-&gt;cparams.ecn = false;

  At the time we were pretty nervous about ecn, I'm kind of sanguine
  about it now, and reliably indicating ecn seems better than turning it
  off for any reason.

  [...]

  In production, on p2p wireless, I've had 8ms and 80ms for target and
  interval for years now, and it works great.

I think Dave's arguments above are basically sound on the face of it,
and various experimentation with tighter CoDel parameters in the OpenWrt
community have show promising results[1]. So I don't think there's any
reason to keep this parameter fiddling; hence this revert.

[0] https://lore.kernel.org/linux-wireless/CAA93jw6NJ2cmLmMauz0xAgC2MGbBq6n0ZiZzAdkK0u4b+O2yXg@mail.gmail.com/
[1] https://forum.openwrt.org/t/reducing-multiplexing-latencies-still-further-in-wifi/133605/130

Suggested-By: Dave Taht &lt;dave.taht@gmail.com&gt;
In-memory-of: Dave Taht &lt;dave.taht@gmail.com&gt;
Signed-off-by: Toke Høiland-Jørgensen &lt;toke@toke.dk&gt;
Link: https://patch.msgid.link/20250403183930.197716-1-toke@toke.dk
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: add some support for RX OMI power saving</title>
<updated>2025-01-13T14:26:43Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2025-01-01T05:05:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da7f40c05c16ea35afef41f64a22689b2d974b14'/>
<id>urn:sha1:da7f40c05c16ea35afef41f64a22689b2d974b14</id>
<content type='text'>
In order to save power, it can be desirable to change the
RX operating mode using OMI to reduce the bandwidth. As the
handshake must be done in the HTC+ field, it cannot be done
by mac80211 directly, so expose functions to the driver to
request and finalize the necessary updates.

Note that RX OMI really only changes what the peer (AP) will
transmit to us, but in order to use it to actually save some
power (by reducing the listen bandwidth) we also update rate
scaling and then the channel context's mindef accordingly.

The updates are split into two in order to sequence them
correctly, when reducing bandwidth first reduce the rate
scaling and thus TX, then send OMI, then reduce the listen
bandwidth (chandef); when increasing bandwidth this is the
other way around. This also requires tracking in different
variables which part is applicable already.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Miri Korenblit &lt;miriam.rachel.korenblit@intel.com&gt;
Link: https://patch.msgid.link/20250101070249.2c1a1934bd73.I4e90fd503504e37f9eac5bdae62e3f07e7071275@changeid
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: add an option to filter a sta from being flushed</title>
<updated>2025-01-13T12:53:04Z</updated>
<author>
<name>Miri Korenblit</name>
</author>
<published>2024-12-24T17:27:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a10723ced430de1b45572d84c0e4bcf5b671380c'/>
<id>urn:sha1:a10723ced430de1b45572d84c0e4bcf5b671380c</id>
<content type='text'>
Sometimes we might want to flush only part of the stations of a vif,
for example only the TDLS ones.
To allow this, add a do_not_flush_sta argument to __sta_info_flush,
which in turn, will not flush this station.

Signed-off-by: Miri Korenblit &lt;miriam.rachel.korenblit@intel.com&gt;
Link: https://patch.msgid.link/20241224192322.535e1fcca192.Icecf7f443bf98c9535ce8ec03b24d0d17dfbc28e@changeid
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211, cfg80211: miscellaneous spelling fixes</title>
<updated>2024-10-08T19:52:09Z</updated>
<author>
<name>Dmitry Antipov</name>
</author>
<published>2024-09-13T08:49:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b482281eeb263d5bbbe75e1c5688d80daabb20e'/>
<id>urn:sha1:4b482281eeb263d5bbbe75e1c5688d80daabb20e</id>
<content type='text'>
Correct spelling here and there as suggested by codespell.

Signed-off-by: Dmitry Antipov &lt;dmantipov@yandex.ru&gt;
Link: https://patch.msgid.link/20240913084919.118862-1-dmantipov@yandex.ru
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: add ieee80211_tdls_sta_link_id()</title>
<updated>2024-06-26T08:22:04Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2024-06-12T12:35:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d42fcaece03654a4b21d2da88d68ed913e0b6c46'/>
<id>urn:sha1:d42fcaece03654a4b21d2da88d68ed913e0b6c46</id>
<content type='text'>
We've open-coded this twice and will need it again,
add ieee80211_tdls_sta_link_id() to get the one link
ID for a TDLS STA.

Reviewed-by: Miriam Rachel Korenblit &lt;miriam.rachel.korenblit@intel.com&gt;
Link: https://patch.msgid.link/20240612143707.9f8141ae1725.I343822bbba0ae08dedb2f54a0ce87f2ae5ebeb2b@changeid
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: add return docs for sta_info_flush()</title>
<updated>2024-04-19T08:27:21Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2024-04-19T08:21:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=630009e2440d31683d734165a06365f49acc37d4'/>
<id>urn:sha1:630009e2440d31683d734165a06365f49acc37d4</id>
<content type='text'>
Use the Return: annotation instead of spelling out "Returns" in
the documentation, for both sta_info_flush()/__sta_info_flush().

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: track capability/opmode NSS separately</title>
<updated>2024-03-04T13:25:27Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2024-02-28T11:01:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a8bca3e9371dc5e276af4168be099b2a05554c2a'/>
<id>urn:sha1:a8bca3e9371dc5e276af4168be099b2a05554c2a</id>
<content type='text'>
We're currently tracking rx_nss for each station, and that
is meant to be initialized to the capability NSS and later
reduced by the operating mode notification NSS.

However, we're mixing up capabilities and operating mode
NSS in the same variable. This forces us to recalculate
the NSS capability on operating mode notification RX,
which is a bit strange; due to the previous fix I had to
never keep rx_nss as zero, it also means that the capa is
never taken into account properly.

Fix all this by storing the capability value, that can be
recalculated unconditionally whenever needed, and storing
the operating mode notification NSS separately, taking it
into account when assigning the final rx_nss value.

Cc: stable@vger.kernel.org
Fixes: dd6c064cfc3f ("wifi: mac80211: set station RX-NSS on reconfig")
Reviewed-by: Miriam Rachel Korenblit &lt;miriam.rachel.korenblit@intel.com&gt;
Link: https://msgid.link/20240228120157.0e1c41924d1d.I0acaa234e0267227b7e3ef81a59117c8792116bc@changeid
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>wifi: mac80211: flush only stations using requests links</title>
<updated>2024-02-12T20:13:57Z</updated>
<author>
<name>Aditya Kumar Singh</name>
</author>
<published>2024-02-05T16:29:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec67d6e0d491d2a2df270ddcb7aa44db0984e11c'/>
<id>urn:sha1:ec67d6e0d491d2a2df270ddcb7aa44db0984e11c</id>
<content type='text'>
Whenever sta_flush() function is invoked, all STAs present in that
interface are flushed. In case of MLO, it is desirable to only flush such
STAs that are at least using a given link id as one of their links.

Add support for this by making change in the __sta_info_flush API argument
to accept a link ID. And then, only if the STA is using the given link as
one of its links, it would be flushed.

Signed-off-by: Aditya Kumar Singh &lt;quic_adisi@quicinc.com&gt;
Link: https://msgid.link/20240205162952.1697646-3-quic_adisi@quicinc.com
[reword commit message, in particular this isn't about "active" links]
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
