Search Linux Wireless

Re: [PATCH wireless-next v6 00/11] wifi: cfg80211/mac80211: add support to handle per link statistics of multi-link station

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2025-05-08 at 14:34 +0530, Sarika Sharma wrote:
> > 
> > But to be honest I completely forgot all the history here. Looks like
> > your initial patches couldn't even build, so I can't compare well with
> > what it would've looked like before.
> 
> Oops! if require can send new version V7, in building state(as already 
> prepared the patch as per last comments)?

No no, I meant *initial* patches, I was just trying to look at v1/v2/...
to compare how much driver changes they all needed, but in the earlier
versions you just skipped the driver changes entirely, so I couldn't
compare :)

As far as I can tell this version builds fine, the robot seemed happy.

> 
> > We can also prohibit filling entries that make no sense for multi-link
> > statistics when provided on a global level, though honestly I feel like
> > for most of them we should actually provide some value, even if tx/rx
> > rate is just the best rate of all the links, or something like that?
> 
> Yes, but then document for station_info structure needed to be updated here.
> As for some of fields it will be similar for both non-Ml and MLO case.
> But some of fields like signal,rates, etc, meaning will be different for 
> non-ML and MLO stats.

Agree, and maybe some of the fields should just be prohibited for MLO
(like signal/rate) until we figure out what semantics we want for them
for MLO. But we can document and implement that, I'd think?

> >      This would also not yet require any drivers or mac80211 to change at
> >      all, since it's just adding a new capability.
> 
> Oh! Do you mean not add all the things now at link level? and add 
> afterwards as per requirement/ while adding new capabilities?
> 
> or add as of now and let driver/mac80211 filling those capabilities 
> handle it later part on.

I just mean wrt. the patch sequence.

As it is now you're making a lot of changes to drivers/mac80211 during
the cfg80211 patches (specifically patch 4), but then in some sense you
*undo* the need for those later (after patch 7 a lot of the driver
changes aren't _really_ needed, particularly for non-MLO drivers).

That seems harder than it should be. We later have a lot of the fields
back that were modified earlier, so I'm suggesting to just not do it
that way, but rather keep _all_ the fields, then you don't have any
driver changes.

Then add all the fields for each link, and the nl80211 code, aggregation
code, etc.

And _then_ you can start moving things over much more easily, like
mac80211 would start providing per-link stats for all the fields, and
accumulated stats about removed links in the original "non-MLO-
statistics" fields (regardless of whether they're reported that way
because the connection isn't MLO, or because the driver wasn't updated.)


> >      Oh, in terms of allocation - the struct isn't huge now, do we even
> >      care about simply adding 15 links? It still stays well below a
> >      page as far as I can tell ... keep it simpler for now?
> 
> Okay! but although many fields are more applicable at link level. So 
> isn't keeping the pointer is better then keeping array[15](seeing error 
> with array [15], mentioned below)?

Right ... hm. I actually thought this struct was already not on the
stack, not sure why. That's why I was talking about the size of
allocations etc.

Alright, since we already have cfg80211_sinfo_release_content() it seems
easier now to actually allocate the link stats dynamically, so instead
of what I just said in my other email:

	struct link_station_info links[15];

we'd have

	struct link_station_info *links;

and then just make sure we allocate a 15 links array, and free it in
cfg80211_sinfo_release_content().

That actually it looks the same for the users, e.g. "sinfo.links[3]".

johannes





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux