For WPA3 SAE LFR-3.0 roaming, authentication is offloaded to the
wpa_supplicant via the host driver due to the target crypto
inavailability limitations. The target does candidate selection
and sends the WMI_ROAM_PREAUTH_START_CMDID to the driver.
Once the SAE authentication is done, the supplicant sends the
external auth NL command with the authentication status, PMKID
derived. On receiving this event, send the PMKID, bssid, auth
status to the target over WMI_ROAM_PREAUTH_STATUS_CMDID command.
The host driver decides if the external authentication event is
received for preauth candidate or for initial connection by
checking the connected state information of the csr session.
When the authentication fails with the first candidate, the
target triggers the preauth start for the next candidate. This
happens till there are no candidates available to roam.
There could be a situation where the firmware sends preauth
event for candidate1 and before the supplicant could send the
external auth command to the host driver, the candidate1 preauth
timer could have expired and firmware sends the preauth start for
second candidate. After SAE is done with second candidate also,
the supplicant sends external auth event for second candidate. So
in this situation the firmware should decide to choose the
latest candidate. The host driver here is a mere passthrough and
doesn't maintain timer for the preauth event for each BSSID to
drop the expired candidate preauth events.
Change-Id: I799a05e55a59677dfc2ddf5b55ebc888ccfea03e
CRs-Fixed: 2507003
In case Device is P2P GO and SSR is triggered due to any reason,
Stop_adapter is called. Inside stop adapter adapter->session.ap.beacon
is freed. When P2P GO negotiation is initiated after SSR,
__wlan_hdd_cfg80211_stop_ap function tries to access
adapter->session.ap.beacon which freed during SSR.
Failure is returned in case adapter->session.ap.beacon is NULL,
Which causes failure of p2p negotiation.
Fix is to return success to upper layers in case SAP is already
down, So that beacon interval can be cleaned up.
Change-Id: Ie7a30475b2a54860843b1430964585d22f02c110
CRs-Fixed: 2503216
Wifi turn-on will timeout and fail if system suspend occurs during idle
restart. To solve this, abort system suspend during idle restart.
Change-Id: I0a4a1fc9525b5fb19f51a289ca0b8a76c73038e6
CRs-Fixed: 2506716
Currently driver passes sta_id through out the call for getting the TSM
stats. Although passed, the sta_id is not used anywhere in the call
stack. As part of removing the sta_id usage, this sta_id can also be
removed safely.
Remove the usage of sta_id in get TSM stats path.
Change-Id: I1efbb1bfdc8df84e9b6a71dcd5bd39ea93ced21a
CRs-Fixed: 2484701
Increase the max number of MSDU in AMSDU limit to 15 and set the
default value to 0 to config the FW in auto mode selection in which
FW picks the maximum number of MSDUs in AMSDU based on connection mode.
Change-Id: I6c1f1292a31fc9ea857e60e7a81d10b6def5cbc1
CRs-Fixed: 2502544
Currently, the cdp API cdp_register_peer takes as input the sta_id. As a
part of cleaning up the usage of sta_id, replace it by peer mac address.
Change-Id: I0e92258777aff02940dd619c4d2ad784aa3e7f31
CRs-Fixed: 2502996
Currently, the IPA AIP ucfg_ipa_wlan_evt takes as input the sta_id. As a
part of cleaning up the usage of sta_id, remove the parameter. Since
mac_addr is already present in the list of parameters, no need to add.
Change-Id: Iacc4a05de88973014eb4bcc1dfc97b7dc4a0d4fa
CRs-Fixed: 2503944
Currently driver passes sta_id through out the call for getting the SNR
stats. Although passed, the sta_id is not used anywhere in the call
stack. As part of removing the sta_id usage, this sta_id can also be
removed safely.
Remove the usage of sta_id in get SNR stats path.
Change-Id: I39482d8f6d8e3bd32e940a85d5592dada8f0460b
CRs-Fixed: 2503956
Currently the function hdd_get_peer_idx is not being called from
anywhere. As the use of sta_id is being depreceted, the function can be
safely removed.
Clean up the unused function.
Change-Id: I6896d03ad2e8b427147e2259b737836cd3f44ca0
CRs-Fixed: 2484699
When FEATURE_WLAN_AP_AP_ACS_OPTIMIZE enabled, it will allocate
memory in INIT domain (wlan_hdd_startup), and free in ACTIVE
domain (hdd_wlan_exit).
Move to wlan_hdd_start_modules/wlan_hdd_stop_modules to avoid.
Change-Id: I0fd93baa306a136af2faa7af9dcccfb709984ef9
CRs-Fixed: 2505462
If firmware doesn't support 5GHz band then ieee80211_supported_band
structure for HDD_NL80211_BAND_5GHZ is not allocated in wiphy and in
wlan_hdd_update_ht_cap() trying to derefer member-fields of
ieee80211_supported_band[HDD_NL80211_BAND_5GHZ] without NULL check is
causing NULL pointer exception.
To address this, add NULL check for 2GHz and 5GHz band pointers.
Change-Id: I8aa93b9cbe26ce674563505e222f5cb2aa970051
CRs-Fixed: 2503133
1) Remove channel from struct hdd_mon_set_ch_info. All client
code will use freq within the same struct from now on.
2) Replace the usage of channel ID(op_chan) with channel
frequency(op_freq) in function hdd_mon_select_cbmode's
parameter list.
3) Fix a number of camel cases detected in function
hdd_select_cbmode.
Change-Id: Ib7c1ee453b34647e983749a713b33017b92103ac
CRs-Fixed: 2504779
Check if the configured tdls offchannel through IOCTL
is supported or not. This is required if firmware
does not support 5G channels or any invalid channels
Change-Id: I49e3b7b758fddf22fbfe1b64dda2e4f47a27cf3b
CRs-Fixed: 2503913
On wlan suspend, kck sent as part of gtk offload request
is not populated properly since the kck_len is not
updated when caching the gtk request resulting in all
zeroes kck.
Fix is to update kck_len when saving gtk offload
request.
Change-Id: I9e4430565a04cff6da7f06d23a9542a2f53568b0
CRs-Fixed: 2502131
Currently for NDI interface bus bandwidth timer is not
started. As part of this change start the timer when new
ndp peer is created and stop the timer when last ndp peer
connected is deleted.
Change-Id: Ia710ec9872636ee3cefa30815692c2f8c9816687
CRs-Fixed: 2499548
Currently, get_tx_power is given for all interfaces but FW may
not respond for interfaces like p2p device mode or NAN.
Allow cfg80211_get_tx_power only for STA/P2P_client associated
state and SAP/GO started cases. In rest all cases do not give
this command to FW.
Change-Id: I01ff4f11c35ca00183002d2d1c2c481f3bea77c6
CRs-Fixed: 2502905
Get station stats API will be periodically called from upper layer so
in order to save power, instead of waiting for inactive timer to fire,
suspend right after everything is done.
Change-Id: I452ac3631d6799ffdcb1d09ff71afb2730b92b59
CRs-fixed: 2502391
Modify the nud tracking ini so that the driver
does a disconnection/roaming after NUD failure
is detected.
According to the ini specified, the driver would
either disconnect or do roaming.
Change-Id: I6af1c819322a702605d92ada735298a124127533
CRs-Fixed: 2497153
FW sends vdev stats on vdev down, current host
implementation does not process this event as host is
only processing the stats events for which stats are
requested.
On vdev down FW sends the last available vdev stats and
based on that host updates it's RSSI on disconnect.
With CP stats infrastructure host is not processing
this event and is not updating rssi on disconnect.
To resolve this issue, add support to get last available
vdev stats from cp stats component with the help of a
callback registration.
Change-Id: If0741281140509624f6fdda4a270d99e2f58b61a
CRs-Fixed: 2493965
Because newest firmware codes already been changed, the previous
coex configure command are invalid. Firmware need host driver
to enable WMI_SERVICE_THREE_WAY_COEX_CONFIG_LEGACY service during
wlan init. Add a new parameter "gThreeWayCoexConfigLegacyEnable" to
initial config file. If this parameter value is zero,set coex
priorities command will return error.
Change-Id: Ief1617e2ba5363e276c55135198613a0e54b71d5
CRs-Fixed: 2482734
Replace pre_cac_chan with pre_cac_freq and mon_chan
with mon_chan_freq in struct hdd_adapter.
Change-Id: I413ff83c244e1ebb7deaa2dec52df76b4b957f53
CRs-Fixed: 2496812
adapter->scan_block_work is workqueue, which may be scheduled after
driver is removed.
To fix this issue, flush the workqueue and clean up blocked scan
request.
Change-Id: I0e9cb1b3f2fdceb25ad3566766000b78e1bf0ca1
CRs-Fixed: 2500369
Featurize DHCP indication for SAP and disable it
for QCN7605 as this feature is broken for HL
Data Path.
Change-Id: If1db649131d887a2aab18461187403b4b9a2c5b4
CRs-Fixed: 2496032
1) freq_list value population:
Allocate memory for freq_list within tagCsrChannelInfo
whenever ChannelList is allocated for the same struct.
Populate channel frequencies into freq_list whenever
ChannelList is populated for the same struct.
Free the memory used by freq_list whenever ChannelList's
memory is to be freed for the same struct.
2) Special treatment for sme_rrm_send_scan_result:
To ease the freq_list population within function
sme_rrm_send_scan_result, a parameter(freq_list) has
been added into the parameter list of it.
Meanwhile, all callers of the same function have been
modified to pass freq_list to it.
3) Fix a number of camel cases detected by checkpatch.
Change-Id: I732b084d3e1edfc4f26e7ed44be1c6e826be8602
CRs-Fixed: 2496716
The change 2812433 needs revert it got merged with still some
pending comments.
Change-Id: I4555d60bf0c8cea1b3a812063ee24956b07c0d8b
CRs-Fixed: 2499426
NAN config param initialization from CFG component is done
during PSOC object created notification. But as per component
design it must be done at psoc open to avoid CFG component
not initialized case. Thus update nan component to reorganize
NAN cfg params init.
Change-Id: I9636b527b796202e55a57c28d604795a705de026
CRs-fixed: 2489286
Add channel frequency(freq) into struct hdd_mon_set_ch_info and
populate its value where channel in the same structure is
populated.
Remove a few camel cases detected by checkpatch.
Change-Id: I5f0d64a88c054476739bc06887bffd37238b10fc
CRs-Fixed: 2496707
For the latest chipsets because of architecture change the
lim session for monitor mode is not required but for the
older chipsets using the mainline the lim session has to be created.
If the session is not created the channel setting to capture
the packets on the monitor interface fails.
Create the monitor session in lim for older targets.
Change-Id: Ide44201e91c2d92cddff66f563898015f9e28ca7
CRs-Fixed: 2498775
Currently when driver gets a command to dump the
driver info, it allocates the memory and retrieves
the information in that allocated memory. Maximum data
that can be copied to user space buffer is equal to
one PAGE_SIZE. In the command driver gets the size of
the data which user space wants to read, minimum of the
user space requested size or one PAGE_SIZE of the data
is copied to user space buffer and current position of
the driver buffer till which the data is copied is
updated to user space is also updated.
Driver copies the retrieved information to the user
space buffer as explained above and updates the position
pointer to the user space. In the next request driver
expects from user space to request the remaining data
from the updated position in last request, once all the
data is copied to user space, driver frees internally
allocated memory.
In case if driver does not get the request to read
remaining data after first request, it does not free
the memory. Current handling of this memory is done
in init domain after stop modules, but since this
memory is allocated in active domain, driver should free
the memory in active domain.
Since with current implementation memory allocated in
active domain is not freed in active domain, memleak is
getting detected.
To resolve above issue, move mem cleanup logic for
driver dump info command from init domain to active domain in stop
modules.
Change-Id: Idb4f35f0a599ad55eebe13348b68562fa401fd7e
CRs-Fixed: 2489877
The bExplicitCfg bitmap in struct hdd_config was originally used to
track which INI items had been explicitly configured from the INI
file. But now that the INI processing is distributed this bitmap is no
longer used, so remove it.
Change-Id: I101ffa82b3309209cdc2eea954d1467b68b6138d
CRs-Fixed: 2496393
During con mode change the driver will perform pld idle shutdown
and restart and if the interface change timer is running which
results in duplicate of idle stop queueing.
To resolve this, add psoc idle timer stop during the con mode change.
Change-Id: I7befefd2cb996d6b3e0b4ee92ecb15e615d33e30
CRs-Fixed: 2491208
In hdd_set_reset_apf_offload, vdev_id is not assigned before
sending reset packet filter command.
Change-Id: If8c9297f19e19eba01b4415144304b9f744a5de9
CRs-Fixed: 2496035
Prepare to replace channel id with channel frequency of struct
bss_description, first cleanup reference of channel id of struct
bss_description in wlan_hdd_assoc.c wlan_hdd_cfg80211.c wlan_hdd_main.c
lim_assoc_utils.c lim_ft.c lim_process_sme_req_messages.c
lim_sme_req_utils.c rrm_api.c sme_api.c nan_datapath_api.c sme_rrm.c,
use channel frequency instead.
Change-Id: I980f74d77af97df2b2ade61250d44a606c76a7ef
CRs-Fixed: 2491488
Host fill netbuf with qtime instead of tsf. In function
"hdd_get_soctime_from_tsf64time", when Host check RX packet
tsf value less than last_target_global_tsf_time, it will
return error. Then, Host will the default value 0 to
upper layer.Sometimes, User will found some packets FW
recvTime is not increasing compared with last packets.
So modify it to calculate qtime from tsf all the time.
Change-Id: Icc53f22b4213fb46ff3bfc3e3df940cb28c632f5
CRs-Fixed: 2485600
Host need to fill netbuf with qtime instead of tsf.
This function already realized in Change-Id
"Ib19ac1411c4e17624c012f188297c9f2122642d2".
But it only support STATION RX mode. add the similar
action for SAP RX mode.
Change-Id: Idb3f9da5488b19db48e96258ecb4539b5af3c9a6
CRs-Fixed: 2483566
As per existing design, dp rx mic error information is
posted to HDD via SME. HDD inturn indicates the mic error
to supplicant.
Define new HDD callback hdd_rx_mic_error_ind for
rx mic error, registered through the CDP API
cdp_register_rx_mic_error_ind_handler. This will
enable datapath to directly post mic error info to HDD,
eliminating processing by corestack.
Change-Id: I6561dc5e66e7059c249c1eeeabdbf754989221d2
CRs-Fixed: 2488455
Issue:-
Sap does not restart when unsafe
channel event comes, due to the acs mode
flag not set though acs happened.
Scenario:-
Turn on STA on channel number 1.
Turn on SAP on 2.4ghz band.
Make the channel number unsafe.
Observation:-
Sap fails to restart.
Expectation:
Sap should restart on some other channel.
Fix:-
Set the flag before the driver returns the
best channel as the STA channel.
Change-Id: I2cf2f5d3096da04f3c43969b7405b81c743fe2e2
CRs-Fixed: 2492087
While processing vendor command: GET_PREFERRED_FREQ_LIST respective
handler __wlan_hdd_cfg80211_get_preferred_freq_list() do not validate
pcl_len received from policy_mgr_get_pcl() which can be zero when
current regulatory domain is ETSI13 based, gindoor_channel_support=0
and etsi13_srd_chan_in_master_mode=0.
If pcl_len is zero then invalid index is computed in
wlan_hdd_populate_weigh_pcl() when trying to access
chan_weights->weight_list[pcl_len - 1].
To fix this, add zero length check for pcl_len before accessing
weight_list[plc_len - 1].
Change-Id: Ie8bf52fe289634efc104ca674d70fcd1beb6c304
CRs-Fixed: 2492630
When wifi is turned off, system suspend might occur during the timer delay,
which would stop the timer and prevent wifi from being turned off, leading
to battery drain. To fix this issue, prevent the suspend and turn off the
wifi before allowing suspend to happen.
Change-Id: Id4fbb13f3ab350b4e2545f65e38d9baaba5ed7ab
CRs-Fixed: 2493487