Commit Graph

61 Commits

Author SHA1 Message Date
Krishna Rao
f94ac12152 qcacmn: Add support for ML subelement defragmentation
Add support for subelement defragmentation in the common handler for
generating link specific (re)association request/response, as well as
in the helper for parsing partner info from the Link Info field of the
Basic variant Multi-Link element.

CRs-Fixed: 3117210
Change-Id: I3727c9008043ac4132a8675bf15e73949fde63cd
2022-02-28 09:10:22 -08:00
Krishna Rao
30b0de6998 qcacmn: Add support for ML IE defragmentation
Add support for Multi-Link element defragmentation in the common
handler for generating link specific (re)association request/response,
as well as in the API for getting per-STA partner link information.

CRs-Fixed: 3116412
Change-Id: I237c593b44ec3a7c3347ccb95633cec362ba5411
2022-02-28 09:10:04 -08:00
Lincoln Tran
badb6230e2 qcacmn: Back to back connect changes
Currently, the code does not handle an MLO connect when in
non-init state. Add logic to clean up any existing connection
before going ahead with the latest request.

Change-Id: Ia5a10bcc1e0d2c8e82d6ea0d82d1a5bf0604a1e5
CRs-fixed: 3116687
2022-02-23 20:49:08 -08:00
Bapiraju Alla
6bb2ad7c5b qcacmn: Get partner vdev using vdev ID instead of link ID
While notifying the ML connection status to the supplicant, partner vdev
information will be filled in the connect response. This partner vdev info
is populated using partner link IDs. This may cause issues since it is
not guaranteed that link id information in the partner vdev is valid while
notifying the connection status to the supplicant.

To address this, get partner vdev information using vdev ID instead of
link ID.

Change-Id: I5e45b038b1fe5b6ab9c6bbb514eefb0ad4c39e66
CRs-Fixed: 3117702
2022-02-23 11:10:35 -08:00
Bing Sun
bdbcc9ddf0 qcacmn: Handle CSA in MLO sta partner link before it is up
Before MLO sta partner link is up, FW can't indicate CSA event to host.
For this case, host need save csa parameters and process it when MLO
sta partner link is up.

Change-Id: Id1803f32787002e020c6899ec72e428feb765b7f
CRs-Fixed: 3082438
2022-02-11 02:57:46 -08:00
Bing Sun
7ee4663048 qcacmn: Save quiet status to sta context of MLO mgr
Save quiet status of indicated link to sta contect of MLO mgr. Any link
should check quiet status of MLO connection, then decide whether it
can trigger inactivity to FW or not.

Change-Id: Ic294bbe6452030b6cae495ca0dd3e504416e2c9e
CRs-Fixed: 3117825
2022-02-11 02:57:40 -08:00
Santosh Anbu
7260cc5d95 qcacmn: Add pdev check when creating MLD vdevs
MLD can be formed only between APs of different pdev.
Add check to avoid creation of MLD between vdevs of same pdev.

Change-Id: I00f53de7016050b120db4b90b2e7662ea81612af
CRs-Fixed: 3104153
2022-02-10 12:49:48 -08:00
Srinivas Pitla
3ceae2fe28 qcacmn: Add support for Auth defer framework
This change adds framework for deferring auth request
while link peers are in the process of deletion

Change-Id: Ic96daf7d994c65b10e15f72e4a676b8156573cf2
CRs-Fixed: 3113557
2022-01-28 23:15:35 -08:00
Himanshu Batra
aab941747a qcacmn: Add API to iterate over ML vdev list and call custom handler
Add API to iterate over ML vdev list and call custom handler

Change-Id: Ie5c16b085528eed64436c26d0ca9700700a86949
2022-01-26 12:43:05 -08:00
Kiran Venkatappa
af29776e45 qcacmn: Add support to config max MLO links and MLD max
Add max MLO (WLAN_UMAC_MLO_MAX_VDEVS) and MLD max WLAN_UMAC_MLO_MAX_DEV
in #ifndef block so that this can be overridden by cflags.

Change-Id: Iaa2dd1a8d6759b9f9e79bc076e8a4e4673921be8
CRs-Fixed: 3115703
2022-01-24 15:50:18 -08:00
Kiran Venkatappa
9d402b668b qcacmn: MLO Teardown sequence
Trigger MLO teardown and wait for response before proceeding with soc
power down.

Change-Id: Ie1d00408862459b0e5240ef3151a0d969ab65e80
CRs-Fixed: 3102143
2022-01-14 20:53:14 -08:00
Amruta Kulkarni
951e13a2ea qcacmn: Add wlan_ api to get assoc vdev
- Add wlan_ api to get assoc vdev.
- Update mlo_update_connected_links_bmap() to
non static.

Change-Id: Ib7948023041481c27f1e98a6bd1ecfe583abd3ef
CRs-Fixed: 3098594
2022-01-06 07:55:37 -08:00
Bapiraju Alla
3c40f95843 qcacmn: Add API to update MLD MAC address
Currently there is no provision to update MLD mac address in MLO manager.
MLD MAC address updation is required when MAC address randomization is
enabled.

To enable MLD address updation, add MLO manager API to update MLD address.

Change-Id: Ia2ccb1c32a3533748bda512e991e3d48d14c39f0
CRs-Fixed: 3103074
2022-01-03 15:02:52 -08:00
Srinivas Pitla
3ced6a46de qcacmn: Add API to get partner link info
This API retrievs link address and link id of all partner links
in structure to the caller.

This change also includes few compile fixes for msgq mode

Change-Id: I2a30904a3b41876783de611ac14697338c617689
CRs-Fixed: 3091850
2021-12-15 09:43:41 -08:00
Yu Wang
f13b79ec7f qcacmn: implement mlo manager APIs for mlo link set active cmd
Add interface for sending mlo link set active cmd and
register the response handler.

Change-Id: Icd7cf3294cddec1aa4a417e29a22fcd6fbea0dfb
CRs-Fixed: 3036846
2021-12-14 01:43:34 -08:00
Abhishek Singh
a83c541117 qcacmn: Remove Union in mlo_link_set_active_param
Remove Union between link_num and vdev_bitmap as
it is possible send vdev_bitmap along with link_num
for forcemode MLO_LINK_FORCE_MODE_ACTIVE_NUM and
MLO_LINK_FORCE_MODE_INACTIVE_NUM.

Change-Id: Ie15c5f20d7990baebee50bdc7a37734331eb891c
CRs-Fixed: 3090334
2021-12-13 19:13:31 -08:00
Lincoln Tran
b9c91b6554 qcacmn: Add synchronization to copied conn req
When accessing the copied connect request, concurrent accesses may
arise. This could cause a double free in certain scenarios. Add locks to
any write access so there is no unexpected behavior.

Change-Id: I011b8980d5756d7105704449af2dba6df1f23a8d
CRs-fixed: 3070966
2021-12-13 16:43:37 -08:00
Krishna Rao
a50a68c40d qcacmn: Generate Link Specific Assoc Request for MLO
Generalize the existing link specific assoc response generation
functionality to make it common between link specific assoc request and
assoc response generation, and expose modified APIs for both. Add
handling of Non-Inheritance IEs as well as fixed field parsing to both.
Add guard checks and other fixes.

CRs-Fixed: 3083541
Change-Id: Ibf642ddc6b40ce258d50f3eeb4f820648222a758
2021-12-09 13:42:00 -08:00
Shwetha G K
3c5ce319c3 qcacmn: Add MLO NAWDS support
Changes to support NAWDS (Non Association based
WDS) when MLO is enabled.
Since NAWDS repeater works without association, user
inputs capabilities and puncture_bitmap associated with
each link. The same information is to be passed to
mlme peer create API to configure the STA nodes per
capability & puncture bitmap provided by user.

Change-Id: Ia0722a454321bf9d408860276f852dd10712c12c
CRs-Fixed: 3077880
2021-12-09 12:25:36 -08:00
Rohan Dutta
a6be671ddf qcacmn: Clone security params for MLO STA
Clone security params in MLO STA over the partner links.

Change-Id: I06ba32e384244fe983ecf56d7743c89b33524d6f
2021-12-07 11:15:42 -08:00
Yu Wang
2cec5acc85 qcacmn: move MLO related common definitions to umac
WMI includes are not part of include path in some WIN projects,
move MLO related common definitions to wlan_mlo_mgr_public_structs.h.

Change-Id: If63c82bc15a2a0e0a045be896b74ea9addb3a64d
CRs-Fixed: 3083776
2021-12-03 03:05:22 -08:00
Krishna Rao
39c0eb2153 qcacmn: Add API to get partner link info from Basic Variant ML element
Add API to get partner link information in the per-STA profiles
present in a Basic variant Multi-Link element. The partner link
information is returned only for those per-STA profiles which have a
MAC address in the STA Info field. Also note that the current
implementation does not have Multi-Link element fragmentation support
- this will be added in an upcoming change after shared helper
utilities for the same are available. Similarly, the current
implementation does not have support for per-STA profile fragmentation
- this may be added once it is introduced in the IEEE802.11be
standard.

Change-Id: Ied7092ba1366d39fa15adffc3737d4ad5c0adf59
CRs-Fixed: 3040491
2021-11-29 07:34:05 -08:00
Chaithanya Garrepalli
65137277e8 qcacmn: chages to save soc list in mlo setup
Changes to save SOC list in MLO setup

Change-Id: I185bf26b1dac6eced03931c213297564abe74747
2021-11-23 21:59:34 -08:00
Kiran Venkatappa
3e3ed9ca89 qcacmn: MLO setup, teardown sequence changes
MLO setup, teardown sequence changes

Change-Id: I76d14cd66c373b3b734a17e44f3655ffd17893c5
CRs-Fixed: 3059859
2021-11-23 16:57:00 -08:00
Chaithanya Garrepalli
1faab04393 qcacmn: Changes to create DP ML context
Changes to create DP ML context and associate
with CP MLO manager.

Change-Id: Ic254c883de7c6d6db0fe722a48f0faabbaad0247
2021-11-23 03:55:30 -08:00
Krishna Rao
5f1d4dd7fb qcacmn: Add API to get link ID from Basic Variant ML element
Add API to get the link identifier from a given Basic variant
Multi-Link element or element fragment sequence, of the AP that
transmits the Multi-Link element/element fragment sequence or the
nontransmitted BSSID in the same multiple BSSID set as the AP that
transmits the Multi-Link element/element fragment sequence and that is
affiliated with the MLD that is described in the Multi-Link element.

Change-Id: I45039a6ed8ccd9403eae9514c60bcd8d694d2a31
CRs-Fixed: 3040407
2021-11-16 20:58:00 -08:00
Lincoln Tran
632f919086 qcacmn: Fix compilation issues related to MLO disconnect
When the WLAN_FEATURE_11BE_MLO_ADV_FEATURE macro is enabled,
some functions are not reachable or defined. Move the
definitions accordingly to fix compilation issues.

Change-Id: I698f290e69f0acc9b72d60081849bce093d05741
CRs-fixed: 3075650
2021-11-16 14:53:29 -08:00
Krishna Rao
77e686b250 qcacmn: Add API to get MLD address from Basic Variant ML element
Add API to get the MLD MAC address from a given Basic variant
Multi-Link element or element fragment sequence.

CRs-Fixed: 3053521
Change-Id: I96cf893ae4a089c20bd2d8b783c4e3d1d4eb3e4a
2021-11-16 12:21:57 -08:00
Krishna Rao
b5253e0f65 qcacmn: Add API to get the variant of the given ML element
Add API to get the variant of the given Multi-Link element or element
fragment sequence.

Change-Id: I09b10c8e14e1a7e7b500116782f07d9fde7a78e1
CRs-Fixed: 3040403
2021-11-14 07:07:39 -08:00
Krishna Rao
f0b40c96d7 qcacmn: Add API to find Multi-Link element
Add 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: I3dbd0f9053e3a1e20b47c182b5258f49b1e2c409
CRs-Fixed: 3040400
2021-11-12 18:06:25 -08:00
Srinivas Pitla
cc7d98b794 qcacmn: MLO Peer changes
This change implements timer based msgq processing to defer
the context for MLO peer. It also fixes some of the issues in
MLO peer path, It adds utils APIs for MLO params

Change-Id: I94384c91adfb8785d833bff1ba5541dc98cfc383
CRs-Fixed: 3059837
2021-11-12 11:32:39 -08:00
Himanshu Batra
b21d96305e qcacmn: Modify MLO disconnect handling
Modify MLO disconnect handling to issue disconnect on all links in
parallel
Also modify connect resp to accommodate ml info in connect resp

Change-Id: I57575c6ce7c8ebff7770f862dc81e7dfd20aa42d
2021-11-11 00:37:03 -08:00
Bapiraju Alla
055acf7a87 qcacmn: Notify partner links info in connect response to the supplicant
Fill ML partners info in connect response structure of the connect
notification to the supplicant.

Change-Id: I3b972254138d0f00ef63f2b4d336d142e6d5e2ae
CRs-Fixed: 3036325
2021-11-03 11:31:38 -07:00
Himanshu Batra
b981e05832 qcacmn: Add API to get link peer assoc req buffer
Add API to get link peer assoc req buffer

Change-Id: I293a86f8eaaaf5a2e02802388960386848201a2c
2021-10-26 04:44:06 -07:00
Himanshu Batra
2100a410a5 qcacmn: Add APIs to modify connect_req/connected vdevs bmap for ML STA
Add APIs to modify connect_req/connected vdevs bmap for ML STA

Change-Id: I3c68f2f7a87db49eb72ddf0d9e85ae7387974c85
2021-10-19 09:49:48 -07:00
Bapiraju Alla
eadfb45b23 qcacmn: Fix MLO connection issues
Add minor fixes to allow MLO connection.

Change-Id: Ic9e464b6e5c948676d5ad0e2519c096a9e1b1964
CRs-fixed: 3021328
2021-10-15 15:32:04 -07:00
Kiran Venkatappa
24d3c5dc59 qcacmn: Compilation fix when 11BE files are removed
Add some 11BE files inclusion under feature flag to fix
compilation error when 11BE files are removed.

Change-Id: I809c5a3e3be2b6a7db35fa420714063b730ebe1d
2021-10-01 15:18:16 -07:00
Lincoln Tran
bb30b105cf qcacmn: Fix MLO compilation issues
Fix compilation issues in MLO related code.
Add debug prints when generating link assoc response.
Add NULL value check.

Change-Id: Ie5951816ee39428c086ec91eaa6fc9cf598072b6
CRs-fixed: 3038725
2021-09-27 17:57:59 -07:00
Himanshu Batra
dff5855dd9 qcacmn: Add API to get ML vdev list
Add API to get ML vdev list

Change-Id: Ie4a001dc5b1906f2236f54335e3867727fd25e02
2021-09-24 20:45:03 -07:00
Krishna Rao
cea74e2c92 qcacmn: Add 802.11 field lengths and other definitions
Add or modify the following IEEE 802.11 related definitions for use in
protocol processing code:
- Add individual length definitions for the following initial fields
used in some 802.11 management frames: Timestamp, Beacon Interval,
Capability Information, Listen Interval, Status Code and AID. These
are added so that protocol processing code that needs to skip over
individual fields can refer to the relevant lengths.
- Modify the definitions of assoc request/response IE offsets to use
some of the above individual definitions.
- Add definition of position of element ID extension
- Add element ID for fragment element
- Add definition for size in octets of Link ID Info subfield in Basic
variant Multi-Link element Common Info field.

Change-Id: I272a5f99573b41d7431c8dd782d02bd141813def
CRs-Fixed: 3025500
2021-09-22 03:16:17 -07:00
Lincoln Tran
50e7e5c6ae qcacmn: Copy assoc IE for MLO link connect
When associating the partner link in an MLO connecting, reuse the
association IEs from the original connection. To do this, store the
connection manager connection request to query later, since this
holds the assoc IE data.

Change-Id: I100351a4c9cd439222af202ca3e80ef50554e1e3
CRs-fixed: 3016095
2021-09-10 20:09:48 -07:00
Kiran Venkatappa
03a407cea5 qcacmn: Add API to get pdev object from hw_link_id
Add API to lookup pdev object based on hw_link_id and return this with
reference held. Caller is responsible for releasing the ref

Change-Id: I6e3e371462c0d2a4b590b4a5de5c098a72577827
CRs-Fixed: 3026072
2021-09-06 03:12:28 -07:00
Santosh Anbu
d445d62fd9 qcacmn: MLO quiet vdev bitmap support for AP
Add change to support indication of quiet vdev for MLO AP context.

Change-Id: I7368e023976c29ae98fef2b86ef6aee0b7621390
CRs-Fixed: 2924329
2021-08-31 01:15:33 -07:00
Srinivas Pitla
7469335fa4 qcacmn: MLO peer implementation
This change adds MLO support to Peer.
It implements,
1) MLO peer list management
2) AID allocation
3) MLO Peer creation/deletion
4) Notifying partner links on peer creation/deletion/assoc

Change-Id: Ie1b675dccdf0de1d79f6f32d9255cf3cca53fdf2
CRs-Fixed: 2967057
2021-08-15 01:53:04 -07:00
Himanshu Batra
159972081f qcacmn: Remove redundant API mlo_is_mld_ap
Remove redundant API mlo_is_mld_ap

Change-Id: I78996b639439efb3e4f81bf42a2437bca935c8a9
CRs-Fixed: 3005510
2021-08-04 10:39:13 -07:00
Amruta Kulkarni
f6032d1c4a qcacmn: Generate Link Specific Assoc Response
Generate link specific association response for
MLO partner links.

CRs-Fixed: 2970626
Change-Id: I48520290c09f48ce356d166e1cd2ef24938e8fb2
2021-08-03 06:55:23 -07:00
Santosh Anbu
1c91398f51 qcacmn: Fix event dispatch for MLO_SYNC_WAIT
Add count to hold number of vdevs in a MLD link and fix sending
WLAN_VDEV_SM_EV_MLO_SYNC_COMPLETE in sync context to vdev SM.

Change-Id: Ie07c3e541ed5926ac08ae5a9d50e4365fefb1d52
CRs-Fixed: 2982475
2021-07-27 14:34:24 -07:00
Shashikala Prabhu
3925ddf85b qcacmn: Add WMI MLO params for CSA beacon template
A new TLV is added to send partner link CSA/ECSA count offset to FW as
part of beacon template. Add WMI changes to populate these TLVs in the
beacon template send function.

To fix the compilation issue, added forward declaration of 'struct
vdev_mlme_obj' and removed 'include/wlan_vdev_mlme.h' include file from
wlan_mlo_mgr_public_structs.h.

Change-Id: I6e421b29bb887bec711a23db1458aca4d112ade4
CRs-Fixed: 2983249
2021-07-21 21:08:55 -07:00
Amruta Kulkarni
84f88dd33f qcacmn: Get partner link channel freq
Get partner link channel freq from bssid

CRs-Fixed: 2969251
Change-Id: Iab14768d7b51f0114ca40a3ec5bc942ac8ea4f1c
2021-07-20 08:28:37 -07:00
Himanshu Batra
7d92d3dd78 qcacmn: Add MLO STA disconnect API definitions
Add MLO STA disconnect API definitions.

Change-Id: I7da336d7c634cc1408f7e92a0276ee950eed6ed6
2021-07-20 08:28:33 -07:00