Set peer map v2 in the target resource config only when
the wds mode is enabled in the ini "wds_mode".
CRs-Fixed: 2958287
Change-Id: Ifbedc8c29e8c6278875ad13c6fe6b0fb557feece
Existing INI disable_4way_hs_offload is defined as a boolean
that controls the EAPOL Handshake to be offloaded to Firmware or
Not. There is no way to specify the EAPOL offload per AKM.
Hence extended the support of EAPOL handshake offload to firmware
per AKM by converting this INI to a bitmap integer.
With ini value as 0 by default Firmware takes care of 4-way HS
during roam for all AKMs except for SAE and OWE. If
this ini value is 1 then Host takes care of EAPOL for all AKMs.
Having the backward compatibility, added a new value to ini.
If this ini value is set to 2 and also if the SAE EAPOL offload
service bit is set by Firmware then the behavior is same as ini
with 0 except that Firmware takes care of 4-way HS for SAE roam
as well. And for OWE it is still handled by supplicant.
To achieve this, new roam offload flag is introduced to indicate
Firmware about SAE roam EAPOL offload, So that in Roam sync
indication Firmware will inform the status as connected but not
authenticated so that supplicant can take care of 4-way EAPOL HS.
Change-Id: I8b65a1768fad91fac7e427712d3ccf4586176f5f
CRs-Fixed: 2955029
Currently when host receives power stats from fw, before
processing these stats it check for the hdd callback and
processes these stats only if hdd callback is registered.
This callback is checked in
wma_unified_power_debug_stats_event_handler function before
processing of the fw event and outside of any lock. After
processing stats, this hdd cb is invoked, there is an issue
with this approach that while processing these stats if timeout
happens in hdd then hdd sets its callback as NULL and now after
processing stats wma handler invokes this hdd cb which is already
NULL, leading to null pointer dereference.
To avoid above issue, add sme callback and move null check for
hdd cb and call to hdd cb inside sme lock which is the same lock
used while setting hdd cb to null on timeout.
Change-Id: I2203083a17ca3404c5c5af98ddc48ba127e6aee2
CRs-Fixed: 2950633
The peer map v2 set in the target resource config
is sent to FW via WMI INIT CMD.
This configuration will enable index based AST
search in WDS mode.
CRs-Fixed: 2951231
Change-Id: If1c47c710832ddd46d99bffc66fc09e4fe76eab1
wma_needShutdown related code is now obselete, during the cds_preenable
failure, this is obselete code is being invoked which is setting
wma->needShutdown. If the same is set the wma_close will not be
inokved resulting in the reference leak of of pdev object.
Remove obselete wma_needShutdown code.
Change-Id: Ia1463c9197593165eb5844e154f78fe3fe278fbd
CRs-Fixed: 2947133
Add a sanity check to validate the Tx chainmask value
sent from the user space for each HW mode.
Change-Id: I2705efe20fcb13bf8343088ceecb4207e2562789
CRs-Fixed: 2943363
wma_send_peer_assoc() calls wma_unified_peer_state_update() which
always sets the peer state as AUTH irrespective of peer state.
Remove wma_unified_peer_state_update() from wma_send_peer_assoc()
to handle peer state.
Change-Id: I4a887acbc8018653c34b927636cce7cc05323838
CRs-Fixed: 2888808
As part of 320MHz bandwidth support for 11BE, add 320MHz bandwidth
in WMA layer, where in particular set bw_320 to 1 in wma_send_peer_assoc
and populate ch_width to 320MHz in wma_update_channel_list.
Change-Id: I61793add8d86b0557bd4eed78233860e6ade1c18
CRs-Fixed: 2935851
In LFR-2.0 roaming case, wma_add_peer() is called which
sends the peer create command to firmware, but in the
caller peer count is not incremented in success case.
This leads to peer deletion failure during disconnection.
Increment peer count in LFR-2.0 roaming case.
Change-Id: I0b17217615e104fe93f622555f04c6a85e279d6d
CRs-Fixed: 2929615
Host need set tx_aggr_size_disable bit when host tx aggregation is
unsupported.
Change-Id: I0c86e74f6447f401d24660e1291abf969b1abbe6
CRs-Fixed: 2931245
Only send the VHT TX beamforming capability if firmware has set the
support bit. This helps ensure backward compatibility for older
products.
Change-Id: Ia5830c9f378e3f0ddc83c8019d5168a270ad6f69
CRs-fixed: 2933687
Currently below implementation is missing in the driver. So driver
is failing to associate in 11be. Add this implementation to support
11be association in the driver
- Filling EHT IEs in probe response
- Sending EHT mcs capabilities while creating the peer
- Fix compilation issues when 11BE feature is enabled
- Add the the 320MHZ to wma_chan_phy_mode
Change-Id: Ib535db413d5578840feed7fd18bb00e5e28cfb6f
CRs-Fixed: 2926471
In case of TDLS peer connected if SSR happen, LIM try to flush
TDLS peer with del_sta->respReqd as false.
With respReqd false del_sta is freed in the switch case, but
is used outside the switch case, leading to use after free.
Fix is to use the local vdev_id instead of del_sta->smesessionId.
Change-Id: I7e08733cf42ef619b3fa0d6726ee1acc2012c6a4
CRs-Fixed: 2929448
As part of regulatory cleanup, wlan_freq_to_chan() is removed.
Use wlan_reg_freq_to_chan() instead of wlan_freq_to_chan()
Change-Id: I18d7996a0b117de90cd32f2208702d01655ceeb9
CRs-Fixed: 2926114
Update the wma structures with the eht capabilities received
from the firmware.
Change-Id: If571ab857e1f71b972655d9d48902b28e3974b1e
CRs-Fixed: 2911863
There is excessive logging in wma_wake_event_packet that does not
add much value in debugging. Hence, remove it entirely from the code.
Change-Id: If0ea6d9ea33d741f734ccf14ad3d1f1b4e261dd0
CRs-Fixed: 2923733
If STA connection is in 11b mode and TDLS connect in HE, the
phymoe is not calculated properly.
Handle the HE mode in 11b network type as well.
Change-Id: I0ddafa0b4be8d6eab02c66be7c0f909c2d968918
CRs-Fixed: 2923182
The global aggregation size is only set to firmware once
when vdev is created. And the size may be modified
dynamically for a specified AP during association, according
to the OUI based aggregation size configured by ini
'cfg_tx_iot_aggr'.
If global AMSDU size is 0, considering the case as below:
1. connect to AP-1 which is included in 'cfg_tx_iot_aggr',
the AMSDU size will be set to the specifed value.
2. connect to AP-2 which is NOT in 'cfg_tx_iot_aggr',
it doesn't reset the AMSDU size to 0, and firmware is
still using the value set in step #1, it's wrong.
To fix this issue, set the global size for each vdev start,
as init values for each connection.
Change-Id: I790d580fc5762e6816e840ba5484b3cd758334df
CRs-Fixed: 2918046
HSP doesn't support TX_AGGREGATION_SIZE ini, need disable it to avoid
confusing.
Change-Id: I9e49ad5218f913f116cf4472f768f572740f14df
CRs-Fixed: 2918796
The delay before vdev stop is a global config,
no need to set for each interface separately.
Change-Id: I5760cf083a6749bb82cc88635a947f1d18308dfe
CRs-Fixed: 2904748
offload igmp feature to fw in case of suspended state
to avoid high power consumption.
Change-Id: I05fbf23dc2836f8f5dc6e2f45b35bf2d30c39790
CRs-Fixed: 2907644
Set nan_separate_iface_support flag in FTM mode to avoid
create NAN vdev in FTM mode. This helps in FTM mode test cases
where max supported vdevs are used.
Change-Id: Ia628655a87505db787043ef29dd18d259052b521
CRs-Fixed: 2888703
As part of WiFi ini clean-up FR, the ini parameter
gDataInactivityTimeout, is identified as it is no longer used
and hence it can be deprecated.
Change-Id: Ic01ba8934058cf2fb3bec042f11b01ea70ef7a3f
CRs-Fixed: 2896042
Add change to support roam ho fail and roam invoke fail
indication in connection manager.
Change-Id: I8e4fed2ca4b9c6e95da86b0c37e39da8f2bc4953
CRs-Fixed: 2906319
This function call is not needed because the capabilities
are being sent post vdev start correctly. The call here sends
the capabilities incorrectly at a later time so the good
values are overwritten.
This reverts change I32af660724cfaecfe59da153fea9f98d24b0d4cb.
Change-Id: Ie57a598f1055ee6a3d5a5f9cd353724dc620ab1d
CRs-fixed: 2905402
when the worker thread executes wma_data_tx_ack_work_handler()
as part of driver load/unload, driver frees ack_work but dosent
reset to NULL which results to double memory free in wma_stop()
The fix is to make sure to flush this work and reset to NULL
before the wma_handle gets freed.
Change-Id: I4f56db87256b0f8828c00a2e70158cd76afe1ee0
CRs-Fixed: 2895664
Presently host prepares and fills wma req in wma_hold_req_queue
after sending pdev_set_dual_mac command to FW. Host uses same wma
request to process response from firmware. If host gets FW response
before filling wma request to wma_hold_req_queue, host fails to
process pdev_set_dual_mac cmd response. And thus the wma request
queued after sending pdev_set_dual_mac command gets timeout.
Hence prepare and fill wma req in wma_hold_req_queue before sending
pdev_set_dual_mac command to firmware.
Problem scenario:
1) Host send pdev_set_dual_mac cmd to fw in kworker thread and then
gets suspend before filling wma req into wma_hold_req_queue.
2) Host gets pdev_set_dual_mac cmd response from fw and schedular
thread runs to process response where it doesn't get wma request.
3) Now kworker thread gets scheduled and fill wma req and gets
timed out.
Change-Id: I4d32e4459c32843c8fdb9a48262b5a55eecf2cbd
CRs-Fixed: 2902212
Remove all of the conditional compilation for pmf since this
feature is mandatory for future scope from protocol point
of view.
Change-Id: Id3a2127e9ecb343ad2a0354dcbc331c22167d7fb
CRs-Fixed: 2852630
Currently peer create response support is added for connect path
but in LFR-2.0 case also peer create response received is
processed and lim_post_join_set_link_state_callback() is called
leading to sending vdev start again.
Call the API to fill peer create wma request only for initial
connection.
Change-Id: I24140efd5541f7ed4aa3cef9efebf5a729846902
CRs-Fixed: 2856636
Currently multiple ini is available for setting the broadcast
TWT requestor and responder configuration.
Deprecate "bcast_twt" legacy ini and also don't consider
legacy service capability WMI_SERVICE_BROADCAST_TWT.
So below is the service capability values combination
advertised by firmware:
new fw:
bcast_req bcast_resp legacy
0 0 0 -> disable bcast
0 1 0
1 0 0
1 1 1
old fw:
0 0 1 -> enable TWT
Also change the default value of "twt_bcast_req_resp_config" ini
to 1.
Change-Id: Ic9af296b0efffc8f76f647b5830183867e0adf57
CRs-Fixed: 2873360
Host need to print BTM resp TLV info (wmi_roam_btm_response_info)
only when trigger reason is BTM or WTC_BTM. As for other roam
triggers this TLV contains zeros, so host should not print.
Change-Id: Ic76a1b88b9e641745420c372b275392e86d4ba35
CRs-Fixed: 2884639
Currently, the code is not sending the Tx beamforming capability to FW
in the case of NAN. Add this call to support beamforming in NAN mode.
Change-Id: I32af660724cfaecfe59da153fea9f98d24b0d4cb
CRs-fixed: 2889614
Currently, WoW wakeup host event is handled in tasklet context and
it is taking more than 800ms to execute. This is due to excessive
logging to the console from the tasklet. As a result of this, IRQs
are getting blocked during this tasklet execution.
To avoid this, add a sysfs entry to enable/disable console logging
from host wakeup event based on requirement.
Change-Id: If91a8bd5f783f358dabf9dcf46bf4c50d05d7909
CRs-Fixed: 2881972
While processing the roam synch indication reassoc response frame,
the new roamed peer object is not created. So call to
mlme_set_twt_peer_capabilities() to update the new peer capabilities
will fail with null peer object for new bssid. So after roaming,
update the peer TWT capabilities once the new peer object is
created.
Update peer TWT capabilities to new peer object after roaming to
avoid invalid peer capabilities.
Change-Id: Ic37bd4d96bf122b2ec3a60c1ae41650a672b9020
CRs-Fixed: 2870589