In independent repeater scenario when STA connects to root AP on different
channel as that of AP Vdevs, then txCSA is used to move the AP vdevs
to the new channel using FW_VDEV_RESTART.
If a ML-AP vdev is stuck in MLO_SYNC_WAIT state, then TxCSA is not
processed which would lead to MVR timeout.
Add change to handle FW_VDEV_RESTART event in SYNC_WAIT.
Change-Id: If7359a5a39ed9478c813b8eb0f97a6a0d07e1ba1
CRs-Fixed: 3477635
Trigger SAP / GO channel switch on receiving
wmi_csa_ie_received_event_id from FW in STA + SAP / GO DFS SCC
concurrency.
Change-Id: Iff60dffb71b170f56c4fbee4e297b81b87632a2a
CRs-Fixed: 3431365
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
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
In legacy to MLO roaming case, the link vdev will be
moved from INIT->UP via EV_ROAM event. Similarly, if
the Hand-off fails in host due to host-related handling,
treat the failure as HO-FAILURE and move the link VDEV
SM from UP->INIT directly.
Change-Id: Ia6bfeb958f0302a934d24c9b40fadd4a8f557236
CRs-Fixed: 3389148
The kernel-doc script identified some documentation errors in the
umac/mlme folder, so fix them.
Change-Id: I84617fe2007e51dcb009801ebc6cdf87c0d0a686
CRs-Fixed: 3381478
As part of VDEV SM history only vdev id is logged.
In multi psoc scenario it's difficult to differentiate vdevs across
psoc as vdevs share same id across psoc.
Hence add change to log psoc id along with vdev id.
VM-PS_0-VD_1: VDEV SM PSOC:0 VDEV:1
Change-Id: I0bba894a79b3ad9e7ce64ec5219eb7c65767f19b
CRs-Fixed: 3364875
To support fixed channel SAP in unsafe channels, driver needs
to cache and retrieve SAP start mode i.e. ACS or fixed.
Add a new param is_acs_mode to vdev_mlme_mgmt_ap and APIs to
set and get the same through vdev.
Change-Id: Ib274b95be66e774b15f4687a02ed7fef6bf21056
CRs-Fixed: 3381401
Implement component APIs for existing vdev_mgr
to get bssid in DP component module.
Change-Id: If70832308028ad1965f4960bc2ba9664b7c09452
CRs-Fixed: 3351504
Update MVR handlers and init to setup/use MVR bitmap
depending on bitmap MVR support by FW.
Change-Id: I3a73ddefeae85d8f6b4fc31f9c1f1164fa5346c7
CRs-Fixed: 3355001
When a VDEV is dynamically getting added to an MLD,
WLAN_VDEV_OP_MLO_LINK_ADD op flag will be set on that VDEV during its
start_ap() sequence. Use that flag to update the mlo_link_add flag in
the VDEV_START WMI command.
CRs-Fixed: 3352057
Change-Id: Ie83a15f47d5cb4e54af410ebb68567694f38ccc7
1) add op flags to indicate Link removal in progress
2) update API to include link removal check for ML peer create
3) add API to check whether all link peers to be deleted.
CRs-Fixed: 3341256
Change-Id: I8fabd19d3321315eb13d874a7e9b2e93392a7886
Currently, SRG PD threshold is updated with
addition of SR_PD_THRESHOLD_MIN which is already
added in srg threshold and threshold is left shifted
to 8 bits and type casted to unit8 which is causing
0 value and NON-SRG PD threshold is updated
to NON-SRG PD threshold advertised by AP
only in case threshold provided by user space
is not within the range of connected AP but
in some cases user may enable command without
threshold in such cases NON-SRG threshold
will be sent as 0.
Fix is to update SRG PD threshold directly to the
value without any addition and use QDF_SET_BIT
to add SRG and NON-SRG data in value which is
required by FW. Update NON-SRG PD threshold to
threshold advertised by AP in case userspace
doesn't provide any PD threshold.
Change-Id: I162722264a566e731352f11874f310714bffe4b2
CRs-Fixed: 3340905
In scenario where the last ML-AP vdev of the MLD receives start response,
then in the same context mlo_sync_complete is dispatched to all the
partner ML AP vdevs.
But for the partner vdevs, VDEV SM event should be dispatched in
non-sync mode with lock held. If not it can lead to event being
dispatched when the VDEV is in intermediate transition state.
For partner vdevs dispatch event as part of callback and based on return
value, dispatch event in sync context for self vdev.
This is to avoid usage of mlme vdev sm sync event dispatch outside VDEV SM
Change-Id: Ib9220c04377985b700138127695a02a5e29952c2
CRs-Fixed: 3317097
Currently, if SR (Spatial Reuse) is supported by AP and then
STA roams to another AP then host needs to parse SR IE and
send events to userspace and commands to Fw based on below
scenarios:
i.) Roamed AP doesn't support SR: If roamed AP doesn't support
SR then async event with SR disable is required to be sent to
userspace.
ii.) Roamed AP supports SR: If roamed AP supports SR then below
validations are required.
a.) existing thresholds are in range of roamed AP: Send SR enable
command to FW with previous thresholds , as FW disables SR during
roaming.
b.) existing thresholds are not in range of roamed AP: then decision
will be based on whether threshold is provided during SR enable command
or not. If threshold is provided along with SR enable command then send
disable to userspace and in other case update thresholds as per roamed
AP , send async event to userspace with new configured values and send
enable command to fw with new thresholds.
Change-Id: I7eeebddbaa5075f0ba5d823f946b0cfa9d78c1c6
CRs-Fixed: 3331049
Add vdev callback to notify once the vdev has entered into
MLO_SYNC_WAIT state.
Change-Id: I655bfa68d666807468cacf1a0a052ac6ddf0b8d6
CRs-Fixed: 3338519
Currently, only single pd_threshold is fetched and
treated as SRG and NON-SRG pd threshold instead of
handling both threshold separately.
Fix is to get SRG and NON-SRG pd threshold from
userspace instead of single pd threshold.
Change-Id: I414843dfd08068c81531d0e96d71fb68d8bfccd1
CRs-Fixed: 3328201
In case of MLD, if one of the partner vdev is not brought up and
CSA is triggered on self pdev with multiple vdevs configured then
all the vdevs of this pdev will move to restart state.
But the ML AP vdev in MLO_SYNC_WAIT will not handle CSA restart
leading to multivdev restart request timeout.
Add change to handle CSA_RESTART when the ML AP vdev is in MLO_SYNC_WAIT
state. Thereby all vdevs of this pdev will move to restart state.
Change-Id: I9b729e2f81d3c72ab5e321f3a396f157424c1663
CRs-Fixed: 3328931
Log the time stamp corresponding to the start of processing
of multi vdev restart response event.
CRs-Fixed: 3308918
Change-Id: Ia00923b3a1033097429d3856047a4b639408aab8
Logic of checking concurrent vdev while sending
pd threshold command is removed from mlme as it
is handled while concurrenct vdev up and down. So,
we don't need to include policy mgr headerfiles in
vdev_mlme file as no policy manager function is invoked
from mlme.
Change-Id: Iec307437d929df5dceb58bf931fd20fa29b55550
CRs-Fixed: 3313112
Currently, SRG pd offset is not sent to fw as part
of WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD. Add
support to send SRG pd offset provided by userspace,
if provided offset is with in the range of min and max
SRG PD offset advertised by AP.
Change-Id: I8b70dedbabcc6c3a296b8d378b9317924dd5c581
CRs-Fixed: 3304747
Handle SR enable vendor command as part of which
send PD threshold value provided by userspace
check the range of the provided threshold,
if threshold lies with in SRG or NON-SRG
range then provide the threshold sent by
userspace else send the MAX of SRG and NON-SRG
offset advertised by AP.
Change-Id: I428a933cc324446fdb4f18f535f1b78228d504fa
CRs-Fixed: 3304779
Initially there were no peers connected to AP VDEV when the VDEV was in
MLO_SYNC_WAIT state. So EV_DOWN would directly move to STOP state and
proceed with bringing down the vdev.
With CSA in MLO, there can peers connected to AP VDEV in MLO_SYNC_WAIT
which have to be deleted/cleaned up as part EV_DOWN event handling.
Added change to handle the DOWN event as done in START/UP_ACTIVE state.
By moving to SUSPEND, the clients are disconnected then moving to
STOP state.
Change-Id: Ida71914b9719395ab666805cc7072491ffa9baf1
CRs-Fixed: 3308207
On the initiator side, Host needs to send
WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID to firmware before sending the
PASN Auth frame. Hence, move send_set_mac_addr_rx_filter_cmd_tlv() from
wmi_unified_p2p_tlv.c to wmi_unified_tlv.c file.
Change-Id: Ia5517dbdd5ec46f611537b12b7046e3a9d859082
CRs-Fixed: 3304909
doing qdf_export_symbol for wlan_util_vdev_mlme_set_param
so it can be use in offload
Change-Id: I19c1be6ad8e6462aff29c284131fcc4765df7e25
CRs-Fixed: 3301968
Currently host sends many vdev or pdev set param commands
separately to firmware.
Combine all vdev or pdev set params together where ever
possible, send to WMI.Based on service capability
WMI_SERVICE_COMBINED_SET_PARAM_SUPPORT, host decides whether
to send all set params to firmware at once to reduce number of
transactions or need to follow legacy way i.e send params
separately one after the other.
Change-Id: I0a36dd66a7ccb27f2ecd437cf7b9d08667e27472
CRs-Fixed: 3151418
6 GHz SAP needs to send either a probe response or fils
discovery at configured interval. These in band
discovery frames can be disabled when lower band vdevs
are collocated with 6 GHz vdevs.
FILS disabled when lower band vdevs were up.
After vdev up send if WLAN_VDEV_FEXT_FILS_DISC_6G_SAP
is not set, host sending FILS command to enable 20TU.
Either driver or user not enabled 20TU probe response,
Host did not send the 20TU PRB RESP TMPL before sending
20TU PRB RESP enable command resulted Target assert.
Fixed this issue by adding 20TU vdev feature flag
and add appropriate check before sending command
to enable 20TU probe response.
Change-Id: Icb0ea5ef40b1fe2dd2dc6b97dc079ab7780e8cfc
CRs-Fixed: 3244471
Add following fixes for STA to support and operate in
eMLSR mode
1) Update and send eMLSR cap flag to FW even in vdev start
request on both links.
2) Copy EML caps to wmi peer assoc mlo params to send it
to FW.
Change-Id: Ic17b9b82809659d7a4392c09eceecae7c53b2049
CRs-Fixed: 3237737
Allow peer create and association only when full ACS
scan is complete for any link in an AP MLD.
Change-Id: I54d60f31c2521c87fb715b23fc3e0ea7e6100248
CRs-Fixed: 3232153
-Wimplicit-fallthrough is being enabled by default. Some compilers
such as clang require the attribute instead of just a fallthrough comment.
Change-Id: Idc7c80891aed551db5b6b87eba7b44b6c75ecad3
CRs-Fixed: 3217348
Add WMI command for tx peer filtering. This command is needed to send
the mac address to FW for which tx monitor peer filtering is needed
to be done.
Change-Id: Ia141fba81ba240b7f4ca015eb9251e3485294bb6
CRs-Fixed: 3199493
Critical update is the explicit signaling for STA to notify
any change in BSS param.
There are two categories of critical update params.
Category 1 elements: CSA, ECSA, Quiet, Quiet channel,
Max Ch Switch Time, that are directly included in
the per-STA profile of partner AP.
Category 2 elements: Except category 1 all operational IEs
HT/VHT/HE/EHT and WMM/EDCA/MUEDCA params.
Defined below vdev flags to track change in Category 1 and
Category 2 CU params per ML VDEV
WLAN_VDEV_OP_CU_CAT1: Change in category 1 param
WLAN_VDEV_OP_CU_CAT2: Change in category 2 param
Host notify to FW by updating current link CU param in
wmi_bcn_tmpl_ml_info TLV of BCN TMPL CMD.
Set the corresponding cu_vdev_map category 1 / category 2
based on change in critical update params of ML VDEV.
Change-Id: I8fe71309ab92a459524bdc5739f8b4a4a545562e
CRs-Fixed: 3199331
"-" is used to differentiate between state and substate.
User "_" in substate string convention to avoid confusion between
state and substate strings.
Change-Id: I9efb8fd7edd60f5d28c8f774fb17bda49e64ca24
CRs-Fixed: 3188646
Change puncture_pattern to puncture_bitmap in mlme_channel_param.
As FW required, Do the bit inversion of puncture bitmap for vdev
start params, then send it to FW.
Change-Id: Ia0d95c014cf2c1dabc6c18b6b329b7a372bcb8ee
CRs-Fixed: 3124841
Firmware doesn't expect any vdev commands from host while RSO stop
is happening. It sends a response to the RSO_STOP command once
it's done with cleanup. Host needs to run a timer and wait for a
maximum of 6 seconds for the response. Host can stop the timer and
allow the commands to firmware in the below cases,
1. RSO_STOP response with success status
2. RSO_STOP response with HO_FAIL status followed by
HO_FAIL event: Host needs to wait till HO_FAIL event is
received
If firmware doesn't send any response in the 6 seconds wait, issue
a recovery to help to check the firmware state.
Change-Id: I4577f9b0aac71c0c86bd32b59e69d9527bf107b9
CRs-Fixed: 3106032
Before MLO sta partner link is up, FW can't indicate CSA event to host.
For this case, host need save csa parameters and process it when MLO
sta partner link is up.
Change-Id: Id1803f32787002e020c6899ec72e428feb765b7f
CRs-Fixed: 3082438
Save quiet status of indicated link to sta contect of MLO mgr. Any link
should check quiet status of MLO connection, then decide whether it
can trigger inactivity to FW or not.
Change-Id: Ic294bbe6452030b6cae495ca0dd3e504416e2c9e
CRs-Fixed: 3117825
Host driver creates two vdev as part of initial connection.
If the connected AP supports MLO, both(sta and link) of the vdevs
would be moved to UP state. Otherwise, link vdev would be in INIT
state and not moved to UP state.
Firmware sends roam sync indication to host when it roams to a
new AP. The event carries new AP info and the new AP could be
MLO AP. If the current AP is non-MLO and new(roamed) AP is MLO AP,
move the link vdev state to UP as it's in INIT state.
Change-Id: Ib5dd216074d68b0001755024153263ba9654edbe
CRs-Fixed: 3106059
There is a difference in the macro used in the
MLO multicast macro used in control path and DP
Changing the macro to be the same as DP code.
Also fixed minor issue in the MLO mcast WMI
identified while testing with the macro enabled.
Change-Id: I0c24a69628336f74d627863dd4bd4c4bef685b6c
CRs-Fixed: 3102733
Since the op_puncture_bitmap is updated to indicate 1 as
subchannel punctured & 0 as subchannel not punctured, flip
the puncture pattern sent to target as target still expects
the punctue pattern to be in old format where 0 represents
subchannel punctured and 1 represents subchannel not
punctured.
Change-Id: Iba1daf79df74b4b36c65d00d8959db8d88ad0d1b