Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Feb 2025 19:31:53 GMT
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 17e8437e8d05 - main - net80211: update get_sta_info() to only populate isi_txrate for legacy rates
Message-ID:  <202502261931.51QJVrdh019031@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502261931.51QJVrdh019031>