svn commit: r298252 - head/sbin/ifconfig
Adrian Chadd
adrian at FreeBSD.org
Tue Apr 19 05:17:44 UTC 2016
Author: adrian
Date: Tue Apr 19 05:17:43 2016
New Revision: 298252
URL: https://svnweb.freebsd.org/changeset/base/298252
Log:
Add VHT power envelope parsing to ifconfig.
Modified:
head/sbin/ifconfig/ifieee80211.c
Modified: head/sbin/ifconfig/ifieee80211.c
==============================================================================
--- head/sbin/ifconfig/ifieee80211.c Tue Apr 19 05:04:39 2016 (r298251)
+++ head/sbin/ifconfig/ifieee80211.c Tue Apr 19 05:17:43 2016 (r298252)
@@ -2573,6 +2573,39 @@ printvhtinfo(const char *tag, const u_in
}
static void
+printvhtpwrenv(const char *tag, const u_int8_t *ie, size_t ielen, int maxlen)
+{
+ printf("%s", tag);
+ static const char *txpwrmap[] = {
+ "20",
+ "40",
+ "80",
+ "160",
+ };
+ if (verbose) {
+ const struct ieee80211_ie_vht_txpwrenv *vhtpwr =
+ (const struct ieee80211_ie_vht_txpwrenv *) ie;
+ int i, n;
+ const char *sep = "";
+
+ /* Get count; trim at ielen */
+ n = (vhtpwr->tx_info &
+ IEEE80211_VHT_TXPWRENV_INFO_COUNT_MASK) + 1;
+ /* Trim at ielen */
+ if (n > ielen - 3)
+ n = ielen - 3;
+ printf("<tx_info 0x%02x pwr:[", vhtpwr->tx_info);
+ for (i = 0; i < n; i++) {
+ printf("%s%s:%.2f", sep, txpwrmap[i],
+ ((float) ((int8_t) ie[i+3])) / 2.0);
+ sep = " ";
+ }
+
+ printf("]>");
+ }
+}
+
+static void
printhtcap(const char *tag, const u_int8_t *ie, size_t ielen, int maxlen)
{
printf("%s", tag);
@@ -3151,7 +3184,6 @@ iename(int elemid)
case IEEE80211_ELEMID_IBSSDFS: return " IBSSDFS";
case IEEE80211_ELEMID_TPC: return " TPC";
case IEEE80211_ELEMID_CCKM: return " CCKM";
- case IEEE80211_ELEMID_VHT_PWR_ENV: return " VHTPWRENV";
}
return " ???";
}
@@ -3222,6 +3254,9 @@ printies(const u_int8_t *vp, int ielen,
case IEEE80211_ELEMID_VHT_OPMODE:
printvhtinfo(" VHTOPMODE", vp, 2+vp[1], maxcols);
break;
+ case IEEE80211_ELEMID_VHT_PWR_ENV:
+ printvhtpwrenv(" VHTPWRENV", vp, 2+vp[1], maxcols);
+ break;
case IEEE80211_ELEMID_BSSLOAD:
printbssload(" BSSLOAD", vp, 2+vp[1], maxcols);
break;
More information about the svn-src-all
mailing list