Commit Graph

276 次程式碼提交

作者 SHA1 備註 提交日期
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
Srinivas Pitla
76dd8f5ce7 qcacmn: Fix issue in num PSOC counter
This change adds missing increment for num_psoc in
primary umac selection algorithm

Change-Id: If9b3870b6c3d3e05b12af1897a4e238fc2ef687f
CRs-Fixed: 3404121
2023-03-06 21:52:06 -08:00
Shashikala Prabhu
4ed5695ef3 qcacmn: Add NULL check for MLO dev context
MLO dev context is accessed without NULL check.
Add NULL check before accessing the MLO dev context.

Change-Id: I51d672924dbbf70cbf4b7e4951a3a45d4fd551ec
CRs-Fixed: 3409901
2023-03-05 21:52:13 -08:00
Krunalsinh Padhar
6d5fea01f7 qcacmn: Selective peer discon during non-DFS to DFS
Disconnect only non ML peers in CSA from non-DFS channel to DFS channel,
while keeping all MLO peers connected.

Change-Id: I7e8347cf4692b16b84ffbce4b102dd2f23bb70f0
CRs-Fixed: 3394219
2023-03-05 11:23:00 -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
Krunalsinh Padhar
66e6f0c19c qcacmn: primary UMAC selection for 3 link MLO association
Add capabilities to select primary TQM in case of
3-link association in a four chip HW.
The idea is to find the link that is adjacent to both the
other links and use it as the primary UMAC

CRs-Fixed: 3417387
Change-Id: Ibf2f6040cbc6f355980cdfcb5491109998ad8919
2023-03-01 05:45:03 -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
dec5632356 qcacmn: Add ML reconfig starting notify for link removal
Add mlme_vdev_reconfig_notify callback to notify the ML
reconfig link removal starting after receive the first
ML reconfig link removal IE.

Change-Id: I9ae37b7defc75c97e7bc39e07c9d154e1923aedd
CRs-Fixed: 3380159
2023-02-16 21:31:16 -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
Himanshu Batra
97524335e8 qcacmn: Add mlo peer check in disconnect handling
In case of handling disconnect while sta is connected, if previous
connection is non-ml and a new connect is received with ml
connection on partner link then disconnect request on connected link
is getting ignored.
Fix to add mlo peer check in disconnect handling.

Change-Id: I456b45a080375b93ce209300bf7719e9e53733dc
CRs-Fixed: 3394233
2023-02-05 18:57:30 -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
Himanshu Batra
110b8dfe15 qcacmn: Add mlo peer check in validating disconnect
In case of handling disconnect while sta is connected, if previous
connection is non-ml and a new connect is received with ml
connection then disconnect request is getting ignored.
Fix to add mlo peer check in validating disconnect

Change-Id: I037854f2b4f16e17b8cc75d8a27f5806ed5f783a
CRs-Fixed: 3387398
2023-01-29 10:28:23 -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
Surya Prakash Raajen
321b889b11 qcacmn: Remove DP mlo context only after all soc are brought down
DP mlo context should be removed only after all socs are down.
In case of target recovery it was getting removed before socs/vaps
are down. Fix this to avoid invalid access

Change-Id: Icc62758ed2b62070428548476e33df4065948948
CRs-Fixed: 3376670
2023-01-25 16:36:44 -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
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