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
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
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
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
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
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
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
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
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs.
Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568463
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
Change mask for OUI as the 2nd byte will change dynamically
for each powerup/powerdown.
Change-Id: Ia742f96956e470fd0c02ae4ee8813f0f84e96556
CRs-Fixed: 3460525
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
Move Action OUI INI config to component.
Add ucfg API to load/parse the configuration.
Change-Id: Ibaab5428bc575394b9a5b464639d24f80f042e93
CRs-Fixed: 3310697
The kernel-doc script identified several documentation issues in
the action_oui component, so fix them.
Change-Id: I7fb63da7fbd7911b11e954bca824c2648e138679
CRs-Fixed: 3340062
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
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
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
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
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
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
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
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
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
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
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
Add action_oui ini gActionOUIDisableAggressiveEDCA to identify peers for
which aggressive EDCA configuration causes some IOT issues.
Change-Id: Ifea0c224cef2378727c9f78d8b571ea9c57bb662
CRs-Fixed: 2507191
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
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
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
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
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