ieee80211: add power type definition for 6 GHz

6 GHz regulatory domains introduces different modes for 6 GHz AP
operations: Low Power Indoor (LPI), Standard Power (SP) and Very
Low Power (VLP). 6 GHz STAs could be operated as either Regular or
Subordinate clients. Define the flags for power type
of AP and STATION mode.

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Link: https://lore.kernel.org/r/20210924100052.32029-2-wgong@codeaurora.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Wen Gong 2021-09-24 06:00:47 -04:00 коммит произвёл Johannes Berg
Родитель 7ff379ba2d
Коммит 405fca8a94
2 изменённых файлов: 40 добавлений и 0 удалений

Просмотреть файл

@ -1988,6 +1988,44 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
int mcs, bool ext_nss_bw_capable, int mcs, bool ext_nss_bw_capable,
unsigned int max_vht_nss); unsigned int max_vht_nss);
/**
* enum ieee80211_ap_reg_power - regulatory power for a Access Point
*
* @IEEE80211_REG_UNSET_AP: Access Point has no regulatory power mode
* @IEEE80211_REG_LPI: Indoor Access Point
* @IEEE80211_REG_SP: Standard power Access Point
* @IEEE80211_REG_VLP: Very low power Access Point
* @IEEE80211_REG_AP_POWER_AFTER_LAST: internal
* @IEEE80211_REG_AP_POWER_MAX: maximum value
*/
enum ieee80211_ap_reg_power {
IEEE80211_REG_UNSET_AP,
IEEE80211_REG_LPI_AP,
IEEE80211_REG_SP_AP,
IEEE80211_REG_VLP_AP,
IEEE80211_REG_AP_POWER_AFTER_LAST,
IEEE80211_REG_AP_POWER_MAX =
IEEE80211_REG_AP_POWER_AFTER_LAST - 1,
};
/**
* enum ieee80211_client_reg_power - regulatory power for a client
*
* @IEEE80211_REG_UNSET_CLIENT: Client has no regulatory power mode
* @IEEE80211_REG_DEFAULT_CLIENT: Default Client
* @IEEE80211_REG_SUBORDINATE_CLIENT: Subordinate Client
* @IEEE80211_REG_CLIENT_POWER_AFTER_LAST: internal
* @IEEE80211_REG_CLIENT_POWER_MAX: maximum value
*/
enum ieee80211_client_reg_power {
IEEE80211_REG_UNSET_CLIENT,
IEEE80211_REG_DEFAULT_CLIENT,
IEEE80211_REG_SUBORDINATE_CLIENT,
IEEE80211_REG_CLIENT_POWER_AFTER_LAST,
IEEE80211_REG_CLIENT_POWER_MAX =
IEEE80211_REG_CLIENT_POWER_AFTER_LAST - 1,
};
/* 802.11ax HE MAC capabilities */ /* 802.11ax HE MAC capabilities */
#define IEEE80211_HE_MAC_CAP0_HTC_HE 0x01 #define IEEE80211_HE_MAC_CAP0_HTC_HE 0x01
#define IEEE80211_HE_MAC_CAP0_TWT_REQ 0x02 #define IEEE80211_HE_MAC_CAP0_TWT_REQ 0x02

Просмотреть файл

@ -632,6 +632,7 @@ struct ieee80211_fils_discovery {
* @s1g: BSS is S1G BSS (affects Association Request format). * @s1g: BSS is S1G BSS (affects Association Request format).
* @beacon_tx_rate: The configured beacon transmit rate that needs to be passed * @beacon_tx_rate: The configured beacon transmit rate that needs to be passed
* to driver when rate control is offloaded to firmware. * to driver when rate control is offloaded to firmware.
* @power_type: power type of BSS for 6 GHz
*/ */
struct ieee80211_bss_conf { struct ieee80211_bss_conf {
const u8 *bssid; const u8 *bssid;
@ -702,6 +703,7 @@ struct ieee80211_bss_conf {
u32 unsol_bcast_probe_resp_interval; u32 unsol_bcast_probe_resp_interval;
bool s1g; bool s1g;
struct cfg80211_bitrate_mask beacon_tx_rate; struct cfg80211_bitrate_mask beacon_tx_rate;
enum ieee80211_ap_reg_power power_type;
}; };
/** /**