qcacld-3.0: Enable CTS2SELF for specified APs

Enable CTS2SELF for specified APs that has below OUI:

Currently, STA initiates an RTS before sending a data packet and expects
AP to send CTS. The data packet would be sent out only if CTS is
received. But some APs may not respond for the RTS and station would
retry RTS frames continuously till max retry threshold is reached. It's
observed that few commercial APs have this behavior and there is no use
of sending RTS to such APs.

Identify the vendor OUI of such APs, send a self-CTS and send the
data packets. This can avoid RTS spamming also.

Default OUIs: (All values in Hex)
OUI 1: 000C43
OUI data Len: 04
OUI Data : 07000000
OUI data Mask: F0 - 11110000
Info Mask : 21 - 0010 0001 Check for OUI and Band
Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz

OUI 2 : 000C43
OUI data Len : 04
OUI Data : 03000000
OUI data Mask: F0 - 11110000
Info Mask : 21 - 0010 0001 Check for OUI and Band
Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz

OUI 3 : 8CFDF0
OUI data Len : 05
OUI Data : 0101020100
OUI data Mask: F8 - 11111000
Info Mask : 21 - 0010 0001 Check for OUI and Band
Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz

OUI 4 : 8CFDF0
OUI data Len : 05
OUI Data : 0109020300
OUI data Mask: F8 - 11111000
Info Mask : 21 - 0010 0001 Check for OUI and Band
Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz

Change-Id: I98706d997587b712f6e830a43143645ec2e1b1c5
CRs-Fixed: 3637059
此提交包含在:
Aasir Rasheed
2023-10-12 12:40:35 -07:00
提交者 Ravindra Konda
父節點 a8f28807e5
當前提交 627795a306
共有 8 個檔案被更改,包括 159 行新增13 行删除

查看文件

@@ -188,6 +188,11 @@ static void action_oui_load_config(struct action_oui_psoc_priv *psoc_priv)
cfg_get(psoc,
CFG_ACTION_OUI_ENABLE_CTS2SELF_WITH_QOS_NULL),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(psoc_priv->action_oui_str[ACTION_OUI_ENABLE_CTS2SELF],
cfg_get(psoc, CFG_ACTION_OUI_ENABLE_CTS2SELF),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(psoc_priv->action_oui_str
[ACTION_OUI_SEND_SMPS_FRAME_WITH_OMN],
cfg_get(psoc,

查看文件

@@ -761,6 +761,58 @@
"", \
"Used to enable CTS2SELF with QoS null frame for specified APs")
/*
* <ini>
* g_action_oui_enable_cts_2_self - Used to enable CTS2SELF for specified APs
*
* Default OUIs: (All values in Hex)
* OUI 1: 000C43
* OUI data Len: 04
* OUI Data : 07000000
* OUI data Mask: F0 - 11110000
* Info Mask : 21 - 0010 0001 Check for OUI and Band
* Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz
*
* OUI 2 : 000C43
* OUI data Len : 04
* OUI Data : 03000000
* OUI data Mask: F0 - 11110000
* Info Mask : 21 - 0010 0001 Check for OUI and Band
* Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz
*
* OUI 3 : 8CFDF0
* OUI data Len : 05
* OUI Data : 0101020100
* OUI data Mask: F8 - 11111000
* Info Mask : 21 - 0010 0001 Check for OUI and Band
* Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz
*
* OUI 4 : 8CFDF0
* OUI data Len : 05
* OUI Data : 0109020300
* OUI data Mask: F8 - 11111000
* Info Mask : 21 - 0010 0001 Check for OUI and Band
* Capabilities: C0 - 1100 0000 Band == 2 GHz || Band == 5 GHz
*
* g_action_oui_enable_cts_2_self=000C43 04 07000000 F0 21 C0 000C43 04 03000000 F0 21 C0 8CFDF0 05 0101020100 F8 21 C0 8CFDF0 05 0109020300 F8 21 C0
*
* Refer to gEnableActionOUI for more detail about the format.
*
* Related: gEnableActionOUI
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_ENABLE_CTS2SELF CFG_INI_STRING( \
"g_action_oui_enable_cts_2_self", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"000C43 04 07000000 F0 21 C0 000C43 04 03000000 F0 21 C0 8CFDF0 05 0101020100 F8 21 C0 8CFDF0 05 0109020300 F8 21 C0", \
"Used to enable CTS2SELF frame for specified APs")
/*
* <ini>
* gActionOUISendSMPSFrameWithOMN - Used to send SMPS frame along with OMN
@@ -807,6 +859,7 @@
CFG(CFG_ACTION_OUI_TAKE_ALL_BAND_INFO) \
CFG(CFG_ACTION_OUI_11BE_ALLOW_LIST) \
CFG(CFG_ACTION_OUI_DISABLE_DYNAMIC_QOS_NULL_TX_RATE) \
CFG(CFG_ACTION_OUI_ENABLE_CTS2SELF) \
CFG(CFG_ACTION_OUI_ENABLE_CTS2SELF_WITH_QOS_NULL) \
CFG(CFG_ACTION_OUI_SEND_SMPS_FRAME_WITH_OMN) \
CFG(CFG_ACTION_OUI_AUTH_ASSOC_6MBPS_2GHZ) \

查看文件

@@ -124,6 +124,7 @@
* on 2.4 GHz
* @ACTION_OUI_DISABLE_BFORMEE: disable SU/MU beam formee capability for
* specified AP
* @ACTION_OUI_ENABLE_CTS2SELF: enable cts to self for specified AP's
* @ACTION_OUI_MAXIMUM_ID: maximum number of action oui types
*/
enum action_oui_id {
@@ -148,6 +149,7 @@ enum action_oui_id {
ACTION_OUI_AUTH_ASSOC_6MBPS_2GHZ,
ACTION_OUI_DISABLE_BFORMEE,
ACTION_OUI_DISABLE_AGGRESSIVE_EDCA,
ACTION_OUI_ENABLE_CTS2SELF,
ACTION_OUI_MAXIMUM_ID
};