This change resolves following static analysis issues:
1. Using uint32_t and enumeration as operands to logical AND
operator (&&) is not allowed by the static analyzer tool.
Convert them to bool and use.
2. Overwriting the variable previous value before using it.
3. sizeof(key_alloc_buf[k]) returns 4/8 bytes as key_alloc_buf[k]
contains pointer. Use sizeof(*key_alloc_buf[k]) to get right
size of the object and use it to mem_zero the buffer.
Change-Id: I6faa5b3ff6847786a7f6ac525ccb0e5f60dbd020
CRs-Fixed: 3646512
Today projects should all support all band channel switch.
SAP option to send CSA or ECSA should not depend on whether operating
on channel 2.4 GHz, but considering if client support Extended Channel
Switch and whether 6 GHz channel involved as currently do.
Enable CONFIG_CHANNEL_HOPPING_ALL_BANDS in default configure and
remove checking 2.4 GHz channel condition.
Change-Id: Ibd73ca2115f8f2183292f3ca82d29be4590951a1
CRs-Fixed: 3642763
User space need roam AP BSSID info to analyse roam issue.
Driver cache AP BSSID during roam and update to user space when
get roam stats info by QCA_WLAN_VENDOR_ATTR_ROAM_STATS_INFO.
Change the roam frame number from 6 to 54, means update all
roam failed and successful frame to user space.
Change-Id: I22b3d917e7e0b4f322142ab359fa135cd588d8f7
CRs-Fixed: 3611826
When update channel width of current vdev, need update puncture bitmap
to avoid mismatch.
Change-Id: I0487b251524421611cee2ec33f036a037efa42ea
CRs-Fixed: 3646904
Add NULL check for twt_psoc_obj pointer to avoid NULL pointer
deference in function wlan_twt_get_pmo_allowed().
Change-Id: I1e5c24b843845c89e8779c5e69433c41c2311829
CRs-Fixed: 3626932
During roaming, if wpa_supplicant disable roaming by driver command
SETROAMMODE or SETFASTROAM, roam sync will fail.
To fix it, Don't allow to disable roaming by driver command SETROAMMODE
or SETFASTROAM during roaming, same as QCA_NL80211_VENDOR_SUBCMD_ROAMING.
Change-Id: I48efdb91abffdd7e4879f777be9c53ccab0126f7
CRs-Fixed: 3642788
SAP restart happens when a concurrent STA comes up in the
same band. Currently, the new bw is calculated based on channel
supported max bw. If SAP moves from one 6 GHz channel to another
6 GHz channel, the new bw would be calculated as 320 MHz even if
the current SAP operating bw is 160 MHz. But SAP bw should be
limited to current operating bw as it might have got downgraded
to 160 MHz as part of sap_bw_update algo.
Considered current operating bw when SAP restart happens as part
of sap_bw_update.
Change-Id: If310b0ad9f914b438ae3c1968ca8f1ee26d57589
CRs-Fixed: 3637263
Disable puncture in US LPI mode per FCC request.
If bad FCC AP is detected, send WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY with
reduced bw after setkey is done.
Also add the same bad FCC AP detection logic in HDD where bw increase req
from SS framework is handled.
When handle beacon update, also FCC AP detection logic to avoid wrong
channel switch.
If the AP removes or reduces puncturing pattern in new beacon, send
WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY with increased bw.
For roaming case, after roaming, host will receive new beacon with new
bpcc, same as beacon update, use the same bad FCC AP detection logic and
send WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY with updted bw right away or after
setkey is done (in case of hybrid roaming like OWE).
Change-Id: I6e85de879575d5c0a1960527f9018b4b33bf18d6
CRs-Fixed: 3631634
For targets that support multiple chipsets, symbols are getting
exported for all supported chipsets, causing wlan driver to
occasionally not load upon bootup. In order to not have symbols
exported for multiple chipsets, add new config flag
CONFIG_MULTI_CHIP_SUPPORT to disable exporting symbols for targets
that support multiple chipsets.
Change-Id: Ib022d05870353973b3e46dea96ce1c9f40d0ce91
CRs-Fixed: 3644898
Currently, host does not include the CSA/ECSA offset
in the beacon update triggered by the TBTT offset event.
Therefore, ongoing CSA is terminated after this beacon
template update to the firmware.
To fix, include the CSA/ECSA offset in the beacon template
configured due to TBTT offset update.
Change-Id: I352d348a35006f65058ff627ca12714fdded4cec
CRs-Fixed: 3637561
If WLAN_SUPPORT_TWT or WLAN_TWT_CONV_SUPPORTED not defined, FEATURE_SET
is defined, function wlan_twt_get_feature_info() will be called by
wma_set_feature_set_info(). However wlan_twt_get_feature_info() is not
declaration.
Change-Id: I31b1e5c6520adf4dc495356d45fc89f481c9962e
CRs-Fixed: 3637229
Currently while parsing tpe use_local_tpe is updated
based on local or reg tpe count which is not used.
both tpe present can be updated without use_local_tpe.
So remove use_local_tpe.
Change-Id: If20d23cc8a7d35a0a38c60c866c787f5a325826e
CRs-Fixed: 3634751
After roaming from legacy/1 link ML AP to 3 Link AP, then the
ML pe_session->lim_join_req->partner_info is not updated for
the link vdev.
This causes disconnection after roaming from legacy/1 Link AP to
3 Link AP followed by link switch due to link switch connect
failure.
lim_join_request is used to check partner info in some API.
Use session->partner_info instead of lim_join_request as the
lim_join_request is not valid & could be NULL also after roaming.
Change-Id: I1cb0e386cf715c43bcb8b8e05785c5c7d18f53dd
CRs-Fixed: 3627683
In api lim_process_probe_rsp_frame(), the STA INFO event
is logged after receiving the probe request. However, the
STA info event is not logged for MBSSID case as unicast
probe request is not sent by the STA.
Modify api lim_process_mlm_join_cnf() to send STA info
event to be logged after successful join confirmation
from MLM irrespective whether unicast probe request is
sent or not.
Change-Id: I2c48c0d1ad89dc1a3cbda51a6e1a5f3cd59196ee
CRs-Fixed: 3635957
Fix to revert the change Ice2d3557e00426ead044ec6b4b507746db4148d4
In API, sch_set_fixed_beacon_fields check both vht capability
and operation mode should present.
Change-Id: I4ff8cf6d66de8ee6ffe81844d31870eb26640551
CRs-Fixed: 3640557
Currently, connection info present in sta_ctx gets invalidated by
resetting the bssid and clearing corresponding link id bitmap.
But this is done even for non-ML case, which clears sta_ctx bssid
info of the roamed AP.
Don't reset connection info for non-MLO roaming.
Change-Id: Id37d7b972bd431443ba9d9c11d2891b15bd5500a
CRs-Fixed: 3643959
Customer framework may set active num 2 to driver for ML STA.
If the two enabled links are MCC, don't not force active 2
links.
If current enabled links are < 2 and there are concurrent
connections present, force active 2 links, which may be
conflict with concurrent rules, reject it.
Change-Id: Ifd37b7a3fb66e77954b26dad13f3f4244d114dea
CRs-Fixed: 3644404
Currently, if standalone SAP is operating in 6 GHz
and SET_FCC_CHANNEL 0/2 command is issued, as a result
complete 6 GHz band gets disabled and host triggers
SAP CSA to a new 2.4 GHz frequency.
In this path CSA is getting triggered for the second
time and as SAP is operating in a 2.4 GHz frequency
host does CSA to a new 5 GHz channel.
To address the issues,
1) Add logic to do SAP CSA to best valid channel if current
channel is disabled.
2) Invoke wlan_reg_recompute_current_chan_list from
policy_mgr_update_connection_info only for STA
and P2P client.
Change-Id: I3dd2b4075d8cd9e73735317ac3a5f7fb08635548
CRs-Fixed: 3603739
Add support to configure the new set wifi configuration
subcommand to enable/disable EMLSR capability.
CRs-Fixed: 3637234
Change-Id: I73445c44a561742a81ec0f22c49d7067b420b884
The MBSSID info needs to updated to the firmware during
every VDEV UP. In current implementation, the MBSSID info
is not updated after roaming. Therefore, upon vdev restart
happens, host will sends stale entries to the firmware in
the VDEV UP command.
To fix this, update the mbssid info during roaming and link
switch in the vdev and use this for the VDEV UP updates.
Change-Id: I65d9cd2ce830a4fbbfde5f20d22c4b0df97055ec
CRs-Fixed: 3640372
As per spec if Wide Bandwidth Channel Switch (id 163) and Bandwidth
Indication (id 164) sub element present in channel load request,
Host should send same sub element ids with same values as in request
in channel load response.
Change-Id: If419c1e2ac694ee5d2da301e404085bb3fc68674
CRs-Fixed: 3629125
AP can send channel width and related information via below OPIE:
1. Wide Bandwidth Channel Switch (Subelement ID 163)
2. Bandwidth Indication (Subelement ID 164)
Trigger wide band scan as per values present for above IEs present
in channel load request.
Change-Id: I013389972f0f72395488a2405e4b0dcbff39dd42
CRs-Fixed: 3629109
Currently stats ext command is sent to FW without validating the
vdev ID and this resulted into crash.
To fix this issue, add the vdev ID check in the stats ext command.
CRs-Fixed: 3617296
Change-Id: I611cd271f229c247f9e6658528f5c0497b7c3d5f
User disables all the channels when the SAP is in
operation, and policy manager restart sap functionality
cannot get any valid channels and SAP also doesn't stop.
Later, kernel stops the SAP, since it is operating on an
invalid channel.
To fix this, restart the SAP on a valid channel only if
atleast one valid channel is available. Otherwise, stop
the SAP instead of waiting for kernel to stop the SAP.
CRs-Fixed: 3617706
Change-Id: Ia613b8e9585ff19aae9bf97ea5d0fc230ae41c5f
LL_LT_SAP supports MCC with sta interface and does not
support SCC with any interface. Add a logic to force
MCC if any STA comes up in SCC with the LL_LT_SAP interface.
This change adds below logic to force MCC on LL_LT_SAP:
1. If STA is present and LL_LT_SAP comes up, select MCC
channel in ACS and make sure to bring LL_LT_SAP on MCC channel.
2. If LL_LT_SAP starts without ACS in SCC channel, then
overwrite this SCC channel with MCC channel.
3. If LL_LT_SAP is present and STA comes up in SCC with
LL_LT_SAP, move LL_LT_SAP to an MCC channel or on different
MAC channel.
4. If LL_LT_SAP and STA are present in MCC and STA receives
CSA on LL_LT_SAP frequency resulting in SCC then move
LL_LT_SAP to MCC frequency.
5. If LL_LT_SAP and STA are present in MCC and STA roams
to LL_LT_SAP frequency resulting in SCC then move
LL_LT_SAP to MCC frequency.
Preference to lower 5 GHz will be given followed by
standalone MAC frequency then MCC frequency.
Change-Id: I7f4380ed7d726112bbc2aa94a50ffbb5d8b6036d
CRs-Fixed: 3640669
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
In __wlan_hdd_cfg80211_set_wifi_test_config (), the arguments
to hdd_update_channel_width() is interchanged via the
commit Id2a872152e308e94389cd1068013d7661b37659b. Link id
is passed instead of bonding mode and vice versa. This
causes channel width to be 20 MHz in VDEV start command
causing downgrade in connection bandwidth even though the
device is capable of higher bandwidth connection.
Fix the order of the arguments passed to
hdd_update_channel_width ().
Change-Id: I30a0c8e136882ec1686a82e7da128d610dee7009
CRs-Fixed: 3638675
For big data stats command, if STA connected in HE mode, EHT stats
are returning failure to the user space.
To solve this add check if EHT mode is connected, then only add the
EHT stats and send to user space.
Change-Id: Icb2bf9ef076797c85bf45cc384f6beb7b7790ef9
CRs-Fixed: 3642332