Commit Graph

130 Commitit

Tekijä SHA1 Viesti Päivämäärä
Bala Venkatesh
7f726aa21a qcacmn: Add ini parameters to control the burst duration
Add ini parameters to control the scan burst duration in STA, SAP
and GO cases.

Change-Id: Ib9f0cdae660b6d425887fefebf9e64f9ac977593
CRs-Fixed: 2398746
2019-02-15 14:46:46 -08:00
Pragaspathi Thilagaraj
1e618d6444 qcacmn: Refactor legacy ini items
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
2019-02-11 07:38:31 -08:00
Abhishek Singh
4122f5dd4c qcacmn: Add debug info if scan filter fails to match the BSS
In driver there is no debug info printed  in case a scan filter
fails to match the BSS even when SSID and BSSID match for the BSS.

Thus add debug info for the cases where the BSS is rejected due
to blacklist, security profile mismatch etc.

Change-Id: I8218f4fe1a64803dc4641be9b66e58301bd6b15b
CRs-Fixed: 2395356
2019-02-08 10:30:23 -08:00
Pragaspathi Thilagaraj
522a2a90bd qcacmn: Move PNO related structures under compiletime flag
Move all the PNO related structures and CFG items under
compile time flag "FEATURE_WLAN_SCAN_PNO"

Change-Id: I0decb3e0a7cf009ce18ef08eae05734962f6f8c7
CRs-Fixed: 2382997
2019-02-08 04:03:44 -08:00
Abhishek Singh
cd0a9fdcd8 qcacmn: Move scan req modification logic to scan core to ucfg
Move the scan req modification logic to scan core from ucfg layer.

Change-Id: I92d7bc6ed41761fd6cd4a602ab3c5852e8121dd8
CRs-Fixed: 2393496
2019-02-06 11:16:31 -08:00
Pragaspathi Thilagaraj
9d9a3c492c qcacmn: Refactor scan related ini items
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
2019-02-05 18:01:22 -08:00
Pragaspathi Thilagaraj
cc3af93f48 qcacmn: Converge PNO related ini items to scan component
Add basic infra to move the following PNO  to converged scan
component:
CFG_ENABLE_DFS_PNO_CHNL_SCAN 	 CFG_PNO_SCAN_SUPPORT
CFG_PNO_SCAN_TIMER_REPEAT_VALUE	 CFG_PNO_SLOW_SCAN_MULTIPLIER
CFG_PNO_CHANNEL_PREDICTION	 CFG_TOP_K_NUM_OF_CHANNELS
CFG_STATIONARY_THRESHOLD	 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS
CFG_ADAPTIVE_PNOSCAN_DWELL_MODE	 CFG_SCAN_BACKOFF_MULTIPLIER
CFG_MAWC_NLO_ENABLED	         CFG_MAWC_NLO_EXP_BACKOFF_RATIO
CFG_MAWC_NLO_INIT_SCAN_INTERVAL	 CFG_MAWC_NLO_MAX_SCAN_INTERVAL

Change-Id: I81bdbd917969fc8a73e6e5359ca69f78acdf723c
CRs-Fixed: 2357605
2019-01-23 15:14:34 -08:00
Shashikala Prabhu
7517a8d7b9 qcacmn: Call regdb wrapper functions from other components
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
2019-01-23 15:14:32 -08:00
Abhishek Singh
0c1dedb899 qcacmn: Add support to acquire wake lock during user scan
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
2019-01-22 12:40:20 -08:00
Abhishek Singh
b337ebbad3 qcacmn: Add channel info in beacon and probe resp debug prints
beacon and probe resp debug prints doesn't have channel info, so
add them.

Change-Id: I1dbfc4f62924f3eee774517b45f4f7442b18f635
CRs-Fixed: 2381796
2019-01-21 22:10:56 -08:00
Abhishek Singh
e88c0e8ffa qcacmn: Refactor the prints for rx management frames
Refactor the prints for rx management frames. Do not print beacon,
probe resp and probe req frames in txrx module.
Also remove the beacon print from wlan_cfg80211_inform_bss_frame.

Change-Id: I1dbfcec1614b9465d97c010fa4c386f3a1612f5f
CRs-Fixed: 2381796
2019-01-17 10:49:15 -08:00
Nandha Kishore Easwaran
8958351763 qcacmn: Add pdev_id in debug command
Added pdev_id in debug command in beacon/probe receive
path.

Change-Id: I223d7e43112d69951f53995b4759079ac7f0827b
CRs-fixed: 2378135
2019-01-16 10:37:53 -08:00
gaurank kathpalia
575539a9d8 qcacmn: Enable/disable first DFS channel scan through ini
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
2019-01-14 21:47:34 -08:00
Srinivas Dasari
2f6d368c6e qcacmn: Add OSEN AKM support for HS-2.0
OSEN is a new AKM to support HS-2.0.

Change-Id: I43efc34d754c51c9a16584495523629d32c16c5e
CRs-Fixed: 2361375
2018-12-31 21:29:36 -08:00
Paul Zhang
5753f9bbe0 qcacmn: Refactor operatition to hostscan_adaptive_dwell_mode_no_conn INI
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
2018-12-23 00:01:04 -08:00
Abhishek Singh
cdcec49770 qcacmn: Cleanup unused scan configs and params
Cleanup unused scan configs and params from scan module.

Change-Id: Icbc6ccf63071606e97d36c7efee65b5fd6c3f5f4
CRs-Fixed: 2369076
2018-12-19 18:52:22 -08:00
Sandeep Puligilla
5957f0030a qcacmn: Add concurrent cfg items of scan
Add following scan cfg items:
CFG_ACTIVE_MAX_CHANNEL_TIME_CONC
CFG_MIN_REST_TIME
CFG_REST_TIME_CONC
CFG_PASSIVE_MAX_CHANNEL_TIME_CONC

Change-Id: I5b20ea153269f32b503d6c9cd1667d8086148871
CRs-Fixed: 2364994
2018-12-13 13:21:25 -08:00
Abhishek Singh
502095b236 qcacmn: Add support to enable/disable scan with reason code
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
2018-12-10 23:33:45 -08:00
Harprit Chhabada
2de9f012bd qcacmn: Clean scan active and passive dwell time apis
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
2018-12-04 00:06:09 -08:00
Abhinav Kumar
45cff82c5f qcacmn: Block all new scan during suspend mode
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
2018-11-17 03:25:31 -08:00
Yeshwanth Sriram Guntuka
d8ee7699e6 qcacmn: Reduce scan time when in GO+STA MCC
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
2018-11-06 22:40:03 -08:00
Abhishek Singh
1b28621e9d qcacmn: Call scan failure callback in case scan is not serialized
In case scan req is not serialized in some case failure callback
are not called and thus the requestor might not get this callback
and thus might not clean up its states.

Fix this by calling failure callback in case scan is not serialized.

Change-Id: Ife2f22a71fc3fcf60ef96209ec179594ab60c074
CRs-Fixed: 2343144
2018-11-01 22:34:34 -07:00
Om Prakash Tripathi
628dfd3422 qcacmn: Add failure reason to default failure prints
Print failure reason and BSSID when parse failure happens
for better debugbility.

Change-Id: I383611472d3ca03d74cf55326fcc65d5c9417aee
CRs-Fixed: 2334809
2018-10-31 23:04:31 -07:00
Yeshwanth Sriram Guntuka
294ce1121a qcacmn: SSID with zero or space should be NULL ssid
Last frame received in scan before the connect is
beacon with NULL ssid with non zero length and ssid
is sent as NULL to supplicant after association. This
will result in supplicant to trigger disconnect
casuing delay in reconnection.

Fix is to consider ssid with zeros or spaces as null
ssid.

Change-Id: If96776ae85926948d714e975c3e9b4011e8a20b3
CRs-Fixed: 2330485
2018-10-27 00:11:44 -07:00
gaurank kathpalia
6d113e258a qcacmn: Fix BSS scoring params
Currently the driver calculates the nss score
based upon the max capability of the AP, and not the
hw_mde config which would be there after connection
for example, the driver calculates the score for a
2x2 11n AP, and 1x1 VHT (11ac) AP, it connects to the
11n AP in 1x1 mode, if a concurrent connection is
present, which affects throughput

Fix is to check whether the current AP channel results
in DBS or not, if yes then change the NSS to 1 instead of
2

Change-Id: I80e2af00044b760325eb1a51b09a45189d58a417
CRs-Fixed: 2271976
2018-10-05 17:39:46 -07:00
Harprit Chhabada
20ffac7774 qcacmn: Add CFG/INI items to extscan component
Add following extscan CFG items to common ext scan component

1.CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME
2.CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME
3.CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME
4.CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME
5.CFG_EXTSCAN_ALLOWED

Change-Id: Ib4e1acc2d1535f91a8dc084305cdf01f5d7f57f1
CRs-Fixed: 2292754
2018-09-12 17:57:22 -07:00
Ashish Kumar Dhanotiya
0e1895a859 qcacmn: Add mtrace logging for scan request
We are transitioning to new logging infrastructure
by using existing mtrace functionality.
Add new logging for complete scan request and response path.

Change-Id: Iac644a78ef521721d33ce7568be56b47c55fed6b
CRs-Fixed: 2308272
2018-09-12 00:14:17 -07:00
Sandeep Puligilla
b2b84401a8 qcacmn: Modify debug log levels in P2P/TDLS/SCAN
Change debug message log level info/error/warn
to debug.

Change-Id: Ib8c5606b67ee653532489db876482b377c93e73c
CRs-Fixed: 2303185
2018-09-05 16:45:45 -07:00
Vignesh Viswanathan
87a8e44583 qcacmn: Drop beacon/probe frames posted on Scan Queue if queue is full
Drop beacon/probe frames before posting on Scan queue if the queue
already has too many beacon/probes to process.

Also add scheduler API to get the queue size given the module ID.

Change-Id: I9153c7e77e74377863774b68e8163839e992358d
CRs-Fixed: 2298584
2018-08-21 01:51:29 -07:00
Nirav Shah
1b9674e21e qcacmn: umac: Add logging macros without function/line info
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.

Change-Id: I34ba6f6485f9b506264daf4e116052d2858bed40
CRs-Fixed: 2278876
2018-08-14 21:44:21 -07:00
Arif Hussain
4c6f33a07e qcacmn: Add 2G channel active dwell time CFG/INI items
Add ini item to configure active dwell time of 2.4GHz band channels,
This will help to reduce AP search failure probability & hence
connection latency in 2.4GHz band channels especially in noisy
condition by increasing active dwell time.

Change-Id: I05259a8f1fd4a5c67da42e516721a01d32fa652e
CRs-Fixed: 2283692
2018-07-27 01:21:39 -07:00
Yeshwanth Sriram Guntuka
dad6b5beb3 qcacmn: Change log levels in scan component
Change log level for few scm and cfg80211 logs from info
to debug.

Change-Id: I595ddd54c51a601fa2e985c8a221c5dea2e698d8
CRs-Fixed: 2279511
2018-07-21 12:05:49 -07:00
Basamma Yakkanahalli
ab48ce3502 qcacmn: Fix connection issue with hidden ssid in DFS channel
Repeater AP failed to associate to Root AP with
hidden ssid in DFS channel.

Normally probe request is sent in passive channels if beacon
from AP is found. With strict passive scan, probe request is
not sent in passive channels even after beacon is found in that
channel.

If AP is configured in hidden ssid, Client/STA does not get the
Probe Response and thus, no SSID information is present in the
scan table to start authentication.

To overcome this, user needs to set the desired {BSSID, SSID} pair,
Example: Desired pair = {00:03:7F:AA:BB:CC, MOON1},
so that when driver receives a beacon it compares the
BSSID and updates the SSID field to update the scan table.

In general, we already set the ssid in sta configuration
But in this case, we also need to configure BSSID of the hidden AP.
This can be configured through iwpriv cmd.
Example: iwpriv athx conf_bssid 11:03:7F:46:03:17

Change-Id: I03e1efed1168c911fc8f6358d6ad8a8c0b40ba61
CRs-Fixed: 2274105
2018-07-20 09:31:14 -07:00
Sandeep Puligilla
13699a1bd8 qcacmn: Add CFG items to scan component
Add following CFG/INI items to scan component(part-2)
CFG_SCAN_NUM_PROBES
CFG_SCAN_PROBE_REPEAT_TIME
CFG_ADAPTIVE_SCAN_DWELL_MODE
CFG_IS_BSSID_HINT_PRIORITY

Change-Id: Ib355d898260c660cd07103390adbfef921599c3d
CRs-Fixed: 2277184
2018-07-18 19:07:16 -07:00
Nirav Shah
a175314c51 qcacmn: Map all module logs to per-level log APIs
Map all module level log APIs to per-level log APIs
to compile out specific log level if required.

Change-Id: I4072b6740cb43200fd95c40943b66e1d5f8f1847
CRs-Fixed: 2266719
2018-07-13 10:36:22 -07:00
gaurank kathpalia
cb5ce20e28 qcacmn: Remove DBS logic from scm_calculate_nss_score
Driver calculates nss score for BSS, depending upon the
current DBS status. Thus it does not give more preference
to 2x2 and considers it the same as 1x1.
But the DBS condition can change and driver
can move to single mac.

Fix to give more preference to 2x2 BSS so that
better throughput can be achieved in single mac.

Change-Id: Ib684abe423fd21a81cb13db5f741fdfbb750328d
CRs-Fixed: 2271976
2018-07-04 00:57:47 -07:00
Abhinav Kumar
bfbf4422a7 qcacmn: Fix qbss calculation in case of good RSSI threshold
Currently, when Current RSSI is better than good RSSI threshold
first driver calculates qbss percentage and set qbss score accordingly
and when current RSSI is weaker than or equal to good RSSI threshold
(-70dBm) driver directly sets 10% as qbss score. But as per requirement
Driver should calulate qbss percentage in order to set qbss score for
RSSI = -70db

Fix is to allow driver to ignore qbss percentag calculation only
when current RSSI is less than good RSSI threshold.

Change-Id: I1be2ab71016d779a60d21923a34340ae19d6c7f5
CRs-Fixed: 2261635
2018-07-02 16:08:58 -07:00
Krunal Soni
3bdf380c03 qcacmn: Don't process scan command when vdev delete is in process
When driver performs vdev delete operation, it changes vdev state
to logically deleted or physically deleted only after receiving vdev
delete command's response from FW. In between (sending vdev del req
and receiving vdev del rsp) if thread gets pre-empted and other thread
start posting command (like scan command) to process then it could
lead to use after free scenario.

Notify scan component when vdev delete is intiated and let scan
component record that in to vdev's scan private object as one of the
flags.

check this flag before processing the scan command.

CRs-Fixed: 2261704
Change-Id: Id884d6c42cd8766e70835808863632e096158487
2018-06-27 16:14:24 -07:00
Om Prakash Tripathi
9b56f5dc1c qcacmn: Use atomic allocation for all scheduler context scan allocations
In low memory environments using GFP_KERNEL flag may cause
scheduler thread to sleep. Scheduler thread callback handlers
are expected to be atomic in nature to ensure timely execution
of different commands. Move all allocations done by scan module
in scheduler thread context to atomic allocation.

Change-Id: Iee3eafbc00a3afea0687ba67b3041ec0816094cc
CRs-Fixed: 2232553
2018-06-13 21:00:59 -07:00
Sandeep Puligilla
719f933642 qcacmn: Remove scan event log
Duplicate information is logged
while processing scan event.

Removed the duplicate log from scan
event handler API.

Change-Id: I3d58e594c683875fa82349d47103cc1de67ae18a
CRs-Fixed: 2255904
2018-06-13 14:11:03 -07:00
Min Liu
f0f7310142 qcacmn: Potential memory leak in scan manager
When the scan start message in scheduler message queue is
flushed in scm_scan_start_flush_callback, no scan complete
event will be sent. It will lead to vendor scan request is
not free and end up with memory leak eventually.

Change-Id: Iba748adddff6264b04a63fe82c4b0e2f0ffc2a4b
CRs-Fixed: 2243835
2018-05-28 16:48:11 -07:00
Paul Zhang
8e04fa7fce qcacmn: Remove the 11d error log
The unnecessary and iterative log may cause unexpected
issue. So remove it.

Change-Id: If164c48bee2ba221cf05c47ca5e186541b798758
CRs-Fixed: 2231615
2018-05-23 20:45:41 -07:00
Jeff Johnson
2b2ed37d86 qcacmn: Fix typo "doesnt"
Replace typo "doesnt" with correct spelling "doesn't".

Change-Id: I10c7e288056ca296d4e69ec7ad47404482cbf6f3
CRs-Fixed: 2238309
2018-05-17 00:47:39 -07:00
Om Prakash Tripathi
8e9beaef6b qcacmn: Change IE parse failure prints to debug level
In some environments its found that IE's received are not
as expected and console gets flooded with pare failure prints.
Move these prints to debug level.

Change-Id: Ic25bdff65f340f47179a7ac6dd79731b80c805ff
CRs-Fixed: 2232553
2018-04-29 23:44:07 -07:00
Abhishek Singh
c176a5241b qcacmn: Use cookie instead of bool to check if scan node is active
Currently bool is used to check if scan node is active or not, and
if it is active the deletion can happen. Now if two thread tries to
delete the same node at same time, the first one to get the node
will delete the node and set the active bool to false. If the
delete operation leads to node being freed, the 2nd thread when gets
the lock tries to check the bool, if node is active and then return
if node is not active.

Now if before the 2nd thread check the bool, the memory is reallocate
and the byte pointing to the bool is overwritten with non-zero value
the 2nd thread will assume that node is still active and try to delete
and access an already freed node.

To fix this use cookie instead of bool to check if scan node is active.

Change-Id: Id6b9dc9d0ff8f091eef0bd648abc9d3198c3ad4b
CRs-Fixed: 2219667
2018-04-14 07:37:45 -07:00
Shashikala Prabhu
7edbb05f11 qcacmn: Temporary WAR to bypass beacon channel mismatch check
For 4.9GHz, firmware converts the frequency to old regulatory channel
numbers and sends it to host. But host uses new regulatory channel numbers.
Since the received fw channel and beacon channel number is different,
host drops the received beacon and scan entry doesnot get updated.

As a temporary fix, bypass the beacon mismatch check in host.

Change-Id: Ib3e6b7b39ef2feaa1bcf0e0b16a702caccbf6744
2018-04-13 14:51:34 -07:00
Om Prakash Tripathi
8a4564f221 qcacmn: Add support to restrict scan to preconfigured chans
Some times we need to scan only some pre configured
channels irrespective of channels requested in scan
start command.
Add support for pre specified list of scan channels
and scan only these channels if configured.

Change-Id: I7fa9ef9d626fd25d7855a7eb458818d8e2314fa5
CRs-Fixed: 2218494
2018-04-11 09:15:18 -07:00
Naveen Rawat
4ef4fb339c qcacmn: Process scan event for 11d only if event indicates completion
Process scan event for 11d only if event indicates completion. Else in
case of dequeue due to failure or timeout will also cause scan event
handling for 11d which might have undefined effects.

Change-Id: I9d3599a9c60bccebea8ded9922dd3ddf995d8d61
CRs-Fixed: 2210347
2018-04-08 16:08:51 -07:00
Abhishek Singh
dba772b9c8 qcacmn: Fix OCE WAN scoring logic for initial connection
Set the range of score index to 1-15 as 0 is used for the AP
which does not advertise the OCE WAN. Also if OCE WAN downlink
capability is 0 return 0 score.

Change-Id: I8c6757458c542050a6a31cb03fad0ce17d60aa16
CRs-Fixed: 2208282
2018-04-02 15:22:01 -07:00
Sandeep Puligilla
e062e82352 qcacmn: Never ageout connected AP scan entry
Connected AP scan entry is aged out if beacon
is not recieved within scan age out time.

Update mlme information of the connected AP/BSSID
scan entry so that scan age out hanlder will not
age it out even though the last beacon recieved
time is greater than the configured scan age out value.

Change-Id: I14c68c28459080623ca62c0bad9052e38d7fb348
CRs-Fixed: 2183379
2018-03-28 06:26:51 -07:00