Commit Graph

1052 Commits

Author SHA1 Message Date
gaurank kathpalia
318006772b qcacld-3.0: Verify the channel and BW info in monitor mode
Currently the monitor mode does not check the chan
validity and BW validity before starting the monitor
mode vdev which could result in invalid configuration
given to FW and thus further can lead to assert.
Eg. If the command comes for an invalid channel, or
suppose 160 MHZ and the device supports 80 MHZ only
then it can lead to assert.

Fix is to verify the channel and BW info and reject
the command if found invalid.

Change-Id: Iaf9f06f8d4b943bd1e8db5c22ea155a4fe3e61a8
CRs-Fixed: 2572152
2019-12-03 22:48:17 -08:00
Jianmin Zhu
a9c1b38b62 qcacld-3.0: Failed to add PMF required AP into LFR3 channel map
PMF info isn't filled in scan filter when find AP in scan
cache to build LFR3 channel map.

Change-Id: Ibacf0ee6534298415f97fc42e5223b7d85f203e0
CRs-Fixed: 2571777
2019-12-02 22:36:47 -08:00
Abhishek Singh
f37d49f5b4 qcacld-3.0: Rename sessionId of struct tagSmeCmd to vdev id
Rename sessionId of struct tagSmeCmd to vdev id

Change-Id: I3b0d9c1f7e173e4f45bd3d0a29df6ab7dd0de64d
CRs-Fixed: 2575198
2019-12-01 17:40:42 -08:00
Sourav Mohapatra
2a67b0ed24 qcacld-3.0: Add driver command to request ANI level
The ANI level determines how well the device is coping with interference
in the wireless environment. Add support in the driver to query the ANI
level from the firmware and populate it for userspace entities to use.

Change-Id: I54934f670aa11737e11eca4d64e12f9dffb4f430
CRs-Fixed: 2554674
2019-11-26 05:30:13 -08:00
Abhishek Singh
f554e7a205 qcacld-3.0: Remove unused csr serialization APIs
Remove unused csr serialization APIs.

Change-Id: I80b126abbb3c52aa854343dcad6834835ae53038
CRs-Fixed: 2573395
2019-11-26 05:30:00 -08:00
Abhishek Singh
5a2c42f803 qcacld-3.0: Replace smeSessionId with vdevid in SME, HDD and WMA
Replace smeSessionId with vdevid in SME, HDD and WMA files.

Change-Id: I3b2f5dd08dac2d107f89762cd763a032b4867d16
CRs-Fixed: 2569192
2019-11-22 07:12:28 -08:00
Arun Kumar Khandavalli
4f6a5bd519 qcacld-3.0: Send vdev create to fw from object create notification
Send vdev create to firmware when the mlme vdev create handler
is invoked as part of the vdev object create.

Change-Id: Ibba02f6b5885d7b3a62529ef51768f520395513e
CRs-Fixed: 2555943
2019-11-21 09:13:20 -08:00
Arun Kumar Khandavalli
add284b880 qcacld-3.0: check for duplicate session before vdev create
Check for any duplicate peer with the same mac address before
the vdev is created.

Change-Id: Ie6d71b7b2892ab2ac6e8bfb37c99f20f0854c2f2
CRs-Fixed: 2555932
2019-11-21 00:44:54 -08:00
wadesong
a8940a2ddf qcacld-3.0: Convert HDD/SME/CSR legacy channel ID usage
1) Change the following functions' signatures and/or code
   to make them using frequencies instead of channel IDs:

   hdd_get_adapter_home_channel
   hdd_get_operating_channel
   wlan_hdd_request_pre_cac
   wlan_hdd_validate_and_get_pre_cac_ch
   __wlan_hdd_request_pre_cac
   hdd_check_and_disconnect_sta_on_invalid_channel
   set_first_connection_operating_channel
   sme_is_channel_valid
   csr_roam_is_channel_valid

2) Remove the declaration, definition and usage of
   csr_roam_is_chan_freq_valid, and replace it with
   csr_roam_is_channel_valid as this API does exactly
   the same thing.

3) Retain the code/logic for chan ID utilization in
   function set_first_connection_operating_channel as
   it is used to convert the parameters issued by
   user space apps.

4) Fix a few camel cases in csr_api_roam.c

Change-Id: I4f9cfa21a5f40288ad9492ac8be7939ed8eb6484
CRs-Fixed: 2565002
2019-11-21 00:44:43 -08:00
Jianmin Zhu
5d162769f5 qcacld-3.0: Convert SME code legacy channel ID usage
Remove usage of sme_freq_to_chan_list from:

csr_neighbor_roam_get_scan_filter_from_profile
sme_rrm_send_scan_result

Change-Id: I67f968c306d31f1e17cc9434274f65600cb39b02
CRs-fixed: 2561229
2019-11-18 10:32:19 -08:00
Arun Kumar Khandavalli
dac7a45e2d qcacld-3.0: Donnot send vdev delete via serialization
Presently vdev delete is sent via serialization, which
needs a vdev reference. With the new FR to send the
vdev delete on the physical destroy in object manager
vdev delete cannot be sent via serialization.

Hence, disable the serialization for the vdev and
donot send the vdev delete via serialization.

Change-Id: I3afa34880ddaab68850ed235ec1451370d82e7dd
CRs-Fixed: 2566120
2019-11-15 16:00:57 -08:00
tinlin
e36cddb56f qcacld-3.0: Convert legacy channel usage
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:

	csr_roam_select_bss

Change-Id: I9c68e173af01d7cb29672179a7bbffb354134f87
CRs-Fixed: 2564011
2019-11-14 23:25:23 -08:00
Arun Kumar Khandavalli
42b4487910 qcacld-3.0: Register Open/close session callbacks once
Open/close session callbacks are common for all the device modes
supported, so register once during the start_modules.

Change-Id: Ia94857ce4cc608be30e9974ddde8a6261d45f6e3
CRs-Fixed: 2555919
2019-11-14 19:25:21 -08:00
Tushnim Bhattacharyya
6c40b112ce qcacld-3.0: Replace channel id with frequency in ecsa indication
Replace channel ID with channel frequency in ecsa indication flow.

Change-Id: I1dd3148566e1da37a6f3fa71f1887e66f87f5d1c
CRs-Fixed: 2555384
2019-11-14 06:00:26 -08:00
gaurank kathpalia
0eddedfcc4 qcacld-3.0: ACS changes for 6ghz
Acs changes for 6ghz to change chan to frequency
in the spectral params structure.

Change-Id: Iffd348ac5c2457b313b702a92b340a258992e764
CRs-Fixed: 2564043
2019-11-13 06:52:43 -08:00
bings
e063e4f155 qcacld-3.0: Convert legacy chan ID usage to chan freq
Modify the following 3 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
   sme_get_reg_info
   wlan_hdd_get_channel_info
   hdd_update_channel_bw_info

Change-Id: I87ad6fb9cd9fcd7fe4e41e62a32e4954e93f8ba1
CRs-Fixed: 2554710
2019-11-12 02:35:14 -08:00
Will Huang
a6af7e1182 qcacld-3.0: Use channel frequency in sme_get_cfg_valid_channels()
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.

Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
2019-11-10 20:41:01 -08:00
Arun Kumar Khandavalli
c13afcd9da qcacld-3.0: Retrieve information from the object manager vdev
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.

Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
2019-11-09 02:26:27 -08:00
Li Feng
ae9c0fa3fb qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:

    csr_is_valid_channel

Change-Id: Ie0c912459daf8bcd907b27a288ad82edd18c22f1
CRs-Fixed: 2554177
2019-11-07 15:16:11 -08:00
Visweswara Tanuku
41d21c04e4 qcacld-3.0: Do not start motion detection if baselining is not done
Do not start motion detection if baselining is not done, or motion
detection config values are not available

CRs-Fixed: 2547648

Change-Id: I23a02dbd21e2b673e625938a35003f3730135327
2019-11-05 04:17:43 -08:00
Abhishek Singh
9fee518fe3 qcacld-3.0: Avoid calling wlan_hdd_set_mon_chan for STA mode
As part of Ie9ffc701d93ed1c050375dd56151b7a0da69cdce the STA mode
channel change was added in disconnected state for spectral scan
test at CV2X platform.

Now with iwpriv wlan0 setMonChan on STA mode, a monitor mode
pe_session is created in PE/LIM which take ref count with
WLAN_LEGACY_MAC_ID. As the interface is STA type this session
is not deleted when vdev is deleted. This lead to vdev ref leak.

This code is broken and is no longer in use and cause vdev
ref leak when executed. Thus revert
Ie9ffc701d93ed1c050375dd56151b7a0da69cdce.

Also move the lim session create to hdd_set_mon_rx_cb during
vdev create, as it is deleted during vdev delete.

Change-Id: Ib60aa2bd2746a8cd17f20efa7506c18784a42630
CRs-Fixed: 2557160
2019-11-02 12:25:34 -07:00
Jianmin Zhu
bc841052ca qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_operation_channel
wlan_hdd_update_survey_info

Change-Id: I90f05cc7fedd061bf08b47299d2fb6530c470136
CRs-Fixed: 2554149
2019-11-01 16:59:38 -07:00
Jianmin Zhu
203d7533f9 qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
   sme_get_roam_scan_channel_list
   drv_cmd_get_roam_scan_channels

Change-Id: I4e6edee71ef25bf73c170813159f5078f0c3e612
CRs-Fixed: 2554148
2019-11-01 12:05:22 -07:00
Liangwei Dong
075afa7922 qcacld-3.0: Use freq for SME roam API
Change below csr/sme APIs and dependent APIs to
use freq as parameter:
csr_create_roam_scan_channel_list,
csr_neighbor_roam_channels_filter_by_current_band,
csr_neighbor_roam_merge_channel_lists,
csr_create_bg_scan_roam_channel_list,
sme_update_roam_scan_channel_list.

Change-Id: Icfc45863d6dacb318558ba75fde111af24256641
CRs-Fixed: 2555688
2019-11-01 02:30:47 -07:00
bings
b1444b30a9 qcacld-3.0: Convert legacy chan ID usage to chan freq
Modify the following 2 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
   csr_get_infra_operation_channel
   sme_search_in_base_ch_lst

Change-Id: I2010aac81a3297d2c274ac9f17784f8f5cbf846e
CRs-Fixed: 2554643
2019-10-30 18:41:02 -07:00
wadesong
2225e56fff qcacld-3.0: Convert SME code legacy channel ID usage
Modify the following 2 APIs' code and parameters to make
sure they're using frequency instead of channel ID:

   sme_get_status_for_candidate
   csr_is_mcc_channel

Change-Id: If721813518caeb87c4de7c3d52ae18fd080cd713
CRs-Fixed: 2554048
2019-10-30 16:51:03 -07:00
Tushnim Bhattacharyya
faa9c0114a qcacld-3.0: Replace channel id with frequency in sap
Replace channel ID with channel frequency in sap for channel
switch flow.

Change-Id: I3e7bf0e6d84604223c1791ccfd3d95d1ff5f2992
CRs-Fixed: 2554468
2019-10-29 16:44:43 -07:00
Liangwei Dong
8c65f23490 qcacld-3.0: Downgrade channel bandwidth for DBS2
In DBS mode 2x2 VHT40 2G and 1x1 VHT 40 5G, the MAC 1 (5G)
doesn't support VHT80. Update the ch_width to max of 40Mhz
in beacon OMN ie when switch to DBS2.

Change-Id: If5cf65bca815d1e8df67a1515b2fb3edcba52a8e
CRs-Fixed: 2520719
2019-10-28 08:38:35 -07:00
Jianmin Zhu
387e65caa6 qcacld-3.0: Avoid wifi fail when timeout waiting for sme close session
In special case when vdev delete for wlan disabled,
event eWNI_SME_DEL_STA_SELF_RSP  has been sent
to QDF_MODULE_ID_SME queue,  but scheduler thread have no
execution chance,  timed out waiting for sme close session in
hdd_vdev_destroy, sme session isn't cleaned up.
When enable wifi again, vdev create failed for cannot re-open
active session, wifi failed to start any more,  can't recover
until system reboot.
Fix:
When timed out waiting for sme close session in
hdd_vdev_destroy, clean up sme session too as normal process.

Change-Id: If6c6ed313928294bb83ebbc0e716a574e6a07470
CRs-Fixed: 2547355
2019-10-28 04:16:07 -07:00
Jingxiang Ge
f1d8159208 qcacld-3.0: config 11ax linkspeed rate
This change is to support 11ax linkspeed rate
on UI.

It supports different config for gReportMaxLinkSpeed.

Current 11ax rate support to max 80 nss2 mcs11.

Change-Id: Iff8cbafe1354ab50c4b3a90ef8ab698a3350a21d
CRs-Fixed: 2529291
2019-10-26 08:11:48 -07:00
Manikandan Mohan
0ba7e55beb qcacld-3.0: Update CSR for 6Ghz STA connection
Update SME/CSR for using channel frequency in STA connection
params and handle 6G AP IEs for association.

Change-Id: I1725223b6763a729762b604c850c9b493f739ae6
CRs-fixed: 2552009
2019-10-26 03:05:56 -07:00
Arun Kumar Khandavalli
bcd5634dae qcacld-3.0: Send the vdev create to firmware in the caller thread
Presently upon interface up a message is posted to the scheduler
to create the vdev, which sends the vdev create to the firmware,
for the vdev create there is no response from the firmware host
internally posts a fake message internally for the vdev create
response.

Dont post the vdev create to the scheduler thread but directly
send the vdev create to the firmware in the caller context.

Change-Id: Iafb186b13d948e421d152c3142cb8614fdbbffa6
CRs-Fixed: 2549530
2019-10-23 03:46:29 -07:00
Yu Ouyang
7117897437 qcacld-3.0: Fix 'sae_info' undeclared issue
Structure csr_roam_info member 'sae_info' is defined only when
WLAN_FEATURE_SAE is defined.
But function csr_process_roam_auth_offload_callback() call it
without any checking.

Because function csr_process_roam_auth_offload_callback() processes
WPA3 SAE info, so rename it, and move it to macro WLAN_FEATURE_SAE.

Change-Id: If3d5c1e6739fbd7bee24d19fbbab3495a9a6f8f6
CRs-Fixed: 2532693
2019-10-22 23:03:27 -07:00
Yeshwanth Sriram Guntuka
4ac1584527 qcacld-3.0: Cleanup sta_index in TDLS structures and APIs
Remove sta index references in TDLS structures and APIs
and mac address would be used instead to refer the peer.

Change-Id: I861f7ce068f3f545598129b9f3955b84b2a6fbce
CRs-Fixed: 2524512
2019-10-22 09:05:33 -07:00
Yeshwanth Sriram Guntuka
3f26210aed qcacld-3.0: Do not use cdp API to get local id in wma
Remove usage of cdp APIs to fetch local id and cleanup
few sta index references in wma and lim.

Change-Id: I32633ef7491b3b91ee55dd813a009c4d8010a3f5
CRs-Fixed: 2524506
2019-10-22 09:05:17 -07:00
Sourav Mohapatra
a3cf12aee4 qcacld-3.0: Remove sta_id from hdd_connection_info
As a part of the sta_id clean up, remove the usage of the sta_id from
struct hdd_connection_info. Instead of the station id, use peer mac
address to interact with the protocol and DP layers.

Change-Id: I60b939c37ff49b50579791f45e3e81ed81b86967
CRs-Fixed: 2524514
2019-10-22 09:04:56 -07:00
Manikandan Mohan
932c11e3b3 qcacld-3.0: Policy manager update for channel to frequency usage
Update policy manager data structures and APIs to use frequency
instead of channels. This is done to address channel number
ambiguity with introduction of 6GHZ band. Fix all references of
channel and add temporary internal functions for frequency
usage as replacement for public APIs using channels. Also modify
the channel list handling to frequency list in associated modules.

Change-Id: I11dff14a5fbe6d49cf411f8fce6863994ffccd75
CRs-fixed: 2540000
2019-10-19 22:11:30 -07:00
Pragaspathi Thilagaraj
ea180474cd qcacld-3.0: Update group management cipher suite in RSO command
The host driver updates the group management cipher suite to the
firmware as part of RSO commands over the WMI_AP_PROFILE
command. The group management cipher suite is updated from the
group cipher suite which is not correct. As part of join success
update the group management cipher suite from roam_profile
in the roam serialization command in
csr_roam_save_connected_information().

Update the group management cipher suite from the roam profile
to the roam_request and copy it to the WMI_AP_PROFILE command
params in wma.

Change-Id: Ic8dca6938c487396e0202202efbb44ff214ecdcc
CRs-Fixed: 2542225
2019-10-14 15:56:07 -07:00
Abhishek Ambure
c51513966a qcacld-3.0: Cleanup old scan filter
Driver uses old scan filter and old scan filter is converted
into new scan filter while sending scan command.

TO avoid this conversion use and fill new scan filter whenever
required.

Change-Id: Ib7e1c571c042a36f0b5864033ba640e8df1cd2f1
CRs-Fixed: 2544677
2019-10-14 07:50:48 -07:00
Abhishek Ambure
79932494df qcacld-3.0: Refactor SME code to check connection state
IBSS code is protected by "QCA_IBSS_SUPPORT" feature flag, at SME
layer CSR API checks the connection state. For IBSS disable, these
SME APIs to check connection state must return flase.

Change-Id: I1bcd20a07d484cea2769c5b3171d805c8b82b308
CRs-Fixed: 2542724
2019-10-12 22:15:43 -07:00
Abhishek Ambure
e0fe68d2dd qcacld-3.0: Keep IBSS code under feature flag in SME
IBSS code is placed under QCA_IBSS_SUPPORT feature flag.

Change-Id: I501ad12155de2445824ca028295cfdec7940c6fd
CRs-Fixed: 2530205
2019-09-27 09:11:51 -07:00
Liangwei Dong
e2ac31beea qcacld-3.0: Use chan frequency for phy mode population
Use channel number will get invalid band.
Change csr_roam_get_phy_mode_band_for_bss API
and CSR_GET_BAND to use channel frequency as parameter.

Change-Id: I0c4d39f6b5689bc330e4e09302d84deaf209b9cb
CRs-Fixed: 2518428
2019-09-26 10:33:58 -07:00
Abhinav Kumar
523ca376a9 qcacld-3.0: Add support to dynamically enable roaming in STA+STA
Currently in STA+STA scenario roaming is enabled on the
first connected STA1 and is enabled on the other STA2 on
STA1 disconnection. This change adds support to dynamically
enable or disable roaming on any STA.

Change-Id: I34dc2730fb38193ea3dd0ec35c79df233f270913
CRs-Fixed: 2520827
2019-09-25 10:37:15 -07:00
Yeshwanth Sriram Guntuka
1669fc0508 qcacld-3.0: Add CSR APIs to maintain roam state machine
Add CSR APIs to maintain the roam state machine.

Change-Id: I68728cb657c5a492f141bea90b2da0d70cb61f08
CRs-Fixed: 2520826
2019-09-25 10:37:09 -07:00
Srinivas Dasari
240d327763 qcacld-3.0: Consider def roam scan periods only if not conf'd explicitly
Roam control enable sends default values for roam scan period and
full roam scan period to make sure undesirable values are not
used. But user might want to update values dynamically through
vendor cmd/DRIVER cmd before issuing roam control enable and
doesn't want to overwrite these values with default values.
So, consider default values sent only if user hasn't configured
already. This can be done by comparing configured value with
ini values.

Change-Id: I68ac6a9afbe4a45c1a1ade3286c57f36303c49e9
CRs-Fixed: 2530344
2019-09-23 09:26:00 -07:00
Srinivas Dasari
3a769ca362 qcacld-3.0: Reset inactivity params when roam control is enabled
When roam control is enabled, below inactivity params are expected
to be set 0,
1. roam_scan_inactivity_time
2. roam_inactive_data_packet_count
3. roam_scan_period_after_inactivity

Restore the same when roam scan control is disabled/CLEAR_ALL is
received.

Change-Id: Id9365895cdbccb3465b96ba6eec579da5014caa0
CRs-Fixed: 2529116
2019-09-23 09:25:53 -07:00
Srinivas Dasari
1ec7452b18 qcacld-3.0: Restore all control config params upon CLEAR_ALL
User might modify the roam control config params through
multiple commands as part of roam control config enable.
Currently, only the params which are modified as part of
SUBCMD_CONTROL_SET command are restored. Restore all of the roam
control config params from the default ini values when the
control config is disabled i.e when the CLEAR_ALL is received.

Change-Id: I59ebc2e3018b01889ffb2bcd19b72d6d20fd0517
CRs-Fixed: 2517854
2019-09-23 07:28:01 -07:00
Srinivas Dasari
a5a42fa0ce qcacld-3.0: Update scan_n_probes to neighbor roam info only
Currently, scan_n_probes is updated to global mac ctx when
it's changed through DRIVER command. But the update
should happen only to the neighbor roam info of the
corresponding vdev. Retrieval also should happen based on vdev.

Change-Id: I442eda44c6c0f6a66d86648bbe82bc0dc71422bd
CRs-Fixed: 2530341
2019-09-23 07:27:53 -07:00
Srinivas Dasari
7bedcd175d qcacld-3.0: Update home_away_time to neighbor roam info only
Currently, home scan away time is updated to global mac ctx
when it's updated through DRIVER command. But the update
should happen only to the neighbor roam info of the corresponding
vdev. Retrieval also should happen based on vdev.

Change-Id: I3e746f264c23454c1721a132d267b70157392894
CRs-Fixed: 2530338
2019-09-23 07:27:47 -07:00
Srinivas Dasari
456aa70f29 qcacld-3.0: Update empty scan refresh period to neighbor info only
Currently, roam empty scan refresh period is updated to global
mac ctx when it's updated through DRIVER command. But the update
should happen only to the neighbor roam info of the corresponding
vdev. Retrieval also should happen based on vdev.

Change-Id: Ic0496c326bca459c6ef6da1d84f1fd4645373cb9
CRs-Fixed: 2530335
2019-09-23 07:27:32 -07:00