Commit Graph

557 Commits

Author SHA1 Message Date
Selvaraj, Sridhar
4f684bbaf2 qcacld-3.0: Add "g_enable_bcast_probe_rsp" INI and pass it to firmware
Add "g_enable_bcast_probe_rsp" INI and pass the configured value
to firmware for STA vdev as part of vdev attach. Based on this INI,
firmware will send the dwell time IE in probe request.

Change-Id: I446c7d7589534688e04579ed434de0803ed8b4ff
CRs-Fixed: 1113498
2017-03-14 12:57:54 -07:00
Selvaraj, Sridhar
c7d808965f qcacld-3.0: Send proper reason code to Supplicant on beacon miss event
qcacld-2.0 to qcacld-3.0 propagation

Once the beacon miss event is received in driver, sta cleanup
happens and sends deauth reason code as 505 which is internal
value to driver(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE).

Send reason code as zero to Supplicant for Beacon miss kickout.
Cleanup the similar handling in csr_api_roam as it is redundant.

Change-Id: I6df97e05ac20f285646df3d5fe73800138a18d89
CRs-Fixed: 1025871
2017-03-14 00:52:00 -07:00
Kiran Kumar Lokere
35fb524572 qcacld-3.0: Enable channel bonding only in 11n or 11ac mode
Enable channel bonding only if the dot11 mode is 11n or 11ac

Change-Id: Ic0afdb8ed7c36838725fd63730fca0310d5a731f
CRs-Fixed: 2018363
2017-03-12 21:40:19 -07:00
Varun Reddy Yeturu
a578414c8a qcacld-3.0: Handle disconnect requests during LFR3 roaming
Propagation from cld3.0-1.1 to cld3.0-2.0

Upper layer can send cfg80211 disconnect command anytime in the life
of a connection. It arrive when firmware roaming may have started,
completed, failed, etc. Processing of roam events may collide with
processing of disconnect command in the host driver.

Defer the hdd disconnect command if roaming has started. Upon completing
roaming send the deferred disconnect command to sme which will
eventually complete the requested disconnect.

If disconnect is deferred during roaming, then do not send the
new roam event to supplicant since it is not expected and upon
honoring the disconnect later, a disconnect event would be
sent to supplicant.

Remove the earlier workaround done to send a try again error message
to upper layers upon receiving a disconnect request when roaming
is in progress

Firmware can now handle the ROAM_SCAN_OFFLOAD_STOP command even
if it is in the middle of roaming operation. Hence remove this
check in SME.

Add LFR3 roaming state to the cds_is_connection_in_progress API since
it currently captures only LFR2 roaming states.

Change-Id: Id352d94b41f0766889ceebd0b57b2c566ce3ca42
CRs-Fixed: 1114853
2017-03-12 21:40:17 -07:00
Abhishek Singh
e6857812fe qcacld-3.0: Fix for ROC cmd timeout issue with new scan module
When converged scan is enabled all the scan commands are queued to
serialization module from scan module and use struct
scan_start_request pointing to umac_cmd pointer.

Due to this if there is already an scan req going on and ROC is
queued driver fails to find ROC request in csr_get_active_scan_entry()
as the CSR try to interpret umac_cmd pointer as tSmeCmd.
And thus sometime ROC cmd times out.

Fix this by interpreting umac_cmd as struct scan_start_request for
scan cmd instead of tSmeCmd.

Change-Id: I6674a54b60d28d799188261b1e56b0c657c1ac19
CRs-Fixed: 2013212
2017-03-11 12:11:02 -08:00
Sandeep Puligilla
a330c8cd93 qcacld-3.0: Legacy scan for ssid support
Update Legacy scan for ssid code according to
new scan common module.

Change-Id: Ieb20c84c56f91b32a0b2c6381ad0f19c363df34d
CRs-Fixed: 2013212
2017-03-11 12:11:00 -08:00
Kapil Gupta
957827b875 qcacld-3.0: Add monitor time for PER based roam
Curretly FW considers minimum time of hysteresis for PER based roam as
constant value which is 25 seconds.

Add changes to make this configurable using ini.

Change-Id: I1a985594d515f42d1aaca8e4ef174fb29b51586a
CRs-Fixed: 2005849
2017-03-10 07:19:20 -08:00
Kapil Gupta
5cda2251d6 qcacld-3.0: Changes for PER based roaming
DUT should be able to roam to a better access point if current
AP is having congestion/packet error.

This roam also devise a new selection logic for candidate
selection which considers channel congestion and AP capabilities.

Change-Id: I39594e37bd209be2603a4636514e2c9b1a907761
CRs-Fixed: 1090934
2017-03-10 07:19:17 -08:00
yeshwanth sriram guntuka
a1ba9a2bfc qcacld-3.0: Downgrade WMM AC for data frames for invalid tspec
As per the current implementation wmmAcTspecValid is reset during roaming
and set after establishing TSpec but currently wmmAcTspecValid is not
considered before classifying the data frames based on AC and UP.
Due to above issue after roaming we are still sending packets with UP
for which tspec session is not established.

Fix above issue by checking wmmAcTspecValid for AC before
classifying the frame.

Change-Id: I37039fa568696f0861b02d094c3a513dbc2b9967
CRs-Fixed: 915555
2017-03-10 03:06:19 -08:00
Sarada Prasanna Garnayak
f21c296946 qcacld-3.0: Fix the 64-bit division linking error on 32bit arch
The 64-bit division in 32-bit architecture call 64-bit-by-64-bit
division routines "__aeabi_uldivmod", which is not defined for
the 32-bit architecture.

Use do_div asm-generic library api for division operation to avoid
the arch specific division "undefined symbol:  __aeabi_uldivmod"
linking error during wlan driver load on 32-bit target.

CRs-Fixed: 2014971
Change-Id: I43253d1eb9f726ac0a96d21f4511a5a282c7bb2d
2017-03-10 00:38:50 -08:00
Kiran Kumar Lokere
7006e0ad76 qcacld-3.0: Disable Qpower with UAPSD or max ps-poll enabled
Disable Qpower when UAPSD is enabled or if the max ps poll is
configured by user.

Change-Id: If9c747406d65a6f89fa123592c3f9d79724b8ae0
CRs-Fixed: 2017432
2017-03-09 17:09:31 -08:00
Naveen Rawat
443f5cda75 qcacld-3.0: Remove eSmeCommandOemDataReq
Remove OEM DATA REQ serialization enum, since wifi positioning
component does not use command serialization.

Change-Id: I16cb21a9ea6b4610dbde4ab51a6cec7542a7e0c0
CRs-Fixed: 2003488
2017-03-09 13:05:56 -08:00
Arun Khandavalli
8a711cbd49 qcacld-3.0: update timestamp of bss while informing frame to kernel
Inform the bss using the new API cfg80211_inform_bss_frame_data() which
also has the ability to inform the timestamp when the frame has
been received.
If the support is not present in the kernel fallback to the legacy
inform bss.

Change-Id: Iaa512248a5e56d77cff39da562e0c9ee4eaeeefd
CRs-Fixed: 1082423
2017-03-08 23:55:09 -08:00
Mukul Sharma
4c60a7ea5b qcacld-3.0: Add Suspend and Resume support in PMO
Add Suspend and Resume support in PMO.

Change-Id: Iba16643adf1cbd997138c740345e40c00c8e81f6
Crs-Fixed: 2015366
2017-03-08 13:00:46 -08:00
Varun Reddy Yeturu
1725782311 qcacld-3.0: Fix the log level in a log message
Propagation from cld3.0-1.1 to cld3.0-2.0

Fix the log level from Error to Info since it is not
an error and also move the message out of the if block
to give more meaningful information

Change-Id: Ia25bcc5b19d5b05666038b75b9a626e69b8de68c
CRs-Fixed: 2014221
2017-03-08 10:52:08 -08:00
Sandeep Puligilla
0806e0f980 qcacld-3.0: Modify SAP ACS scan
Modify SAP ACS scan logic according to new
scan common component.

Change-Id: Id85b6c8a9a1500eeec488b30ee3fd1707b402347
CRs-Fixed: 2013212
2017-03-07 10:49:53 -08:00
Padma, Santhosh Kumar
4eb7908901 qcacld-3.0: Wait for peer delete response from firmware
Currently driver does not wait for peer del response from firmware,
but posts del sta response indication to SME immediately. This
can cause an assert in firmware if driver receives add sta
immediately before even del sta response from firmware. Add
changes to wait for peer del response from firmware to fix
this.

Change-Id: I16a84256f4a1ed971c17eb3139faac5622eadda4
CRs-Fixed: 2008940
2017-03-03 13:13:04 -08:00
Abhishek Singh
6092fbbd64 qcacld-3.0: Add changes to get/flush scan results
Add changes to get/flush scan results. Also add support to
convert legacy filter and scan entry to converged one and vice
versa.

Change-Id: I590745af3943a8975fb0644d02e58b2133c9f1cb
CRs-Fixed: 2013212
2017-03-03 13:12:49 -08:00
Padma, Santhosh Kumar
f3f6fc00b5 qcacld-3.0: Logging enhancements to WMM
Add logging enhancements to WMM code

Change-Id: Ic464711f201deb5af3b2eff09b9211a0aa0c3b25
CRs-Fixed: 1106417
2017-03-02 16:15:58 -08:00
Padma, Santhosh Kumar
93ec7d2960 qcacld-3.0: Logging enhancements to RRM APIs
Add logging enhancements to RRM code

Change-Id: I4aacbca13c604d2f2dd354d9417a3e65dff398ae
CRs-Fixed: 1106418
2017-03-02 16:15:57 -08:00
Padma, Santhosh Kumar
cd35f532e4 qcacld-3.0: Logging enhancements to LFR3 code
Add logging enhancements to LFR3 code

Change-Id: If8ea2c15a29889a22359911acc433f93691b9279
CRs-Fixed: 1106420
2017-03-02 16:15:55 -08:00
Naveen Rawat
56b4de80a8 qcacld-3.0: Fix uninitialized usage
In function sme_get_beacon_frm, result_handle maybe used uninitialized.
Fix this by initializing result_handle with NULL value.

Change-Id: Ia1437b6adf1bbcfe7d2d87b42a252e4a0ee6f5ea
CRs-Fixed: 2008665
2017-03-02 13:02:24 -08:00
Sreelakshmi Konamki
6b1f5513cf qcacld-3.0: Remove redundant fast_roam_enabled flag from CSR session
'fast_roam_enabled' flag does same as 'do_not_roam' flag which is used to
track whether roaming is enabled or disabled per CSR session.
As per code 'do_not_rome' flag alone is sufficient to track roaming status
per session.

Fix to remove redundant 'fast_roam_enabled' flag to allow vendor roaming.

Change-Id: Id7f6e547b883c932f615cfbf89eeb30d47d6408e
CRs-Fixed: 1105973
2017-03-02 10:03:50 -08:00
Sreelakshmi Konamki
66ddf3a759 qcacld-3.0: Remove PTK/GTK debug logs
qcacld-2.0 to qcacld-3.0 propagation

Currently host prints PTK and GTK key information in default logs.
Fix to remove the debug logs which prints sensitive key information.

Change-Id: I358b09b77d23eeb5da7d826859ae119a8ea4af8a
CRs-Fixed: 1097857
2017-03-02 10:03:45 -08:00
Sreelakshmi Konamki
b53c629c0f qcacld-3.0: Generate bug report if scan rejected by driver
qcacld-2.0 to qcacld-3.0 propagation

Driver will not allow scan if connection is in progress.

Add driver changes to generate bug report and trigger SSR
if current session id, rejected reason matches with last rejected
sesssion id, reason and time delta between current time and
last rejected timestamp is greater than 5 mins

Change-Id: Ic64a6fd443104b291b5b7f6cda3bfbe8273c671a
CRs-Fixed: 1081489
2017-03-02 10:03:43 -08:00
Ashish Kumar Dhanotiya
d097251612 qcacld-3.0: Support fast transition with open security
wlan-cld3.driver.lnx.1.1-dev to wlan-cld3.driver.lnx.2.0-dev propagation

If station is connected to an AP with open security, fast
transition would fail as preauth is attempted only if FT
ies are present.

To fix this, Preauth is attempted even if FT ies are not
present for a 11R connection in open security.

Change-Id: I0ac15fc63b4b97a0e2fcecfe70d7cfc1c9277318
CRs-Fixed: 1086498
2017-03-01 23:19:26 -08:00
Varun Reddy Yeturu
35c07f93a6 qcacld-3.0: Changes to compile renamed files
Make changes to support compilation for the files that have
been renamed. Rename the files from wlan_serialization_legacy_mcl_api
to wlan_serialization_legacy_api to keep it more appropriate.

Change-Id: Id219a9f3e00bef0ed85408539b33d54462bf91b5
CRs-Fixed: 2012863
2017-03-01 16:47:29 -08:00
Mukul Sharma
3d36c391b2 qcacld-3.0: Add support for gtk offload PMO component
Add support for gtk offload in PMO component.

Change-Id: Ia5ea2daf873ad481f51e2d1cf24441a8c1d93476
CRs-Fixed: 2005114
2017-02-28 16:21:43 -08:00
Krunal Soni
d8e8e3d885 qcacld-3.0: Fix review comments provided for legacy serialization
During legacy serialization's code review, few comments were provided.
Fix them.

CRs-Fixed: 2005532
Change-Id: Id5daea23532f263aea1e1bb9c3daa4651274890f
2017-02-26 02:07:51 -08:00
Krunal Soni
81f068c8e3 qcacld-3.0: Replace legacy scan serialization with new one
Replace legacy scan serialization with new one serialization

CRs-Fixed: 2005532
Change-Id: I57d48d226d5092d8cfc834196acf28a7e5d48966
2017-02-26 02:07:50 -08:00
Krunal Soni
a8270f5401 qcacld-3.0: Replace legacy SME serialization with new serialization
Legacy SME module is using old serialization mechanism, enable new
serialization mechanism.
Provide ifdef switch to fallback to old serialization in-case if it
is required to move to old serialization.

CRs-Fixed: 2005532
Change-Id: I4801dbab53e451206e2ff0904d102676fd7336e2
2017-02-26 02:07:48 -08:00
Naveen Rawat
2096954450 qcacld-3.0: Fix memory leaks for roam profile within csr session
Release roam profile within csr session before freeing actual profile.

Change-Id: I647570fe590d72752ae83eb37aa151fcc3ce659b
CRs-Fixed: 1116636
2017-02-23 11:58:45 -08:00
Agrawal Ashish
6b48ee2295 qcacld-3.0: Populate max Tx power in Assoc request if reg power is more
For some channels, Reg power is more than MAX supported TX power.
Driver should not populate max tx power more than 22.

Change-Id: I52557bd0c38c128c09b255b46f7d43986d50feff
CRs-Fixed: 2010014
2017-02-23 09:29:37 -08:00
Naveen Rawat
664a7cb3c6 qcacld-3.0: Send beacon frame in wmi_roam_invoke_cmd
Send beacon frame in wmi_roam_invoke_cmd to firmware.
This helps firmware skip scan to connect to requested
BSSID.

Change-Id: I5c6e375309dcb3bdd6430a3d501bade5cfe2e88d
CRs-Fixed: 1116901
2017-02-22 17:46:25 -08:00
Arif Hussain
a48a9c0468 qcacld-3.0: Handle resetting do_not_roam flag in sme_config_fast_roaming
do_not_roam flag is set when supplicant initiate connect request with
BSSID. This flag reset when supplicant sends vendor command to enable roaming.

If roaming is disabled using driver command, this supplicant request to enable
roaming will be ignored in sme_config_fast_roaming function and do_not_roam flag
remains set. So make sure to update do_not_roam flag in sme_config_fast_roaming
function even before validating isFastRoamIniFeatureEnabled to process or skip
roam request from supplicant.

Change-Id: I541b9e5a66e7d7ad8b2040cf9070a7893be66b5f
CRs-Fixed: 2000718
2017-02-21 10:29:49 -08:00
yeshwanth sriram guntuka
ba13ea6c88 qcacld-3.0: Remove unused scan ini parameters
Remove unused scan result age count and scan result
aging time ini parameters.

Change-Id: Iae00c053429230706b9d0c9cb5ed8470a9b62812
CRs-Fixed: 2007156
2017-02-20 03:56:44 -08:00
Yu Wang
0477ee3aec qcacld-3.0: fix compilation error related with FEATURE_WLAN_ESE
Some FEATURE_WLAN_ESE feature related code are not
embraced by macro FEATURE_WLAN_ESE, which will cause
compilation error if FEATURE_WLAN_ESE is not enabled

Embraced FEATURE_WLAN_ESE feature related code with
macro FEATURE_WLAN_ESE

Change-Id: Iab843b6f48b81e2ddaf8a52e771b49d38482e184
CRs-Fixed: 2007111
2017-02-19 20:06:43 -08:00
Krunal Soni
72dba66ab3 qcacld-3.0: Create wrapper API for sme pending & active nonscan cmds
To make convergence easier, create wrapper API to process active and
pending queue operations for non-scan cmd list.

Change-Id: Ie62a2c23b797c5f4011c11879e1ef00b705d7586
CRs-Fixed: 2005532
2017-02-17 21:15:20 -08:00
Krunal Soni
20126cbd4f qcacld-3.0: Create wrapper APIs from csr_ll_lock and csr_ll_unlock
To make convergence easier, create wrapper API to lock and unlock
active command list and pending command list

Change-Id: Ic4bad27a2520c3c1f2af9fcb6d20a99f640f91a1
CRs-Fixed: 2005532
2017-02-17 21:15:18 -08:00
Krunal Soni
c1225608ef qcacld-3.0: Remove obsoleted roamCmdPendingList from SME module
Current driver doesn't use roamCmdPendingList in SME module, remove
this unused list to avoid confusion.

Change-Id: I77a696035016f4ae370235bfb86b37d5c92484df
CRs-Fixed: 2005532
2017-02-17 21:15:16 -08:00
Krunal Soni
dea4595c14 qcacld-3.0: Converge release csr command operation using single API
Current driver is using different wrapper APIs to release the csr
command buffer which doesn't make sense.

Converge those wrapper API and call them from csr_release_command
API to make it simple to understand.

Change-Id: I55da6ed74a634a3ac7769cdd6cbd099b8e92b5a1
CRs-Fixed: 2005532
2017-02-17 21:15:15 -08:00
Krunal Soni
78618d9d54 qcacld-3.0: Remove tCsrCmd & replace few of sme api with csr
tCsrCmd struct is not required as tSmeCmd struct serves the purpose.
Remove tCsrCmd so that un-necessary confusion go away.

Replace sme_release_command with csr_release_command to keep track
of pending command.

Replace sme_get_command_buffer with csr_get_command_buffer to keep
track of pending command.

Change-Id: I75f45673c95a0c4e656967274b9933661f4b2f43
CRs-Fixed: 2005532
2017-02-17 21:15:13 -08:00
Krunal Soni
985b813ee3 qcacld-3.0: Remove serialization from open and close session
Remove serialization from sme_open_session and sme_close_session,
as these events are going to be serialized through following.

1) Two back to back open sessions can't come because kernel will
   serialize using rtnl locks. Same goes for close sessions.
2) Even if two open sessions or close sessions comes back to back
   from driver itself or from other sources then HDD will make-sure
   of serialization through wait_for_completion_timeout call.

Change-Id: I0e27d6dc72e26589b5973bd7668a1783ac132477
CRs-Fixed: 2005532
2017-02-17 21:15:11 -08:00
Krunal Soni
f35830237c qcacld-3.0: Add sme session id to few SME APIs
Some SME APIs are not using session id eventhough it is available.
Add sme session id so that in future using this sme session id, vdev
object can be pulled.

Change-Id: I21bc4d16c7ae5cd48f4e5049f01ad3d3ec2763e5
CRs-Fixed: 2005532
2017-02-17 21:15:10 -08:00
Nitesh Shah
a3dfea3ebb qcacld-3.0: Avoid new connection while HW mode change is issued
In the case of concurrency, when the session decrements, the
opportunistic timer is started. After a while, when the
opportunistic time is expired, and the hw mode change for SMM
is issued, and the same time new interface comes up, then the
new forms MCC with the existing connection instead of forming
DBS.

The change is to avoid the race condition to form MCC instead of
DBS.

Change-Id: I977039138509676b964ba089e3cb479cd16968bb
CRs-Fixed: 2006350
2017-02-15 06:35:20 -08:00
yeshwanth sriram guntuka
46f004fb9c qcacld-3.0: Add log message for disassociate cmd
Add log message to indicate reason for disassociate
request issued by driver.

Change-Id: I30027a274bfc4105ae9e0128cd6837bc6a29aaed
CRs-Fixed: 2002041
2017-02-14 23:53:30 -08:00
Kapil Gupta
4f0c0c1c50 qcacld-3.0: Report more information in survey dump
qcacld-2.0 to qcacld-3.0 propagation

Currently host only report connected frequency and noise in
survey dump.
Add changes to report all supported frequencies, active time,
TX time, busy time and noise.

CRs-Fixed: 1061040
Change-Id: I2fa509f53b47d65ba0f4abbc438834b85b9c21f6
2017-02-13 23:01:25 -08:00
Kapil Gupta
8878ad9517 qcacld-3.0: Add support for external auto channel selection
Add changes to enabled driver to use external auto selection
logic instead of current driver based implementation.
In case external application is not present, driver will fall
back to current solution.

Change-Id: Ib7474e82bc7f5878af46c91ea09711775a7c046a
CRs-Fixed: 1110061
2017-02-13 23:01:23 -08:00
Selvaraj, Sridhar
8fe6c67d2c qcacld-3.0: Logging enhancements to LFR3 Roaming
1) Add enhancements to the existing log prints for lFR3
with respect to host driver code.
2) Fix memory leak in Wma roaming config handler.

Change-Id: If3e26a7f374673a4c7c11862e94f042bcf9d3c58
CRs-Fixed: 1109354
2017-02-06 03:27:09 -08:00
Jeff Johnson
e8216e8705 qcacld-3.0: Update sme_encrypt_decrypt_msg()
A new HDD Request Management framework is being deployed. One of the
requirements of that framework is that every request API must have a
provision for a caller-supplied context, and that caller-supplied
context must be returned to the caller when the callback function is
invoked.

Currently sme_encrypt_decrypt_msg() is not aligned with that
requirement. There is no provision for a caller-supplied context;
instead the HDD handle which is stored in the MAC context is always
returned.

In order to prepare sme_encrypt_decrypt_msg() for the HDD Request
Management framework update the curent implementation as follows:
1) Remove the separate registration and deregistration of the callback
   function pointer, and instead make the callback function and
   callback context parameters to sme_encrypt_decrypt_msg().
2) Pass the callback context when invoking the callback function.

Change-Id: I6e8c5405393f4cb732d9874ac07145caf5e95cac
CRs-Fixed: 2000026
2017-02-03 12:25:45 -08:00