Cleanup HDD code which is refactored to
DP component.
Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after preforming complete sanity
to vet out any regression which might be introduced
by these changes.
Change-Id: If5f1cf432b5c02848202debee7de696b2f20be9a
CRs-Fixed: 3198619
All the DP specific code logic is moved out of HDD to
new DP component. So update HDD module to use newly
introduced DP component APIs for DP specific operations.
Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after preforming complete sanity
to vet out any regression which might be introduced
by these changes.
Change-Id: I377aecc4343e75dd17d279a2eb84fc49e737e784
CRs-Fixed: 3198619
Add and register HDD callback APIs with DP component.
With this changes DP component will be able to call
HDD APIs which cannot be moved to DP component,
and to get information from HDD.
Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after preforming complete sanity
to vet out any regression which might be introduced
by these changes.
Change-Id: Ie55ab16cb25a93061d09684a9eda5738f4e151a8
CRs-Fixed: 3198619
HDD changes to incorporate new DP component
Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after performing complete sanity to
vet out any regression which might be introduced by these changes.
Change-Id: I058b9121c8490e9b0906421a35e01c55a1a7c25a
CRs-Fixed: 3198619
Currently in host driver, for non-random mac addr, ndi mac addr
pointer is null, so, hdd_ndi_set_mode function returns error.
To fix this, dynamic mac address is updated for only randomized mac
in hdd_ndi_set_mode function. Thus, null pointer check is removed
and function does not return the error.
CRs-Fixed: 3243783
Change-Id: I27fff615ec66acfd86bd13449b79b0d36469803f
Some APs sometimes don't honor Qos null frames under WoWLAN
mode if station's ITO is too small. Introduce a new ini
gActionOUIExtendWowITO to specify AP OUIs which exhibit
this behavior. When connected to such an AP, the station's
ITO value will be extended when in WoWLAN mode.
Change-Id: I41ade7e6a6f5ca8d9b2aac2ae25427ca7fa8fe6b
CRs-Fixed: 3238200
Add infra to support Dedicated Bluetooth Antenna Mode (DBAM)
feature. It is used to switch between dedicated antenna for
BT and shared antenna for WLAN and BT.
Change-Id: I20b08a2fd446da4e3c17813aa64e368750286114
CRs-Fixed: 3239896
If EHT operation information field is present, it means EHT connection
has different channel bandwidth with legacy mode. We should update
pAddBssParams->ch_width with pe_session->ch_width which considers
channel width in EHT operation IE.
Otherwise, channel width is not set correctly for EHT connection.
Change-Id: Idcac0382fb45df389b99711abcf0140caa80728f
CRs-Fixed: 3239711
sbs_num contains the sbs_freqs array size. Do not clear it
to 0 before call get_sbs_chlist API. Otherwise the size_of_sbs
will be 0 and can't add sbs freq to list.
Change-Id: I318edd12978f73e9f75ab5298c36ceec57c5df6d
CRs-Fixed: 3243780
To avoid unmeaningful rate fluctuation, when report
rx linkspeed to upper layer, exclude special frames:
arp/ssdp/dhcp/eapol/ipv6 NA/NS/DHCPV6 in low rate.
Change-Id: Ie8989dde506c654525099f9d154abe93162a0bac
CRs-Fixed: 3199636
In pkt_capture_datapkt_process and pkt_capture_mgmt_rx_data_cb
pkt_capture_vdev_put_ref is missing in error case, because of
which vdev ref count is not becoming zero when vdev is down.
Add pkt_capture_vdev_put_ref in all the error cases.
Change-Id: I55353356f059a367d57c64625f404e3940235be1
CRs-Fixed: 3228599
The return value of nla_nest_start can be NULL. Add validation
to "radio" to fix potential invalid memory access.
Change-Id: Iea6b0008e72548e8e4e26cd5eb87a9c5c2dad2c6
CRs-Fixed: 3242444
Per feedback from some hypervisor system vendor, a virtual CPU can
have some stolen time imposed by the physical CPU scheduling, this
can result in some tasks' handling taking longer time than expected,
even when spin lock is held by code running on the vCPU.
With the stolen time existing, wlan driver's timeout for spinlock
holding must be different on hypervisor systems as compared to metal
platforms.
Change-Id: I607895f8afc9ad745a7a68939202a66560f31637
CRs-Fixed: 3242535
Such statistics are used for power saving feature.
Report to userspace by
QCA_WLAN_VENDOR_ATTR_LL_STATS_TOT_TIM_BCN
QCA_WLAN_VENDOR_ATTR_LL_STATS_TOT_ERR_TIM_BCN
Change-Id: Idc447a53a74429336f5e2d25971a5ac9390fb9f7
CRs-Fixed: 3221119
For latest chipsets netlink interface has been used for EAPOL handshake
for all device modes. Hence support the same on the IPA RX exception
path for SAP and STA modes.
Change-Id: I85fabf8d3da54fb4b204458c0a62e8dde8d1d17e
CRs-Fixed: 3241236
Host driver rate limits successive get_txpower
calls within 3 seconds, and sends cached stats
from the hdd_stats. However, max_tx_power is
not updated in the hdd_stats. Therefore,
the cached tx power is always 0 dBm.
Also, the hdd_stats would be only updated when
CP stats are received from the firmware for
get_station/dump_station calls. get_station is not
periodically queried for SAP interface from the
framework. Therefore, tx power for SAP interface will
always be 0 even if hdd_stats gets updated.
To fix this, instead of hdd_stats, return the
max tx power from the pdev stats cached on the pdev.
Change-Id: I0c8d8baab790c7344bd8913158f8eda63736474e
CRs-Fixed: 3230649
Reject the SAP if the frequency is 6 GHz and
the security is non-WPA3 AKM suite.
Also, use the ini "check_6ghz_security" to
allow the 6 GHz SAP to be operational on an
open security mode for test purposes.
Change-Id: Ifc57656a556ef5b6829ed56bb1ec360b5b84379e
CRs-Fixed: 3176629
Update sanity checks for a NULL pointer in
cache_station_stats_cb to make it similar to 2.0.8 and
2.0.9 branch code.
Change-Id: I36e7e3548bf5d6bcf278e40d03f694daeeccf64c
CRs-Fixed: 3243090
Currently, the ML IE length in ML probe request is including 2 bytes
of element header. It causes the peer could not parse the ML IE
properly and response the proble response unexpectly.
To resolve this issue, correct the ML IE length for ML probe request.
Change-Id: I7cefb6d04a28c51ad7aa6fb894c77b005adbd775
CRs-Fixed: 3238761
Refine PASN peer delete all path, to post message to
scheduler thread to process the peer delete all
message for PASN peers. Handle response timeout in WMA.
Resume vdev deletion after removing pasn peers
Add vendor command support to parse below vendor commands:
QCA_NL80211_VENDOR_SUBCMD_PASN
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT
Send install key command to firmware to install the
PTK upon receiving
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT
vendor command. If LTF keyseed is also received,
send the LTF keyseed to firmware.
Sent PASN auth status to firmware upon receiving
QCA_NL80211_VENDOR_SUBCMD_PASN command.
Change-Id: Idc9c69f7288b0774cc6d9bdcfed13ba3684bbc72
CRs-Fixed: 3231205
ccfs1 in EHT operation IE is the channel number, wlan_reg_chan_band_to_freq
should be called if channel frequency is needed.
Otherwise invalid puncture bitmap is generated for the given bandwidth if
original puncture bitmap is based on 320 MHz.
Change-Id: Ie601af2311f2f51cfe53a7da86990060668ad901
CRs-Fixed: 3241698
Uninitialized variables in pkt_capture_process_tx_data()
and pkt_capture_callback() may lead to Unpredictable behaviour.
Initialize corresponding bssid variables to avoid it.
Change-Id: I1ca6e7e04c8920111414a83c29cb61883b72370c
CRs-Fixed: 3241885
Scenarios are:
1. Host receives ROAM_START from firmware
2. Host receives EAPOL M1 from AP, host forwarded
it to supplicant and supplicant buffered it (with
timer 100 msec) to process it after association
completion.
3. Host starts processing CP stats request, which
holds RTNL kernel lock
4. Host starts a CP_STATS_WAIT_TIME_STAT (800 msec)
timer and sends WMI_REQUEST_STATS_CMDID to FW.
So cp stats are holding the RTNL lock.
5. In waiting state host/FW completed roaming within
a few milliseconds. Host Call roamed indication
to the kernel. Kernel post it to the Work queue
to indicate this to the supplicant. The Work
queue requires the RTNL lock to send the
indication to the supplicant.
6. Now Kernel is waiting on the RTNL lock taken by
the CP stats request which is waiting for the CP
stats response (WMI_UPDATE_STATS_EVENTID).
7. Host receives CP stats response but the host is
unable to handle it with the below reason.
8. Timed out happens for WMI_UPDATE_STATS_EVENTID,
then Kernel takes RTNL lock to indicate
association/roam completion status to the
supplicant.
9. As Kernel is sending association indication
after CP_STATS_WAIT_TIME_STAT (800 msec), by
this time supplicant deleted buffered EAPOL
first frame, this results in DUT failing to
initiate the 4-WAY handshake.
10. Finally AP sends the Deauthentication frame
to DUT.
Reason for unable to process CP stats response :
As per the current design, While processing Roaming,
the host deletes the old peer and creates a new peer
for roamed AP. If the Host receives cp stats response
after peer delete due to roaming, the host is unable
to stop waiting for timer CP_STATS_WAIT_TIME_STAT
and fails to release RTNL kernel lock till timeout.
After time out only, Kernel can take RTNL lock to
indicate association/roam completion status to the
supplicant.
Fix is to stop the wait timer CP_STATS_WAIT_TIME_STAT
and release RTNL kernel lock even in case peer has
deleted by HOST for which CP stats request sent.
Change-Id: Ie5b5275da10a06da50b2fbb8ab206b78f2c64d6a
CRs-Fixed: 3234063
Currently, channel info event results are stored only if it is
received as part of SAP ACS scan. Channel info is used in
ACS algorithm to select best channel. There is a requirement to
reuse the STA's scan results for SAP to reduce the SAP bringup
time. So store the channel info event results received as part
of STA scan if WLAN_FEATURE_SAP_ACS_OPTIMIZE is enabled.
Change-Id: I99d4e8c13a9e4171c74c63907d29c585f89ecf9e
CRs-Fixed: 3239383
Instead of calling kernel iommu API directly, call the QDF API
to get iommu domain attributes.
Change-Id: I8967a0d47a720d55170f9f61233a6f4190f9133a
CRs-Fixed: 3228757