diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -376,6 +376,7 @@ get_sta_info(void *arg, struct ieee80211_node *ni) { struct stainforeq *req = arg; + struct ieee80211_node_txrate tr; struct ieee80211vap *vap = ni->ni_vap; struct ieee80211req_sta_info *si; size_t ielen, len; @@ -406,7 +407,14 @@ if (si->isi_nrates > 15) si->isi_nrates = 15; memcpy(si->isi_rates, ni->ni_rates.rs_rates, si->isi_nrates); - si->isi_txrate = ieee80211_node_get_txrate_dot11rate(ni); + /* + * isi_txrate can only represent the legacy/HT rates. + * Only set it if the rate is a legacy/HT rate. + * For VHT and later rates the API will need changing. + */ + ieee80211_node_get_txrate(ni, &tr); + if (tr.type == IEEE80211_NODE_TXRATE_LEGACY) + si->isi_txrate = tr.dot11rate; /* Note: txmbps is in 1/2mbit units */ si->isi_txmbps = ieee80211_node_get_txrate_kbit(ni) / 500; si->isi_associd = ni->ni_associd;