Commit Graph

45 Commits

Author SHA1 Message Date
Surabhi Vishnoi
b8adb54ef5 qcacld-3.0: Send TDLS notify sta disconnect on roam
Currently, TDLS STA disconnect notification is not sent during
roam, so WMI_TDLS_SET_STATE_CMDID with disable command is not sent
to firmware. This leads to unexpected behavior in firmware when STA
have migrated to different mac based on new band (2 GHz to 5/6 GHz or
vice-versa) due to roaming, but TDLS STA remain on previous mac.
Firmware expects host to send WMI_TDLS_SET_STATE_CMDID on roam also
so that it can destroy and create new TDLS STA instance and map TDLS
STA to new mac.

To fix above issue, send WMI_TDLS_SET_STATE_CMDID with disable TDLS
state to firmware after driver receives roam sync indication which
leads to destruction of TDLS STA instance in firmware.
Host driver would later send WMI_TDLS_SET_STATE_CMDID with enable TDLS
state(not part of this commit) after successful STA roaming so that
firmware maps TDLS STA with new mac.

This change also removes unused ucfg_tdls_notify_sta_connect() and
ucfg_tdls_notify_sta_disconnect() APIs.

Change-Id: Id680d0f6193740b24e78115ac7dc7be26e28acff
CRs-Fixed: 3388507
2023-02-16 18:19:28 -08:00
Jeff Johnson
ac73d2ec1d qcacld-3.0: Fix TDLS Documentation
The kernel-doc script identified a multitude of documentation issues
in components/tdls, so fix them.

Change-Id: I365496d70e903bae1abad7b807687904f7f15af7
CRs-Fixed: 3360666
2022-12-29 18:33:36 -08:00
Roopavathi Lingampalli
fcb513f88f qcacld-3.0: Add Component APIs for required ucfg APIs in DP component
When component dependent functions calling from higher
modules or any other components, it uses ucfg APIs pattern.
Calling ucfg dependent APIs is acceptable for higher modules
like HDD, OSIF but for another components like DP to avoid
using ucfg APIs here, implementing component APIs for existing
ucfg APIs to other components like MLME, TDLS, Pkt capture in
DP component module.

Change-Id: Ib8857eeca6a88810d7875312ff6dc14ffb60bc70
CRs-Fixed: 3351486
2022-12-13 14:06:07 -08:00
Utkarsh Bhatnagar
ce8795375d qcacld-3.0: Disable TDLS offchannel if more than 1 peer connects
Disable TDLS offchannel if number of connected peers are more than
one.
Also, re-enable offchannel if all peers are disconnected expect one.
With this change, it is possible to increase the limit of max
connected peers which was previously set as one when TDLS
Offchannel is enabled.

Change-Id: Ic0826aa32c8ef805a2df6da6c7506895cdc08a09
CRs-Fixed: 3265868
2022-09-05 21:32:50 -07:00
Utkarsh Bhatnagar
33f9595701 qcacld-3.0: Disable legacy netdev params for TDLS
Since TDLS and STA share a common netdev interface,
when STA connection is made in 11a, 11b, 11g mode,
netdev parameters such as TSO/checksum are disabled.
If TDLS connection is formed over this Station,
TSO remains disabled as STA netdev is used.

This might result in loss of throughput when TDLS
connection is made with 11n, 11ac, 11ax dot11mode and
with wider bandwidth TDLS, this loss is more prominent.

Hence, overwrite the netdev params to enable TSO when
TDLS connection is formed in 11ax, 11ac, 11n mode if
the station is in 11a, 11b, 11g mode.
Also, disable the TSO params when TDLS tearsdown when
STA is in 11a, 11b, 11g mode.

Change-Id: I80deaef40d70030211e75a63e1339b1407627b52
CRs-Fixed: 3245258
2022-08-24 15:54:53 -07:00
Ashish Kumar Dhanotiya
2490a83a25 qcacld-3.0: Add support to get feature set info
Based on the new requirement, add support to get requested
feature set info from different feature components.

Change-Id: I1bfc097c8ae8c4ab678d4dc07b7932cf3272d851
CRs-Fixed: 3262868
2022-08-12 18:55:15 -07:00
Utkarsh Bhatnagar
4d9e51e8a7 qcacld-3.0: Allow TDLS connection in wideband only if fw supports
Irrespective of 6 GHz, wideband can be supported.
So, Allow TDLS connection in wideband only if FW supports TDLS
on 6Ghz.
If Fw doesn't support wideband then restrict the TDLS connection
BW to APs Bw.

Change-Id: If726233f381921a8eda25ac7a2705942db79d410
CRs-Fixed: 3223760
2022-06-30 10:53:58 -07:00
Utkarsh Bhatnagar
50885ab717 qcacld-3.0: Add support for TDLS offchannel
Add support for TDLS offchannel changes required
for supporting TDLS offchannel on 6 GHz band.

Change-Id: Ie150ff7e5a8237dab445ccb0ab6a4959a7c7fbf0
CRs-Fixed: 3223640
2022-06-29 04:31:05 -07:00
Utkarsh Bhatnagar
5b8626946b qcacld-3.0: Allow TDLS connection on 6GHz only if fw supports
Allow TDLS connection on 6GHz only if FW supports TDLS on 6GHz.

Change-Id: I663bd6d73235664c21029d8956f465da5a5b39c6
CRs-Fixed: 3223677
2022-06-25 03:03:20 -07:00
Amruta Kulkarni
08bcbf1eca qcacld-3.0: Change file names to cfg_*.h
Change file names from wlan_cfg_*.h to cfg_*.h

Change-Id: If0d12efdea21513826553b8bcee88d7161482591
CRs-Fixed: 2856357
2022-03-28 10:47:43 -07:00
Utkarsh Bhatnagar
c7e32c7021 qcacld-3.0: Enable TDLS 11AX only if supported by FW
Don't fill the 11ax capabilities if FW doesn't support
TDLS 11AX capability.

Change-Id: I267ccaa439bb3cf17d27493172b4f324d112724b
CRs-Fixed: 2925250
2021-05-10 09:02:55 -07: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
Gururaj Pandurangi
370f376c02 qcacld-3.0: Modify connect start code in if mgr
Modify connect start code in interface manager by
moving disable roam and tdls link teardown notify
APIs from HDD to if mgr. Alongside, move tdls link
teardown notify API from HDD to if mgr in start bss API.
Also, move the tdls link teardown API to TDLS module from
HDD module as TDLS should manage the wait logic.

Change-Id: I09fa31878563a3daaa7c5fde46327475829317b3
CRs-Fixed: 2811807
2020-11-20 13:11:00 -08: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
Gururaj Pandurangi
5202fa8547 qcacld-3.0: Change ucfg tdls API as wrapper to wlan API
Change ucfg_tdls_notify_connect_failure() API as a
wrapper to a new API wlan_tdls_notify_connect_failure()
which in turn calls the core API.

Change-Id: I998669f9c829cb91e21b359ba794f396214854e2
CRs-Fixed: 2767682
2020-09-09 20:47:20 -07:00
Srinivas Girigowda
3e043aa2ce qcacld-3.0: tdls: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2752355
Change-Id: I79eb9801810c2bd08699dede9e73ff7bf17fc5b9
2020-08-22 16:00:45 -07:00
Pankaj Singh
af44671317 qcacld-3.0: Extend Tdls external mode config support
Current implementation of external mode requires supplicant to
send tdls peer mac address. On matching of stats tdls implict
link procedure is trigger for configured peer.

Fix, to allow both configured peer and other peer that supports
tdls to establish the tdls link.

Change-Id: I8f65e6dcc9dec565623ac2d8d2c77e12570f8bfb
CRs-Fixed: 2733830
2020-07-24 13:10:00 -07:00
Utkarsh Bhatnagar
be4a6f5365 qcacld-3.0: Add flush cb in TDLS
Add flush cb  using ucfg_tdls_post_msg_flush_cb() for these TDLS functions:

1. ucfg_tdls_add_peer.
2. ucfg_tdls_update_peer.
3. ucfg_tdls_oper.
4. ucfg_set_tdls_offchannel.
5. ucfg_set_tdls_offchan_mode.
6. ucfg_set_tdls_secoffchanneloffset.

Change-Id: Ic53c23c4738dccd7612e12e9da1eb206d5bfe6fb
CRs-Fixed: 2732230
2020-07-17 04:03:36 -07:00
Wu Gao
4e5a1591c5 qcacld-3.0: Add ini to configure max tdls peer count
Add ini "gTDLSMaxPeerCount" to configure max tdls peer count.

Change-Id: I45c287c6c9a2fa1dcebcea54fdd0fc0d8a14b064
CRs-Fixed: 2718971
2020-07-13 23:39:20 -07:00
Wu Gao
7a5b681708 qcacld-3.0: Add wow support for TDLS
Prevent wow if TDLS is started, allow wow if TDLS link disabled. This
feature is enabled only if lithium plaform isn't drv supported.

Change-Id: Ie66d62cb139fe9a1d292925a78f2dd861f16ef69
CRs-Fixed: 2716922
2020-07-10 05:38:44 -07:00
Pankaj Singh
9f6679e000 qcacld-3.0: TDLS not releasing the vdev ref taken with WLAN_TDLS_NB_ID
During NAN+TDLS case, when NAN is present dut is trying
to add TDLS peer and the ref is not released which results in
assert due to obj delete timeout.

Fix is to release the ref taken properly in default handing of
tdls serialization cmd and error handling.

Change-ID: Ie3e785f617d320dc88051bf6f22f8e291f120c14
CRs-Fixed: 2728865
2020-07-10 05:38:40 -07:00
Pankaj Singh
f9b5466cb6 qcacld-3.0: TDLS not releasing the vdev ref taken with WLAN_TDLS_NB_ID
During NAN+TDLS case, when NAN is present dut is trying
to add TDLS peer and the ref is not released which results in
assert due to obj delete timeout.

Fix is to release the ref taken properly in default handing of
tdls serialization cmd and error handling.

Change-ID: Ia1ff16fdde7f70e45b712d260c1eca372ceb947e
CRs-Fixed: 2727206
2020-07-09 13:43:27 -07:00
Abhishek Singh
2281c2d6bb qcacld-3.0: remove dependency of public files from wlan_objmgr_psoc_obj.h
Remove dependency of wlan_lmac_if_def headerfiles from
wlan_objmgr_psoc_obj.h

Change-Id: I5f6120a97be3ae6835023ceaef455088820809de
CRs-Fixed: 2657771
2020-05-15 10:41:20 -07:00
Pankaj Singh
9dcc7e0e82 qcacld-3.0: Tdls avoid peer access after peer deletion
Currently, peer can be accessed after deletion in hdd because
cdp_clear_peer called via tdls_process_del_peer_rsp
tries to remove peer from physical device after deletion of
peer in datapath.

Fix is to remove cdp_clear_peer from hdd as it is handled by
cdp_peer_delete.

Change-Id: Ibdeb9a2a8dcf3318d66a48b9e9c7ca4d5cd74cb3
CRs-Fixed: 2663555
2020-04-24 17:09:36 -07:00
Arun Kumar Khandavalli
8b61ce1e4c qcacld-3.0: Selectively reduce tdls logs
Reduce tdls logs from info to debug.

Change-Id: I2de71c4aa5d9915afb68bc192dcd6a749f6b3b4e
CRs-Fixed: 2607020
2020-01-23 03:41:19 -08:00
bings
059c4a06c2 qcacld-3.0: Configure TDLS off channel mode when band switches
Disable TDLS off channel if 2g or 5g is disabled, restore TDLS off
channel configure when all bands are enabled.

Change-Id: Iabfdcdbf84e4a6313ad04e381b70e21c871d66c2
CRs-Fixed: 2595303
2020-01-10 04:07:57 -08:00
Bala Venkatesh
ff86f89448 qcacld-3.0: Add the ini gTDLSDiscoveryWakeTimeout
Add the support for the ini gTDLSDiscoveryWakeTimeout.
with this ini gTDLSDiscoveryWakeTimeout, FW will be awake
for configured value after sending the discovery request.

Change-Id: I194e5c99972968bbaa46ffb6b8e83604bff15a0a
CRs-Fixed: 2546515
2019-11-11 02:05:27 -08: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
Ashish Kumar Dhanotiya
ca5d922263 qcacld-3.0: Process rx_mgmt_pkt based on frequency
As a part of 802.11ax amendment, 6GHz band operation is added.

Since the 6 GHz channel numbers are overlapping with existing 2.4GHz
and 5GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.

As part of above requirement add logic to process rx mgmt
packets based on the frequencies instead of channel numbers.

Change-Id: Ib063070738ecdb4f83379eafe50629778a490aae
CRs-fixed: 2522693
2019-10-18 02:55:17 -07:00
Bala Venkatesh
221790b07e qcacld-3.0: Do not send UAPSD command after TDLS connection
Currently as part of tdls enable link, If the peer is buff
capable or tdls uapsd is enabled in INI. UAPSD is enabled in
FW. Avoid sending this command to FW as it effects the behavior
with AP.

Change-Id: Idc023cb9de3ab63e7643815d473fe0efa98069b9
CRs-Fixed: 2528208
2019-09-19 02:01:45 -07:00
Bala Venkatesh
9bb9c05e83 qcacld-3.0: Pass psoc instead of vdev for teardown links
As part of start_ap or connect_start to teardown active tdls peers
hdd_notify_teardown_tdls_links is called with argument vdev. But
TDLS might not be enabled on that vdev. With recent changes,
osif_priv object is initialized as part of tdls_vdev_init.
For the new interface if TDLS is not initialized then osif_priv
object will not be found and TDLS peers are not removed.

Change-Id: Idcf690bba2766664700a4851d390ee620f2fe73a
CRs-Fixed: 2460108
2019-06-03 02:26:54 -07:00
Bala Venkatesh
444588c41e qcacld-3.0: Enable TDLS in case of STA association failure
TDLS is disabled if second connection comes up.
If that second connection fails then enable
the TDLS again.

Change-Id: Id5df1df81c94bcf3a0616bbfb4b33f3e4d81dcbe
CRs-Fixed: 2445831
2019-05-20 13:40:37 -07:00
Arun Kumar Khandavalli
43fdd25d72 qcacld-3.0: Move allocation of tdls private to tdls component
Presently osif tdls memory is freed as part of the osif_priv
when the vdev is logically destroyed. There is case seen
wherein the  tdls is holding vdev reference and in the other
thread the  interface down is received and the osif_priv is
freed resulting in the tdls osif priv also, if the other thread
tries to dereference the tdls os priv it will result
null pointer exception.

Move the tdls osif priv memory creation/deletion to the tdls component.

Change-Id: I3782f6304bee5a6eaab4d9122a569ba56fd29947
CRs-Fixed: 2436379
2019-05-14 13:03:08 -07:00
Wu Gao
18e788a176 qcacld-3.0: Update rssi when get all tdls peers
It doesn't update rssi of tdls peers. So add logic to update it when
get all tdls peers.

Change-Id: I81d4536b5cb2443b088ee4a5d425d548eac152d6
CRs-Fixed: 2435903
2019-04-29 04:17:25 -07:00
wadesong
7f682da30f qcacld-3.0: Documentation refine for some ini items
1) Refine the documentation text of the following items:

gTxChainMask1ss
gTDLSPuapsdInactivityTime
UapsdMask
InfraUapsdVoSrvIntv
InfraUapsdVoSuspIntv
InfraUapsdViSrvIntv
InfraUapsdViSuspIntv
InfraUapsdBeSrvIntv
InfraUapsdBeSuspIntv
InfraUapsdBkSrvIntv
InfraUapsdBkSuspIntv
InfraDirAcVo
InfraDirAcBe
InfraDirAcBk
InfraSbaAcBk
burstSizeDefinition
tsInfoAckPolicy
SingleTIDRC

2) Remove the duplicated definitions of 2 ini items:

gTDLSPuapsdInactivityTime
gTDLSPuapsdRxFrameThreshold

Change-Id: I0f122af2fc91616a38a2c101478bad942292a9ba
CRs-Fixed: 2422339
2019-03-26 10:30:12 -07:00
Jeff Johnson
bdc473f2f4 qcacld-3.0: tdls: Replace explicit comparison to NULL
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within tdls replace any such comparisons with logical
operations performed on the pointer itself.

Change-Id: I836dec2b71e0c11f11b18402c7b127bb4ccbba48
CRs-Fixed: 2418394
2019-03-24 20:48:11 -07:00
Bala Venkatesh
f28679097c qcacld-3.0: Take vdev ref only if vdev is not NULL
In functions ucfg_tdls_update_rx_pkt_cnt and
ucfg_tdls_update_tx_pkt_cnt, driver tries
to get the vdev ref, even if it is NULL.
This can result in assert.

Change-Id: I62b3a9b088324e06518e82203092a2ac9098ac13
CRs-Fixed: 2412095
2019-03-11 04:47:47 -07:00
Abhinav Kumar
c8c215007a qcacld-3.0: ADD MLME INI item of WMM Config
Add the WMM config ini config
CFG_TL_DELAYED_TRGR_FRM_INT_NAME to MLME cfg.

Introduce the basic infra APIs related to these configs
from mlme.

Change-Id: Ifaf8072a78f21760e00973e625d7c8e41d8b51a6
CRs-Fixed: 2361533
2019-02-08 06:14:33 -08:00
gaurank kathpalia
2b2f1b1432 qcacld-3.0: Replace scheduler post msg with scheduler post messsage
Currently many modules use the scheduler_post_msg API which
doesn't allow the driver to know about the src, and destination
modules.

Fix is to call scheduler_post_message which has src, dest, and
the que id.

Change-Id: Ia5c43fe3ceeb7db9dde6241cbabac0ce48f88061
2019-02-06 11:16:22 -08:00
Bala Venkatesh
2a773828bc qcacld-3.0: Fix tdls idle peers data override
As part of connection tracker handler, If the link is connected
then current tx and rx stats are compared with configured threshold
values. If the current stats fall below the threshold then idle timer
is initialized and idle peer data is stored in tdls soc and given as
userdata to the timer handler. The userdata is overwritten if the another
tdls peer becomes idle and this can lead to wrong tdls peer teardown.

Change-Id: I34638bdebe02e17e1c9e117e58352bdaab867921
CRs-Fixed: 2393320
2019-02-05 11:09:31 -08:00
Bala Venkatesh
fa9601a4f6 qcacld-3.0: Initialize the max tdls peers in tdls soc
Currently, in tdls soc max tdls peers are initialized
in tdls_global_init that is done as part of tdls psoc open.
But, sometimes the Ini values used to initialize the tdls
max peers are not initialized before global init
because tdls_update_config has done for the Ini vallues.
This can lead to wrong value of max tdls peers in tdls
soc and later can result in TDLS connection deny.

Change-Id: I6bb51db571129490c225737c1913b8ddafadde8d
CRs-Fixed: 2392494
2019-02-04 15:36:33 -08:00
Madhvapathi Sriram
3e6627a9f9 qcacld-3.0: Optimize schedule msg post error logging
Change-Id: Ieaddca5f141c99c42ed4a7c954dea2788e353640
CRs-Fixed: 2373015
2019-01-22 02:37:31 -08:00
hangtian
a7938f8849 qcacld-3.0: Fix implicit tdls connection issue
Fix implicit tdls connection issue. Correct usage of qdf_mem_set.
DUT could receive multicast frames after tdls connection tear down,
add check condition of frames with multicast dest address in
tdls_update_rx_pkt_cnt.

Change-Id: Ia1d7bbf2c129e9aebc98f7fcdea263b745c221ec
CRs-Fixed: 2375043
2019-01-08 07:28:10 -08:00
gaurank kathpalia
b3645e79ae qcacld-3.0: Fix memory allocation latency in beacon process
This is mirror change for 0f9f01950

Currently if the number of APs in the STA environment
are many, then the STA will receive many beacons, whose
beacon process path can take long time, in the kernel
work queue, hence the other processes have to wait
for them to complete, and may get timeout, if the
the time to process the beaocns is larger than their
process timeout.
Fix is to :-
1. Add rate limit to failure conditions of memory
not allocated
2. Make memory allocation in path of beacon process
atomic.

Change-Id: I488b446c23fd01c993f7dd9bd989867fda2331d8
CRs-Fixed: 2363307
2018-12-11 06:11:02 -08:00
Linux Build Service Account
92728a078f Move umac/tdls to components/tdls
Change-Id: I12eedee6215337be7f5dbcf6d546910cecedd3c3
2018-12-04 15:47:36 +05:30