On 1/9/25 20:24, 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. NOTE: 1. Current code changes are done to get an early feedback on design. 2. Once RFC patches are approved will add the required driver changes. 3. Ath12k changes are included in this series for reference to other driver changes.
Alternate approach: - Keep sinfo structure as it is and use this for non-ML or accumulated statistics for ML station. - Add link sinfo for links with only certain link specific statistics. - Keep mac_op_sta_statistics at MLD level and let driver fill the MLO and link level data, if driver not filling let mac80211 fill the data. - Corresponding changes done to embed statistics into the NL message based on the sinfo/link_sinfo.
My suggestions for general approach to this: 1) current sinfo stats should report totals for all links, but it should not sum them up at query time because links come and go. So driver/firmware/mac80211 or whatever is keeping count of the stats needs to count the total tx/rx/ packets/bytes/whatever as it happens. 2) Per-link stats can be over duration of the link object. 3) For sinfo logic that currently reports tx/rx mcs rate and such that cannot be summed, use 'best' link's for those values. Effectively, this probably means highest frequency is 'best' link. 4) Add per-link stats data that looks very much like 'sinfo' data struct and user-space that can support that could then get detailed per-link stats at same time it is getting per netdev 'sinfo' stats. 5) Assuming there will never be more than 3 links for any radios supported by Linux in the near future, embed the 3 link's 'sinfo-like' stats data structure in the per-netdev sinfo stats struct so that we can get all 3 link's data at same time that we are getting the other stats. That should save calls into the driver and ensure that per-links stats can be gathered at exactly the same time. Thanks, Ben -- Ben Greear <greearb@xxxxxxxxxxxxxxx> Candela Technologies Inc http://www.candelatech.com