Commit Graph

373 Commits

Author SHA1 Message Date
Himanshu Batra
444fa57930 qcacmn: Add force flag support for PTQM migration
Add force flag support for PTQM migration.
This flag will be used to allow migration to vdevs which are not
allowed to be selected as primary by using the ini config.
This will be helpful in scenarios where if the current primary link is
going down and peer ptqm needs to be migrated but the partner links of
that mld are the user disabled links for ptqm.
Also add skip_pumac_cnt to mark a link to be skipped from being selected
as new primary

Change-Id: Ia8c7881f37d32211a732c5c7394c4a608099b62a
CRs-Fixed: 3548552
2023-07-14 01:12:15 -07:00
Deeksha Gupta
a886fa16eb qcacmn: Add new API to reset AP link info from mlo_mgr
Add new API to reset AP link info from mlo_mgr.

Change-Id: I806859456a435ba09b0def26ca58fe04759d04f5
CRs-Fixed: 3530707
2023-07-13 11:24:58 -07:00
Deeksha Gupta
2799299d9e qcacmn: send ml_partner info during assoc vdev peer assoc cmd
Send ml_partner info during assoc vdev peer assoc cmd

Change-Id: Icd69a513dbaeed7ca334a8627fb4b8a9b28d01c3
CRs-Fixed: 3530674
2023-07-13 11:24:47 -07:00
Srinivas Pitla
3cee2d29bb qcacmn: Include bridge peer in reassoc link count
This change includes brideg peer in link count
for reassoc frame validation.

Change-Id: I1f27d699b25910e24fa39e4822e36f1cdd20f18e
CRs-Fixed: 3556929
2023-07-13 08:37:50 -07:00
Paul Zhang
4e97268972 qcacmn: Remove length check when process EPCS response
Currently, util_parse_pamlie_perstaprofile_stactrl checks
whether both EDCA and MU EDCA are included in the EPCS
response frame. Per the 11be_D3.1, the STA Profile subfield
optionally contains EDCA and MU EDCA parameters, so remove
the check to address IOT issue.

Change-Id: Ic1f7d4dbb951d9605b7cd7f0f1970895328183f6
CRs-Fixed: 3557340
2023-07-13 00:42:01 -07:00
Arun Kumar Khandavalli
0ef7402a2b qcacmn: Link switch initial checkin
Add new file wlan_mlo_mgr_link_switch.h and .c
which contains MLO manager public file containing
link switch functionality.

Change-Id: I2bce76e7de09a1c9ba4a4cdd83855db41166739b
CRs-Fixed: 3530571
2023-07-12 19:03:47 -07:00
Vijay Patil
c1d9d64d61 qcacmn: Add change to replace free connect request API
In current scenario osif_cm_free_connect_req() and mlo_free_connect_ies()
used to free up connect request and its sub memory.
Similarly cm_free_connect_req() and cm_free_connect_req_param() also
free up the connect request and its sub memory.

So replace osif_cm_free_connect_req() with ucfg_cm_free_connect_req(),
mlo_free_connect_ies() and qdf_mem_free() with wlan_cm_free_connect_req()
and  mlo_free_connect_ies() with wlan_cm_free_connect_req_param().

Change-Id: Ie62603652dd77ae5ae9f7b7085d4b9bb257eaf53
CRs-Fixed: 3554234
2023-07-12 07:49:19 -07:00
Himanshu Batra
fe2cdfb7a9 qcacmn: Modify failure handling of PTQM migration WMI command
In PTQM migration WMI command, multiple peer entries can be sent.
If the number of entries are more than WMI buffer size limit, then
multiple WMI commands are sent. If there are some WMI PTQM cmd sent
successfully followed by a failure, reset peer flags only the failed
entries instead of all the entries

Change-Id: I1031f1ac700e05e651a2488827cb6b6cda195bac
CRs-Fixed: 3556179
2023-07-12 07:49:07 -07:00
Sai Rupesh Chevuru
219a541da6 qcacmn: API to get the bridge peer
API to get the bridge peer if available

Change-Id: Ib93df6f95ad4bff4cb628be637799a5b40d20272
CRs-Fixed: 3552648
2023-07-10 12:14:02 -07:00
Nidhi Jain
84327ba403 qcacmn: Change mlo_err to mlo_debug
Change mlo_err to mlo_debug to avoid prints for WIFI6/6E platforms.

Change-Id: I48d83683afd3fb0e6db7844a9254e1b78f9e2868
CRs-Fixed: 3532032
2023-07-04 15:41:31 -07:00
Himanshu Batra
6ebded7a71 qcacmn: Use qdf_list APIs instead of TAILQ APIs
Use qdf_list APIs instead of TAILQ APIs.

Change-Id: Ie82fe6450013838f4125073d1f9a6da41b8516ed
CRs-Fixed: 3545385
2023-07-03 12:54:05 -07:00
Liangwei Dong
7280363bff qcacmn: Add force link state API by link id bitmap
Add send_mlo_link_set_active_id_cmd_tlv API to send
force link bitmap to target.

Change-Id: Ie3a41bd2c82b6d10c8d82e4afa83621969c01798
CRs-Fixed: 3515441
2023-06-28 05:05:18 -07:00
Himanshu Batra
bc4f921706 qcacmn: Add support to reject ptqm migration for 4-link RDP
Add support to reject ptqm migration for 4-link RDP

Change-Id: Ib81e053880b74b3c925eb0c69ace3e80f9d08a66
CRs-Fixed: 3529926
2023-06-27 04:03:52 -07:00
Himanshu Batra
be34bbe6fc qcacmn: Add support for ptqm migration
Add support for ptqm migration

Change-Id: I3f3d6e410bee554477e8e058b1da51f2af5abb23
CRs-Fixed: 3529926
2023-06-27 04:03:41 -07:00
Himanshu Batra
6f407b1a93 qcacmn: Modify return type of primary umac selection API
Modify return type of primary umac selection API so that multiple
callers can use the same algo for selecting new primary umac

Change-Id: I6e38839ae3489b6643ef0337c8e20d7c738c3763
CRs-Fixed: 3529926
2023-06-27 04:03:29 -07:00
Aniruddha Mishra
df9658cc1d qcacmn: Add nstrinfo in ml_partner_info and parse
Add nstrinfo in ml_partner_info and parse sta info.
Add nstr_info in ml_peer_ctx and peer_assoc_params
and send to FW

CRs-Fixed: 3483776
Change-Id: I255fc671b84a2048c6057a61a6de8d81db36c681
2023-06-22 06:06:49 -07:00
Abhinav Kumar
c29e8614e0 qcacmn: Process MIXED_MODE_ACTIVE_NUM_LINKS vendor command
1. Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor command.
2. parse the new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_MIXED_MODE_ACTIVE_NUM_LINKS
and get the number of MLO links to operate in the active state.
3. If any of the links is in an inactive state due to concurrency,
we need to reject the request.
4. Host sends to FW via WMI command WMI_MLO_LINK_SET_ACTIVE_CMDID via
the below WMI attributes with mode WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM
and set the wmi flag control_flags to indicate if FW need to use
force link number instead of force link bitmap.

Change-Id: I91759e6a1273d393f4bef1264478950416752355
CRs-Fixed: 3529489
2023-06-21 16:54:09 -07:00
Vijay Patil
01da59899e qcacmn: Add fix to free roaming info from copied reassoc response
In current scenario during OWE roaming when HB failure occurs,
it should clean copied reassoc response and roaming info. But it
is not getting freed which leads to memory leak and host driver
crash while on idle shutdown.

Free copied reassoc response at mlo_dev_ctx_deinit().

Change-Id: I1a25e4ad1ba62d3d6b90da38cb5b7ab7c3f8e91a
CRs-Fixed: 3530058
2023-06-20 06:39:18 -07:00
Sai Rupesh Chevuru
d261c841e3 qcacmn: API to get the number of links for a peer from CP
API to get the number of links for a peer from CP

Change-Id: I63b118a339f591f0a86ddcc29c392dc5f9803e01
CRs-Fixed: 3521689
2023-06-19 11:01:40 -07:00
Krunalsinh Padhar
7ad8b35c78 qcacmn: Set non assoc link as primary netdev
Make provisions to explicitly set non assoc link as primary netdev for an
MLO association.

CRs-Fixed: 3508341
Change-Id: Iaef4eff6ac309f278a18f8ceee2ffb6c4ad604b6
2023-06-15 16:31:48 -07:00
Srinivas Pitla
a238a3e04b qcacmn: Choose second highest bw link as primary link
This change selects psoc with second highest bw link as primary link
for first ML STA.

Change-Id: I1b60f83f695b04d533e4851b3751b8e1dfd9790c
CRs-Fixed: 3521765
2023-06-11 00:14:25 -07:00
Gururaj Pandurangi
2d67497cfb qcacmn: Add support to force power save the active MLO links
Add MLO manager and target interface support to force power
save on all the active MLO links for a defined number of
beacon periods. Force power save allows the firmware to
suspend STA links for X beacon periods and remain asleep
even if the AP advertises TIM as opposed to regular power
save mode where STA links wake up if the AP indicates that
it has buffered data to send.

Change-Id: Idb3ea42cfc2333a4b177780d09ddec6904ea0c16
CRs-Fixed: 3514468
2023-06-09 13:49:57 -07:00
Paul Zhang
cf19f91320 qcacmn: Fix compile issue on file wlan_mlo_epcs.c
Replacing ether_sprintf() with QDF_MAC_ADDR_REF() for
common usage.

Change-Id: I86a7169411af18f017fc3c0e27ce8a35f6ebd4a0
CRs-Fixed: 3519162
2023-06-07 04:31:29 -07:00
Venkateswara Swamy Bandaru
f4f5f1cb88 qcacmn: Add API to authorize/deauthorise mac address
Add APIs to authorize and deauthorise mac address for
EPCS feature.

Change-Id: I69ac46fe59de85ac57a6142b6a1ed710e02a8cca
CRs-Fixed: 3510154
2023-06-02 03:34:01 -07:00
Venkateswara Swamy Bandaru
2a20dc67d1 qcacmn: Update Priority access ML IE parsing
Update Priority access ML IE processing with below.
1. Check for ie header before updating sub elements
2. Add WME vendor IE parsing support

Change-Id: If479f95517946511d5e94feadf92a10c61efd2a6
CRs-Fixed: 3508861
2023-06-02 03:33:49 -07:00
Himanshu Batra
b7ad8efcf9 qcacmn: Add null check for connect req while handling deferred connect
Add null check for connect req while handling deferred connect

Change-Id: Iea54005240e5f8608d8da655e8f0fbc0d535291e
CRs-Fixed: 3506588
2023-05-30 23:56:16 -07:00
Venkateswara Swamy Bandaru
3e0b45fc11 qcacmn: Add priority access ML IE support
Add support to parse priority access multi link IE.

Change-Id: I7a226e0fd1a4d229d721244aeb675e1c09cc5ed3
CRs-Fixed: 3490404
2023-05-30 16:56:39 -07:00
Surya Prakash Raajen
37b9ea37d4 qcacmn: Alloc dp_mlo_ctxt only if its not allocated
Alloc dp_mlo_ctxt only if its not allocated, if dp_mlo_ctxt
is previously allocated reuse the same.

Change-Id: I666b3e6090afaa1ef4d20ff154c4b996a5eef51c
CRs-Fixed: 3510336
2023-05-29 01:38:50 -07:00
Aniruddha Mishra
4f5c422aa4 qcacmn: Add max simult links in peer_assoc_params
Add 'max_simultaneous_links' in peer_assoc_params
and send it to FW via peer_assoc_add_mld_params.

Change-Id: Ie4c3492cf03ef43e1bb02122019cda3679fb5f3a
CRs-Fixed: 3476565
2023-05-27 01:40:40 -07:00
Venkateswara Swamy Bandaru
eddd2583fb qcacmn: Add EPCS state machine support
Add EPCS state machine support per peer.
Based on user command trigger or EPCS action frame
EPCS state will change.

Change-Id: Ib516543cec6a7007f12680b0e86b9edbe223b68d
CRs-Fixed: 3491941
2023-05-26 18:16:51 -07:00
Srinivas Pitla
06ed8855eb qcacmn: Choose highest bw link as primary link
This change selects psoc with highest bw link as primary link
for first ML STA.

Change-Id: I7d71507df79070c7e975ed2f27cbadce707d9cd4
CRs-Fixed: 3509085
2023-05-26 08:15:54 -07:00
Venkateswara Swamy Bandaru
ece1e3a025 qcacmn: Fix EPCS status code size
Change EPCS status code size to 2 bytes as
per spec.

Change-Id: I0e45626d2a35d55947d5ebc269acf97269465ef9
CRs-Fixed: 3508758
2023-05-26 02:02:44 -07:00
Santosh Anbu
6b8aca7fb6 Revert "qcacmn: Consider vdev_id also along with link id for connected bitmap"
This reverts commit I097b6f672c4656bfa2892f102e50998065463516

Change-Id: If6fd8cdff1ec91ffe9d7be0b5b0d7b99f693e906
CRs-Fixed: 3508863
2023-05-25 04:22:48 -07:00
Amruta Kulkarni
0ca70c863e qcacmn: Add support to parse t2lm ie from assoc rsp
Store the copy of t2lm ie in mlo dev context and
apply t2lm config to FW when all links are up.

Change-Id: I87b2db9aba263634a558f24d99bf8e5bb91f2128
CRs-Fixed: 3504533
2023-05-24 21:40:26 -07:00
Srinivas Pitla
9beb7dfcab qcacmn: Maintain peer assoc sent flag for MLO link peers
This change adds support to set flag to indicate peer assoc
sent to FW. On peer delete, using the flag, it excludes
the peer assoc command missing link in peer delete command

Change-Id: Icb559941598a797e7d437fbb90a94358f709a2b3
CRs-Fixed: 3504769
2023-05-23 23:53:47 -07:00
Krunalsinh Padhar
674d313577 qcacmn: Improve ml_peer_count handling
Make ml_peer_count as qdf_atomic_t to handle the concurrency issues.

Change-Id: I96f2e3d5e17225d0354a1fd2e2b3a55c21d4a2fc
CRs-Fixed: 3500440
2023-05-23 19:54:21 -07:00
Surya Prakash Raajen
43057d2442 qcacmn: Prevent parallel start/stop of target/soc
Prevent start and stop process of target or soc, as it could
lead to issues for mlo enabled socs of that mlo group

Change-Id: Ib2b28443828cbc4be670f5bc8a69d4fecfc1c8b7
CRs-Fixed: 3500007
2023-05-23 19:54:01 -07:00
Venkateswara Swamy Bandaru
a86dd8a444 qcacmn: Add EPCS action frame parsing support
Add support for parsing of EPCS action frame.

Change-Id: I53c6e9fe7dd802c0b60170a3e441eb2ef5b8c659
CRs-Fixed: 3490403
2023-05-22 16:46:21 -07:00
Liangwei Dong
d430e6a706 qcacmn: Update multilink reconfig ie for ieee802.11be D 3.0
Update ML Reconfig ie parsing for D 3.0:
1.Add new common info length subfield in common info length.
2.remove STA profile subfield from Per-STA profile subelement
3.add STA info length and STA mac address subfields in the
STA info field.

Change-Id: I02988ae7a2098b0278438e26156475e2b4f9c4ab
CRs-Fixed: 3465406
2023-05-22 09:09:16 -07:00
Surya Prakash Raajen
6438a661f5 qcacmn: Export wlan_mlo_peer_deauth_init as symbol
Add support to export wlan_mlo_peer_deauth_init as
symbol.

Change-Id: I384f47cf72ae30c7cddc9b1c52c1745c2f8e447c
CRs-Fixed: 3498865
2023-05-22 07:06:34 -07:00
Bing Sun
2d2f50fbf0 qcacmn: Consider vdev_id also along with link id for connected bitmap
When STA roams from SLO to SLO, only vdev 0 should be set as connected
link, while vdev 1 should not be set as connected link.

Currently vdev 1 is set as connected link incorrectly because its link
id is 0 which is the same with the link id from roam sync event.

link id is not a unique parameter. All are 0 by default.
vdev id should be used because it is a unique parameter.

Change-Id: I097b6f672c4656bfa2892f102e50998065463516
CRs-Fixed: 3497124
2023-05-21 11:38:57 -07:00
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
Shashikala Prabhu
528a63c3ce qcacmn: Decrement num vdevs in the MLD on vdev detach
Decrement number of vdevs in the MLD on vdev detach.

Change-Id: I9040ac46d60e2e8738f6b3eaf46db6b72bad729c
CRs-Fixed: 3483554
2023-05-17 08:35:07 -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
Bing Sun
84d654cc7c qcacmn: Initialize local variable before using it
Do not use API to do variable initialization job.
Otherwise there is built error in some platform.

Change-Id: I489057a2753bf7bf091e87b902efa833ea90ece9
CRs-Fixed: 3471557
2023-05-14 22:57:48 -07:00
Surya Prakash Raajen
0fcbe55b8d qcacmn: Drop multiple teardown if already in teardown
Drop multiple teardown requests if mlo group is already in
teardwown phase

Change-Id: Id07ed50c2845b69c79bf6ccc4a6436eab8898532
CRs-Fixed: 3458369
2023-05-14 13:37:58 -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
Himanshu Batra
25e0531edd qcacmn: Add fix to validate disconnect req for MLO STA
In case of MLO, to avoid race between ongoing connect and a new
disconnect, add fix to validate disconnect req for MLO STA

Change-Id: I4b27a06103ffce637738b1894c3bdcf46533043c
CRs-Fixed: 3493915
2023-05-14 11:07:21 -07:00
Krishna Rao
4f26b0e43f qcacmn: Allow modification of ML Reconfig delete timer
Allow modification of ML Reconfig AP remove delete timer at non-AP MLD
even if the AP removal is already in progress. The standard does not
currently provide for modification of the delete timer countdown at AP
MLD. However, if the AP MLD does carry out such a modification in
scenarios such as those given below, the non-AP MLD would be out of
sync with the AP MLD. Hence, we allow this modification.

Scenarios:
- At our AP MLD, if non-Tx VAP removal is ongoing, and subsequently
removal of its Tx VAP is requested with Delete Timer smaller than that
of non-Tx VAP, then non-Tx VAP's Delete Timer gets overridden with
that of the Tx VAP (this is due to an existing standards limitation
which doesn't allow change of Tx VAP role).
- There could sometimes be an issue with AP MLD due to which it might
incorrectly prolong the countdown by some margin in situations such as
an intervening CSA operation, etc.
- Some future 802.11be draft change may (or may not) allow
modification of the delete timer. (We may not guarantee
interoperability between an AP MLD implementing a future draft and a
non-AP MLD implementing the current draft, but the current
implementation change contributes towards best-effort
interoperability).

Change-Id: I6abc7565a5822bb7206c873716f1e3fc6a04416e
CRs-Fixed: 3466313
2023-05-12 23:09:09 -07:00