qcacmn: Vendor command to configure rate mask

Introduce a new vendor command QCA_NL80211_VENDOR_SUBCMD_RATEMASK_CONFIG.
This is used to set the rate mask config to be used in mcs rate selection
per PHY type.

Change-Id: I013a547be89dac187bc48531a674f3dde8a3f6e9
CRs-Fixed: 3137604
This commit is contained in:
Jayachandran Sreekumaran
2021-12-22 10:07:49 +05:30
committed by Madan Koyyalamudi
parent 9ed0a7c970
commit d0232b9bc0

View File

@@ -546,6 +546,11 @@
* Applicable only for the STA mode. The attributes used with this command
* are defined in enum qca_wlan_vendor_attr_roam_events.
*
* @QCA_NL80211_VENDOR_SUBCMD_RATEMASK_CONFIG: Sub-command to set or reset the
* rate mask config for a list of phy types. Userspace shall provide
* an array of the vendor attributes defined in
* enum QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS.
*
* @QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA: Multi-channel Concurrency (MCC) occurs
* when two interfaces are active on the same band, using two different
* home channels, and only supported by a single radio. In this scenario
@@ -805,6 +810,7 @@ enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_DIAG_DATA = 201,
QCA_NL80211_VENDOR_SUBCMD_SET_MONITOR_MODE = 202,
QCA_NL80211_VENDOR_SUBCMD_ROAM_EVENTS = 203,
QCA_NL80211_VENDOR_SUBCMD_RATEMASK_CONFIG = 204,
QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA = 205,
};
@@ -12790,4 +12796,59 @@ enum qca_wlan_vendor_attr_roam_events {
QCA_WLAN_VENDOR_ATTR_ROAM_EVENTS_AFTER_LAST - 1,
};
/*
* enum qca_wlan_ratemask_params_type - Rate mask config type.
*
* @QCA_WLAN_RATEMASK_PARAMS_TYPE_CCK_OFDM: CCK_OFDM rate mask config
* @QCA_WLAN_RATEMASK_PARAMS_TYPE_HT: HT rate mask config
* @QCA_WLAN_RATEMASK_PARAMS_TYPE_VHT: VHT rate mask config
* @QCA_WLAN_RATEMASK_PARAMS_TYPE_HE: HE rate mask config
*/
enum qca_wlan_ratemask_params_type {
QCA_WLAN_RATEMASK_PARAMS_TYPE_CCK_OFDM = 0,
QCA_WLAN_RATEMASK_PARAMS_TYPE_HT = 1,
QCA_WLAN_RATEMASK_PARAMS_TYPE_VHT = 2,
QCA_WLAN_RATEMASK_PARAMS_TYPE_HE = 3,
};
/* enum qca_wlan_vendor_attr_ratemask_params - Used by the
* vendor command QCA_NL80211_VENDOR_SUBCMD_RATEMASK_CONFIG.
* This is used to set the rate mask value to be used in rate selection.
*
* @QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_LIST:
* Array of nested containing attributes
* QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_TYPE and
* QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_BITMAP.
*
* @QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_TYPE: u8, represents
* the different phy types to which the rate mask config is to be applied.
* The values for this attribute are referred from enum
* qca_wlan_vendor_ratemask_params_type.
*
* @QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_BITMAP: binary, rate mask bitmap.
* A bit value of 1 represents rate is enabled and a value of 0
* represents rate is disabled.
* For HE targets, 12 bits correpond to one NSS setting.
* b0-13 => NSS1, MCS 0-13
* b14-27 => NSS2, MCS 0-13 and so on for other NSS.
* For VHT targets, 10 bits correspond to one NSS setting.
* b0-9 => NSS1, MCS 0-9
* b10-19 => NSS2, MCS 0-9 and so on for other NSS.
* For HT targets, 8 bits correspond to one NSS setting.
* b0-7 => NSS1, MCS 0-7
* b8-15 => NSS2, MCS 0-7 and so on for other NSS.
* For OFDM/CCK targets, 8 bits correspond to one NSS setting.
*/
enum qca_wlan_vendor_attr_ratemask_params {
QCA_WLAN_VENDOR_ATTR_RATEMASK_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_LIST = 1,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_TYPE = 2,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_BITMAP = 3,
/* keep last */
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_MAX =
QCA_WLAN_VENDOR_ATTR_RATEMASK_PARAMS_AFTER_LAST - 1,
};
#endif