PERFORCE change 46462 for review
Sam Leffler
sam at FreeBSD.org
Tue Feb 3 23:01:49 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=46462
Change 46462 by sam at sam_ebb on 2004/02/03 23:01:25
o mark driver capable of transmit power control
o complete 11g protection logic by only applying protection
for ofdm unicast frames
o add comment about issue to be dealt with for sending fragments
o count frames sent with protection
o disable use of multi-rate retry when applying rts/cts
Affected files ...
.. //depot/projects/netperf+sockets/sys/dev/ath/if_ath.c#27 edit
Differences ...
==== //depot/projects/netperf+sockets/sys/dev/ath/if_ath.c#27 (text+ko) ====
@@ -340,6 +340,7 @@
| IEEE80211_C_MONITOR /* monitor mode */
| IEEE80211_C_SHPREAMBLE /* short preamble supported */
| IEEE80211_C_SHSLOT /* short slot time supported */
+ | IEEE80211_C_TXPMGT /* transmit power control */
| IEEE80211_C_RCVMGT /* recv management frames */
;
ic->ic_flags |= IEEE80211_F_DATAPAD;
@@ -2121,18 +2122,20 @@
}
/*
- * Determine whether to use RTS/CTS or just CTS for
- * 802.11g protection.
- * XXX use only before transmitting OFDM, not CCK.
+ * If 802.11g protection is enabled, determine whether
+ * to use RTS/CTS or just CTS. Note that this is only
+ * done for OFDM unicast frames.
*/
if ((ic->ic_flags & IEEE80211_F_USEPROT) &&
- (ni->ni_flags & IEEE80211_NODE_ERP)) {
+ rt->info[rix].phy == IEEE80211_T_OFDM &&
+ (flags & HAL_TXDESC_NOACK) == 0) {
+ /* XXX fragments must use CCK rates w/ protection */
if (ic->ic_protmode == IEEE80211_PROT_RTSCTS)
flags |= HAL_TXDESC_RTSENA;
else if (ic->ic_protmode == IEEE80211_PROT_CTSONLY)
flags |= HAL_TXDESC_CTSENA;
cix = rt->info[sc->sc_protrix].controlRate;
- /* XXX statistics */
+ sc->sc_stats.ast_tx_protect++;
}
/*
@@ -2183,6 +2186,10 @@
ctsduration += ath_hal_computetxtime(ah,
rt, IEEE80211_ACK_SIZE, cix, shortPreamble);
}
+ /*
+ * Must disable multi-rate retry when using RTS/CTS.
+ */
+ try0 = ATH_TXMAXTRY;
} else
ctsrate = 0;
More information about the p4-projects
mailing list