git: 17e8437e8d05 - main - net80211: update get_sta_info() to only populate isi_txrate for legacy rates
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 26 Feb 2025 19:31:53 UTC
The branch main has been updated by adrian:
URL: https://cgit.FreeBSD.org/src/commit/?id=17e8437e8d05aa91f2d1f31cece68204e7294a74
commit 17e8437e8d05aa91f2d1f31cece68204e7294a74
Author: Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2025-01-17 02:41:14 +0000
Commit: Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2025-02-26 19:31:27 +0000
net80211: update get_sta_info() to only populate isi_txrate for legacy rates
The isi_txrate field is 8 bits and only represents legacy/HT rates.
So to avoid logging a warning, only populate if it's a legacy/HT
rate.
Differential Revision: https://reviews.freebsd.org/D48616
---
sys/net80211/ieee80211_ioctl.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index 24ec9659dc2d..caa0c77e2897 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -376,6 +376,7 @@ static void
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,16 @@ get_sta_info(void *arg, struct ieee80211_node *ni)
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.
+ *
+ * TODO: For VHT and later rates the API will need changing.
+ */
+ ieee80211_node_get_txrate(ni, &tr);
+ if ((tr.type == IEEE80211_NODE_TXRATE_LEGACY) ||
+ (tr.type == IEEE80211_NODE_TXRATE_HT))
+ si->isi_txrate = ieee80211_node_get_txrate_dot11rate(ni);
/* Note: txmbps is in 1/2Mbit/s units */
si->isi_txmbps = ieee80211_node_get_txrate_kbit(ni) / 500;
si->isi_associd = ni->ni_associd;