PERFORCE change 142311 for review
Sam Leffler
sam at FreeBSD.org
Mon May 26 19:03:04 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=142311
Change 142311 by sam at sam_ebb on 2008/05/26 19:02:04
send EAPOL frames at the same rate used for mgt frames; they
are too important to chance to a potentially unreliable rate
(and infrequent enough to not burden the net)
Affected files ...
.. //depot/projects/vap/sys/dev/ath/if_ath.c#75 edit
Differences ...
==== //depot/projects/vap/sys/dev/ath/if_ath.c#75 (text+ko) ====
@@ -4712,6 +4712,7 @@
flags = HAL_TXDESC_CLRDMASK; /* XXX needed for crypto errs */
ismrr = 0; /* default no multi-rate retry*/
pri = M_WME_GETAC(m0); /* honor classification */
+ /* XXX use txparams instead of fixed values */
/*
* Calculate Atheros packet type from IEEE80211 packet header,
* setup for rate calculations, and select h/w transmit queue.
@@ -4747,8 +4748,8 @@
atype = HAL_PKT_TYPE_NORMAL; /* default */
/*
* Data frames: multicast frames go out at a fixed rate,
- * otherwise consult the rate control module for the
- * rate to use.
+ * EAPOL frames use the mgmt frame rate; otherwise consult
+ * the rate control module for the rate to use.
*/
if (ismcast) {
rix = an->an_mcastrix;
@@ -4756,6 +4757,13 @@
if (shortPreamble)
txrate |= rt->info[rix].shortPreamble;
try0 = 1;
+ } else if (m0->m_flags & M_EAPOL) {
+ /* XXX? maybe always use long preamble? */
+ rix = an->an_mgmtrix;
+ txrate = rt->info[rix].rateCode;
+ if (shortPreamble)
+ txrate |= rt->info[rix].shortPreamble;
+ try0 = ATH_TXMAXTRY; /* XXX?too many? */
} else {
ath_rate_findrate(sc, an, shortPreamble, pktlen,
&rix, &try0, &txrate);
More information about the p4-projects
mailing list