Legacy OSIF pointer in VDEV points to the link info element
that the VDEV is currently assigned to in adapter. As part of
link switch the VDEV will be reassigned to the link info structure
that corresponds to the new IEEE link id and here the OSIF
pointer is properly updated in the VDEV.
However post disconnect all the VDEVs will be reordered with the
link info structure on which it is initially created and in this
reset logic of the legacy OSIF pointer is updated for only one
VDEV and leaving the next VDEV to point to different link info
than where it is currently assigned.
In the reset logic, update all the valid VDEV's OSIF pointer to
reflect the link info it is currently mapped to.
Change-Id: Iba541ee99c008fb610abdd086ae40164dde0e74f
CRs-Fixed: 3626410
Whenever the link switch notification is received at hdd, the
vdev id is compared with what is send and the adapters vdev.
So log the error values and remove the assert which will not
help in debugging the issue.
CRs-Fixed: 3618094
Change-Id: I549096b8e594241cde5b185e5e1ab00cf9dc33e8
Currently, host driver sends ARP pattern to FW for wow mode for
STA interface only. Thus, in case of SAP interface, firmware drops
ARP packets during wow mode as driver does not sent the ARP
response for SAP for wow mode.
So, to fix this, send ARP pattern for wow for SAP interface also.
Change-Id: I8efd895a1c03900245048b2da2a8012ec36dbf71
CRs-Fixed: 3626249
Currently wifi set configuration vendor command returns error
in case if chan width attribute is not in the vendor command,
this results in complete failure of the vendor command and does
not give chance to parse and execute other attributes and also
this command always returns failure for all the attributes
if chan width is not present.
To address this issue, return success if chan width is not
present in the set wifi configuration vendor command.
Change-Id: Ifd8a857ae6aadd1aa2f8227507e1e27b477e1200
CRs-Fixed: 3628393
In API wlan_connectivity_mld_link_status_event(), link id
bitmap is passed to userspace instead of band bitmap.
Introduce wlan_convert_link_id_to_diag_band() to convert
link id bitmap to band bitmap which is required by userspace
Change-Id: Idf398d5d326aecc4db03ec70cab0e20f18dfbd3b
CRs-Fixed: 3624522
Currently, when disabling the power save mode, driver sends
the TWT teardown command 10 times to the firmware. These 10
commands being received by the firmware within 200 ms.
However, this time doesn't enough time for the scanning
process to complete.
To address this issue, added a delay of 500ms between each
TWT teardown command sent by the driver to allow for the
successful completion of scanning before further commands
are issued.
CRs-Fixed: 3626036
Change-Id: I214e5dc94e94eb48f41436f9e5f1a6b9714f4bc1
When multiple APs in the environment have same BSSID but
different SSID, MDIE configurations then BSS descriptor filled
by fetching the scan result with only BSSID as filter can cause
wrong BSSID data to be filled. This causes wrong MDIE to be
sent to firmware after roaming.
So filter the scan entry based on SSID and BSSID.
Fill the mobility domain to RSO config in LIM after roaming.
For initial connection, fill MDIE from assoc request.
Change-Id: Ica5c46d6fe07799f16a1a26d66aa6f8452e4c8d1
CRs-Fixed: 3615256
In certain cases where the deferred queue size exceeds the
threshold, defer message decision API drops the frames but
also logs the failure to defer the message and this can
cause excessive logging. Thus, rate limit the error log.
CRs-Fixed: 3627463
Change-Id: I5a1020639e2c63d9ce9ca4178a747183e3964cc0
ACS Scan requires reliable scan policy for valid results.
Set the flag to trigger reliable scan for ACS.
CRs-Fixed: 3627456
Change-Id: I269058f567f923396a67d7c36bdb839607d26c5c
FW asserts if the host sends deauth frames before
peer assoc with MLO MGMT TID. The host needs to
send all the management frames before peer assoc
without link agnostic bit in the WMI_MGMT_TX_CMD.
For MLO vdevs, send management frames with link
agnostic flag only if VDEV is in UP state.
CRs-Fixed: 3485708
Change-Id: I9fdee53e0f902a089ad3c5c8c99e720423cf9d6e
Reset HDD sta_ctx link info parameters after roaming to
reset the values in case of roaming from 3/2 link AP
to 1 link ML AP
Change-Id: I5e8165e50b92eed476d16696c14d4db82192c4ed
CRs-Fixed: 3627330
The third party framework sets p2p0 with powersave enabled, our driver
saves the powersave enable flag to vdev.
Then framework creates p2p0 as GC by changing p2p Device type to p2p
Client type. Our driver will delete vdev and create the vdev again.
The powersave enable flag will be lost in this case.
Fix by cache the user powersave flag to adapter and restore it after
vdev created.
Change-Id: I5be2d2df0583b6c1bf6b7cdd31a1a0b89ceb1901
CRs-Fixed: 3625403
Current code does not enable peach building on pineapple
target. Fix this by adding peach to supported chipsets.
Change-Id: I69d982fcfdb1b9f7d5a211b0987a7444135aed71
CRs-Fixed: 3619852
Current code has config deltas between kiwi_v2
and peach. Resulting in compilation errors.
Fix this by adding missing configs to peach target.
Change-Id: If392002dc6859855fac8b6dcf66a2b6b8237eeda
CRs-Fixed: 3626096
As ETSI18 and ETSI20 also added to check SRD channels.
Rename the api of ETSI13 with ETSI.
Change-Id: Ib04e809ba53a55101a6254e0c1ef9f9b37b93fb8
CRs-Fixed: 3616398
TDLS for MLO, it forces link active when sending TDLS discovery
Request, it needs to unforce the link when:
There is no discovery response on that link; or
The remain links except the link which is TDLS link; or
The link for TDLS but no more TDLS connection.
CRs-Fixed: 3623332
Change-Id: Ie9fb0d210952531744bba397c1a34f4d8f1f14fb
Currently, it uses timer count to check whether the expected TDLS
discovery response frames received or not. But sometimes, the
discovery response frame comes back before the timer count increased.
The frame pattern like this:
Send tdls discovery request on link0
Receive tdls discovery request on link0
Send tlds discovery request on link1
Receive tdls discovery request on link1
In this scenario, driver forwards two different discovery responses
frame to supplicant and causes supplicant confusion.
To resolve this issue, check whether the expected discovery response
frames received or not. If not, let the timer to monitor the situation
instead of stop the timer and forward current discovery response
frame to supplicant.
CRs-Fixed: 3624866
Change-Id: I47ee729ed4c426eda232c704fc99f681b9db2fa4
The structure ieee80211_eht_operation is not present in older kernels.
So, add a kernel version check to avoid compilation failure in targets
which use older kernels.
Change-Id: Id5e5d80e06e783258374465514246cfde9d86177
CRs-Fixed: 3627213
Currently when host driver tries to give the max vht rate, it
accesses the rssi_mcs_tbl in a loop without checking for the
max index for rssi_mcs_tbl array. This may result in array out
of bound access.
To address above issue, add a check in the for loop for the
max array index check.
Change-Id: I9ab2306f5ed4be745127d8fa35154902eb394e66
CRs-Fixed: 3618765
Driver refills the rxrate structure from kernel which
has been filled in previously. The issue happens in
legacy mode, when driver reports legacy rate but fails
to clear the rxrate.flags, causing kernel fails to
recognize it as legacy rate. This change clears the
rxrates to ensure kernel to recognize it as legacy rate.
Change-Id: I0702a4a6e6cba59fed87dd857e0fa1a8530f3c53
CRs-Fixed: 3611779
Add initialization value for sap_force_11n in
function __wlan_hdd_cfg80211_do_acs().
Change-Id: I32777fc5a4d50d57993e082d63873510dd02a16c
CRs-Fixed: 3626818
Currently if STA with country set to KR tries
to connect to an AP operating in 6 GHz band in
320 MHz bandwidth, connection happens in 160 MHz.
After connection if host receives SET_FCC_CHANNEL 0
command it disables all 6 GHz channels and keeps
in-use bonded channels enabled.
While processing connected AP's beacon as AP
advertised bandwidth 320 MHz is greater than
connection bandwidth 160 MHz, STA tries to follow
AP advertised bandwidth. As host validates
AP advertised bandwidth, it finds some of the
bonded channels are disabled hence tears down
the connection.
To address this issue ignore CSA if AP advertised
channel is same as the connection channel and
there is no change in puncture bitmap for the
given CSA params and best bandwidth supported by
regulatory for the given CSA params is same as the
connection bandwidth.
Change-Id: I5e376cfaf798a228b4c1db45770fc0108d54052a
CRs-Fixed: 3622068
Add initialization value for mac_hdr pointer in
function lim_deauth_tx_complete_cnf_handler().
Change-Id: I429e1a2cdad8a86907033719274def00acf7ff69
CRs-Fixed: 3626801
Add NULL check for rso_usr_cfg pointer to avoid NULL pointer
deference in function cm_update_advance_roam_scan_filter().
Change-Id: Ic7d0277705bafd551a8ee9f6cac7c479c71d187e
CRs-Fixed: 3626780
Stop moving of GO / SAP due to SCC enforcement on DFS channel if active
STA disconnects in between CSA countdown in-progress.
The scenario here is, existing SAP/GO is there on non-DFS channel and
STA connects to a DFS AP which creates MCC. This will then trigger SCC
enforcement logic. Now during CSA countdown (before GO / SAP actually
moves to STA's channel), if STA disconnects, then moving GO / SAP to
DFS channel will lead to FCC violation if radar detection is disabled.
Hence to handle this scenario, better to stop current GO/SAP's
movement to this DFS channel and allow to operate on current channel
only, STA associated to GO/SAP's will find that SAP/GO didn't beacon
on new channel so Heartbeat failure will happen and they will scan
and connect again
Change-Id: Id957efe0e763bb2065ec871dac2d2ca926577297
CRs-Fixed: 3577260
Currently, Host driver validates the frequency for channel
switch announcement, including checks for DFS, indoor channels
and SAP count.
This change is to remove these checks, allowing the host driver
to honor CSA requests from the AP and switch to the specified
channel for STA.
Once the STA moves, SAP will move to the STA channel and if not
allowed due to DFS/unsafe/indoor rules it will move to 2 GHz band
CRs-Fixed: 3620214
Change-Id: Ib6dfb8ffe798fefe576edc0e0db4f50912604c3c
In T2LM status event currently band info is not populating
for the stand by vdev
Update band info for stand by vdev also
Change-Id: If7413158a1e3edf170ae04791d377a4ad6008544
CRs-Fixed: 3624562
Kernel rejects NL80211_CMD_TRIGGER_SCAN when a scan is already
running. But ROC comes via NL80211_CMD_REMAIN_ON_CHANNEL which
doesn't have this check and the request comes to driver.
ROC preempts on-going scan and the scan is resumed post ROC
timeout. But userspace may issue ROC requests continuously
and the current scan may not get time for completion.
DUT has encountered this issue in below scenario,
1. Framework(wificond) issued a scan, driver started scan and
sent TRIGGER_SCAN event. wpa_supplicant monitors for
TRIGGER_SCAN event and avoid issuing another scan/ROC.
2. But wifi is turned off immediately, which has killed current
running wpa_supplicant
3. Wifi is turned on again and new wpa_supplicant is started,
but it's not aware of the ongoing scan. It started P2P
operations(p2p scan+listen) immediately.
4. P2P scans are rejected by kernel but ROC keeps on preempting
the current running wificond scan. Neither station scan nor
P2P scan/listen can make progress due to this.
Reject ROC(remain_on_channel) when a scan is going-on to avoid
ping-pong between station scan and P2P ROC.
Change-Id: I500b7c2062cb16ebc29027232608036a55ad4dea
CRs-Fixed: 3625673
Currently, the TDLS throughput is low and can't grow up, to resolve
the issue, populate the eht mcs accordingly.
CRs-Fixed: 3622297
Change-Id: Ic5388efb6131fe811368275f7e3c279fe7f9c7ea
Currently if AP sends pmf timeout as part of assoc response,
host starts pmf timer without stopping the assoc failure
timer and retries assoc after the pmf timer expirs, as a
result early assoc failure timeout is observed for the
second assoc request resulting in assoc failure.
To address this issue, stop assoc failure timer before
starting the pmf timeout timer.
Change-Id: I04358e4d0fbe54552f4b387789a256f45dc7e20f
CRs-Fixed: 3602605
In api cm_roam_scan_info_event(), fw_timestamp value
is fetched from wmi_roam_trigger_reason->timestamp
which results in same value as in roam trigger event.
Modified the api cm_roam_scan_info_event() to fetch
fw_timestamp value from
wmi_roam_scan_info->scan_complete_timestamp to send
proper roam scan done event fw_timestamp to userspace
to log.
Change-Id: Idb1bcfad223b20a57b47d6e0040305000f6165ea
CRs-Fixed: 3624454
QCA_WLAN_VENDOR_ATTR_CONFIG_MODULATED_DTIM attribute is defined
incorrectly.
Modify this attribute to QCA_WLAN_VENDOR_ATTR_CONFIG_DYNAMIC_DTIM
as per the upstream qca-vendor.h file.
Change-Id: Ib8e688e52d19b4805089218e8f976bafdf673792
CRs-Fixed: 3617538