Skip to contentSkip to conversation

Clarification needed on Last Tx Rate statistic update

DISCUSSION Saravana 2 participants 4 messages Nov 7, 2012 – Nov 8, 2012

lore
Share & tools
lore

Saravana

author
#0 lore raw

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

#1 lore raw
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

author
#2 lore raw

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

#3 lore raw
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_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.

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_CONTROL set 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