Commit Graph

298 Commits

Author SHA1 Message Date
gaurank kathpalia
64449a8609 qcacld-3.0: Move code from CSR to new RSO structs part 3
Move code from CSR to roam scan offload to use new converged
structures.

Change-Id: I418be56d452389a9f7b8d48e28f793567e81767a
CRs-Fixed: 2857606
2021-01-19 12:57:33 -08:00
gaurank kathpalia
85f376f0a9 qcacld-3.0: Move code from CSR to new RSO structs part 2
Move code from CSR to roam scan offload to use new converged
structures.

Change-Id: Ic67be46bd33930cdacc49e2e410a5e1ae7b303ee
CRs-Fixed: 2857319
2021-01-18 21:45:21 -08:00
Pragaspathi Thilagaraj
fa947de7a3 qcacld-3.0: Reject back to back TWT commands
Don't allow TWT commands back to back till response for
existing command is not received.
Reject the new command till the existing command completion
event is received from firmware. Allow TWT teardown when
any other command is in progress after TWT setup is complete.

Change-Id: I9282230c7cb24691b44ddfd273972272fd80f44b
CRs-Fixed: 2853515
2021-01-17 13:30:31 -08:00
gaurank kathpalia
157bb417c2 qcacld-3.0: Remove unused params and functions
Remove unused params and functions due to connection manager.

Change-Id: Ie1fd0031abce0c97f82b221ed43f10609f6dac7a
CRs-Fixed: 2856577
2021-01-17 14:56:27 +05:30
Pragaspathi Thilagaraj
1a9311161a qcacld-3.0: Create TWT context in peer private object
Create TWT context in peer object to store the TWT session
related parameters. Introduce mlme api to get/set various
twt session parameters for the peer.
Block the below commands till TWT setup is complete.
TWT GET
TWT Pause
TWT resume
TWT terminate

Add new files for TWT specific functionality in MLME component:
components/mlme/core/inc/wlan_mlme_twt_api.h
components/mlme/dispatcher/inc/wlan_mlme_twt_public_struct.h
components/mlme/dispatcher/inc/wlan_mlme_twt_ucfg_api.h
components/mlme/core/src/wlan_mlme_twt_api.c
components/mlme/dispatcher/src/wlan_mlme_twt_ucfg_api.c

Also return error to userspace if back to back TWT setup
command is received before TWT setup response is received from
firmware or already TWT setup is complete for given dialog id

Change-Id: I61e24dd41dc9dcb78fdfe33ef8fa0ecb374a4a72
CRs-Fixed: 2847213
2021-01-15 10:25:32 -08:00
gaurank kathpalia
e484040fb0 qcacld-3.0: Move code from CSR to roam scan offload to new structs
Move code from CSR to roam scan offload to use new converged
structures.

Change-Id: Ie69a88f419d38ec611b4dc18ed15d7eb1f53e1ae
CRs-Fixed: 2853488
2021-01-13 22:24:19 -08:00
gaurank kathpalia
8e098a3412 qcacld-3.0: Replace CSR API with connection mgr API part 4
Replace the CSR API to get connect info with cnx mgr API.

Change-Id: I22f83727e4b2e6f6b7258ef41f8595e789015a58
CRs-Fixed: 2853089
2021-01-13 04:42:57 -08:00
Pragaspathi Thilagaraj
c4ebe66ee5 qcacld-3.0: Advertise TWT capability if "enable_twt" ini is true
Currently in SAP and STA mode the driver advertises TWT
capabilities in the HE capabilities IE based on the below ini
values irrespective of the master ini "enable_twt" to enable
the twt feature:
"he_twt_requestor","he_twt_responder", "he_bcast_twt",
"he_flex_twt_sched".
So even with the ini is disabled, twt capabilities are advertised

Advertise TWT capability only if "enable_twt" ini is true.

Change-Id: Iae3a98ee339f3859391e0deb64ddd354634b0cbf
CRs-Fixed: 2844516
2021-01-12 17:44:26 -08:00
gaurank kathpalia
c86ce01b74 qcacld-3.0: Replace CSR API with connection mgr API part 3
Replace the CSR API to get connect info with cnx mgr API.

Change-Id: Id4b92ba5db10935b5deccdacd72218d4a087c61d
CRs-Fixed: 2852437
2021-01-11 15:13:25 -08:00
gaurank kathpalia
130e95060d qcacld-3.0: Cleanup the struct sCsrNeighborRoamControlInfo
Cleanup the struct sCsrNeighborRoamControlInfo and move params in
vdev ext object.

Change-Id: If5a490c68137622838afc831a4da0e1da7fa49c4
CRs-Fixed: 2850991
2021-01-08 23:30:34 -08:00
gaurank kathpalia
835437cad6 qcacld-3.0: Add legacy pointer in connection manager context
Add legacy pointer in connection manager context to use for RSO
and other connection manager legacy operations.

Change-Id: Ibc665f53d77aebb3f248fedbdffd1cfe86492b25
CRs-Fixed: 2845980
2021-01-07 23:28:49 -08:00
gaurank kathpalia
6b72d4685b qcacld-3.0: Replace CSR API with connection mgr API part 2
Replace the CSR API to get connect info with cnx mgr API.

Change-Id: Id0ffae005fde5bff69fc486c94c3332872bab786
CRs-Fixed: 2848570
2021-01-07 23:28:45 -08:00
Abhishek Singh
d3cbcc0d30 qcacld-3.0: Remove duplicate struct struct wlan_ies
Remove duplicate struct struct wlan_ies and replace with
struct element_info.

Change-Id: I60d34db5845d840679052912182ea09b86988e43
CRs-Fixed: 2848237
2021-01-06 09:11:53 -08:00
Ashish Kumar Dhanotiya
f90d452bdb qcacld-3.0: Update qos parameters for connection manager
Currently driver does not update qos related parameters for
connection manager connect complete path, add logic to
update qos related parameters for connection manager connect
complete path.

Change-Id: If7d67448710a8f950d5c78ca961cab7884f58d61
CRs-Fixed: 2846591
2020-12-31 00:50:27 -08:00
Ashish Kumar Dhanotiya
68b0198490 qcacld-3.0: Add functions for assoc completion for connection manager
There are few functions which were missing for association completion
for connection manager functionality, add those missing functions
for association completion handler.

Change-Id: Iaca6599921fa73972553a8bd805b2f39ad580407
CRs-Fixed: 2846083
2020-12-30 16:51:08 -08:00
gaurank kathpalia
f8a769a7b6 qcacld-3.0: Add cnx mgr logic for connect and disconnect ext ind
Add connection manager logic to handle p2p/tdls/policy mgr logics
on connect/disconnect start and complete ext indication. And
add the call to csr to update the legacy structs.

Change-Id: I218a1d193dd62ad041e84078bd2509b82ec11363
CRs-Fixed: 2846663
2020-12-30 11:24:34 -08:00
Ashish Kumar Dhanotiya
ee71cc8bd4 qcacld-3.0: Refactor connect complete code
Refactor connect complete code and move common code
for connection manager and legacy path to a common function
to remove the duplication of the code.

Change-Id: I25e39635005efd9ad19174e9f26d009946912cdb
CRs-Fixed: 2842413
2020-12-28 13:06:46 -08:00
sheenam monga
a3c734decb qcacld-3.0: Update doc of vdev start resp handler
Update documentation of vdevmgr_vdev_start_rsp_handle
function.

Change-Id: I948e38fd94846500573e93d40577f066d0670f27
CRs-Fixed: 2840561
2020-12-17 15:41:32 -08:00
Subrat Dash
fec051ecae qcacld-3.0: Add support to enable TWT roles
There are cases where only a few TWT roles may be required
to be enabled. For example TWT Requestor role alone or
TWT Respondor role alone. Also, it could be unicast TWT only
and disable broadcast TWT.

Support broadcast TWT  configuration in requestor and responder
role by adding new INI.
Extend the use of existing requestor and responder INIs to further
enable requestor and responder roles itself.

Change-Id: I3dfa196edfda9cafd01fa56c0bb6ce73e27b4144
CRs-Fixed: 2828718
2020-12-14 09:29:44 -08:00
Jianmin Zhu
ac8b95e887 qcacld-3.0: Clear whole operations bitmap when RSO deinit
To avoid roaming enable failed for operations bitmap set/clear mismatch for
SAP+STA or STA+STA concurrency, clear whole operations bitmap when RSO
deinit, then roaming can be enabled again after STA disconnect and
reconnect.

Add log when set/get operations bitmap to help debug.

Change-Id: Ie1f1a213dcdefb393ec3e1e2c6a8a71ab17b226c
CRs-Fixed: 2834199
2020-12-11 18:49:18 -08:00
Abhinav Kumar
0e0e63194e qcacld-3.0: Update mscs action frame as per spec
Currently, Host sends classifier type and classifier
mask part of TCLAS Mask OPIE only with tag length of
2 bytes.

As per spec tag length for TCLAS Mask OPIE should be 18.
Ext Tag: TCLAS Mask
   Ext Tag Number: TCLAS Mask (89)
   Ext Tag length: 18
   Classifier Type: 4
   Classifier Mask: 0x5f
   Reserved:00000000000000000000000000000000

Fix is to add a reserved parameter in TCLAS Mask OPIE
of length 16 bytes and set it to NULL.

Change-Id: I54cd896a4ffad16581c14fc254575bcec8e6f6d7
CRs-Fixed: 2822616
2020-12-10 06:47:03 -08:00
sheenam monga
dc64913842 qcacld-3.0: CSA count offload to fw in case of AP/P2PGO
Currently, host decrements beacon switch count and sends
channel switch frame every time until count becomes 0 this
may introduce sync issue between fw and host in case fw has
not sent beacons but host decremented switch count due to
timeout and sent new channel switch frame or vdev restart in
case count beacomes 0.

Fix is to offload CSA to fw to avoid any sync issue.

Change-Id: Idb48d419ec4117ff39cb823ca8af75d7a0abc3c0
CRs-Fixed: 2828045
2020-12-08 09:21:26 -08:00
gaurank kathpalia
94cdcf0ddb qcacld-3.0: Add logic to delete bss peer from connection manager
Add logic to delete bss peer from connection manager.

Change-Id: Ic0f53e87525af670f7a87d84d168276bbcd73efd
CRs-Fixed: 2832733
2020-12-07 14:58:29 -08:00
Amruta Kulkarni
3d08c46bea qcacld-3.0: Add ini for STA + Monitor mode
Add new ini "monitor_mode_concurrency" to support this feature
and introduce policy manager api's for concurrency checks.

Change-Id: I35ee1fece0a6f9ae8fe340b0598c4a3e20b17e82
CRs-Fixed: 2814523
2020-11-19 22:45:59 -08:00
gaurank kathpalia
2afb8a6688 qcacld-3.0: Add logic to ignore 6Ghz AP if security is not valid
Add logic to
- Check if connect req freq is 6Ghz and security
  is not allowed for 6Ghz, reject connect.
- Ignore 6Ghz APs if connect req security is invalid
  for 6Ghz

Also added user config key_mgmt_mask_6ghz mask
to allow specific AKMs, by default all are allowed.

Add added user config check_6Ghz_security to enable
security checks as per spec.

Change-Id: Iada7bb685b272e26cff7e89cf64d181ed6eb48a4
CRs-Fixed: 2820358
2020-11-18 07:46:14 -08:00
Jianmin Zhu
355722bcae qcacld-3.0: move ini CFG_VENDOR_ROAM_SCORE_ALGORITHM to cmn
Move ini CFG_VENDOR_ROAM_SCORE_ALGORITHM from qcacld-3.0 to qcacmn part.
from qcacld-3.0: mac_ctx->mlme_cfg->roam_scoring
to qcacmn: mlme_psoc_obj->psoc_cfg.score_config.

Change-Id: I318f0d516ce699c061f268116e1cbf79fcc9e23a
CRs-Fixed: 2806090
2020-11-03 08:35:06 -08:00
Abdul Muqtadeer Ahmed
5f15db8cf5 qcacld-3.0: Avoid memory leak
Memory is created for the mlme legacy pointer during the create
of the mlme legacy priv object. This allocated memory doesn't get
free when an error condition which leads to device crash.

To avoid this problem memory should be freed before returning from
the error condition.

Change-Id: I8aaaf7bf17cf38f70135e5ff00db429c34aff2d8
CRs-Fixed: 2803896
2020-11-02 17:32:31 -08:00
gaurank kathpalia
4cea7d089e qcacld-3.0: Move HE caps to vdev mlme priv
Move HE caps to vdev mlme priv and remove it from csr session.

Change-Id: I3f68aa66cfd1828dea4e46aff1dd758fbfde4a48
CRs-Fixed: 2809092
2020-11-02 08:03:30 -08:00
gaurank kathpalia
e4defd9d16 qcacld-3.0: Add connect and disconnect support in connection manager
Add support for connect and disconnect path
in legacy cld files with respect to connection
manager.

Change-Id: Ia42dd45d943de20d91279c0197b0f17a5c0326eb
CRs-Fixed: 2805807
2020-10-28 15:33:18 -07:00
bings
08d96504db qcacld-3.0: make ini he_twt_requestor and he_twt_responder take effect
INI he_twt_requestor and he_twt_responder should be able to disable/enable
twt requestor and twt responder.

Make them work.

Change-Id: I5e091a2f04cca1817f1a2db6358f141c2eaf103d
CRs-Fixed: 2798800
2020-10-22 04:03:12 -07:00
Abhinav Kumar
94b44452f6 qcacld-3.0: Discard 5G candidates based on RSSI threshold
To discard 5G candidates based on RSSI threshold, Introduce
a new INI "min_rssi_for_2g_to_5g_roam" to configure the RSSI
for High RSSI Trigger.

Min: -120
Max: 0
Default: -70

Change-Id: If4545296ef1b53d18b8ae4abf12d450f5e690240
CRs-Fixed: 2789017
2020-10-20 17:21:29 -07:00
Lincoln Tran
a92a1a0f8b qcacld-3.0: Update default band to include all bands
Currently, QCA_SETBAND_AUTO is backwards compatible, so it is set
to include only 2G and 5G bands. Update this to include 6G bands
as well. Also update the band capability INI to have the default
value 0 include 6G bands.

Change-Id: I98067c18e939ff4c1e7b1e778b020b44409b5b34
CRs-fixed: 2799883
2020-10-19 14:59:02 -07:00
Pragaspathi Thilagaraj
cd22d076ab qcacld-3.0: Add support to send roam scan scheme for the triggers
Add support to handle the nl80211 attribute -
QCA_ATTR_ROAM_CONTROL_TRIGGERS_SCAN_SCHEME. Send RSO update to
firmware if roam scan scheme value is received via the nl80211
attribute QCA_ATTR_ROAM_CONTROL_TRIGGERS_SCAN_SCHEME over the
QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD subcommand.

Change-Id: If21281245097648380990b9218a722691279f598
CRs-Fixed: 2785256
2020-10-09 06:47:13 -07:00
Abhinav Kumar
c526619159 qcacld-3.0: Trigger MSCS action frame
Add logic to send MSCS action frame to AP based on
voice tx packet.

Change-Id: I272addfcb60e459043426950d00ba5957b594505
CRs-Fixed: 2791796
2020-10-09 02:14:13 -07:00
Abhishek Ambure
af02d10731 qcacld-3.0: Add support to send wfa test config to FW
User sends wfa test configs to host using vendor command
QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION. Host parses the
vendor command and sends wfa test configs to FW using WMI command
i.e. WMI_WFA_CONFIG_CMDID

Change-Id: I5aa0bc8b0a0064828b48368e47d53a5ad5e7ff2f
CRs-Fixed: 2772013
2020-10-06 04:10:51 -07:00
Nirav Shah
032e69194a qcacld-3.0: Enable host optimization for latency based on WLM mode
Enable host optimization for latency based on WLM mode
and ini configuration.

Change-Id: I67f49493f623287d0e420dab379d2d0116603ced
CRs-Fixed: 2789141
2020-10-02 03:37:52 -07:00
Utkarsh Bhatnagar
f67808a6ad qcacld-3.0: Use uint32 variable to update mcs_12_13_support
Use uint32 variable to populate he_mcs_12_13_supp from ini
he_mcs_12_13_support.
Previously, uint16 variable was used which was populating
he_mcs_12_13_supp_2g correctly but was disabling
he_mcs_12_13_supp_5g.

Change-Id: I28cd2060799a9f46f79860bdf9a3ede1574c9112
CRs-Fixed: 2789303
2020-10-02 03:37:40 -07:00
Utkarsh Bhatnagar
7d9ab089a4 qcacld-3.0: Use pdev iterate obj list to check for existing WAPI STA
At present, WAPI security mode STA is not allowed to run in
concurerncy with any other vdev.
So, whenever a new vdev is created, policy_mgr_check_privacy_for_new_conn
is called to check the security concurrency of new connection by checking
security of exisitng vdevs and if a STA vdev with WAPI security exists
then the concurrency is not allowed and the api will return false.

In case, while performing this check, the adaptor associated with
the existing vdev is destroyed, there might be a crash as
hdd_wapi_security_sta_exist is still trying to access the security
of that vdev.

To solve this, use wlan_objmgr_pdev_iterate_obj_list with crypto info
to iterate across all the existing vdev and check the security. If
Wapi security STA exists, it will return an argument with value as true
which will be used in policy_mgr_check_privacy_for_new_conn and it will
return false as concurrency is not allowed

Change-Id: Iff811d2406f1c74cec26d457a2a682dd992710b8
CRs-Fixed: 2784406
2020-09-30 11:10:17 -07:00
Jyoti Kumari
2fc8cced81 qcacld-3.0: Cleanup unnecessary log in roaming
When vdev is null in both mlme_get_roam_state() and
mlme_is_roam_invoke_in_progress(), error log is getting printed
redundantly.

Remove prints from both function as there is no additional info.

Change-Id: Ibc96ad957d947857777dad9df9ff766e68562dae
CRs-Fixed: 2785775
2020-09-30 01:25:57 -07:00
Srinivas Girigowda
d36054fbd2 qcacld-3.0: components: Remove logs for qdf_mem_malloc() checks
qdf_mem_malloc() function already takes care of logging the
caller function name and line number in case of any allocation error.
Hence there is no need to add the error log again.

Getting rid of these unnecessary logs reduces driver memory footprint.

Change-Id: If0b9425f82f9ed793c7639c0ed09eb1f868b6d5c
CRs-Fixed: 2781932
2020-09-25 12:59:42 -07:00
Wu Gao
f4e2f4b9d7 qcacld-3.0: Save operational rate to vdev mlme legacy object
For STA+P2P GO case, DUT sets operational rates when connecting to AP
as STA, and overwrites it when DUT forming P2P connection as P2P GO.
So, add this change to save operational rates to vdev mlme legacy
object, and avoid to overwrite for other inferfaces.

Change-Id: I2bfbecbc9bc50b8943b1e3de516782e70b125ce2
CRs-Fixed: 2773943
2020-09-25 01:29:43 -07:00
Utkarsh Bhatnagar
e4460aed7e qcacld-3.0: Add ini to configure 4K QAM MCS rates
Add ini he_mcs_12_13_support which will be used to enable
or disable 4K QAM MCS rates.
This ini can be used to set. MCS 12 and 13 for 2.4Ghz and
5Ghz. First 16 bits(0-15) is for 2.4ghz and next 16 bits
is for 5Ghz. Of 16 bits the higher, first 8 bits represent
BW less than or equal 80Mhz (<= 80Mhz) and higher 8 bits
represent BW greater than 80Mhz (> 80Mhz). nth bit in octet
represents support for nth NSS [n=1:8].
Def value is 0xFFFFFFFF which enable MCS 12 and 13 for all
NSS and BW.
Also, enable 4K QAM MCS only when this ini is enabled and
firmware also supports it.

Change-Id: I8375203735d8b07ef4ff86be2213da127be4e556
CRs-Fixed: 2762230
2020-09-24 10:45:42 -07:00
Jianmin Zhu
6e500465bb qcacld-3.0: Remove wlan_reg_chan_to_freq in wlan_mlme_main.c
Remove useless legacy CFG_VALID_CHANNEL_LIST ini.
Remove wlan_reg_chan_to_freq in wlan_mlme_main.c.

Change-Id: I7368f03fde6cc190c231f3b053811215796ed8d2
CRs-Fixed: 2777094
2020-09-24 10:45:39 -07:00
gaurank kathpalia
b81c0ae7d2 qcacld-3.0: Replace tSirMacReasonCodes with enum wlan_reason_code
Replace all enums of tSirMacReasonCodes with common
enum wlan_reason_code.

Change-Id: Ida950a08ac4ceea2911344a8d919b2d93ac7d1fe
CRs-Fixed: 2781197
2020-09-21 16:55:34 -07:00
Abhishek Singh
5cdd743c84 qcacld-3.0: Move rso tx ops to psoc from vdev
Move rso tx ops to psoc from vdev.

Change-Id: Icd0a8aef8ecc7ef097b2239d05c6e21ea36b8216
CRs-Fixed: 2779294
2020-09-18 07:29:57 -07:00
Abhinav Kumar
33fdd1fac0 qcacld-3.0: Remove unused roam ini gRoamBeaconRssiWeight
Currently, gRoamBeaconRssiWeight is not used in HOST or
FW.

Remove unused roam ini param gRoamBeaconRssiWeight.

Change-Id: Ida6ddb8ca5805f819c4d3f7e6ed96c705fa6594f
CRs-Fixed: 2767533
2020-09-16 04:51:26 -07:00
Abhinav Kumar
7ac893f2af qcacld-3.0: Add a new INI bg_rssi_threshold
FW triggers roaming based on the RSSI score of AP(s) available
after background scan. Currently, the host does not configure
the value of bg_rssi_threshold RSSI. This results in ping-pong
roaming after background scan, even though candidate AP
RSSI is not better than 5dbm than connected AP.

Fix is to configure the value of bg_rssi_threshold via new
INI "bg_rssi_threshold" and configuring default value of
INI as 5dB.

Min: 0
Max: 100
Default: 5

Change-Id: Ib710e294c8b33ff4903d41453e3b55f02daf53ae
CRs-Fixed: 2763962
2020-09-15 07:19:33 -07:00
Gururaj Pandurangi
c199935f4b qcacld-3.0: Add checks to handle return value from crypto APIs
Add checks in caller APIs to handle negative return value from
crypto get param and crypto get peer param APIs.

Change-Id: Ibb138971f347c7ccdacbc93aa38521d5d9536759
CRs-Fixed: 2775328
2020-09-12 08:17:11 -07:00
Jianmin Zhu
e7c9718446 qcacld-3.0: Add 3 ini for data rssi check when roaming
3 ini:
roam_data_rssi_threshold_triggers
roam_data_rssi_threshold
rx_data_inactivity_time
If there's rx activity during latest rx_data_inactivity_time
and avg of data_rssi is better than roam_data_rssi_threshold, then
suppress roaming triggered by roam_data_rssi_threshold_triggers: low
RSSI or bg scan.

Change-Id: I5b41c4119e61392b50e52ab8ccb8650e5758f3b3
CRs-Fixed: 2768053
2020-09-07 03:17:49 -07:00
Abhinav Kumar
aad917a899 qcacld-3.0: Remove unused INI gFirstScanBucketThreshold
Currently INI: gFirstScanBucketThreshold is not used
while LFR2/LFR3 roaming.

Remove unused INI gFirstScanBucketThreshold

Change-Id: Ifa909fc57d3ac3da696369fcffc390826f393b44
CRs-Fixed: 2767372
2020-09-01 22:20:38 -07:00