[PATCH wireless-next 0/5] wifi: cfg80211: Add fragmented per-link station stats in MLO
Praneesh P
praneesh.p at oss.qualcomm.com
Mon Jun 8 10:48:18 PDT 2026
On 6/8/2026 12:46 PM, Johannes Berg wrote:
> On Sun, 2026-06-07 at 23:29 +0530, P Praneesh wrote:
>> This series introduces fragmentation support for Multi-Link Operation
>> (MLO) station statistics in nl80211.
>>
>> The current nl80211_dump_station() implementation works well for legacy
>> (single-link) stations, but it does not scale for MLO peers. With
>> multiple links per station, dumping all per-link information in a single
>> netlink message can exceed size limits, resulting in -EMSGSIZE errors
>> and incomplete dumps.
>>
>> With 802.11be (Wi‑Fi 7), a single station may have multiple links, each
>> with its own statistics. To address this, this series introduces a
>> stateful dump mechanism that splits station information into multiple
>> messages when required.
>>
>> The dump is performed in two phases:
>> - Phase 0: Aggregated (station-level) statistics
>> - Phase 1: Per-link statistics sent in separate messages
> [snip]
>
> Overall, this approach seems (mostly?) right. I have a couple of
> comments reading the code itself, but also:
Thanks a lot for your quick and detailed review on this series.
>
>> Aggregated Stats (Phase 0)
>>
>> NL80211_CMD_NEW_STATION
>> ├─ NL80211_ATTR_IFINDEX
>> ├─ NL80211_ATTR_MAC
>> ├─ NL80211_ATTR_GENERATION
>> └─ NL80211_ATTR_STA_INFO
>> ├─ <aggregated station attributes>
>> └─ ...
>>
>> Note: No NL80211_ATTR_MLO_LINKS is included in this phase.
>> Per‑link stats are sent in Phase 1.
>>
>> Per-Link Stats (Phase 1)
>>
>> NL80211_CMD_NEW_STATION
>> ├─ NL80211_ATTR_IFINDEX
>> ├─ NL80211_ATTR_MAC (MLO MAC)
>> ├─ NL80211_ATTR_GENERATION
>> └─ NL80211_ATTR_STA_INFO
>> └─ NL80211_ATTR_MLO_LINKS
>> ├─ [link0]
>> │ ├─ NL80211_ATTR_MLO_LINK_ID = 0
>> │ ├─ NL80211_ATTR_MAC = <link0 MAC>
>> │ ├─ NL80211_STA_INFO_RX_BYTES
>> │ ├─ NL80211_STA_INFO_TX_BYTES
>> │ └─ ... more link0 stats ...
> This description is missing another nesting level as
> NL80211_ATTR_STA_INFO no?
>
> johannes
Yes, you are right. The per-link stat attributes are wrapped in a nested
NL80211_ATTR_STA_INFO inside each link entry. The diagram incorrectly
placed them directly under [linkN]. The correct layout is:
NL80211_CMD_NEW_STATION
├─ NL80211_ATTR_IFINDEX
├─ NL80211_ATTR_MAC = (MLO MAC)
├─ NL80211_ATTR_GENERATION
└─ NL80211_ATTR_STA_INFO
└─ NL80211_ATTR_MLO_LINKS
└─ [linkN]
├─ NL80211_ATTR_MLO_LINK_ID = N
├─ NL80211_ATTR_MAC = <linkN MAC>
└─ NL80211_ATTR_STA_INFO
├─ NL80211_STA_INFO_RX_BYTES
├─ NL80211_STA_INFO_TX_BYTES
└─ ...
I will correct it in the next version.
Praneesh.
More information about the ath12k
mailing list