Currently, ucfg_scan_register_pno_cb and ucfg_scan_get_scan_id
do not do null validation for scan object which can lead to null
pointer dereference. wlan_psoc_get_scan_obj_fl returns null in case
of invalid component id or null psoc and that null scan object is
dereferenced due to missing null validation.
Add null pointer check for scan object in ucfg_scan_register_pno_cb
and ucfg_scan_get_scan_id. Return zero scan id from ucfg_scan_get_scan_id
in case of null scan object.
Change-Id: I1aa1bdee001cace34e22ca11014455a0c7bcc462
CRs-Fixed: 2468518
Currently when parsing interop VHT vendor IE, it will have OOB
read when only VHT cap IE is present.
Try to read VHT op IE only when it is present.
Change-Id: Id1919a0ed1df56ecef54d6cb663c10cbcae5065f
CRs-Fixed: 2453071
Currently with the support of Blacklist manager
component, all the blacklist, avoid list, RSSI-REJECT
list is maintained by the BLM, hence the filter logic
of the blacklist APs in the scan component is not
required.
Cleanup the blacklist BSSID APIs, and related functionality
Change-Id: Ic2f282d9ab7d6d30d87d9718a128cbd8446aff4c
CRs-Fixed: 2464191
Currently dwell time is determined by scan policy flags from kernel.
Sometimes when we suspect the scan result is not full enough, we need
to set dwell time by force through ini.
Add ini to decide whether to honour NL80211 scan policy flags, so that
we can disable dwell time changed by scan policy flag from kernel.
Change-Id: Ia0b9f957a7de901513479522e008e4bcbd6b2c0e
CRs-Fixed: 2428630
Adaptive 11r is a feature by which the network supports 11r
even though the bss doesn't advertise 11r. This is done with the
help of advertising vendor specific adaptive 11r IE and MD IE
in the beacon/probe. When vendor specific adaptive 11r
IE (oui 0x00 40 96 type 0x2C) is present in the beacon/probe,
and 1st bit of the IE data is set to 1, then the BSS supports
adaptive 11r.
The BSS advertises, non-11r akm in RSN IE and user space will
send the 11r akm in the connect start. So the scan module
shouldn't filter out the candidate adaptive 11r supported BSS
with AKM mismatch reason.
Add changes in scan module to parse the Vendor specific adaptive
11r IE and copy it to the scan_entry ie_list. Check if
negotiated akm is non-11r akm, and the filter akm sent from csr
is a 11r akm (which is received from user space), then mark the
bss as matching.
Change-Id: I65f32c67016ad634f1592a7453e77aaf0c5a327c
CRs-Fixed: 2431074
Currently in the case of concurrent sessions running,
the driver updates the active dwell time for the scan
request to the default value, overwriting the already
filled active dwell time which the DUT got from the
AP as part of RRM request, which results in violation
of protocol.
Fix is to not update the concurrency params if the scan
request is of type RRM.
Change-Id: Ifbb4b45fc111851f544fd39187e4113bda5f7348
CRs-Fixed: 2436893
Qdf alloc api print the log in case of alloc failure and thus
the caller doesn't need to print the error again.
Remove the repetitive logs from wlan_scan_process_bcn_probe_rx_sync
and tgt_scan_bcn_probe_rx_callback. And fix check patch errors.
Change-Id: Ia340b71b5b476339d2ffe68b287b894ff6b532e8
CRs-Fixed: 2435932
Add an API to add scan entry without posting it to scheduler thread.
This will be used to update the beacon/probe during roaming to new AP.
Change-Id: Ia53ba194032eb953c5b102b0cc406db12e58f42d
CRs-Fixed: 2435404
Its pretty common to simulate malformed beacon/brobe response
frames leading to print "Failed to create a scan entry".
Change-Id: Id89c4e66f0ac449b02e774067932e65d1da9ddc8
CRs-Fixed: 2431173
Currently, the vdev connection status is checked by getting
the bss peer of that vdev, and if the bss peer is in associated
state then vdev connected status is sent as true. It can happen
vdev is present and bss peer is deleted after getting the bss peer
from vdev pointer. Then bss peer can not be dereferenced to get the
its status.
Instead remove all the duplicate api's tdls_is_vdev_connected,
pmo_core_is_vdev_connected, and wlan_vdev_is_connected with
wlan_vdev_is_up. wlan_vdev_is_up gives success status
if associated.
Change-Id: I863c3c0689f329870bd08c813813c16956135209
CRs-Fixed: 2426092
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within umac scan replace any such comparisons with
logical operations performed on the pointer itself.
Change-Id: I0127e39fb4278e9c8063e2b37e7b46a9311defe7
CRs-Fixed: 2420153
If AP change its status from hidden to broadcasting SSID in its beacon
kernel drop the beacon entry as its confusing. Now during connection
driver try to update the entry in kernel and it fails and as kernel drop
the beacon the connection fails.
To fix this detect if AP changed its ssid type from hidden to
broadcasting and unlink the old bss from kernel in that case.
Change-Id: I10ec42749ebcd2ddea23f7f3a94d862124df156d
CRs-Fixed: 2410430
Add support for the INI gSkipDfsChannelInP2pSearch
to remove the DFS channels from the given scan list in
p2p scan.
Change-Id: I44a6208ab5f3ee062073550143e23e5800342376
CRs-Fixed: 2405191
qdf_wait_single_event expects milliseconds to passed but instead
jiffies were passed making actual wait time smaller than expected.
Change-Id: I920d7183e30dd4490b64c6ae9875811db57183f3
CRs-Fixed: 2401129
Add ini parameters to control the scan burst duration in STA, SAP
and GO cases.
Change-Id: Ib9f0cdae660b6d425887fefebf9e64f9ac977593
CRs-Fixed: 2398746
Refactor the below ini item to new converged cfg/ini
infrastructure:
CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME
CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME - move this to scm module
Change-Id: I2980b2f3f1f451c99ceb19df87fd254a0c919c9b
CRs-Fixed: 2394241
Move all the PNO related structures and CFG items under
compile time flag "FEATURE_WLAN_SCAN_PNO"
Change-Id: I0decb3e0a7cf009ce18ef08eae05734962f6f8c7
CRs-Fixed: 2382997
Refactor the following scan related ini items to scan module:
CFG_ENABLE_MAC_ADDR_SPOOFING - ini to enable/disable scan mac
randomization
CFG_SCAN_AGING_TIME - configure scan entries aging time.
Previously these values are populated in hdd and passed to
scan module through ucfg_scan_update_user_config() function.
With new cfg infra, the scan module can directly get these
values from cfg component.
Change-Id: I0dcbd8253ae46387dd44e68c86f0622f279ba501
CRs-Fixed: 2378985
Failed to generate Non-Tx BSS scan entry due
to corrupted non-tx beacon IE.
Fix the sequence of fields need to be copied to generate
the new non-tx scan entry.
Change-Id: I6ed8773fb0efe6193c954f4963c364b9d8bf1960
CRs-Fixed: 2386423
Driver uses dwell_time_active_2g by default for scan. In case if
ACS enabled on driver, The dwell_time_active_2g (80 msec) result
in ACS latency and thus latency in SAP start.
To optimize SAP turn-on time latency, use dwell_time_active_def
as dwell time for 2g channels instead of well_time_active_2g
during ACS scan.
Change-Id: Ib673284c99e5539abe0268319e04cc63d0cbb98f
CRs-Fixed: 2383308
Do not call regdb core functions from other components directly.
Instead, call regdb dispatcher functions.
Also, wlan_objmgr_vdev_obj.h file is removed from reg_services.h file in
Ie43acc03a5c35200f3e43bc978b792d5047eeb77 and reg_services.h is removed
from wlan_reg_services_api.h in I891b14fac7a4eddf2697d2ecdc0ac4a82046f532.
Therefore to fix "'struct wlan_channel' declared inside parameter list"
error in wlan_dfs_utils_api.h file, I have included wlan_objmgr_vdev_obj.h
file before wlan_dfs_utils_api.h in scan, dfs and wmi component.
Change-Id: Id8816f5137c3b1f9200c59fc3f9041980631f22f
CRs-Fixed: 2349173
Acquire wakelock to handle the case where APP's send
scan to connect. If suspend is received during scan, scan will be
aborted and APP will not get scan result and will not connect.
eg if PNO is implemented in framework.
Fix is to avoid the system suspend by taking the wake-lock
during scan. Added INI wake_lock_in_user_scan to control this.
The INI is disabled by default.
Change-Id: I62fdbbcbc6f049cb4e36e774d5a417600a2dfa86
CRs-Fixed: 2381622
Currently the driver includes all the DFS channels as part of scan
in the scan list, and thus not exclude the DFS channels in the first
scan for faster scan.
Fix is to check the ini, for first DFS channel scan, and then remove
the DFS channels from the scan list if the ini is enabled.
Change-Id: I43d5c87676d4e66706da3cc0029c60559b70d179
CRs-Fixed: 2378805
Initialize drop_bcn_on_chan_mismatch from INI
(CFG_DROP_BCN_ON_CHANNEL_MISMATCH) default value
Change-Id: I55c28aa5656ce6befe9cd3477ab0b14c99641cea
CRs-Fixed: 2375199
Currently, beacon or probe responses are dropped by the scan module
if the rates IE does not present. But, some AP's in 11n mode does not
add the rates IE.
So, it is not mandatory to have the rates IE in the beacon or probe
response.
Change-Id: Id57b2216c012d117cca1a3a2dbce9825d58b67c3
CRs-Fixed: 2376710
Add host support for db2dbm RSSI changes. Firmware
indicates this capability when underlying hardware
has RSSI reporting feature. Based on this capability
host will know if firmware sends SNR or RSSI. If no
capablity is present then host will convert SNR to
rssi using a fixed offset of -96. If capability is
present host will directly use the rssi as it is.
Change-Id: I9058f16c6280d466feb96cf88a8a0d8cd7b02032
CRs-Fixed: 2364025
Ownership of hostscan_adaptive_dwell_mode_no_conn is changed from HDD to
scan module. So scan module doesn't have to rely on HDD to obtain the
INI setting.
CRs-Fixed: 2357888
Change-Id: If3c3d93f0e1763e778eb6e3e70e23231fb01a67e
Adds support to enable/disable scan for psoc/vdev with reason,
so that multiple clients can enable/disable the scan at same time.
Scan will remain disabled till all clients enable it back.
Change-Id: I8d840b24210095accb56ac9a2697ec26e8a5eb17
CRs-Fixed: 2362093
Currently if the number of APs in the STA environment
are many, then the STA will receive many beacons, whose
beacon process path can take long time, in the kernel
work queue, hence the other processes have to wait
for them to complete, and may get timeout, if the
the time to process the beaocns is larger than their
process timeout.
Fix is to :-
1. Add rate limit to failure conditions of memory
not allocated
2. Make memory allocation in path of beacon process
atomic.
Change-Id: I0b15fd4924bb7d696a33adeb1875f1f9c277db18
CRs-Fixed: 2360624
AP is configured to operate in Channel 100(HT80), and Zero Wait DFS
is enabled. Once PreCAC is complete on DFS Channels,inject radar in
Channel 100 and AP moves to another DFS channel 116 and beacons
immediately but station associated to AP still does a scan again.
When the station receives the Channel Switch Announcement from AP, it
dissociates from the AP and scans again.
Maximum Switch time Information Element can be used by the Station to
to know if the AP has done PreCAC on target channel. Maximum Switch Time
IE is part of AP's beacon and is the sum of CAC timeout on the target
channel and 1 beacon interval.
If PreCAC is done on target channel, the CAC timeout is zero and Maximum
Switch time IE is equal to 1 beacon interval. This element is sent to
Station along with Channel Switch Announcement. The Station receives the
maximum channel switch time element. If the value of maximum channel switch
time element is less then or equal to beacon interval, the station
associates with the AP seamlessly without dissociation. If the value of
the Maximum Channel Switch Time IE is greater than 1 beacon interval, then,
the Station has to dissociate from the AP since, ZeroCAC has not been done
by the AP.
Change-Id: I0301a68c1731cc268b9a6900258261034476446b
CRs-Fixed: 2330817
Create ucfg apis in scan components for calling from hdd.
Move the scan apis to new file, wlan_scan_api.c
Change-Id: Iec08eddbba3066a4d781c988624d47749a75610a
CRs-Fixed: 2342892
Probe responses received from hidden AP after beacons
with non-zero ssid length will use a new entry in scan
db resulting in multiple scan entries for same AP.
Fix is to remove ssid check in util_is_scan_entry_match
api.
Change-Id: I1c094d483a40d40f7ca9d40b26d04a7f80099dd1
CRs-Fixed: 2353339
The driver has a default scan policy type of DBS scan
which is not overwritten in case of DBS disabled.
Fix is to have a default of NON-DBS scan, and overwrite the
scan policy if the low power, low span scan is triggered,
or if the DBS is disabled from ini.
Change-Id: I8c95b2ca5915e1a74ccdeae55dea5e65bcfe9664
CRs-Fixed: 2354103
After driver suspend some thread can still queue scan req
which will cause scan during suspend and WOW_ENABLE received
while SCAN in progress.
TO avoid this block all new scan during suspend.
Change-Id: I02ddc9b5e6ba5f1782d00e34f044ace34c54d0b0
CRs-Fixed: 2343385
scan_config command for 2G pdev was not listing 2GHz frequencies.
Fix frequency range check condition in is_chan_enabled_for_scan() to
include 2G frequency in the scan channel list.
Change-Id: I9883583505ab318328999c5cf2dd33e687a784b2
CRs-Fixed: 2350530
If Vdev id is not present driver tries to get vdev with vdev id 0
from pdev. Vdev with vdev_id 0 might not be present on pdev so use
objmgr API wlan_objmgr_pdev_get_first_vdev to get the first vdev.
Change-Id: I2ae0d6056709339a8167582ec327269aa84c93f4
CRs-Fixed: 2349699
Regulatory channel list is allocated memory while initializing,
but isn't being freed. This change will free the list and fix
the possible resource leak.
Change-Id: I4603271697603cdacbfe4cbf327faad8ce582715
CRs-Fixed: 2348117
Scan on STA interface is taking around 10 secs to
complete. There is a 7secs expiry time used in nl
which could result in scan results received for
the first 3secs, which are from 2G channels, to
be flushed.
Fix is to not set offchannel simultaneous feature
capability, decrease the active dwell time for 2G
channels to 40msecs and increase burst duration
to 240msecs when GO is active.
Change-Id: If014b2115048018432943d863bbe184beb498408
CRs-Fixed: 2340516