Add path from osif to target_if of sending multiple COEX config, and
whether send with new multiple COEX WMI CMD depends on WMI capability.
Optimize function hdd_send_coex_config_params() which has multiple
COEX config sending to target, use new multiple COEX config path.
Keep original legacy COEX function which is not included under
FEATURE_COEX.
Change-Id: Ibb2add908466915ad17204cb4a31a38d56446615
CRs-Fixed: 3651235
In DBS rd, SAP on 2.4 GHz, and ML STA on 5 GHz + 6 GHz. Driver
will force inactive one of link to inactive, for example 6 GHz link.
When user sets the 6 GHz link to active, current driver rejects.
Consider the SAP is on 2.4 GHz, MLSR can be switched between on 5 GHz
and 6 GHz, to allow such user request.
Change-Id: I32440d0c079b9a4bb9551087ecd959b3f9fc25c4
CRs-Fixed: 3675217
When DUT sta disconnect, bw_le_80_rx_max_nss_for_mcs_0_to_9 of 2 GHz eht
cap is set to 1, means only nss 1x1 supported for 2 GHz 40M EHT MCS9.
To fix it, don't change bw_le_80_rx_max_nss_for_mcs_0_to_9 when
disconnect, just change it during WFA case.
Change-Id: Ie96fbd77c473ac6d537517208fd799d7b648dc73
CRs-Fixed: 3670034
LPC mode needs IMPS to be disabled to avoid FW umac
enter power save. Change adds enable/disable operation
in LPC mode.
Change-Id: I78cc52098a489700c426f6001112e5cce216b5b3
CRs-Fixed: 3663762
Link beacon in roam sync frame event may be not for actual link when
roamed to 2+ link AP, then get right link beacon from scan cache, but
beacon size may be larger, if malloc buffer with link beacon size in roam
sync frame event to save beacon IE got from scan cache, OOB will happen.
To fix it, when malloc buf to save beacon IE during roaming, use max
mgmt mpdu size.
Change-Id: I08fc52ce26edc1f02365837a1ed7a632ed7c6706
CRs-Fixed: 3667410
Currently, DUT doesn't send deauth to peer if wifi is turned
off when TDLS connection is active. So, peer is not aware of the
DUT status TDLS termination happens after STA kickout timeout.
DUT can send deauth frame to peer so that peer can terminate
the TDLS immediately.
Change-Id: I9318780f945ab2f175c914da3840823f205b1bc9
CRs-Fixed: 3674664
When set max channel width to less than 320 MHz during connected,
eht_cap.support_320mhz_6ghz is disabled, then even roamed to new 320 MHz
AP, channel width can't be 320 MHz.
To fix it, when change max channel width during connected, just update
channel width and send OMI to AP, update vdev bss chan BW and peer
phymode, don’t change self cap including ht/vht/he/eht cap and channel
bonding mode, then don't affect roaming, CSA case and reconnection cases.
Change-Id: Iea27f0d524b9382de32bdde41b11866be1c49925
CRs-Fixed: 3651683
Driver cache all links channel bandwidth config from user space,
when link switch happened, and connect complete, send bandwidth
of the link id to fw.
CRs-Fixed: 3625801
Change-Id: I7d4a13075b62c9c8928d2c33bd309e9c5b085171
If RSSI value driver sent is larger than 0, android framework will treat
it as -128, show level 0 on UI
To fix it, if RSSI larger than 0, driver reset it to -1 before send to
upper layer.
CRs-Fixed: 3673537
Change-Id: I09f014eb2fc077292e3b2cbe6ffe8bb62a62258c
Userspace may need to send certain unit test commands(targeted
to firmware) on NDI interface. But currently it's supported
only on STA and SAP interfaces. Enable the same for NDI.
Similarly, userspace may want to control the 11be rates of
NDPs. These are currently controlled through vdev param
WMI_VDEV_PARAM_FIXED_RATE and sysfs interface is exposed through
11be_rate for STA and SAP. Enable the same for NDI.
Change-Id: I6a492a65c4ec8c3fb623964eb4c0d939e492f5a6
CRs-Fixed: 3668420
Currently, gWlanMccToSccSwitchMode has the below documentation,
gWlanMccToSccSwitchMode = 0: disabled.
gWlanMccToSccSwitchMode = 1: Enable switch.
gWlanMccToSccSwitchMode = 2: Force switch with SAP restart.
gWlanMccToSccSwitchMode = 3: Force switch without SAP restart.
...
But values 1 and 2 are not used and all platforms are adapted
to value 3. Usage of values 1/2 leads to the case where
connections are stuck in MCC.
Deprecate the same and overwrite it to 3 in host driver.
Change-Id: I036985c6cf33b975a726a3eee6d6562a869bbc60
CRs-Fixed: 3668491
Fix NULL pointer issue in wlan_hdd_hostapd.c file
1. In hdd_update_param_chandef() and wlan_util_get_centre_freq()
add chan pointer null check before using the it.
CRs-Fixed: 3659377
Change-Id: Ic3c96eb11a8a9a553509b8b58a06f71802dbe66a
Currently during vdev delete host will flush threads in serial
order, which can take upto 20 seconds for 5 threads in defconfig
build (Per thread wait timeout is 4 seconds in defconfig build),
this is turn can result in timeout in caller function, which has
maximum wait timeout of 10 seconds.
To optimize first flush all the threads nbuf list, after
flushing all the thread nbuf list wait for event completion
on threads.
CRs-Fixed: 3673505
Change-Id: I0c2979e7b08f27872da048c4a709800fc46eb526
Currently, Host driver is sending EVENT_WLAN_MLO_LINK_STATUS
even when ml peer or link info is not valid.
This change is to refuse diag event when ml peer or link info is not valid.
Change-Id: Ie6dd16509954811f92b838c3be3d9e0f3a6759c2
CRs-Fixed: 3657297
In rrm_process_channel_load_req API, there is a
possibility that host driver may use uninitialized
variables which may lead to unexpected behavior.
To address this issue, initialize the uninitialized
variables bw_ind and wide_bw = {0}.
Validate vdev-id before getting corresponding
txrx node pointer in wma_tx_packet.
Updated condition to validate vdev-id while processing
vdev delete response.
Change-Id: I837ba84b9f03896d1b8cfede8885fe3e3d72e1f4
CRs-Fixed: 3674684
Implement a locking mechanism for retrieving and
storing crypto keys. Currently, due to race condition,
Host driver is fetching information in one thread while
simultaneously writing key information in another thread,
resulting in synchronization issues.
This change is to add lock mechanism while reading and writing
crypto keys.
Change-Id: I156b619cf7c3c052ad3122a6f808d732fb5e4f51
CRs-Fixed: 3672330
Add new data structure to save the external/internal set link
request. The different source of request has different priority.
In some situations, a certain request may not be honored if
it conflicts with higher priority request.
Change-Id: Ib95d0c688f92dcfc294702e7deb2e3b7da13f76c
CRs-Fixed: 3650630
Currently, chan_switch_in_progress flag is maintained per vdev.
This info is needed at MLD level also to differentiate between
current MLD STA and concurrent STA. This can be used to decide
whether to allow link switch or not.
Also, don't process session beacon if link switch is in
progress to avoid CSA upon detecting any change in the Operation
IEs(HT_INFO/VHT_OP/HE_OP/EHT_OP, etc..).
Change-Id: I9cca40f4953a390c71758896097c6a119951abe7
CRs-Fixed: 3660868
Currently, the expected range of sae_auth_failure_timeout
is 500-1000ms. DUT sta retries SAE authentication frame if it
hasn't received response within the configured time. But there
can be APs where there might be a timeout at AP and AP proceeds
with next frame(SAE confirm response) if the previous frame
is not acked by STA or SAE confirm request is not received
within this time.
Custom platforms may want to address this by retrying more
aggressively, e.g. retry within 100ms.
Add provision for the same by making min value as 100 ms.
Change-Id: I09fa57808edc6c00bda2dbe5d988558c7ef48e17
CRs-Fixed: 3662150
TDLS peer discovery count is incremented every time after
TDLS discovery frame is queued for the peer till max attempts
are reached. But sometimes due to host or firmware scan the
frames could get flushed and still the discovery attempts
counter is incremented resulting in reduced possibility of
discovering the peer.
So increment TDLS discovery attempts after successful
tx completion of the TDLS discovery frames.
CRs-Fixed: 3647289
Change-Id: I7e3fe1973b34276ed5ea20a7114f3635ed59c6ef
Host receives set cfg80211 power management config
(enable/disable power save mode) indication in any
driver state (connected / disconnected / roaming state).
In connected state, Host directly sends power save
enable/disable power save mode indication to FW.
In non-associated state driver does below steps:
1. As kernel expects return status success if host is in
the disconnected state for request then host first cache
power save mode per VDEV and return success to kernel
from sme_ps_enable_disable().
2. In next connection, Host checks cache power save mode
cached at step 1, while processing changes in IPv6/IPv4
state for the interface and sends "power save enable/disable
power save mode indication to FW accordingly.
Currently in roaming state, if host receives enable/disable
power save mode command from user space, Host sends failure
to kernel with error message "not in connected state", which
is not correct. As by this time VDEV is active and FW also
ready to honor power save enable/disable power save mode
indication, host should send indication to FW.
To fix this issue send power save enable/disable power save
mode indication to FW if host receives "set cfg80211 power
management config" in roaming state.
Change-Id: I0fea2275123840e936ddd6c0326f5e9b866de52a
CRs-Fixed: 3665639
Currently, PCL carries the supported frequencies for SAP
restart as part of MCC to SCC switch. Policy mgr checks
if any frequencies from this list have to be filtered out,
i.e to avoid unsafe/dfs/6 GHz etc channels.
This works fine if the PCL carries only one frequency(non
multi-link STA case). But if STA is connected to an MLO AP in
multi link mode, the PCL carries two(could be more) frequencies.
First channel from PCL is picked for evaluation in
policy_mgr_get_sap_mandatory_channel(), which might be different
from the chosen frequency for chan_switch. Then it returns
different frequency than the chosen frequency(i.e. carried
through intf_ch_freq) by the caller. So, the caller thinks that
the filter API rejected the chosen channel and aborts channel
switch.
The expectation is to pick the preferred channel from caller
data(i.e. intf_ch_freq) if it's present in PCL. If intf_ch_freq
doesn't carry any valid frequency from PCL, first frequency can
be picked as per current logic.
Change-Id: Ib087b27b7149ff8cfe06e2ad7aa75099bba5085c
CRs-Fixed: 3668526
Kbuild and bazel changes to enable the feature
DP_RX_PEEK_MSDU_DONE_WAR for kiwi_v2 target.
Change-Id: I7a0195acd8d5bd0566b9dd74b60f7d3a907af495
CRs-Fixed: 3667710
Kbuild and bazel changes for enabling msdu done
failure history for kiwi_v2 target.
Change-Id: I6698014e673ac5eb9d065447af697b2ca6c8f4b3
CRs-Fixed: 3662202
There is a scenario where valid vdev is already deleted properly
but somehow hdd and wma went out of sync and wma_vdev_detach gets
called for invalid vdev id
For invalid vdev id, driver is calling
mlme_vdev_self_peer_delete_resp() which is trying to release the
WLAN_LEGACY_SME_ID reference which was not acquired and that
results to crash.
As part of fix, do not call mlme_vdev_self_peer_delete_resp()
for invalid vdev id.
Change-Id: I5cb95ca74d43e4329c50b8dc1361c7bd34bf735e
CRs-Fixed: 3655723
In the roaming to eMLSR AP, fw may move the link to inactive
because concurrency not support eMLSR mode, the eMLSR cap in vdev
may not be properly set in one vdev in the middle of roaming.
Check inactive vdev as well for the eMLSR flag, if anyone vdev
have eMLSR return true for API policy_mgr_is_mlo_in_mode_emlsr.
Change-Id: Ia05200e16aae701c24e9d9c3a70c8139825db833
CRs-Fixed: 3647141
As part of 802.11be_D4.1 new param Ext Max Tx power is added
in TPE for 320 MHz. So add support to parse the ext param.
EXT element is optional and conditional element that will
be advertised by AP in below pattern :
ii.) Transmit Power Interpretation subelement 0/2 i.e local/reg
EIRP then ext element will contain one octet to hold EIRP power.
iii.) Transmit Power Interpretation subelement 1/3 i.e local/reg
PSD then ext element will be variable containing 1 octet out of which
4 bits for array count (B0-B3) and 4 bits reserved (B4-B7) and
array of variable length upto count mentioned in first octet to
store PSD powers per 20 MHz.
CRs-Fixed: 3645315
Change-Id: I703e249ba121a3a79b0cf097b0c036b13e853f24
AP can transmit EXT element in TPE IE for 320 MHz
which needs to be updated in tpe power based on
Power Interpretation subfield.
i.) EIRP power needs to be updated from advertised
element if power interpret is 0/2.
ii.) PSD power needs to be updated from the array
present in EXT element till the count advertised
by AP in 1st 4 bits of 1st octet of EXT element.
Change-Id: I0b4930057edbad1154781da72180e0e34490a19b
CRs-Fixed: 3645333
After 3-link association is complete, Host sends force
inactive num command between 5 GHz and 6 GHz links to
firmware. Later, if user wants to force enable 1 or 2
links, the current checks prevent it from taking effect
as a previous force active num is in place and a NO
FORCE command cannot be sent as it is a DBS RD.
So add new API in policy manager to check if the new
force active num command is valid and process accordingly.
All new force active num commands except for 5 GHz +
6 GHz links should be allowed while honoring the prior
force inactive bitmap as well.
CRs-Fixed: 3656412
Change-Id: Iecfca57d9b47acd31d191cca2632a6d1baf62174
Currently, host driver sends only 2 port interface combinations to
userspace based for non-DBS targets. But 1x1 DBS also does not
support 3 port concurrencies.
So, to fix this, disable the 3 port concurrencies for
1X1 DBS target also.
Change-Id: Ia70937a7875d11d3f852ca498c4f7d9415a6783b
CRs-Fixed: 3654683