Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148323196
D35977.id108681.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D35977.id108681.diff
View Options
Index: sys/net80211/ieee80211.h
===================================================================
--- sys/net80211/ieee80211.h
+++ sys/net80211/ieee80211.h
@@ -1009,10 +1009,16 @@
IEEE80211_ELEMID_MESHPXUC = 138,
IEEE80211_ELEMID_MESHAH = 60, /* XXX: remove */
- /* 802.11ac */
+ /* 802.11ac-2013, Table 8-54-Element IDs */
IEEE80211_ELEMID_VHT_CAP = 191,
IEEE80211_ELEMID_VHT_OPMODE = 192,
+ IEEE80211_ELEMID_EXTENDED_BSS_LOAD = 193,
+ IEEE80211_ELEMID_WIDE_BW_CHANNEL_SWITCH = 194,
IEEE80211_ELEMID_VHT_PWR_ENV = 195,
+ IEEE80211_ELEMID_CHANNEL_SWITCH_WRAPPER = 196,
+ IEEE80211_ELEMID_AID = 197,
+ IEEE80211_ELEMID_QUIET_CHANNEL = 198,
+ IEEE80211_ELEMID_OPMODE_NOTIF = 199,
};
struct ieee80211_tim_ie {
Index: sys/net80211/ieee80211.c
===================================================================
--- sys/net80211/ieee80211.c
+++ sys/net80211/ieee80211.c
@@ -2204,7 +2204,11 @@
status |= IFM_IEEE80211_MBSS;
break;
}
- if (IEEE80211_IS_CHAN_HTA(chan)) {
+ if (IEEE80211_IS_CHAN_VHT_5GHZ(chan)) {
+ status |= IFM_IEEE80211_VHT5G;
+ } else if (IEEE80211_IS_CHAN_VHT_2GHZ(chan)) {
+ status |= IFM_IEEE80211_VHT2G;
+ } else if (IEEE80211_IS_CHAN_HTA(chan)) {
status |= IFM_IEEE80211_11NA;
} else if (IEEE80211_IS_CHAN_HTG(chan)) {
status |= IFM_IEEE80211_11NG;
Index: sys/net80211/ieee80211_ddb.c
===================================================================
--- sys/net80211/ieee80211_ddb.c
+++ sys/net80211/ieee80211_ddb.c
@@ -236,7 +236,7 @@
{
int i;
- db_printf("%p: mac %s refcnt %d\n", ni,
+ db_printf("STA: %p: mac %s refcnt %d\n", ni,
ether_sprintf(ni->ni_macaddr), ieee80211_node_refcnt(ni));
db_printf("\tvap %p wdsvap %p ic %p table %p\n",
ni->ni_vap, ni->ni_wdsvap, ni->ni_ic, ni->ni_table);
@@ -254,6 +254,9 @@
ni->ni_ies.ath_ie);
db_printf("\t htcap_ie %p htinfo_ie %p]\n",
ni->ni_ies.htcap_ie, ni->ni_ies.htinfo_ie);
+ db_printf("\t vhtcap_ie %p vhtopmode_ie %p vhtpwrenv_ie %p]\n",
+ ni->ni_ies.vhtcap_ie, ni->ni_ies.vhtopmode_ie,
+ ni->ni_ies.vhtpwrenv_ie);
if (ni->ni_flags & IEEE80211_NODE_QOS) {
for (i = 0; i < WME_NUM_TID; i++) {
if (ni->ni_txseqs[i] || ni->ni_rxseqs[i])
@@ -263,6 +266,7 @@
ni->ni_rxseqs[i] & IEEE80211_SEQ_FRAG_MASK);
}
}
+
db_printf("\ttxseq %u rxseq %u fragno %u rxfragstamp %u\n",
ni->ni_txseqs[IEEE80211_NONQOS_TID],
ni->ni_rxseqs[IEEE80211_NONQOS_TID] >> IEEE80211_SEQ_SEQ_SHIFT,
@@ -307,6 +311,21 @@
ni->ni_mlstate, IEEE80211_MESH_MLSTATE_BITS,
ni->ni_mllid, ni->ni_mlpid, ni->ni_mlrcnt, ni->ni_mltval);
#endif
+
+ /* VHT state */
+ db_printf("\tvhtcap %b vht_basicmcs %#06x vht_pad2 %#06x\n",
+ ni->ni_vhtcap, IEEE80211_VHTCAP_BITS,
+ ni->ni_vht_basicmcs, ni->ni_vht_pad2);
+ db_printf("\tvht_mcsinfo: { rx_mcs_map %#06x rx_highest %#06x "
+ "tx_mcs_map %#06x tx_highest %#06x }\n",
+ ni->ni_vht_mcsinfo.rx_mcs_map, ni->ni_vht_mcsinfo.rx_highest,
+ ni->ni_vht_mcsinfo.tx_mcs_map, ni->ni_vht_mcsinfo.tx_highest);
+ db_printf("\tvht_chan1/chan2 %u/%u vht_chanwidth %#04x\n",
+ ni->ni_vht_chan1, ni->ni_vht_chan2, ni->ni_vht_chanwidth);
+ db_printf("\tvht_pad1 %#04x vht_spare { %#x %#x %#x %#x %#x %#x %#x %#x }\n",
+ ni->ni_vht_pad1, ni->ni_vht_spare[0], ni->ni_vht_spare[1],
+ ni->ni_vht_spare[2], ni->ni_vht_spare[3], ni->ni_vht_spare[4],
+ ni->ni_vht_spare[5], ni->ni_vht_spare[6], ni->ni_vht_spare[7]);
}
#ifdef IEEE80211_SUPPORT_TDMA
@@ -334,7 +353,7 @@
const struct ieee80211com *ic = vap->iv_ic;
int i;
- db_printf("%p:", vap);
+ db_printf("VAP %p:", vap);
db_printf(" bss %p", vap->iv_bss);
db_printf(" myaddr %s", ether_sprintf(vap->iv_myaddr));
db_printf("\n");
@@ -364,6 +383,7 @@
db_printf("\tflags_ven=%b\n", vap->iv_flags_ven, IEEE80211_FVEN_BITS);
db_printf("\tcaps=%b\n", vap->iv_caps, IEEE80211_C_BITS);
db_printf("\thtcaps=%b\n", vap->iv_htcaps, IEEE80211_C_HTCAP_BITS);
+ db_printf("\tvhtcaps=%b\n", vap->iv_vhtcaps, IEEE80211_VHTCAP_BITS);
_db_show_stats(&vap->iv_stats);
@@ -518,7 +538,7 @@
{
struct ieee80211vap *vap;
- db_printf("%p:", ic);
+ db_printf("COM: %p:", ic);
TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
db_printf(" %s(%p)", vap->iv_ifp->if_xname, vap);
db_printf("\n");
@@ -543,6 +563,7 @@
db_printf("\tcryptocaps=%b\n",
ic->ic_cryptocaps, IEEE80211_CRYPTO_BITS);
db_printf("\thtcaps=%b\n", ic->ic_htcaps, IEEE80211_HTCAP_BITS);
+ db_printf("\tvhtcaps=%b\n", ic->ic_vhtcaps, IEEE80211_VHTCAP_BITS);
#if 0
uint8_t ic_modecaps[2]; /* set of mode capabilities */
Index: sys/net80211/ieee80211_radiotap.h
===================================================================
--- sys/net80211/ieee80211_radiotap.h
+++ sys/net80211/ieee80211_radiotap.h
@@ -427,6 +427,7 @@
/* #define IEEE80211_RADIOTAP_HE_DATA3_STBC 0x8000 */
#define IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE 0x000F
+#define IEEE80211_RADIOTAP_HE_DATA4_MU_STA_ID 0x7FF0
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 0x000F
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 0x00F0
#define IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 0x0F00
Index: sys/net80211/ieee80211_var.h
===================================================================
--- sys/net80211/ieee80211_var.h
+++ sys/net80211/ieee80211_var.h
@@ -695,7 +695,8 @@
"\20\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \
"\0114ADDR\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\16STATEWAIT\17REINIT" \
"\20BPF\21WDSLEGACY\22PROBECHAN\23UNIQMAC\24SCAN_OFFLOAD\25SEQNO_OFFLOAD" \
- "\26VHT\27QUIET_IE"
+ "\26FRAG_OFFLOAD\27VHT" \
+ "\30QUIET_IE\31UAPSD"
/* ic_flags_ht/iv_flags_ht */
#define IEEE80211_FHT_NONHT_PR 0x00000001 /* STATUS: non-HT sta present */
@@ -933,10 +934,10 @@
ieee80211_vhtchanflags(const struct ieee80211_channel *c)
{
- if (IEEE80211_IS_CHAN_VHT80P80(c))
- return IEEE80211_FVHT_USEVHT80P80;
if (IEEE80211_IS_CHAN_VHT160(c))
return IEEE80211_FVHT_USEVHT160;
+ if (IEEE80211_IS_CHAN_VHT80P80(c))
+ return IEEE80211_FVHT_USEVHT80P80;
if (IEEE80211_IS_CHAN_VHT80(c))
return IEEE80211_FVHT_USEVHT80;
if (IEEE80211_IS_CHAN_VHT40(c))
Index: sys/net80211/ieee80211_vht.c
===================================================================
--- sys/net80211/ieee80211_vht.c
+++ sys/net80211/ieee80211_vht.c
@@ -797,7 +797,7 @@
struct ieee80211_channel *c;
/* First case - handle channel demotion - if VHT isn't set */
- if ((flags & IEEE80211_FVHT_VHT) == 0) {
+ if ((flags & IEEE80211_FVHT_MASK) == 0) {
#if 0
printf("%s: demoting channel %d/0x%08x\n", __func__,
chan->ic_ieee, chan->ic_flags);
@@ -822,7 +822,7 @@
/* Start with VHT80 */
c = NULL;
if ((c == NULL) && (flags & IEEE80211_FVHT_USEVHT160))
- c = findvhtchan(ic, chan, IEEE80211_CHAN_VHT80);
+ c = findvhtchan(ic, chan, IEEE80211_CHAN_VHT160);
if ((c == NULL) && (flags & IEEE80211_FVHT_USEVHT80P80))
c = findvhtchan(ic, chan, IEEE80211_CHAN_VHT80P80);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Mar 18, 4:20 AM (9 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29878856
Default Alt Text
D35977.id108681.diff (6 KB)
Attached To
Mode
D35977: Series of small net80211 commits, mostly for VHT
Attached
Detach File
Event Timeline
Log In to Comment