Message ID | 20220829144147.484787-1-jelonek.jonas@gmail.com |
---|---|
Headers | show |
Series | mac80211: add TPC support in control path | expand |
> On 29. Aug 2022, at 17:06, Jonas Jelonek <jelonek.jonas@gmail.com> wrote: > > We planned to get these changes upstream at first to have the foundation for TPC > in the mac80211, and then develop driver implementations and TPC algorithm on > top of this once all is reviewed, approved and upstream. > The ath9k tpc support is currently not upstream-ready but can be in a next version. > For testing the actual TPC support I modified minstrel’s debugfs to be able to set > fixed tx-power per STA. > > I think we can develop this series further to come up with fully working driver > implementation and a TPC algorithm if you think that would be better. > Else we could also provide at least a debugfs patch to be able to set fixed > tx-power per STA. > > Greetings > Jonas > >> On 29. Aug 2022, at 16:46, Johannes Berg <johannes@sipsolutions.net> wrote: >> >> On Mon, 2022-08-29 at 16:41 +0200, Jonas Jelonek wrote: >>> >>> I tested the tx-power annotation with an implementation of TPC in ath9k >>> (not included in this RFC) and small changes in minstrel_ht for debugfs >>> access. Tx-power status report in ath9k required the proposed utility >>> function in mac80211. >>> >> >> Huh wait, now that I got to the end of the series ... this doesn't >> actually *do* anything, so what's the point? Shouldn't it come with some >> implementation of the control? >> >> johannes > I am working on the hwsim support right now, tpc support in hwsim’s control path is implemented. However I encountered a problem in the status path. Hwsim seems to hand over to mac80211 tx-status asynchronously via ieee80211_tx_status_irqsafe only. There, the skb is added to ieee80211_local->skb_queue and then dequeued in ‘ieee80211_tasklet_handler’ to be passed to ‘ieee80211_tx_status’. For tx rates this is sufficient, but there is no space left in ieee80211_tx_info->status to pass the tx-power per packet. Please correct me if I missed something in the code. My idea to solve this may be: to use the SKB extension (struct skb_ext *extensions) to pass the tx-power information (and maybe more) for each SKB. Could this be an appropriate approach or do I miss something here? Maybe someone who is much more aware of the mac80211 layer design does have a better idea for this? Greetings Jonas