Граф коммитов

490 Коммитов

Автор SHA1 Сообщение Дата
Vinod Kumar Pirla
1bfe0bb643 qcacmn: Disconnect VDEVs in IDLE_DUE_TO_LINK_SWITCH
Host driver moves VDEV SM to IDLE_DUE_TO_LINK_SWITCH any link
switch failure to handle events such as DISCONNECT_REQ which
gets dropped if the VDEV is in INIT state.

Disconnect request on any ML VDEV initiates disconnect on partner
VDEVs as well if they are either in connected or connecting state
but not if in IDLE_DUE_TO_LINK_SWITCH state. This leaves the VDEV
in this new IDLE_DUE_TO_LINK_SWITCH state instead of in INIT state.

Include VDEVs which are in IDLE_DUE_TO_LINK_SWITCH during partner
VDEV disconnect so that VDEV SM moves to INIT.

Change-Id: I6e715c0bb94562be866e902009b3bfd7d2c60e8a
CRs-Fixed: 3659110
2023-11-13 01:35:35 -08:00
Amruta Kulkarni
5fdc1a6c52 qcacmn: Clear saved keys during ml dev initialization
Issue happens during following scenario:
1. Connecting to ML AP1 (with SSID1) and disconnect.
2. Connecting to ML AP2 (with SSID2), as part of that vdev
 is destroyed and created but stored keys for AP1 are not reset.
3. Disconnect for ML AP2.
4. Connect to ML AP1.

Now host driver sends stored keys FW instead of the newly
generated keys sent by supplicant.

To fix this during ML dev initialization
clear the stored keys.

CRs-Fixed: 3649214
Change-Id: Ibffeb8b3108bf353e9140cbc901f99f08d9b0449
2023-11-09 20:55:44 -08:00
Arun Kumar Khandavalli
9292763c72 qcacmn: Reject link switch if link is already active on other vdev
Currently host is directly acting on the link_id for which link switch
is requested, if the link is already active on the other vdev if the
link switch is not sanitized resulting in firmware ending up
in bad state.

Reject the link switch if the link is already active on different vdev.

CRs-Fixed: 3635416
Change-Id: Idf445dcc487540c4faac7cf98abf7c214512d750
2023-11-03 10:08:01 -07:00
Sheenam Monga
d703ee943b qcacmn: Provide reassoc_rsp when assoc resp not present
Currently, mlo_get_assoc_rsp provides assoc rsp pointer
every time even in case of reassociation where assoc rsp
is not valid which can cause issue in link_switch as assoc
rsp provided might be invalid.

Fix is to provide reassoc rsp if present in case assoc
rsp is not present.

Change-Id: I91715a39f77159b68eee5cc97dc291a09e21a897
CRs-Fixed: 3622768
2023-11-01 04:47:24 -07:00
Srinivas Pitla
c94e9f1b4d qcacmn: Change debug level of WSI stats prints
This change reduces the debug level of WSI stats prints

Change-Id: Icfdcd1f8b60afbb3b242ed034ae88e1975222773
CRs-Fixed: 3636955
2023-10-26 16:09:10 -07:00
Shashikala Prabhu
0a0e0f6f7b qcacmn: Add API to update peer-to-peer level negotiation
When Mapping Switch Time(MST) or Expected Duration(ED) expires the
peer-to-peer level T2LM negotiation will be discarded. Hence, add a
callback to update the peer-to-peer level T2LM negotiation data
structures on MST and ED expiry.

Change-Id: I873e07918941ea16c90fb40445b5c032abe9676b
CRs-Fixed: 3640538
2023-10-18 04:25:41 -07:00
Shreedhar Parande
ef640697c4 qcacmn: Add API to check active link in all MLDs
Add API to check active link in all MLDs.

Change-Id: Iec05b37543718f2f79dab0fa0201aac93431d46f
CRs-Fixed: 3635226
2023-10-18 00:52:40 -07:00
Liangwei Dong
a725261a81 qcacmn: Fix standby link removal fail
Add callback mlme_vdev_reconfig_notify_standby to cld code to
handle standby link removal.
For standby link, it is going to be removed by AP, so don't
start link removal timer for it. Force inactive it to avoid
link switch to it.

Change-Id: Iae8eebeb2263b0057026c0e80223ef5c6b68a41f
CRs-Fixed: 3640204
2023-10-17 15:53:25 -07:00
Aasir Rasheed
2ff56fd9e2 qcacmn: Add link info event status types
This change is to add link info event status types.

Change-Id: I5641dfdc4d50997948b133e29a46829ec41078ee
CRs-Fixed: 3630436
2023-10-14 18:10:24 -07:00
David Oladunjoye
d9fedf26a8 qcacmn: 2-link MLO Sap Simulation
Current SAP is unable to support multi-link MLO connection.
To unblock validation we simulate 2-link connection on SAP.

Changes are as follows:
	- Add support for multi-link during assoc
	- disable security check during assoc

Change-Id: I21b3de2298085d7e6676854a7be68608546ccc6c
CRs-Fixed: 3591638
2023-10-07 00:01:22 -07:00
Nidhi Jain
0fc63202c0 qcacmn: Fix modpost issue due to mlo_mgr_get_ap_link_by_link_id
This change is to fix modpost issue due to mlo_mgr_get_ap_link_by_link_id
in 6.x compilation.

Change-Id: I2da64fd550f6dbafe87100ca80a280834f1f3f12
CRs-Fixed: 3603454
2023-10-05 07:00:50 -07:00
Deeksha Gupta
78868f0a7e qcacmn: Add new API to clear the MLO MGR context
Add new API to clear the particular AP link info
from the MLO MGR context.

CRs-Fixed: 3616166
Change-Id: Ia3b69a58dd3d3687199ee58462d59ba76c24cd6d
2023-10-04 11:17:10 -07:00
Deeksha Gupta
a8ed648342 qcacmn: Optimize ML connection related logs
Optimized and remove redundant ML connection logs.

CRs-Fixed: 3624931
Change-Id: Ieb8c27104a9c5e1247441cd347e91d118dcc45d1
2023-10-04 11:16:59 -07:00
Srinivas Dasari
fa6e3838d9 qcacmn: Define an API to check if any MLO link is disconnecting
Add an MLO API to check connection manager state machine if
any MLO link is in disconnecting.

Change-Id: I411ed9c9ab7cc0378147b5a4cf930b43cd3f7814
CRs-Fixed: 3628519
2023-10-03 12:01:20 -07:00
Srinivas Pitla
3d43b6ab94 qcacmn: Fix egress and ingress count in WSI stats
This change modifies the egress count as secondary link counter
and ingress counters as bypass link counters

Change-Id: I5ad49eec15ca8a0b9858f5c85a76dc69644bdf72
CRs-Fixed: 3629542
2023-10-02 17:52:01 -07:00
Aasir Rasheed
e627ca11b5 qcacmn: Parse Extended MLD Capabilities & Operations of ML-IE
Add support to parse Extended MLD Capabilities and Operations
Subfield of the ML-IE.

CRs-Fixed: 3571330
Change-Id: I7dc34c1fb9ef1eee351bc4d964a002b687289799
2023-10-01 18:12:34 -07:00
Sheenam Monga
13e4f87d48 qcacmn: Trigger Self Recovery on link_switch timeout
Currently, on link switch timeout recovery is not triggered
due to which issues may come later and impact FW also.

Fix is to trigger self recovery on timeout.

Change-Id: I6c81c2da9df39ae96a6d8b0e2ce1c22507cf777a
CRs-Fixed: 3625653
2023-09-29 16:30:19 -07:00
Aasir Rasheed
63788401a2 qcacmn: Enhance STA key management
Currently, Host driver is not resetting the STA key management
for each connection, causing unpredictable behavior during
subsequent connections.

This change is to enhance STA key management to reset with each
connection and ensuring the deferred key flag is set only
once per link.

Change-Id: I5a28e6c8b3919929bafa1a25da4b5fa4b9adde98
CRs-Fixed: 3621227
2023-09-29 02:24:28 -07:00
Liangwei Dong
cab8f71b14 qcacmn: unregister link switch cb before mlo global ctx deinit
Unregister mlo mgr link switch cb before mlo global ctx deinit
because the cb is maintained by global ctx.

Change-Id: I2bd95e74e9067e19db7448510bc6255c3bd7a1f3
CRs-Fixed: 3604403
2023-09-28 06:58:00 -07:00
Vinod Kumar Pirla
b1f923bc46 qcacmn: New substate for VDEV in INIT due to link switch
If connection fails, CM state will be moved to INIT state and
kernel will not be made aware of this connection failure in case
of link switch and treats the interface as if it is connected.
In such case kernel and host will be out of sync and because of
this if any disconnect request is received host will drop them
immediately as VDEV is in INIT state.

Introduce new substate of VDEV for INIT state. If VDEV moves to
INIT state either due to link switch disconnect or link switch
connect failure, instead of being in INIT-IDLE state move VDEV
to INIT-IDLE_DUE_TO_LINK_SWITCH. If any disconnect request is
received in INIT-IDLE_DUE_TO_LINK_SWITCH state then instead of
dropping the request forcefully queue the disconnect and proceed
for disconnect to notify kernel.

Drop link switch connect will be dropped if VDEV is not in
INIT-IDLE_DUE_TO_LINK_SWITCH state.

Change-Id: Ifb6b72f0720b95cf862e9a4ff756b6577a3e45fd
CRs-Fixed: 3617919
2023-09-27 13:09:42 -07:00
Jianmin Zhu
01c751d3fd qcacmn: Avoid NULL pointer deference
Validate sta_ctx->copied_conn_req before use to avoid NULL pointer
deference.

Change-Id: I0d46901f7709b1b6bcf63a7ca5178fb7ad90b33d
CRs-Fixed: 3621066
2023-09-26 14:41:22 -07:00
Uraj Sasan
3ed0c49f5e qcacmn: Clear the bridge context properly
Bridge context was not getting cleared properly which
was causing issue in connection of WDS STA. Make sure
to clear the bridge_sta_ctx and reset central vdev.

Change-Id: I397e5ffc1223bb0e60e67d8bc3e8c4d8bbbf7808
CRs-Fixed: 3618063
2023-09-25 20:17:21 -07:00
Surya Prakash Raajen
6bd218f3be qcacmn: Send standby pdev info to FW
Send standby pdev/radio which is expected to be up while
in powersave mode to FW, to switch master control for
timers.

Change-Id: I4b48d93859359d1b6aee0b9993fd1bd3bff863f2
CRs-Fixed: 3621705
2023-09-25 05:17:23 -07:00
Santosh Anbu
ae01803cfd qcacmn: Clear up bmap for vdev moving to UP_ACTIVE state
During MLO AP vdev partner bringup, SYNC_COMPL can be posted for a
vdev twice since the bitmap is not cleared after posting the event.
But is cleared only when the vdev exits the sync_wait state.

Hence add change to clear the bitmap before posting the event so
so that no other partner vdev will post the same event once again.

Change-Id: I15226b650e4dc51a379d97556f2f2ab62319adf7
CRs-Fixed: 3605598
2023-09-23 17:23:59 +05:30
Linux Build Service Account
38ceb24812 Merge "qcacmn: Parse Extended MLD CAP & OP of ML IE" 2023-09-22 11:09:35 -07:00
Aravind Kishore Sukla
bce140bd10 qcacmn: Add check to validate ml cap offset
Before passing ml cap offset, there is no proper
check for its validation, which may lead to OOB.

Add a check for its offset, before passing.

Change-Id: I5e5a10e8740b3cd3fcef2c6aef1f0a43c74818cd
CRs-Fixed: 3581103
2023-09-22 07:28:51 -07:00
Linux Build Service Account
bd7db3b28b Merge "qcacmn: Add Extended MLD Capabilities And Operations in Basic ML IE" 2023-09-22 01:14:01 -07:00
Linux Build Service Account
56346417b7 Merge "qcacmn: Rectify macro for Reconf ML IE STA Control size" 2023-09-22 01:13:48 -07:00
Srinivas Pitla
f1bb50be1b qcacmn: FT over DS association support
Add support for MLD MAC address table to MLD.
This MLD address table allows API to add/delete/find entries by MLD MAC
address. This framework would be used for implementing FT over DS,
where Assoc request is received by AP without receiving Auth request.

Change-Id: I3dbc4c0507f2113d2c0cc5e58f41d69243a4cfc8
CRs-Fixed: 3608944
2023-09-20 23:59:58 -07:00
Krishna Rao
67aef668a0 qcacmn: Rectify macro for Reconf ML IE STA Control size
The macro for size in octets of STA Control field of Per-STA Profile
subelement in Basic variant Multi-Link element Link Info field was
being used for a similar purpose in Reconfiguration variant Multi-Link
element. Rectify this to use the correct corresponding macro for
Reconfiguration variant Multi-Link element processing.

CRs-Fixed: 3618434
Change-Id: I05f0a2f6586f5378fbb9f4dd3422a70031fc4729
2023-09-19 10:07:04 -07:00
Aasir Rasheed
52662b6274 qcacmn: Prevent key install before receiving from user space
To prevent key installation in firmware before receiving the key from
user space. Currently, host receive the key in one thread
while simultaneously installing keys in a scheduler thread.

This change aims to resolve the synchronization issue by allowing key
installation only in one thread.

Change-Id: Ib5772cd2d0ed470756a4222aa9e11c356390f014
CRs-Fixed: 3591663
2023-09-16 07:46:23 -07:00
Vijay Raj
75a684099b qcacmn: Add support to handle WMI_MLO_LINK_STATE_SWITCH_EVENTID
Register event handler for WMI_MLO_LINK_STATE_SWITCH_EVENTID.
Add target if event handler for the
WMI_MLO_LINK_STATE_SWITCH_EVENTID event, and register
corresponding mlo manager callbacks.

Add extract API for link state switch event parameters received
Call the diag event API from MLO manager post extracting the
event

Change-Id: Ib588ee87a5c37c6a34c86ce8cbf134a273c6461b
CRs-Fixed: 3610041
2023-09-15 21:09:43 -07:00
Himanshu Batra
f07920991b qcacmn: Check return value for scheduler post msg
Check return value for scheduler post msg for disconnect message

Change-Id: Ib6ebbd5d043cf48410ff902ec6eacbaf3a7f3c2a
CRs-Fixed: 3614968
2023-09-15 17:34:34 -07:00
Surya Prakash Raajen
ff56ef27f4 qcacmn: Add mlo teardown support for standby active mode
Add mlo teardown support for standby active mode in
mlo setup sequences and wmi

Change-Id: Iaa727527c53ff0ad6c7682e039ef23fa537e1ae0
CRs-Fixed: 3613367
2023-09-15 17:34:13 -07:00
Rakesh Boyina
163480807f qcacmn: Add Extended MLD Capabilities And Operations in Basic ML IE
Add definitions for sub-fields in Extended MLD Capabilities And Operations
of Multi-Link IE

Initialize AAL params in Extended MLD CAP and OP subfield of Basic ML IE

Change-Id: I84dfd7e4682d1ed040c1158e09888ad193aabca2
CRs-Fixed: 3590364
2023-09-13 15:50:26 -07:00
Rahul Gusain
f0fc4d0daf qcacmn: Code refractor for ML debug id
Currently, in some API such as
"wlan_cfg80211_tdls_add_peer_mlo", when driver gets vdev, it is
MLO vdev, so it uses WLAN_MLO_MGR_ID ID, but when it tries to put
the vdev, since disconnection happens and mlo flag is cleared,
so it uses WLAN_OSIF_TDLS_ID ID which is non-ML vdev.
This causes release of vdev reference from different id for which
it never takes reference and result in crash.

To fix this, use same debug id throughout function. For that,
generalize the get_ml_vdev API by passing the debug id as
argument to the function.

Change-Id: I5800d207fdd17692297e71a0a9cdbcb86a4c5650
CRs-Fixed: 3608817
2023-09-13 14:21:02 -07:00
Aasir Rasheed
1bd26224ae qcacmn: Reconfigure the link info when csa is received
Reconfigure the link information structure for the partner
links and assoc link when a channel switch event is received.

Change-Id: I022bb6c6e2bcf43a1efaa6234e52648142b9fde2
CRs-Fixed: 3599451
2023-09-13 14:20:52 -07:00
Aasir Rasheed
760a93969c qcacmn: Implement handling of mlo standby csa
Implement handling of mlo sta standby csa beacon
and initiate the transmission of a link bss request
command tlv to the firmware for standby link.

Change-Id: Ibdf903c69757b47f301ab9fa7c563407915532d6
CRs-Fixed: 3605764
2023-09-13 14:20:44 -07:00
Gururaj Pandurangi
0b84f05679 qcacmn: Fix compilation warnings on x86
Fix the compilation warnings on x86.

Change-Id: Ic9edafc5b33462f5c96faa391e6441141aa09837
CRs-Fixed: 3591586
2023-09-12 23:35:21 -07:00
Srinivas Pitla
734c9fcae7 qcacmn: Add WMI service support for WSI stats info
This change adds service bit support for WSI stats
to FW

Change-Id: I06119c2196b951393e8bbbb82bd4a10436207d63
CRs-Fixed: 3601765
2023-09-11 15:50:57 -07:00
Aditya Sathish
25c27f83e0 qcacmn: Add support for WSI link info libraries
Add support to capture ingress and egress stats
in the MLO manager

Change-Id: Ife0acab15ba802c953cfcf3a720c6e54933ded5e
CRs-Fixed: 3601749
2023-09-11 15:50:46 -07:00
Pragaspathi Thilagaraj
1c1ebf792c qcacmn: Fix two enum members using same name
Fix the conflict between the host and fw enum
for mlo teardown reason.

CRs-Fixed: 3610563
Change-Id: I20638ed0cbe6b88e20f48815c236e92b833a34a9
2023-09-11 03:38:57 -07:00
Arun Kumar Khandavalli
0d54df03f9 qcacmn: Release mutex lock only once
In mlo_is_sta_csa_synced the mlo dev context lock is released
twice resulting in assert.

Release the mlo mutex once to avoid the assert

CRs-Fixed: 3598455
Change-Id: I1ceb797ddcaa8c57b8e7218c5b6aebf8d0136ab5
2023-09-09 22:45:32 -07:00
Aasir Rasheed
e4b28f875e qcacmn: Use mlo dev context to fetch link info
This change is to use ml dev context to fetch
link info, As ml dev context is available in both
vdev and psoc context. It's valid for both standby
and active links.

Change-Id: Ib705bd5a5a1144f980295331f5f26ba667906cf1
CRs-Fixed: 3568944
2023-09-09 19:32:34 -07:00
Vinod Kumar Pirla
f161aeba7c qcacmn: Defer disconnect req when link switch in progress
If link switch is in progress and no other disconnects are
pending in MLO manager sta ctx, save the new disconnect req
and move link switch state to abort. On link switch complete
schedule the pending disconnect in MLO manager.

In the scheduler callback for pending disconnect handling
add NULL check for disconnect request.

Change-Id: I4b144239eb1542cea934478643b6e53b371f2c93
CRs-Fixed: 3608727
2023-09-08 04:12:12 -07:00
Vinod Kumar Pirla
d968a41646 qcacmn: Do not serialize link switch for host force reason
In response to host set link request, FW might send link switch
request where FW will wait for response of link switch in order
to send response of set link. As set link is already in
serialization link switch will be in pending queue.
This will lead to dead lock case where set link in serialization
is waiting for FW response where FW is waiting for link switch
response which is in pending queue due to set link command.

To avoid this dead-lock, do not serialize link switch request
due to set link as FW will send the reason code as HOST_FORCE.

Change-Id: I338f6b4c90ceba5452ede77ad0237af7ddecb31f
CRs-Fixed: 3607164
2023-09-08 04:12:01 -07:00
Vinod Kumar Pirla
dcb8808eb6 qcacmn: Notify callbacks post link switch with status
Introduce new enum to hold the reason for invoking link switch
notify callback.

Notification happens in the following scenarios:
    a) On FW request received in host before serialization.
    b) Once link switch is serialized before link switch disconnect.
    c) On link switch complete but before removed from serialization.

Change-Id: Id502db935ccc3835ab8bb8fab8d89276abe0a243
CRs-Fixed: 3606668
2023-09-08 04:11:49 -07:00
Uraj Sasan
9487a4d77f qcacmn: Clear bridge_sta_ctx in MLO WDS STA
Clear bridge_sta_ctx during disconnect/connect failure.

There were issues in MLO WDS bridge STA mode when there was
multiple disconnect/connect failure, as the previous context
was not cleared and code logic was going into the earlier
state leading to issues.

Make sure to clear the context during disconnect and connect
failure so the STA context will be initialized properly.

CRs-Fixed: 3603610
Change-Id: I586ee44e7f4569693aa6c3550d1c5d94a1a9d3a7
2023-09-08 04:11:38 -07:00
Rakesh Boyina
f4b054cd11 qcacmn: Parse Extended MLD CAP & OP of ML IE
Include Extended MLD Capabilities & Operations subfield size
calculation in the calculation of Common Info Length of the
Basic Variant ML-IE parsing

Change-Id: I8fea9058dc37b7605827ef827a3ccba71be00982
CRs-Fixed: 3590364
2023-09-07 11:19:32 -07:00
Balaganapathy Palanisamy
0761c3f248 qcacmn: Add bridge vdev count under mlo dev
Add bridge vdev count under MLO dev context and
free dev context when all vdevs in mlo dev context
are freed

Change-Id: I861ec17f0143df8e063cc245aa71195f0349b4a7
CRs-Fixed: 3598970
2023-09-05 15:14:40 -07:00