Fix Tx rate used by rtwn(4) and urtwn(4) for RTS frames.
authorstsp <stsp@openbsd.org>
Tue, 15 Mar 2022 09:22:56 +0000 (09:22 +0000)
committerstsp <stsp@openbsd.org>
Tue, 15 Mar 2022 09:22:56 +0000 (09:22 +0000)
Using ni_txrate for RTS is a bad choice since it could go up to 54 Mbit/s.
The AP needs to receive our RTS frame reliably. Usually, 1 Mbit/s is used
for RTS, but this hurts throughput and does not really make sense on today's
wifi networks.

Use 1 Mbit/s in 11b mode, and otherwise use 24 Mbit/s, as damien@
already hard-coded in urtwn long ago.

ok kevlo@

sys/dev/pci/if_rtwn.c

index 449729c..ffd1dbe 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_rtwn.c,v 1.38 2021/10/04 01:33:42 kevlo Exp $      */
+/*     $OpenBSD: if_rtwn.c,v 1.39 2022/03/15 09:22:56 stsp Exp $       */
 
 /*-
  * Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -1095,7 +1095,7 @@ rtwn_tx(void *cookie, struct mbuf *m, struct ieee80211_node *ni)
                if (ic->ic_curmode == IEEE80211_MODE_11B)
                        txd->txdw4 |= htole32(SM(R92C_TXDW4_RTSRATE, 0));
                else
-                       txd->txdw4 |= htole32(SM(R92C_TXDW4_RTSRATE, 3));
+                       txd->txdw4 |= htole32(SM(R92C_TXDW4_RTSRATE, 8));
                txd->txdw5 |= htole32(SM(R92C_TXDW5_RTSRATE_FBLIMIT, 0xf));
 
                /* Use AMMR rate for data. */