Currently INI: gFirstScanBucketThreshold is not used
while LFR2/LFR3 roaming.
Remove unused INI gFirstScanBucketThreshold
Change-Id: Ifa909fc57d3ac3da696369fcffc390826f393b44
CRs-Fixed: 2767372
In case where peer itself exhibits BA window size more
than the allowed value, crash can happen. So, limit the
BA window size to maximum allowed BA buffer size in case
peer BA req buffer size is more than it.
Change-Id: Ie695b9787b555616a5443077147d4bc3a3aefb78
CRs-Fixed: 2766363
When DUT as STA and connected to 2G band AP, and trying to connect to
2G band P2P GO as P2P client. It filters out all 2G band before get
scan result. which casue P2P connection failed. So won't call
wlan_cm_dual_sta_roam_update_connect_channels and allow 2G channels
if opmode isn't STA. This change removes codes about getting filter
for NULL profile case since pProfile has been checked and it won't be
NULL.
Change-Id: I9e83e25c19740a3eebc460af0a660b1315556b4f
CRs-Fixed: 2762443
Add changes to send roam scan mode over RSO start/stop/update_cfg
from connection manager. Update the roaming params and roam scan
params to new structure.
Refine send_roam_scan_offload_mode_cmd_tlv().
Change-Id: I6adce2e8a24ece93a079032d0e66760393fcdccd
CRs-Fixed: 2766023
Add the cfg80211 configuration support for sgi
Previously the bitrate mask is added via the iwpriv
iwpriv wlan0 shortgi 8
will be configured via below through iw
iw dev wlan0 set bitrates ht-mcs-2.4 7 sgi-2.4 8
Change-Id: I31d4ff34fd55c74e814fc23b2960bf36e645da72
CRs-Fixed: 2760059
Do not update the RRM capabilities based on the peer
association response frame as it is a self capability.
Also, in case of passive scan for RRM beacon report, add
10 ms to the dwell time so that chances of receiving
beacon increases.
Change-Id: I2230e9b08996093cd6f312b5c48d84645d8895c8
CRs-Fixed: 2760810
Currently the driver goes for SCC when STA is
present on 2.4Ghz and the GO comes up.
In case the user wants throughput then
GO should go for VHT80 in 5ghz even in
case of STA present on 2.4ghz so that
it leads to better throughput.
Change-Id: I211858b42d3de407f6047609f966f95720644109
CRs-Fixed: 2763812
Currently, channel rx time is not being updated to user space as
part of link stats. Instead channel tx_time is being overwritten
with the same value. Due to this user space is not getting channel
rx_time in the link stats.
Update channel rx time in the channel link stats.
Update representation of tx_time and rx_time in the ll_stats debugfs
output to align with other stats.
Change-Id: I850adb11169eb24c81f1e31a4ff498f4e20ab9c6
CRs-Fixed: 2765485
qcacld-2.0 to qcacld-3.0 propagation
The probe rsp ie will not updated after beacon updated.
This will cause the probe rsp ie not appear in probe rsp
tags even the ie appears in beacon.
Put the updating of probe/asso rsp ahead of beacon updated.
Change-Id: If55f72ce788f4e0f162bb0c13fcff7b2129bf423
CRs-Fixed: 2648396
Replace QDF_MAC_ADDR_STR/ARRAY with QDF_FULL_MAC_FMT/REF.
Only in kernel and driver logs, use QDF_MAC_ADDR_FMT
for all debugfs, sysfs, ioctl, unit test code use QDF_FULL_MAC_FMT
Change-Id: I8cd0c065dad94e4700a009b951b10ee699568813
CRs-Fixed: 2763159
Fix NULL pointer dereference of mlme_priv while using
the macro GET_CM_ROAM_TX_OPS_FROM_VDEV. Also replace this
macro GET_CM_ROAM_TX_OPS_FROM_VDEV with inline function to comply
with the linux coding style “Generally, inline functions are
preferable to macros resembling functions”
Change-Id: Ifc9ba37e3d260b027ba79457f00382374f3b78ac
CRs-Fixed: 2764891
lim_cmp_ssid() calls qdf_mem_cmp() and a return value of 0
means the memory to be compared are equal.
In lim_chk_ssid(), checking against != true is thus not
proper to ensure memory are equal. Thus check against
0 to ensure requested SSID matches our own SSID configured.
Change-Id: I31651e7fba47ae6eb22dc034c4479114343e8652
CRs-Fixed: 2765570
A race condition can happen when roaming state machine
transition takes place in the following sequence:
1) FW indicates 'roam_synch' event to driver, and driver in
turn, advances its roaming state machine to
'WLAN_ROAM_SYNCH_IN_PROG', in wlan scheduler context;
2) HDD layer starts to do 'disconnect'(could be due to NUD
failure), and thus needs to stop roaming scan offload in
the following sequence:
2.1) Post a RSO stop cmd to FW, via the scheduler thread;
2.2) Advance the roaming state machine to a new state of
'WLAN_ROAM_RSO_STOPPED';
2.3) Check if:
>> the roaming state machine is still in a state of
'WLAN_ROAM_SYNCH_IN_PROG'
>> the neighbor roaming state is in any of the states
below:
eCSR_NEIGHBOR_ROAM_STATE_REASSOCIATING;
eCSR_NEIGHBOR_ROAM_STATE_PREAUTHENTICATING;
eCSR_NEIGHBOR_ROAM_STATE_PREAUTH_DONE;
Here, if any of the conditions becomes true, then
HDD will wait for 4 sec to let the roam_synch handler
finish its job, otherwise the wait will not happen.
2.4) Disconnect the current vdev and advance the roaming
state machine to 'WLAN_ROAM_DEINIT';
In a corner case, race condition can happen in the following
sequence:
>> thread 1), which executes in wlan scheduler context, starts
to run first, and thus roaming state machine advances to
'WLAN_ROAM_SYNCH_IN_PROG', but then gets preempted before
starting to parse the assoc resp frame attached in the
roam_synch event;
>> thread 2) starts to run and posts RSO stop cmd, but the req
msg cannot be handled right away due to scheduler thread
is actively running with other tasks, so it gets queued at
step 2.1);
>> thread 2) continues to run, and simply advances the roaming
state machine to 'WLAN_ROAM_RSO_STOPPED' at 2.2), and then
it will find out none of the conditions listed in 2.3) is
true, so it choses NOT to wait for 'roam_synch' handler to
finish;
>> thread 2) reaches to step 2.4) without waiting at 2.3), and
roaming state machine advances to 'WLAN_ROAM_DEINIT';
>> thread 1) continues to run and starts to parse the assoc
resp frame indicated by FW, and finds that the roaming state
machine NOT in 'WLAN_ROAM_SYNCH_IN_PROG', and thus goes to
the wrong way to treat the buffer in a different manner,
causing a invalid pointer access here.
Fix the racing condition by checking if the roaming state machine
is in 'WLAN_ROAM_SYNCH_IN_PROG' before advancing the same to
'WLAN_ROAM_RSO_STOPPED' in function wlan_hdd_wait_for_roaming().
Change-Id: I202ccb371e9e70a76ef35938c700b60c91b7d3cb
CRs-Fixed: 2761880
Currently there is only SETANTENNAMODE ioctl command to configure
number of chains to firmware.
Add support to configure the number of chains over the nl vendor
command QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS and
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS.
This new interface will configure the number of chains per vdev
dynamically.
Change-Id: Iff22d886529f6d8fb205d668eba8928039620a20
CRs-Fixed: 2756647
Issue: Driver supports WAPI AKM suites but doesn't advertise
WAPI_PSK_AKM_SUITE and WAPI_CERT_AKM_SUITE due to which
WAPI may not be visible to Settings
Fix: Advertise WPAI AKM suites to avoid any incompatibilty issue
between driver and supplicant.
Change-Id: I59569837f699adba270f73ceb4fc5dc12c349d26
CRs-Fixed: 2759876
In order to improve the Genoa DBS KPI, need to
increase the IPA tx complete ring size from
1024 to 2048. And the tx buffer count also will
increase from 1023(1024-1) to 2047(2048-1) according.
But in fact, as for wlan fw, it just only reserve
1500(1100 for 5G, 400 for 2.4G) tx desc for packets
from IPA, so some tx buffer will not used here,
which will waste memory. So to save some memory,
export CONFIG_LIMIT_IPA_TX_BUFFER for platform
configuration to limit the max IPA tx buffer count
Change-Id: Id5d4c5a220b588747f3d1981627f6253d7c3305b
OCV capability i.e. 0x4000 bit in RSN capability is set to 1 to
indicate that the STA supports operating channel validation by
including Operating Channel Information (OCI) in RSNA exchanges
and validates the information when received from another STA that
indicated this capability.
OCV support implicitly depends on PMF capability, AP's with no PMF
support disassociate STA if STA sets OCV bit in RSN capability of
assoc request. Hence if AP doesn't support PMF, do not set OCV
support bit i.e. 0x4000 in RSN capability of assoc request.
Change-Id: I4a331cab9dfaebe3a6b8ff8656888a333355f4a6
CRs-Fixed: 2763169
Increase max sae auth frame retry count to 3 since total SAE auth
timeout is 5s.
Change-Id: I5902cc3411f713eaeed5ef7754fe7fe8e590b459
CRs-Fixed: 2765211
get_wmi_unified_hdl_from_psoc() is called to get wmi handle from psoc,
but it may return null. Thus, add a null check before setting qmi stats.
Change-Id: Id9ef8f450ebcbbd2f8d8b078adb0a78ac638efb6
CRs-Fixed: 2764885
Currently, driver sends DOT11F_EID_VHTCAPS for 2.4g band without validating
gEnableVhtFor24GHzBand ini which may cause different phy modes in host and
fw because host modifies phy mode based on gEnableVhtFor24GHzBand ini but
doesn't consider gEnableVhtFor24GHzBand while sending vht ie to fw.
Fix: Populate and send vht ie based on gEnableVhtFor24GHzBand for 2.4g band
to avoid phy mode mismatch between host and fw.
Change-Id: I54622304635ee803bcfd5ba49dfb3e25b28a39de
CRs-Fixed: 2725164
Add RSO logic to send roam trigger from target if along with
some optimization to move old logic in ROAM_OFFLOAD_V1.
Change-Id: I38e7fb4f8873328097df7e3a25d6c709f8d69b33
CRs-Fixed: 2765155
When sap is started, a dead loop for beacon template updating
can happen due to the following conditions:
1) before vdev start happens for sap, he_ops will be retrieved
from the ie buffer imposed by upper layer, and bss color
initial setup will also be retrieved here and then updated
to session->he_op;
2) and it happens at least in some cases, that session->he_op.
bss_col_disabled will be set to true, but due to there is
actually no bss color changing really happening here, no
new color will be setup here;
3) later when sap is running and starts to do beaconing, it
will start to check if session->he_op.bss_col_disabled is
setup to true, and if yes, new beacon template will be
issued to fw;
4) later on, fw finishes the beacon template setup and sends
a notification to driver in beacon tx success event, and
driver will go back to steps 3) to check
session->he_op.bss_col_disabled again;
If no real bss color change happens here, step 3) and 4) will
loop forever.
Fix the above dead loop by introducing check of
session->he_bss_color_change.new_color before driver code starts
to inspect the bss color change countdown value and updating
beacon template to fw.
Change-Id: I4a32ce9f547e988087c769ad8fab2973582ce6e4
CRs-Fixed: 2764896
In some instances, AP does not respond to probe req
causing join timeout at STA and no connection.
To solve this,send multiple probe requests(every 200ms)
to AP until join failure timeout(1 sec) expiry,
if single bssid case retry same bss again
(configurable via ini, max allowed tries 2).
Change-Id: I7a7eeedcc24db1a74cd186ff957c638a39cdea6d
CRs-Fixed: 2763815
During the driver initialization if there is any issue,
in the error path the shutdown notifiers are not getting freed.
To resolve the issue purge the shutdown notifier before the
stop modules.
Change-Id: I51b20e5cddf558bb366b46f0650ac65754f23dcd
CRs-Fixed: 2761406
Beacon stats are supported for both STA and P2P client devices,
with the changes to move the sysfs creation on interface this is
regressed.
Add the support back for beacon stats creation for p2p.
Change-Id: Ia329752cc5d4f0a338395d9416b8d444417ea567
CRs-Fixed: 2764053
Uevent callback from the platform driver could be called
in the interrupt context. Logging in the interrupt context
could result in thread taking more time resulting in
other system issues. Hence reduce the loglevel so that log
would be sent to the logging thread instead of console.
Change-Id: Ia07325d5bc00603c5b6cf1e0f98256997526edec
CRs-Fixed: 2756175