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
Add qualifier flags in link preference structure which represent
bit is set for TLT or preferred link
Change-Id: I85a5fee0a804f6803fa52b5052bbcf635a613025
CRs-Fixed: 3482281
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
Do not use API to do variable initialization job.
Otherwise there is built error in some platform.
Change-Id: I489057a2753bf7bf091e87b902efa833ea90ece9
CRs-Fixed: 3471557
Add support to trigger UMAC reset with mode1 teardown request
for mode1 target recovery SSR.
Change-Id: Ib2d1679162a2084488081c76f6753287a6e4d5c4
CRs-Fixed: 3458369
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
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
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
Add code changes to handle new wmi_mlo_link_disable_event
Extract the wmi event params and store in host defined
structure.
Change-Id: I6893bfa4da7b27f4a9b1ce2936057bb3576a317c
CRs-Fixed: 3458680
Clear the peer-level tid-to-link mapping and set
direction to invalid if-
1) Host receives updated T2LM info through
critical update.
2) There are two T2LM elements received in beacons
and mapping switch time expires for first mapping.
Apply the second mapping.
3) There is a single T2LM element and its mapping
switch time expires. Apply default mapping.
Also, initialize peer-level mapping structure
when a new peer is created.
Change-Id: I1d06ec5f2f5aa398724213a3be08b6588f78c9b0
CRs-Fixed: 3435329
Currently host is sending t2lm info to firmware multiple
times when mapping switch time expires.
Fix is to check if new beacon/prb response has updated
mapping before sending the t2lm information.
Change-Id: I10182652bf77ede2dd94bedbc1c3a76a6bc3a7ff
CRs-Fixed: 3438997
From the driver, call wlan_mlo_dev_t2lm_notify_link_update()
API whenever there is a link update happens using T2LM.
Change-Id: I51be6eafcb558bcf54919bead8c93227c33be194
CRs-Fixed: 3431540
In the T2LM context status code was used as 1 byte.
As per ieee802.11 spec, Status code value is 2 bytes.
Hence, add the changes in T2LM code to use the status
code as 2 bytes.
CRs-Fixed: 3464786
Change-Id: I4dd54d8a12f3bb1ca493ee0e9b1ec20b3590d97b
Do not use API to do variable initialization job.
Otherwise there is built error in some platform.
Change-Id: I1cf105adb72f890f167343d491fff832a2e16729
CRs-Fixed: 3471557
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: Ie8ca48f8f6065f02eefaea85ad967e32d09787fc
CRs-Fixed: 3470139
Add a new wrapper API to send peer-level negotiated
tid-to-link mapping to FW as the existing API to send
the mapping received from the beacon/probe response
uses ML dev context whereas the new API uses ML peer
context.
Change-Id: Ifada5600e9524585c69847f332ed0280fd316813
CRs-Fixed: 3423127
For MBSSID, aid mgr is allocated twice in
few corner cases of VAP create.
This change adds check, if aid mgr is allocated
by legacy code in vap create, aid mgr allocation
would be skipped
Change-Id: Ie44fab12badb5c9487ce3de333376e1885e727d0
CRs-Fixed: 3461883
1. Start response is received for vdev-0 and continues processing
mlo_sync_complete for partner vdevs holding ap_ctx lock and waiting
on vdev_sm lock of partner vdev
2. During which one of the partner vdev completes CAC_WAIT and continues
processing mlo_sync_complete holding vdev_sm lock and
waiting on ap_ctx lock. This scenario is resulting in RCU_STALL.
The last vdev in MLD to receive start response is responsible for
dispatching MLO_SYNC_COMPLETE event all the partner vdevs and then to self
If vdev_up_bmap is set, then return.
Change-Id: I5ae7146eeba5154331f442f9987593044bde76b4
CRs-Fixed: 3457019
Allow user configuration options to skip a radio as
primary-umac in multi-link operation.
Change-Id: Ic7c8dd5c1cf7855f4fb762daf9ace7cb82e02cac
CRs-Fixed: 3437922
mlo setup soc down indication can be called from soc_stop and detach
path. Add logic to handle multiple calls by ignoring down if the state
is already cleaned up.
Change-Id: I6f5c11cc30f38423661063d2834a5b4efa088a49
CRs-Fixed: 3450300
Mutex cannot be acquired or released from
interrupt context.
To fix the warning in log, do not acquire
or release log in while stopping t2lm timer
Change-Id: Ie1e885b162a22e327d3260fecbd71153b947e11b
CRs-Fixed: 3444779
Some devices in WDS station mode have limitation when connected
in 3 LINK MLD association where the Primary umac selected and assoc
link should be same. Make sure to have a sanity check before
going for association in such cases.
If the primary umac and assoc links are set to be different then
the connection will be rejected.
Change-Id: If56461a140d4685ba279b1babe04709d919d1650
CRs-Fixed: 3443733
Do not send assoc response from wlan_mlo_peer_create for
multilink MLO connection. This makes sure that assoc resp
is invoked only once.
Change-Id: Id1acf20bd5e3e3beb16e0dc3073676c421825ae6
CRs-Fixed: 3443511
1) select lower bw vdev link as primary umac for first station
2) Added support to increase group size to distribute stations
on all PSOCs
Change-Id: Ic6762fbe8e6bc5feef70ddaaa118af121d38a1f4
CRs-Fixed: 3366442
Add a flag WLAN_VDEV_FEXT2_MLO_STA_TDLS to mark whether
the vdev is used for TDLS or not.
It can use these API:
wlan_vdev_mlme_feat_ext2_cap_set(vdev, WLAN_VDEV_FEXT2_MLO_STA_TDLS);
wlan_vdev_mlme_feat_ext2_cap_clear(vdev, WLAN_VDEV_FEXT2_MLO_STA_TDLS);
tdls_vdev = mlo_get_tdls_link_vdev().
Change-Id: I89c50ad5321013993e798ebb5549c5015ac18969
CRs-Fixed: 3435963
Detach dp soc and mlo ctx in mlo soc down sequence,
to remove the dependency with link teardown event
Change-Id: I2dc2f64398904a7c57f579029297d11d887979c4
CRs-Fixed: 3390199
Changes to incorporate link mapping size in t2lm control
field of t2lm ie per draft 3.0
CRs-Fixed: 3431897
Change-Id: I61834258e6348b6483a86eb9e9217e3d5997c2c9
Limit the AP-MLD association links to 3 currently.
More than 3 links will not be supported currently
for association.
Change-Id: I3cd6acda27d2f538172673a8d573367d77ee00b5
CRs-Fixed: 3435787
This change searches for ML Peer across all MLDs, if ML peer
is found in other MLDs, it will reject MLO peer creation
and rejects association
Change-Id: Ifcb150615d840f536d92734e2ef4f86080f5bb6b
CRs-Fixed: 3425900
This is needed in case the STA is configured with more MLO links
than the AP. It will make sure only links that the AP allows
are in use in the STA MLO as well.
Also check for mlo flag on vdev before sending link connect and
updating partner bitmap.
CRs-Fixed: 3423668
Change-Id: Iceec3cf7e8dc7e5bc0a29c56b990faef4f741158