The rtwn(4) driver ignores the rts threshold value set by the stack.
This fixes it:
Index: if_rtwn.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_rtwn.c,v
retrieving revision 1.22
diff -u -p -r1.22 if_rtwn.c
--- if_rtwn.c 17 Jun 2016 10:53:55 -0000 1.22
+++ if_rtwn.c 20 Jul 2016 19:10:38 -0000
@@ -985,7 +985,10 @@ rtwn_tx(void *cookie, struct mbuf *m, st
SM(R92C_TXDW1_RAID, raid) |
R92C_TXDW1_AGGBK);
- if (ic->ic_flags & IEEE80211_F_USEPROT) {
+ if (m->m_pkthdr.len + IEEE80211_CRC_LEN > ic->ic_rtsthreshold) {
+ txd->txdw4 |= htole32(R92C_TXDW4_RTSEN |
+ R92C_TXDW4_HWRTSEN);
+ } else if (ic->ic_flags & IEEE80211_F_USEPROT) {
if (ic->ic_protmode == IEEE80211_PROT_CTSONLY) {
txd->txdw4 |= htole32(R92C_TXDW4_CTS2SELF |
R92C_TXDW4_HWRTSEN);