arp_ns_offload and gtk offload command are being issued for NaN mode
vdev. NaN mode vdev does not support ARP_NS and GTK off load features,
so disable them when in NaN mode.
Change-Id: Iab11c92bb5da4004b62e642342a386f532832509
CRs-Fixed: 2608618
Instead of returning the whole valid channel list, just return the
PCL to QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST.
Change-Id: I2be4357f1c25732b9d1098f3d16259217fa46b8e
CRs-Fixed: 2607890
User can configure roam scan channels using SETROAMSCANCHANNELS and
ADDROAMSCANCHANNELS command.
As the result of GETROAMSCANCHANNELS command, driver returns the list
of channels configured by user.
Change-Id: I847215c8319f819f8db60690842ef50037fe6aaf
CRs-Fixed: 2610136
Below beacon report/NEIGH rpt related details needs to be logged into kmsg:
i. Beacon Report Request
1. Token, Class, Channel list, Duration, Mode, BSSID wildcard, SSID
ii. Beacon Report Response
1. Token, Scanned AP Number
2. Reason – If Beacon Report could not proceed.
iii. Neighbor Report request
1. Sent from Mobile
iv. Neighbor Report Response
1. Channel list
Add the required details in beacon/neighbor report TX/RX path
Change-Id: I719863ecd4ac607d65dbbfde806921fe7214ce10
CRs-Fixed: 2610596
Driver/firmware may not support NAN in some platforms. But when
framework tries to enable NAN/NDP, driver returns an error and
logs the failure with error level. This is causing excessive
logs in dmesg. Reduce the log level to debug in order to avoid
spamming dmesg.
Change-Id: Ied8f06fadc3b68a9fc3657e31679b71a3807737e
CRs-Fixed: 2608564
User configures specific channel using SETROAMSCANCHANNELS command
and preferred channels using ADDROAMSCANCHANNELS command.
For roam scanning, "specific channels list" is preferred over
"preferred channel list". Hence if user configured specific channels
then block ADDROAMSCANCHANNLES command.
Change-Id: Ib4e2c9ed7ca1e44c0c7e287e2ac350c3d4f3540e
CRs-Fixed: 2610133
Add support to make event WMI_ROAM_PMKID_REQUEST_EVENTID as
wakable in FIPS case.
In FIPS Enabled case, for roaming Firmware sends PMKID request
to host as firmware is not supposed to do crypto functionality
with FIPS enabled.
Change-Id: I09b6b68f77ba75f9e5519ff18017c95d16771f52
CRs-Fixed: 2513790
Add check for sta connection during NUD stats request because FW may
assert if NUD stats request is sent to FW when the station is disconnected.
Change-Id: I0521356f677154cd5f4f0ae08b5fcfec2e9cef56
CRs-Fixed: 2610267
Data abort is happening while accessing unmapped sta_info in
hdd_softap_stop_bss(). When calling hdd_sta_info_detach() through
hdd_softap_deregister_sta(), sta_info is not being set to NULL since
a single value only passes a copy of sta_info, so the actual sta_info
is not actually being set to NULL. To fix this, pass a double pointer to
sta_info instead of a single pointer so that it can be set to NULL.
Change-Id: I96f4c7e1563e53498a86c95263dc62a8d3d68e21
CRs-Fixed: 2610763
Pass soc objmgr from hdd context to hif context
to retrieve INI parameters to be used in hif
layer.
Change-Id: I0ad4573fecba0fc78968145394683057d09da312
CRs-Fixed: 2598759
Add ini support to configure the protocol data packet types
for which diag log is sent to user-space.
Change-Id: I10c83aa4af7099feafa86e2b57dc5fd79d02114c
CRs-Fixed: 2595789
Add support to fallback the PMKID generation from firmware to
wpa_supplicant.
In FIPS Enabled case, for roaming Firmware sends PMKID
request to host as firmware is not supposed to do crypto
functionality with FIPS enabled. Once the roam candidate
selection is done in the firmware, it sends the
WMI_ROAM_PMKID_REQUEST_EVENTID. After receiving this event
the host driver triggers an event to wpa_supplicant using
NL80211_CMD_PMKSA_CANDIDATE for PMKID generation. Then
wpa_supplicant responds with PMKID to host using
NL80211_CMD_SET_PMKSA. And host updates the wmi pmk cache
and indicates the firmware via WMI_PDEV_UPDATE_PMK_CACHE_CMDID
wmi command.
Change-Id: I7d33a2b92f97260fa5a7e742b6f877adc7eced55
CRs-Fixed: 2512955
Currently the roam trigger, roam scan , candidates and
roam result related logs are printed at debug level and wouldnot
appear at kmsg. These logs are needed at kmsg for roaming
related debug requirement.
Change-Id: I0d407d04606462c88cf15f3693994f7cf11f6602
CRs-Fixed: 2607349
Scenario:
1. Turn on SAP on channel 1 on 2.4ghz 20Mhz BW
2. Connect a STA to it.
3. Change the SAp channel to 36 80mhz BW
Observation:
STA changes the channel BW to 80 but SAP does not
send th packets in 80Mhz to the SAP.
Expectation: SAP should send the packets to STA on 80Mhz.
Issue:
SAP does not set the peer params to the FW for the peer
hence the FW keeps on sending the packets with 20Mhz
which was previously configured to it.
Fix:
Send peer params to FW for each peer so that the
packets can be sent by SAP on a max supported BW.
Change-Id: Ic9b310e67001d55b2b5427db0c2ab897ea36b6b0
CRs-Fixed: 2606872
Even when vdev is in disconnected state, during connect it tries
to wait for disconnect which lead to 1 sec delay in connect.
So call wait for disconnect only if vdev is not already disconnected.
Change-Id: Ib7a9b4628b0e10f71bdebe4b74a70d648825d9d3
CRs-Fixed: 2609462
The HW is capable to send the RSSI from the range
0-127, and when the driver normalizes it with the
noise margin of -96db, then it may happen that the
net RSSI is still positive if the reported RSSI is
greater than 96 db. If this happens then the GUI
shows 0 signal as it considers this RSSI positive
value to be invalid, though the RSSI was very strong.
Fix is to override the RSSI as 0 if the net RSSI
obtained after normalization is positive.
Change-Id: Id00a2ef3bafe77a033627931ae62cd11f3ba4f27
CRs-Fixed: 2606589
Currently the logic in ACS for 0 scan results is
to select default channel from the ACS channel list,
but the available channels may not always be capable
of the max BW sent by ACS, for example in HW MODE as
ANY then all the channels 2.4ghz and 5ghz would be
present in the ACS channel list, 2.4ghz channels at
the first followed by the 5ghz channels, and if the
scan results are 0 then 2.4ghz channel would be
selected as default which should not be the case.
Fix is to remove the check to select default channel
and let me ACS algorithm decide the best channel
accounting other factors such as noise floor
and max tx rx clear count, power also.
Change-Id: I21e5d73e12fffb00c4996c406d62361b74db629f
CRs-Fixed: 2601141
In error case during wow pattern add and delete the allocated
memory for pattern string is not freed which is leading to memory
leak. Add the fix to free the allocated memory for wow pattern
properly for both error and success cases.
Change-Id: I5ecc2fb710bba85369a0bacbdd69a039d295e4d8
CRs-Fixed: 2609247
Driver receives roam invoke command from supplicant, Host start
processing it in wpa_supplicant thread and sends ROAM_INVOKE
command to firmware. FW indicates roam invoke failure, so host
clean up the AP (Disconnect). But wpa_supplicant did not get
scheduled till disconnection completion. After disconnection,
wpa_supplicant thread gets resume and sets the roaming in progress
true. This results in roaming in progress remain set in a
disconnection state.
sme_fast_reassoc should be protected with sme lock to avoid
the race between SB disconnect and sme_fast_reassoc.
Fix is to protect sme_fast_reassoc with sme lock and
set roaming in progress flag before sending sme_fast_reassoc
command to FW and reset it again if sme_fast_reassoc fail to
initiate the roam invoke.
Change-Id: I05d92f8d5916decbd2c6f99eb67da0a29525ead5
CRs-Fixed: 2608398
Currently many layers store the datapath handles i.e.
pdev and vdev handles and use them for passing as an
argument to the CDP APIs. This gives way to possible
race conditions, where the datapath handle provided by
the outer layer might be a stale pointer, which in turn
leads to unexpected results.
Remove the storage and usage of all the datapath handles
from the layers currently using them.
- cds_context
- vdev objmgr
- pdev objmgr
Change-Id: Icf24bd3792af203d1a06e153f0badd6e7405559f
CRs-Fixed: 2602199
wlan_hdd_disconnect logic changed as part of
Ib490021775a39614646f8e518860c878cc0fdaae, but wlan_hdd_try_disconnect
was not taken care to avoid the disconnect timeout.
As both API use same code move the logic to separate API and call
the API from wlan_hdd_try_disconnect and wlan_hdd_disconnect.
Change-Id: I20d0f85cc0bb4b6ba826d60051e6f4124b180c24
CRs-Fixed: 2608708
In case of PMF connection the sta_ds is memset to 0 in case of
SA query timeout whithout deleting pmfSaQueryTimer.
Also in lim_update_sta_ds pmfSaQueryTimer is
created without any check if its already created and thus may
lead to overwrite of the previous timer.
Thus destroy the pmfSaQueryTimer before memset sta_ds to 0 and
before creating it in lim_update_sta_ds.
Also use peer deletion is in progress in lim_process_assoc_req_sta_ctx
to check if STA is in proper state and assoc can be handled.
Change-Id: I63a701c1bd4324c6fce62338df80d0911cc9b703
CRs-Fixed: 2606900
Firmware operates on RSO update params only if state is RSO_STARTED.
Hence allow RSO update commands only in RSO_STARTED state.
Change-Id: Ic9d0d6df0608bfc4b4273f7c42c893dd52739d78
CRs-Fixed: 2605298
During 6ghz scan, host should not set HT/VHT flag
when sending configuration to FW via WMI_SCAN_CHAN_LIST_CMDID.
Change-Id: I5a58c775f173e90f91f6e7472ced3d59adfd8f73
CRs-Fixed: 2605744
Currently logs for invalid channel width are set as error logs,
if invalid channel width is passed to this api very frequently,
error logs are getting flooded.
To address this issue make the logs as rate limit.
Change-Id: I493002b63ab72438cce2b61c858a32acf12ea6b6
CRs-Fixed: 2607361
Currently, sizeof(qdf_dma_addr_t) is 4 bytes, but IPA driver
and WLAN FW always use 8 bytes, we should follow up with them,
otherwise, the numbers of rx complete ring entries will not be
same in both sides. Meanwhile, for tx complete ring, during the
first time initialization, we fill the buffer address with 4
bytes, while GSI FW read 8 bytes address content from tx complete
ring, which should cause the GSI FW get invalid address on the half
way and cause the smmu fault issue. So fill 8 bytes length buffer
address to the tx complete ring can avoid such issue.
Change-Id: I61021627b634d4b1525727cc944ee410ed3154db
Send vdev param command to FW for STA vdev to set the packet
capture mode. Send the command only if packet capture support
is enabled.
Change-Id: I014acfc5d97a2bf00831259b9811b3c5bc7610a1
CRs-Fixed: 2528554
For NCHO disable, clear static and dynamic channels from roam scan
list in driver and firmware.
Change-Id: I24bca4dfb34895b4e86455dea40764af163544f1
CRs-Fixed: 2605299
In dp_rx_tm_suspend, suspend_event should be reset before waiting
for it. otherwise, the suspend function will be break.
Change-Id: I9132f45b02386c54fb8e27f0f7c2c71205450c9d
CRs-Fixed: 2606227
The current implementaion check for peer, vdev and pdev leaks on
psoc in order and if any leak is found for peer then QDF_DEBUG_PANIC
is called and vdev and pdev leaks are not checked. Similar is the case
if vdev leak is found, pdev leaks are not checked.
Invoke new API to check for all the object leaks and then result in panic.
Change-Id: Icf6622760f3646b82f893beb7415b95307e2ccd7
CRs-Fixed: 2604594
Currently cdp ops are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev_id or vdev_id or peer mac address,
which will be used to get the respective handles,
and hence avoiding the unwanted access of the
handles if it has been deleted.
Also remove the ops which are used to store
and retrieve such handles, that no more needed.
- register_peer
- clear_peer
- change_peer_state
- peer_get_ref_by_addr
- peer_release_ref
- peer_state_update
- get_vdev_by_sta_id
- register_ocb_peer
- get_peer_state
- get_vdev_for_peer
- update_ibss_add_peer_num_of_vdev
- remove_peers_for_vdev
- remove_peers_for_vdev_no_lock
- copy_mac_addr_raw
- add_last_real_peer
- is_vdev_restore_last_peer
- update_last_real_peer
- peer_detach_force_delete
Change-Id: I5134ca882f5fcf0e5941317e48712717eddb58fe
CRs-Fixed: 2541708
Add call to hdd_regulatory_chanlist_dump to dump
the curr_chan_list. It will be processed by regulatory
test case in whunt.
Change-Id: I6a35fc61f13f92874b24602a572ebb7bf6c03250
CRs-Fixed: 2606980
In OCE 4.2.1, REF AP sets MFPR = 0 and MFPC = 1, DUT STA
set MFPR = 0 and MFPC = 1 by default. The current driver
only add MBO IE when MFPR = 1 and MPFC = 1. Then the test
failed because of no MBO IE in DUT assoc request frame.
Driver needs to add MBO IE when MFPC = 1 in STA and AP
based on test plan spec. Add new API lim_get_bss_rmf_capable
to check MFPC and required mgmt cipher.
Change-Id: I54aaa096393702154d1d0df218ba334eda80b0aa
CRs-Fixed: 2604189
Use newly defined QDF API in CMN qdf_is_driver_unloading() to check
if driver unload is in progress in DSC.
Change-Id: I2958c6cc3ee6f2ac4302e2dbbf1c68d986fea175
CRs-Fixed: 2605706
Currently PM QoS is only enabled for kernel version 4.19.0 and below but
is supported and needed in kernel version 4.19.72. So enable PM QoS if
kernel version is below 5.4.0.
Change-Id: I440abe1cf9737447faff250b1973f1e6e2fe378e
CRs-Fixed: 2603396