As part of single netdev multi vdev changes, station context
is now per link. To get the station context for a particular
link, pass the link_info pointer instead of adapter.
Change-Id: I786e41c82f349f118d6e45782ff206226cb09901
CRs-Fixed: 3447529
Host parse newely added vendor command
QCA_NL80211_VENDOR_SUBCMD_CONNECTED_CHANNEL_STATS and trigger
scan to get connected channel stats from FW in case of MLO
connection.
On scan done host sends scan done indication to upper layer
via QCA_NL80211_VENDOR_SUBCMD_CONNECTED_CHANNEL_STATS vendor
command.
Change-Id: Iff09b6dfe88b5f075a4c81d8f0bfff5bbb0fedaa
CRs-Fixed: 3491058
When DFS CAC is going on for SAP, if 5 GHz mac is occupied by the
SAP and it's not available for 5 GHz NAN discovery. Enabling NAN
on 5 GHz in such cases cause inconsistency in firmware state machine
and firmware may assert as DFS MAC is not supposed to be disturbed
while CAC is going on.
So, check if NAN enable request has 5 GHz NAN channel also and reject
the request. Allow NAN enable command if it's 2 GHz only NAN enable
request, while CAC is going on.
Change-Id: If3f2b2b40cc2b70bc7a872970bc088204440d519
CRs-Fixed: 3458462
Currently the link addresses of link adapters are static and
are allocated during adapter create.
To randomize the MAC address as part of connection Android
framework sends new MAC address, which will be set as MLD address
incase of ML interface, but the link addresses are not changed.
Use the MAC address from Android framework and generate new
link addresses from that for each link. Manage interface
change logic and redundant code.
Change-Id: I40c86cfd05b304c48ab048ea793cc34fb4d250f9
CRs-Fixed: 3485639
A new logic to derive link address from MLD address to
randomize link MAC address on each connection.
Change-Id: I75ba80da6c9cb97103ed84ef2b9c6d091dd5d90e
CRs-Fixed: 3486110
WLAN driver working on AP0+AP1 mode. After a ref STA move
connection from AP0(vdev0) to AP1(vdev1). vdev0 have release
peer STA. But it can get a peer state from ol_txrx_get_peer_state.
Actually, the state is from vdev1, not vdev0. If vdev0 have data
send to FW, it will cause FW crash.
Change-Id: I7978b758e98a16993d16d53a55d67734aa896979
CRs-Fixed: 3477987
In Kbuild the macro WLAN_PRE_CAC_INC is defined twice, with the second
definition overriding the first one. Since the second definition
incorporates the logic from the first definition, the first definition
is pointless, so remove it.
Change-Id: I7e679109b6c08d226236c42c20e18e50537036e9
CRs-Fixed: 3490072
Currently WMI_VDEV_PARAM_HEOPS_0_31 is sent after VDEV_START
response received from FW. But FW side, they do not configure
hardware register with sent BSS color as VDEV_UP command is not
sent yet. FW needs to know for which BSSID hardware register,
this BSS color should be configured. Hence send SET_VDEV_PARAM
command with param-id WMI_VDEV_PARAM_HEOPS_0_31 after VDEV_UP
as well.
Change-Id: I7cc4648381464f1c35edee36caabf718ff8eafe3
CRs-Fixed: 3461304
There is a race condition where profile for direct link is set but
hif link was not yet voted up to prevent suspend. Parallelly,
direct link config is cleared in different context causing hif link
to vote down without being voted up which resulted in crash.
To fix this, create a mutex lock and move all the config set
operations inside the lock.
Change-Id: I80924d9ed52a9889a178b98469be15af0454b022
CRs-Fixed: 3490442
In case of MLO connection, firmware sends each vdev's status
information via vdev extended stats event. Add support in driver,
to extract that information.
Change-Id: Ia7a0a92baf008e6549830672b68e58be5a8202df
CRs-Fixed: 3483731
TDLS code is converged and the CONFIG_CONVERTED_TDLS_ENABLE
flag is no longer used.
Change-Id: I33c6c950afb829cad566a6587121de157901c959
CRs-Fixed: 3488525
Introduce a new API which returns the pointer of link info
in adapter. The API returns NULL in case of invalid array
index.
Change-Id: I2e9d85775cd2366c99682825de5cd66612148cc9
CRs-Fixed: 3447331
Add support for random TA for auth and deauth frames by advertising
the feature flag "NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA" to
the kernel.
Change-Id: Id323b9bb1eacdd24fdb02790a7469ac140bb7d8b
CRs-Fixed: 3493510
Currently, there is no provision to identify that the driver supports
NAN pairing protocol. So, new kernel will start exchanging PASN frames
without realization that old driver is loaded and thus, frames will be
drops in driver.
So, to resolve the backward compatibility issue, kernel introduces new
feature flag "NL80211_EXT_FEATURE_SECURE_NAN".
Firmware send "max_pairing_session" parameter in NAN capabilities and
host driver extracts the parameter and set the feature flag to kernel
when max pairing session has non-zero value.
Change-Id: I3b83a771c99bf2e91a4ed1a14acafe584d6e17ec
CRs-Fixed: 3493345
when STA roams from multi link AP to single link AP,
the non-assoc link gets cleaned up(through disconnect path) and
RSO gets disabled as part of this. But RSO doesn't get re-enabled
when link cleanup is completed. So, STA can't roam further.
Remove the check which skips RSO enable if the current
disconnecting vdev is of type MLO link. Next API
policy_mgr_get_roam_enabled_sta_session_id() can fetch the
right valid vdev to enable RSO. Don't update PCL to
firmware as there is no need to update again as part of link
cleanup. Firmware has already got the PCL as part of assoc
vdev RSO enable.
cm_roam_switch_to_init() takes care of not allowing RSO enable
in disconnect case as the assoc vdev CM is in
WLAN_CM_S_DISCONNECTING state.
Change-Id: I155bb93868653d5575f81559c48b86b40cf5d59c
CRs-Fixed: 3487290
Drop any vendor command request to enter EMLSR mode if there
are any concurrent connections existing with MLSR STA as
this combination is not supported.
Change-Id: I3b1f2bbe714c83628a8394068f7483d3913ce421
CRs-Fixed: 3478257
Since fw update the logic of roam stats, the data of
wmi_roam_trigger_reason maybe null when fw send event
of WMI_ROAM_STATS_EVENTID to host driver, and at that
time, the num_roam_trigger_reason is zero, we don't
need reduce the length when extract roam stats event.
Change-Id: I332de7ba2d2efeba722e2194af4b9c97ef310a73
CRs-Fixed: 3475501
Host sends roam scan offload channel list via WMI_ROAM_CHAN_LIST
to FW after a successful connection.
The host creates a ROAM_SCAN_CHAN list with BSSID entries present
in the scan database. If the connection to an AP fails due to
Auth/Join/Assoc timeout, Host removes the AP entry from the Scan
database, assuming it’s not reachable (to avoid reconnecting to the
AP as it's not responding). Due to this, FW does not include the
frequency(s), for which the connection failed, in roam scan.
Fix is to store the frequency(s) of all the candidates to which the
driver tried connection in the rso config during connect resp failure
and use the same list to update the roam channel list on the top of
entries present in scan db.
Change-Id: I7a4bb3961a64fcf987cb6f2be87b6475363d500a
CRs-Fixed: 3486154
With the commit(Ic425cc065a29bbc444531f523eaccb14014ae47a) driver
enqueues the TDLS peer deletion as part of roam sync indication
and then enqueues the TDLS disable notify to firmware. But before
this driver is processing the TDLS enable notify which is part of
add_sta and then the TDLS disable is getting processed and
notified to firmware, which results in disabling the TDLS after
roam.
The correct sequence during roam should be delete the TDLS peers,
followed by TDLS disable notify to FW and then TDLS enable notify
to FW.
Driver already take care of deleting the TDLS peers as part roam
sync indication callback. This change calls the TDLS disable
notify API only after deleting the TDLS peers during roam.
Change-Id: I58ef78852290c95e6709e6aa1b0671916322625f
CRs-Fixed: 3486585
Currently, single API is being used to get sap freq for
both HT and LT profile type sap which may cause issue in
future because one could be in MCC but other will be strictly SCC.
To avoid any issue different APIs are introduced for different
AP profile type.
Change-Id: I7108ef96896d3bec2116c6936884500d82b24fa0
CRs-Fixed: 3489049
Currently, in Kbuild, the following switch is duplicated in the
ccflags: -Icmn/umac/global_umac_dispatcher/lmac_if/inc
One instance is populated here:
UMAC_DISP_DIR := umac/global_umac_dispatcher/lmac_if
UMAC_DISP_INC_DIR := $(UMAC_DISP_DIR)/inc
[...]
UMAC_DISP_INC := -I$(WLAN_COMMON_INC)/$(UMAC_DISP_INC_DIR)
The other instance is populated here:
[...]
UMAC_OBJMGR_INC := [...]
-I$(WLAN_COMMON_INC)/umac/global_umac_dispatcher/lmac_if/inc
Remove the duplicate switch.
Change-Id: I46333836b427d047d8b5471c67b65698ca0b5417
CRs-Fixed: 3490071
Change I12af832d81815277ec6014ff5047bf960f01534a ("qcacld-3.0: Replace
CONFIG_MCL_REGDB with CONFIG_REG_CLIENT") replaced all usage of
CONFIG_MCL_REGDB.
Subsequently Change If2fb00bd2298aa6f43418b3e4694aa995887b4f3
("qcacld-3.0: Add qcs40x.snoc.perf_defconfig") added a new
instance. Since this instance is pointless, remove it.
Change-Id: If464eb9f510ded7fe9f2cfac3e16263f35fe3af6
CRs-Fixed: 3489450
Change If98ecaace17f8724e9c28325ef61e721f42e1d8f ("qcacld-3.0: Combine
all NAN related flags with WLAN_FEATURE_NAN") removed all usage of
CONFIG_WLAN_FEATURE_NAN_DATAPATH, but did not remove the references
from the defconfig files, so do it now.
Change-Id: I1484a8917c1128637bd16009bd2237b6e99976f0
CRs-Fixed: 3489449
Add multi page prealloc pools for TX buffers and CE
TX buffers for direct link datapath.
Change-Id: I8c8be42b0530de39293ad8e45f47e16f90ea7767
CRs-Fixed: 3490109