aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2015-12-08 09:04:31 -0500
committerJohannes Berg <johannes.berg@intel.com>2016-01-14 05:13:10 -0500
commit23a1f8d44c0bca48f04fc2a2f1edafd826ce6133 (patch)
tree163f582943bbaeadd9703a9050b9a677ac47218c /include/net
parentc799ba6eab7a1bf02792e2ced933be3ae5f8daa2 (diff)
mac80211: process and save VHT MU-MIMO group frame
The Group ID Management frame is an Action frame of category VHT. It is transmitted by the AP to assign or change the user position of a STA for one or more group IDs. Process and save the group membership data. Notify underlying driver of changes. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/mac80211.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 7c30faff245f..8da483b2c067 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -298,6 +298,7 @@ struct ieee80211_vif_chanctx_switch {
298 * note that this is only called when it changes after the channel 298 * note that this is only called when it changes after the channel
299 * context had been assigned. 299 * context had been assigned.
300 * @BSS_CHANGED_OCB: OCB join status changed 300 * @BSS_CHANGED_OCB: OCB join status changed
301 * @BSS_CHANGED_MU_GROUPS: VHT MU-MIMO group id or user position changed
301 */ 302 */
302enum ieee80211_bss_change { 303enum ieee80211_bss_change {
303 BSS_CHANGED_ASSOC = 1<<0, 304 BSS_CHANGED_ASSOC = 1<<0,
@@ -323,6 +324,7 @@ enum ieee80211_bss_change {
323 BSS_CHANGED_BEACON_INFO = 1<<20, 324 BSS_CHANGED_BEACON_INFO = 1<<20,
324 BSS_CHANGED_BANDWIDTH = 1<<21, 325 BSS_CHANGED_BANDWIDTH = 1<<21,
325 BSS_CHANGED_OCB = 1<<22, 326 BSS_CHANGED_OCB = 1<<22,
327 BSS_CHANGED_MU_GROUPS = 1<<23,
326 328
327 /* when adding here, make sure to change ieee80211_reconfig */ 329 /* when adding here, make sure to change ieee80211_reconfig */
328}; 330};
@@ -436,6 +438,19 @@ struct ieee80211_event {
436}; 438};
437 439
438/** 440/**
441 * struct ieee80211_mu_group_data - STA's VHT MU-MIMO group data
442 *
443 * This structure describes the group id data of VHT MU-MIMO
444 *
445 * @membership: 64 bits array - a bit is set if station is member of the group
446 * @position: 2 bits per group id indicating the position in the group
447 */
448struct ieee80211_mu_group_data {
449 u8 membership[WLAN_MEMBERSHIP_LEN];
450 u8 position[WLAN_USER_POSITION_LEN];
451};
452
453/**
439 * struct ieee80211_bss_conf - holds the BSS's changing parameters 454 * struct ieee80211_bss_conf - holds the BSS's changing parameters
440 * 455 *
441 * This structure keeps information about a BSS (and an association 456 * This structure keeps information about a BSS (and an association
@@ -477,6 +492,7 @@ struct ieee80211_event {
477 * @enable_beacon: whether beaconing should be enabled or not 492 * @enable_beacon: whether beaconing should be enabled or not
478 * @chandef: Channel definition for this BSS -- the hardware might be 493 * @chandef: Channel definition for this BSS -- the hardware might be
479 * configured a higher bandwidth than this BSS uses, for example. 494 * configured a higher bandwidth than this BSS uses, for example.
495 * @mu_group: VHT MU-MIMO group membership data
480 * @ht_operation_mode: HT operation mode like in &struct ieee80211_ht_operation. 496 * @ht_operation_mode: HT operation mode like in &struct ieee80211_ht_operation.
481 * This field is only valid when the channel is a wide HT/VHT channel. 497 * This field is only valid when the channel is a wide HT/VHT channel.
482 * Note that with TDLS this can be the case (channel is HT, protection must 498 * Note that with TDLS this can be the case (channel is HT, protection must
@@ -535,6 +551,7 @@ struct ieee80211_bss_conf {
535 s32 cqm_rssi_thold; 551 s32 cqm_rssi_thold;
536 u32 cqm_rssi_hyst; 552 u32 cqm_rssi_hyst;
537 struct cfg80211_chan_def chandef; 553 struct cfg80211_chan_def chandef;
554 struct ieee80211_mu_group_data mu_group;
538 __be32 arp_addr_list[IEEE80211_BSS_ARP_ADDR_LIST_LEN]; 555 __be32 arp_addr_list[IEEE80211_BSS_ARP_ADDR_LIST_LEN];
539 int arp_addr_cnt; 556 int arp_addr_cnt;
540 bool qos; 557 bool qos;