Add support to facilitate silent deauthentication to peer
stations in master mode.
Change-Id: I8c92d68d7ae94d1d425bfcb6744bed84b67f1f3b
CRs-Fixed: 3070885
Currently, NAN 5GHz social channel 44(5220) is picked to start
the BSS for NDI if 5GHz band is supported. But the channel
might get disabled due to regulatory constraints or
user/applications might also disable based on the usecase.
NDI fails to start in such cases.
Pick a valid channel to start the BSS and give preference to
NAN social channels.
Also, don't allow NDI start when NAN discovery is not enabled
to avoid issues due to DBS incase if NDI to be started in
a 2.4GHz channel.
Change-Id: I562d0f4f6a425ad7fb4cd043e696d3d573854b3b
CRs-Fixed: 3068545
When a sta is being steered, sending a deauth may interrupt the
association/EAPOL handshake on the new BSS.
Do not kickout sta if it is being steered.
Change-Id: I15dd26bca27699087cdb790de8cb95281dade385
CRs-Fixed: 3042990
Add API to set/get ACL policy. Add API to add/delete ACL MAC.
Add API to kickout sta according to MAC.
Change-Id: I329501d4f0c929b6e7933a8e484b5d8493dbbabe
CRs-Fixed: 3042927
Framework disables p2p before enabling NAN as P2P+NAN concurrency
is not supported. NAN operations happens through wifihal and p2p
operations happen through wpa_supplicant which are two different
userspace components. Wifihal call to enable NAN may come to host
driver before disabling p2p through wpa_supplicant. There are high
chances for p2p scan to be in running state while NAN enable is
received. Firmware NAN state machine goes to inconsistent state
and disables NAN as p2p scan is running in such cases.
So, stop the ongoing p2p scan before enabling NAN as P2P+NAN
concurrency is not supported currently.
Also, forward the pdev to NAN component inorder to iterate through
all P2P vdevs.
Change-Id: Ibe30a5ebe90514aee4f6721cdc5476570524cad8
CRs-Fixed: 3054576
In function wlan_cfg80211_tdls_extract_6ghz_params(), the length of
req_info->he_6ghz_cap is two bytes, but with a copy length of the
length of pointer params->he_6ghz_capa. Make sure the righ copy
length is used here to avoid OOB.
Change-Id: I8e98c2a72ab032c3da9e0e213d1ea85f0653e0cb
CRs-Fixed: 3047149
Currently driver switches to a random channel when radar is detected.
Easymesh expects ap switching to a given channel.
Add API to set/get given channel. AP should switch to given channel
when radar is detected.
The given channel will be cleared after a radar detection.
Change-Id: I29b97e247583be768842c128e6a3e5d5bfd859f7
CRs-Fixed: 3034735
Provide below APIs for easy mesh.
API to get the current frequency of the given VDEV.
API to get acs status of the given VDEV.
API to get cac status of the given VDEV.
API to get/set bandwidth of the given VDEV.
API to get band information of the given VDEV.
API to get connected STA count of the given VDEV.
API to get BSSID of the given VDEV.
API to get SSID of the given VDEV.
API to set channel of the given VDEV.
API to get/set cac timeout of the given VDEV.
API to get/set country code of the given VDEV.
Change-Id: Ia0bd201ad8155a66a4a8c5517f6fa43f3f358505
CRs-Fixed: 3027192
We have fixed using channel number as internal parameter instead of
chan frequency with change I60fe37d7d716eeaceaa00f3fb59c77b629ebacac,
but variables name are still chan which might cause confused to reader.
Rename all places where "chan" to "chan_freq", which actually channel
frequency used. And alter miss APIs which still expect channel number.
Change-Id: I948cbad133a17093f49384b563966d2c53b51707
CRs-Fixed: 3033951
Currently wlan_hdd_mgmt_tx path is still using legacy API to convert
channel frequency to number, it is not applicable for 6Ghz channel if
convert it back from number to frequency.
Fix it by replace all places where using legacy API to convert channel
and use channel frequency from supplicant directly. It can fix mgmt tx
from supplicant on 6Ghz channel.
Change-Id: I60fe37d7d716eeaceaa00f3fb59c77b629ebacac
CRs-Fixed: 3024898
Currently max vdevs are defined as 6 in osif. Increase it to 9
in case of 11be.
Change-Id: If64306cfc55690d7523ee910074064051a1b1d78
CRs-Fixed: 3027377
Add support for sending WMI_REQUEST_THERMAL_STATS_CMDID
to request for the thermal stats via vendor cmd:
QCA_WLAN_VENDOR_ATTR_THERMAL_CMD_TYPE_GET_THERMAL_STATS
This vendor cmd can either be used to clear the thermal
stats or to request for the thermal stats.
Added ini gThermalStatsTempOffset, which can
configure thermal temperature offset value for capturing
thermal stats in thermal range such as Thermal STATS
starts capturing from temperature threshold to temperature
threshold + offset.
If this ini is set to 0, then the events are disabled.
Also, add support for the FW event where the requested
thermal stats are sent in FW event
WMI_THERM_THROT_STATS_EVENTID().
The following attributes are sent in the events for every
level:
STATS_MIN_TEMPERATURE
STATS_MAX_TEMPERATURE
STATS_DWELL_TIME
STATS_TEMP_LEVEL_COUNTER
Change-Id: If8acdeec5bde33be346332ccaf39d78d0151203d
CRs-Fixed: 3016818
The purpose of the multicast Domain Name System (mDNS) is to resolve
host names to IP addresses within small networks that do not include
a local name server.
It utilizes essentially the same programming interfaces, packet formats
and operating semantics as the unicast DNS, and the advantage is zero
configuration service while no need for central or global server.
Based on mDNS, the DNS-SD (Service Discovery) allows clients to discover
a named list of services by type in a specified domain using standard
DNS queries.
Here, we provide the ability to advertise the available services by
responding to mDNS queries.
Change-Id: Id2a0468d49237c21062cfd1988e34903658cdad9
CRs-Fixed: 3008549
Currently, driver creates the NDI upon userspace request and sends
NDI-create-response to userspace. But internal NDI state is set
after sending this response. This leads to a race condition when
userspace sends NDI delete while driver is still setting driver
internal state for NDI create.
So, send NDI create response to userspace only after completion
of driver internal processing.
Change-Id: Ic651fd4f6dfab17c48c4f65b6e5d49c4d08cbe16
CRs-Fixed: 2966549
As part of regulatory cleanup, wlan_chan_to_freq() is removed.
Use wlan_reg_legacy_chan_to_freq()/wlan_reg_chan_band_to_freq()
instead of wlan_chan_to_freq().
Change-Id: I9d105863f8d6384c97e8219b89a230c863e29d19
CRs-Fixed: 2933440
Opportunistic timer gets triggered as soon as a DBS use case
is completed and hw_mode would be set to SMM when the
timer(5 seconds) expires.
Below is an example scenario,
1. DBS is enabled to support STA on 5GHz + SAP on 2.4GHz on
a Helium device.
2. SAP is disabled(to enable NAN as NAN+SAP is not supported on
HL platforms)
3. Opportunistic timer gets triggered with a timeout of 5 seconds
as DBS is not needed anymore.
4. Once the timer expires, WMI_PDEV_SET_HW_MODE_CMDID command
would be sent to firmware to set the hw_mode to SMM.
But if framework enables NAN immediately after disabling SAP,
firmware can't allow it as NAN is not supported in DBS mode in
Helium platforms. Thereby firmware either rejects the NAN enable
or defer it till set_hw_mode command is received(which introduces
a delay of 5 seconds as host sends it after timer expiry).
So, stop the timer and complete corresponding action when a NAN
command is received from framework to avoid this failure/delay.
Change-Id: I50521c0dd5f2314034957a0f65898c737cfe7e2e
CRs-Fixed: 2937407
As part of regulatory cleanup, wlan_freq_to_chan() is removed.
Use wlan_reg_freq_to_chan() instead of wlan_freq_to_chan()
Change-Id: I18d7996a0b117de90cd32f2208702d01655ceeb9
CRs-Fixed: 2926114
When TDLS connection is made in 160 MHZ
for 11ax staions, the MCS rates for the
same aren't updated correctly.
Also, MCS rate can change in case the
connection between both stations is made
with AP operating in NSS 1x1, as there is
a check in lim_populate_he_mcs_set which
will disable MCS rates corresponding to
nss > 1x1.
To fix this, copy 160 MHZ mcs from the
staion parameters which gets updated in
change station. Also, use nss parameter
which is passed by lim_populate_he_mcs_set()
in the check which was used to disable mcs
rates corresponding to nss > 1x1. Thus,
peer station nss will be used to
determine whether to disable or not.
Change-Id: I23079aed3795202e6ae32583a220c1ed3227c1dd
CRs-Fixed: 2904540
Driver receives interface down/del virtual interface commands from kernel
with rtnl lock held. In driver, these commands will wait for SSR to be
completed. So in this case rtnl lock will be held for long time.
To avoid this, cache the north bound command received during SSR and
execute them in re-initialization sequence.
Change-Id: I5b4ca8e04c80e1cef49d137532198283aa35165f
CRs-Fixed: 2740368
Don't allow twt statistics or clear statistics command
if twt statistics or clear statistics is in_progress.
As a Fix, reject the new twt statistic or clear statistic
command till existing twt statistic or clear statistic
command completion.
Change-Id: I710a81ae3409f181689b2e4c9e9d4e583d4aadab
CRs-Fixed: 2870592
Introduce HE cap IEs in addstareq. Also, Add
HE capabilities in frames for TDLS Setup Req,
Setup Rsp, Discovery Rsp. Add He Operations
in TDLS setup Confirm.
Implement APIs under feature WLAN_FEATURE_11AX
which will be used to:
1) Fill HE capabilities in TDLS Discovery Response,
TDLS Setup Request, TDLS Setup Response.
2) Fill HE operations in TDLS Setup Confirm.
3) Convert he_capa capabilities from station
parameters to tdls tDot11fIEhe_cap type.
4) Set Chan width based on session, peer
capabilities.
Change-Id: If36b1a3c3eed0e6026043494a097673f9d74b580
CRs-Fixed: 2883443
Retrieve the stored TWT wake duration for a session for
to send it as part of get twt statistics response.
Change-Id: If3c23d05331d5dfb43f74f5380e81eaf2799d2e7
CRs-Fixed: 2859812
Implement support for sending new control path stats
infrastructure via WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID in cp stats component. Also add
support for TWT Get statistics through this new method.
Change-Id: I62b3a525cde797cd5b809ca9e8e6c91d5651c6b4
CRs-Fixed: 2851016
spin_is_locked() provided by kernel has statement that we should not
rely heavily on the return value, it only tells that the spinlock is
seen to be locked, not that it is locked on your CPU.
Further, on CONFIG_SMP=n builds with CONFIG_DEBUG_SPINLOCK=n, the
return value is always 0.
So we should not use QDF_BUG to test/assert its return value, only be
used for debugging purpose.
Change-Id: I8854ebc6b96698f5272d77750da7d18582a288e9
CRs-Fixed: 2852179
Since 5.10 kernel has removed NLA_EXACT_LEN, replace NLA_EXACT_LEN
usage with a new conditionally defined macro for it.
Change-Id: I700f40d9ff87331dbb23a44fcbe6e4a586ef286d
CRs-Fixed: 2849795
Reduce excessive logging for roaming path to reduce latency.
Also remove function and line prints in roam debug related
logging.
Change-Id: Ida6fc55886c944126720f8bdd4b944765426ccc6
CRs-Fixed: 2847773
Add connection manager logic to handle p2p/tdls/policy mgr logics
on connect/disconnect start and complete ext indication. And
add the call to csr to update the legacy structs.
Change-Id: I218a1d193dd62ad041e84078bd2509b82ec11363
CRs-Fixed: 2846663
Use WLAN_INTEROP_ISSUES_AP_ID for interop issue module instead of
generic WLAN_OS_IF_ID.
Change-Id: I019a51f2f80ce553f9e0767cdc849618ac101ebc
CRs-Fixed: 2823554
Currently, there is no INI parameter to control NAN feature in 6GHz
frequency band. Because of this, there is no provision to disable the
NAN in 6GHz when there is no requirement.
To address this, add INI parameter to configure NAN feature in 6GHz.
Change-Id: I6b4faa8e8aa1a3df72539fed1d7ff3cc8287debd
CRs-Fixed: 2817920
Modify connect start code in interface manager by
moving disable roam and tdls link teardown notify
APIs from HDD to if mgr. Alongside, move tdls link
teardown notify API from HDD to if mgr in start bss API.
Also, move the tdls link teardown API to TDLS module from
HDD module as TDLS should manage the wait logic.
Change-Id: I09fa31878563a3daaa7c5fde46327475829317b3
CRs-Fixed: 2811807
For all tdls operations in HDD layer, use WLAN_OSIF_TDLS_ID
reference count dbg id for vdev reference count
acquire/release.
Change-Id: Ic5ab93eb865e016d485f09a9af062062d1f97526
CRs-Fixed: 2805028
Stats event from target might have several sub events, and some event
has no peer stats but have adv/ext2 peer stats.
Check ext/ext2 peer stats even no peer stats in
target_if_cp_stats_extract_peer_stats(). Fix copy adv stats size error
in tgt_mc_cp_stats_prepare_n_send_raw_station_stats(). Although
get_station_stats_cb and get_peer_stats_cb is union callbacks,
better to assign to get_station_stats_cb because it is for
TYPE_STATION_STATS.
Change-Id: I0bead0cbb8b549cc538ef4a7327f0a8303c90bd1
CRs-Fixed: 2801842
Wake lock stats vendor command attribute names
in the driver are different from the attribute
names in upstream qca-vendor.h.
Change the wake lock stats attributes name in driver.
Change-Id: If9dbd46482f2f65758ea90aebdd078c1a30d5bef
CRs-Fixed: 2789539
Fix the following regression issues which will cause get peer
statistics failure:
- Number of peer statistics is not updated in the callback
- Sta info reference count is not released
- Incorrect nla len
Change-Id: Ia7cdf28324402fd647a6d4e80b27612ccabb32f2
CRs-Fixed: 2785764