PERFORCE change 137362 for review

Sam Leffler sam at FreeBSD.org
Mon Mar 10 22:15:09 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=137362

Change 137362 by sam at sam_ebb on 2008/03/10 22:14:10

	Report the current tx rate in .5 Mb/s units so user code
	doesn't need to know about channel width and short/long
	GI for ht operation; this is still not entirely accurate
	as these parameters can vary per-packet so we could maintain
	a running rate based on recent packets but since this is
	really for reporting a subjective value to user space this
	will do for now.  Note there is no abi change as there was
	a hole in the sta info structure this new field fits in and
	we intentionally leave the old data so old code will work.

Affected files ...

.. //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#41 edit
.. //depot/projects/vap/sys/net80211/ieee80211_ioctl.h#16 edit

Differences ...

==== //depot/projects/vap/sys/net80211/ieee80211_ioctl.c#41 (text+ko) ====

@@ -399,6 +399,22 @@
 		si->isi_nrates = 15;
 	memcpy(si->isi_rates, ni->ni_rates.rs_rates, si->isi_nrates);
 	si->isi_txrate = ni->ni_txrate;
+	if (si->isi_txrate & IEEE80211_RATE_MCS) {
+		const struct ieee80211_mcs_rates *mcs =
+		    &ieee80211_htrates[ni->ni_txrate &~ IEEE80211_RATE_MCS];
+		if (IEEE80211_IS_CHAN_HT40(ni->ni_chan)) {
+			if (ni->ni_htcap & IEEE80211_HTCAP_SHORTGI40)
+				si->isi_txmbps = mcs->ht40_rate_800ns;
+			else
+				si->isi_txmbps = mcs->ht40_rate_400ns;
+		} else {
+			if (ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20)
+				si->isi_txmbps = mcs->ht20_rate_800ns;
+			else
+				si->isi_txmbps = mcs->ht20_rate_400ns;
+		}
+	} else
+		si->isi_txmbps = si->isi_txrate;
 	si->isi_associd = ni->ni_associd;
 	si->isi_txpower = ni->ni_txpower;
 	si->isi_vlan = ni->ni_vlan;

==== //depot/projects/vap/sys/net80211/ieee80211_ioctl.h#16 (text+ko) ====

@@ -363,6 +363,7 @@
 	uint16_t	isi_txseqs[IEEE80211_TID_SIZE];/* tx seq #/TID */
 	uint16_t	isi_rxseqs[IEEE80211_TID_SIZE];/* rx seq#/TID */
 	uint16_t	isi_inact;		/* inactivity timer */
+	uint16_t	isi_txmbps;		/* current tx rate in .5 Mb/s */
 	uint32_t	isi_jointime;		/* time of assoc/join */
 	struct ieee80211_mimo_info isi_mimo;	/* MIMO info for 11n sta's */
 	/* XXX frag state? */


More information about the p4-projects mailing list