Commit Graph

775 Commits

Author SHA1 Message Date
Selvaraj, Sridhar
0ab68627a5 qcacld-3.0: Dont send peer_flush_tids cmd to fw for HO fail cases
When HandOff(HO) fails, set doNotSendOverTheAir flag so that LIM
does not send deauth and also does not send peer_flush_tids cmd
to FW as FW already did the cleanup.

Change-Id: I4721ad22e5c4229155ae9bd5f4d9624dca0a1879
CRs-Fixed: 2037621
2017-08-04 02:06:52 -07:00
Deepak Dhamdhere
cad0391ea4 qcacld-3.0: Fix for QoS prioritization after roaming
Voice traffic is properly prioritized when a TSPEC is added to
the connection. When STA roams to a new AP, TSPEC is negotiated with
that AP, firmware is programmed to handle WMM access classes but
HDD is not notified of this change. This problem shows up only in
non-FT roaming. Ensure that AC flows are reinitialized after roaming.

CRs-Fixed: 2003210
Change-Id: I7b9e07cffa90eb966c4a23ff4c4db420fb0122fe
2017-08-03 22:08:14 -07:00
Deepak Dhamdhere
6f7fbbeb17 qcacld-3.0: Add a function to free fields of saved scan command
saved_scan_cmd has many fields that are allocated separately during
profile save operations. Add a routine to free those memory objects,
release the profile and avoid memory leaks.

CRs-Fixed: 2012430
Change-Id: I0d9fcb29ca7f8290692ba4b688ffe025d5b5d747
2017-08-03 22:08:13 -07:00
Srinivas Girigowda
72f3039ec5 qcacld-3.0: Split __wlan_hdd_cfg80211_set_ext_roam_params()
Split __wlan_hdd_cfg80211_set_ext_roam_params() into
multiple functions to improve readability of the code and
fix clang warning (-Wframe-larger-than).

Change-Id: I3ad995636127a5fda0635549551a24cc5b1bd2c5
CRs-Fixed: 2055487
2017-08-03 19:48:53 -07:00
Dustin Brown
84411b0e45 qcacld-3.0: Flush pending powersave timers during suspend
Currently, auto powersave timers are deferrable. This means any pending
auto powersave timers will not fire while the device is supended, which
can have a negative impact on wlan power usage. Instead, flush any
pending auto powersave timers during the suspend process, to ensure
powersave is enabled while the device is suspended.

Change-Id: I5911ee30eaf770909b728af73958ba1bbaa8457f
CRs-Fixed: 2080812
2017-07-31 18:53:15 -07:00
Padma, Santhosh Kumar
5f42892271 qcacld-3.0: Avoid buffer overflow of csr_wpa_oui array
In csr_validate_wep(), return value of csr_get_oui_index_from_cipher() is
used to fetch 'csr_wpa_oui' value. csr_get_oui_index_from_cipher() returns
0-14 but no.of rows of 'csr_wpa_oui' is 7.

Add changes to validate index value before accessing 'csr_wpa_oui' array.

Change-Id: I0cf16f4e8fb2c07a489991f20bc345e97b2450e0
CRs-Fixed: 2077599
2017-07-30 13:02:22 -07:00
Abhishek Singh
4db8c1521c qcacld-3.0: Send OCE rssi reject BSSID list to firmware
Add support for rssi based assoc rejection from a bssid and
Try to connect to this bssid only after time interval indicated in
Assoc reject or when rssi has improved by margin indicated in Assoc
reject.

On connection send OCE rssi reject BSSID list to firmware so that
firmware will avoid connecting to these BSSID until RSSI improve or
delta interval has elapsed.

Change-Id: I792b2874ed25227bf5fd09d8051549da96db4364
CRs-Fixed: 2070452
2017-07-30 11:00:15 -07:00
Abhishek Singh
f3756fcb5c qcacld-3.0: Add support for rssi based assoc rejection during connect
Add support to handle rssi based assoc rejection from a bssid and
Try to connect to this bssid only after time interval indicated in
Assoc reject or when rssi has improved by margin indicated in Assoc
reject.

Change-Id: I6363bf5346ff8804611afbac3058819dc820092d
CRs-Fixed: 2070452
2017-07-30 11:00:12 -07:00
Agrawal Ashish
87ec5d48c8 qcacld-3.0: Indicate HB failure, HO failure and no scan result as FATAL
In packet logs currently HB failure, HO failure and No scan results
are marked as Non Fatal and because of that, these failures are not captured
in packet logs.
Fix this by making these events as FATAL.

Change-Id: I6db2f3cd843b7f84081332f2385fbfb0a2992078
CRs-Fixed: 2061842
2017-07-30 11:00:09 -07:00
Manjeet Singh
2f78506072 qcacld-3.0: Correct sme_set_5g_band_pref definition
sme_set_5g_band_pref is declared inside FEATURE_WLAN_ESE feature flag
by mistake which can cause a symbol undefined error if FEATURE_WLAN_ESE
is not declared.

Move sme_set_5g_band_pref outside of conditional block FEATURE_WLAN_ESE.

Change-Id: I80b045100b068d08873b136fdf676e99e36a57cd
CRs-Fixed: 2016629
2017-07-30 10:04:13 -07:00
Manjeet Singh
a9cae43599 qcacld-3.0: Add support for band specific preference
Add support for 5Ghz network RSSI boost/penalty preference
based on ini values.

Change-Id: Ia3ae5dcc35b9a85fde5a609f8f27ff8b4bc35cec
CRs-fixed: 1085554
2017-07-30 09:09:12 -07:00
Agrawal Ashish
c416da60c5 qcacld-3.0: Trigger pktlog as part of hb failure/kickout event
When Driver does disconnect as part of heartbeat failure
or kickout event, trigger fatal event to capture pktlog.

Change-Id: I43a486afeccc4acd4be542357b803d492afde9c0
CRs-Fixed: 2030718
2017-07-27 16:59:44 -07:00
Ravi Joshi
b398c85774 qcacld-3.0: Fix stability issue observed in set channel request
Fix array out-of-bounds access while populating the BSS rate set.
The issue was seen while populating the basic supported rate
and extended rate sets.

CRs-Fixed: 2081423
Change-Id: I8626399b7f9a04dc368daa582b6a09500a7ea015
2017-07-27 16:59:01 -07:00
gaolez
7bb1e74744 qcacld-3.0: Add ecsa capability record
qcacld-2.0 to qcacld-3.0 propagation

Add eCSA capability record of STAs which associated to SAP.

Change-Id: I1d7892bb1dc4e490a587e8372a4bdc7f419e8b36
CRs-Fixed: 1094958
2017-07-25 15:44:06 -07:00
bings
58ce86229c qcacld-3.0: Add phymode parameter in hdd_chan_change_notify
Information in struct ch_params_s are the same for 11g and
11n ht20, so phymode is still needed to distinguish them.

Change-Id: I5ddfc011b4fd3b11c975f8b2df3a270e8141e622
CRs-Fixed: 2073580
2017-07-25 03:45:24 -07:00
Sridhar Selvaraj
1b2330ccb8 qcacld-3.0: Add new ini param for min rest time during roaming scan
Currently both min and max rest time use the same ini param
gNeighborScanTimerPeriod.

Add a new ini param gRoamRestTimeMin for min rest time
during channel scan.

Change-Id: Ifbb0fcc736e81b292639c6f2ad3119b451bec4f2
CRs-Fixed: 2060095
2017-07-24 10:52:47 -07:00
Will Huang
558f8085c4 qcacld-3.0: Add support of request peer stats info(part 2)
qcacld-2.0 to qcacld-3.0 propagation

FW has limitation to support old WMI_REQUEST_STATS_CMDID and
WMI_UPDATE_STATS_EVENTID interface on AP vDev. FW suggest to use new
WMI_REQUEST_PEER_STATS_INFO_CMDID and WMI_PEER_STATS_INFO_EVENTID to
get tx/rx rate.

This checkin is about LIM/SME/SAP layer, provide SME APIs/callbacks
to HDD layer to get SAP's peer station tx/rx related information,
fill these information from wma layer get-peer-stat-info APIs and
peer station's association request frame. It also fixed function
csr_send_assoc_ind_to_upper_layer_cnf_msg when copy information
between different structures and using offset style.

Change-Id: Icb1aaa126663af7eaedd1c4db86ca25c40ce6ee9
CRs-Fixed: 2051628
2017-07-18 05:54:26 -07:00
Selvaraj, Sridhar
57ce4dfde2 qcacld-3.0: Add ini params to avoid roam ping pong
In roaming scenario, to avoid ping pong with bad AP’s around, fw
blacklist certain Ap’s based on timestamps and penalize certain
AP’s of the same channel so they won’t be selected and back and
forth roaming could be avoided. This change adds the following
INI parametres to configure the parametres of this fw feature.

1) groam_disallow_duration    - Amount of time LCA[Last Connected AP]
                                will be disallowed before it can be a
                                roaming candidate again.
2) grssi_channel_penalization - RSSI to be penalized if
                                candidate(s) are found in the same
                                channel as disallowed AP's.
3) groam_num_disallowed_aps   - number of AP's the target should
                                maintain in its LCA list.

Change-Id: I41cb36caf1b42caeb2bf77846bd0279eb43d2018
CRs-Fixed: 2054188
2017-07-18 05:54:24 -07:00
Sreelakshmi Konamki
2972b6e3cb qcacld-3.0: Do not remove addts/delts command in csr_roam_sync_callback
Currently addts and delts commands are removed as part of
csr_roam_sync_callback. After successful roaming add_tspec of
old connection is not processed in SME (entry of addts command is NULL
in smeCmdActiveList). As there is no active add tspec in SME,
VO data is downgraded to BE.

To fix above issue, do not remove addts/delts commands from SME queue and
in PE layer do the error handling for addts to send resp for all
failure cases.

Change-Id: Ibc7364d188c3002dd8067738f6bcc8fee2af2126
CRs-Fixed: 2076713
2017-07-18 05:54:23 -07:00
Houston Hoffman
77bf407f75 qcacld-3.0: free memory in csr_get_snr error path
Free allocated message container when csr_roam_get_session_id_from_bssid
fails.

Change-Id: I088d3866d2c8052ef65ce5a719dd6c478d98e293
CRs-Fixed: 2077460
2017-07-17 21:48:01 -07:00
Zhang Qian
65e2e8d072 qcacld-3.0: Add sap operation mode to MAC global context
SAP operation mode is not updated to MAC global context once
user layer APP updates STA roaming policy. This will make
unsafe channel ignoring ineffective.

Change-Id: I5727e950e2097d55daf6745b4f443b89cc681dc8
CRs-Fixed: 2074237
2017-07-17 17:38:58 -07:00
Vidyullatha Kanchanapally
be0ebb3807 qcacld-3.0: Add handler for new WMI BT event
Add handler for the new WMI BT activity event and propagate the BT
event till HDD. These BT activity events will be used for MBO
enhancements to decide whether to accept the BTM request from
AP or not.

Change-Id: I687819fd28c693964b42bfb24eb9dae1858b10a5
CRs-Fixed: 2023728
2017-07-13 18:03:08 -07:00
Zhu Jianmin
e5594d1410 qcacld-3.0: Fix issue that can't pass Passpoint TC5.2.A
After iwpriv wlan0 reassoc, reassoc resp with status OK, but
csr_roam_state_change doesn't become eCSR_ROAMING_STATE_JOINED,
Keeps JOINING. When disconnect from AP or key timeout, CSR can't
handle eWNI_SME_DISCONNECT_DONE_IND event, no disconnect event
sent to wpa supplicant,  so no reconnect

CRs-Fixed: 2073481
Change-Id: I4966bac1998af95973b5247779fa5e83ad14db93
2017-07-13 02:46:35 -07:00
Srinivas Girigowda
74a66d627b qcacld-3.0: Fix clang warnings implicit enum type tAniBool
warning: implicit conversion from enumeration type 'tAniBool'
(aka 'enum eAniBool') to different enumeration type
'eSapBool' [-Wenum-conversion]

Replace tAniBool/eSapBool with bool.

Change-Id: I919488d2accc094049375fffe8b54a5d7dea621e
CRs-Fixed: 2055487
2017-07-13 01:47:55 -07:00
Varun Reddy Yeturu
7b2a657361 qcacld-3.0: Fix clang warnings in SME
Fix implicit conversion from enumeration type 'tSirRetStatus' (aka 'enum
eSirRetStatus') to different enumeration type 'QDF_STATUS'
Fix implicit conversion from enumeration type 'QDF_MODULE_ID' to
different enumeration type 'CDS_MQ_ID'
Fix implicit conversion from enumeration type 'enum eSirResultCodes' to
different enumeration type 'eCsrRoamResult'
Fix implicit conversion from enumeration type 'enum eSirRetStatus' to
different enumeration type 'tSirMacStatusCodes'
Fix implicit conversion from enumeration type 'sme_QosStatusType' to
different enumeration type 'QDF_STATUS'
Fix implicit conversion from enumeration type 'tSirResultCodes' (aka
'enum eSirResultCodes') to different enumeration type 'QDF_STATUS'

Change-Id: I133992192b797619c7bc593fb65e4ca5ca87702b
CRs-Fixed: 2063149
2017-07-12 15:42:49 -07:00
Varun Reddy Yeturu
d97e8f8fd8 qcacld-3.0: Fix clang warnings in P2P
Fix implicit conversion from enumeration type 'tSirResultCodes' (aka
'enum eSirResultCodes') to different enumeration type 'QDF_STATUS'

Change-Id: I693a7cd5213b5dc58395bbeee04292cf4960c36e
CRs-Fixed: 2063149
2017-07-12 15:42:48 -07:00
Varun Reddy Yeturu
66899fe9e7 qcacld-3.0: Fix roam start not being sent to firmware
Fix the restriction of not sending ROAM_START command if the
previously sent command was an UPDATE_CFG command. There is
no such requirement.If the framework sends a BLACK_LIST update
command, then it is sent to firmware even in case of disconnected
state for the sake of PNO. The subsequent connection triggers a
ROAM_START command and it is not sent to the firmware due to
the current restriction

Move the global flag of saving the status of roam start sent to
firmware into the session

If a ROAM STOP is being sent to the firmware directly to WMA, then
update the relevant flags in the session

Change-Id: I6c42bc7d1e10352883edc7e715ea1418835cd142
CRs-Fixed: 2074836
2017-07-11 19:58:03 -07:00
Kapil Gupta
ab7961d7f9 qcacld-3.0: Changes to retain value of snr_monitor_enabled
snr_monitor_enabled in the mac context can be overwritten while
applying sme config again.
Add changes to retain value of snr_monitor_enabled from initial
configuration.

Change-Id: I60522fa27407506522efb45a9c5d3e7a5ac04ef2
CRs-Fixed: 2056870
2017-07-11 07:27:14 -07:00
Srinivas Girigowda
aa6852824a qcacld-3.0: Fix clang warning implicit conversion enum type QDF_STATUS
warning: implicit conversion from enumeration type 'QDF_STATUS' to
different enumeration type 'enum tSirRetStatus' [-Wenum-conversion].

Change-Id: I4627325a927c36f3c4f9bb6d89f04146784d458a
CRs-Fixed: 2055487
2017-07-11 05:47:38 -07:00
Naveen Rawat
d0ca44133d qcacld-3.0: get statistics code path cleanup
HDD always sets periodicity=0 and cache=false so all logic
that exists to support these options can be removed from SME/CSR.

Change-Id: Ica9848badd09d14f50c44998ce830568e2b76024
CRs-Fixed: 2063484
2017-07-10 16:59:07 -07:00
Varun Reddy Yeturu
0d3d9916c4 qcacld-3.0: Cleanup CBMode in SME
Cleanup the variable CBMode as there is no usage of
the variable in the code

Change-Id: I4e63a0f6f1cddd639f324c177b198e4b5c18e9e0
CRs-Fixed: 2063149
2017-07-09 23:41:17 -07:00
Deepak Dhamdhere
612392c937 qcacld-3.0: Add .ini configuration for max number of AMSDU
qcacld-2.0 to qcacld-3.0 propagation

Host driver can send number of max AMSDUs in transmit frames.
Added a call to process_wma_set_command() similar to CLI
command processing for GEN_VDEV_PARAM_AMSDU during device
initialization.
Changed name of the field from isAmsduSupportInAMPDU to max_amsdu_num
in several places. Existing SME and LIM code passes this parameter
to WMA, but it is not used there. It may be useful if AMSDU setting
is changed to per-vdev basis in future.

WCNSS_qcom_cfg.ini changes:
Removed - "gAmsduSupportInAMPDU"
Added - Name = "gMaxAmsduNum", Min = 0, Max = 3, Default = 1

Actual function call to ol_txrx_aggr_cfg() send the parameters to
firmware is commented out because it is not implemented in firmware.

Change-Id: I2dfdd8c8c4a8807596ff28eee192ef66ac425653
CRs-Fixed: 871686
2017-07-08 13:41:35 -07:00
Hanumanth Reddy Pothula
90051789ab qcacld-3.0: Update valid rssi value to upper-layer
For a small window during roaming and new connection, there is a
possibility of firmware to send the invalid rssi value(other than
0-127), leading driver to send the same invalid rssi value to upper-layer.

To mitigate this issue:
1) Either send previous valid rssi value to upper-layer on receiving invalid
   rssi value from the firmware.
2) Or if previous rssi value is not valid, fetch rssi value from beacon frame
   of connected AP from scan cache.

Change-Id: I4443ed06cd80826ff386c2b4a536a2dc1a1e0881
CRs-Fixed: 2042747
2017-07-06 17:50:32 -07:00
Ravi Joshi
b228f09444 qcacld-3.0: Fix cds_mc_thread getting stuck in infinite loop
A null IE in the bss entry was causing a busyloop in the
cds-mc-thread.

Change-Id: Ia8bc11f7ee31b2be48d6f1fd9cfb50bc6e49c0c3
CRs-Fixed: 2043510
2017-07-05 22:12:09 -07:00
Naveen Rawat
81f058cf6a qcacld-3.0: Fix IE length in function sme_get_beacon_frm
Fix IE length in function sme_get_beacon_frm.

Change-Id: Iaec7f14e0e2c9078037fbbb586d9d0ac64b4e0de
CRs-Fixed: 2055891
2017-07-03 19:09:33 -07:00
Naveen Rawat
247a868164 qcacld-3.0: Program num tx chains for 11abg to FW
Program num tx chains for 11abg FW via pdev params. This will
help enhance power save in firmware.

Change-Id: I1f5815f2914f65928f8f3d72e53d409ecf6d1fe7
CRs-Fixed: 2056531
2017-07-03 19:09:32 -07:00
Sreelakshmi Konamki
df43ff8c80 qcacld-3.0: Remove key debug logs
wlan_hdd_cfg80211_set_key_wapi() and sme_roam_set_key() prints
key information in default host logs.

Fix to remove debug logs which prints sensitive key information.

Change-Id: Ib71da962761f9b6b5fd8ba214676b649529bcaa7
CRs-Fixed: 2058305
2017-07-03 15:40:07 -07:00
Sandeep Puligilla
e64099d67f qcacld-3.0: Don't serialize IPA stats request
SME queue is getting overflow due to IPA
stats request which gets posted at every 100ms.

Don't process IPA stats request in cds thread
context instead call wma API in the worker thread
context.

Change-Id: Id1ae20a1256ecd7ee43c2e3ebf50a14dc22e6714
CRs-Fixed: 2047462
2017-06-30 15:50:19 -07:00
Naveen Rawat
8029a40b49 qcacld-3.0: Update beacon template from sme update config API
Currently sme_update_ht_config only update csr_session and sends updated
params to FW via VDEV_PARAM command. Same is not reflected in pe_session
and beacon template. Update beacon params in LIM by sending param update
message to LIM.

Change-Id: I1f926b4d2d5467c7702e03ff281879529c89f6f5
CRs-Fixed: 2055347
2017-06-29 19:45:42 -07:00
lifeng
21b7b8bd49 qcacld-3.0: Change ssidHidden variable type as tHiddenssId enum
Change ssidHidden variable type as tHiddenssId enum instead of
original boolean type in tagCsrSSIDInfo structure to backup the
value from hdd (eg: eHIDDEN_SSID_NOT_IN_USE, eHIDDEN_SSID_ZERO_LEN,
eHIDDEN_SSID_ZERO_CONTENTS).

Change-Id: Ibc88c80856984b1b61e2fbe489219b391900dad3
CRs-Fixed: 2065342
2017-06-29 19:45:39 -07:00
Krunal Soni
c3c8b8b34f qcacld-3.0: Add NULL check before passing VDEV object
VDEV object has not been checked against NULL value before passing as
part of message to a next layer

CRs-Fixed: 2063561
Change-Id: I9c7ad08f1e201779cb433044a1525555a2ccaa34
2017-06-29 19:06:00 -07:00
Jeff Johnson
6136fb90e2 qcacld-3.0: Add WMA FIPS infrastructure
As part of the support for the FIPS certification feature add the
WMA infrastructure.

Change-Id: I7e113cee8ba9a08c2efd1141bef84e43d530cdcb
CRs-Fixed: 2065002
2017-06-29 19:05:56 -07:00
Will Huang
03b54ee905 qcacld-3.0: Avoid using pointer without NULL check
Fix static analyze issues which cause is may dereference NULL
pointer, adding NULL pointer check or using already checked pointer.

Change-Id: Ib3a1f5214da839cd2bec4ffee16e0809095fa513
CRs-Fixed: 2058073
2017-06-29 18:25:31 -07:00
Ravi Kumar Bokka
05c14e5c50 qcacld-3.0: Auto Detect SoC Power Collapse Failure changes
Add host support for detecting SOC power collapse failures in FW and
communicating the same to framework.

Change-Id: Icee39c896802c4d7136e0b8ef442a33feeb4799c
CRs-Fixed: 1112979
2017-06-27 22:13:09 -07:00
Deepak Dhamdhere
828f189328 qcacld-3.0: Add support for PMKID modes of PMK caching and OKC
Convert the boolean variables used for tracking okc_enable into
separate bit flags for OKC and PMK caching. Firmware will also
add support for bitwise enablement of OKC and PMK caching in 802.11i
configuration part of RSO command.

CRs-Fixed: 2004963
Change-Id: Ib2fcdc6318adb488eca5cf47b2b59541020e6009
2017-06-26 11:58:01 -07:00
lifeng
66831666b4 qcacld-3.0: Add vendor attr to get rx aggregation statistics
qcacld-2.0 to qcacld-3.0 propagation

By setting the corresponding parameters: reorder timeout and window size
to FW, the host will deliver information about aggregation of the packets
on RX to upper layer.

Change-Id: I404d56d8d9ca3e90f8d1dee28abd80d784924901
CRs-fixed: 1078111
2017-06-23 13:42:16 -07:00
Srinivas Girigowda
af0173e171 qcacld-3.0: Fix compile warnings and reduce log levels
Fix compile warnings and reduce log levels.

Change-Id: Ic4ed8c3f46da2ae1514e2bd6792638b62f7f2397
CRs-Fixed: 2024274
2017-06-22 13:37:56 -07:00
Naveen Rawat
c921c7b2cc qcacld-3.0: Add check for set_ft_ies buffer length
Add check for buffer length in function sme_set_ft_ies.

Change-Id: I7adc56e23316c0ceb193a5bdf8c4c0b5f4fbd20a
CRs-Fixed: 2055659
2017-06-22 13:37:55 -07:00
Selvaraj, Sridhar
0641fabce5 qcacld-3.0: Add INI to configure min rssi for roamable AP in PER Roam
Add INI "gper_min_rssi_threshold_for_roam" to configure the minimum
RSSI required for AP candidate to roam in PER based roaming.

Change-Id: I5549c44d2dffb20e92923d3b62e08b94b7a87c9d
CRs-Fixed: 2048414
2017-06-22 03:58:05 -07:00
Selvaraj, Sridhar
81ab80dfb1 qcacld-3.0: Keep bssDescription at the end of tSirSmeJoinReq struct
Move bssDescription to the end of tSirSmeJoinReq since bssDescription
has ieFields at its end which would be corrupted if we dont keep it
at the end of bssDescription. This results in not detecting the IE's
properly after assoc response processing, not setting wpa_rsn flag
in PEER_ASSOC_CMD to fw. The subsequent LFR3 roam if happens in fw
fails because of this.

Keep bssDescription at the end of tSirSmeJoinReq struct and other
structs where bssDescription is used.

Change-Id: I7096f7da0a475b0c63078f3c77fba240a41dfb00
CRs-Fixed: 2058223
2017-06-21 22:33:33 -07:00