Update QCA vendor attributes for 6 GHz band support

As a part of P802.11ax amendment, 6 GHz band operation is added.

Since the 6 GHz channel numbers are overlapping with existing 2.4 GHz
and 5 GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.

In the existing QCA vendor interface, wherever missing, add frequency
attributes to identify unique channel operation. In addition, add
comments to document some of the previously missed attributes/values.

Note: If both channel and frequency attributes are present in vendor
command/event and
(a) If both the driver and user-space application supports 6 GHz band
then channel related attributes are deprecated and use frequency
attributes.
(b) If either driver or user-space application or both doesn't
support 6 GHz band then use channel attributes.

Signed-off-by: Rajeev Kumar Sirasanagandla <rsirasan@codeaurora.org>
This commit is contained in:
Rajeev Kumar Sirasanagandla 2019-08-01 16:46:32 +05:30 committed by Jouni Malinen
parent aa23ece3de
commit 6ae1247bfa

View file

@ -72,7 +72,7 @@ enum qca_radiotap_vendor_ids {
* *
* @QCA_NL80211_VENDOR_SUBCMD_DO_ACS: ACS command/event which is used to * @QCA_NL80211_VENDOR_SUBCMD_DO_ACS: ACS command/event which is used to
* invoke the ACS function in device and pass selected channels to * invoke the ACS function in device and pass selected channels to
* hostapd. * hostapd. Uses enum qca_wlan_vendor_attr_acs_offload attributes.
* *
* @QCA_NL80211_VENDOR_SUBCMD_GET_FEATURES: Command to get the features * @QCA_NL80211_VENDOR_SUBCMD_GET_FEATURES: Command to get the features
* supported by the driver. enum qca_wlan_vendor_features defines * supported by the driver. enum qca_wlan_vendor_features defines
@ -1101,31 +1101,162 @@ enum qca_wlan_vendor_attr_p2p_listen_offload {
QCA_WLAN_VENDOR_ATTR_P2P_LISTEN_OFFLOAD_AFTER_LAST - 1 QCA_WLAN_VENDOR_ATTR_P2P_LISTEN_OFFLOAD_AFTER_LAST - 1
}; };
/**
* enum qca_wlan_vendor_attr_acs_offload - Defines attributes to be used with
* vendor command/event QCA_NL80211_VENDOR_SUBCMD_DO_ACS.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_CHANNEL: Required (u8).
* Used with event to notify the primary channel number selected in ACS
* operation.
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_CHANNEL is deprecated; use
* QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_FREQUENCY instead.
* To maintain backward compatibility, QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_CHANNEL
* is still used if either of the driver or user space application doesn't
* support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_CHANNEL: Required (u8).
* Used with event to notify the secondary channel number selected in ACS
* operation.
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_CHANNEL is deprecated; use
* QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_FREQUENCY instead.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_CHANNEL is still used if either of
* the driver or user space application doesn't support 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_HW_MODE: Required (u8).
* (a) Used with command to configure hw_mode from
* enum qca_wlan_vendor_acs_hw_mode for ACS operation.
* (b) Also used with event to notify the hw_mode of selected primary channel
* in ACS operation.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_HT_ENABLED: Flag attribute.
* Used with command to configure ACS operation for HT mode.
* Disable (flag attribute not present) - HT disabled and
* Enable (flag attribute present) - HT enabled.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_HT40_ENABLED: Flag attribute.
* Used with command to configure ACS operation for HT40 mode.
* Disable (flag attribute not present) - HT40 disabled and
* Enable (flag attribute present) - HT40 enabled.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_VHT_ENABLED: Flag attribute.
* Used with command to configure ACS operation for VHT mode.
* Disable (flag attribute not present) - VHT disabled and
* Enable (flag attribute present) - VHT enabled.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_CHWIDTH: Optional (u16) with command and
* mandatory with event.
* If specified in command path, ACS operation is configured with the given
* channel width (in MHz).
* In event path, specifies the channel width of the primary channel selected.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST: Required and type is NLA_UNSPEC.
* Used with command to configure channel list using an array of
* channel numbers (u8).
* Note: If both the driver and user-space application supports the 6 GHz band,
* the driver mandates use of QCA_WLAN_VENDOR_ATTR_ACS_FREQ_LIST whereas
* QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST is optional.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL: Required (u8).
* Used with event to notify the VHT segment 0 center channel number selected in
* ACS operation.
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL is deprecated; use
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_FREQUENCY instead.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL is still used if either of
* the driver or user space application doesn't support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL: Required (u8).
* Used with event to notify the VHT segment 1 center channel number selected in
* ACS operation.
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL is deprecated; use
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_FREQUENCY instead.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL is still used if either of
* the driver or user space application doesn't support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_FREQ_LIST: Required and type is NLA_UNSPEC.
* Used with command to configure the channel list using an array of channel
* center frequencies in MHz (u32).
* Note: If both the driver and user-space application supports the 6 GHz band,
* the driver first parses the frequency list and if it fails to get a frequency
* list, parses the channel list specified using
* QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST (considers only 2 GHz and 5 GHz channels in
* QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST).
*
* @QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_FREQUENCY: Required (u32).
* Used with event to notify the primary channel center frequency (MHz) selected
* in ACS operation.
* Note: If the driver supports the 6 GHz band, the event sent from the driver
* includes this attribute along with QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_CHANNEL.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_FREQUENCY: Required (u32).
* Used with event to notify the secondary channel center frequency (MHz)
* selected in ACS operation.
* Note: If the driver supports the 6 GHz band, the event sent from the driver
* includes this attribute along with
* QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_CHANNEL.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_FREQUENCY: Required (u32).
* Used with event to notify the VHT segment 0 center channel frequency (MHz)
* selected in ACS operation.
* Note: If the driver supports the 6 GHz band, the event sent from the driver
* includes this attribute along with
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_FREQUENCY: Required (u32).
* Used with event to notify the VHT segment 1 center channel frequency (MHz)
* selected in ACS operation.
* Note: If the driver supports the 6 GHz band, the event sent from the driver
* includes this attribute along with
* QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL.
*/
enum qca_wlan_vendor_attr_acs_offload { enum qca_wlan_vendor_attr_acs_offload {
QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_INVALID = 0, QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_CHANNEL, QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_CHANNEL = 1,
QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_CHANNEL, QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_CHANNEL = 2,
QCA_WLAN_VENDOR_ATTR_ACS_HW_MODE, QCA_WLAN_VENDOR_ATTR_ACS_HW_MODE = 3,
QCA_WLAN_VENDOR_ATTR_ACS_HT_ENABLED, QCA_WLAN_VENDOR_ATTR_ACS_HT_ENABLED = 4,
QCA_WLAN_VENDOR_ATTR_ACS_HT40_ENABLED, QCA_WLAN_VENDOR_ATTR_ACS_HT40_ENABLED = 5,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_ENABLED, QCA_WLAN_VENDOR_ATTR_ACS_VHT_ENABLED = 6,
QCA_WLAN_VENDOR_ATTR_ACS_CHWIDTH, QCA_WLAN_VENDOR_ATTR_ACS_CHWIDTH = 7,
QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST, QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST = 8,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL, QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_CHANNEL = 9,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL, QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_CHANNEL = 10,
QCA_WLAN_VENDOR_ATTR_ACS_FREQ_LIST, QCA_WLAN_VENDOR_ATTR_ACS_FREQ_LIST = 11,
QCA_WLAN_VENDOR_ATTR_ACS_PRIMARY_FREQUENCY = 12,
QCA_WLAN_VENDOR_ATTR_ACS_SECONDARY_FREQUENCY = 13,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG0_CENTER_FREQUENCY = 14,
QCA_WLAN_VENDOR_ATTR_ACS_VHT_SEG1_CENTER_FREQUENCY = 15,
/* keep last */ /* keep last */
QCA_WLAN_VENDOR_ATTR_ACS_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_ACS_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_ACS_MAX = QCA_WLAN_VENDOR_ATTR_ACS_MAX =
QCA_WLAN_VENDOR_ATTR_ACS_AFTER_LAST - 1 QCA_WLAN_VENDOR_ATTR_ACS_AFTER_LAST - 1
}; };
/**
* enum qca_wlan_vendor_acs_hw_mode - Defines HW mode to be used with the
* vendor command/event QCA_NL80211_VENDOR_SUBCMD_DO_ACS.
*
* @QCA_ACS_MODE_IEEE80211B: 802.11b mode
* @QCA_ACS_MODE_IEEE80211G: 802.11g mode
* @QCA_ACS_MODE_IEEE80211A: 802.11a mode
* @QCA_ACS_MODE_IEEE80211AD: 802.11ad mode
* @QCA_ACS_MODE_IEEE80211ANY: all modes
* @QCA_ACS_MODE_IEEE80211AX: 802.11ax mode
*/
enum qca_wlan_vendor_acs_hw_mode { enum qca_wlan_vendor_acs_hw_mode {
QCA_ACS_MODE_IEEE80211B, QCA_ACS_MODE_IEEE80211B,
QCA_ACS_MODE_IEEE80211G, QCA_ACS_MODE_IEEE80211G,
QCA_ACS_MODE_IEEE80211A, QCA_ACS_MODE_IEEE80211A,
QCA_ACS_MODE_IEEE80211AD, QCA_ACS_MODE_IEEE80211AD,
QCA_ACS_MODE_IEEE80211ANY, QCA_ACS_MODE_IEEE80211ANY,
QCA_ACS_MODE_IEEE80211AX,
}; };
/** /**
@ -1157,6 +1288,8 @@ enum qca_wlan_vendor_acs_hw_mode {
* @QCA_WLAN_VENDOR_FEATURE_SELF_MANAGED_REGULATORY: Device supports self * @QCA_WLAN_VENDOR_FEATURE_SELF_MANAGED_REGULATORY: Device supports self
* managed regulatory. * managed regulatory.
* @QCA_WLAN_VENDOR_FEATURE_TWT: Device supports TWT (Target Wake Time). * @QCA_WLAN_VENDOR_FEATURE_TWT: Device supports TWT (Target Wake Time).
* @QCA_WLAN_VENDOR_FEATURE_11AX: Device supports 802.11ax (HE)
* @QCA_WLAN_VENDOR_FEATURE_6GHZ_SUPPORT: Device supports 6 GHz band operation
* @NUM_QCA_WLAN_VENDOR_FEATURES: Number of assigned feature bits * @NUM_QCA_WLAN_VENDOR_FEATURES: Number of assigned feature bits
*/ */
enum qca_wlan_vendor_features { enum qca_wlan_vendor_features {
@ -1169,6 +1302,8 @@ enum qca_wlan_vendor_features {
QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON = 6, QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON = 6,
QCA_WLAN_VENDOR_FEATURE_SELF_MANAGED_REGULATORY = 7, QCA_WLAN_VENDOR_FEATURE_SELF_MANAGED_REGULATORY = 7,
QCA_WLAN_VENDOR_FEATURE_TWT = 8, QCA_WLAN_VENDOR_FEATURE_TWT = 8,
QCA_WLAN_VENDOR_FEATURE_11AX = 9,
QCA_WLAN_VENDOR_FEATURE_6GHZ_SUPPORT = 10,
NUM_QCA_WLAN_VENDOR_FEATURES /* keep last */ NUM_QCA_WLAN_VENDOR_FEATURES /* keep last */
}; };
@ -1896,6 +2031,15 @@ enum qca_wlan_vendor_attr_config {
* *
* @QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_CHANNEL: Optional (u8) * @QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_CHANNEL: Optional (u8)
* Channel number on which Access Point should restart. * Channel number on which Access Point should restart.
* Note: If both the driver and user space application supports the 6 GHz band,
* this attribute is deprecated and QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_FREQUENCY
* should be used.
* To maintain backward compatibility, QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_CHANNEL
* is still used if either of the driver or user space application doesn't
* support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_FREQUENCY: Optional (u32)
* Channel center frequency (MHz) on which the access point should restart.
*/ */
enum qca_wlan_vendor_attr_sap_config { enum qca_wlan_vendor_attr_sap_config {
QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_INVALID = 0, QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_INVALID = 0,
@ -1908,6 +2052,7 @@ enum qca_wlan_vendor_attr_sap_config {
* the system. * the system.
*/ */
QCA_WLAN_VENDOR_ATTR_SAP_MANDATORY_FREQUENCY_LIST = 2, QCA_WLAN_VENDOR_ATTR_SAP_MANDATORY_FREQUENCY_LIST = 2,
QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_FREQUENCY = 3,
QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_MAX = QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_MAX =
@ -2012,11 +2157,22 @@ enum qca_acs_dfs_mode {
* @QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_HINT: Required (u8) * @QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_HINT: Required (u8)
* channel number hint for ACS operation, if valid channel is specified then * channel number hint for ACS operation, if valid channel is specified then
* ACS operation gives priority to this channel. * ACS operation gives priority to this channel.
* Note: If both the driver and user space application supports the 6 GHz band,
* this attribute is deprecated and QCA_WLAN_VENDOR_ATTR_ACS_FREQUENCY_HINT
* should be used.
* To maintain backward compatibility, QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_HINT
* is still used if either of the driver or user space application doesn't
* support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_ACS_FREQUENCY_HINT: Required (u32).
* Channel center frequency (MHz) hint for ACS operation, if a valid center
* frequency is specified, ACS operation gives priority to this channel.
*/ */
enum qca_wlan_vendor_attr_acs_config { enum qca_wlan_vendor_attr_acs_config {
QCA_WLAN_VENDOR_ATTR_ACS_MODE_INVALID = 0, QCA_WLAN_VENDOR_ATTR_ACS_MODE_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_ACS_DFS_MODE = 1, QCA_WLAN_VENDOR_ATTR_ACS_DFS_MODE = 1,
QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_HINT = 2, QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL_HINT = 2,
QCA_WLAN_VENDOR_ATTR_ACS_FREQUENCY_HINT = 3,
QCA_WLAN_VENDOR_ATTR_ACS_DFS_AFTER_LAST, QCA_WLAN_VENDOR_ATTR_ACS_DFS_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_ACS_DFS_MAX = QCA_WLAN_VENDOR_ATTR_ACS_DFS_MAX =
@ -4484,6 +4640,46 @@ enum qca_wlan_vendor_external_acs_event_chan_info_attr {
*/ */
QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FLAGS_2 = 11, QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FLAGS_2 = 11,
/*
* VHT segment 0 in MHz (u32) and the attribute is mandatory.
* Note: Event QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS includes
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_0
* along with
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_VHT_SEG_0.
*
* If both the driver and user-space application supports the 6 GHz
* band, QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_VHT_SEG_0
* is deprecated and
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_0
* should be used.
*
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_0
* is still used if either of the driver or user space application
* doesn't support the 6 GHz band.
*/
QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_0 = 12,
/*
* VHT segment 1 in MHz (u32) and the attribute is mandatory.
* Note: Event QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS includes
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_1
* along with
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_VHT_SEG_1.
*
* If both the driver and user-space application supports the 6 GHz
* band, QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_VHT_SEG_1
* is deprecated and
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_1
* should be considered.
*
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_1
* is still used if either of the driver or user space application
* doesn't support the 6 GHz band.
*/
QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_FREQ_VHT_SEG_1 = 13,
/* keep last */ /* keep last */
QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_LAST, QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_LAST,
QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_MAX = QCA_WLAN_VENDOR_EXTERNAL_ACS_EVENT_CHAN_INFO_ATTR_MAX =
@ -4584,9 +4780,100 @@ enum qca_wlan_vendor_attr_external_acs_event {
}; };
/** /**
* qca_wlan_vendor_attr_external_acs_channels: Attributes to vendor subcmd * enum qca_wlan_vendor_attr_external_acs_channels: Attributes to vendor subcmd
* QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS. This carries a list of channels * QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS. This carries a list of channels
* in priority order as decided after ACS operation in userspace. * in priority order as decided after ACS operation in userspace.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_REASON: Required (u8).
* One of reason code from enum qca_wlan_vendor_acs_select_reason.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_LIST: Required
* Array of nested values for each channel with following attributes:
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_PRIMARY,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_SECONDARY,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG0,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG1,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_WIDTH
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_LIST is deprecated and use
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_LIST.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_LIST
* is still used if either of the driver or user space application doesn't
* support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_PRIMARY: Required (u8).
* Primary channel number
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_PRIMARY is deprecated and use
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_PRIMARY.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_PRIMARY
* is still used if either of the driver or user space application doesn't
* support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_SECONDARY: Required (u8).
* Secondary channel number, required only for 160 and 80+80 MHz bandwidths.
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_SECONDARY is deprecated and use
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_SECONDARY.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_SECONDARY
* is still used if either of the driver or user space application
* doesn't support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG0: Required (u8).
* VHT seg0 channel number
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG0 is deprecated and use
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG0.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG0
* is still used if either of the driver or user space application
* doesn't support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG1: Required (u8).
* VHT seg1 channel number
* Note: If both the driver and user-space application supports the 6 GHz band,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG1 is deprecated and use
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG1.
* To maintain backward compatibility,
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_CENTER_SEG1
* is still used if either of the driver or user space application
* doesn't support the 6 GHz band.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_WIDTH: Required (u8).
* Takes one of enum nl80211_chan_width values.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_LIST: Required
* Array of nested values for each channel with following attributes:
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_PRIMARY in MHz (u32),
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_SECONDARY in MHz (u32),
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG0 in MHz (u32),
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG1 in MHz (u32),
* QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_WIDTH
* Note: If user-space application has no support of the 6 GHz band, this
* attribute is optional.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_PRIMARY: Required (u32)
* Primary channel frequency in MHz
* Note: If user-space application has no support of the 6 GHz band, this
* attribute is optional.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_SECONDARY: Required (u32)
* Secondary channel frequency in MHz used for HT 40 MHz channels.
* Note: If user-space application has no support of the 6 GHz band, this
* attribute is optional.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG0: Required (u32)
* VHT seg0 channel frequency in MHz
* Note: If user-space application has no support of the 6GHz band, this
* attribute is optional.
*
* @QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG1: Required (u32)
* VHT seg1 channel frequency in MHz
* Note: If user-space application has no support of the 6 GHz band, this
* attribute is optional.
*/ */
enum qca_wlan_vendor_attr_external_acs_channels { enum qca_wlan_vendor_attr_external_acs_channels {
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_INVALID = 0, QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_INVALID = 0,
@ -4617,6 +4904,12 @@ enum qca_wlan_vendor_attr_external_acs_channels {
/* Channel width (u8). Takes one of enum nl80211_chan_width values. */ /* Channel width (u8). Takes one of enum nl80211_chan_width values. */
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_WIDTH = 8, QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_WIDTH = 8,
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_LIST = 9,
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_PRIMARY = 10,
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_SECONDARY = 11,
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG0 = 12,
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_FREQUENCY_CENTER_SEG1 = 13,
/* keep last */ /* keep last */
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_LAST, QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_LAST,
QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_MAX = QCA_WLAN_VENDOR_ATTR_EXTERNAL_ACS_CHANNEL_MAX =