Commit Graph

179 Commits

Author SHA1 Message Date
Guru Pratap Sharma
998426711a qcacmn: Add qualifier flags in link preference structure
Add qualifier flags in link preference structure which represent
bit is set for TLT or preferred link

Change-Id: I85a5fee0a804f6803fa52b5052bbcf635a613025
CRs-Fixed: 3482281
2023-05-18 14:23:09 -07:00
Jhalak Naik
d563641c08 qcacmn: Add support for handling MLO TSF sync capability
Add APIs to init the TSF sync capability based on
WMI_SERVICE_MLO_TSF_SYNC service bit sent from FW,
per ML group.

Change-Id: I5dad3fef7ebfa2af330b95d45cac3bef862f46f0
CRs-Fixed: 3491364
2023-05-16 11:43:24 -07:00
Surya Prakash Raajen
cb01519700 qcacmn: Trigger UMAC reset with mode1 SSR teardown
Add support to trigger UMAC reset with mode1 teardown request
for mode1 target recovery SSR.

Change-Id: Ib2d1679162a2084488081c76f6753287a6e4d5c4
CRs-Fixed: 3458369
2023-05-14 13:37:48 -07:00
Srinivas Pitla
ca2acbe6bc qcacmn: Implement reassoc framework
This change processes Duplicate Assoc req from MLO Station
This would reuse old link peers and populate assoc req IEs.

This will fail, if Assoc link is not same as previous,
and number of links are not same as previous assoc req
processing.

Change-Id: I6a8c412b0bc484e8eb64ca794e54e080c391f7f8
CRs-Fixed: 3465223
2023-05-14 11:07:41 -07:00
Amruta Kulkarni
c16aa9d544 qcacmn: Add handling for mlo link disable event
Add code changes to handle new wmi_mlo_link_disable_event
Extract the wmi event params and store in host defined
structure.

Change-Id: I6893bfa4da7b27f4a9b1ce2936057bb3576a317c
CRs-Fixed: 3458680
2023-05-09 01:48:41 -07:00
Gururaj Pandurangi
a11201af17 qcacmn: Clear peer-level negotiated T2LM mapping
Clear the peer-level tid-to-link mapping and set
direction to invalid if-
1) Host receives updated T2LM info through
critical update.
2) There are two T2LM elements received in beacons
and mapping switch time expires for first mapping.
Apply the second mapping.
3) There is a single T2LM element and its mapping
switch time expires. Apply default mapping.

Also, initialize peer-level mapping structure
when a new peer is created.

Change-Id: I1d06ec5f2f5aa398724213a3be08b6588f78c9b0
CRs-Fixed: 3435329
2023-05-04 13:50:11 -07:00
Venkateswara Swamy Bandaru
ad2d3b59e7 qcacmn: Add EPCS related related files
Create wlan_mlo_epcs.h and wlan_mlo_epcs.c files for EPCS
feature.

Change-Id: I49774a5b3124fef0848308a3101d099efd449e8c
CRs-Fixed: 3476996
2023-04-29 01:38:19 -07:00
Deeksha Gupta
5bb13e5887 qcacmn: Add changes to notify userspace whenever T2LM updates
From the driver, call wlan_mlo_dev_t2lm_notify_link_update()
API whenever there is a link update happens using T2LM.

Change-Id: I51be6eafcb558bcf54919bead8c93227c33be194
CRs-Fixed: 3431540
2023-04-26 08:24:10 -07:00
D Harilakshmi
eea6497c2c Revert "qcacmn: Add support for handling MLO TSF sync capability"
This reverts Change-Id:	Ie8ca48f8f6065f02eefaea85ad967e32d09787fc

Change-Id: I3cdd1a5748189811222fb5ba18d8dcb9a740c253
CRs-Fixed: 3470139
2023-04-25 12:06:23 -07:00
Linux Build Service Account
70cae165fc Merge "qcacmn: Add support for handling MLO TSF sync capability" 2023-04-21 09:15:34 -07:00
Guru Pratap Sharma
42a7f2f1b4 qcacmn: Adding and parsing of bandwidth indication element
Adding and parsing of bandwidth indication element sub IE

Change-Id: I20fca6ecf370d5d20f0e6e8e4f873bf57da3d181
CRs-Fixed: 3464120
2023-04-20 00:15:51 -07:00
Jhalak Naik
7acca67784 qcacmn: Add support for handling MLO TSF sync capability
Add APIs to init the TSF sync capability based on
WMI_SERVICE_MLO_TSF_SYNC service bit sent from FW,
per ML group.

Change-Id: Ie8ca48f8f6065f02eefaea85ad967e32d09787fc
CRs-Fixed: 3470139
2023-04-19 15:10:17 +05:30
Gururaj Pandurangi
1958f62e8a qcacmn: Add new wrapper API to send peer-level T2LM
Add a new wrapper API to send peer-level negotiated
tid-to-link mapping to FW as the existing API to send
the mapping received from the beacon/probe response
uses ML dev context whereas the new API uses ML peer
context.

Change-Id: Ifada5600e9524585c69847f332ed0280fd316813
CRs-Fixed: 3423127
2023-04-18 20:04:44 -07:00
Deeksha Gupta
28f7114375 qcacmn: Add new APIs to get t2lm info from vdev or peer obj
Add new APIs to get t2lm info from vdev or peer obj

Change-Id: Id1d3bf9ec88cb14574803ac952304a3103397799
CRs-Fixed: 3431479
2023-04-18 20:04:33 -07:00
Shreedhar Parande
9ec10780d7 qcacmn: Fix primary UMAC configuration for bridge peer
Use primary UMAC derivation logic for bridge peer case.

Rename mlo_get_primary_umac_vdev() to
mlo_get_link_vdev_from_psoc_id()

CRs-Fixed: 3454734
Change-Id: Ic732cc6e85b6d9f0d7bc8cea041642164952e304
2023-04-18 12:10:54 -07:00
Himanshu Batra
1611ebc3f4 qcacmn: Add API to get primary link id from ML peer
Add API to get primary link id from ML peer

Change-Id: I530cfad70067cea1e8907bc9d409331091f89f85
CRs-Fixed: 3455058
2023-04-10 03:08:11 -07:00
Chaithanya Garrepalli
7b4de01928 qcacmn: Change invalid ml_group_id and chip_id values
Change invalid ml_group_id and chip_id to 255 (uint8_t max)

Change-Id: I609aee14c7e6874bc78ddec3130a5a1226fc2af5
CRs-Fixed: 3443177
2023-04-04 16:30:46 -07:00
Aasir Rasheed
ca023bedc9 qcacmn: Register MLO get link state event handlers
Register and unregister the MLO get link state WMI event handler.

Change-Id: I7ac0a20949cc435907e433c279f14fd792415824
CRs-Fixed: 3432102
2023-04-01 09:15:27 -07:00
Uraj Sasan
ab8cf64ef0 qcacmn: Connect if pri_umac & assoc link are same
Some devices in WDS station mode have limitation when connected
in 3 LINK MLD association where the Primary umac selected and assoc
link should be same. Make sure to have a sanity check before
going for association in such cases.

If the primary umac and assoc links are set to be different then
the connection will be rejected.

Change-Id: If56461a140d4685ba279b1babe04709d919d1650
CRs-Fixed: 3443733
2023-03-30 23:15:34 -07:00
Paul Zhang
2859ea85d1 qcacmn: Add flag WLAN_VDEV_FEXT2_MLO_STA_TDLS
Add a flag WLAN_VDEV_FEXT2_MLO_STA_TDLS to mark whether
the vdev is used for TDLS or not.
It can use these API:
wlan_vdev_mlme_feat_ext2_cap_set(vdev, WLAN_VDEV_FEXT2_MLO_STA_TDLS);
wlan_vdev_mlme_feat_ext2_cap_clear(vdev, WLAN_VDEV_FEXT2_MLO_STA_TDLS);
tdls_vdev = mlo_get_tdls_link_vdev().

Change-Id: I89c50ad5321013993e798ebb5549c5015ac18969
CRs-Fixed: 3435963
2023-03-25 05:32:51 -07:00
sandhu
55435d303a qcacmn: Add WMI_SERVICE_11BE_TDLS_SUPPORT
1\ Add BE tdls fw support bit.
2\ Add link force reason per wmi changes

Change-Id: I0c297b0ea337d4060ac339c89679ec6059afc89f
CRs-Fixed: 3435979
2023-03-22 12:14:32 -07:00
Shwetha G K
40931af2b3 qcacmn: t2lm draft 3.0 changes
Changes to incorporate link mapping size in t2lm control
field of t2lm ie per draft 3.0

CRs-Fixed: 3431897
Change-Id: I61834258e6348b6483a86eb9e9217e3d5997c2c9
2023-03-22 07:33:20 -07:00
Uraj Sasan
975f28b2fc qcacmn: Limit Max number of assoc links for AP-MLD
Limit the AP-MLD association links to 3 currently.
More than 3 links will not be supported currently
for association.

Change-Id: I3cd6acda27d2f538172673a8d573367d77ee00b5
CRs-Fixed: 3435787
2023-03-21 17:33:05 -07:00
Chaithanya Garrepalli
b57fbc13f4 qcacmn: Add umac callback to get MLO chip ID
Add new MLO mgr callback to return MLO chip ID

Change-Id: I214b600830991f846ded208b16ed2fb1407a5a28
CRs-Fixed: 3432589
2023-03-15 13:02:42 -07:00
Jianmin Zhu
41c19f596d qcacmn: Add API mlo_is_ml_connection_in_progress
Add API mlo_is_ml_connection_in_progress.
When wpa supplicant enable/disable roaming, need check it to avoid race
condition issue.

Change-Id: I85cc9f8b542169563881c601a477f5c646629071
CRs-Fixed: 3430980
2023-03-15 04:33:56 -07:00
Shashikala Prabhu
09c1bea86c qcacmn: Update the datatype of T2LM provisioned links
T2LM provisioned links of preferred link structure are represented as
bitmap of type wlan_link_band_caps enum. Hence, replace the datatype
'enum wlan_link_band_caps' with 'uint16_t'.

Change-Id: If6cdaf5b12a9bd8b06050db67464fb4db642883b
CRs-Fixed: 3429430
2023-03-10 16:11:43 -08:00
Neha Bisht
80ee0f60c6 qcacmn: Add support for primary TQM migration
Add support for primary TQM migration.

Change-Id: Ifd62eb7e731bbd9e86c462642fd2e20d50d5495a
CRs-Fixed: 3410900
2023-03-10 16:11:33 -08:00
Shreedhar Parande
60919a5e84 qcacmn: Add APIs to create bridge peer
Add APIs to create bridge peer. Register call
back for the same to handle bridge peer
creation.

CRs-Fixed: 3416877
Change-Id: I51d8f023576c93121e42d54243721edbf705e6b4
2023-03-08 12:27:42 -08:00
Rhythm Patwa
aa8703f473 qcacmn: Add support to find ML peer from MLD MAC
Add API to retrieve ML peer context using peer MLD address
from the list of MLDs.

Change-Id: I7136e6b9cbcc96e897457c01c187965978e85d77
CRs-Fixed: 3422684
2023-03-07 21:04:52 -08:00
Balaganapathy Palanisamy
39a0cd23ed qcacmn: Add a flag to identify MLO bridge peer
Add flag to identify MLO bridge peer.

Change-Id: I4d42312165df7904cafad83a5df0e8d2f7751028
CRs-Fixed: 3412299
2023-03-04 11:52:57 -08:00
Uraj Sasan
f48d910d04 qcacmn: APIs to set and get chip adjacencies in 4 link MLO
For 4 LINK MLO new API's for
1. Update chip info with the chip id and adjacent chip id's.
2. Given two psoc ID's return if two psoc are adjacent.

Sample topology

        chip0
      /      \
    chip1    chip2
      \      /
        chip3

Above, chip0 has chip1 and chip2 as adjacent chips.

Change-Id: I7eafde7779e957bc8161ef37baa6077278800e81
CRs-Fixed: 3381066
2023-03-01 05:44:54 -08:00
Himanshu Batra
d1d1ea0482 qcacmn: Add vdev up bitmap for mlo sync wait state handling
In MLO scenario where start/cac 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 have vdev up bitmap and process sync complete
only for those vdevs for which the bitmap is set

Change-Id: I9ca8b192edeb7d491be3a7acff30c2d3545a5417
CRs-Fixed: 3403603
2023-02-28 11:20:08 -08:00
Vinay Adella
8d4392b4b4 qcacmn: Pass mlo_flags to partner links during Assoc
The FW needs mlo_flags of partner links as well during Assoc
to handle more than 2-link MLO Association.
Extend the mlo target link info struct to pass them.

CRs-Fixed: 3403849
Change-Id: Ia426cf16a5d8cfa1f6e4117a0b372899642494c6
2023-02-23 22:07:24 -08:00
Guru Pratap Sharma
22fb800b9f qcacmn: Add structure for preference link event
Added the structure to save the value of preferred link
which receive from the RM APP.

Change-Id: I4eb9430639d4a77c5f448d833d677948e6f19882
CRs-Fixed: 3393643
2023-02-21 22:04:47 -08:00
Guru Pratap Sharma
d32fe4db3c qcacmn: Add wmi changes to send the T2LM command to FW
Add WMI changes to send preferred link to FW

Change-Id: I8b8d7354d979705b1a938e9792de334c4faf65b6
CRs-Fixed: 3393604
2023-02-21 22:04:26 -08:00
Paul Zhang
79720d811d qcacmn: Add support for 2+ mlo links
Add support for generating link specific assoc request/response
and probe response for 2+ mlo links.

Change-Id: Iadd09efeb0b0098baeae25f3b1968826e75dedc4
CRs-Fixed: 3049640
2023-02-17 09:32:31 -08:00
Liangwei Dong
91f844bfce qcacmn: Handle link active_inactive command
Add code to handle new set link state command -
MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE.

Change-Id: I4fad93e9e09309f7e8ac07f2e3c43a0aa6472a3a
CRs-Fixed: 3352970
2023-02-08 06:56:46 -08:00
Vinod Kumar Pirla
cad19e4fc7 qcacmn: Introduce API to modify MAC address in action frame
Introduce two APIs which will change the RA, DA and BSSID fields
of 802.11 MAC header.

For any non-public action frame, supplicant will send RA, DA and BSSID
with MLD address which needs to be translated to link addresses to
transmit over the air. wlan_mlo_update_action_frame_from_user() API
will do the address translation from MLD to link.

If any non-public action frame is received over the air that needs
to be sent to userspace, the kernel expects MLD address in RA, DA
and BSSID fields. wlan_mlo_update_action_frame_to_user() API will
do the address translation from link to MLD.

Change-Id: Iab93dd1301003b78edf6d619cfbf552afa53ae7a
CRs-Fixed: 3394706
2023-02-07 23:41:52 -08:00
Liangwei Dong
1ffc60a883 qcacmn: Add API to stop reconfig timer
Add API to stop link reconfig timer on vdev or ml dev.
Add API to query the reconfig timer state.

Change-Id: I729d403122e4e84cdf0dced21c49176397e10e5d
CRs-Fixed: 3352937
2023-02-05 22:51:38 -08:00
Uraj Sasan
52f91b32b9 qcacmn: Reduce the value of macro due to memory Impact
In Multi-Chip MLO, FW is having memory constrain
while increasing the maximum supported MLO LINKS.

Reduce the values to avoid memory issue in FW

Change-Id: Id191f45f25de915e88ed1e12ae56d4a6e7b7095f
CRs-Fixed: 3391537
2023-02-02 22:01:06 -08:00
Jeff Johnson
1b381119de qcacmn: Fix umac/mlo_mgr documentation
The kernel-doc script identified some documentation issues in
umac/mlo_mgr, so fix most of them. However some issues are due to
kernel-doc being unable to parse the qdf_bitmap() macro, so disable
kernel-doc in those cases.

Change-Id: I1c32ffae58aedbbafa2ab4c9e4faa33c426ea7b5
CRs-Fixed: 3380021
2023-01-31 13:17:53 -08:00
Srinivas Pitla
6f49a4b14b qcacmn: Add API to invoke MLO peer delete
This API invokes peer delete on all link peers

Change-Id: If20274ca67c93a3e6c0706c04007215d5330bea0
CRs-Fixed: 3389049
2023-01-30 12:38:31 -08:00
Paul Zhang
37b58d0525 qcacmn: add critical update feature
Add the code logic to save the BSS parameters change count (BPCC)
for critical update feature.

Change-Id: I3fafd44af8661d1dcf5d7bbde84d2729d390a44c
CRs-Fixed: 3324174
2023-01-26 01:25:10 -08:00
Chaithanya Garrepalli
7799db5d9e qcacmn: ml peer id allocation change
Change to allocate next available ML peer id
instead of using recently free peer_id

Change-Id: I493ef2d838d7880568462ae3e8024ae3be5f1ba7
CRs-Fixed: 3384320
2023-01-25 21:26:56 -08:00
Vinod Kumar Pirla
ba7c39769d qcacmn: Modify API to check peer address in global ML ctx
Modify the mlo_mgr_ml_peer_exist() API to accept
pointer to vdev_id of the peer and rename as
mlo_mgr_ml_peer_exist_on_diff_ml_ctx().

The API returns true if the peer address matches on
any vdev which is on different ML dev context, if
match is found on same ML dev context the API will
return false.
If the peer address match is found but the pointer
to peer vdev ID is NULL, the API will return true.

Change-Id: I8045325f31850782551c7468aa1eac7c5f77fd69
CRs-Fixed: 3377752
2023-01-25 16:36:33 -08:00
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
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