Index: if_ath_tx.c =================================================================== --- if_ath_tx.c (revision 219980) +++ if_ath_tx.c (working copy) @@ -703,6 +703,24 @@ } /* + * If 11n protection is enabled and it's a HT frame, + * enable RTS. + * + * XXX ic_htprotmode or ic_curhtprotmode? + * XXX should it_htprotmode only matter if ic_curhtprotmode + * XXX indicates it's not a HT pure environment? + * + * XXX Should NOACK frames be HT protected with CTS-to-self? + */ + if ((ic->ic_htprotmode == IEEE80211_PROT_RTSCTS) && + rt->info[rix].phy == IEEE80211_T_HT && + (flags & HAL_TXDESC_NOACK) == 0) { + cix = rt->info[sc->sc_protrix].controlRate; + flags |= HAL_TXDESC_RTSENA; + sc->sc_stats.ast_tx_htprotect++; + } + + /* * Calculate duration. This logically belongs in the 802.11 * layer but it lacks sufficient information to calculate it. */