Add ini "min_delay_btw_scans" to set minimum duration allowed between
two consecutive roam scans. Fw should not allow roam scan if duration
between two consecutive roam scan is less than min_delay_btw_scan.
Add ini "roam_trigger_reason_bitmask" to set default value of
bit-mask containing roam_trigger_reasons for which
min_delay_btw_scans constraints should be apply.
Pass value of min_delay_btw_scans and roam_trigger_reason_bitmask
to fw.
Change-Id: I2397467a13a720e763d1181d8cd50c571f861366
CRs-Fixed: 2221785
Check for interface name only when ndp response is "accept" from user. In
case of "reject" discard interface name provided and instead use first NDI
available.
CRs-Fixed: 2222041
Change-Id: Ib02fe7d5b93f8e388658e511317664a4999b5fa6
The service layer need not provide the iface name in the
responder request to the driver if the request is being rejected.
The service layer maps the ndp_instance_id only after accepting
the request, if the ndp indication is rejected, the user space
has no knowledge of the iface name on which the NDP would have
gotten mapped if it were successful
CRs-Fixed: 2222041
Change-Id: I94a7de0c98c14dbe2389dd8364b6dd78858a9d0a
It often happens that the WLAN driver needs to allocate some pool of
structures to handle bursty operations. The traditional approach is to
statically allocate the maximum number of structures that we want to be
able to handle concurrently. This has the significant down side of
requiring manual tuning for every hardware combination for optimal
behavior, and wasting large amounts of memory during non-burst periods.
Add a new flexible, segmented memory allocator in QDF to help address
such scenarios. A small static buffer segment is used to service the
vast majority of operations, while additional segments are dynamically
allocated as needed to meet demand. Critically, these additional
segments are freed when not in use to reduce memory consumption. The
result is a self-tuning buffer that combines most of the benefits of
pure dynamic allocation with most of the benefits of pure static
allocation.
Change-Id: I5c27ecce72a450826494b5d13d6c9fdebda650a6
CRs-Fixed: 2224534
qdf_dp_trace could access nbuf already freed after sending to CE ring.
Move trace log before sending skb and add error log when fail to send.
Change-Id: I8ce36b9d196b7d44e0e9f7dcfe05db404a77e32f
CRs-Fixed: 2090277
Add new ini item "enable_ftopen" to enable/disable
FT open feature. There is no ini currently to
disable only FT open.
Add sanity check to send 11r params in case of FT open
to fw only when enable_ftopen is enabled
Change-Id: Ifb27aea8de8c8837f8eda329e1247abfadabb628
CRs-Fixed: 2214772
As many as 5 vdevs can be created, which is defined by MAX_SME_SESSIONS.
But flow control pools are only valid for active TxRx capable vdevs.
which is 3 active vdevs. So attach flow pool creation to vdev_start
instead of vdev_attach.
Change-Id: I137676ba618aa3a6684c7d17ef7d9263c4df6efe
CRs-Fixed: 2220079
Add new helper functions for crypto module.
New api to get ucastcipher and mcastcipher
from peer and vdev.
New api to get key from vdev and peer.
Change-Id: Ia111f59a93b6cc7e1a3406dc53142f0c087df6f8
Crs-Fixed: 2223901
Add support in DP WDS source port learning handler to kickout a STA,
when direct associated peer(SA) roams to another AP/Repeater and
reachable via TA peer
Change-Id: I84d0b92c9b4e39c05f4d7c25b3f5afb1d535ca02
CRs-Fixed: 2219924
Fix the issue where the MCS rates for HT were repopulated
causing the MCS rates to be decoded incorrectly.
Change-Id: I73efac79d853b6f8af966aec57e70ad645418528
CRs-fixed: 2206784
Upper bound length check is performed for index
that is used to access the array elements.
Change-Id: Id39ef1bd0446ce71be4f74532f2a7650df1a5432
CRs-Fixed: 2218940
Add new ini item "ho_delay_for_rx" to set delay Hand-off
period. For LFR 3.0 roaming scenario, once roam candidate
is found, firmware waits for minimum this much duration
to receive pending rx frames from current BSS before
switching to new channel for handoff to new AP.
Pass value of ho_delay_for_rx to fw in case of roam
offload.
Change-Id: I19141928a2885371bc1b9e7b720473d99c4ebb1d
CRs-Fixed: 2221755
AMPDU flag check is not present when radiotap header is updated.
This fix will check for rs_flags to check and set AMPDU present
Change-Id: I9e0a703a46459b1013af092f8cb8b7cd35f1a3ce
CRs-Fixed: 2204278
WMI cmds should be blocked, before calling HTC stop
to avoid the race condition in the system
Change-Id: I015b154a3bc422f50d4ed82bc861dd9e054c47a3
CRs-Fixed: 2194234
Non PMF frames are being dropped due to incorrect buffer
length check. Modifying the check only for PMF cases
Change-Id: Iead56b199de6c14b3a569a4f1a537553e9325bc8
Fix for setting the right length when incrementing Rx Multicast
Bytes value
Fix for incrementing the Tx multicast packet value by correctly
returning the peer pointer to the stats function.
Change-Id: I46d59b7a71936d6eefdcba4419d0737f70aa4d48
CRs-Fixed: 2220973
Remove inconsistent API for scan start and stop, where pdev_wmi_handle
is derived from psoc_handle at the WMI layer instead of using
the wmi_handle passed from the above layer i.e target_if
Change-Id: If259260e6f8cf77bf68748a8130db4440b88588a
CRs-Fixed: 2203048
Add Regdomain: ETSI14.
Add Regdomain pair: ETSI14_WORLD.
Change regdomain of Qatar to ETSI14_WORLD.
Change Japan ISO country code.
Remove Non-ISO JAPAN countries.
Remove Ch.144 and related straddle channels in APL9.
Increase 5.25-5.35 power in APL9.
Increase MKK5, MKK11, MKK16 powers.
Add channels and increase power for ETSI9.
Add 5GHz mid channels and increased power for FCC14.
Change regdomain of Mauritius to ETSI1_WORLD and ETSI13_WORLD.
Change Egypt Country Flags to allow VHT80, VHT160.
Change-Id: I10abf9f2edcb2d3f9a941ffc6b9188002d83973a
CRs-Fixed: 2216647
While handling a multi-segment TSO packet, there is a race condition
where, if tx complete arrives fast enough, the un-sent TSO segments
may be lost forever and a previously sent segment would be attempted
to be sent over.
Fix the race condition. Dont use the entry after send to go to
next entry.
Change-Id: I023587a48bea6f3b58aac62e398cc15939bbb773
CRs-Fixed: 2174715
In order to use qdf_list in situations where static initialization is
preferable, add a number of macros for statically initializing the
qdf_list structures.
Change-Id: I9a1291d495e7940b57d8519da0e3d62a0dfd2064
CRs-Fixed: 2222980
WIN does not use scheduler queue in regdb. Hence, do not compile
scheduler queue in regdb.
Change-Id: I9694a1780cd65ac2360044152cf7d13748fbe8cc
CRs-Fixed: 2223207
It is valid for dfs->dfs_rinfo.rn_numbin5radars to be 0. If it is zero
then the malloc returns NULL and we skip dfs_reset_alldelaylines.
Skip dfs_reset_alldelaylines in case of non-zero malloc failures. Also
move the dfs->dfs_b5radars NULL check just before accessing
dfs->dfs_b5radars memory.
Change-Id: I0aba9d2357672e2c5bc6c5c3857cb06194381e2f
CRs-Fixed: 2215846
BSS peer pointer is currently not populated to P2P GO vdev during
peer attach, which will result in an assertion in function
wlan_objmgr_peer_get_ref once a remote peer object is created for
the same P2P GO vdev.
Populate the right BSS peer pointer to the P2P GO vdev during
peer attach.
Change-Id: I8d98d3b1c51d28dcda1ed0feadee30229c74dc9c
CRs-Fixed: 2218195
Currently bool is used to check if scan node is active or not, and
if it is active the deletion can happen. Now if two thread tries to
delete the same node at same time, the first one to get the node
will delete the node and set the active bool to false. If the
delete operation leads to node being freed, the 2nd thread when gets
the lock tries to check the bool, if node is active and then return
if node is not active.
Now if before the 2nd thread check the bool, the memory is reallocate
and the byte pointing to the bool is overwritten with non-zero value
the 2nd thread will assume that node is still active and try to delete
and access an already freed node.
To fix this use cookie instead of bool to check if scan node is active.
Change-Id: Id6b9dc9d0ff8f091eef0bd648abc9d3198c3ad4b
CRs-Fixed: 2219667
Radar bandwidth detection at certain frquencies is reported to
be lower than the acceptable threshold. This is due to the low
rssi reported in the phyerrors.
Fix the issue by adjusting the rssi threshold accordingly.
Change-Id: Id00e6ae4722d1f4c820037a4014a86953abc6650
CRs-Fixed: 2224053
Decrement the reference count when peer type is P2P-CLI thereby
avoid memory leak whenever P2P-CLI disconnects in object manager.
Change-Id: Idaf2910c39b316dcea46f9be39df420d71bab8d6
CRs-Fixed: 2222320
For 4.9GHz, firmware converts the frequency to old regulatory channel
numbers and sends it to host. But host uses new regulatory channel numbers.
Since the received fw channel and beacon channel number is different,
host drops the received beacon and scan entry doesnot get updated.
As a temporary fix, bypass the beacon mismatch check in host.
Change-Id: Ib3e6b7b39ef2feaa1bcf0e0b16a702caccbf6744
Send correct channel list to Firmware. When cfg80211 is enabled, STA
is scanning in a set of wrong channels. When scan callback happens
from cfg80211 module the cfg80211 module gives us the channel numbers.
There are some channel numbers which are same in both 5GHz and in
2.4Ghz bands. For example, channel number 1 maps to frequency 4942MHz
in 5GHz band, but in 2.4GHz band channel number 1 maps to frequency
2412MHz. So cfg80211 may give us a wrong channel number. Since we have
the exact frequency of the channel we should use that instead of the
one given by cfg80211.
The channel object given to the driver by cfg80211 during scan callback
is the same as the one registered to cfg80211 by the driver. So we can
use the channel frequency inside the channel object for scan which is
not changed by the cfg80211 module.
Use regdb function to convert channel number to frequency while receiving
scan entries from FW. Use pdev band (5/2.4GHz) information to map to
correct 2.4Ghz/5Ghz channel frequency.
Half/Quarter rate flags in the scan_ctrl_flags are not set. Set
Half/Quarter rate flags in scan_ctrl_flags.
Change-Id: I9df8f0e90938f86f6987574f8259a5cf66b672aa
CRs-Fixed: 2180273
Move hdd_request_manager to qcacmn osif layer, which will be used
by CP_STATs component.
Change-Id: Iebf7f9d259793b56cc70c5b3f9dec14a5ef35b25
CRs-Fixed: 2220035
qdf_net_buf_debug_init/exit() are defined when NBUF_MEMORY_DEBUG is
disabled, but they are not declared in the nbuf header file, leading
to build errors for PERF builds. Make qdf_net_buf_debug_init/exit()
static inline stubs when NBUF_MEMORY_DEBUG is disabled.
Change-Id: I4180086f27873a48cb965abed21f4bca2a4ca3a1
CRs-Fixed: 2222969