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. This patch is define the flags for power type of AP and STATION mode. Signed-off-by: Wen Gong <wgong@xxxxxxxxxxxxxx> --- include/net/cfg80211.h | 2 ++ include/uapi/linux/nl80211.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 58c2cd417e89..f17a4d1202fc 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -676,6 +676,7 @@ struct key_params { * chan will define the primary channel and all other * parameters are ignored. * @freq1_offset: offset from @center_freq1, in KHz + * @power_type: power type of BSS for 6 GHz */ struct cfg80211_chan_def { struct ieee80211_channel *chan; @@ -684,6 +685,7 @@ struct cfg80211_chan_def { u32 center_freq2; struct ieee80211_edmg edmg; u16 freq1_offset; + enum nl80211_ap_reg_power power_type; }; /* diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index f962c06e9818..ab1d4aa85272 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -4088,6 +4088,40 @@ enum nl80211_dfs_regions { NL80211_DFS_JP = 3, }; +/** + * enum nl80211_ap_reg_power - regulatory power for a Access Point + * + * @NL80211_REG_UNSET_AP: Access Point has no regulatory power mode + * @NL80211_REG_LPI: Indoor Access Point + * @NL80211_REG_SP: Standard power Access Point + * @NL80211_REG_VLP: Very low power Access Point + */ +enum nl80211_ap_reg_power { + NL80211_REG_UNSET_AP, + NL80211_REG_LPI_AP, + NL80211_REG_SP_AP, + NL80211_REG_VLP_AP, + NL80211_REG_AP_POWER_AFTER_LAST, + NL80211_REG_AP_POWER_MAX = + NL80211_REG_AP_POWER_AFTER_LAST - 1, +}; + +/** + * enum nl80211_client_reg_power - regulatory power for a client + * + * @NL80211_REG_UNSET_CLIENT: Client has no regulatory power mode + * @NL80211_REG_DEFAULT_CLIENT: Default Client + * @NL80211_REG_SUBORDINATE_CLIENT: Subordinate Client + */ +enum nl80211_client_reg_power { + NL80211_REG_UNSET_CLIENT, + NL80211_REG_DEFAULT_CLIENT, + NL80211_REG_SUBORDINATE_CLIENT, + NL80211_REG_CLIENT_POWER_AFTER_LAST, + NL80211_REG_CLIENT_POWER_MAX = + NL80211_REG_CLIENT_POWER_AFTER_LAST - 1, +}; + /** * enum nl80211_user_reg_hint_type - type of user regulatory hint * -- 2.31.1