When FISA aggregated flow is flushed to n/w stack, there
is a vdev_id comparison between the flow and the head skb.
If this vdev_id check fails, the packets are dropped.
In case of MLO link switch during the FISA flow aggregation,
the packets might be received on different vdev (belonging to
the same MLD). Hence the vdev_id comparison will fail when
there is a MLO link switch in between the flow aggregation.
Since both the vdevs belong to the same MLD, add a MLD addr
validation to mitigate the above mentioned issue.
Change-Id: I0328dccff3f08da87f55758b469d773b9ea1169b
CRs-Fixed: 3568987
Based on requirement for pcie_config INI, convert corresponding
INI boolean variable to unsigned variable.
Change-Id: Ia0045c35a36bafe77e457b95f72fa1db86d2f0d3
CRs-Fixed: 3571497
Currently in the function wlan_hdd_send_ll_stats_req, memory is
allocated to store mlo peer stats when WMI_LINK_STATS_ALL_PEER
stats event is received and freed after sending them to userspace.
But, if multiple WMI_LINK_STATS_ALL_PEER stats events are received then,
only the latest allocated memory is freed leading to a potential memory
leak. To avoid this issue, add a sanity check before allocating memory.
Change-Id: I0470a7b1951a4d134c752a63ee915490be4e066c
CRs-Fixed: 3574762
When wpa_supplicant sent tdls mgmt frame during sta disconnecting for NUD
failure, scheduler thread clear MLO flag of vdev0, in
wlan_key_get_link_vdev, wlan_vdev_mlme_is_mlo_vdev(vdev0) return true,
in wlan_key_put_link_vdev, wlan_vdev_mlme_is_mlo_vdev(vdev0) return false,
WLAN_OSIF_TDLS_ID vdev ref count is released in both
wlan_key_get_link_vdev and wlan_key_put_link_vdev, while WLAN_MLO_MGR_ID
vdev ref count isn't released, assert will happen.
To fix it, add check in os_if, if vdev not up, reject tdls frame to
avoid such race condition issue.
Change-Id: I90e60c95888cc63e57d0bd0b75c570d8d677cbaa
CRs-Fixed: 3572133
Add changes to send signed rssi value to user space as part
of the SAP big data stats command in disconnected case
to maintain uniformity with the connected case.
Change-Id: I8c48ff00ead7728db76ee73176bf82443dea4836
CRs-Fixed: 3567295
This change is to update the logic for mlo_link_info
iterator in wlan_hdd_mlo_link_add_pairwise_key.
Change-Id: I30d7c56c7f340fa44847e5f915f2b1ccdff60426
CRs-Fixed: 3573067
While populating peer channel list to firmware, the channel
is checked if the state is CHANNEL_STATE_DFS. But for indoor
channels also this state CHANNEL_STATE_DFS is set. So the
indoor channels are removed from tdls peer supported channels
in tdls_extract_peer_state_param().
Use wlan_reg_is_dfs_for_freq() API to check if the given peer
frequency is DFS or not.
Change-Id: Ia16e55f8d00ba2686187a2b08c67a1e4a63a3d4d
CRs-Fixed: 3565520
In existing design, get_station stats request is
not entertained right from roam start till roam
complete/abort.
In some roam invoke cases, FW would do back to
back partial and full scan if good candidates are
not available. Therefore, the station stats are not
collected for a long time ~7secs.
Instead of blocking the stats request through out the
roaming, block only when roam sync is in progress
which would prevent unnecessary delays in roam sync
processing.
Change-Id: I47567a81eca08a0daabbd4d490b349392e5cd505
CRs-Fixed: 3572625
Add support to dynamic disabling the TDLS.
Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_DISABLE
Change-Id: I1bbd00bacd81cdd3d8ef4a6b68fbe7908039228c
CRs-Fixed: 3562162
Currently if STA+SAP SCC on a 6 GHz channel is present and
host received SET_FCC_CHANNEL 0 command then host disables
all 6 GHz channels except for STA connected channel. If
SAP's bandwidth is greater than 20 MHz then kernel sends
stop_ap as SAP bonded channels are disabled.
To address this issue, do CSA to a non 6 GHz frequency.
Change-Id: I89edf3c862c5b02f0eb5865428bdbb0d43d07f85
CRs-Fixed: 3563476
Add support to dynamic enabling the TDLS.
Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_ENABLE
Change-Id: I3b9164ba04a4d9c23d7f580020966c222f8bd359
CRs-Fixed: 3562148
Add support to send whether currently TDLS is available or not.
Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS
Vendor attr: QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AVAILABLE
Also add support to get the TDLS number of active sessions
using below vendor attr.
Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS
Vendor attr: QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_NUM_SESSIONS
Change-Id: Ie9ad09de9593559c4d57599a9af58a95af99e60f
CRs-Fixed: 3554429
Add a check to distinguish 11BE draft 2.0 AP vs 3.0 AP
based on MSD params received in beacon/probe response rather
than assoc frame and if the params are present (draft 2.0),
then do not advertise EMLSR support in association request
as EMLSR mode will not be supported.
Change-Id: I5f3e9ce76dc634f4fea1422f0d8b9da3edbb0587
CRs-Fixed: 3560902
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs.
Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568463
Dynamic mac address update is a special case, where the
(sta)connection can change without the vdevs corresponding
to an interface. The tx/rx happens on the def_link of the
dp_intf, which does not get reset in case of dynamic mac
addr update. Due to this, all the tx of packets might be
attempted on an invalid dp_link, leading to drop of all
the packets queued for TX.
Add support to reset the def_link of an interface during
dynamic mac address update.
Change-Id: I1e87c083f39b56525f69c225117bcce538931dbb
CRs-Fixed: 3570440
Revert core/mac/src/pe/lim/lim_prop_exts_utils.c done as part of
commit - 29fa4e5ac8.
This change is causing roaming failure and power leaks since VDEV
channel width value is read by FW.
Change-Id: I1712522d11a1ee1262c3a6d35dea3a1238812548
CRs-Fixed: 3556513
dp_tx_rx_collect_connectivity_stats_info expects dp_link
handle as an argument. Currently many of the direct callers
of this function is passing dp_intf as an argument to this func.
Fix this by passing dp_link as an argument to the function
dp_tx_rx_collect_connectivity_stats_info.
Change-Id: Icfedc1cc721de4ad0b536967dc32a6af53b86e9e
CRs-Fixed: 3571037
Since driver support special roaming and common roaming,
support common BTM roaming update to userspace, and we
can fetch the info by vendor_cmd_tool.
Change-Id: I753ded47d650ae4c9c579265485f081c16581c25
CRs-Fixed: 3568450
Currently in the function hdd_send_roam_scan_channel_freq_list_to_sme,
the num_chan variable is declared as uint8_t and is incremented
for each nested attribute PARAM_SCAN_FREQ_LIST.
If the number of attributes sent by userspace is more than max value
of uint8_t, then an integer overflow occurs.
To avoid this issue, add a sanity check to see if num_chan has reached
SIR_MAX_SUPPORTED_CHANNEL_LIST before incrementing variable.
Change-Id: I601a73a118eb65ebb8575f6ed5ed1f29d915f59e
CRs-Fixed: 3568577
Pointer 'driver_sync' returned from call to function
'__osif_driver_sync_trans_start' may be NULL and will be dereferenced.
CRs-Fixed: 3566149
Change-Id: Ibf75390bcdf246f2f96f331cb6123b78aea33203
During VDEV creation, vdev parameter "DISABLE_2G_TWT"
is populated in accordance to the value of ini
"enable_twt_24ghz" in order to indicate FW
to support TWT for 2.4GHz band.
Change-Id: I610bbaad3c5d12a8303939488ed2d7486dda404f
CRs-Fixed: 3560288
Currently datapath uses the vdev provided by UMAC for
tx of any packet. With the single-netdev-multi-vdev
model, there are chances that the vdev, in MLO case,
selected for packet TX in UMAC may not be the def_link
which datapath expects to use for tx/rx.
Hence, to mitigate, this issue, datapath will not use
the vdev provided by UMAC, but instead select a dp_link,
inside the dp_component, for tx/rx
Change-Id: I5ff4a79365b3426e1bcc6d4cac31a44058ee18db
CRs-Fixed: 3568989
This change is to update mlo manager mac
address when the station adapter is coming up.
Change-Id: Ie80683043922fdac7807c7b4ae2fd3605a41e256
CRs-Fixed: 3570015
In the api wlan_hdd_add_vlan(), key index value check
is not present which can cause buffer overflow.
Add keyindex check in the api wlan_hdd_vlan_sap()
in order to prevent the buffer overflow.
Change-Id: I87c606eed6b4e169d6e059cd5d06342c2bc0adaf
CRs-Fixed: 3560531
Currently the opaque context passed to txrx_ops handlers
is incorrectly typecasted to dp_intf. The context being passed
is dp_link handle. This leads to unwanted memory access.
Fix this by correctly typecasting the context passed to
all the txrx_ops handlers as dp_link handle.
Change-Id: I587b12056625bb68e86ecb54118bb2f6bfa62bd9
CRs-Fixed: 3569531
Current code does not have logs when a
netdevice is unregistered. Fix this by
adding a log when unregistering a
netdevice
Change-Id: I5f811093e16efcb6e286d9c0839738603eef758a
CRs-Fixed: 3564014
For emulation builds, remove ps timer stop and
reduce timeout to 11ms, allowing BMPS for
emulation.
Change-Id: Ib633f716ce4bd792a12a08652abe0eb1d36a5750
CRs-Fixed: 3526207
Currently dp_rx_pkt_thread_enqueue_cbk passed dp_intf to
dp_rx_packet_cbk, though it expects the caller to pass
dp_link context. This leads to an invalid memory access
due to incorrect typecasting.
Fix this by passing the correct dp_link context to
dp_rx_packet_cbk.
Change-Id: If37fd18d49a6d5464e01c07160a1be612e564ffb
CRs-Fixed: 3568233
When MLO AP start, lim_create_peer_idxpool_legacy isn't called, so
gpLimPeerIdxpool in pe session keeps NULL. When AP do channel switch,
MLO concurrency check failed for current AP not ignored, AP MLO flag is
cleared. When Ref sta disconnect, access gpLimPeerIdxpool to free peer
id, assert happens.
To fix it, when AP restart, ignore current AP when check MLO concurrency.
Change-Id: I3625dcd4f8c1a5020588311706faa1eb70ae8e9d
CRs-Fixed: 3548564
Support to strip WAPI IE from additional IEs for
beacon frame. Otherwise, it will have duplicated
WAPI IE, which mean one is from rsnIE and the other
is from probeRespBCNData_buff.
Change-Id: Id9708c81445fbb88e5ceb79698bff6bd02f931df
CRs-Fixed: 3562798