Commit Graph

38 Commits

Author SHA1 Message Date
Aasir Rasheed
3089936013 qcacld-3.0: Disable CTS2SELF for OUI : 8CFDF0
Currently, Host driver is enabling CTS2SELF for most of the qcom
AP (8CFDF0) and It will try to send the data in all the cases by
not waiting for RTS-CTS and in some cases if it does not win the
medium, it will take around 4x time than normal RTS-CTS(in case
of failure) leading to throughput issue.

This change is to disable CTS2SELF for OUI : 8CFDF0

Change-Id: I4becf0d1c093f458868634a9636d2e14d60a9f37
CRs-Fixed: 3689771
2024-02-09 06:23:27 -08:00
Jianmin Zhu
18ea5be149 qcacld-3.0: Add vendor OUI to limit BW when connect IoT AP
UL data delay is high when connect specific AP.
To fix it with OUI ini, limit Tx BW if vendor OUI is received in beacon.

Change-Id: I54a4ddb4f113baf1da0ba5490760f38f30159f2e
CRs-Fixed: 3695107
2024-02-02 15:39:00 -08:00
Vinod Kumar Pirla
0b6df7dbe9 qcacld-3.0: Restrict three link connection on certain vendor APs
Identify APs which don't support three links and downgrade the
max connection links to two so that connecting to such APs will
not lead to unexpected behavior.

Change-Id: I25d2c0fd09e29b6f0cc2d228e52733bcbceb39fd
CRs-Fixed: 3636112
2023-12-21 04:34:33 -08:00
Aasir Rasheed
bc4bf41fdd qcacld-3.0: Check multiple vendor IE with same OUI
Currently, host driver only validate the first vendor IE with a matching
OUI was considered, leading to potential oversight. Now the updated
logic thoroughly checks and validate each vendor IE with its
corresponding OUI data.

Change-Id: I3c5444373e355425adbf6e802591b68b74de598f
CRs-Fixed: 3640771
2023-10-20 07:59:17 -07:00
Aasir Rasheed
627795a306 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
2023-10-20 07:59:11 -07:00
Deeksha Gupta
6717dc7b4b qcacld-3.0: Remove redundant ML log prints
Optimize and remove redundant ML log prints and also
pe_session logging.

CRs-Fixed: 3625951
Change-Id: I969a0a7e4c077889e390643b84e47cdff485ee14
2023-10-05 07:00:17 -07:00
Srinivas Dasari
01a957e561 qcacld-3.0: Choose self max nss for vdev_start
Currently, host driver picks minimum of the self and AP's NSS
capability at the time of join. Host driver sends the same to
firmware through vdev_start. But APs may upgrade NSS to higher
value during connect. As the NSS is already limited to min at
the time of join, STA is not able to use full capability and
connection also happens with min capability.
So, send self max NSS capability to firmware via vdev_start and
final value(min of self and AP's cap) is sent to firmware
through peer_assoc.
Also, cleanup the ini gActionOUIForceMaxNss as it's no
longer needed.

Change-Id: I0555059d03c77e55a4ccf1543e709904e6ea4e49
CRs-Fixed: 3615495
2023-09-25 05:15:16 -07:00
Surya Prakash Sivaraj
f42a49bfbf qcacld-3.0: Add additional room for runtime OUI extensions
FW allocates memory for action oui extensions only during
init. But, the driver configures some OUIs to the firmware
during connection. For the firmware to accommodate these
new action OUIs during connect, additional room needs to
be sent to firmware during driver initialization itself.

Add changes to send additional room for 10 extensions during
initialization.

Also, currently host adds the count of host only extensions
also as part of the total extensions sent to the firmware.
This leads to wastage of memory allocated in the firmware.

To fix this, keep a separate counter for host only extensions
and remove these from the total extensions saved before
configuring action OUIs to firmware.

CRs-Fixed: 3605032
Change-Id: Ibac93418a873bab53e1c58bf7c06834e38dfd534
2023-09-04 14:26:48 -07:00
Jianmin Zhu
493e081e3d qcacld-3.0: Add action OUI to disable beamformee for IoT AP
when connect to IoT AP and BW is 160 MHz and max NSS is 2,
disable SU/MU beamformee.

Change-Id: Ib99072c36b72859cb1f8a4336f8aa7f696cb7d02
CRs-Fixed: 3583339
2023-08-27 01:04:07 -07:00
Jianmin Zhu
9e0d78bf29 qcacld-3.0: Add OUI config to send SMPS frame along with OMN for IoT AP
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs.

Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568463
2023-07-27 04:49:35 -07:00
Jianmin Zhu
a0cd2ab42d qcacld-3.0: Add OUI config to enable CTS2SELF with QoS null frame
Add gActionOUIEnableCTS2SelfWithQoSNull to enable CTS2SELF with QoS null
frame for specified IoT APs.

Change-Id: Ia0bccd02f4491e106413728d1a54d76265c80249
CRs-Fixed: 3533505
2023-06-24 00:28:54 -07:00
Jingxiang Ge
3e2b569a81 qcacld-3.0: add ini gActionOUIAuthAssoc6Mbps2GHz
Some AP doesn't honor CCK rate for auth/assoc.
this ini is added to detect specified AP and
send auth/assoc/reassoc(non-offload) with 6 Mbps
rate on 2.4 GHz, then AP will ack to STA.

Change-Id: I8a164471198842368add40ca726420569dd82430
CRs-Fixed: 3412381
2023-04-19 20:15:56 -07:00
Jingxiang Ge
2069b79a16 qcacld-3.0: change mask for gActionOUIDisableDynamicQosNullTxRate
Change mask for OUI as the 2nd byte will change dynamically
for each powerup/powerdown.

Change-Id: Ia742f96956e470fd0c02ae4ee8813f0f84e96556
CRs-Fixed: 3460525
2023-04-19 00:01:26 -07:00
Jingxiang Ge
13c3c4fd6d qcacld-3.0: Add ini gActionOUIDisableDynamicQosNullTxRate
Add gActionOUIDisableDynamicQosNullTxRate to control FW's dynamic qos
null tx rate feature.

Some APs sometimes don't honor Qos null frames with some specific rate.
This ini will disable dynamic qos null tx rate feature for specified
APs.

Change-Id: I1690c14142c93e8456705183c9e12c41c20f3a4a
CRs-Fixed: 3450104
2023-04-07 06:28:23 -07:00
Liangwei Dong
0047371885 qcacld-3.0: Move Action OUI INI config to component
Move Action OUI INI config to component.
Add ucfg API to load/parse the configuration.

Change-Id: Ibaab5428bc575394b9a5b464639d24f80f042e93
CRs-Fixed: 3310697
2022-12-04 15:25:52 -08:00
Jeff Johnson
744f70e8db qcacld-3.0: Fix action_oui documentation
The kernel-doc script identified several documentation issues in
the action_oui component, so fix them.

Change-Id: I7fb63da7fbd7911b11e954bca824c2648e138679
CRs-Fixed: 3340062
2022-11-19 01:03:10 -08:00
Liangwei Dong
b15dc8b3d3 qcacld-3.0: Fix documentation errors for action oui API
Change "psoc" to "psoc_priv" in documentation of
wlan_action_oui_cleanup.
Correct documentation of API name for action_oui_psoc_enable.

Change-Id: I9e3adbf69ca40967f2680114f4c7f1bb22c391a1
CRs-Fixed: 3323128
2022-10-31 06:00:22 -07:00
Liangwei Dong
77d14af550 qcacld-3.0: Handle disable EHT flag in connect request
If user sets flag ASSOC_REQ_DISABLE_EHT in connect request, driver
will send action oui "ffffff 00 01" to host mlme and also firmware
for action id ACTION_OUI_11BE_OUI_ALLOW, so that all the AP will
be not matched with this OUI and 802.11be mode will not be allowed,
possibly downgrade to 11ax will happen.
If user doesn't set ASSOC_REQ_DISABLE_EHT, driver/firmware will
recover to default oui setting.

Change-Id: I9eab732f1bd29018d44b215c1d6c9bfac9dafe95
CRs-Fixed: 3314489
2022-10-21 15:23:38 -07:00
Liangwei Dong
74aa28da73 qcacld-3.0: Add 802.11be allowed AP OUI INI support
Add INI g11be_oui_allow_list to config 802.11be AP oui which
is allowed to get connected in 802.11be mode.
If the INI is empty, all the ap are allowed to get connected
in 802.11be mode. If INI is set to "ffffff 00 01", then STA
is not allowed to connect to any AP in 802.11be mode.

Change-Id: I98e545ba909c1746237a20c365f8297f16fe666f
CRs-Fixed: 3304021
2022-10-17 12:57:45 -07:00
Gururaj Pandurangi
adf026f655 Revert "qcacld-3.0: Fix MU EDCA iot AP issue"
This reverts commit I0ad26214417d33bafcbb6939a247bebe4f4637f8.

Change-Id: I5fd3f449557e7db1c6abfdcc6db199636d25884a
CRs-Fixed: 3283064
2022-09-14 17:28:05 -07:00
Yu Wang
85e898d01a qcacld-3.0: add ini to extend ITO value under WoWLAN mode
Some APs sometimes don't honor Qos null frames under WoWLAN
mode if station's ITO is too small. Introduce a new ini
gActionOUIExtendWowITO to specify AP OUIs which exhibit
this behavior. When connected to such an AP, the station's
ITO value will be extended when in WoWLAN mode.

Change-Id: I41ade7e6a6f5ca8d9b2aac2ae25427ca7fa8fe6b
CRs-Fixed: 3238200
2022-07-18 01:03:51 -07:00
Qun Zhang
04f01b2cea qcacld-3.0: Let country IE take band channel info as need
When verifying WNM BSS transition function, it's possible to
ask peer STA to transition across multiple band. Some vendor
BTM implementation is needed to check country IE to get all
supported band channel info. Without full channel list in
country IE, it cannot make a transition across multiple band.
To solve the interop issue, let country IE take all supported
band channel info when the specific vendor OUI is detected in
association request.

Change-Id: I78dd4b88937277b54a7da4d72d8a94706965e9a6
CRs-Fixed: 3196957
2022-05-25 09:27:54 -07:00
Jianmin Zhu
bef2c71d6c qcacld-3.0: Fix code style of action oui
Fix the indentation of the 3rd parameter for all of qdf_str_lcopy() calls.

Replace the magic numbers with action_oui_id enums in the destination array
index for entries 0-6.

To align with out software architecture the umac code should not be calling
ucfg (user configuration) APIs, these should only be called by HDD/OSIF.
Instead the action oui component should export an inter-component API
wlan_action_oui_* which this function calls.
Change the implementation of the ucfg_ api to call the wlan_ API.

Change-Id: Id75eb6bd1ceb8031ccd0cc9c2f5826872969dc6f
CRs-Fixed: 3192204
2022-05-09 23:36:46 -07:00
Jianmin Zhu
100c2b7144 qcacld-3.0: Fix MU EDCA iot AP issue
One special AP sets MU EDCA timer as 255 wrongly in both beacon and assoc
rsp, lead to 2 sec SU UL data stall periodically.

To fix it, add ini gActionOUIDisableMuEDCA to specify action OUIs to
control MU EDCA configuration when join the AP, reset MU EDCA timer to 1
and config to F/W for such AP.

Change-Id: I0ad26214417d33bafcbb6939a247bebe4f4637f8
CRs-Fixed: 3180249
2022-05-06 21:04:28 -07:00
Gururaj Pandurangi
98f9fe57f4 qcacld-3.0: Reduce log level of certain error logs
Reduce log level of a few error logs to reduce
excessive logging.

Change-Id: I3e93d033bc29a7dfee5c5ef18d52cded54fc1cbb
CRs-Fixed: 3035970
2021-09-17 16:53:25 -07:00
Gururaj Pandurangi
64bf153003 qcacld-3.0: Add action OUI to disable TWT for some APs
Add a new action OUI to disable TWT for certain APs.
The cfg item will be present in the host and sent to
the FW to disable TWT.

Change-Id: I122c44993a9102838dec7e9eb2817ba404a76515
CRs-Fixed: 2793124
2020-10-27 22:54:57 -07:00
Srinivas Girigowda
d36054fbd2 qcacld-3.0: components: Remove logs for qdf_mem_malloc() checks
qdf_mem_malloc() function already takes care of logging the
caller function name and line number in case of any allocation error.
Hence there is no need to add the error log again.

Getting rid of these unnecessary logs reduces driver memory footprint.

Change-Id: If0b9425f82f9ed793c7639c0ed09eb1f868b6d5c
CRs-Fixed: 2781932
2020-09-25 12:59:42 -07:00
Liangwei Dong
eb4d039e1f qcacld-3.0: Reconnect to same BSS once again ifdd assoc timeout
Add INI - gActionOUIReconnAssocTimeout to configure driver
to do:
1. Driver will not send deauth to the AP after association timeout.
2. Reconnect to same BSS again if the last association failure
is association response timeout.
Default="00E04C 00 01"

The change fixes IOT issue with certain AP which doesn't
response first association request frame sometime. But the AP
would response second association request.

Change-Id: I9f7b8d14aaaaa97f08856c8b62e49b145db3ac91
CRs-Fixed: 2653877
2020-04-16 08:17:03 -07:00
Lincoln Tran
f55bc71172 qcacld-3.0: Remove usage of OS specific API in UMAC code
Replace skip_spaces usage with appropriate QDF replacement

Change-Id: I474470d9cfc86fe8df7b6bfc9f1223342255842d
CRs-fixed: 2631974
2020-03-16 17:23:17 -07:00
Abhishek Singh
4ec44a7db6 qcacld-3.0: Optimize logs in connect req in HDD and CSR
Remove redundant logs and optimize the logs for connect in
HDD and CSR.

Change-Id: I2d2d63aaaff814d91018e95a30869b81c1349a80
CRs-Fixed: 2615902
2020-02-05 12:31:18 -08:00
gaurank kathpalia
ca2ecc8a2a qcacld-3.0: Remove redundent logs from the Sta connect req
Remove redundant logs from the Sta connect req.

Change-Id: I0b0d455802b0df3509010c31b908737c54a861c7
CRs-Fixed: 2614594
2020-02-03 19:46:52 -08:00
Abhishek Ambure
ee81f8b2eb qcacld-3.0: Set 5G band capability bit in gActionOUIConnect1x1 ini
gActionOUIConnect1x1 is used to specify action OUIs for 1x1
connection.

Some Access Points are unable to handle SMPS and OMN frames and shows
abnormal behaviour when STA is switching between 2x2 to 1x1 and
vice-versa. To avoid this, restrict connection in 1x1 mode with such APs.

Here the scenario is DUT STA1 connects in 2x2 mode to AP1 in 5G mode then
later on DUT another STA2 iface connects to AP2 in 2G mode. DUT sends OMN
frame to AP1 to inform that it is going to switch to 1x1 mode. AP1 ack
this frame but doesn't change its Tx rates and continues to use 2x2 rates
which DUT cannot ACK. This causes low throughput issue where AP1 Tx rate
falls to 6Mbps due to missing acks.

Hence, 5G band capability bit in "gActionOUIConnect1x1" is set to make
connections in 1x1 with such AP.

Presently, 5G band capability bit is not checked if 2G band capability bit
is not set or 2G band is not enabled. Hence, Vendor AP capability check for
2G and 5G Band is refactored.

Change-Id: Ic6b682451405a2373000e4c64656f50c2fab0ee6
CRs-Fixed: 2558293
2019-11-18 02:29:15 -08:00
Paul Zhang
d34b575fc5 qcacld-3.0: Add ini to disable aggressive EDCA config
Add action_oui ini gActionOUIDisableAggressiveEDCA to identify peers for
which aggressive EDCA configuration causes some IOT issues.

Change-Id: Ifea0c224cef2378727c9f78d8b571ea9c57bb662
CRs-Fixed: 2507191
2019-10-15 23:17:55 -07:00
Yeshwanth Sriram Guntuka
22ed80066a qcacld-3.0: Advertise max NSS capability with few IOT APs
Few IOT APs advertise reduced NSS capabilities on ending
up in bad state. These APs can later recover to support
the actual NSS capabilities. In this scenario, when STA
initiates connection to these APs, which are in bad state,
reduced NSS capabilities is advertised. STA cannot later
upgrade NSS capabilities to the minimum of STA max NSS
capability and APs actual NSS capability, once AP recovers.

Fix is to advertise max NSS capability during connection
with these IOT APs based on vendor OUIs and downgrade if
AP still advertises reduced NSS capability in association
response.

Change-Id: I49ea13534b1a44fd9ffadd1e8fb44e9d782147c4
CRs-Fixed: 2453938
2019-05-31 05:17:09 -07:00
Rajeev Kumar Sirasanagandla
d7987f16ef qcacld-3.0: Add ini to disable some aggressive TX features
Add action_oui ini gActionOUIDisableAggressiveTX to identify peers for
which some of aggressive TX features are to be disabled in firmware,
when DUT is operating in softap mode.

Aggressive TX features disabled are SIFS bursting, assist and support of
more than 32 frames in AMPDU.

Change-Id: I89fb6d40be5110b0331e84ed3239cd997ce0c899
CRs-Fixed: 2364888
2018-12-13 23:21:25 -08:00
Vignesh Viswanathan
c6812821f7 qcacld-3.0: Add support for wildcard OUI in Action OUI framework
Add support for wildcard OUI 0xFFFFFF in action OUI framework.
When the OUI FFFFFF is defined for some action OUI ini and bit 0
of info_presence bit is set to 0 then the check for vendor OUI
in vendor specific IEs and the vendor IE data checks are skipped
and other checks like MAC, Capabilities are done during connection.

Change-Id: I6e996c5d79f4f7bd91e11134b1b8ba69a1ff0253
CRs-Fixed: 2293167
2018-08-20 15:15:11 -07:00
Vignesh Viswanathan
f9a704c92a qcacld-3.0: Add support for 1x1 connect with 1 Tx/Rx Chain action OUI
Add support for new 1x1 connect with 1 Tx/Rx Chain action OUI to be
parsed and sent to the FW. From host during connection, the behaviour
is same as existing connect 1x1 action OUI where nss is sent to 1 to
the FW, but the FW takes the decision to use only one Tx/Rx chain
based on the OUIs defined in the new action ID.

Change-Id: Ia464209043dc73bcc71577c43b28fbe13e780c23
CRs-Fixed: 2264326
2018-08-09 14:34:02 -07:00
Rajeev Kumar Sirasanagandla
4725ae4600 qcacld-3.0: Add support for action OUI extensions
Add support for action OUI extensions which can be used by station
to control mode of connection, connected AP's in-activity time and
Tx rate etc.,

Change-Id: Ie85e29c4b0ed7ac2815709d7a4e607c4ba46c6ca
CRs-Fixed: 2254502
2018-07-24 13:20:33 -07:00