Date: Tue, 3 Feb 2004 23:01:44 -0800 (PST) From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 46462 for review Message-ID: <200402040701.i1471iax041402@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=46462 Change 46462 by sam@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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402040701.i1471iax041402>