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);