The api wlan_mlo_peer_list_peek_head is invoked with lock acquired.
wlan_mlo_peer_create api does not invoke ml_peerlist_lock_acquire
and ml_peerlist_lock_release when invoking api mlo_get_mlpeer, this
causes race condition issue.
To resolve this issue, using api wlan_mlo_get_mlpeer instead of
api mlo_get_mlpeer.
Change-Id: Ifb41b7d83bf17938d210ce5a2d7f370d6355197c
CRs-Fixed: 3228243
A malicious input can cause a buffer over-read in util_find_extn_eid.
When len==2 and frame[TAG_LEN_POS]==0, the while loop will be entered
and an over-read will happen for frame[ELEM_ID_EXTN_POS].
Since both MIN_IE_LEN and ELEM_ID_EXTN_POS are equal to 2, ensure
(len > MIN_IE_LEN) before accessing the index.
Change-Id: Ia0aa8a2b59e8bf9ac06f5454e40687c5c34c5d88
CRs-Fixed: 3236559
Current max aid assignment doesn't consider start aid
which is causing start aid greater than max aid in
MBSSID MLO case.
This change accounts start aid while updating max aid
Change-Id: Ic6af28cd2599090538393082032932ba416b4c66
CRs-Fixed: 3220059
These utility functions help to parse the Probe Request Variant of
Multi-Link IE.
It implements 11BE draft 2.0 spec
Change-Id: I09dcf47ef481278f5c74082002f83d9c8e2155a4
CRs-Fixed: 3213367
Update definition for MLD capabilities subfield present in
the Common Info field of Basic Multi-Link element as per
IEEE802.11be D1.5.
Store parsed MLD capability in node to send these to Target.
Add endianness handling for MLD Capability.
Add a check if the value in the common info length tallies
with the length as determined from the presence bitmap for
MLD capabilities.
CRs-Fixed: 3206837
Change-Id: I3d03afbd60171b2cf5e81c9a8dbb51d7673c9163
As part of a transition of basic MLO functionality to IEEE802.11be
D1.5, add definitions and receive processing for the signaling of the
presence of BSS Parameters Change Count subfield in STA Info field in
Per-STA Profile subelement in Basic Multi-Link element Link Info
field. This presence is signaled by a new bit in the STA Control
field of the corresponding Per-STA Profile subelement. Rename the
definition for BSS Parameters Change Count (sub)field size to make it
generic since it may occur in various protocol signaling areas
related to MLO.
Change-Id: Ieb17f65547b7106442369b51cd6bc303046a224a
CRs-Fixed: 3197012
This change rejects association if MLD MAC address of Station
is same as AP MLD MAC address.
Change-Id: Ie8cafcf8bf0033dc63efbcd0047ddcabf996942b
CRs-Fixed: 3212459
Aid pool is divided into three pools. pool0 and pool2 is for legacy and
MLO clients. pool1 is for T2LM enabled clients. This is done to ensure
that T2LM enabled clients are starting from particular index so that
multi-link traffic element can be updated optimally.
Change-Id: I2d5fe50a6ba339e89f4b65febc7b1b1bbb200477
CRs-Fixed: 3205993
select assoc peer as primary umac,
1) if all links are from single PSOC
2) single link MLO connection
Change-Id: Ia38e6809ef7d0201a2267051b8b4bcec7b36547f
CRs-Fixed: 3203804
1) Do not free Tx VAP's AID manager, if AID manager of
non-Tx vap and Tx vap doesn't match
2) Do not allocate AID manager for MLD vaps, if AID
manager is already allocated
Change-Id: I08b19397540f364503eaa1c269c6d0679a9a9fc0
CRs-Fixed: 3212368
Parse EML capability sub field present in Common Info field of Basic
Multi-Link element from Association request send by non-AP MLD.
Add new API to get EML capabilities from the ML IE.
Update definitions for EML as per IEEE802.11be D1.5.
Store parsed EML capability in node to send these to Target.
CRs-Fixed: 3203322
Change-Id: Ib208ba2d8e86df7360656c1c844e4835a93cedc4
In order to provide the info about common info len and BSS
param change count, add API util_get_mlie_common_info_len()
and util_get_bvmlie_bssparamchangecnt().
Change-Id: I0f5fea2265cbb8f1df265542af7009d624a0129b
CRs-Fixed: 3202491
Currently even when the partner link assoc failure driver is maintining
the assoc link this is resulting in several side effects w.r.t
memory corruptions etc.
Disconnect the ml connection incase of link assoc failure.
Change-Id: I4bbdcf4099f3042f5065067ca5d817f986ffb30a
CRs-Fixed: 3204310
In mlo_ap_vdev_attach() we call cdp_update_mlo_ptnr_list(), and logic
exists which was supposed to test the return value for success.
However due to a misplaced parenthesis, the test for success is actually
applied to the last parameter, and that test result is sent as a
true/false value to cdp_update_mlo_ptnr_list().
To fix this issue relocate the parenthesis so that the last parameter
is correctly passed and the test for success is applied to the
return value.
Change-Id: I055150dae726a69f0e70f02f7fbe26550f48e558
CRs-Fixed: 3181220
This change adds MBSSID support for MLO AID manager.
It handles AID allocation and AID free for MLO and Non-MLO peers
associated to MLO/Non-MLO VDEVs
Change-Id: I616cca6afeb9178a3b7f183c6bd986fe9b30a4fa
CRs-Fixed: 3200173
Check mld ctx info first and then print the debug info
for teardown request with num socs and num links.
Change-Id: Ib37ce76955e2b83aaa5ecec08010f05e293c2a19
CRs-Fixed: 3200920
Add fix to release ml dev lock in case of failure.
Also add null check for assoc vdev
Change-Id: I5f81217b32d676b556030b504476bf4e3c92b718
CRs-Fixed: 3199710
As part of MLO stats feature, add support to send ll_stats
and get_station stats request to firmware for all the MLO vdevs.
Change-Id: Ic50a6294f868f0604d4cfc0d4b657b6085da2fb4
CRs-Fixed: 3181020
MLO peer attach fails if MLO peer with same MLD address gets
created. While freeing MLO peer, releasing of link peer ref
is missed
Fixed some of the corner cases handling with ml peer id, AID
Change-Id: Ia3ff13a3840083bfe389b39086a6c5aa1f709fca
CRs-Fixed: 3185069
Count the MLO vdevs in a pdev. WLAN_VDEV_FEXT2_MLO feature
flag in vdev object is set for all MLO vdevs. Simple solution is
to increment/decrement the count on every set/clear of
WLAN_VDEV_FEXT2_MLO feature flag. Since this feature flag will be
set/clear at multiple places for a given vdev, this approach
will lead to wrong MLO vdev count. To fix this we need to
increment/decrement the count on first set/first clear of
WLAN_VDEV_FEXT2_MLO flag. Add a lock also to prevent the race
conditions.
CRs-Fixed: 3106235
Change-Id: Ice7edde04553088fbb7c9b769508d441ccd6e4bf
In mlo_ser_set_link_req, req is again allocated and thus
the req->ctx.cb_arg doesn't points to the new memory.
so avod reallocating the req memory again in
mlo_ser_set_link_req and use the passed memory directly
as umac_cmd.
Change-Id: I0bdc9cf746b2a36c69b5ca0f773f06900a9783dd
CRs-Fixed: 3188736
Add API to get the MLD capabilities from a given Basic variant Multi-Link
element or element fragment sequence.
Change-Id: I9f0d8069a970523948fd604b4977efd3d41a4d2d
CRs-Fixed: 3177254
Fix for crash seen during MLO NAWDS peer creation.
Peer assoc for MLO NAWDS peer is done in a different way
hence avoid peer assoc in wlan_mlo_peer_create.
CRs-Fixed: 3179437
Change-Id: I76356e68ef267fe2b4d37bfe29faca5ed8c02347
For single link MLO connection, there is no partner peer creation,
so wlan_mlo_link_peer_attach is not triggered. wlan_mlo_peer_create
is good enough to trigger mlo_mlme_peer_assoc_resp.
Change-Id: Ia76503e146a07d15d7b263aa36f9e8c4d110fc6e
CRs-Fixed: 3168623
Add the following APIs related MLO links in MLO manager.
1. Get number of active MLO links
2. Get valid MLO link bitmap
CRs-Fixed: 3154979
Change-Id: I49c544a5c73a9ce72305bbe83230a4566d909095
Add support for MLO target recovery. Add MLO target recovery
types, add API to cleanup the asserted SOC's MLO setup info
during recovery.
CRs-Fixed: 3153534
Change-Id: Ibcfab35460de0c7b458377e24e63ab63cbe39e3c
In case of MLO, when connect is in progress and disconnect is received,
there may be a possibilty that the assoc link's bss peer is deleted
before non-assoc link's connect is still in progress which can lead to
issue in peer setup at DP and FW.
Add fix to handle mlo disconnect while connection is in progress
Change-Id: I550abff439deca19c7ab355cae1fa46db1f0f61b
CRs-Fixed: 3152770
Add support to clear mld soc setup and link down
such that in case of teardown fails counters are updated
properly.
Change-Id: I5dc8c581069ef1d5bd0614568b435c0a9448fdcc
CRs-Fixed: 3127308
If Vendor IE also presents in STA profile, it only needs
to copy the vendor IE from STA profile for link specific
frame and reported BSSID.
Change-Id: I48ed4e88f097fe6570b3f3df764cd707c4b758d3
CRs-Fixed: 3136382
When mlo_dev_ctx is not initialized, it causes NULL ptr
access causing crashes.
Add NULL check in mlo api's to avoid the issue.
Change-Id: Icd7472cab22e3ff441cc9327f0443adb939bbc05
CRs-Fixed: 3143777
Currently, VDEV connected links bitmap is not being updated properly
for link VDEVs. Because of this, during the disconnect assoc peer
is being deleted first instead of link VDEV peer.
To address this, update VDEV connected links bitmap after STA link
connection complete.
Change-Id: Id8465948fbb3af2f063e04ec9403cb4e3a6f98d8
CRs-Fixed: 3125636
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
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
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
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