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