Commit Graph

25 Commits

Author SHA1 Message Date
Amruta Kulkarni
91d49f075a qcacld-3.0: Add changes to handle self roaming
For mlo roaming, roam sync will be handled on
link vdev/s first and then assoc link vdev.
In case of mlo self roaming, an issue is observed
during peer creation as one already exists on other link.

To solve this all link peers will be deleted
while handling roam synch on first link.

Change-Id: I4d3ff71dd7c8b54f3f06b0147ce23ac8bfe5f49b
CRs-Fixed: 3421698
2023-03-14 12:18:42 -07:00
Srinivas Dasari
18b0b2c910 qcacld-3.0: Populate partner info from roam sync ind to pe session
3-link ML connection/roaming expects link id to generate link
specific (re)assoc response from received (re)assoc response.
This info is fetched from pe_session but it's not populated
properly in case of roaming. Roam sync indication carries all
links info whereas the assoc rsp generation API expects the
link info for which it has to be generated.
Copy partner link info only from roam sync indication to
pe_session to cater the same.

Change-Id: I75c9a42688f7613ca3f1afab8afe77622bb659aa
CRs-Fixed: 3412939
2023-03-03 11:45:48 -08:00
Srinivas Dasari
8f1170af29 qcacld-3.0: Fetch bcn/prb rsp received freq based on source addr
Firmware sends beacon/probe rsp received to host as part of roam
sync(frame) indication. Frame received frequency is same as
re-association frequency in case of non-ML or single link ML
roaming.
But the ML probe response might come from non-assoc link in case
of multi link roaming. Probe response received frequency and
reassociation frequency are different in such cases. Some
IEs(e.g. HT_INFO) expect frame received frequency to match with
the frequency mentioned in the IE.
So, fetch the probe response received frequency from source
address of the frame and the ml_info of roam sync indication.

Change-Id: Ife96aa46de10d4cd6882e6d04479dfdd481582d4
CRs-Fixed: 3412842
2023-03-02 16:28:28 -08:00
Amruta Kulkarni
c73843f146 qcacld-3.0: Fix to free copied reassoc response
During OWE roaming if north bound disconnect is received or
link vdev connection fails copied reassoc response is not freed.

Fix is to free the copied reassoc response in the disconnect path.

Change-Id: I19d839b63c774b29ee449635722fae744c7e461d
CRs-Fixed: 3404843
2023-02-16 21:30:06 -08:00
Surya Prakash Sivaraj
c76288d024 qcacld-3.0: Cleanup link VDEV SM on roam HO failure
In case of legacy to multi-link MLO roaming, if roam sync event
handling fails, then the pe_session is deleted for the link
VDEV and the cleanup happens only for the assoc vdev. Since,
the link vdev doesn't have proper session/vdev params, the
cleanup fails in link VDEV. This leaves the link vdev in UP
state, even after disconnection. Therefore, subsequent attempts
to connect to an MLO-AP would fail since the partner link is
never cleaned up and is in invalid state(UP).

To fix this, propagate the HO-failure error through state machine
and move the VDEV SM from UP->DOWN directly.

Change-Id: I6480a1821ab4c8cf9af6cd96af0f7889307c3b18
CRs-Fixed: 3362995
2023-02-07 20:01:39 -08:00
Paul Zhang
66fcbb5894 qcacld-3.0: add critical update feature
Add critical update feature code. If BSS parameters change
count (BPCC) is changed, the value of cu_flag returns from
function lim_check_cu_happens is true. It can try to update
the critical update IEs code logic per cu_flag.

Change-Id: I39445a75e747e6e00a29be726fd447b9fbc7fb17
CRs-Fixed: 3296181
2023-01-26 01:24:45 -08:00
Amruta Kulkarni
87f1a94226 qcacld-3.0: Handle 1x roaming case
In case of 1x MLO roaming, 4 way handshake is offloaded to supplicant
and link vdev is down in FW. Host has to bring up link vdev post
set key installation.

Add handling in host for following:
- During roam sync indication handle only assoc link.
- Save reassoc response and link information.
- After keys are installed bring up link vdev by
queueing connect req on link vdev.
- Enable roaming after all links are up.

Change-Id: I9c0722f88e950ba05ec3dd7f44883bedf568f97d
CRs-Fixed: 3287316
2023-01-24 09:39:31 -08:00
Gururaj Pandurangi
8859328749 qcacld-3.0: Add support for T2LM action frame handling
Add support for T2LM action frame handling.
- Add an API to parse T2LM negotiation request action frame
and accept or reject T2LM mapping based on ML link info.
If accepted, store the new info in peer level context
and send it to FW.
- Add an API to send T2LM response action frame to
acknowledge request action frame with status code.
- Add wrapper API to invoke T2LM deliver event.

Change-Id: I10d440bd1713740ab8b9f1fe46439bea92e179db
CRs-Fixed: 3367425
2023-01-15 07:08:12 -08:00
Srinivas Dasari
f3438c702a qcacld-3.0: Fetch link freq based on link mac addr from roam sync
Currently, link frequency is fetched from roam sync indication
based on vdev_id. But the vdev_id is of assoc link in OWE/1x
cases(where link vdev would be down as part of roam sync handling)
but it would of non-assoc link in case of other modes
like SAE/WPA2/.. So current fetching of frequency based vdev_id
may give invalid frequency in SAE case as non-assoc link vdev_id
is passed.
Fetch the frequency based on link mac addr to avoid such failures.

Change-Id: I0a5748ac351473d85b21f2da8d8f124715c4d595
CRs-Fixed: 3358448
2022-12-14 23:15:18 -08:00
Amruta Kulkarni
63583f71ac qcacld-3.0: Validate T2LM IE
Adds support to parse and validate T2LM IE,
based on tid to link mapping pick the
association link for MLO connection.

Change-Id: I8ea23ff10f2a637148686f1e2194fd8cc1f4fb90
CRs-Fixed: 3344675
2022-12-07 02:23:58 -08:00
Srinivas Dasari
7324535b01 qcacld-3.0: Copy link beacon from sync frame event to roam_sync_ind
When firmware attempts roaming to an MLO AP, it tries to find
the complete ML info(all links info) either through ML probe
response or beacons from all the links. It forwards all link
beacons(or ML probe response) to host as part of roam sync
indication through roam sync frame event.
Add support to fetch both link beacons and add them to scan db.
If firmware sends ML probe response, generate link probe response
as well and add it to the scan db.
The link scan result can be used in link connect in case of
hybrid roaming like OWE, 1x,..

Change-Id: Ic8457a5630441d6fd3faeb4791c79422db787f94
CRs-Fixed: 3335225
2022-11-25 10:24:49 -08:00
Amruta Kulkarni
67e405ee90 qcacld-3.0: Add new files for T2LM handling
Add new files for TID to Link mapping handling.

Change-Id: I296a898e09b67490b85f4f7fba29322dbc3a757f
CRs-Fixed: 3322944
2022-11-04 03:18:47 -07:00
Amruta Kulkarni
2fe6f6adb9 qcacld-3.0: Update link id after roaming
Update the link id in vdev mlme after roam sync is processed.

Change-Id: I4f7a80ad91235ebafd2bab10c1de22ac8798a816
CRs-Fixed: 3314935
2022-10-18 11:56:58 -07:00
Amruta Kulkarni
40598153fa qcacld-3.0: Store and send keys after peer assoc
For STA mlo connection the AP might send M1 right after assoc
response on assoc link which can result in keys sent down to FW
for mlo links before host has sent wmi_peer_assoc for link vdev.
Current code does not have handling for this case.

To solve this, store the keys and once connection is completed
on link vdev send keys.

Change-Id: I3675451ef0e047caf8c77d256ea67f0eac6ed797
CRs-Fixed: 3289589
2022-10-12 23:22:17 -07:00
Amruta Kulkarni
434bb9c7ca qcacld-3.0: Roam abort on mlo links
Currently for mlo roaming if roam sync event is not
handled roaming is aborted only on that vdev,
other vdevs are not cleaned up.
Another issue is link vdev is added to connection manager
list but not removed.

To fix this code change made to abort roaming on all links.
Also remove request from connection manager list.

Change-Id: Ib6e9db21b64e5c44ab7d51ebf795b169c5e7eb29
CRs-Fixed: 3305685
2022-10-11 00:47:16 -07:00
Jeff Johnson
fe99b99d11 qcacld-3.0: components: umac: Fix misspellings
Fix misspellings in components/umac/...

Change-Id: I6464cb4708ffa099987e086edcd6852b681f6003
CRs-Fixed: 3303632
2022-10-07 00:27:13 -07:00
Amruta Kulkarni
65f19e6dae qcacld-3.0: Use link address and channel to update phymode after roam
After roam sync is recevied the phymode will be updated for bss peer.
For MLO roaming use link address and channel to find the bss peer and
update the phymode.

Change-Id: Ic181fdb73ceeb8dfb980a4121a7569b12d3361dd
CRs-Fixed: 3280059
2022-09-12 13:58:24 -07:00
Amruta Kulkarni
7ad653825e qcacld-3.0: Single link ML connection
Currently if link specific probe response generation fails
STA keeps sending probe requests until proper probe response
is received or join timeout failure. This results in ML
connection failure

Change is to continue with single link ML connection if probe
response generation for link/s by clearing partner link information.

Change-Id: Ia969501a3bdd1ac70e14f3a0eafd0752207b66da
CRs-Fixed: 3238861
2022-08-31 16:03:47 -07:00
Amruta Kulkarni
d7bed8d11c qcacld-3.0: Set dp peer flags for single link ML roaming
In case of single link mlo roaming, set both dp peer flags
is_first_link and is_primary_link to 1, then datapath will
create MLD peer.

Change-Id: I935c42b2c3eaa558028d45bdbf502007723f656c
CRs-Fixed: 3271224
2022-08-27 18:20:02 -07:00
chunquan
2e87d35525 qcacld-3.0: Remove WLAN_FEATURE_11BE_MLO from middle of function
Remove all WLAN_FEATURE_11BE_MLO from middle of function.

Change-Id: I17cbaf90ae9b6f428c785413723a5dfb3619de0c
CRs-Fixed: 3175450
2022-04-25 08:57:56 -07:00
Srinivas Dasari
6d7dd83436 qcacld-3.0: Abort roaming on link as well for MLO
Currently, roaming is not aborted in failure cases on
the link vdev and it's aborted only on primary vdev.
It results in link vdev not being cleaned up when roaming
fails due to some reason.

Change-Id: I0eb4b1da06a295935ff95be38228a5cacf127a73
CRs-Fixed: 3096648
2022-01-31 12:55:06 -08:00
Amruta Kulkarni
586338bcff qcacld-3.0: MLO roaming handling
CM, PE and WMA changes for mlo roaming
- Roam start and roam sync propogation updates.
- Handling connected link bitmap.
- Link specific assoc response generation
- WMA changes to handle add/remove peer
for mlo roaming scenarios.

Change-Id: I365a26ebb761d93dadd33c9fb8248c28e9eda94b
CRs-Fixed: 3033766
2022-01-19 15:30:15 -08:00
Amruta Kulkarni
24f04ca536 qcacld-3.0: Add api's to handle MLO Roaming
- New api's added to handle mlo roaming scenarios.
- Read and store link addr from wmi.

Change-Id: I6a18802d27f72235dc69d2eedb05f3e563d1b0f4
CRs-Fixed: 2997105
2022-01-13 01:11:30 -08:00
Amruta Kulkarni
f99679197f qcacld-3.0: Enable RSO for ML connection
For MLO connection, roaming is enabled
after ML link is up.

Change-Id: Ib042a9593bef9f287b92f0b256c942f8133a7f71
CRs-Fixed: 3098637
2022-01-12 01:50:58 -08:00
Amruta Kulkarni
a32e3f1a0c qcacld-3.0: Add new files for mlo roaming
Add new files for mlo roaming and update Kbuild file.

Change-Id: I3e672a5e068648fd836ecccb0edbac084850f11d
CRs-Fixed: 3090925
2021-12-14 14:09:03 -08:00