HomeFreeBSD

net80211: ieee80211_ratectl*: switch to reusable KPI

Description

net80211: ieee80211_ratectl*: switch to reusable KPI

Replace various void * / int argument combinations with common structures:

  • ieee80211_ratectl_tx_status for *_tx_complete();
  • ieee80211_ratectl_tx_stats for *_tx_update();

While here, improve amrr_tx_update() for a bit:

  1. In case, if receiver is not known (typical for Ralink USB drivers),

refresh Tx rate for all nodes on the interface.

  1. There was a misuse:
  2. otus(4) sends non-decreasing counters (as originally intended);
  3. but ural(4), rum(4) and run(4) are using 'read & clear' registers

to obtain statistics for some period of time (and those 'last period'
values are used as arguments for tx_update()). If arguments are not big
enough, they are just discarded after the next call.

Fix: move counting into *_tx_update()
(now otus(4) will zero out all node counters after every tx_update() call)

Tested with:

  • Intel 3945BG (wpi(4)), STA mode.
  • WUSB54GC (rum(4)), STA / HOSTAP mode.
  • RTL8188EU (urtwn(4)), STA mode.

Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D8037

Details

Provenance
avosAuthored on
Reviewer
adrian
Differential Revision
D8037: ieee80211_ratectl*: switch to reusable KPI
Parents
rS306590: net80211: add one-vap version of ieee80211_iterate_nodes()
Branches
Unknown
Tags
Unknown