On 6/24/2025 5:10 PM, Johannes Berg wrote:
On Wed, 2025-05-28 at 11:14 +0530, Sarika Sharma wrote:
Current implementation of NL80211_CMD_GET_STATION does not work
for multi-link operation(MLO) since in case of MLO only deflink
(or one of the links) is considered and not all links.
Hence, add the link_sinfo structure to provide infrastructure
for link-level station statistics for multi-link operation(MLO).
Additionally, accumulated stats for MLO are included in a concise
manner to provide a comprehensive overview of the ML stations.
V10:
- Add WARN_ON_ONCE(!link_sinfo), if valid links.
- Fixed kernel doc error.
- Corrected logic for setting sinfo->valid_links only if memory is
allocated for link_sinfo.
I'm going to apply this because we're at v10 and I'm losing track of all
the changes etc., but while looking through it now, here are a couple of
things I think you/we should still change:
- We already require a call to allocate TID stats, I think it'd make
sense to also do that for link stats, instead of allocating _all_ of
them always. The cfg80211_link_sinfo_alloc_tid_stats() could go away
in favour of cfg80211_sinfo_allocate_link() that gets an argument
'bool tidstats' to allocate (or not) TID stats with it
Sure, will work on this.
Instead of allocating memory to all the links, can allocate in
mac80211/driver( need basis).
- I still don't like patch 7, I think that should be a WARN_ON_ONCE or
so and the producers shouldn't be creating that in the first place,
otherwise reading the mac80211 code is misleading since you don't
even get that data. Also the producers shouldn't even _have_ valid
data for these values.
Sure, can correct this in mac80211 to not fill these field (not
applicable fields) for MLO and add WARN_ON_ONCE() for these fields in
cfg80211.
- What about TX statistics, we still have these patches:
https://lore.kernel.org/linux-wireless/20241218232519.3156080-1-greearb@xxxxxxxxxxxxxxx/
which is still needed, right?
https://lore.kernel.org/linux-wireless/20241218232519.3156080-1-greearb@xxxxxxxxxxxxxxx/
- This patch is needed, as it populates the sta structure at the link
level instead of using the deflink.
However, I believe instead of introduction the new fields u64
rep_packets and u64 rep_bytes — we might be able to reuse existing
fields instead.
https://lore.kernel.org/linux-wireless/20241218232519.3156080-3-greearb@xxxxxxxxxxxxxxx/
- This patch needs to be rebased or reworked, as the logic for updating
fields at the link level for MLD has changed.
Updating the deflink in the context of MLD may no longer be necessary
and could be avoided.
johannes