İşleme Grafiği

451 İşleme

Yazar SHA1 Mesaj Tarih
Amruta Kulkarni
2cd3406a9a qcacmn: Add handling 1x roaming case
- Add osif callback api to get scan ie params
- Made few mlo manager api's public

CRs-Fixed: 3288038
Change-Id: I15a764682b8164eb1b66adeff44d7e344f2563c3
2023-01-24 09:41:08 -08:00
Himanshu Batra
36108b2504 qcacmn: Remove scan entry search from link add API
During link add, since the vdev would be down, it won't have scan
entries.
Hence, remove scan entry search from link add API

Change-Id: Ifd45b546124739e6c31b2a3691cdb90a3f624ecf
CRs-Fixed: 3377283
2023-01-17 07:34:48 -08:00
Uraj Sasan
f8dfbc3195 qcacmn: Add Support for 4 Link MLO
4-Link MLO support.

Change-Id: Ia9053e119d4938bf6b80dcd8c70037e7c2bb91d0
CRs-Fixed: 3359269
2023-01-17 01:41:37 -08:00
Gururaj Pandurangi
880ee4dd1a qcacmn: Add function declaration to a T2LM API
- To invoke the API wlan_send_tid_to_link_mapping from other
files, change its static definition and add a function
declaration.
- Remove repetitive logging of T2LM params in
wlan_mlo_parse_t2lm_info API.
- HMT STA host needs to send T2LM mapping info to FW only
on one peer instead of both peers in case of WKK.
Thus, add new API under MCC flag to address this issue.
The original changes will remain under else case.

Change-Id: I2495fddca7dc5da253a6d10ab41b70cf7f627156
CRs-Fixed: 3373326
2023-01-15 07:08:38 -08:00
Shashikala Prabhu
88785d0116 qcacmn: Rename broadcast T2LM data structure
- Replace T2LM array in wlan_t2lm_context structure with established_t2lm
  and upcoming_t2lm structures
- Mapping switch time is different for each AP vdevs. Hence, store the
  value in vdev_mlme_proto_ap structure.
- Fix a few issues seen in mapping switch time expiry and expected duration
  expiry.

Change-Id: Id69badc3f4bf5e5e741691348488369008ffc4e9
CRs-Fixed: 3369279
2023-01-14 01:12:56 -08:00
Santosh Anbu
0f5242e08a qcacmn: Acquire mlo lock before dispatching sync_comp
In MLO scenario where start response for partner ML AP vdevs are
processed simultaneously on different CPU cores, the order in which
the vdev sm lock is acquired may lead to deadlock.

To fix add change to dispatch the MLO_SYNC_COMPLETE under mlo_dev_ctx.

Change-Id: I86ef51fcc8d51277163fcc5a6afdee6d873f2e63
CRs-Fixed: 3368033
2023-01-10 05:31:43 -08:00
Paul Zhang
c62c548597 qcacmn: Public api wlan_mlo_parse_t2lm_info
Public api wlan_mlo_parse_t2lm_info for others to use.

Change-Id: Id66f33abb7cb2c33503efa7b12ff52080ea30e6c
CRs-Fixed: 3365976
2023-01-06 09:56:59 -08:00
Jianmin Zhu
b98a087c60 qcacmn: Add API to check state of all mlo vdev
Add API to check state of all mlo vdev to avoid roaming and disconnect
race issue.

Change-Id: Idc9a9a57f433aeff185fe78826faa84e08c09ddb
CRs-Fixed: 3372132
2023-01-06 07:45:14 -08:00
Surya Prakash Raajen
cbc0170b1c qcacmn: Move group id sanity check to pdev check
Move group ID Sanity check to mlo pdev check

Change-Id: I7b895972c2799194c5bc0cf4b22629acd1c2b7fd
CRs-Fixed: 3343170
2023-01-05 22:33:07 -08:00
Surya Prakash Raajen
6ef9d4cb8e qcacmn: Add multi group support for MGMT Rx Reordering
Add multi group support for MGMT Rx Re-ordering.

Change-Id: I2b172d1f0db58afee06db3eefc06b618fcf9a627
CRs-Fixed: 3343170
2023-01-05 22:32:57 -08:00
Surya Prakash Raajen
93d7b3fc1a qcacmn: Add support for multi group in global memory region
Add support for multi group in global shared memory region.

Change-Id: Ib8920f9180b3ba50f3f8faf0d9b020abfd0bc150
CRs-Fixed: 3343170
2023-01-05 22:32:37 -08:00
Surya Prakash Raajen
0fdd53b791 qcacmn: Add support for mlo groups in mlo setup and teardown
Add support for mlo groups in mlo soc/link setup and teardown
sequence participating in mlo.

Change-Id: I2b431b0ee1e5816b92ad183b52ad2998eb5bb46c
CRs-Fixed: 3343170
2023-01-05 22:32:26 -08:00
Himanshu Batra
aaf04d8bc5 qcacmn: Clear MLD caps of vdev on connect req failure
Clear MLD caps of vdev on connect req failure

Change-Id: Ic1615b0b13a02c4655192133f9afe58380edf5a5
CRs-Fixed: 3364986
2023-01-05 20:52:31 -08:00
Srinivas Dasari
f5aa4b6700 qcacmn: Validate available buffer before adding ML IE to link frame
Non-assoc link might be superior in features compared to assoc
link and the per-STA profile info may carry corresponding IEs.
These IEs are extracted and added to IE list of link probe
response while generating it. So, the link probe response
generated from assoc link probe response might be of more size
than assoc link probe rsp. It's caller responsibility to allocate
buffer for the derived scan entry considering the copied IEs from
ML per STA profile.
Add a check to validate the available buffer while copying the
ML IE (as it's copied after deriving IEs from per STA profile) as
this is missing currently.

Change-Id: Ieafc9730ad098abb80fb1f3c14eb22b6b590ff20
CRs-Fixed: 3364159
2023-01-05 14:31:30 -08:00
Arun Kumar Khandavalli
c3fd408a86 qcacmn: Deinitialize t2lm context correctly
Deinitialize the t2lm context so that locks/timer will get
freed correctly.

Change-Id: I392f5c89f5c144413ed6144f499fadf054c547c5
CRs-Fixed: 3359134
2023-01-03 09:40:24 -08:00
Asutosh Mohapatra
1ade380fc3 qcacmn: Use mac_addr pointer as constant
Use mac_addr pointer as constant in wlan_hdd_ml_sap_get_peer,
hdd_set_mld_address and use the same for consecutive APIs.

Change-Id: I3ab7b0f3c03e9175c62179029efb53fb9fe75277
CRs-Fixed: 3342115
2023-01-02 15:01:22 -08:00
Santosh Anbu
001bc02d42 qcacmn: Avoid deadlock in back to back connect for MLO
When mlo_connect is posted, mlo_dev_ctx lock is acquired.
As part of which is CM is not in init state, disconnection is posted
before processing of connect request.

In disconnect, mlo_sta_vdev_list is fetched which internally takes the
same mlo_dev_ctx lock leading to deadlock

Add fix to avoid deadlock in back to back connect handling.

Change-Id: Ic88229a7709e11edc790fb66401bb0336d8a1e27
CRs-Fixed: 3365031
2023-01-02 07:29:53 -08:00
Himanshu Batra
fcba5ea249 qcacmn: Add API with flag to validate disconnect request
In case of ml_activate_pend_disconn_req_cb, mlo_disconnect is called
which validates disconnect request. If the disconnect was deferred due
to race in mlo connect notify event and disconnect received by mlo
manager, then ml_activate_pend_disconn_req_cb will end up in a deadloop
where it will always defer any disconnect due to above race.
Hence, add API with flag to validate disconnect request.

Change-Id: Ifa434a2f2f5e7a4d17d25349cb7ab86fa50ce043
CRs-Fixed: 3361387
2022-12-29 22:06:03 -08:00
Santosh Anbu
31a73b18df qcacmn: Avoid ml_ap_ctx access on STA vap
In scenario where mbssid is enabled (is_mbssid_enabled) on STA ML VAP,
if ML STA is trying to assoc to Non-ML AP, on freeing AID at the STA
ml_ap_ctx is referred which is not set for STA vap leading to null
pointer access.

Check for validity of ml_ap_ctx before access.

Change-Id: Ib8b924cfc035c1e3aeeb5154ef6d736aee6ba077
CRs-Fixed: 3357392
2022-12-28 11:44:09 -08:00
Himanshu Batra
fccca888fc qcacmn: Fix to avoid invalid mlo dev lock release
Fix to avoid invalid mlo dev lock release

Change-Id: I09da203114dcf8832c2e464b09f58691f52c0458
CRs-Fixed: 3368215
2022-12-28 08:12:02 -08:00
Deeksha Gupta
f1acd4d6d6 qcacmn: Add support to get Link info from reconfig ML IE
In the driver, add support to get the Link information from a given
reconfig variant Multi-link element.

Change-Id: Ia23b26ddb4195da21c071ee5f3c198e0492ef952
CRs-Fixed: 3348524
2022-12-27 11:09:13 -08:00
Himanshu Batra
b23b9551cc qcacmn: Changes to handle dynamic link add for non-AP MLD
Changes to handle dynamic link add for non-AP MLD.
Also add change to clear mlo cap for link removal of vdev.

Change-Id: I47e0bb77b7f32296e5745ffd53ce3a34ec35a63a
CRs-Fixed: 3346538
2022-12-27 11:09:04 -08:00
Himanshu Batra
5ea3ebf775 qcacmn: Change to handle ML reconfig link delete
Change to handle ML reconfig link delete

Change-Id: Iaf743a1a61534f2f4bb12be7fccad48e67b81c12
CRs-Fixed: 3346537
2022-12-27 11:08:54 -08:00
Deeksha Gupta
3c3a62b04b qcacmn: Add support to get MLD mac address from reconfig ML IE
In the driver, add support to get the MLD mac address from a given
reconfig variant Multi-link element.

Change-Id: I8c54f58f05a89cd5624ea5dc34b6630c06777013
CRs-Fixed: 3348125
2022-12-27 11:08:44 -08:00
Himanshu Batra
826d4f9717 qcacmn: Add MLO check for connect req
If the connect req from supplicant is non-mlo, ignore mlo related
operations and continue with connect req

Change-Id: If30df0a7dc195c2cbafc60f1e4c999b0c5689998
CRs-Fixed: 3360070
2022-12-22 07:04:33 -08:00
Surya Prakash Raajen
49ca504dbd qcacmn: Maintain dp_mlo_ctxt per each MLO group
As per current design, dp_mlo_ctxt is allocated during the
initialization of module while the MLO grouping information is
understood after WMI_READY_EVENT. The same is deinitialized while
unregistering the module.
To ensure dp_mlo_ctxt exists per MLO group, bring the dp_handle
a layer below in the hierarchy into the mlo_setup_info and allocate
dp_mlo_ctxt after the WMI_READY_EVENT is received from all the SOCs
for a given group. Deallocate it after the WMI_MLO_TEARDOWN_COMPLETE
event is received.

CRs-Fixed: 3355405
Change-Id: Ic3102a34a8d44877827e2ff1f7da2e414b2b463f
2022-12-21 06:33:27 -08:00
Nidhi Jain
800dddec55 qcacmn: Registration function for link disablement
This change is to allow other modules to register for
link disablement.
It includes below functions:
1- Notify link update
2- Register to handler to get link update notification
3- Unregister T2LM handlers

Added the below changes as well,
- Move T2LM related data structures to wlan_mlo_t2lm.h file
- Host receives the expected duration from FW for multiple vdevs.
  Hence, add support to extract the expected duration for multiple vdevs.

Change-Id: Ie8e77d5d3b4351a8551ecd7da50786b58dad3b2e
CRs-Fixed: 3346432
2022-12-19 22:17:49 -08:00
Shashikala Prabhu
b723172ec9 qcacmn: Register T2LM event handlers
Register and unregister the T2LM WMI event handler.

Change-Id: I870b72618fa39c5b7ba271c5a58e3d3bbe1f44a7
CRs-Fixed: 3360463
2022-12-18 12:13:13 -08:00
Neha Bisht
f27e31059b qcacmn: Add an API to get number of station mld device contexts
Add an API to get number of station mld device contexts

Change-Id: I91bdbfda36e596b7456482f5f0480a341d4e6ed5
CRs-Fixed: 3361088
2022-12-18 05:54:30 -08:00
Aakanksha Doda
ea0e2133b3 qcacmn: Add changes to support MLO+Mesh
Add changes to support MLO+Mesh.

Change-Id: I52df040ef44846e525a1c0a1acf131cb8cac0bf2
CRs-Fixed: 3350795
2022-12-17 23:22:38 -08:00
Shiva Krishna Pittala
11fa724d8a qcacmn: Add support to extract link removal TLVs from MGMT Rx event
To assist the Host in ML reconfiguration element construction for probe
responses, FW sends MLO link removal information as part of the MGMT Rx
event containing the corresponding probe request. This information is an
array of TLVs, one TLV for each link that is undergoing link removal from
the MLD for which this probe request is intended. The TLV carries the link
removal TBTT countdown value maintained by the FW for that link.
Add support to extract the same.

CRs-Fixed: 3335361
Change-Id: I16c6791a443ddb166da596d404a52ff2a38da291
2022-12-11 23:52:12 -08:00
Shiva Krishna Pittala
11dccd8fac qcacmn: Add support to extract wmi_mlo_link_removal_tbtt_update TLV
WMI_MLO_LINK_REMOVAL_EVENTID will be sent by FW to update the Host with the
progress of the link delete operation. Add support to extract the TBTT
update TLV sent in this event.

Change-Id: I01ce710d282f16e7a7cf4fb767279661558d129f
CRs-Fixed: 3322714
2022-12-11 23:51:54 -08:00
Shiva Krishna Pittala
b24b3a7e25 qcacmn: Add support to extract wmi_mlo_link_removal_evt_fixed_param TLV
WMI_MLO_LINK_REMOVAL_EVENTID will be sent by FW to update the Host with the
progress of the link delete operation. Add support to extract the fixed
params TLV sent in this event.

Change-Id: Ic42a822339363b1347ae174926a4dac19eef3f99
CRs-Fixed: 3318005
2022-12-11 23:51:45 -08:00
Shiva Krishna Pittala
c1231d0824 qcacmn: Add support to populate and send WMI_MLO_LINK_REMOVAL_CMDID
WMI_MLO_LINK_REMOVAL_CMDID is to be sent by the Host to initiate the
removal procedure for a given link from its MLD. This command will be sent
on the impacted link only. Add support to populate and send this command.

Change-Id: I8485d8c8897bb2bb891d50546d5fbfac2a69a4ce
CRs-Fixed: 3314430
2022-12-11 23:51:35 -08:00
Amruta Kulkarni
8759cf1c1e qcacmn: Add support for T2LM timer handling
Adds api's to handle t2lm timer functionality.
Api's added are timer initialize, start, stop, expiry handler.

Change-Id: If52453135921067d04f8349ece64c33cd524af00
CRs-Fixed: 3342822
2022-12-08 11:01:09 -08:00
Srinivas Pitla
3bae1f975c qcacmn: add MLME changes for ML reconfig
1) add op flags to indicate Link removal in progress
2) update API to include link removal check for ML peer create
3) add API to check whether all link peers to be deleted.

CRs-Fixed: 3341256
Change-Id: I8fabd19d3321315eb13d874a7e9b2e93392a7886
2022-12-07 16:19:21 -08:00
Vinod Kumar Pirla
a780b76595 qcacmn: Introduce API to find ML peer with same MAC
Introduce an API which iterates on each MLD dev context in the
global MLO device manager and the ML peers in each dev context,
the API returns true if any entity's MLD address matches with
the MAC address received or else returns false.

Change-Id: If98fb9667b797d7d2fcfe40f66afb2a44daf4874
CRs-Fixed: 3349575
2022-12-07 00:20:30 -08:00
Shashikala Prabhu
2f56148a95 qcacmn: Remove 11be compile flag
Remove 11be compile flag from T2LM data
structure definitions.

Change-Id: If444d6f8b48da5b091b0af6b91055677e34c86dd
CRs-Fixed: 3352003
2022-12-06 22:19:46 -08:00
Vinod Kumar Pirla
7e4e27202d qcacmn: Clear crypto keys for link vdev before connect send
Supplicant will send add key once EAPOL exchange is successful
on assoc link. The keys added for the partner link will get
cleared if connect active event on partner link is not received
but add key is received on that link.

To avoid a race condition, for MLO assoc vdev clear the
existing crypto keys in connect active state and for link vdev
clear the crypto keys before sending to connect.

Change-Id: I0f40a4d00bea7d8829b1a3b4b90cdb59234b97c4
CRs-Fixed: 3345714
2022-12-06 17:45:22 -08:00
Deeksha Gupta
730d9abd4d qcacmn: Add API to find Multi-Link element based on variant
Based on the ML IE variant, add new API to find the first
Multi-Link element or the start of the first Multi-Link
element fragment sequence in a given buffer containing
elements, if a Multi-Link element or element fragment
sequence exists in the given buffer.

Change-Id: I89535f67aeb012c872216c8971b29f5afa359d07
CRs-Fixed: 3326673
2022-12-06 11:26:18 -08:00
Shashikala Prabhu
952dd4de06 qcacmn: Add API to parse the T2LM event ID
Add API to parse the TID-to-link mapping event ID for the AP vaps.
As part of this event,
	 - Update the mapping switch time TSF value in host data structures.
	 - When mapping switch time or expected duration expires in the FW,
	   update the host data structure.

Change-Id: I93232429fe5c2aa12dc4bf9f6a2f014761b7df15
CRs-Fixed: 3350697
2022-12-05 13:03:47 -08:00
Paul Zhang
a4660a051d qcacmn: Fix race condition of mlo disconnect/connect
Currently, link vdev is triggered to connect process
after assoc vdev connects successfully in function
mlo_send_link_connect. If osif_cm_disconnect_sync is
invoked during assoc vdev connection, the disconnect
command for link vdev is dropped since it is in INIT
state. Then it only queues the disconnect command for
assoc vdev. After link vdev connects successfully, it
process the disconnect command for assoc vdev, and F/W
assert happens because deleting assoc peer before link
peer.

To resolve the issue, invoking wlan_cm_disconnect with
source CM_MLO_LINK_VDEV_DISCONNECT for each link vdev
in function cm_disconnect_start for assoc vdev.

Change-Id: Id0d0607d4374ed48513f15e5e3f5dfe499087935
CRs-Fixed: 3346737
2022-11-30 21:05:35 -08:00
Santosh Anbu
2bdc874104 qcacmn: Dispatch mlo_sync_complete in async context
In scenario where the last ML-AP vdev of the MLD receives start response,
then in the same context mlo_sync_complete is dispatched to all the
partner ML AP vdevs.

But for the partner vdevs, VDEV SM event should be dispatched in
non-sync mode with lock held. If not it can lead to event being
dispatched when the VDEV is in intermediate transition state.

For partner vdevs dispatch event as part of callback and based on return
value, dispatch event in sync context for self vdev.
This is to avoid usage of mlme vdev sm sync event dispatch outside VDEV SM

Change-Id: Ib9220c04377985b700138127695a02a5e29952c2
CRs-Fixed: 3317097
2022-11-30 08:23:30 -08:00
Shashikala Prabhu
b699679cb9 qcacmn: Add T2LM IE changes as per IEEE802.11be draft 2.1
Add support to include mapping switch time and expected duration in T2LM
IE.

Removed the below functions as MCC uses ieee_link_id instead of hw_link_id.
Do this conversion in the WIN only code.

wlan_mlo_get_hw_link_id_mask, wlan_get_ieee_link_id_mask
wlan_mlo_parse_t2lm_provisioned_links, wlan_mlo_add_t2lm_provisioned_links

Change-Id: Icc36ff318de4177bf0941235243298baef83d1e6
CRs-Fixed: 3341502
2022-11-30 02:52:18 -08:00
Shashikala Prabhu
fcc7724ea7 qcacmn: Initialize the MLO T2LM context with the default values
Initialize the MLO T2LM context with the default values.
- Set the direction to WLAN_T2LM_BIDI_DIRECTION
- Set default_link_mapping to 1
- Set the number of T2LM IE as 1

Change-Id: Icb5a576f14db616bf67a302f3e4666a0303a4c5b
CRs-Fixed: 3345808
2022-11-26 21:50:16 -08:00
Nidhi Jain
be0e54e189 qcacmn: Update T2LM negotiation values for wlan_t2lm_enable
This change updates the T2LM negotiation values for wlan_t2lm_enable.

Change-Id: I17e2d0e99eb383f072f5595c524156265274a194
CRs-Fixed: 3306992
2022-11-23 21:52:12 -08:00
Himanshu Batra
d729483efc qcacmn: Add fix to avoid deadlock in back to back connect
Add fix to avoid deadlock in back to back connect handling

Change-Id: I831a64f14270dceb9e7cfae2f9d4b05fec99d8d2
CRs-Fixed: 3342240
2022-11-22 15:51:02 -08:00
Jianmin Zhu
1aaeca79da qcacmn: Fix link peer is deleted before assoc peer
When vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in
async way by sending msg to scheduler thread, and disconnect vdev0 cmd is
enqueued to serialization before disconnect vdev1 cmd, so vdev0 assoc peer
delete happens before vdev1 link peer, F/W assert happens.

To fix it, when vdev1 connected, if find vdev0 isn't connected, disconnect
vdev1 in sync way, and let disconnect vdev1 cmd enqueue to serialization
queue header instead of tail, make sure it is activated befored disconnect
vdev0 cmd.

Change-Id: I80b1c8f6528bdd58e953851e164e5bfce2b3bd4a
CRs-Fixed: 3339030
2022-11-22 13:51:30 -08:00
Shashikala Prabhu
5c88babc02 qcacmn: Define structures for T2LM changes
Add IEEE802.11be specific T2LM structure definition

Change-Id: Ia29ff6dfed1edca60e294c8455c8acef09b3fada
CRs-Fixed: 3333876
2022-11-22 00:41:28 -08:00
Shashikala Prabhu
fc8fedf6df qcacmn: Fix T2LM compilation errors
- Renamed t2lm_provisioned_links as hw_link_map_tid in the T2LM
  data structures.
- Renamed wlan_t2lm_of_tids structure as wlan_t2lm_info.

Hence, added this change to fix the compilation errors.

Change-Id: I969202137adbd5bfb5e910d45514ea9074e9b1b1
CRs-Fixed: 3337530
2022-11-22 00:41:21 -08:00