git: 93411b39fff2 - main - rtwn: calculate control rate for VHT rate frames
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 05 Jan 2025 17:22:14 UTC
The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=93411b39fff24ab4c9bf2b0395c7789b1a1c7a42 commit 93411b39fff24ab4c9bf2b0395c7789b1a1c7a42 Author: Adrian Chadd <adrian@FreeBSD.org> AuthorDate: 2024-12-16 02:05:13 +0000 Commit: Adrian Chadd <adrian@FreeBSD.org> CommitDate: 2025-01-05 17:21:53 +0000 rtwn: calculate control rate for VHT rate frames If the passed in rate is a VHT rate, use rtwn_ctl_vhtrate() to find a suitable rate for RTS/CTS. Differential Revision: https://reviews.freebsd.org/D48295 Reviewed by: bz, cy, emaste --- sys/dev/rtwn/rtl8812a/r12a_tx.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/dev/rtwn/rtl8812a/r12a_tx.c b/sys/dev/rtwn/rtl8812a/r12a_tx.c index cc686668e4a2..582e6e0ddaf4 100644 --- a/sys/dev/rtwn/rtl8812a/r12a_tx.c +++ b/sys/dev/rtwn/rtl8812a/r12a_tx.c @@ -103,11 +103,17 @@ r12a_tx_protection(struct rtwn_softc *sc, struct r12a_tx_desc *txd, if (mode == IEEE80211_PROT_CTSONLY || mode == IEEE80211_PROT_RTSCTS) { - /* TODO: VHT */ - if (RTWN_RATE_IS_HT(ridx)) + /* + * Note: this code assumes basic rates for protection for + * both 802.11abg and 802.11n rates. + */ + if (RTWN_RATE_IS_VHT(ridx)) + rate = rtwn_ctl_vhtrate(ic->ic_rt, ridx); + else if (RTWN_RATE_IS_HT(ridx)) rate = rtwn_ctl_mcsrate(ic->ic_rt, ridx); else rate = ieee80211_ctl_rate(ic->ic_rt, ridx2rate[ridx]); + /* Map basic rate back to ridx */ ridx = rate2ridx(IEEE80211_RV(rate)); txd->txdw4 |= htole32(SM(R12A_TXDW4_RTSRATE, ridx));