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
qdf_mem_copy() is called in util_scan_gen_scan_entry() to copy the ssid
into scan_entry using a length of WLAN_SSID_MAX_LEN. Because the length
of ssid is only checked against the maximum value this will result
in an OOB read of up to WLAN_SSID_MAX_LEN bytes.
Change-Id: I150e7c7a75e7134cab1c4abeb799578166400461
CRs-Fixed: 2341004
In ucfg_scan_unregister_requester even if caller provide an invalid
requester id, the index is unregistered without checking if
requester id is valid.
Validate the scan requester id before un-registering the index.
Change-Id: I0e946b8c1bdb87b7929745bcd646076d2b664c38
CRs-Fixed: 2343177
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
When scan is issued with 0 channels, use all valid channels
on underlying vap to scan. In essence 0 channel in scan
request is expanded to all supported channel list in scan
request by host driver.
Change-Id: Ie1677fa804b290bb1e4715244efb5789641260f4
CRs-Fixed: 2339615
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
On NOL violation during scan start, FW aborts the scan request and sends
the scan failure event.
CRs-Fixed: 2328894
Change-Id: I5b33a8f02122226b8980daaeedb13d727266e7e7
Add function to return a pointer pointing to Mobility Domain IE
of a scan entry.
Change-Id: I61254bfc3de117a2d7cfb187665ac228c9ea383e
CRs-Fixed: 2311319
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
Delete print "failed to post to QDF_MODULE_ID_SCAN" as it doesn't
gives any useful info. How many times failure has happened can be
read from __sched_dup_fail_count.
Change-Id: Id4ec411d5a32f09c971330e860b50d1a91e7c70b
CRs-Fixed: 2326611
Add periodic 11d scan in host for non-11d scan
offload hw. Periodic interval is controlled
by INI scan_11d_interval, default 1 hr.
Change-Id: I66d1e76a1c147fc52f0e18b6601d3be4b4973210
CRs-Fixed: 2314830
Heavy print from scan module slowing down
frame processing and caused the scheduler
buffer to be full causing buffer full assert
Move scm_err to scm_err_rl which will add
print rate limiting
CRs-Fixed: 2313262
Change-Id: I4eebe7eeb0e52e0858eb064717a5ce457ac891e2
In the scheduler_post_message, src_id is now added to
know the source module of the msg. the present scheduler
doesn't know about the same which is scheduler_post_msg
Replace the scheduler_post_msg with scheduler_post_message
Change-Id: I37532d323a0945b522087a23a65396ba2899fb5b
CRs-Fixed: 2306011
In the scheduler_post_message, src_id is now added to
know the source module of the msg. the present scheduler
doesn't know about the same which is scheduler_post_msg
Replace the scheduler_post_msg with scheduler_post_message
Change-Id: I1f543cd443ab8cb19bf36fb581041ed3393077e8
CRs-Fixed: 2306017
Add ini drop_bcn_on_chan_mismatch, default: true.
The ini is used to decide drop the beacon or not
if channel received in metadata doesn't match
the one in beacon.
Change-Id: I6a25d472ae41f4a7f0bdb7a57002975938b2dc33
CRs-Fixed: 2312994
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
Add structures and supporting function get bit field value of extended
capabilities IE bit field.
Change-Id: Iff915320d71473310e2cbc0188508061b14a40f1
CRs-Fixed: 2296592
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
MBSSID beacon support change 2371483 caused multiple free of
scan_list in failure cases. Also only memory for scan_list was
freed without freeing any scan entries in scan_list.
Fix multiple free of scan_list by multiple functions and free
each scan entry in scan_list before freeing scan_list memory itself.
Change-Id: I113391629f544b7accb9a4d1b7aaea11624e0d6e
CRs-Fixed: 2295311
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
Add support to parse Multiple BSSID element
from Beacon and Probe Response frames and to
update the scan database.
Change-Id: If2c58529c4dca3d3866bd7f905d4a1b6983f468a
CRs-Fixed: 2274579
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
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
Pass offset value to the Firmware to support split scanning
of total dwell time in smaller chunks. Offset passed is
calculated from TBTT.
Change-Id: I8114acd1147d468aa6471f672307d8ea0ec8611d
CRs-Fixed: 2134748
Add following scan CFG items to common scan component
1.CFG_ACTIVE_MAX_CHANNEL_TIME:Max active dwell time
2.CFG_PASSIVE_MAX_CHANNEL_TIME:Max passive dwell time
Change-Id: I3aeed28a404984812ebbc56f2a8d28e7e9ab7de2
CRs-Fixed: 2277105
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
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
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
Some old ap's QBSS IE length is 4Bytes, in latest 802.11e
spec, the expected length is 5Bytes.
If stop parsing beacon&probe with 4Bytes QBSS IE, DUT can't
scan and connect with AP, so change it to bypass QBSS IE
if AP uses the old format.
Change-Id: Ib6727f5f77c5e5543e862277e1d2d35273f62d59
CRs-Fixed: 2257707
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
Fix the incorrect indention in function
util_scan_populate_bcn_ie_list, which causes newer versions of
gcc complaining.
Change-Id: I2ea0f2ea5bf3e381a789ae832f56a43d511e898e
CRs-Fixed: 2247021
In case where driver receives a scan request with a single SSID with
an empty string, it must be treated as an active scan with broadcast
probe requests. In case of p2p search, driver treats this as a passive
scan. With this the P2P Client fails to detect existing P2P GO or
Autonomous GO devices, leading to connection failure.
Set flag WMI_SCAN_ADD_BCAST_PROBE_REQ for this type of p2p scan req.
P2P GO devices will respond to probe requests with wildcard SSID
and Cli will be able to connect to them.
Change-Id: Iacb44fb0cb5363f5af6cf7f6efb219857a799075
CRs-Fixed: 2235604
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
Duplicate information is logged
while processing scan event.
Removed the duplicate log from scan
event handler API.
Change-Id: I3d58e594c683875fa82349d47103cc1de67ae18a
CRs-Fixed: 2255904