If SAP is started on 5 GHz/6 GHz frequency. Concurrent STA
connects on a different non-dfs, non-indoor 5 GHz frequency. SAP
is moved to STA frequency. And if STA disconnection happens
SAP moves to user configured frequency, even if SAP was
previously on same band as the user configured frequency.
Don't move SAP to user configured 5 /6 GHz frequency if SAP is
already on another 5 /6 GHz non-indoor, non-dfs frequency.
Change-Id: Ibb035f3c490d965f70ddead69c9657a94628a122
CRs-Fixed: 3531141
ML STA 2.4 GHz +6 GHz and SAP on 2.4 GHz, start GO failed
because sta_sap_scc_on_dfs_chnl is 0 and driver reject the
GO start.
Fix by allow such combination for sta_sap_scc_on_dfs_chnl = 0
or sta_sap_scc_on_lte_coex_chnl = 0 per requirement.
Change-Id: I5344fee1bf790f1528d46b14c802985aa4987ac3
CRs-Fixed: 3623408
whenever the STA is roaming to the same AP and there is a
HO failure, that AP is getting to the avoid list, resulting in
subsequent connections failing to the same AP
Do not add the AP to avoid list if the HO failure is to the same AP.
Change-Id: I7e375c8dab3e0f22eaf99a1d9117c719c14caba3
CRs-Fixed: 3620443
The host driver now sends a notification to the
firmware when a CSA (Channel Switch Announcement)
is rejected due to no change in channel, bandwidth,
or puncture.
Change-Id: I5d8a424459898d15a7931baf7ca4c3de8308c64e
CRs-Fixed: 3595843
As part of new requirement for coex logging, add new sys node to
send the coex logging configuration command to firmware.
Change-Id: I9d5a42d382cd14e4520eb16a924bdc32d160ef05
CRs-Fixed: 3613443
Upon an update of the policy_mgr connection table, added logics
to get max bandwidth among all the available connections. The
max bandwidth is passed to HDD IPA component via policy_mgr DP
callbacks, which in turn is used to decide proper IPA perf levels.
Change-Id: I20b3e01b433db566bec2a315a76f3015869fc176
CRs-Fixed: 3609165
MLO parameter is not observed in association/reassociation
request/response logs when connected to MLO AP.
Call api wlan_populate_mlo_mgmt_event_param() in the
api cm_roam_mgmt_frame_event() in order to populate
MLO parameter in MGMT frame logs after roaming.
Change-Id: I9dbd1a224ec861964a78883088440d79ae80cdd6
CRs-Fixed: 3620741
Currently, host driver uses CM_ROAMING_HOST for ROAM_INVOKE for
both host initiated(e.g. connect on connect, qos,..) and user
initiated requests(e.g. REASSOC ioctl).
The expectations are different for these cases upon ROAM_INVOKE
failure as explained below,
1. connect-on-connect/FASTREASSOC case: Expectation upon
ROAM_INVOKE failure is to disconnect from current AP as this
status needs to be sent to kernel.
2. REASSOC ioctl: Expectation upon ROAM_INVOKE failure is to stay
connected to the current AP.
So, define a new source CM_ROAMING_USER for REASSOC and use it to
differentiate from CM_ROAMING_HOST to avoid disconnection.
Also, pass right cm_id to WLAN_CM_SM_EV_ROAM_INVOKE_FAIL to
gracefully remove the ROAM command from SER queue.
Change-Id: I0d48d4773c659e667d87c9583ce6530543998e19
CRs-Fixed: 3621341
Currently, host driver picks minimum of the self and AP's NSS
capability at the time of join. Host driver sends the same to
firmware through vdev_start. But APs may upgrade NSS to higher
value during connect. As the NSS is already limited to min at
the time of join, STA is not able to use full capability and
connection also happens with min capability.
So, send self max NSS capability to firmware via vdev_start and
final value(min of self and AP's cap) is sent to firmware
through peer_assoc.
Also, cleanup the ini gActionOUIForceMaxNss as it's no
longer needed.
Change-Id: I0555059d03c77e55a4ccf1543e709904e6ea4e49
CRs-Fixed: 3615495
If any force active link bitmap is present, we have
to clear the force active bitmap from target. Otherwise
that will be conflict with the force inactive num bitmap,
then target can't handle force inactive num 1 command to
exit EMLSR.
Change-Id: Ia3fbcc3ca188ce1e1c93f4d0b0439ac126aeb8cb
CRs-Fixed: 3616604
As per current logic FW sends value of cycle_count, rx_clear_count
and tx_frame_count in usec not in ticks for all chipsets.
No need to divide cycle_count, rx_clear_count and tx_frame_count
by FW clock frequency in host.
Change-Id: Ic319ff3f0b6a776b0522471d51f01f7eeafa1dd5
CRs-Fixed: 3602740
In the scenario about MLO 5 GHz + 6 GHz and 6 GHz is non-tx AP in
MBSSID, if DUT tries to connect 5 GHz link as assoc link and uses
the scan entry generated from 5 GHz beacon. Then there is no info
about profile index and count in the scan entry and these info is
necessary for firmware when vdev up.
To resolve this issue, get the info from 6 GHz scan entry if it
exists.
CRs-Fixed: 3619192
Change-Id: Id18b56ed52055fbd9cdce07d1bb9fd4b20fc1c44
Add support for T2LM status event for connectivity
logging.
For T2LM status event, band, tid_ul and tid_dl are
the parameter used for connectivity logging.
Change-Id: Ifdb763185af88617b90ea761e7d10cc35c628808
CRs-Fixed: 3609648
Currently, when host driver attempting to send the keys
during a link switch, the absence of a key was not handled,
resulting in firmware crashes.
This change is to assert host driver in the event that
no key is found during a link switch.
Change-Id: I7abe452c7dfa1e203c6af563163cf2d5589ab929
CRs-Fixed: 3604274
The item "bss_max_idle_period" is not an ini item and we can only
use it's default value 0. It's not convenient to set it a value
that user required. So set it to an ini item.
Change-Id: Ie514992448cde192ffd6f1402a4477fabbbae741
CRs-Fixed: 3591728
Add support to allow PCIE Gen Speed and Lane width
to be configured by host via OEM data commands.
Change-Id: Ifc4c50bf339639c3f43de1107a8a76a043df8c4b
CRs-Fixed: 3615874
Currently, even if dual sta roam support is not present, RSO
is being enabled for both the STA connections. This leads to
asserts in firmware.
To fix, do not initialize RSO state machine for the second STA
connection, if RSO is enabled for the first STA.
CRs-Fixed: 3612478
Change-Id: I9b7698770dd05139f6323846d78e931db58ce4a8
Introduce support for MLO Reconfig event for connectivity
logging.
In MLO reconfig event, ban and link id are sent for
logging.
Change-Id: I2de6edff91ae344e2d9e11fb89216dab17384980
CRs-Fixed: 3606709
Introduce support to add frequency to peer in
order to enable Connectivity diag logging for
datapath related events
Change-Id: I634ddc0206530f1039a37fd60643877b2fdf7e87
CRs-Fixed: 3596250
Currently, when user connect STA with 2 link AP and sends
"MEASURE_ML_CHANNEL_CONDITION" command to driver, the driver report
error. This is due to driver tries to fetch the link info for
3 link but only 2 link info is available. Hence, it gets invalid
link id for third link.
To fix this, add check for number of links and extract the data for
available links only.
Change-Id: I5a25e0a4c8610703959390b62a530b784b5c766a
CRs-Fixed: 3616274
In the transition of set active and inactive link command,
the max number of disabled vdev number may be 2. To avoid
the overflow the pm_disabled_ml_links array, set array size
to WLAN_UMAC_MLO_MAX_VDEVS.
Change-Id: I71dd7c752062f4a2de67a89a5d655a2c2e6c9e9b
CRs-Fixed: 3618190
Once Host sends force link bitmap command to FW, subsequent
force link num command can’t take effect as force link bitmap
command has the highest priority.
Fix is to send no force cmd before setting hybrid mode in FW.
Change-Id: Iac3e1fe66c9b808b82f6b4feb66f90e169e4897b
CRs-Fixed: 3596656
Connecting event logs are to be sent after candidate
selection and not immediately after receiving
connect request.
Modify the connecting event logs to be sent after
sta info event logs.
Change-Id: I83b654ba0ef3458368ba7dd6353c5ab67077ec39
CRs-Fixed: 3599703
Add support for T2LM request/response event for
connectivity logging.
For T2LM request/response band, token, status, tx_status and
is_rx parameter are logged for the event.
Change-Id: I5d65c99896ec26b67b763679b105036975a938d5
CRs-Fixed: 3607151
Currently, host receive the key in one thread
while simultaneously installing keys in a scheduler thread.
This change aims to resolve the synchronization issue by allowing key
installation only in one thread.
Change-Id: Ia2429db2a48eadf00574eaec99fb0c47f39c6d42
CRs-Fixed: 3609681
When host driver receives CSA event from firmware, lim posts
VDEV_RESTERT request with the CSA info. But the channel
switch operation may fail in further APIs due to any
reason(e.g. channel not valid for switch). Failure status is not
forwarded till lim in such cases as vdev SM always returns
true(success) when it handles the message.
So, the flag doesn't get reset in such cases.
Reset the flag in lim handler of VDEV_RESTART request when it
fails to send VDEV_RESTART command to firmware.
Change-Id: Iceeabd9cab46107ce7e2d14af121b0155c27673c
CRs-Fixed: 3602751
When link switch happens internal disconnect sequence happens on
that vdev, but RSO stop is not sent for assoc vdev during below
scenario:
1. Disconnect gets triggered from userspace when VDEV-0 is in
middle of link switch.
2. At the time of the disconnect, vdev-1 is assoc vdev and vdev-0
is link vdev.
3. For the disconnect request, first disconnect serialization is
posted for assoc vdev(0) and then for link vdev(1).
4. After the serialization is posted, link switch connection
succeeds and vdev-0 again becomes assoc vdev and vdev-1 becomes
link.
5. Now, serialization posted in #4 gets dequeued and assoc vdev
gets cleaned up first.
6. Link vdev-1 gets cleaned up next, and it posts RSO STOP for
assoc vdev and waits for response. However, vdev-0 is already
cleaned up.
7. Therefore, vdev-1 gets stuck in wait-for-rso-stop response
and leads to active command timeout.
RSO start for this assoc vdev will be sent after link switch
is complete when keys are installed.
So send RSO stop for assoc vdev during link switch start
Change-Id: I5563dacef6610fc7039b1d05798edf4b6364eebd
CRs-Fixed: 3612704
Whenever packet capture mode is enabled, all packets are forwarded
to host from firmware which causes frequent wakeups if WOW suspend is
allowed. This leads to flooding of WMI transactions due to WOW
suspend/wakeup and other WMI events due to packet capture mode over CE.
So, to reduce number of WMI transactions due to frequent suspend and
then wakeup due to enablement of packet capture mode, acquire a
wakelock and prevent runtime suspend whenever packet capture mode is
enabled.
Change-Id: I71b73e7327e14890dc8509b81b22e8b5611cbac6
CRs-Fixed: 3603566
Add connectivity logging API to send ML Link state switch
diag event.
When ML link gets enabled/disabled, this event will be
sent.
EVENT_WLAN_MLO_LINK_STATUS is the diag event for ML link
state switch event.
Change-Id: Ie10f1208875f86a5a5892ee2cfb2fabe18f200e4
CRs-Fixed: 3610060
In the MLO-MBSSID test, STA can request information of
non-Tx BSS through Tx BSS by configuring non-Tx BSS MLD ID
within the ML probe request that is invoked as part of scan
request. Add support to configure MLD ID in scan start
params to FW.
Change-Id: Iec5a144e597a7f6b9b741f279e4424f975c5115c
CRs-Fixed: 3561040
Currently, STA cannot perform SR when SAP does not include SR
IE in Beacon/Probe response/Assoc response.
This change is done to configure default non-SRG OBSS PD
parameters in FW in this case.
Change-Id: Ic37e5f011cb7e07ebbe4acef56b8c36c4e08c285
CRs-Fixed: 3551808
When vdev1 GO start, vdev0 STA RSO is disabled.
When vdev1 GO start completed, vdev0 STA RSO isn't re-enabled.
To fix it, if WLAN_FEATURE_11BE_MLO undefined, if_mgr_is_assoc_link_of_vdev
returns false instead of true, then wlan_cm_enable_rso can be called in
if_mgr_enable_roaming_on_vdev to re-enable STA RSO when SAP/GO/other
STA start completed.
Change-Id: I1a14a852734909927312297310eeaea8508aca61
CRs-Fixed: 3612716
SRPS IE is not included in beacon, when Non-SRG OBSS PD SR Disallowed
bit is set in he_spr_sr_control hostapd configuration parameter.
Code changes are done to update beacon template to include SRPS IE to
communicate to all the connected STAs that, the Non-SRG OBSS PD based
SR transmissions are not allowed in the BSS.
Change-Id: I4090099de20fe383f16e60ad871faa4f42549a24
CRs-Fixed: 3533287
Add a sanity check to validate the vdev_id returned by firmware
for vdev_summary_stats and vdev_chain_rssi_stats.
CRs-Fixed: 3614088
Change-Id: If2e798459f7069aa5495169dd39b98ad8864b2e4
Currently while extracting vdev extended summary stats, host
checks for number of vdev stats sent by firmware and fails if
the number is greater than WLAN_MAX_MLD. This sanity check will
be false positive, in case of MLO STA + STA/SAP concurrency.
So, to avoid such false positive failures, use WLAN_MAX_VDEVS
to validate number of vdev extended stats sent by firmware.
Change-Id: I067f847ca6c436ff23166e19ecc721e6d95f0294
CRs-Fixed: 3613398
If FW roams with 3-links, assoc beacon and link beacons
are sent by the firmware in roam sync frame event.
However, driver parses the per-sta link info of the
assoc beacon and caches the individual per-link probe
responses only if the link beacon is not present.
Therefore, in 3-link roaming cases, if both assoc link
ML probe response(assoc link + one partner link) and link
probe/beacon are received, then the per-sta profile present
in the ML assoc link probe is not saved to the scan cache
and this leads to bss retrieval failures.
To fix this, parse per-sta profile and generate individual
probe responses directly from the roam sync frame event for
both link and assoc beacon/ML probe responses. This caches
all the partner links individually.
Also, set the assoc state for the standby link bss after the
completion of roam sync processing on assoc vdev. This prevents
the age out of the standby link scan entry.
Change-Id: Ib349aedb826d5037c6015434557d909477e87e5a
CRs-Fixed: 3613058
Currently the user configured MFP state that comes from the
userspace in connect request is not handled or processed.
Instead the RSN caps from assoc IE of connect request is inter-
sected with AP RSN caps and sent to Firmware using RSO command.
This RSN caps is used in FW in selecting a roam candidate, which
was causing the cross AKM (eg:SAE -> PSK) roam fail.
Hence, use the user configured MFP value in sending the RSN caps
to Firmware.
CRs-Fixed: 3604149
Change-Id: Ibf2d7bfba6cd17a98b9e4b1c8c468046ab2e7e62
Currently, in some API such as
"wlan_cfg80211_tdls_add_peer_mlo", when driver gets vdev, it is
MLO vdev, so it uses WLAN_MLO_MGR_ID ID, but when it tries to put
the vdev, since disconnection happens and mlo flag is cleared,
so it uses WLAN_OSIF_TDLS_ID ID which is non-ML vdev.
This causes release of vdev reference from different id for which
it never takes reference and result in crash.
To fix this, use same debug id throughout function. For that,
generalize the get_ml_vdev API by passing the debug id as
argument to the function.
Change-Id: I903185ec9b64cc67cc2e0c595ba88b7b0ca8ded2
CRs-Fixed: 3603012
If ML STA vdev is in inactive connection table, do not get
the vdev's channel for force SCC check.
Change-Id: I206aa33461f299847b247e97ea0453186c362795
CRs-Fixed: 3609017
Certain application, which send small packets with
critical info, are unable to process the FISA aggregated
UDP data.
Skip FISA aggregation for packets with UDP payload length
below 64 bytes.
Change-Id: I878f67688dd2b17cbd92322d8c51aedb4e7a5223
CRs-Fixed: 3613115
During rrm_initialize () set RRM cap for Channel Load
and statistics to enable by default. Same rrm capabilities
driver sends to AP in association request during connection.
Change-Id: I3a9d87b8bd8b28b84ccc3578fff2ad1c7ebd8a6e
CRs-Fixed: 3609838
Currently host driver filters out MCC channels for SAP
mode from the pcl, since LL_LT_SAP can operate in MCC,
so do not filter MCC channels for LL_LT_SAP.
Change-Id: If947a286a97203644b47f41bdb4881e00a25df34
CRs-Fixed: 3609868
Active ini he_max_ampdu_len and change default value from 0 to 3.
Use min(ini, he_max_ampdu_len from F/W band/MAC cap) as final
he_config.
Mdm platform need set different value to pass throughput KPI.
Change-Id: Ib0580a0e68b72b6b7cd02d327ba643cfd1508080
CRs-Fixed: 3609154
User may set the ini param g_sta_sap_scc_on_lte_coex_chan=1 if SAP
is allowed to come up on unsafe channels. Currently, this doesn't
cover the below case,
1. SAP is enabled on a 5 GHz channel in a non-DBS platform
2. Concurrent STA enabled and connected it to an AP that's in
unsafe channel.
3. SAP doesn't move to the STA channel though the ini to enable
force SCC(gWlanMccToSccSwitchMode) is set and it's a non-DBS
platform as the target channel(STA channel) is unsafe channel.
Allow SAP to move to unsafe STA channel if the ini
g_sta_sap_scc_on_lte_coex_chan is set to true.
Change-Id: I3e2b8ae57e843a938e4799f473da87664dbabb85
CRs-Fixed: 3609503
For BTM certification cases, FW is unable to roam to
testbed AP BSS due to scoring logic. Reset the BTM
abridge flag that is used to enable FW to select
candidates based on score.
Change-Id: I29b6e1b5dea969263eb263103c6d2c10d5047f20
CRs-Fixed: 3591574