Clarification needed on Last Tx Rate statistic update
Hi,
I am Saravana and i am currently working on adding statistics. It will be really helpful if someone could provide me clarification related to Last Tx Rate statistics.
In ieee80211_tx_status(), the Last Tx Rate (sta->last_tx_rate) update happens only when the rate control is done by the HW (IEEE80211_HW_HAS_RATE_CONTROL) .
My understanding is that irrespective of whether the rate control is done by the hardware or not, the driver will fill up all the rates that it had tried along with the retry count for each rate to ieee80211_tx_status() using the
struct ieee80211_tx_info (info->status.rates).
The 'info->status.rates[rates_idx]' would point to the rate with which
the packet transmission has occured irrespective of the where the rate control is done.
Could somebody clarify why the statistics update happens only when the rate control is done by the hardware(flag IEEE80211_HW_HAS_RATE_CONTROL is set)?
Thanks,
Saravana
Quoted 3 lines · Saravana
Could somebody clarify why the statistics update happens only when the rate control is done by the
hardware(flag IEEE80211_HW_HAS_RATE_CONTROL is set)?
In the other case, it's set to txrc.reported_rate upon transmission, so it's not the *last* rate, but more accurately the highest performing/probability rate.
johannes
Hi Johannes,
Thanks for the clarification. So it seems the in the other case that you had mentioned, we can confirm that last_tx_rate is updated with inappropriate value. So probably we could add another variable for the highest performing/probability rate and update it with the txrc.reported rate value. The Last_tx_rate update with the highest performing/probability rate can be removed.
As far as Last Tx Rate is concerned, should we need to check for the flag?
I think the Last Tx Rate can be updated irrespective of the IEEE80211_HW_HAS_RATE_CONTROL set or not.
Please let me know your inputs on this.
Thanks,
Saravana
Quoted 12 lines · Johannes Berg
Quoted 3 lines · Saravana
Could somebody clarify why the statistics update happens only when the rate control is done by the
hardware(flag IEEE80211_HW_HAS_RATE_CONTROL is set)?In the other case, it's set to txrc.reported_rate upon transmission, so it's not the *last* rate, but more accurately the highest performing/probability rate.
johannes
Quoted 11 lines · Saravana
Hi Johannes,
Thanks for the clarification. So it seems the in the other case that you had mentioned, we can confirm that
last_tx_rateis updated with inappropriate value.
So probably we could add another variable for the highest performing/probability rate and update it with the txrc.reported rate value.
TheLast_tx_rateupdate with the highest performing/probability rate can be removed.
Quoted 3 lines
As far as Last Tx Rate is concerned, should we need to check for the flag? I think the Last Tx Rate can be updated irrespective of the
IEEE80211_HW_HAS_RATE_CONTROLset or not.
Well, "last_tx_rate" might be a bad variable name, but I think the behaviour we have now is consistent with something like "current_tx_rate" (rather than last), so I don't see any value in changing it. What use would the actual last rate have anyway, it keeps changing all the time.
johannes