Commit Graph

972 Commits

Author SHA1 Message Date
Abhishek Ambure
7470976006 qcacld-3.0: Refactor vdev create code
Refactor vdev create code to target_if common code. Remove legacy
code for vdev create.

Change-Id: I57caf0c5fa2da7b6ba640a9d2edb72363959c585
CRs-Fixed: 2460786
2019-08-05 10:55:23 -07:00
hqu
5af7254cec qcacld-3.0: Remove operationChannel from tagCsrRoamConnectedProfile
Remove operationChannel from structure tagCsrRoamConnectedProfile,
remove the code where value assigning to operationChannel take place.

Change-Id: If6c034e39c63fd78e6f08ff3daa85e0432438cff
CRs-Fixed: 2499775
2019-08-02 00:43:36 -07:00
wadesong
24c869aa97 qcacld-3.0: Replace channel list with freq list
1) freq_list value population:

   Allocate memory for freq_list within tagCsrChannelInfo
   whenever ChannelList is allocated for the same struct.

   Populate channel frequencies into freq_list whenever
   ChannelList is populated for the same struct.

   Free the memory used by freq_list whenever ChannelList's
   memory is to be freed for the same struct.

2) Special treatment for sme_rrm_send_scan_result:

   To ease the freq_list population within function
   sme_rrm_send_scan_result, a parameter(freq_list) has
   been added into the parameter list of it.

   Meanwhile, all callers of the same function have been
   modified to pass freq_list to it.

3) Fix a number of camel cases detected by checkpatch.

Change-Id: I732b084d3e1edfc4f26e7ed44be1c6e826be8602
CRs-Fixed: 2496716
2019-07-30 16:22:52 -07:00
Arun Kumar Khandavalli
6ba1569220 Revert "qcacld-3.0: Create lim session for monitor mode for legacy targets"
The change 2812433 needs revert it got merged with still some
pending comments.

Change-Id: I4555d60bf0c8cea1b3a812063ee24956b07c0d8b
CRs-Fixed: 2499426
2019-07-30 10:55:40 -07:00
Arun Kumar Khandavalli
88709de4cb qcacld-3.0: Create lim session for monitor mode for legacy targets
For the latest chipsets because of architecture change the
lim session for monitor mode is not required but for the
older chipsets using the mainline the lim session has to be created.
If the session is not created the channel setting to capture
the packets on the monitor interface fails.

Create the monitor session in lim for older targets.

Change-Id: Ide44201e91c2d92cddff66f563898015f9e28ca7
CRs-Fixed: 2498775
2019-07-29 11:23:06 -07:00
Jianmin Zhu
5ce64f48cd qcacld-3.0: Replace channel list with freq list
Add freq_list in tagCsrChannelInfo to replace ChannelList
Add APIs to translate between channel list and freq list

Change-Id: I2f086d9371e2ec928bbb47aa2be91d65a206f4d6
CRs-Fixed: 2492624
2019-07-26 06:12:21 -07:00
hqu
c7075af31c qcacld-3.0: Add op_freq in tagCsrRoamConnectedProfile
Add op_freq in tagCsrRoamConnectedProfile. Finally remove
operationChannel from tagCsrRoamConnectedProfile in next
few changes.

Change-Id: Ie9be4b59483412866d915448b33f8cb6cc9e2d7c
CRs-Fixed: 2489893
2019-07-22 09:17:35 -07:00
hqu
7b2aef50f2 qcacld-3.0: Add op_freq in csr_roam_profile
Add op_freq in csr_roam_profile. Finally remove
operationChannel from csr_roam_profile in next
few changes.

Change-Id: I7a3d7fe7e77b18424f487429aaa19ca1a97b8aba
CRs-Fixed: 2489914
2019-07-21 22:04:46 -07:00
Paul Zhang
da2970b777 qcacld-3.0: Add OEM DATA vendor command support
This command is used to send OEM data binary blobs
from application/service to firmware.

Change-Id: I0b5d7dd5a030b70e59c8581fb51d99079b38385f
CRs-Fixed: 2477332
2019-07-11 00:52:04 -07:00
Ashish Kumar Dhanotiya
1ac4188eb5 qcacld-3.0: Remove legacy implementation of stats event handler
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure and for this
target_if_mc_cp_stats_stats_event_handler is getting used.

Remove legacy implementation of stats event handler
wma_stats_event_handler and related APIs.
With this change remove unused structures also.

Change-Id: I9a892b5f7486a406654256fc2cc8177f2fafe790
CRs-Fixed: 2481937
2019-07-08 14:16:50 -07:00
Srinivas Dasari
d4e8725828 qcacld-3.0: Send disconnect IEs received in deauth/disassoc to kernel
AP may send IEs in deauth/disassoc frames as part of disconnection.
Extract the same and forward to kernel through
cfg80211_disconnected().

Change-Id: I4ef339dcd1ecff64d6bed1de35621ecce5d8030a
CRs-Fixed: 2481912
2019-07-05 17:28:02 -07:00
Srinivas Dasari
37e3731d4a qcacld-3.0: Get disconnect IEs and cache in vdev mgr object
Application sends disconnect IEs to driver through vendor command
SET_WIFI_CONFIGURATION by embeding in the attribute
QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES. Extract the same and validate
to make sure it's not more than maximum IE length that can be
accomodated in deauth/disassoc frame. Cache the extracted IEs
in mlme vdev object.

Change-Id: I6c95aa1d4d8ef7d8ed3ad5be8832ef1f45c26a2f
CRs-Fixed: 2481908
2019-07-05 17:27:52 -07:00
Ashish Kumar Dhanotiya
897a46ba59 qcacld-3.0: Remove legacy implementation of get station api
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for get station stats api
as part of cleanup.

Change-Id: Iadc7fceccec32e7a27c29872fb13c03f79208965
CRs-Fixed: 2480770
2019-07-05 10:26:13 -07:00
Ashish Kumar Dhanotiya
30ec2959d5 qcacld-3.0: Remove legacy congestion stats implementation
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for congestion stats command
as part of cleanup.

Change-Id: Ia8b919ad7cea4f47d5480b9f8e0f4636783ce6c3
CRs-Fixed: 2480246
2019-06-29 10:56:46 -07:00
Ashish Kumar Dhanotiya
af3f36587a qcacld-3.0: Remove legacy get rssi command implementation
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for get rssi command as part
of cleanup.

Change-Id: I7a837d780c6a1551db0929e6ec7e73daaf479429
CRs-Fixed: 2480770
2019-06-29 10:56:42 -07:00
Pragaspathi Thilagaraj
7fb14221a5 qcacld-3.0: Rename selfMacAddr
Linux coding guidelines don't allow use of camel case identifiers.
So rename selfMacAddr to self_mac_addr to be in compliance.

Change-Id: Id70e00744883f9fd797da8d4bb1cf4f65c8aa9ff
CRs-Fixed: 2463827
2019-06-19 06:35:35 -07:00
Pragaspathi Thilagaraj
2071e3380e qcacld-3.0: Disable LFR2 for cld-3.2 mainline
Disable LFR2 in cld-3.2 mainline as roaming is offloaded
to firmware in LFR3. Also fix linker issues with lfr2 disabled.
Featurize LFR2 properly with adding correct header files
and bringing LFR2 only functions under WLAN_FEATURE_HOST_ROAM
compile time flag.

Change-Id: Iac81b693feaab503d371753a4d16cc3e70df2a87
CRs-Fixed: 2459786
2019-06-18 07:51:20 -07:00
Abhinav Kumar
e85ae55537 qcacld-3.0: Handle BEACON_REPORTING_DO_NOT_RESUME vendor attribute
Optionally set by userspace to request the driver not to resume
beacon reporting after a pause is completed, when the
QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_OP_TYPE is set to
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START.

If this flag is set, the driver will not resume beacon reporting
after beacon reporting pause is completed. Userspace has to
send QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command again in order
to initiate beacon reporting again.

If this flag is set in the recent
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command, then in the
subsequent QCA_WLAN_VENDOR_BEACON_REPORTING_OP_PAUSE event (if any)
the QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_AUTO_RESUMES shall not be
set by the driver.

Change-Id: I371a218cb513dcb077b7df675c549818c2b657b2
CRs-Fixed: 2466480
2019-06-18 07:51:15 -07:00
Abhinav Kumar
8475bc3f61 qcacld-3.0: Allow fw to send all beacons of connected AP
In order to process QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING
vendor command, driver sends remove beacon filter cmd to fw to
allow fw to send all beacons of connected AP to driver.
But in some cases fw may wakeup host in wow mode.
To avoid these cases, with this change beacon reporting feature
will use WMI_VDEV_PARAM_NTH_BEACON_TO_HOST
command to FW instead of WMI_RMV_BCN_FILTER_CMDID
With WMI_VDEV_PARAM_NTH_BEACON_TO_HOST, in case of active reporting,
fw should send all beacons of connected AP to HOST
and also no wakeup of driver should happen in wow mode.

Change-Id: I9d0e255a6d4accb523bf4613146574239e7e0d09
CRs-Fixed: 2471627
2019-06-18 07:51:10 -07:00
Jinwei Chen
bdd977f0c2 qcacld-3.0: delete pe_session for monitor mode when iface down
Delete pe_session for monitor mode when do interface down operation.

Change-Id: I18f58906a3cff3af68558a37c2f4b3f67a8cdd22
CRs-Fixed: 2471736
2019-06-17 22:25:14 -07:00
Abhishek Singh
fc0c4245a4 qcacld-3.0: Fix command timeouts for VDEV stop and PEER assoc/delete
Command timeouts for VDEV stop and PEER assoc/delete is 2 sec, which
doesn't consider delays in scheduling.

To consider scheduling delays set these values to 4 sec and change
the serialization and HDD timeouts accordingly.

Change-Id: Ifc8ca857727a7e73bbae586c0728816024f1c687
CRs-Fixed: 2472122
2019-06-17 18:24:26 -07:00
guangde
4853c40d31 qcacld-3.0: Add get antenna isolation command
Propagation from qcacld2.0 to qcacld3.0.
The WMI CMD and EVENT of "get antenna isolation" are already defined,
but not used before in qcacld3.0.
Now, The host driver uses vendor command to get this information
instead of iwpriv command in qcacld-2.0.
The attribution of this feature is already defined in file
"qca_vendor.h". The name is "QCA_WLAN_VENDOR_ATTR_ANTENNA_ISOLATION".
So host driver will use vendor command
"QCA_NL80211_VENDOR_SUBCMD_GET_HW_CAPABILITY" to get the information
from lower layer.

Change-Id: I915768f622ddc9a70a95ce4fe952f19917a8f901
CRs-Fixed: 2447360
2019-06-14 01:49:41 -07:00
Pragaspathi Thilagaraj
7a1a08e6b6 qcacld-3.0: Replace typedef eCsrAuthType
eCsrAuthType is the enum of AKMs to be used during connection.
So the name eCsrAuthType is misleading as akm and auth algo are
different.
Also the Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the enum eCsrAuthType to
be compliant.

Change-Id: I35e18d1f84babd0ef2928ae9d7258028d4c9b3c5
CRs-Fixed: 2463813
2019-06-08 06:29:25 -07:00
Pragaspathi Thilagaraj
469495ba47 qcacld-3.0: Rename pMsgBuf identifier
The Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the pMsgBuf to be
compliant.

Change-Id: Ia28e9e8ce69c7fbb6853278ccdb12e722ec24e06
CRs-Fixed: 2463442
2019-06-07 11:38:56 -07:00
Pragaspathi Thilagaraj
d48e6cd463 qcacld-3.0: Rename statusCode identifier
The Linux Coding Style doesn't allow mixed-case names and
so-called camelcase notation, so rename the statusCode to be
compliant with the coding style.

Change-Id: I98e0af710401a9718bdc1402617253eb970c5861
CRs-Fixed: 2463825
2019-06-07 07:05:35 -07:00
Pragaspathi Thilagaraj
96742aed1e qcacld-3.0: Rename CSR/SME identifier pBssDesc
The Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the identifier pBssDesc
to be compliant.

Change-Id: I0980de75bbaaeb1eee9321621da1f3ff90e09188
CRs-Fixed: 2463446
2019-06-07 07:05:30 -07:00
gaurank kathpalia
7ef7218496 qcacld-3.0: Add support for roaming in case of NUD failure
Add support for roaming in case the driver
detects a nud failure. The STA then would roam
to another BSSID, else if the roaming gets failed
the STA would remain connected to the same BSSID
as connected before.

Change-Id: Idbc99b0ce2f9cacd97564dd8cf9892120958eda2
CRs-Fixed: 2461675
2019-06-02 01:51:38 -07:00
gaurank kathpalia
3ebc17b3e5 qcacld-3.0: Link BLM to the legacy APIs
Link BLM exposed APIs to the following:-

1. csr_get_scan_result:- Link this API with filter bssids in
the reject ap list maintained by the blacklist mgr.

2. lim_assoc_rej_add_to_rssi_based_reject_list:- Link this API
with the the blacklist mgr add bssid to reject list to add the
OCE and BTM related assoc rejects.

3. Userspace avoid list parsing logic for the userspace to set
the BSSID as avoided.

Change-Id: Id51ffb80cea3f845fefe14db25d0f7acda6ea0f3
CRs-Fixed: 2461281
2019-06-02 01:51:34 -07:00
Pragaspathi Thilagaraj
1112c96ef5 qcacld-3.0: Replace typedef tSirBssDescription
The linux coding style forbids use of typedef unless clearly
some rules are met. The tSirBssDescription doesn't match any of
those criteria, so replace it with underlying structure
bss_description.

Change-Id: I36ad517325117cf04d499c7c472ca6ef5921a85d
CRs-Fixed: 2459769
2019-05-27 15:33:37 -07:00
Pragaspathi Thilagaraj
afd0a48d1c qcacld-3.0: Rename pe_session member eSirBssType
The Linux Coding Style doesn't allow mixed-case names so rename
eSirBssType in struct pe_session to be in compliance.

Change-Id: Iafe6649a130c77064180c67fb1385d2d7a763370
CRs-Fixed: 2459767
2019-05-27 06:07:09 -07:00
Abhishek Singh
bb9deb4ae0 qcacld-3.0: Release vdev ref and delete pending peers in wma close
In hdd_vdev_destroy, if policy_mgr_check_and_stop_opportunistic_timer
decides to move to single mac mode and while sending the HW mode change
the target goes down, this leads to timeout of the HW mode change req in
WMA layer which is 2 sec and in serialization its 4 sec, but
policy_mgr_check_and_stop_opportunistic_timer timeout in 1 sec and proceed
to sme_close_session and wait for it to complete.

sme_close_session queue WLAN_SER_CMD_DEL_STA_SESSION to serialization but
it remains in pending queue, behind HW mode change req.

Now due to SSR the wait event for sme_close_session is set and thus
hdd_vdev_destroy logically deletes the vdev.

Now on WMA timeout the HW mode change try to remove the request from
serialization which it fails to remove as it fails to get ref for vdev
with vdev being logically deleted.

Thus WLAN_SER_CMD_DEL_STA_SESSION is not processed and is flushed in
hdd_wlan_shutdown.

Thus as SSR WLAN_SER_CMD_DEL_STA_SESSION is flushed from serialization
queue, the wma_vdev_detach() is not called for that vdev and thus the
peer attached to the vdev are not deleted and wma vdev ref is also not
released, this lead vdev/peer ref leak.

To fix this update the wait timeout in
policy_mgr_check_and_stop_opportunistic_timer with proper value higher
than the serialization timeout for the HW mode change request. ALso
set the wait event in policy_mgr_pdev_set_hw_mode_cb in failure cases
as well to avoid timeout in case of hw mode change failures.

Also release pending peer and vdef refs in wma_wmi_service_close.

Change-Id: I5ddf8263b0dbf889be506332a67f5e18c1bfb111
CRs-Fixed: 2458034
2019-05-24 23:13:17 -07:00
Abhinav Kumar
392221599a qcacld-3.0: Process vendor cmd for BEACON_REPORTING_OP_STOP
Userspace request driver to report details of each beacon
received whose bssid is same as currently connected BSS's
mac address. The driver encapsulates the details of these
beacons as an asynchronous event within vendor command:
QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING with operation
type QCA_WLAN_VENDOR_BEACON_REPORTING_OP_STOP until
userspace requests to stop sending beacons.

When driver gets stop indication from userspace, it does
the following things:
1. De-register all callback which is registered while handling
start indication
2. Add beacon filter and send it to fw

If driver is in WOW mode and WMI_ADD_BCN_FILTER_CMDID is
NOT configured, fw wakeup HOST and sends connected AP beacon.
Fw should not wakeup host if host is in wow mode. In order
to support this, configure WOW_BEACON_EVENT for STA and P2P.

Change-Id: Ie7c768fa957d02e1361e1ecb95435ba3f06034b0
CRs-Fixed: 2431360
2019-05-23 09:30:32 -07:00
Abhishek Ambure
7acc2c1609 qcacld-3.0: Cleanup VDEV_SM legacy code
Legacy code of VDEV SM is no more used, hence this cleanup is done.

Change-Id: I8dc649639c4c1afb4ae206a046fe530e172bced9
CRs-Fixed: 2454039
2019-05-17 16:21:48 -07:00
Pragaspathi Thilagaraj
0f81a6a4b3 qcacld-3.0: Fix compilation issue with CONFIG_QCACLD_WLAN_LFR2 disabled
With feature flag for LFR2 disabled, there is compilation
failure in the wlan host driver.

Fix the compilation issues.

Change-Id: Ic21ccd0b313c6690c72a6546eba30c1ecb306cb0
CRs-Fixed: 2453298
2019-05-16 14:46:06 -07:00
sheenam monga
6e49e5c314 qcacld-3.0: Add roam_reason in roam auth event
Currently, there is no information for roam reason
in hdd.

Fix, Handle roam reason recived from csr, print roam
reason and add roam reason in roam auth event.

Change-Id: Ib9188cb443fa81307fe23d73cce09f7c23bc7a41
CRs-Fixed: 2425910
2019-05-16 05:57:17 -07:00
Abhishek Singh
b5c73a475c qcacld-3.0: Cleanup sme_scan_flush_result to use cmn scan API
Cleanup sme_scan_flush_result and csr_scan_flush_result to
use ucfg_scan_flush_results API to flush scan results.

Change-Id: If4ee6c56662d8b214c3b15325a5aef83c449d7c0
CRs-Fixed: 2450775
2019-05-13 03:31:26 -07:00
Abhinav Kumar
0ed614c1c9 qcacld-3.0: Send scan start indication to userspace
If firmware starts off-channel scan, driver does not
receive beacons. In this case driver should send a
pause event to userspace.

Change-Id: I90ba5c586656486df110778b73b236e5877f8684
CRs-Fixed: 2431359
2019-05-10 19:07:05 -07:00
Abhinav Kumar
4d1f9f442d qcacld-3.0: Send connected AP beacon data to userspace
Once driver gets QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING vendor
command with an attribute for start, firmware sends all
beacons to host for the connected peer. Host extract required info
(SSID, BSSID, Channel number, Beacon Interval, Timestamp, System
timestamp) from incoming beacon for connected AP and sends it to
userspace. Userspace needs this data for WIPS.

Change-Id: I9d6dd068a076bda79881043946be3133ee87fe84
CRs-Fixed: 2431354
2019-05-10 19:07:01 -07:00
Abhinav Kumar
dbbfd2c3ff qcacld-3.0: Support asynchronous beacon reporting feature
Add new vendor cmd : QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING.
This subcommand is used to implement asynchronous beacon
reporting feature. Userspace can request driver/firmware to
report details of each beacon received whose bssid is same as
currently connected BSS's mac address. The driver will encapsulate
the details of these beacons as an asynchronous event within this
command id until userspace requests to stop sending beacons.

Change-Id: I9a32fe5431767b077983c7db90a2f825709f368c
CRs-Fixed: 2431351
2019-05-10 19:06:56 -07:00
Min Liu
d35ae31641 qcacld-3.0: Fix stats ext callback deregistration
In hdd_deregister_cb, wlan_hdd_cfg80211_stats_ext_callback should
be deregistered instead of registered.

Change-Id: Ib7051aeb4579e2573b1b1845601aee07f596bcbc
CRs-Fixed: 2449023
2019-05-10 16:28:16 -07:00
gaurank kathpalia
d778617b39 qcacld-3.0: Use acs scan request timestamp in scan req
Currently the driver flushes all the scan results during
ACS request, and then scans the specific channels as
mentioned in the request, which leads to a scan again
for the STA interface as no scan results are available.

Fix is to have a timestamp, and get only the latest scan
results, instead of the scan database flush.

Change-Id: Icc343fcca77fb7074071ca1d467947ef70fd1930
CRs-Fixed: 2446490
2019-05-09 04:59:02 -07:00
gaurank kathpalia
efb20a8901 qcacld-3.0: Provide assoc req, rsp IE to kernel in assoc fail case
Currently the driver does not sends the assoc req and assoc
response frame exchanged with the AP if the connection attempt
fails with the peer.
The connection failure can be because of n number of reasons,
OCE assoc reject be one of them.
The supplicant requires these IEs to reject the connection
attempt with the AP with which the connect attempt failed
for t number of seconds, which is mentioned by the AP.

Fix is to send the assoc req, and assoc response IEs to
the driver.

Change-Id: I9c1f7063105912a8005f9e8399640d028b15eec7
CRs-Fixed: 2445709
2019-05-08 04:46:52 -07:00
Pragaspathi Thilagaraj
1f3f99fd1f qcacld-3.0: Add support for adaptive 11r
Adaptive 11r feature that enables the AP to support FT-AKM
without configuring the FT-AKM in the network. The AP will
advertise non-FT akm with a vendor specific IE having Adaptive
11r bit set to 1 in the IE data. The AP also advertises the
MDE in beacon/probe response.

The STA should check the adaptive 11r capability if the AP
advertises MDE in beacon/probe and adaptive 11r capability in
vendor specific IE.  If adaptive 11r capability is found,
STA should advertise the FT equivalent of the non-FT AKM.

Introdue a compile time flag WLAN_ADAPTIVE_11R_ENABLED to
enable/disable adaptive 11r support.

If the AP is adaptive 11r capable, set the is_adaptive_11r_ap
flag in bss descrtiptor. This flag will be sent in join request
and populated to pe_session. Also mark the CSR session as
adaptive 11r session based on this flag.

Add changes to check for the adaptive 11r service capability
advertised by firmware. If the host driver connects to adaptive
11r AP, enable RSO only if the firmware advertises adaptive
11r capability, else RSO should be disabled.

If the connection is adaptive 11r connection and if the adaptive
11r ini is enabled, set the adaptive_11r flag in
wmi_roam_11r_offload_tlv_param sent over the wmi command
WMI_ROAM_SCAN_MODE to the firmware. This will enable firmware to
filter the adaptive 11r AP from roam scan results.

Change-Id: If27a2393e3f4bb68942f5ebcec0135f57627f16b
CRs-Fixed: 2437988
2019-05-02 08:15:49 -07:00
Ashish Kumar Dhanotiya
9d9816952c qcacld-3.0: Add support to cache peer rssi and mc_bc count
Use updated cp stats component to get peer rssi and tx rate,
rx rate for big data logging as legacy infrastructure is
deprecated.
Additionally add support for RX multicast broadcast packets from FW.

Change-Id: Idcab4a022a4e7e34bd15878f95ad8248ca3aa9dd
CRs-fixed: 2428582
2019-05-01 10:18:15 -07:00
Pragaspathi Thilagaraj
eb367282fd qcacld-3.0: Handle wmi_key_material_ext tlv of ROAM_SYNCH event
With current design, firmware sends the kck, kek and replay
counters as part of wmi_key_material tlv over the
WMI_ROAM_SYNCH_EVENTID event. But the maximum supported kck key
length in wmi_key_material was 16 bytes. But for FT Suite-B
(akm 00:0f:ac:13), the kck_bits is 24 bytes long and cannot be
sent over wmi_key_material. So firmware sends kck, kek and
replay counter values over the new tlv wmi_key_material_ext.

Host driver copies the kck key with fixed 16 byte length to the
upper layers. Introduce kck_length parameter in csr_roam_info
and roam_offload_synch_ind structures and copy kck based on this
length.

Also fix maximum number of AKM suites supported to 5, as some
certification test cases advertise 5 akms.

Change-Id: Iab050e3e3f7efead8070a02094998d15f7ffcbd0
CRs-Fixed: 2400770
2019-04-24 20:23:59 -07:00
Vignesh Viswanathan
687af4646e qcacld-3.0: Use the operating class table no for AP's country IE for RRM
Currently when an RRM scan is issued for beacon report request from the
connected AP, we use the current scan country code to get the op class
table for the country.

However, the AP can specify which table to use in the country IE's 3rd
byte of the country field which is not parsed and stored in the scan
country code.

For RRM Scan for beacon report request, use the 3rd byte to get the table
number from the connected AP's beacon and if no table number is present,
then use the op class table based on the country code.

Change-Id: I0911ac908d1c71676f7c1450ab260eaa732ddcb9
CRs-Fixed: 2435942
2019-04-21 00:19:49 -07:00
Pragaspathi Thilagaraj
6695ba9181 qcacld-3.0: Handle assoc IE update sent from userspace
The host driver handles update connect params sent from
userspace and updates the FILS auth type or FILS Erp info based
on the UPDATE_FILS_AUTH_TYPE(2) or UPDATE_FILS_ERP_INFO(1) bit
set in the changed flag.

Handle the association IE update sent from userspace also.
UPDATE_ASSOC_IE(bit 0) will be used to check if assoc IE needs
to be updated. This assoc IE should be sent to firmware. MBO IE
is updated as part of this IEs from the WNM action frame
received by the userspace when setting non preferred channel list
from the AP. If host driver fails to update these IEs to
firmware, MBO IE will not be sent in reassociation request frame
and MBO testcases will fail.

Parse the assoc IE into hdd_adapter->roam_profile. If
parse and validation is successful, copy the assoc IE into
csr_roam_session of the corresponding vdev. Send RSO update
command to firmware, with updated assoc IEs.

Also currently the driver registers update_connect_params
event only if FILS compile flag and UPDATE_CONNECT_PARAMS
flag is enabled. Exclude FILS flag check from this conditional
condition and check only for UPDATE_CONNECT_PARAMS.

Change-Id: I29fadebc9a7fc43937b805f0f041bb86ddf85cbd
CRs-Fixed: 2429665
2019-04-08 15:35:56 -07:00
Jeff Johnson
e94ccd0d66 qcacld-3.0: Rename sme_config_params member csrConfig
The Linux Coding Style frowns upon mixed-case names so rename
csrConfig in struct sme_config_params to be in compliance.

Change-Id: I451d728c79608041effed09adb199a357c97c0b5
CRs-Fixed: 2428992
2019-04-04 17:35:39 -07:00
Jeff Johnson
dd821156a1 qcacld-3.0: Replace typedef tCsrConfigParam
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tCsrConfigParam typedef does
not meet any of those criteria, so replace it with a reference to the
underlying struct.

Further note the Linux Coding Style frowns upon mixed-case names so in
conjunction rename the underlying struct to be in compliance.

Change-Id: If6f07ced0a8f92ddf06bc40a042efd6584df147b
CRs-Fixed: 2428991
2019-04-04 17:35:33 -07:00
Jeff Johnson
0fd2f4d169 qcacld-3.0: Remove remaining legacy SME TDLS typedefs
As a result of TDLS componentization the following SME TDLS typedefs
are no longer used, so remove them:
- tSmeTdlsPeerCapParams
- eSmeTdlsPeerState
- tSmeTdlsPeerStateParams
- sme_tdls_chan_switch_params

Change-Id: I6e857aedcbfe7c422425076aeac8c9b882be7513
CRs-Fixed: 2428990
2019-04-04 17:35:28 -07:00