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:
- In case, if receiver is not known (typical for Ralink USB drivers), refresh Tx rate for all nodes on the interface (via ieee80211_iterate_nodes_vap());
- There was a misuse:
- otus(4) sends non-decreasing counters (as intended);
- 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)