提交图

135 次代码提交

作者 SHA1 备注 提交日期
Prasanna JS
d1e852ef32 qcacld-3.0: Fix missing NAN discovery enable chipset stats
os_if_cstats_log_nan_disc_enable_req_evt is defined but not
called when there is a NAN discovery enable event, this resulted
in missing of NAN discovery enable stats in the chipset stats

Fix this by calling os_if_cstats_log_nan_disc_enable_req_evt
when there is a NAN discovery enable event

Change-Id: Ic9610e01fb0449c5233d6e651c42d395cb1f21c5
CRs-Fixed: 3804972
2024-05-30 09:24:34 -07:00
Prasanna JS
019b2fff7f qcacld-3.0: Add chipset stats for NAN operations
Add chipset stats for NAN operations

Change-Id: Iced9198240eed0bcddead32977b160cd8aeeedf8
CRs-Fixed: 3783059
2024-04-23 07:47:16 -07:00
Rahul Gusain
995b7ffc4a qcacld-3.0: Add INI to enable/disable NAN EHT cap
As per new requirement, add INI parameter to enable/disable NAN
EHT capability.
Host driver checks this INI value to decide whether it need to
send EHT IE capabilities for NAN and NDI VDEV or not.

Change-Id: I056c174cbc9a7ed2cf6318e43ed431e6c6e5ed30
CRs-Fixed: 3657226
2023-11-12 15:21:48 -08:00
Rahul Gusain
1d004f479b qcacld-3.0: Decrement NDI session in failure cases also
Currently, host driver sends NDP END ALL commands to the target
and target responses with NDP_HOST_UPDATE and NDP_END_IND. But
due to some reason if host driver does not receive NDP_END_IND
then there is timeout in driver and it starts the NDP cleanup.
While NDP cleanup, driver does not decrement the NDP session
in the PCL. Although driver destroy NDI but there is entry
remaining in the PCL. Hence, it rejects the NAN Enable command.

So, to fix this, while NDP cleanup, decrement the NDP sessions
and change the NDI state to disconnected in the failure cases
also and increase the timeout for NDP_END_ALL request.

Change-Id: I3c5f8f49adced528cb7199831e4d4c13a690dde3
CRs-Fixed: 3648611
2023-10-30 09:45:53 -07:00
Jyoti Kumari
f8a4637aa8 qcacld-3.0: Rename ETSI13's api to ETSI
As ETSI18 and ETSI20 also added to check SRD channels.
Rename the api of ETSI13 with ETSI.

Change-Id: Ib04e809ba53a55101a6254e0c1ef9f9b37b93fb8
CRs-Fixed: 3616398
2023-09-29 16:29:10 -07:00
Ashish Kumar Dhanotiya
fe6d7d0625 qcacld-3.0: Add support for LL_LT_SAP_MODE in policy mgr
Currently PM_LL_LT_SAP_MODE is not handled in policy manager.
With this change add support for PM_LL_LT_SAP_MODE in the policy
manager.

Change-Id: Icfbb3a95dc65225fc7dad5df7dca9306a5029402
CRs-Fixed: 3536491
2023-08-17 21:01:21 -07:00
Rahul Gusain
fa7ef9dc94 qcacld-3.0: Exchange CSID cap & GTK params
To support group NDP security, WiFi-HAL and firmware introduces
two new parameters (csid_cap and gtk_required) in NDP initiator
request, responder requestor and NDP indication event.

Host driver will retrieve the CSID capabilities and GTK parameter
and parse it to firmware in NDP Initiator and Responder request
TLV. Also, driver extract these parameters from NDP indication TLV
and will passes to Wifi-HAL in vendor event.

Change-Id: I4487559491754edafaccafa466512d6380b826b3
CRs-Fixed: 3583149
2023-08-14 15:21:40 -07:00
Asutosh Mohapatra
43249aa86c qcacld-3.0: Avoid allocating large chunk of memory statically
Currently in wlan_is_nan_allowed_on_6ghz_freq and
__wlan_hdd_sysfs_freq_show static allocation of 6 GHz
channel list is present which leads to stack overflow.

To address this issue allocate 6 GHz channel list
dynamically.

Change-Id: If363270ab51516b67c68399f805a0434ccbb5bd3
CRs-Fixed: 3557442
2023-07-13 04:49:32 -07:00
Rahul Gusain
ea6a35e9f6 qcacld-3.0: Update NDP peer MC list
Currently, driver gets peer multicast address list from kernel for
all interfaces and it send this list to firmware. For NDI, on NDP
confirmation indication, driver appends the multicast list with
new NDP peer added and then send it to firmware. But this is done
for first NDP peer only, kernel does not provide multicast list
again as kernel already configures the multicast addresses, unless
there is some reset happens in kernel.
This can cause issue as firmware is expecting the updated multicast
filter on each NDP confirmation (new peer is added) to enable the
NS frame exchange. As new peer is not added in the filter, firmware
will reject the NS frame.

So, to fix this, update the multicast list on NDP peer addition and
deletion.

Change-Id: I6371199ae5c3a8f4088987f1e6f10c39cbed1685
CRs-Fixed: 3518887
2023-06-16 11:33:04 -07:00
Rahul Gusain
8b87cede00 qcacld-3.0: Exempt STA + STA + NAN concurrency in host
Currently, host driver does not allow NDP formation if two STA is
in connected state. But driver should not allow NAN enable in first
if two STA is in connected state as STA + STA + NAN concurrency is
not allowed.

So, to fix this issue, add check for STA + STA concurrency in NAN
pre-enable in which NAN will drop if two STA + STA is present.

Change-Id: I6e6baa386d50b2903118660f10cc98ffcba60705
CRs-Fixed: 3481148
2023-06-15 21:23:43 -07:00
Rahul Gusain
bcb01fb787 qcacld-3.0: release the NDP end all command
Currently, driver post NDP end all command on the scheduler but
never release it. This casues timeout in the scheduler and driver
releases the vdev which is never referenced. This causes crash in
driver.

To resolve this issue, release the NDP end all command when NDP
Host Update event received from the firmware.

Change-Id: Iffe4f79b7c131c48cbf2b085d8bbc6e1fb0b5f0a
CRs-Fixed: 3521989
2023-06-08 20:46:27 -07:00
Rahul Gusain
bb7e163983 Revert "qcacld-3.0: Block NDP_END_ALL req till last NDP_END is received"
This reverts commit 54c2fe240a.

Change-Id: Ic0028674e4728b951215bf7b4d9a7535b8b49efe
CRs-Fixed: 3523826
2023-06-08 20:46:22 -07:00
Rahul Gusain
54c2fe240a qcacld-3.0: Block NDP_END_ALL req till last NDP_END is received
Firmware sends NDP_HOST_UPDATE event as an immediate response to this
request and starts cleaning peers one by one. Once an NDP session is
ended (indicating NDP_END to peer + internal cleanup), firmware sends
NDP_END_IND to host.
Currently, host driver stops the wait timer and change state from NDP
end to disconnected upon receiving the NDP_HOST_UPDATE. But firmware
might still be in the process of NDP cleanup. As the NDP_END_ALL
context is unblocked, driver may send NAN disable request to firmware.
This may cause inconsistency in firmware state machine and firmware may
drop the ongoing NDP_END request. So, peer doesn't get the NDP_END frame
in such cases.

Unblock the NDP_END_ALL-wait call only upon last NDP_END indication to
avoid such issues. This change moves the major functionality of
NDP_HOST_UPDATE processing to last NDP_END indication. Cleanup/remove
the processing of NDP_HOST_UPDATE as it's not needed anymore.

Change-Id: I19d3e40700c1c0501b9c809820262472bf9bdba4
CRs-Fixed: 3512847
2023-06-02 16:47:31 -07:00
Vijay Patil
29d922df4a qcacld-3.0: Don't allow NAN enable when DFS CAC is in progress
When DFS CAC is going on for SAP, if 5 GHz mac is occupied by the
SAP and it's not available for 5 GHz NAN discovery. Enabling NAN
on 5 GHz in such cases cause inconsistency in firmware state machine
and firmware may assert as DFS MAC is not supposed to be disturbed
while CAC is going on.

So, check if NAN enable request has 5 GHz NAN channel also and reject
the request. Allow NAN enable command if it's 2 GHz only NAN enable
request, while CAC is going on.

Change-Id: If3f2b2b40cc2b70bc7a872970bc088204440d519
CRs-Fixed: 3458462
2023-05-13 17:02:27 -07:00
Srinivas Dasari
b01b3c5e00 qcacld-3.0: Handle eMLSR+NAN concurrency
eMLSR + NAN concurrency is not supported currently, so handle it
as mentioned below
1. eMLSR+NAN: If NAN is coming up when eMLSR is active, disable
   one ML link so that eMLSR gets disabled.
2. NAN+eMLSR: If eMLSR is coming up when NAN is already enabled,
   disable one link so that eMLSR doesn't get enabled.

Also, cleanup the APIs to carry a generic flag to indicate that
a concurrent connection is coming up instead of mode specific flag
as there is no dependency on modes to handle concurrency.

Change-Id: I625f8b18f9d7e991922d22af53f3e8743a3727bd
CRs-Fixed: 3443900
2023-04-17 17:50:14 -07:00
David Oladunjoye
6477abee2c qcacld-3.0: Update twt concurrency after ndp connection return
TWT concurrency update is called before ndp connection is added to
policy_mgr count. TWT concurrency_handler reads incorrect count which
causes wrong mode to be checked. Fix is to call TWT concurrency
update after NDP entry is made in the policy manager.

Change-Id: I7f259885f7402ab018ff7c7cd020bb3f9298dba1
CRs-Fixed: 3454000
2023-04-10 20:48:53 -07:00
Jyoti Kumari
4ea4347be1 qcacld-3.0: Pass vdev_id as an argument in policy_mgr_get_pcl()
Pass vdev_id as an argument in policy_mgr_get_pcl()

Change-Id: If016b2ad1e47d1d8364037e44bd984e5b95c8d6f
CRs-Fixed: 3412927
2023-03-22 00:40:19 -07:00
Jeff Johnson
b7d54a9d11 qcacld-3.0: Fix misspelling "sceurity"
Fix misspelling: "sceurity" => "security".

Change-Id: Idaf2f1a19b5376ec0cb44cb2c995c56f689e4a4d
CRs-Fixed: 3429926
2023-03-16 11:19:02 -07:00
Pragaspathi Thilagaraj
fbf0ea73d5 qcacld-3.0: Don't allow TDLS on MLO vdev
TDLS is not supported on ML STA but it gets enabled
currently when connected with ML AP and TDLS discovery request
is sent to peer devices.

So don't allow TDLS on MLO vdev.

Change-Id: I5bb9e03a0be3f3249aa7af664666a53a67ee812d
CRs-Fixed: 3416206
2023-03-09 23:26:11 -08:00
Rahul Gusain
6e78070bc6 qcacld-3.0: extract NAN vdev_id from mgmt BSSID
Currently, driver finds PASN peer from BSSID in mgmt auth frame
and with help of this peer, it extracts the vdev_id. It uses this
vdev_id to retrieve the adapter in hdd.
But for NAN iface, there is no PASN peer and driver drops the
auth mgmt frame as no valid vdev_id available.

The NAN Cluster ID is a MAC address that takes a value from
50-6F-9A-01-00-00 to 50-6F-9A-01-FF-FF and is carried in the A3
field of some of the NAN frames.
So, to fix this, compare the first four bytes BSSID with
"50-6F-9A-01" and extract the vdev from vdev_list for NAN opmode.

Change-Id: Ie4f15549e3bd8378e362538da4d7ec49e84ad138
CRs-Fixed: 3382962
2023-01-24 09:39:23 -08:00
Roopavathi Lingampalli
38bf757799 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 NAN, vdev_mgr in DP
component module.

Change-Id: Ia5431c7de7fc944aacf5c8a328072a8ec31e8f3f
CRs-Fixed: 3351496
2023-01-17 21:04:25 -08:00
Divyajyothi Goparaju
adfb3a43d6 qcacld-3.0: Optimize pdev/vdev set param command
Currently host sends many pdev/vdev set param
commands separately to firmware from hdd.

Combine multiple pdev/vdev set params and
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: Ib76f5bd5f582a2c67486f6773ff6fd486b3d84cf
CRs-Fixed: 3333732
2022-12-30 00:06:07 -08:00
Divyajyothi Goparaju
fd4205850c qcacld-3.0: combine tx_rx chain mask pdev set params
Currently host sends tx chain mask and rx chain mask
pdev set params separately to firmware.

Combine these tx_rx chain mask pdev set params,send to WMI
to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.

Change-Id: I6bd27b4bc99cbe44e6bdca2a8d55050a49719673
CRs-Fixed: 3333635
2022-12-30 00:06:01 -08:00
Jeff Johnson
116c817bb8 qcacld-3.0: Fix NAN Documentation
The kernel-doc script identified a multitude of documentation issues
in components/nan, so fix them.

Change-Id: Ibec4c381da3088f704264d04f756d82d20613c46
CRs-Fixed: 3359549
2022-12-27 19:09:33 -08:00
Sheenam Monga
ac14a3912b qcacld-3.0: Send async event to userspace for NAN concurrency
As part of Spatial Reuse, host has to send SR Suspend and resume
events based on concurrency which is not sent in case of NAN
concurrency.

Fix is to send SR Suspend in case NAN comes up and any STA that
supports SR is already present because SR is not supported in
case of NAN concurrency. Similarly during NAN disable check
if any other vdev apart from NAN is sharing mac with STA that
supports SR and SR support on same mac is disabled then don't
send SR resume event as there is already a concurrent vdev that
will take care of SR Suspend event otherwise send SR Resume event.

Change-Id: I56a9b455dd0166bc3997f8306992e46da759e992
CRs-Fixed: 3339713
2022-12-13 17:24:16 -08:00
Srinivas Dasari
9d6fa2ef4d qcacld-3.0: Free the NAN buffer when fail to serialize the command
When same NAN commands are issued back to back, serialization
module rejects the commands when there is a command present
in the pending queue. But the memory allocated for the NAN buffer
is not freed in such failure cases.
Free the NAN buffer in such failure cases to avoid memleaks.

Change-Id: I1d1f9c077d4b6239f4400d9b3ed185e63e471b56
CRs-Fixed: 3341229
2022-11-30 22:51:22 -08:00
Jianmin Zhu
8b9b29fbc0 qcacld-3.0: Avoid deadlock for back to back SAP CSA
While SAP doing CSA, NAN enabled, SAP tries to do CSA to force SCC with
NAN in scheduler thread, since last CSA in progress, scheduler thread is
blocked to wait last CSA finished, CSA timer can't be handled in scheduler
thread any more, last CSA can't finish, deadlock happens until timeout.

To fix it, let SAP force scc with NAN logic run in work thread instead of
scheduler thread.

Change-Id: Icb774ffcfc70f279ba3b18b3c5cd4a169180e99b
CRs-Fixed: 3344905
2022-11-27 03:34:23 -08:00
Rahul Gusain
38d541df76 qcacld-3.0: Make NAN high priority than TDLS in legacy platforms
Firmware handles all NAN concurrencies in the platforms which
don't advertise the WMI service cabability
WMI_SERVICE_NAN_DISABLE_SUPPORT. Host takes care of the NAN
concurrency if the capability is advertised by firmware.
But there can be some legacy targets where firmware wants to
offload NAN+TDLS concurrency alone to the host and it takes care
of rest of the concurrencies. This is to make NAN of higher
priority and disable TDLS when NAN is active. Currently, TDLS is
of more priority than NAN and it can't change the order as it
can't disable TDLS to change the priority.

Currently, driver doesn't parse the NAN messages(even NAN enable
request) in such platforms. Parse the NAN messages and disable
TDLS upon NAN enable request. Rely on NAN state machine to
allow/disallow new TDLS requests. This needs NAN enable status.

Change-Id: Ie9c7c1cc2f1ed6328a31b93077c2928940fc3450
CRs-Fixed: 3263730
2022-10-26 18:47:42 -07:00
Rahul Gusain
87a052f1f5 qcacld-3.0: Optimize NAN state machine when driver recovers
Currently, host driver sends NAN enable and disable request to
firmware and wait for its response to change the NAN state in
driver. But, when firmware is down (during SSR), driver is in
recovery state and so, timeout occurs while waiting for response.

To fix this, driver does not need to wait for NAN enable/disable
response from firmware in recovery state. It can directly take the
action and change the NAN state machine. Hence, add flag to check
the driver recovery state. If recovery is in progress, then driver
does not wait for firmware NAN enable/ disable responses.

Change-Id: I0325240cc082d8ef91d48793d3da2eea552d59cd
CRs-Fixed: 3307543
2022-10-10 04:32:46 -07:00
Jeff Johnson
56e9a4a4ef qcacld-3.0: components: nan: Fix misspellings
Fix misspellings in components/nan/...

Change-Id: I674974e300e440205676f822d0068e90ae1cc0c8
CRs-Fixed: 3303640
2022-10-07 03:49:24 -07:00
Rahul Gusain
d7b141370b qcacld-3.0: Add null peer check before releasing the peer
Currently in driver, for non-DBS hw mode, null peer is released in the
function ndi_remove_and_update_primary_connection. This causes null
pointer deferencing.

To fix this, add null peer check before releasing the peer.

CRs-Fixed: 3184390
Change-Id: Ia895c8487082e0fac6e7df63d3694fa3e152b355
2022-07-05 19:52:39 -07:00
Rahul Gusain
bfc2c02560 qcacld-3.0: Remove the dependency on NDI name
Currently in driver, NAN Data Interface can be created with
only name "aware_data" which creates dependency on interface name.

To remove the dependency, the interface is created now by name
provided by Wifi-HAL.

For this, interface is created in STA mode with name provided by
WiFi-HAl. While processing  vendor cmd QCA_NL80211_VENDOR_SUBCMD_NDP,
given ifname is searched in adapter list and mode is changed to NDI.

CRs-Fixed: 3196179
Change-Id: I62dd512f8a7de4c69a53babf3112942d348bf3b6
2022-06-13 15:06:26 -07:00
Ashish
4bc1f3cb67 qcacld-3.0: Update data type of iface name to const for NAN
Currently driver code has data type as char* for NAN related code.
With this change update this data type as const char*.
Also, move NAN related functions under WLAN_FEATURE_NAN feature flag.

Change-ID: I61ad10304be4399a68f32778d01d9a951d7d14bb
CRs-Fixed: 3169168
2022-04-11 19:47:10 -07:00
Ashish
cede71c355 qcacld-3.0: Add/del virtual iface using NL commands for NDP
Currently host driver creates/deletes NDI interfaces using
vendor command. With the kernel 5.12 version onwards,
interface creation/deletion is not allowed using vendor
commands as it leads to deadlock when driver tries to acquire
the RTNL_LOCK at the time of netdev register/unregister.

With this change, add support to Create and delete NDI interface
using NL80211_CMD_NEW_INTERFACE and NL80211_CMD_DEL_INTERFACE
commands respectively if driver advertises
QCA_WLAN_VENDOR_FEATURE_USE_ADD_DEL_VIRTUAL_INTF_FOR_NDI capability.
Since NL80211_CMD_NEW_INTERFACE and NL80211_CMD_DEL_INTERFACE
already comes with the rtnl lock and driver does not need to
take the rtnl lock again which will help to avoid the above issue.

Change-Id: I6d5441a5e883de1222f105f26d73cb0506d16ddf
CRs-Fixed: 3167125
2022-04-11 19:46:27 -07:00
Ashish
4e33f10a0c qcacld-3.0: Do not allow NAN on passive channels
Current NAN is allowed on passive channels which is not
expected as passive channels does not allow initial
trnsmission.

To address above issue, do not allow NAN on passive
channels.

Change-Id: Ied7ba8eb38feb528209cafa6793aed93456989d6
CRs-Fixed: 3157369
2022-04-03 17:56:00 -07:00
Surya Prakash Sivaraj
7fd14302fe qcacld-3.0: Send service id in NDP indication
Send service from wmi_ndp_indication_event_id to the userspace
via the new vendor attribute QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_ID
as part of ndp indication.

Change-Id: I90b4540d5f3c72bbb7e8b542406561daf2a7a869
CRs-fixed: 3128874
2022-03-01 20:41:22 -08:00
Srinivas Dasari
d2a4401675 Revert "qcacld-3.0: Make default value of ndi_max_support as 2"
Enabling ndi_max_support=2 is consuming 4 vdevs + 11 peers
in firmware when STA and NAN(+2 NDIs) are active. Max peers
allowed in firmware are 11 only and this ini configuration is
consuming all of them.
There is no provision/memory for new peer allocation even for
simple use cases like roaming(roaming needs a temporary peer).

Revert this change and set the ini ndi_max_support=2 in target
specific ini files if required to avoid the peer exhaust issue.

This reverts change: Id45147541dba057c2f3420adee43c7a56e3ee72b.

Change-Id: If655b63071b07e96b4e343b8e1bb65acd33be625
CRs-Fixed: 3120555
2022-02-09 13:08:38 -08:00
Jyoti Kumari
b5c156c697 qcacld-3.0: Check MLO STA + NAN + NDP concurrency support
Check MLO STA + NAN + NDP concurrency support. Allow this
combination only If service cap and mlo sta presents.

Change-Id: I6fd0cae227eb8c4096444160b2450ad65dc51c30
CRs-Fixed: 3120645
2022-02-02 17:11:11 -08:00
Jyoti Kumari
e5b79679ef qcacld-3.0: Add MLO STA + NAN + NDI service cap support
Add MLO STA + NAN + NDI service cap support

Change-Id: I736a68552502f5fc1fb498cfd8db6bad99a75b5e
CRs-Fixed: 3120620
2022-02-02 17:11:06 -08:00
Srinivas Dasari
accd92e85d qcacld-3.0: Peer may not be present if NDP confirm fails
NDP peer gets created as part of NDP indication in case of NDP
initiator. But NDP may fail to form due to various reasons and
firmware may send NDP confirm with reject status in such cases
instead of NDP indication event.
Below is the detailed scenario,
1. On initiator side, it has sent an NDP request and is waiting
   for NDP response.
2. On responder side, application/framework is preparing to send
   NDP response with reject due to some config mismatch. At the
   same time, NDP termination is also issued. So NDP termination
   frame is sent successfully.
3. Initiator firmware receives this NDP end and it sends an NDP
   confirm with REJECT to the host and it shall clean-up the
   session.

Currrently, there is a check for the peer existence while
indicating this NDP confirm status to framework. There is no need
of this check in such failure cases as peer is not yet created.

Change-Id: Ibe94a5b67df1ce3d65eaf2ef37b11b08155752c9
CRs-Fixed: 3086975
2022-01-21 15:47:31 -08:00
Srinivas Dasari
69b074e9f9 qcacld-3.0: Make default value of ndi_max_support as 2
Currently, the ini param "ndi_max_support" is set to 1 in the
ini definition though DUT can support maximum 2 NDIs.
Customers need to set the ini param to 2 in ini file
in order to support two NDIs. This ini param value needs
to be maintained across chipsets and android versions,
which is difficult.
Change the default value to 2 to avoid these. If any customer
needs the value to be 1, the same can be set in customer/target
specific ini files.

Change-Id: Id45147541dba057c2f3420adee43c7a56e3ee72b
CRs-Fixed: 3097045
2021-12-28 05:19:17 -08:00
Ashish
fd8abaebdb qcacld-3.0: Enable nan only for VLP channels for 6GHz
Currently for 6GHz, nan is allowed on LPI channels as well,
nan should be allowed only on VLP channels.

With this change allow nan only on VLP channels.

CRs-Fixed: 3072585
Change-Id: Ic8cd8a5ca5c096530762cc0f9d199cef30155838
2021-12-14 14:09:08 -08:00
Bapiraju Alla
6058846058 qcacld-3.0: Fix mem leak with NDP peer multicast address list
Currently, NDP peer multicast address is derived from peer MAC address
and cached in the host. While removing the NDP peer, peer MAC address
is used to search the cached multicast address list. Because of this,
peer multicast address list is not getting freed.

To resolve this, derive peer multicast address from the peer MAC address
while clearing the cached multicast address list.

Since MAX NDP sessions are 8, allocate memory for peer multicast address
list during the NAN vdev private object allocation. This avoids the
special handling for peer multicast list in multiple error scenarios.

Change-Id: Ifbf890a4b9c8be54d84a5b57ed8f6c237ecd51ca
CRs-Fixed: 3085069
2021-12-01 04:22:56 -08:00
Bapiraju Alla
5cf970b5c7 qcacld-3.0: Derive NDP peer multicast address from peer MAC address
Currently, driver is depending on NS frame to be received to configure
peer multicast address for an NDP session. If there is a delay in NS
frame reception, peer multicast address list will be configured to the
FW without actual peer multicast address. Because of this, FW will drop
the NS frame from NDP peer.

To address this, derive peer multicast address from peer MAC address
and include it in multicast address list that is configured to the FW.

Change-Id: I92a575352d592b4001dc4f061e31eb7f592f8445
CRs-Fixed: 3066990
2021-11-24 02:43:52 -08:00
Yu Wang
b4e1e2b18a qcacld-3.0: add concurrency checking for MLO STA
Update the concurrency policy for STA mode.
For an upcoming STA connection:
1. Disallow the 2nd STA connection if multiple STA connections are
   not allowed.
2. Allow the secondary MLO link when primary link is connected.
3. Disallow ML STA when ML STA/SAP is present.
4. Disallow the 3rd STA.
5. Allow for the other cases.

Change-Id: I70c41177b7a3a9aa9cbac0aaced08c6eafca2b6d
CRs-Fixed: 3012577
2021-11-07 22:52:37 -08:00
Srinivas Dasari
36a55492f6 qcacld-3.0: Don't proceed with NDP peer handling if NDI is not UP
Firmware might send NDP peer indication/NDP responder response
while NDI deletion is in progress. Currently, NDP peer entry
gets added though vdev is moved to DOWN state and cleanup is
in progress. This leads to stale peer entry on that NDI vdev
and doesn't allow vdev delete when IFF_DOWN comes, as a peer
is present.
Check the vdev state before creating peer for NDP and skip
peer creation if NDI vdev is not in UP state(which indicates
that the vdev down is happening).
Also, don't process the NDP confirm if NDP peer is not created.

Change-Id: I73e79cc33b1a294e3f4a4a6e2f371033862c5709
CRs-Fixed: 3061756
2021-11-02 06:29:20 -07:00
Srinivas Dasari
742eed43d1 qcacld-3.0: Move nan pdev declaration to right place
pdev is declared in nan_enable_req after a variable-size array.
Place the pdev declaration before the array to avoid corruption
while copying contents to the buffer.

Change-Id: I92766c40909bcecaed5f1eb6e2f015447f3c8221
CRs-Fixed: 3060146
2021-10-21 15:49:02 -07:00
Srinivas Dasari
3d0e41cad1 qcacld-3.0: Abort any ongoing p2p scans while enabling NAN
Framework disables p2p before enabling NAN as P2P+NAN concurrency
is not supported. NAN operations happens through wifihal and p2p
operations happen through wpa_supplicant which are two different
userspace components. Wifihal call to enable NAN may come to host
driver before disabling p2p through wpa_supplicant. There are high
chances for p2p scan to be in running state while NAN enable is
received. Firmware NAN state machine goes to inconsistent state
and disables NAN as p2p scan is running in such cases.
So, stop the ongoing p2p scan before enabling NAN as P2P+NAN
concurrency is not supported currently.
Also, forward the pdev to NAN component inorder to iterate through
all P2P vdevs.

Change-Id: Ibe30a5ebe90514aee4f6721cdc5476570524cad8
CRs-Fixed: 3054576
2021-10-19 16:25:15 -07:00
Srinivas Dasari
b22c118d2a qcacld-3.0: Increase the NDP_END wait timeout to 4 seconds
Currently, host driver expects NDP_END indication from firmware
within 2 seconds after sending request to firmware. Driver shall
timeout and cleanup the corresponding NDP entry if no response is
received within 2 seconds. But firmware may take upto 2.5 seconds
to exhaust the NDP_END frame retries.
So, increase the timeout to 4 seconds to accommodate these retries
and to be inline with current NAN_DISABLE timeout.

Change-Id: Ida1abc25b4ff64aea810c88dbf36f9577b23ffd8
CRs-Fixed: 3002176
2021-07-29 07:41:09 -07:00
Jyoti Kumari
7b38805edc qcacld-3.0: Handle SAP concurrency in CSA and NAN/NDI case
TWT is supported in STA/SAP vdevs and it's allowed only in
DBS/Standalone case and not in SCC/MCC. Disable SAP TWT if
1. Concurrency occurs in SAP + NAN/NDI vdev
2. SCC/MCC occurs after CSA

Change-Id: Id1400bd5555d2f48590d7d3ad7c70162d1dd92fb
CRs-Fixed: 2942959
2021-06-04 00:28:13 -07:00