On add virtual interface through cfg80211 ops, the params
to create adapter as ML will set for SAP mode.
However if SAP interface add is called internally in the
driver without setting the params to create the adapter
as ML type then, interface will be created in non-ML type
and ML SAP bringup fails.
Implicitly assume all SAP mode open adapter requests as ML type.
Change-Id: I7d16cfe4f20ec0d55aa520ae031069e4b2bc6869
CRs-Fixed: 3362622
In function hdd_nan_sr_concurrency_update, the FOR iteration has
released the vdev ref if is_sr_enabled is false, but it does not
set sta_vdev to NULL. It causes the last sta_vdev ref count release
again and this causes issue of releasing ref count which was not taken.
Change-Id: Ia218073b4ef2508cd78370bb4236790df9b5ee4f
CRs-Fixed: 3363355
Older versions of kernel (<5.12) support the interface creation
through vendor command. But newer versions of kernel(>5.12) expect
the NDI interface creation to happen in two phases due to RTNL lock
removal for the vendor commands.
1. Create an interface through add_virtual_intf in STA mode
2. Change the mode to NDI through vendor command.
Currently, host driver restricts NDI creation to MAX_NDI_ADAPTERS(2) in
kernel versions < 5.12 and same is applicable for newer kernels as well.
Add the same check in NDI start for kernel versions >= 5.12.
Currently, host driver uses macro "MAX_NDI_ADAPTERS" to limit the NDIs.
Use the value of ini param "ndi_max_support" instead as this can be
configured differently(1 or 2) for different targets.
Change-Id: I355c42d60d6b86b4664ed001d7ed4d163a102159
CRs-Fixed: 3362601
On dynamic NSS update sent to FW, SAP is restarted
after disconnecting all connected clients. In the
restart procedure, MLO configuration is not updated.
Any new client connection is rejected by hostapd
with invalid link id reason.
In hdd_restart_sap() API restore the MLO configuration
to restart SAP in ML.
Change-Id: Ife8acf99b0bfa1a5415ea79dd3e522ef6377cad1
CRs-Fixed: 3352712
In current scenario, if eSAP_START_BSS_EVENT fails then host is
not de-initializing the timer hdd_medium_assess_init.
To address this issue, instead of de-init timer only for
eSAP_STOP_BSS_EVENT, host needs to de-init timer from a
common place.
Change-Id: I3b1304df2481d8276aeeec480b0ac3c1e35e5753
CRs-Fixed: 3363793
When STA is associated to an AP, the LTF keyseed is derived
from KDK during EAPoL exchange and in multi-link case the LTF
keyseed needs to be configured for all the links for each
link address. But currently PTK derived is configured for each
link address and LTF keyseed is not configured for each link
address. This causes phy security ranging failure.
Send set LTF keyseed for all the active MLO links.
Change-Id: Ic978f9096d763f0f975a28dc3b3a00fb8fb1237f
CRs-Fixed: 3351633
For ML connection, send the link_id on tx control port as per
6.0 kernel.
For legacy or non-ML connection don't need to send this info.
Change-Id: Iad3337481d62fd9cc2c35744a6aa1af14ab89d59
CRs-Fixed: 3342965
Currently there is no attribute to set the wifi calling state
from user space to fw.
With this change add an attribute to set wifi config vendor
command to configure wifi calling state to fw via platform
driver.
Change-Id: I982e9a7245b9e5108cd6cbcb4162daa4b4b6a412
CRs-Fixed: 3345705
The userspace sends QCA_WLAN_VENDOR_SECURE_RANGING_CTX_ACTION_DELETE
action in the QCA_WLAN_VENDOR_ATTR_SECURE_RANGING_CTX_ACTION to delete
the pasn peer. Add changes to handle this action.
Change-Id: I30bcdadd792d5bf1271c61fa585c62d5255eee5b
CRs-Fixed: 3358878
Reset return value in wlan_hdd_cfg80211_handle_tsf_cmd
function so that QCA_TSF_GET command gets process.
Change-Id: Ia81d5e3920a6f707edcbdb05583f94798534b721
CRs-Fixed: 3353246
As part of Spatial Reuse, host has to send SR Suspend and resume
events based on concurrency which is not sent in case of NAN
concurrency.
Fix is to send SR Suspend in case NAN comes up and any STA that
supports SR is already present because SR is not supported in
case of NAN concurrency. Similarly during NAN disable check
if any other vdev apart from NAN is sharing mac with STA that
supports SR and SR support on same mac is disabled then don't
send SR resume event as there is already a concurrent vdev that
will take care of SR Suspend event otherwise send SR Resume event.
Change-Id: I56a9b455dd0166bc3997f8306992e46da759e992
CRs-Fixed: 3339713
Enhance the print of SAE TA, to always log the address passed to
cfg80211_external_auth_request().
Change-Id: I0765b3a0465d7271b3bf42bc7498d4b7e673c88e
CRs-Fixed: 3357863
In __wlan_hdd_cfg80211_sr_operations(), it doesn't free the
skb for vendor command reply when fail to fill it, which
will result in memory leak in such case.
To fix it, free the skb properly, and replace the kernel APIs
cfg80211_vendor_cmd_alloc_reply_skb()/cfg80211_vendor_cmd_reply()
with internal APIs wlan_cfg80211_vendor_cmd_alloc_reply_skb()/
wlan_cfg80211_vendor_cmd_reply().
Change-Id: Iefa578c06782db579d8fe9f5453aca2bf6622b2d
CRs-Fixed: 3354148
For GTK offload functionality, currently only 16bytes of
KEK and KCK are being copied from the userspace.
In latest kernel, kek length and kck length are sent to the
host driver as part of set_rekey_data command. Therefore,
use this length to copy the kek, kck params in host driver.
Change-Id: Idef0247aaab22022a84898eca6eb2f010ca1bf1f
CRs-Fixed: 3345506
In WoW mode, roam auth event may comes before roam start event, so CM
isn't in ROAMING state at that time, can't assume ROAMING state.
Change-Id: Ibf868db1ca0f9863d4beae4c83227cf04fe55adb
CRs-Fixed: 3357115
GO on 5 GHz channel 48, MLO STA 5 GHz (48) + 6 GHz (1) is UP.
SAP starts ACS, and before ACS complete, supplicant moves GO
to 5 GHz channel 149. Before GO CSA is completed, SAP ACS
is completed and start AP on 5 GHz channel 157. Then 3 home channels
are on same 5 GHz high band.
Fix by make User CSA as sync call and after GO CSA is completed
SAP should force SCC to low band during SAP starting, then avoid
3 home channels on high band.
Change-Id: I55ee559b47f270322ac3d2da7304dc5e8e104cf1
CRs-Fixed: 3352096
For SAE-EXT-KEY AKM with group-21 pwe, the PMK
length is 64bytes. Therefore, increase the max
size of the PMK to 64bytes in host to facilitate
PMK storage and PMK offloads.
Change-Id: I777a31acd56073d6a0312c47d95fe7d155b06fc6
CRs-Fixed: 3353102
In hdd_adapter structure, the qdf_session_open_event is
a declared as event type which is initialized but not used.
Remove this unused event variable and all its references.
Change-Id: Iec1ece36153a3c9986195bbc2cc19bf8a469f2ee
CRs-Fixed: 3354149
Currently host driver does not update dot11 mode info correctly
for getbssinfo command if the dot11 mode is 11AX or 11BE.
With this fix add a logic to update the dot11 mode info
correctly in response to the getbssinfo command.
Change-Id: I9ebec3ab43fe4cff1cab5f646bcc93a8c6654fd0
CRs-Fixed: 3353630
Add channel tx max power factor to existing ACS channel weight logic,
so if AFC available can automatically select Standard Power channel
which has higher 6 GHz tx power and better performance.
Add SAP best channel selection callback when AFC triggered DCS,
DCS module will invoke this callback and dynamic switch to best
channel/bandwidth if possible.
Change-Id: I300057c2b11d0b818f4e20ba51d6ab9b82f6a3ff
CRs-Fixed: 3204199
During the roam scan, if there are no desired APs found in the partial
frequency list, an immediate full scan on all the supported frequencies
is initiated as a fallback. This would include the 6 GHz PSC
frequencies by default.
This attribute allow that behavior to be modified to include PSCs only
if 6 GHz use has been detected in the environment.
Change-Id: I6dc380419f14b920737fd87cd9a487c28364563b
CRs-Fixed: 3351697
In the current driver implementation, host honors LL_STATS request
even in disconnected state. But in disconnected state, the ll_stats
request pending flag is not updated properly, which results in allowing
multiple LL_STATS requests being sent to FW. So, to avoid this issue,
update the flag properly.
Change-Id: I318455492dc69bd540044b593a405eacdf185ff1
CRs-Fixed: 3339867
When driver get (re)assoc response management frame from hostapd,
check if FT IE in it. If no FT IE in the frame, send it directly.
Change-Id: I780d1d6aff63276950a91fa7ee24ee99e3f6c98a
CRs-Fixed: 3338475
Supplicant will send keys after EAPOL exchange on assoc link
is successful, even if peer is not created for partner links
in the MLO connection and can show peer not found error in
add key.
If peer is not found for ML VDEV from the MAC address, use
assoc response IEs to get partner link's MAC address.
Change-Id: Ieb8759e97fbe01b7964bb06f8715bffd43894890
CRs-Fixed: 3340583
In PMO architecture, Linux Network Stack is unpaused earlier
than DP resume handler, some TX frames are dropped as DP
resuming is not ready. Change is aimed to fix the
unpause sequence.
Change-Id: I6cfcc7c4dd77f9cbcf1ac5b4a3d78a35dc3d16bb
CRs-Fixed: 3350279
Add resume and suspend support for rx thread, rx refill threads
in HDD module through DP componentization.
Change-Id: I0cdd0d43ac742ef55fad2155bc8df063c5bb8657
CRs-Fixed: 3316821
Currently hdd_medium_assess_init() and hdd_medium_assess_deinit()
are not paired with event the events eSAP_START_BSS_EVENT and
eSAP_STOP_BSS_EVENT respectively. Hence multiple call traces
can be seen for eSAP_STOP_BSS_EVENT if eSAP_START_BSS_EVENT is
not invoked from __wlan_hdd_cfg80211_start_ap or SSR sequence.
To address this issue invoke hdd_medium_assess_init()
for eSAP_START_BSS_EVENT only from hdd_hostapd_sap_event_cb
if timer is not initialized already.
Change-Id: I361e371c8b59a226fe6cae97c6f66bec46eeeb0f
CRs-Fixed: 3349485
The adapter create flag for is_ml_adapter is set to true
by default for mission mode on primary interface and in
hdd_open_adapter() the flag is set but MLD is set only
after checking if target supports 11be. This leads to
adapter being set as ML type but MLD is null.
Check the target 11be capability as before making
adapter ML type and in open adapter for mission mode
bring the is_ml_adapter under if conditional check.
Change-Id: Ic0325ea6fde364e5180e9d164095b79bdabfee41
CRs-Fixed: 3352138
Currently in wlan_hdd_tsf_reg_update_details there is check for
change in tsf_id and mac_id, If current and new values are same
tsf_details_valid bit will not be set (In case of tsf_id = 0 and
mac_id = 0), which we result in host continuously reading via WMI
command instead of scratch register.
So to Fix the issue only check for tsf_id_valid and update the
values.
Change-Id: I8007a40baa7be249afa5ff316d57983983ce988a
CRs-Fixed: 3351476
The current algo maintains valid channel list for NDI from regulatory
channel list which leads to high space and time complexity.
As it is known that there are only three channels (144, 44, 6)
to support the NDI, so check for valid channel from these three
channels, instead of extracting from the channel list. If none of
above channels are valid, then take first valid channel from channel
list.
In this way, no need to maintain the channel list which helps to reduce
the time and space complexity.
Change-Id: I5dd2757ca952f4aaeb2a9ed74a47b4e547890245
CRs-Fixed: 3340778
Some skb for vendor command reply is allocated with internal
API but reply/free is done with kernel APIs, which will break
the buffer tracking once NBUF_MEMORY_DEBUG and NETLINK_BUF_TRACK
are enabled.
To fix it, replace kernel APIs with internal APIs accordingly:
Replace cfg80211_vendor_cmd_reply() with
wlan_cfg80211_vendor_cmd_reply().
Replace kfree_skb() with wlan_cfg80211_vendor_free_skb().
Change-Id: If4f37b5dca5483a9b64c726d37d3959d3ecd699e
CRs-Fixed: 3350756
Refine the TX flow info setting independent on the IPA module to enable
the TX flow control feature for the TCP/UDP when IPA module is disabled.
Change-Id: Ib5d708e405dc93f410f100a5c335875b30601981
CRs-Fixed: 3346767
User can include/exclude the frequencies in roam full scan that
were already scanned by the previous partial scan, using the new
vendor attribute introduced as part of roam vendor command.
Host sends the configured value to firmware.
As per current implementation of roam scan, if there are no APs
found during partial scan, immediately a full scan will be
initiated as a fallback. This includes all channels that were
already scanned as part of partial scan.
This attribute controls the optimization, to exclude all channels
which are already scanned as part of partial scan.
Change-Id: Icd6381b4daadcfe32dabda131ae92e2e32f07f1d
CRs-Fixed: 3343657
Even though host already disabled BMPS during P2P connection in
progress, the PM lock in FW side still held and released again and
again. Which takes long time during P2P connection. Per suggestion
from FW team , set pdev parameter with id -
WMI_PDEV_PARAM_POWER_COLLAPSE_ENABLE,
value 0 - hold lock
value 1 - release lock
This change also fixed some kernel-doc error.
Change-Id: Iba130477595ca8952c5fe0c5ce7ad60b737e4c43
CRs-Fixed: 3331991
Move Action OUI INI config to component.
Add ucfg API to load/parse the configuration.
Change-Id: Ibaab5428bc575394b9a5b464639d24f80f042e93
CRs-Fixed: 3310697
Introduce a new API to configure the latency level for the adapter
which is currently configured in the hdd_start_station_adapter()
Change-Id: Icc91ca253de8f9590f4530d976bd4b54cf7a3eba
CRs-Fixed: 3297686
Currently, If AP doesn't allow Prohibit to be set and user tries
to enable prohibit, host doesn't send command to FW to enable prohibit
but doesn't send failure status to user space.
Fix is to send failure status to userspace in case prohibit is not enabled.
Change-Id: Ic983b85d27e16314f63c02f88d3b1689d587d622
CRs-Fixed: 3344607
At present the set/get user powersave state to MLME and send
command STA powersave mode to firmware operations are not
protected by lock.
Supplicant thread and hdd_ipv4_notifier_work_queue may have
race condition to access the user powersave flag. In that
case the STA powersave state may out of sync.
Fix by acquire sme lock to protect the powersave state set
sequence.
Change-Id: I76d848ea191f2319d015e0d70efad28f56a57d27
CRs-Fixed: 3342696
Introduce a new API to move HT VHT IEs initialization
code from hdd_init_station_mode() function.
The new API will have vdev objmgr as function parameter
which can be used to operate on per vdev instead of adapter.
Change-Id: Ifc6766f0d2ae8c0b272099a56b38ea71236eea08
CRs-Fixed: 3297555
For channel frequency 5825 MHz, need to check regulatory
API support 20 MHz band width only before reject it.
Change-Id: I6d4ac072e181921852603107b650d9349205e54d
CRs-Fixed: 3332847
Refactor the hdd_vdev_destrory() API to move the wait
on vdev destroy event to a new API.
Change-Id: I8c27a12ab8aa5967cafb1b31475ea23ba9241cbe
CRs-Fixed: 3307015
Currently if driver load/unload is in progress or driver is
loaded and mode change to FTM mode is issued from the sys
path, memory leakage occurs during driver unload.
To address this issue, don't change mode if driver is already
loaded or load/unload is in progress.
Change-Id: I09cacaf11d516c62de1a9699547eb01476afdc1f
CRs-Fixed: 3349217
Clean up code for sme_get_empty_scan_refresh_period_global() and
sme_get_neighbor_scan_refresh_period() apis
and replace it with ucfg api.
Change-Id: Iaa511024467f45dc408da3db202b25f9b5276453
CRs-Fixed: 3335898
Clean up code for sme_get_roam_opportunistic_scan_threshold_diff() and
sme_get_roam_scan_home_away_time() apis and replace it with ucfg api.
Change-Id: I7de3bf3faff990cbf667cb8106044a33f16f3a46
CRs-Fixed: 3335898
Clean up code for sme_get_wes_mode(), sme_get_is_lfr_feature_enabled()
and sme_get_is_ft_feature_enabled() apis and
replace it with ucfg api.
Change-Id: I7715ba361264fcb2c0c93d8d073813538347dd31
CRs-Fixed: 3335898