Page MenuHomeFreeBSD

D48295.id148793.diff
No OneTemporary

D48295.id148793.diff

diff --git a/sys/dev/rtwn/rtl8812a/r12a_tx.c b/sys/dev/rtwn/rtl8812a/r12a_tx.c
--- a/sys/dev/rtwn/rtl8812a/r12a_tx.c
+++ b/sys/dev/rtwn/rtl8812a/r12a_tx.c
@@ -103,11 +103,17 @@
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));

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 3:24 PM (14 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28487149
Default Alt Text
D48295.id148793.diff (783 B)

Event Timeline