Add vendor attributes to configure TX/RX NSS and chains per band
Add attributes to QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION vendor command to configure asymmetric TX/RX NSS and chains per band. Also document driver's response when existing attributes to configure TX/RX NSS and chains for all the bands 2.4 GHz and 5/6 GHz are used in the same command. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
c484a0fca4
commit
4c0ea82700
1 changed files with 91 additions and 0 deletions
|
@ -59,6 +59,23 @@ enum qca_radiotap_vendor_ids {
|
|||
* with a failure. They can be used to configure either symmetric NSS
|
||||
* configuration (such as 2X2 or 1X1) or asymmetric configuration (such as 1X2).
|
||||
*
|
||||
* Per band NSS configuration - Applies to the 2.4 GHz or 5/6 GHz band
|
||||
* The following attributes are used to dynamically configure the number of
|
||||
* spatial streams to be used for transmitting or receiving the data in the
|
||||
* 2.4 GHz band or 5/6 GHz band. All these attributes must be defined together
|
||||
* to configure symmetric NSS configuration (such as 1X1 or 2X2) or asymmetric
|
||||
* NSS configuration (such as 1X2). If any of the attributes is missing, the
|
||||
* driver will reject the command with a failure. This configuration is allowed
|
||||
* only when in connected state and will be effective until disconnected. The
|
||||
* NSS value configured after the connection shall not be greater than the value
|
||||
* negotiated during the connection. Any such higher value configuration shall
|
||||
* be treated as invalid configuration by the driver.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_TX_NSS_2GHZ: Configure TX_NSS in 2.4 GHz band
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_RX_NSS_2GHZ: Configure RX_NSS in 2.4 GHz band
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_TX_NSS_5GHZ: Configure TX_NSS in 5 or 6 GHz band
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_RX_NSS_5GHZ: Configure RX_NSS in 5 or 6 GHz band
|
||||
*
|
||||
* Global chain configuration - Applies to all bands (2.4 GHz and 5/6 GHz)
|
||||
* The following attributes are used to dynamically configure the number of
|
||||
* chains to be used for transmitting or receiving the data in the 2.4 GHz and
|
||||
|
@ -75,6 +92,56 @@ enum qca_radiotap_vendor_ids {
|
|||
* The attributes QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS and
|
||||
* QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS must be defined together or the
|
||||
* driver will reject the command with a failure.
|
||||
*
|
||||
* Per band chain configuration - Applies to the 2.4 GHz or 5/6 GHz band
|
||||
* The following band specific attributes are used to dynamically configure the
|
||||
* number of chains to be used for tranmissting or receiving the data in the
|
||||
* 2.4 GHz or 5/6 GHz band. These attributes must be defined together or the
|
||||
* driver will reject the command. This configuration is allowed only when in
|
||||
* connected state and will be effective until disconnected. The driver rejects
|
||||
* this configuration if the number of spatial streams being used in the
|
||||
* current connection cannot be supported by this configuration.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS_2GHZ: The number of chains to be
|
||||
* used for transmitting the data in the 2.4 GHz band.
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS_2GHZ: The number of chains to be
|
||||
* used for receiving the data in the 2.4 GHz band.
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS_5GHZ: The number of chains to be
|
||||
* used for transmitting the data in the 5/6 GHz band.
|
||||
* @QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS_5GHZ: The number of chains to be
|
||||
* used for receiving the data in the 5/6 GHz band.
|
||||
*
|
||||
* The following scenarios capture how the driver process the configuration when
|
||||
* different TX/RX NSS and chain config attributes are used in the command.
|
||||
*
|
||||
* Case 1: CONFIG_NSS + CONFIG_TX_NSS/RX_NSS - Only CONFIG_NSS is applied
|
||||
* since only one of the TX_NSS or RX_NSS attribute is present.
|
||||
*
|
||||
* Case 2: CONFIG_NSS + CONFIG_TX_NSS + CONFIG_RX_NSS - Same NSS values are
|
||||
* used to configure TX,RX in both the 2.4 GHz and 5/6 GHz bands.
|
||||
*
|
||||
* Case 3: Case 2 + NUM_TX_CHAINS + NUM_RX_CHAINS - The NSS and the number of
|
||||
* chains values are used to configure TX,RX in both the 2.4 GHz and 5/6 GHz
|
||||
* bands.
|
||||
*
|
||||
* Case 4: TX_NSS_2GHZ/TX_NSS_5GHZ + RX_NSS_2GHZ/RX_NSS_5GHZ - Since per band
|
||||
* TX/RX NSS attribute is missing, the driver rejects the command.
|
||||
*
|
||||
* Case 5: TX_NSS_2GHZ + TX_NSS_5GHZ + RX_NSS_2GHZ + RX_NSS_5GHZ - The 2.4 GHz
|
||||
* band is configured with the TX_NSS_2GHZ, RX_NSS_2GHZ values. The 5/6 GHz band
|
||||
* is configured with the TX_NSS_5GHZ, RX_NSS_5GHZ values.
|
||||
*
|
||||
* Case 6: TX_CHAINS_2GHZ/TX_CHAINS_5GHZ + RX_CHAINS_5GHZ/RX_CHAINS_5GHZ - Since
|
||||
* per band TX/RX chains attribute is missing, the driver rejects the command.
|
||||
*
|
||||
* Case 7: TX_CHAINS_2GHZ + TX_CHAINS_5GHZ + RX_CHAINS_5GHZ + RX_CHAINS_5GHZ -
|
||||
* The 2.4 GHz band is configured with the TX_CHAINS_2GHZ, RX_CHAINS_2GHZ
|
||||
* values. The 5/6 GHz band is configured with the TX_CHAINS_5GHZ,
|
||||
* RX_CHAINS_5GHZ values.
|
||||
*
|
||||
* Case 8: Case 5 + Case 7 - Per band TX,RX NSS and chains are configured.
|
||||
*
|
||||
* Case 9: Case 2 + Case 8 - Per band TX,RX NSS and chains are configured.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -3508,6 +3575,30 @@ enum qca_wlan_vendor_attr_config {
|
|||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_REDUCED_POWER_SCAN_MODE = 109,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_TX_NSS_2GHZ = 110,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_RX_NSS_2GHZ = 111,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_TX_NSS_5GHZ = 112,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_RX_NSS_5GHZ = 113,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS_2GHZ = 114,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS_2GHZ = 115,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS_5GHZ = 116,
|
||||
|
||||
/* 8-bit unsigned value. Refer to TX/RX NSS and chain configurations */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS_5GHZ = 117,
|
||||
|
||||
/* keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_AFTER_LAST,
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_MAX =
|
||||
|
|
Loading…
Reference in a new issue