Revīziju grafs

451 Revīzijas

Autors SHA1 Ziņojums Datums
Shiva Krishna Pittala
ac7f260278 qcacmn: Migrate PTQM of BSS peer of a non-AP MLD upon ML AP removal
Before proceeding to the ML AP removal at the non-AP MLD, migrate the
PTQM of its BSS peer if it has the link to be removed as the primary.

Change-Id: I477538135186e4f1039bbdf83cfd0c826503f75f
CRs-Fixed: 3575221
2023-08-01 20:29:22 -07:00
Liangwei Dong
adb0ec3b16 qcacmn: Fix duplicate process of link set event
Add flag in event response struct to indicate event processed
or not.
Use scheduler thread to process set link active event same as
other link switch and vdev event to avoid race condition.

Change-Id: I963f9106e296a59cff5078c85a4accf63c7026dc
CRs-Fixed: 3572868
2023-08-01 09:38:15 -07:00
Liangwei Dong
5a23527cfd qcacmn: Extract current active/inactive link bitmap
FW will report current active/inactive link bitmap for
each set link command. Extract them and save to respone
data struct.

Change-Id: I8513391fbf3b181c6182d6568d0ce8e83c627bc6
CRs-Fixed: 3564785
2023-07-31 23:55:45 -07:00
Vinod Kumar Pirla
af6cf93a07 qcacmn: FW Link switch request event handler and cnf resp
Once the FW sends the link switch request to host handle
the request from scheduler thread and send confirmation
back on completion of link switch process with status of
link switch (success/failure).

Add new serialization command type for link switch.

Introduce flags to get the current state of link switch
request, set the state to idle when no link switch in
progress or once the current link switch is completed.
Access to state is protected with MLO dev context lock.
Implement various helper API to:
    a) Transition link switch to next state.
    b) Get current state of link switch.
    c) To check whether any link switch is in progress.
    c) To check whether link switch is happening
       on assoc VDEV or not.

Introduce a new VDEV flag to suggest the VDEV is in
link switch process and also implement helper APIs to
set/get/clear this VDEV flag.
   a) The flag is set at start of link switch, once
      the FW request params are validated and before
      proceeding for link switch disconnect on VDEV.
   b) Clear the flag once the Link switch confirmation
      is sent to FW.

Validate the link switch request params:
     a) IEEE link ID's received.
     b) Check if new connection is part of MLO connection.
     c) Check if VDEV is MLO STA VDEV or not.
     d) Is VDEV in connected state or not, that means
        VDEV is not in transitioning state due to disconnect.
     e) Check if any link switch in progress on this MLD
     f) Current link ID of VDEV equals the FW params.

If validation is successful, serialize the link switch
command and in the serialization activation start the
actual link switch process.

Change-Id: Ie582650541054c8cf39aaa8316e86a7a40256a15
CRs-Fixed: 3556422
2023-07-31 19:38:48 -07:00
Vinod Kumar Pirla
2ec28965cf qcacmn: Clear copied connect request IEs on disconnect
If non-ML type connection fails, then the connection IEs
copied in sta ctx are not cleared as VDEV is not ML VDEV.

Clear the IEs if connection fails irrespective of VDEV type.

Change-Id: I2a2ca155aadeb408e9a4a425d3f1f03f4dbfb867
CRs-Fixed: 3572185
2023-07-31 15:51:23 -07:00
Shiva Krishna Pittala
97684a103f qcacmn: Handle unmigrated clients during MLO AP removal
At the end of the link removal procedure, issue full disconnect of only
those ML peers that still have the removed link as primary TQM and there is
no ongoing PTQM migration of those peers.

Change-Id: I1a4c34313eb2cb49187c1d9b47e5918ada32ccf7
CRs-Fixed: 3550142
2023-07-31 12:20:26 -07:00
Shreedhar Parande
b4db727551 qcacmn: Add API for bridge vdev handing
Add APIs to populate, destroy and get bridge vdev count.

Also send bridge VDEV details in partner link info via
VDEV START command to target.

Change-Id: Iea155b09051b6724d07cf2b6052a07c1d3beb7e8
CRs-Fixed: 3567098
2023-07-30 22:45:14 -07:00
Uraj Sasan
329a080940 qcacmn: Add bridge sta link id
Store linkid used by vdev in bridge sta ctx

CRs-Fixed: 3562149
Change-Id: Ib6550b65abfaae71c7f021640fa3f93bc1ad967c
2023-07-30 19:07:56 -07:00
Uraj Sasan
2fce323cb6 qcacmn: API's to check topology and total links
1. APIs to check topology to see if the bridge vap/peer will be used.
2. API to check the max number of links supported.

Also check if we can have the primary and assoc links to be different
for WDS STATION. Based on the topology allow/block
connection to a particular AP.

CRs-Fixed: 3562149
Change-Id: Icf3b32036199f39b0d567ac88795dc07760ac1a5
2023-07-30 19:07:45 -07:00
Aasir Rasheed
8f15871d98 qcacmn: Use WLAN_MAX_ML_BSS_LINKS to check max number of links
Currently, We are using WLAN_MLO_MAX_VDEVS to check
max number of links, However with n link mlo we need
WLAN_MAX_ML_BSS_LINKS to check max number link.

Change-Id: Idd8a96ae80030c813bbdcebcdc4c76d2f93bea5d
CRs-Fixed: 3567342
2023-07-28 05:33:05 -07:00
Himanshu Batra
80cdcc68dd qcacmn: Donot allow PTQM migration for unauthorized peers
Donot allow PTQM migration for unauthorized peers

Change-Id: I1d4d7b715793b976f6020ecc74b9443893d8073e
CRs-Fixed: 3568618
2023-07-27 08:31:58 -07:00
Shreedhar Parande
10000aedc1 qcacmn: Add API to get primary VDEV from ML peer
Add API to get primary VDEV using primary link peer.

Change-Id: I309070bf33bdae017f174b00ae5eea3d34292a97
CRs-Fixed: 3570511
2023-07-26 21:25:03 -07:00
Vinod Kumar Pirla
160f06923c qcacmn: Call OSIF callback to update BSS info on each link
Notify OSIF about each connected link once assoc VDEV connection
is completed, call the ops callback registered while filling
kernel data structure for each link.

Earlier post connection each VDEV's OSIF callback is called to notify
individually, but this leaves the OSIF unaware of standby link details
as the standby link doesn't have VDEV associated with it.

Change-Id: I027b91d02bdc4412400a7e66f11911da149e672b
CRs-Fixed: 3556378
2023-07-26 10:53:07 -07:00
Vinod Kumar Pirla
1049b376f7 qcacmn: Introduce OSIF ops callback handler pointers
The ops are called on BSS info to be updated to OSIF and
to call for MAC address update on particular VDEV

Change-Id: Ib7b07e6ea2927c365298555ed6f24377127ddd4a
CRs-Fixed: 3556338
2023-07-26 10:52:56 -07:00
Vinod Kumar Pirla
356ed4f407 qcacmn: Use ml dev context to deinit epcs ctx
The MLO dev context in VDEV is already made to NULL as
part of VDEV destroy and dereference of MLO dev ctx from
VDEV results in NULL pointer exception.

Change-Id: Idbbd625998aa09194ca533b0c8df2fd8e6d16d76
CRs-Fixed: 3570602
2023-07-26 10:52:34 -07:00
Shreedhar Parande
5daab8f6cd qcacmn: Add APIs to get EML and STR capabilities from ML Peer
Add APIs to retrieve eMLSR, eMLMR and STR capabilities of
connected non-AP MLD.

Change-Id: I1c4b11cfebef6a9b315baf9044355caab1b112de
CRs-Fixed: 3525298
2023-07-25 15:22:25 -07:00
Balaganapathy Palanisamy
9d048b9e4d qcacmn: Add MLO bridge vdev APIs
Add MLO bridge vdev APIs to support 4 chip
RDP STA associations.

Change-Id: Iea4c4e3301bc29d470144d5ae0964bb80f2ae68d
CRs-Fixed: 3560194
2023-07-25 03:19:04 -07:00
Arun Kumar Khandavalli
4c2b8d81e4 qcacmn: Reject partner link connection in case of IE parsing failure
Currently while updating the mlo vdev flag host checks whether the
mlie is present, this vdev flag is used to send various ml information
to firmware. In certain cases because of issue due to parsing of
ml probe response or AP issues mlie is not present in the partner link
entry, resulting in host sending ml flags for assoc vdev and not setting
ml flags for partner vdev's resulting in undetermined behaviors in
firmware.

If mlie is not present during the partner link association stay associated
on the available links.

Change-Id: I3134555dc955ffc96a50584c2cfc6713b2673cc4
CRs-Fixed: 3555133
2023-07-25 00:19:26 -07:00
Guru Pratap Sharma
25d2ff265a qcacmn: Adding lock in case of epcs context
Adding lock in case of epcs context to achieve mutual exclusion

Change-Id: Ib3e99b5f39eca01c62d32927942e99958320007a
CRs-Fixed: 3568561
2023-07-25 00:19:15 -07:00
Santosh Anbu
5faea3c76b qcacmn: Skip link ready when vdev is already UP
In scenarios when two partner vdevs are brought up simultaneously, as part
of moving to start_response or sync_wait mlo_ap_lock is acquired.

For a given vdev not moving to CAC wait, link ready can be posted twice,
which will lead to rcu stall if partner vdev is already trying to dispatch
sync_complete event.

Hence skip the link ready event if the vdev is already in UP state.

Change-Id: Ie3d2c4078ebced3538f3fea08d5b798837534725
CRs-Fixed: 3555092
2023-07-24 08:00:46 -07:00
Sai Rupesh Chevuru
2876ec5043 qcacmn: update the bridge vap in partner list
update the bridge vap in partner list

Change-Id: I232314d4a91768bc5bbade3285ab925dd834d03f
CRs-Fixed: 3550189
2023-07-24 05:10:29 -07:00
Krunalsinh Padhar
3d44d3fb6f qcacmn: force non-assoc link as primary for single soc
In force non-assoc link as primary case, If MLD is within single SOC, then
stop assoc link to become primary umac and allow the non-assoc link as
selected to be the primary umac.

CRs-Fixed: 3564005
Change-Id: I3f2d681ccacd9e449c1f1b74fa9df23429c11a1c
2023-07-22 03:57:21 -07:00
Aasir Rasheed
a78a9c13e0 qcacmn: Remove unnecessary code
This change is to remove unnecessary
code. Earlier this change was required for
partner link.
Change-Id: I8a217d3e81d395ae2eaf3d7b1641af83f3e95526
CRs-Fixed: 3565193
2023-07-21 16:50:34 -07:00
Venkateswara Swamy Bandaru
ba8e167b7a qcacmn: Add API get vdevs of peer
Add API to get vdevs per link of MLO peer.

Change-Id: I02aab17424b1f6b98868347291de98f082b267a5
CRs-Fixed: 3560163
2023-07-20 01:12:05 -07:00
Deeksha Gupta
9b7258ffff qcacmn: update mlme info for standby link
update  AP link information for standby link.

Change-Id: Ie5ff52e2ecea4548f738965efcfee54e08f63eb5
CRs-Fixed: 3530713
2023-07-18 12:50:10 -07:00
Shreedhar Parande
3177c12082 qcacmn: Define new list for bridge VDEVs
Declare new list to hold bridge VDEVs in MLD context.

Change-Id: I0cfe563708462faca272f9e7d4c8489a8fd9dfc0
CRs-Fixed: 3554509
2023-07-18 09:51:59 -07:00
Shreedhar Parande
86ee88bd0d qcacmn: Send bridge peer flag to target
Add and send bridge peer flag to fw.

Change-Id: I15ab04a8646975ad4cc85a66b632f85e359a9158
CRs-Fixed: 3554509
2023-07-18 09:51:47 -07:00
Aditya Kodukula
22eb121fe7 qcacmn: Fix improper arguments for QDF_MAC_ADDR_REF
Currently in driver while using QDF_MAC_ADDR_FMT to print mac
address, the mac address reference provided to QDF_MAC_ADDR_REF is
incorrect in some cases. Fix all such instances.

Change-Id: I324581691dfe683e0d5b046e19b444928657ce05
CRs-Fixed: 3556423
2023-07-17 22:37:45 -07:00
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