Currently the driver sends a unicast probe request
to the BSSID which is blacklisted, which in turns
violate the SPEC, as the BSSID maybe rejected as
part of OCE assoc reject.
Fix is to check if the BSSID is blacklisted, don't
go for unicast probes.
Change-Id: I14f283d7425d40706cef29db38b48333ee9a7fff
CRs-Fixed: 2500273
Do more frequency list population in a number of functions
to make sure the resulting tCsrChannelInfo structures
have the right channel frequency info.
Meanwhile, enlarge the buffer allocated for freq_list in
csr_roam_copy_profile to make sure all channel frequencies
can be replicated.
Change-Id: Ia8b90581211d657851e1d8fc2556dcb633c8001a
CRs-Fixed: 2500236
As part of 6GHz regulatory update, channel numbers are
getting updated to corresponding frequencies, in this
update add frequency element in struct sSirMacChanInfo.
Change-Id: I1a18111a2b073164677b32fb6febc947df043bf2
CRs-Fixed: 2500361
Remove channelId from struct bss_description, and remove the
code where value assignment to channelId take place.
Change-Id: If37aca5f3e2211a73d546444aad2e5f9a4bada0a
CRs-Fixed: 2497438
Remove operationChannel from structure tagCsrRoamConnectedProfile,
remove the code where value assigning to operationChannel take place.
Change-Id: If6c034e39c63fd78e6f08ff3daa85e0432438cff
CRs-Fixed: 2499775
Issue is : In case of STA + STA, Host sends BTM config enable on
both STA. This results assert in FW as at a time FW supports BTM
only on one vdev.
Following are the fix:
1. Send 11k offload and BTM config enable to fw irrespective of
roam reason. Enable of both while RSO start and disable of both
while RSO stop should be symmetric.
2. Currently, Host sends RSO_UPDATE_CONFIG for blacklisting case
if the vdev is in connected state irrespective of RSO start is
sent or not. Added check to make sure RSO_UPDATE_CONFIG should
not go if driver_disabled_roaming flag set.
Change-Id: Ib92089906a2e1690ec6181ac184bc008ccfbc928
CRs-Fixed: 2497813
1) freq_list value population:
Allocate memory for freq_list within tagCsrChannelInfo
whenever ChannelList is allocated for the same struct.
Populate channel frequencies into freq_list whenever
ChannelList is populated for the same struct.
Free the memory used by freq_list whenever ChannelList's
memory is to be freed for the same struct.
2) Special treatment for sme_rrm_send_scan_result:
To ease the freq_list population within function
sme_rrm_send_scan_result, a parameter(freq_list) has
been added into the parameter list of it.
Meanwhile, all callers of the same function have been
modified to pass freq_list to it.
3) Fix a number of camel cases detected by checkpatch.
Change-Id: I732b084d3e1edfc4f26e7ed44be1c6e826be8602
CRs-Fixed: 2496716
Remove some unused fields in struct bss_description.
Also remove the unnecessary padding fields within
the same struct, as compiler will do automatic
padding for us.
Change-Id: Id754391e20e4dce6261a8df54b12ccdcf31ba5c9
CRs-Fixed: 2497872
The change 2812433 needs revert it got merged with still some
pending comments.
Change-Id: I4555d60bf0c8cea1b3a812063ee24956b07c0d8b
CRs-Fixed: 2499426
For the latest chipsets because of architecture change the
lim session for monitor mode is not required but for the
older chipsets using the mainline the lim session has to be created.
If the session is not created the channel setting to capture
the packets on the monitor interface fails.
Create the monitor session in lim for older targets.
Change-Id: Ide44201e91c2d92cddff66f563898015f9e28ca7
CRs-Fixed: 2498775
Replace operationChannel with op_freq for tagCsrRoamConnectedProfile
in files:
csr_api_roam.c
csr_api_scan.c
csr_neighbor_roam.c
Change-Id: Ibb8df79ed7ed4c837e569a7e320a705bbcf522e4
CRs-Fixed: 2497121
Add freq_list in tagCsrChannelInfo to replace ChannelList
Add APIs to translate between channel list and freq list
Change-Id: I2f086d9371e2ec928bbb47aa2be91d65a206f4d6
CRs-Fixed: 2492624
When STA receives DEAUTH ind event from target, vdev_id will be
mis-used as PE session ID when invoking lim_tear_down_link_with_ap.
Also enhanced related log for more useful info.
Change-Id: I755e0e170c36205ef20a21955546cc36437c1be4
CRs-Fixed: 2491669
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in wlan_hdd_assoc.c wlan_hdd_cfg80211.c wlan_hdd_main.c
lim_assoc_utils.c lim_ft.c lim_process_sme_req_messages.c
lim_sme_req_utils.c rrm_api.c sme_api.c nan_datapath_api.c sme_rrm.c,
use channel frequency instead.
Change-Id: I980f74d77af97df2b2ade61250d44a606c76a7ef
CRs-Fixed: 2491488
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in csr_api_roam.c, use channel frequency instead.
Change-Id: If584dcbd5a6c1718af1902799e1f679898ef3585
CRs-Fixed: 2491396
Add op_freq in tagCsrRoamConnectedProfile. Finally remove
operationChannel from tagCsrRoamConnectedProfile in next
few changes.
Change-Id: Ie9be4b59483412866d915448b33f8cb6cc9e2d7c
CRs-Fixed: 2489893
Currently btm offload command is sent to FW as part of RSO Start
for all type of roam req reason and btm offload disable command is
sent to the FW as part of RSO STOP. In case of STA+STA concurrency
case, while btm offload is enabled for the 2nd
STA after UPDATE_CFG sent for STA1, the FW asserts because it has btm
offload enabled for STA 1 while UPDATE_CFG and has not deconfigured
it yet. Send btm offload enable command as part of RSO Start in case
of roam_req->reason == REASON_CTX_INIT only to the FW so that it
configures btm for the currently enabled STA only in case of INIT
and re-configures for the second STA without assertion.
Change-Id: Ib146072c7cd0543ea82122702d6585d1d2a2e2d1
CRs-Fixed: 2493122
Add op_freq in csr_roam_profile. Finally remove
operationChannel from csr_roam_profile in next
few changes.
Change-Id: I7a3d7fe7e77b18424f487429aaa19ca1a97b8aba
CRs-Fixed: 2489914
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in lim_api.c csr_api_scan.c csr_host_scan_roam.c
csr_roam_preauth.c csr_util.c, use channel frequency instead.
Change-Id: I86864c73c429c52399819532cd9b957f66ed94f0
CRs-Fixed: 2491406
Replace channel ID(rx_channel) with channel frequency(
rx_freq) in struct bss_description.
Remove a few camel cases in function
lim_collect_bss_description.
Change-Id: Ic6051fa62d2fe0aa10a6d2a3568aeff75daa813f
CRs-Fixed: 2492155
2G active dwell time parameter is not updated as per
requested duration value from 11k supported AP.
Updated 2G active dwell time scan request parameter
with the beacon measurement requested duration.
Change-Id: I93ab71aea3317e21dab4eccce8c698a6fe3a366d
CRs-Fixed: 2487725
Replace channel ID(channelId) with channel frequency(
chan_freq) in struct bss_description.
Add code for chan_freq's value population in the same
struct wherever channelId's value population occures.
Remove a few camel cases detected by checkpatch.
Change-Id: I84d193b67f642df310997865ec6e1b62e3518f98
CRs-Fixed: 2488826
This command is used to send OEM data binary blobs
from application/service to firmware.
Change-Id: I0b5d7dd5a030b70e59c8581fb51d99079b38385f
CRs-Fixed: 2477332
In DBS, LFR 2.0 takes more time to complete the roaming sequence
due to DBS config changes through policy manager. If roaming is
in progress and cfg80211 issues disconnect, disconnect handler is
supposed to wait for 4 sec before processing. In some DBS scenarios,
4 sec wait timer can expire and disconnect proceed for clean up
before the roaming sequence can complete, results in race condition.
Thus adding CSR state check before proceeding with LFR issue connect.
Change-Id: I794c6bf3f749bba9c339fd18b5202d50091b73a7
CRs-Fixed: 2481706
When the set key timeout occurs and there is a disconnect
triggered from userspace during the set key timeout, then the
disconnect proceeds to free the roam_profile for the csr
session. And when the set key timeout handler
csr_roam_wait_for_key_time_out_handler() is invoked, it tries
to access the roam profile from csr_roam_link_up()->
csr_neighbor_roam_info_ctx_init(). This results in a race between the
supplicant thread and scheduler thread.
Acquire sme global lock before call to csr_roam_link_up() to avoid
this deadlock.
Change-Id: I1dd0bec7afa191648d064a1935a33d9612bb89bc
CRs-Fixed: 2486186
The SAP channel change can be called in scheduler thread and thus
waiting for hw mode change in scheduler thread will always lead to
timeout and thus channel switch failure.
Fix is to avoid wait and continue channel switch after hw mode
change is completed.
Change-Id: I951fab6c95ff2a84d6a619859295b830685fac4e
CRs-Fixed: 2484147
In SAP mode when driver receives deauth and disassoc commands
for any sta, this command is getting queued in to sme command
queue in pending list with low priority, it means these
commands will be inserted at the tail of the queue. These
commands have timeout of 30 seconds. If any command is in active
list with high priority and higher timeout that command will not
let the deauth and disassoc commands to process and these commands
will get timeout. This will result in failure of disassoc and
deauth commands.
For example if driver operates in STA+SAP mode and sta issues
a connect request to some AP, in connect path driver tries to
move to single mac mode(SMM) and issues the command for the same.
SMM command is pushed in sme queue and now if SAP issues a
disconnect command for some connected station this command is
pushed after the SMM command. Since connection for STA is still
going on so SMM command does not process as it is waiting for
key. And wait-for-key timeout is around 120 seconds, SMM command
can not execute until wait-for-key timeout occures which results
timeout of the SAP issued disconnect command which is behind the
SMM command in the sme_command queue.
To resolve above issue change the priority of the disassoc and
deauth commands to high priority which will allow to push these
commands to the front of the sme_command queue and since these
comands does not wait for wait-for-key timeout, theses commands
will get a chance to execute.
Change-Id: I613bbd11b9172902dd8828fa04c778b4cfe6be14
CRs-Fixed: 2484608
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure and for this
target_if_mc_cp_stats_stats_event_handler is getting used.
Remove legacy implementation of stats event handler
wma_stats_event_handler and related APIs.
With this change remove unused structures also.
Change-Id: I9a892b5f7486a406654256fc2cc8177f2fafe790
CRs-Fixed: 2481937
AP may send IEs in deauth/disassoc frames as part of disconnection.
Extract the same and forward to kernel through
cfg80211_disconnected().
Change-Id: I4ef339dcd1ecff64d6bed1de35621ecce5d8030a
CRs-Fixed: 2481912
Application sends disconnect IEs to driver through vendor command
SET_WIFI_CONFIGURATION by embeding in the attribute
QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES. Extract the same and validate
to make sure it's not more than maximum IE length that can be
accomodated in deauth/disassoc frame. Cache the extracted IEs
in mlme vdev object.
Change-Id: I6c95aa1d4d8ef7d8ed3ad5be8832ef1f45c26a2f
CRs-Fixed: 2481908
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for get station stats api
as part of cleanup.
Change-Id: Iadc7fceccec32e7a27c29872fb13c03f79208965
CRs-Fixed: 2480770
Currently the driver sends the update cfg RSO command to the
FW, which updates the channel list to which the FW should roam
to find other BSSIDs.
Before the connection is established all the channels are sent
to the FW, but after the connection is established only few
channels are present which reduces the scan time, and reconnection
time to the new BSSID.
But when the FW gets the new channel list as part of RSO after
th connection, it appends the new channels with the previous
list that it received, and hence scans all the channels when
roaming happens, which in turn consumes power, and reduces battery
life with no extra advantage.
Fix is to reject the update cfg command in the disconnected state
as whatever updates are done are cached in the driver, and are
always sent to the FW after the connection is established.
There is no point to send the updated cfg params everytime,
if the driver already sends the command just after the connection.
Change-Id: I19caf194edc1dc038abdfb5b03e69afba48ffc89
CRs-Fixed: 2469350
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for congestion stats command
as part of cleanup.
Change-Id: Ia8b919ad7cea4f47d5480b9f8e0f4636783ce6c3
CRs-Fixed: 2480246
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for get rssi command as part
of cleanup.
Change-Id: I7a837d780c6a1551db0929e6ec7e73daaf479429
CRs-Fixed: 2480770
Update the scan channel list with HE capability information when
the channel list is sent to FW so that FW includes the HE capabilities
IE in the probe request frame during scan.
Change-Id: I1ad3b15e447845ac06d30e92195b5e4ab8a78d9d
CRs-Fixed: 2467024
If memory pNewBssDescriptor is allocated successfully, it should not
return, otherwise there is memory leak.
Return if memory pNewBssDescriptor allocation fails.
Change-Id: Ibe906abe890630efa1ea5dafaef40afc2822158e
CRs-Fixed: 2476403
Fix out of bound issue in get pcl API where the
num of channels in the valid channel list can be
greater than the pcl list size, and can lead to
out of bound access.
Change-Id: Id3d34ff66c712bf310ae2689c43ce873f5c87fca
CRs-Fixed: 2475705
wpa_supplicant sends connect request with open auth and pmkid
when PMK caching is enabled and if it has PMK/PMKID cached.
Set rsn_auth_type to SAE when connect request has AKM as SAE
auth_type as open.
Set negotiated auth type to OPEN in SAE with pmk cache case as
open authentication going to happen. Similar fix is applicable
for FT-SAE. Handle the same.
Change-Id: I9ccc419bd439702041840b0194bb0622d7856255
CRs-Fixed: 2467813
Processing beacon request may fail due to
some reason.
In Ie07dbb1f45803cf93b45df2173f0ad064a194cb3,
sta fails to send empty beacon report to
AP and frees current rrm beacon request structure
because it doesn't find matched session by bssid
in rrm_process_beacon_report_xmit.
Copy bssid of beacon request to rrm session then
sta can send empty beacon.
Change-Id: I962d058d5e3f8f85194f4197c5ff8c061d56f60c
CRs-Fixed: 2472377