Currently, in twt get status command, params->peer_mac is used
check if twt setup exists for this peer mac, but if the input
is broadcast dialog id then params->peer_mac gets updated to
broadcast mac address and twt setup done check fails.
Fix is to use local peer mac address for twt setup check.
Change-Id: Iee98091bc86cfd48471b07464cda39666dd17ee3
CRs-Fixed: 3138601
Add MLO support in Authentication frames for ML STA and SAP,
as per Draft P802.11be_D1.3
Change-Id: Ic2c5814b7f8bb1938d9e8bb6681d92085f7f55ef
CRs-Fixed: 3136984
Add MLO IE in Authentication frame for usage in
dot11f_unpack_authentication API.
Change-Id: I5fd7297de233970ee5e7fd893539a8f80cbe6461
CRs-Fixed: 3142275
Register callback to classify critical packets with DP layer during
cdp_vdev_register. This callback is needed to classify critical packets
during the forwarding path for SAP vdev.
Change-Id: I5f109c7a4bd37e2544d8e3bbd410147a8d6963c8
CRs-Fixed: 3114436
Currently for softap case in hdd_softap_register_sta, we are calling
cdp_vdev_register for every STA. This is not desirable, since
cdp_vdev_register needs to be called only once for a vdev. Similarly
netif queues needs to be enabled only once when softap comes up.
Call cdp_vdev_register and wlan_hdd_netif_queue_control only once in
hdd_softap_register_sta when broadcast STA is registered.
Change-Id: I63b81f5ab994bc001e6c281f12a0979734ec537b
CRs-Fixed: 3114436
Currently there is a overlap of functionality between
hdd_wmm_classify_pkt and wlan_hdd_classify_pkt.
Move most functionality in hdd_wmm_classify_pkt which gets called during
hdd_select_queue.
Change-Id: I1eb735ecd2dfd7b6df6e78a134e7d16ee396b0f0
CRs-Fixed: 3114436
On 11be MLO disabled platforms,
- Add checks in mlo roaming api's for to avoid NULL access.
- Add empty inline function definiations to be used
when 11be MLO flag disabled.
Change-Id: Idc906164279e74530dcf8bdc670464be8ce8c57e
CRs-Fixed: 3141792
Add check if sap_ctx->chan_freq_before_switch_band is valid
active channel for that country. If yes, the chan_freq_before_switch_band
channel can be used for new CC, otherwise host should skip the
chan_freq_before_switch_band.
Change-Id: I4ac2fee1dd584abba0708c2b7ef0826f384acb2d
CRs-Fixed: 3136454
optimize logs in one line for func sch_set_fixed_beacon_fields,
to avoid printing in loop
Change-Id: I8cb0bf44bcfec811387cfc4f682d1d8a94b9a12d
CRs-Fixed: 3134768
Currently, for DBS HW fw goes off channel for
400 ms in case of NDP and 450 ms in case of NAN
due to which beacon is not sent in DW window.
Fix is to Limit max ROC duration to 350 ms in case
of NAN and NDI for DBS hardware to improve NDP
setup time.
Change-Id: Iaf5c90a386d2742cdc8f24305756a3691ac70431
CRs-Fixed: 3141393
In function wlan_hdd_populate_weigh_pcl weight is populated
to 0 only if weighed_valid_list is 0 otherwise weight of
non-pcl entries will be populated as 20 less than weight
of last pcl entry but weighed_valid_list is set to 1 in
policy_mgr_get_valid_chan_weights. So, non-pcl entries
are also sent to upper layer.
Fix is to change weighed_valid_list to 0,
if there is existing p2p connection.
Change-Id: Ic0d86021c00fd95e5bc20eeabea56e2a69658599
CRs-Fixed: 3140467
The tx_stats array length num_entries can't be more than
param_buf->num_tx_stats from fw.
Otherwies out-of-bounds will happen when read wmi_tx_stats.
Change-Id: I7ab3c7cc7baef6d903ba6301622bd67efe52cebe
CRs-Fixed: 3104318
For Kernel 5.12+ in order to be in line with cfg80211 changes
in upstream code, use cfg80211_register_netdevice() and
cfg80211_unregister_netdevice() when request to register device is
coming from add virtual interface.
Change-Id: Ibc11d405ab8b06e170bcb261970bc4ccccafe291
CRs-Fixed: 3133264
Send service from wmi_ndp_indication_event_id to the userspace
via the new vendor attribute QCA_WLAN_VENDOR_ATTR_NDP_SERVICE_ID
as part of ndp indication.
Change-Id: I90b4540d5f3c72bbb7e8b542406561daf2a7a869
CRs-fixed: 3128874
Previously the driver regstate(registration state) is changed in
the driver because of the misintepretation of the code in free_netdev.
Remove the driver regstate change which will help in false warning
from the dev_put and device would be freed freely.
Change-Id: Iccb70dd2ecbf9c7dde390f9d728728e6f6af968f
CRs-Fixed: 3140423
In SAP mode, a preauth node is added to the preauth list when
assoc rejection happens due to some reason (e.g. blacklisting
the station BSSID). But when station tries SAE authentication,
host driver doesn't add/update the entry in preauth node list
as a node with same mac address is present in the list.
Host driver relies on the flag is_sae_authenticated to decide
whether to proceed with association or go for PMKID validation.
is_sae_authenticated is set to true only when SAE authentication
is completed and the node in preauth list has type as SAE.
But the preauth node added as part of assoc reject doesn't have
this info correct, which is disallows association as
is_sae_authenticated is not set. Fixing this here is
not a right way as the auth state also to be updated
to eLIM_MLM_WT_SAE_AUTH_STATE when first SAE auth frame
is received.
So, delete the existing preauth node and create a new one when
the first SAE auth frame is received to avoid stale entries.
Change-Id: I0acd72f960ba1de2a656b55a9805561322dfffe9
CRs-Fixed: 3135389
In P2P connect process, GO and GC send deauth/disassoc at the
end of WPS. GO send disassoc and free station info. GO receive
deauth from GC, and send cmd WLAN_SER_CMD_GET_DISCONNECT_STATS
to get disconnect stats.
If GO send deauth and free peer info before receive deauth
from GC. Wlan_objmgr_get_peer return null, and peer is null.
Cmd of WLAN_SER_CMD_GET_DISCONNECT_STATS will never be
released since get_peer_rssi_cb will never be called.
And cmd will timeout, which is not expected.
If we call get_peer_rssi_cb without check, cmd will release.
Also csr_get_peer_rssi_cb will check peer is null or not.
Change-Id: I10b496526e259711a4dd7a91b7388ac79bb54fef
CRs-Fixed: 3119513
Per requirement, some user cases don't permit multi SAP started on
the same band even if SCC is used, add INI to support the requirement.
Change-Id: Icf015761a5440171bd81424fac74af9b1433cd94
CRs-Fixed: 3136335
Currently, unregister MLO interfaces is being called only for STA mode.
This may cause issue when there is a change interface in between from
STA to SAP and driver unload after that. In this case STA MLO
interfaces won't be unregistered.
To resolve this, unregister MLO interfaces both for STA and SAP modes.
Change-Id: Ia1020f08873edc6e29ae20df7368da10535a9de5
CRs-Fixed: 3137421
Advertise Rx AMSDU in AMPDU support in addba response only
if tdls peer is present and it supports he caps.
Change-Id: I0e28a12c13b07ef30f57e604d0ab05e22832e2c7
CRs-Fixed: 3104771
optimize logs in one line for func lim_set_active_edca_params,
to avoid printing in loop
Change-Id: I60e6d4265f97037d677adef9bdd4c9bf547acc4d
CRs-Fixed: 3134765
If STA is active on 5G DFS channel, SAP CAC duration will
be set to zero during starting. This causes the FW indicates
CAC completion event very shortly after vdev start request.
That is before SAP fsm processes BSS start success event.
SAP fsm is still in SAP_STARTING state. In this state,
the sap_cac_end_notify will only indicate the CAC end event
to hostapd. hostapd will be pending on CAC start event from
driver.
Fix by skip the CAC end event if CAC duration time is zero,
then the sap fsm will indicate CAC start/end event when
BSS start event comes up later.
Change-Id: Ib4c2ada8754bd08c0567ce9009ebec2349098b75
CRs-Fixed: 3138466
Add include guard for this file to fix compile error
'error: redefinition of lim_increase_fils_sequence_number'.
Change-Id: I85858525e79e6c29d1afbe2db7bb90a70071b4bc
CRs-Fixed: 3138791
If the connection manager command is moved from pending to active
queue after an SME initiated active command e.g SAP peer
disconnect, it's already holding the SME lock and trying to
acquire the connection manager lock.
Now if in another thread, the connection manager process is
already in progress and tries to get the SME lock,
the driver ends up in a deadlock.
Thus remove the SME global lock from the APIs called from
HDD disconnect handlers.
Change-Id: Ia1e9d4480935cb8954eeb02bf3d845dce4b29f8f
CRs-Fixed: 3139097
When host sends TWT disable command to firmware, send reason code
also as part of it. So that firmware will check and take the
following action:
a. If host sends disable due SCC/MCC concurrency then firmware
will teardown the existing TWT session and send the teardown
reason code as concurrency to host.
b. If it's for other reason then it will take action based on
that.
Change-Id: I66b3d10e7d54319c3c6dcad57c78949bcdd11a26
CRs-Fixed: 3098864
In TWT component, avoid resetting twt_command_in_progress
twice in case of twt setup response.
Change-Id: I13f46530616bb9608208205051aba91bed7f0dda
CRs-Fixed: 3138102
Ppdu_stats are received from firmware in softirq context.
While inserting the ppdu_stats into a qdf list, a spinlock
is held for its access, same qdf list is accessed by mon
thread using spinlock. There can be a scenario in which
mon_thread held spinlock for accessing qdf_list and is
interrupted by softirq in which ppdu_stats are received.
This leads to softirq spinning for lock forever leading
to deadlock.
To address this issue, use spin_lock_bh instead of spin_lock.
Also reduce the time for which lock is taken to access the list
for insertion and removal of ppdu_stats.
Change-Id: I52171fe3c1d22a1e9d1ab36daac54d8fa2b96020
CRs-Fixed: 3136901