With MLO link removal, AP can remove a link that happens to be the assoc
link for a given Non-AP MLD. So far, the Non-AP MLD has been using the
assoc link to interact with other layers and make various decisions.
Change those behaviors on a case-by-case basis.
CRs-Fixed: 3577559
Change-Id: Iaa001bdd2571bce424a953caa3197a99a6f84180
Register pmo handler for twt to prevent WMI from
crashing due to concurrent WMI_WOW_ENABLE_CMDID
and twt requester enable commands during suspend.
Change-Id: Ifeef52f7a758020e8599a056f9b3f03455e96def
CRs-Fixed: 3580088
Currently host disables all 6 GHz channels and keeps only
STA connected channel enabled. If STA bandwidth is greater
than 20 MHz kernel send disconnect as the bonded channels
are disabled.
Similarly for STA + SAP SCC case, if STA bandwidth is
20 MHz and SAP bandwidth is greater than 20 MHz kernel
sends stop_ap as the bonded channels are disabled.
To address above scenarios, for standalone STA case
keep the bonded channels enabled and for STA + SAP
SCC case keep the bonded channels enabled for STA and
SAP.
Change-Id: I1c4f7fea139ca36f5a61cc514eff779801db57ae
CRs-Fixed: 3580015
Currently we are defining tdls vdev check only
for 11BE MLO defined macro, However there is a
need to return false if 11BE MLO is not defined.
This change is to check if vdev is tdls.
Change-Id: Ic44c66fcc585f3d091d21d40c106913db29b0a1e
CRs-Fixed: 3586960
Adding lock in epcs info structure to achieve synchronization
in epcs state etc
Change-Id: I76b35075f2ecdfba64d4df5ea06c898f5be059e8
CRs-Fixed: 3583860
Includes changes:
1. Save frequency values from EXT and EXT2 events to psoc object
- wireless_modes, low/high 2 GHz chan and low/high 5 GHz chan from EXT event
- wireless_modes_ext, similar frequency range fields with _ext from EXT2
event. Frequency range fields with _ext are non-zero when a radio supports
overlapping frequency. Eg.Radio that supports 5 GHz full and 5 GHz high band will
have low/high 5 GHz fields populated with primary band values in EXT event and
low/high 5 GHz fields are populated in EXT2 event with secondary band
values. These values are stored in tgt info for later use.
2. Modify regulatory APIs to get and set the wireless modes in reg
component
3. Retrieve frequency fields from EXT2 event
Change-Id: I49ebcc7ee7b26bd115f37abc8cb5b6fa5a415eda
CRs-Fixed: 3576551
After link switch, the assoc vdev and link vdev could change.
So once the link switch is complete, change the roam state to
DEINIT for the link vdevs
Change-Id: I3e583fc1cb5be8d17d8680dab96461b058740c0a
CRs-Fixed: 3581730
Send bridge partner details during peer create and peer
assoc. The partner of bridge peer are saved which are used later
during bridge peer create and assoc. Also add bridge peer partner
details while sending peer create and assoc on actual links.
CRs-Fixed: 3574656
Change-Id: I755614a131f6552ac28377d2c7648db4fd87b8df
Currently, maximum bandwidth in AFC channel list is set to 320 MHz.
Since 320 BW is supported only in 11BE mode, setting the maximum
bandwidth to 320 for devices that does not support 320 BW is not
correct.
Hence, to fix this issue, limit the Maximum AFC BW based on whether
the radio supports 11BE or not.
Move the puncture bitmap validation for 320 MHz BW in the API
'reg_get_320_bonded_channel_state_for_pwrmode' to within the
CONFIG_REG_CLIENT compilation flag. This validation of puncture
bitmap is currently done only for 320 MHz BW. The API used for lower
BW does not consider puncturing. This causes inconsistency in the
behaviour between 320 MHz BW and lower BWs.
Since the validation of puncture pattern is done separately for WIN,
add a WIN specific empty stub function.
Change-Id: Icbbbcae3fef2336df02291c5218d89942f3f1b68
CRs-Fixed: 3560313
Add support to handle WMI_ROAM_SYNCH_KEY_EVENTID.
WMI_ROAM_SYNCH_KEY_EVENTID is received after roaming to 3 Link
MLO AP when standby link is supported.
Add changes to register handler function pointers and parse
the event.
Change-Id: Iee17560f9f1f3242ef512a550764a9c64319b67f
CRs-Fixed: 3571673
Per PDT testing, when vdev creating, the variable rsp_timer_inuse
is set, it is abnormal and causes fw crash. Since the variable
rsp_timer_inuse will be initialized later in function
target_if_psoc_vdev_rsp_timer_init. So ignore status
QDF_STATUS_E_ALREADY in function mlme_vdev_obj_create_handler.
Change-Id: I48c622d99f1a0686dfa7725fb69116a5ab8a1e58
CRs-Fixed: 3574858
Currently, the host driver interprets an active link
status as 0 and an inactive link status as 1.
To comply with updated requirements, the change will
switch active links to be represented as 1 and inactive
links as 0, aligning with the correct status interpretation.
Change-Id: I5342e85106b4623ed4c79a4841884bfa8cd9d638
CRs-Fixed: 3581454
A new start response reason was added by FW to indicate invalid config
of TX VAP. Update the corresponding enum on host to support this reason.
Change-Id: I924776a83176d495ac9e8b656a78b131bd0b0cc5
CRs-Fixed: 3582194
Currently, driver extracts EMLSR caps info from association response
for assoc vdev but this info is not present in link vdev.
Thus, driver should cache this EMLSR caps info in ML STA context while
extracting for assoc vdev and use these values for link vdev.
So, for this, add EMLSR caps struct in ML STA context.
Change-Id: I0ecf32ed4af9fb07624498f2753c12c5420edec1
CRs-Fixed: 3578371
Previously, the link removal state is in vdev object, but
the standby link has no vdev and vdev maybe repurposed
to other link, so link removal flag has to be in link info
struct to record the link removal state of corresponding link.
Change-Id: I435a8910897b099cffcccb0e435b70efb896eb8a
CRs-Fixed: 3572873
Create and attach bridge peer under bridge vdev for 4-link
MLD.
If there are no bridge VDEVs, fall back to existing mechanism.
Change-Id: I32187bcc849fbe36200967bb7f88dfa56c22c3dc
CRs-Fixed: 3574491
Currently, get_infra_cp_stats callback of
infra_cp_stats_req_context is not updated to
NULL after processing the command.
Deregister get_infra_cp_stats callback
function after processing CP stats command.
Change-Id: I916a9432acd7f97aabe0db8ea1cae4228362a8f1
CRs-Fixed: 3577645
Stack variable 'mlme_info' in cm_connect_complete() can lead to
uninitialized access if BSSID in 'resp' function argument is NULL.
Initialize the variable to avoid unanticipated results.
Change-Id: Id9db244c8168740e4d5c0d71959b578551773bb6
CRs-Fixed: 3576785
Currently, host driver removes crypto keys based
on pdev create or delete. But these keys are not
valid across connections. So, free the crypto keys
upon new candidate selection/new connect request.
This change is to free crypto keys if there is new
candidate selection or another connection request.
Change-Id: Ifaa8786efab09f6b753a6355f249ccb3018da097
CRs-Fixed: 3568173
Introduce following for link switch disconnect:
1) Connect request source.
2) Connect request reason.
If the set MAC address response for new link is successful, post
connection on new link and transition the link switch state to
connecting. If the status of connection is successful, update
the state to link switch complete or else directly go for
deserializing link switch command and posting response to FW.
Based on the final state of link switch at the time of sending
FW response, send the appropirate status of link switch and reset
the state of link switch to idle post FW notify.
Don't unlink BSS incase of failure in connection.
Don't indicate connect results to userspace.
As we are already in serialization due to link switch,
don't serialize/deserialize connection command if it
is due to link switch.
Incase of race condition between link switch connect and
userspace connect/disconnect always abort link switch connect.
Change-Id: Ie350b52021c36802b82d6cb5f6f441fe1bd10458
CRs-Fixed: 3556529
Use the VDEV response timer infrastructure to hold MAC address update
requests sent to FW on VDEV which is in link switch progress.
As post disconnect and sending set MAC address request, the scheduler
thread is exited and to notify MLO mgr about set MAC address update
complete (or either timer expiry due to FW response timeout) and
further the link switch process based on response.
This code is only applicable for Link switch VDEV MAC address update
path. For MAC update request from userspace still use the same path
without starting the timer as for those wait event is already in place.
Change-Id: Ice3e6f7b00f0d9d08d6aa62ee9c1e4d183142358
CRs-Fixed: 3556517
After receiving link switch disconnect completion indication
from connection manager, update the VDEV's MAC address to new
link's address to support link specific OTA frames exchange.
Introduce new dispatcher API to call from VDEV MLME, if the
VDEV for which MAC address response received is in link
switch in progress, then deliver the response to MLO mgr,
or else deliver it directly to OSIF.
Handle the FW response for link switch set MAC address in
MLO manager and if the set MAC addr response is successful,
update OSIF about the new MAC address to perform cleanup on
old link and initialize fields in new link.
If the response is successful, transition the link switch to
initiate connection or else abort link switch.
Change-Id: Ic330dca84e602909cc5ddf7e134809c0e0345a17
CRs-Fixed: 3556506
Introduce following for link switch disconnect:
1) Disconnect source.
2) Disconnect reason.
3) Link switch BIT in CM_ID to identify link switch request
Don't notify link switch disconnect to initiate disconnect on
other connect VDEV of MLO mgr.
Don't notify userspace if the disconnect request is due to
link switch.
Don't notify netdev to stop queues on link switch disconnect.
Don't flush any pending disconnect/connect request on complete
of link switch disconnect request.
Don't attempt to serialize/deserialize disconnect command
if it is a link switch command ID due to either disconnect request,
disconnect complete or disconnect request flush.
Before start of link switch set the VDEV flag as MLO link VDEV
to leverage the disconnect/connect checks for link VDEV and
restore the flag at the end of link switch. This will impact
when link switch on assoc VDEV is received for which initially
the flag is not set.
Check status of link switch disconnect done API to either
proceed further in link switch or terminate the link switch.
If any userspace disconnect and link switch disconnect race
condition, always abort link switch disconnect and notify
failure to FW.
Change-Id: I6ec2a850d49f5ec6df2ec868c290f19203cd8c88
CRs-Fixed: 3556481
Move the MLO MGR in UMAC to core and dispatcher directories.
Introduce function prototype of callback and provide
dispatcher API for components interested in link switch
to register callback.
Introduce API to register and unregister callback for
link switch.
Change-Id: I14a64f61ab1269f1d46b7aff03d20b820d1cd8d9
CRs-Fixed: 3556465
Currently infra_cp_stats_req_context of psoc
cp object is assigned to **context which may
cause issue when infra_cp_stats_req_context
is NULL because without allocating memory to
**context, *context is being accessed.
Fix is to validate infra_cp_stats_req_context
and assign only if context is not NULL.
Change-Id: I8281bd77a0b829fbfc6b25ba2ad688236bc75623
CRs-Fixed: 3575882
PASN peer count gets wrapped around during vdev delete and
gets caught in an infinite loop.
So reset PASN peer count in wifi pos module after delete all
peers
Change-Id: I489bc24ef8c7455a3f6c481529de89b3c3ac62f7
CRs-Fixed: 3573607
STA is not able to connect to 11be non-WPA3 mode AP.
STA need to decide whether to connect in EHT or not at
the time of connection to AP based on security configuration.
Change-Id: I812f5c322d36ba44f63d4e27b5ec65a2846b3265
CRs-Fixed: 3404747
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
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
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
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
A few RDPs can have 2 GHz + 6 GHz + Scan radio (2 GHz + 5 GHz + 6 GHz)
radios. In this case, the total number of channels are greater than
NUM_CHANNELS.
Hence, increase the channel array size by twice. And filter out the
duplicate channels before sending the channel list to LOWI application.
Change-Id: If9d1676dab24b8e46f5303d5992aaa59ba1e67ce
CRs-Fixed: 3554676
Change few static crypto API's to global.
Add support to add new crypto entry based on passing the entire
entry structure itself.
Change-Id: Id2e0a46bb8b44a834d17d2a04b0dc28fc881b4e3
CRs-Fixed: 3571796
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
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
Introduce new twt statusconversion
HOST_ADD_TWT_STATUS_LINK_SWITCH_IN_PROGRESS and
HOST_ADD_TWT_STATUS_UNSUPPORTED_MODE_MLMR for
individual twt in 11be.
Change-Id: I76194ec0172d06c1b176e3afd3a5e66efdd12f4a
CRs-Fixed: 3568732
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
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