diff options
author | Sara Sharon <sara.sharon@intel.com> | 2015-12-08 09:04:31 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2016-01-14 05:13:10 -0500 |
commit | 23a1f8d44c0bca48f04fc2a2f1edafd826ce6133 (patch) | |
tree | 163f582943bbaeadd9703a9050b9a677ac47218c /include/net | |
parent | c799ba6eab7a1bf02792e2ced933be3ae5f8daa2 (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.h | 17 |
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 | */ |
302 | enum ieee80211_bss_change { | 303 | enum 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 | */ | ||
448 | struct 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; |