Date: Tue, 19 Apr 2016 05:17:43 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r298252 - head/sbin/ifconfig Message-ID: <201604190517.u3J5Hh8e059789@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604190517.u3J5Hh8e059789>