For N-link, TDLS sends discovery request on different links
and starts timer to receive discovery response. There is one
race issue: if link switch happens before the timer stopped,
the timer count is reset because disconnection happens.
To resolve this issue, return if timer count is reset in
timer callback.
Change-Id: I7603de507f59dd988d70daad52fd4f4a2aa48d51
CRs-Fixed: 3586393
Allow userspace to configure power save inactivity timeout and
opm speculative wake interval through vendor NL interface.
STA enters into power save mode(PM=1) after TX/RX inactivity of
time duration specified by QCA_WLAN_VENDOR_ATTR_CONFIG_PS_ITO
in milliseconds.
STA speculatively wakes up to look for buffered data by AP at
QCA_WLAN_VENDOR_ATTR_CONFIG_SPEC_WAKE_INTERVAL interval after
entering into power save. If configured zero, STA wakes up at
upcoming DTIM beacon.
Change-Id: I86cbd35d6f61ae600b4784bd95209fac62021941
CRs-Fixed: 3567042
Pass g_wow_spec_wake_interval along with g_wow_data_inactivity_timeout
to firmware through WMI which are used in WOW mode. These configs are
honored by firmware when User defined OPM is set.
Change-Id: I24306e8aa0b7b3f7fce9453f6a98d4922b7c3f62
CRs-Fixed: 3567042
STA connected to an 2.4 GHz BSS fails to get IP
due to VDEV restart triggered by bandwidth upgrade.
Wrong bandwidth upgrade happens upon the reception
of the first beacon after connection.
Beacon opmode change logic considers supported channel
width cap in the HT capability IE to retrieve the
bandwidth of 2.4 GHz BSS. However, the AP can support
both 20 & 40 MHz, so using this capability will lead to
wrong bandwidth upgrade.
Use the recommended channel width set from HT Info IE
to retrieve the proper bandwidth.
Change-Id: Icf07501a97f34125158ea643a9e5b848a5b18e3e
CRs-Fixed: 3585499
After roaming TDLS is enabled only on associated vdev and
it remains disabled on link vdev. This causes TDLS peer
update to be sent with TDLS disabled on that vdev.
Enable TDLS on link vdev after roaming.
Change-Id: I7fe42ea2eebe02ae282965cfa6116f1e35de4490
CRs-Fixed: 3583163
Trying to get the pre_cac adapter by iface before its created,
which will return NULL always, leads to pre_cac open failure.
Remove accessing the pre_cac adapter before create.
Change-Id: I31363d0ff8eb39fb1b16d3be20743d26fc7469a2
CRs-Fixed: 3586239
With this change add below helper APIs:
1. API to get number of SAP interfaces.
2. API to get number of beaconing interfaces.
3. API to get all active SAP interface channels and vdev ids
4. API to get all active beaconing interface channesl
and vdev ids.
Change-Id: Ib4781ff529fce494772cc12c7921c914adf5555b
CRs-Fixed: 3579760
Clear the current connected ML AP keys for all the links
including standby links after roaming to new AP.
Change-Id: I9cc548ba21648d1a1c123d15d1c8524dba141ea5
CRs-Fixed: 3581733
In case of mlo connection, when get_station stats is queried on
STA mld_mac address, driver sends aggregated mlo vdev station
stats to the framework. But framework expects driver to fetch
aggregated stats when queried on AP mld_mac address.
So, to satisfy framework's expectation, send mlo aggregated stats
when queried on AP mld_mac address.
Change-Id: I59b93c32939fddb56492a475d3f55b67f8eeab4b
CRs-Fixed: 3585276
Currently while processing roam synch indication event, the
setup links info is filled for WLAN_UMAC_MLO_MAX_VDEVS(2). But
with 3 Link MLO support, it will reject the roam synch
indication event.
So allow 3 Link roam synch based on fw capability and ini
intersection for number of links supported. Use
wlan_mlme_get_sta_mlo_conn_max_num() API to get max allowed
links for connection.
Also replace array length declaration for setup_links having
WLAN_UMAC_MLO_MAX_VDEVS and use WLAN_MAX_ML_BSS_LINKS instead.
Change-Id: I1982e50f5036ba4eacbab50044444a7238cd1073
CRs-Fixed: 3573066
Update the mlo_support_link_num config to 3. This will enable
support to connect/roam to 3 Link AP with 3 links advertised.
Change-Id: I6241f7024271208c8d1584549edb91cc37fadcb8
CRs-Fixed: 3582858
If FISA is not enabled in config file, driver will
crash. Change adds error handling for no_support
return case.
Change-Id: I82e886a16f51e4e6db049b9224547b30bb9a10b4
CRs-Fixed: 3582517
Current code checks vendor version not target to determine
whether or not to enable bazel ddk. Fix this by checking
both vendor version and target to enable DDK.
Change-Id: I7503ce966d128d9a1350426eb8a9aee6dd013a1d
CRs-Fixed: 3581963
In hdd_adapter_get_link_mac_addr() API return netdev addr
if the connection is not ML-type as netdev addr is used for
connection.
Change-Id: Id32694c645c27c8a7d7d738d0f980054f85e5b94
CRs-Fixed: 3585513
If AP EHT cap doesn't support 320 MHz then DUT STA session EHT
cap shouldn't support 320 MHz sounding dimensions.
Change-Id: Ibc7161d2bda32db03873bf354831b5276eb48f27
CRs-Fixed: 3573428
If GO is MCC with STA on 2.4 GHz, move GO to STA channel for
SCC before 2.4 GHz preferred SAP start. This is to avoid SAP
start failure because we don't support 3 Home channel MCC in
same mac.
Change-Id: I507fe8d9d283c54524ea647d8b74c7e167a031d0
CRs-Fixed: 3562893
Register event handler for WMI_ROAM_SYNCH_KEY_EVENTID.
Store the roamed AP keys for all links in crypto module
Add CM function pointers to iterate and store the parsed
keys for each link.
Change-Id: Icee5eeea23724a7d69cf895023e75e856d88a685
CRs-Fixed: 3577927
Rename policy_mgr_is_vdev_ht_ll_sap() api to
policy_mgr_is_vdev_ll_ht_sap() api.
Change-Id: I919963a1ee899d34f3e924ef4adf474032beb8a9
CRs-Fixed: 3560573
During link switch, as part of the disconnect sequence, roaming
is enabled on the other connected vdev and this causes RSO start
to be sent before vdev up is sent on that vdev. This causes
abnormal firmware behavior.
So don't send enable roaming till the vdev is up in case of link
switch. RSO start will be sent as part of the install key sequence.
Change-Id: Ib9fe520ec3d2b5c91fdba192934418e235082a31
CRs-Fixed: 3581618
If INI is enabled don't derive first link's MAC address
and directly use MLD address in that place and derive
next link addresses.
Change-Id: I3c2b9f64df3f75799adf8718ee83d157f6dd9097
CRs-Fixed: 3584062
Currently, sta_ds corresponds to old pe_session bssid is
cleaned up and new sta_ds is created with new bssid when DUT
roams to a new AP. ml_peer is also cleaned up as part of this.
But the ml_peer corresponds to old connection is already
freed up in wma_delete_all_peers() at the beginning of roam
sync handling.
This is not an issue when roamed ml_peer is different from
the current ml_peer as the attempt to delete the old ml_peer
second time gets rejected. But in self roaming cases,
current ml_peer might be valid for other links post roaming.
So, delete the ml_peer in pe_roam_synch_callback() only
if DUT roams to a non-11BE target as the same is not
cleaned up in wma_delete_all_peers() for non-11BE candidates.
Change-Id: I2f92608b880960328cc1b104a8ab55f08c154c42
CRs-Fixed: 3579053
Do not send TWT disable command to firmware if LL_LT_SAP
and other infra connection are present in MCC mode.
Change-Id: I38727bb2bda4afcc00d68560bd46cc26048ef5be
CRs-Fixed: 3550206
Currently, kernel invoke the regdomain notifier to host driver
using registered callback. If kernel call this callback after
cfg80211 aka system suspend, Then because of race condition host
might send the PDEV SET REGDOMAIN/PARAM to fwr after WOW ENABLE
cmd which is not correct cmd sequence.
Change-Id: I3a5ebcbedc529b188e43e4d0ae60510fff8a703d
CRs-Fixed: 3583337
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.
Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.
Change-Id: I1c3838a54f87f747e3695e86e54e0e663ba4f182
CRs-Fixed: 3582877
Use link bitmap to update inactive link bitmap instead of
link id in Roam indication.
Change-Id: Ibdffbf7a4ab06f34affb0f4b1876c9dbbe95c395
CRs-Fixed: 3583587
For AP(STA)+AP+AP case, there is case which will disable 5 GHz and
6 GHz band, and all AP should move to 2 GHz band same SCC channel.
Currently it is only enabled for DBS PCL table, update SBS PCL
table as well.
Change-Id: I6e5f44988d4faa33a6df7e28792d35b6122f15a2
CRs-Fixed: 3543792
Currently, wakelock with timeout is acquired when psoc idle timer is
started to prevent suspend but it is not released when psoc idle timer
is stopped. So, in scenarios where wlan is turned off/on frequently,
psoc idle timer will be started and wakelock with timeout will be
acquired as part of wlan off but after wlan is turned on suspend will
not be allowed until wakelock timeout occurs as wakelock is not released
when psoc idle timer is stopped.
To allow suspend after wlan is turned on, release wakelock which was
acquired as part of wlan off in psoc idle timer start.
Change-Id: I85ad9ce4ae9618a88601295d2194b4033be88c2d
CRs-Fixed: 3578872
Currently the function, wlan_hdd_send_mlo_ll_peer_stats()
is invoked for non-MLO connections as well. So, add
a check for MLO connection before invoking the function.
Change-Id: I5da61a5bc68515ec6f50000b82baa43c0c835f91
CRs-Fixed: 3581864