Commit 405fca8a authored by Wen Gong's avatar Wen Gong Committed by Johannes Berg
Browse files

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: default avatarWen Gong <wgong@codeaurora.org>
Link: https://lore.kernel.org/r/20210924100052.32029-2-wgong@codeaurora.org


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 7ff379ba
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -1988,6 +1988,44 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
			      int mcs, bool ext_nss_bw_capable,
			      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 */
#define IEEE80211_HE_MAC_CAP0_HTC_HE				0x01
#define IEEE80211_HE_MAC_CAP0_TWT_REQ				0x02
+2 −0
Original line number Diff line number Diff line
@@ -632,6 +632,7 @@ struct ieee80211_fils_discovery {
 * @s1g: BSS is S1G BSS (affects Association Request format).
 * @beacon_tx_rate: The configured beacon transmit rate that needs to be passed
 *	to driver when rate control is offloaded to firmware.
 * @power_type: power type of BSS for 6 GHz
 */
struct ieee80211_bss_conf {
	const u8 *bssid;
@@ -702,6 +703,7 @@ struct ieee80211_bss_conf {
	u32 unsol_bcast_probe_resp_interval;
	bool s1g;
	struct cfg80211_bitrate_mask beacon_tx_rate;
	enum ieee80211_ap_reg_power power_type;
};

/**