Driver tries to fetch BSS info from kernel to update
connect results and at the same time updates HDD/OSIF
of the current link's BSSID and link ID.
OSIF/HDD will not be updated, if BSS info is not found
in kernel. This will leave MLO manager and OSIF/HDD to
go out-of-sync.
This can later lead to link switch failure as HDD is
not having all link's information.
To keep MLO manager and OSIF/HDD in sync, always update
OSIF/HDD even if BSS info fetch from kernel fails.
Change-Id: Ie2e67317256cc2d9edaa7663d3902b63a45cbaaa
CRs-Fixed: 3729709
Introduce new event type to notify userspace about FW
pagefault. Use this new vendor subcommand to send
pagefault address and count of pagefault to userspace.
Change-Id: I330675b194a0f220cc627a0722494ba36a0def61
CRs-Fixed: 3713819
Currently, Host driver is updating partner bssid to kernel
based on number of link. In some cases number of link may be zero
leading to not updating partner link bssid to kernel.
This change is to eliminate number of link check for updating
partner link BSSID to kernel.
Change-Id: I2e2704aeaea0db41c4d82792808cc8765290cc7c
CRs-Fixed: 3707662
Currently, CFG80211_SINGLE_NETDEV_MULTI_LINK_SUPPORT is enabled based on
__ANDROID_COMMON_KERNEL__ and kernel version greater than equal to 5.15.
Enable it for above condition or if kernel version is greater than or
equal to 6.6.
Change-Id: I12ae6bf116e37999c935012485651bfadf8b9b2a
CRs-Fixed: 3681611
In roam_auth vendor event sent to userspace after roaming, the
QCA_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR attribute should
not be filled for any of the FT AKMs.
But currently its filled for below FT AKMs:
WLAN_CRYPTO_KEY_MGMT_FT_PSK
WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA256
WLAN_CRYPTO_KEY_MGMT_FT_FILS_SHA384
WLAN_CRYPTO_KEY_MGMT_FT_PSK_SHA384
This causes the GTK M1 frame received at the supplicant
to be dropped since EAPOL Key replay counter didn't increase
for PSK connection.
So disconnection occurs due to GTK handshake failure.
So don't fill the key replay counter attribute for all the
FT AKMs.
CRs-Fixed: 3674872
Change-Id: I34f88a8c8e8259a701b553284d492fe31597bea3
Add a new QCA subcommand QCA_NL80211_VENDOR_SUBCMD_REGULATORY_TPC_INFO
and related attributes qca_wlan_vendor_attr_tpc_links,
qca_wlan_vendor_attr_tpc definition to query transmit power information
on STA interface from the driver for a connected AP.
The information includes regulatory max transmit power limit, AP local
power constraint advertised from AP's Beacon and Probe Response frames.
For PSD power mode, the information includes PSD power levels for each
subchannel of operating bandwidth. The information is driver calculated
power limits based on current regulatory domain, AP local power
constraint and other IEs. The information will be set to target. Target
will decide final TX power based on this and chip specific power
conformance test limits (CTL), and SAR limits.
Change-Id: I196640cdd9e6454b040abb80b23d380c517ac118
CRs-Fixed: 3688242
This is a valid scenario in case of WEP, where-in the
keys are passed by the user space during the connect
request but since we did not connect yet, so we do not know
the peer address yet.
Change-Id: I2284d778d4813c1fae81db6db4257ef965730ebc
CRs-Fixed: 3668405
Implement a locking mechanism for retrieving and
storing crypto keys. Currently, due to race condition,
Host driver is fetching information in one thread while
simultaneously writing key information in another thread,
resulting in synchronization issues.
This change is to add lock mechanism while reading and writing
crypto keys.
Change-Id: I156b619cf7c3c052ad3122a6f808d732fb5e4f51
CRs-Fixed: 3669552
Currently the documentation for
QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINK_ID indicates it is only
for use inside nest attribute QCA_WLAN_VENDOR_ATTR_CONFIG_MLO_LINKS.
Update the documentation to allow it to be used
outside that nest as well.
Change-Id: I3bd13124661a97b6abf8b01553fb126470b9097a
CRs-Fixed: 3658057
Currently the ini "enable_responder_11az_support" is a boolean value
and applicable for enabling all the RSTA operations- 11az TB and NTB
ranging. Change the usage of existing ini "enable_responder_11az_support"
into a bitmap as below:
BIT 0 - 11az NTB
BIT 1 - 11az TB
Set the wiphy ext caps based on the bitmap values
this change to enable TB/NTB ranging as per user config
Change-Id: I97034677e6ed6840d8d9403b32b823c318a17634
CRs-Fixed: 3640571
Changes to fix the compilation error seen with kernel
version 6.5-rc3 backports. WEP KEYS support is removed
in this kernel, hence handle the same.
CRs-Fixed: 3623998
Change-Id: Ibf8423351eb4645f8d8a4a94bbe249fe96971287
wlan_hdd_object_manager.h head file was added by mistake, remove it
from wlan_cfg80211_afc.c.
Change-Id: I4747a494d4a35e9b2915676e50e1e4e8559d7486
CRs-Fixed: 3640409
Scenario: Turn on and off XPAN multiple times and in between
of this, bring all interface down.
When XPAN gets turned on, it will run ACS algorithm either on
new scan results or previous scan results which are having
last_scan_ageout_time less than 30sec to select the best
channel. If multiple times ACS request comes then driver should
select the same previous channel if it's scan time is less than
30sec. But in this case, driver was selecting different channel
when all channels were recently scanned.
This is because, in some scenario, the number of scan entries
was becoming 0 which causes ACS to select new channel even the
previous selected channel were recently scanned.
Reason for becoming number of scan entries as 0 is when all
interface goes down, stop modules will get call which results
to flush out the psoc. As part of psoc flush out, it will remove
all scan entries as well. But driver is not resetting the
last_scan_ageout_time when no scan entries are present. Hence,
it will not for new scan again and later all channels were having
same score after applying ACS logic. This led to select first
from scanned list.
As part of fix, reset the last_scan_ageout_time when no scan
entries are present.
Change-Id: I8e021ecf22047661076e11302998a42c029f8b37
CRs-Fixed: 3625075
Support to send notification from host to user-space to notify
the completion of ML reconfiguration event to bring down a vap.
Change-Id: I35a8895f6de2970af339dd8b82177ce28ca56d95
CRs-Fixed: 3615539
Add QCA vendor attributes to indicate various MLO capabilities supported
by the WLAN driver to userspace. These capabilities are usually reported
by the firmware during the initial bootup handshake with the driver.
Change-Id: If4b18e0a02623a7983b025e69094a1b8736fb429
CRs-Fixed: 3635733
A warning seen in cfg80211_ch_switch_notify() for the kernel version
5.4.213. The reason is cfg80211_update_current_bss() is called for
kernel version 5.4.0.
To fix this issue, call cfg80211_update_current_bss() for the kernel
version greater than 5.4.0 and less than 6.0.0 kernel.
Change-Id: Ic131bfe3661556b836df6ba7566e8e9abc4deba5
CRs-Fixed: 3637354
wdev->current_bss is not updated for a non-assoc link STA vdevs.
As a result, a WARN_ON error is seen in cfg80211_ch_switch_notify()
when it’s called for non-assoc link.
To resolve this, update the wdev->current_bss for non-assoc links
as part of connection and clean up this as part of disconnection.
Change-Id: I5020200fb927dd72d2e1bf0ed73e7a5750897619
CRs-Fixed: 3618438
Define a new QCA vendor attribute to configure traffic
shaping policy applied during coex scenarios.
Subcmd is QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION
Change-Id: I42f6ffb20156fc7e7ecbceead825691a94c4fe9d
CRs-Fixed: 3625243
In the MLO-MBSSID test, STA can request information of
non-Tx BSS through Tx BSS by configuring non-Tx BSS MLD
ID within the ML probe request that is invoked as part
of scan request. Add support to configure MLD ID in
scan start params to FW.
Change-Id: I4a6debf6c3ec830fbe3aee1d3aa60ad7218cbcd6
CRs-Fixed: 3591596
Set NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA in wiphy ext feature
flag to allow random TA to be used with authentication and
deauthentication frames when MAC secured or MAC_PHY secured ranging is
supported.
Change-Id: I96d1026daad4ffca271aed8c9aa09ff422573209
CRs-Fixed: 3617665
Once roaming is complete, the osif link info for Assoc vdev
is not updated, resulting in link switch on assoc vdev failure
after roaming.
Update OSIF link info for assoc vdev after roaming. Also clear
the OSIF link info upon roaming from multi link AP to single
link AP
Change-Id: I7a05d61011f6ac39e7107c4d2270aa3025d79142
CRs-Fixed: 3618994
Currently, the decision to allow/reject simultaneous scans is in
wlan_cfg80211_scan() API. The same check is needed for
remain_on_channel scan request also. Create an API and make it
public to facilitate the same.
Change-Id: I0f563e4ab7b27eefb3fdee7aef61bf8bedb76802
CRs-Fixed: 3625840
Fetch AP BSSID from each roam connection frame and cache the info in the
WLAN driver. When user space gets roam stats by
QCA_WLAN_VENDOR_ATTR_ROAM_STATS_INFO, user space can now collect the AP
BSSID info for roam issue.
Change-Id: I4d78fa30096a30dd2987d4c7fa9698ff62777b3b
CRs-Fixed: 3615554
QCA_WLAN_VENDOR_ATTR_CONFIG_MODULATED_DTIM attribute is defined
incorrectly.
Modify this attribute to QCA_WLAN_VENDOR_ATTR_CONFIG_DYNAMIC_DTIM
as per the upstream qca-vendor.h file.
CRs-Fixed: 3617541
Change-Id: I0f5ea3fb419af3e6850270a500edf2fa72401e93
If connection fails, CM state will be moved to INIT state and
kernel will not be made aware of this connection failure in case
of link switch and treats the interface as if it is connected.
In such case kernel and host will be out of sync and because of
this if any disconnect request is received host will drop them
immediately as VDEV is in INIT state.
Introduce new substate of VDEV for INIT state. If VDEV moves to
INIT state either due to link switch disconnect or link switch
connect failure, instead of being in INIT-IDLE state move VDEV
to INIT-IDLE_DUE_TO_LINK_SWITCH. If any disconnect request is
received in INIT-IDLE_DUE_TO_LINK_SWITCH state then instead of
dropping the request forcefully queue the disconnect and proceed
for disconnect to notify kernel.
Drop link switch connect will be dropped if VDEV is not in
INIT-IDLE_DUE_TO_LINK_SWITCH state.
Change-Id: Ifb6b72f0720b95cf862e9a4ff756b6577a3e45fd
CRs-Fixed: 3617919
Enumeration qca_wlan_roam_stats_frame_subtype defines the various frame
subtypes which may be collected by the driver and reported via the
QCA_WLAN_VENDOR_ATTR_ROAM_STATS_FRAME_SUBTYPE attribute.
Two of the enumerators are:
* QCA_WLAN_ROAM_STATS_FRAME_SUBTYPE_PREAUTH
* QCA_WLAN_ROAM_STATS_FRAME_SUBTYPE_REASSOC
These were initially defined and used to respectively report
Authentication Response and Reassociation Response frames.
Now there is a requirement to also report Authentication Request and
Reassociation Request frames. In order to satisfy this requirement,
add two new enumerators:
* QCA_WLAN_ROAM_STATS_FRAME_SUBTYPE_AUTH_REQ
* QCA_WLAN_ROAM_STATS_FRAME_SUBTYPE_REASSOC_REQ
Note that the first of these uses the standard term "AUTH" instead of
the confusing term "PREAUTH" used previously.
And to align with that naming, and in order to clearly show the usage
of the original enumerators, rename them to:
* QCA_WLAN_ROAM_STATS_FRAME_SUBTYPE_AUTH_RESP
* QCA_WLAN_ROAM_STATS_FRAME_SUBTYPE_REASSOC_RESP
Furthermore, Authentication Request/Response frame refers to the
Authentication frames sent by the non-AP STA and AP, respectively.
And finally, to support backward compatibility with applications using
the original enumerators, redefine those in terms of the new names.
Change-Id: Ibbe62eefd695542cbd19d1b697446a60e5c4e747
CRs-Fixed: 3623174
Add an attribute QCA_WLAN_VENDOR_ATTR_ADD_STA_NODE_IS_ML to the
ADD_STA_NODE command. If this attribute is set, it implies that the node
being added is an MLD node.
Change-Id: I5a8f7248847d14d87116592f0a6de3952aee8664
CRs-Fixed: 3594263
Introduce API to populate parameter for connecting event
logging in order to be printed after STA INFO
event.
Add wlan_cm_is_first_attempt() api in order to
restrict the logging of STA INFO and connecting
event to first connection attempt.
Change-Id: Ica4253eea71ba72ea5176f733402d0758797463b
CRs-Fixed: 3599759
Add a new QCA vendor sub command QCA_NL80211_VENDOR_SUBCMD_TX_LATENCY to
configure, retrieve, and report per-link transmit latency statistics.
When used as a command, userspace configures transmit latency monitoring
and get the corresponding statistics of the last period. When used as a
command response, driver replies the get action from userspace with the
statistics of the last period. When used as an event, driver reports the
statistics periodically.
Change-Id: I46966cd6bbad2deed7b2ad81e730170625907f67
CRs-Fixed: 3603431
Currently the user configured MFP state that comes from the
userspace in connect request is not handled or processed.
Instead the RSN caps from assoc IE of connect request is inter-
sected with AP RSN caps and sent to Firmware using RSO command.
This RSN caps is used in FW in selecting a roam candidate, which
was causing the cross AKM (eg:SAE -> PSK) roam fail.
Hence, use the user configured MFP value in sending the RSN caps
to Firmware.
CRs-Fixed: 3606069
Change-Id: I3facfcf3616667b4749109d26d924c3fb1537494
Currently, in some API such as
"wlan_cfg80211_tdls_add_peer_mlo", when driver gets vdev, it is
MLO vdev, so it uses WLAN_MLO_MGR_ID ID, but when it tries to put
the vdev, since disconnection happens and mlo flag is cleared,
so it uses WLAN_OSIF_TDLS_ID ID which is non-ML vdev.
This causes release of vdev reference from different id for which
it never takes reference and result in crash.
To fix this, use same debug id throughout function. For that,
generalize the get_ml_vdev API by passing the debug id as
argument to the function.
Change-Id: I5800d207fdd17692297e71a0a9cdbcb86a4c5650
CRs-Fixed: 3608817
Add nl80211 vendor event index
QCA_NL80211_VENDOR_SUBCMD_TX_LATENCY_INDEX, which is used to report
per-link transmit latency statistics.
Change-Id: I62bb668ebf6b3d10c0100448eb41bde29540890d
CRs-Fixed: 3596760
To enable support for nested array policy, define macro
VENDOR_NLA_POLICY_NESTED_ARRAY to take care of the version
compatibility.
Change-Id: I2d9e3079c0a6b34c61767ec50b0c404beb3240df
CRs-Fixed: 3596074
Add a vendor attribute for an EHT DUT to configure the type of TID-To-Link
Mapping Negotiation Support for testing purposes.
Change-Id: I9e39fa1acfa07bf8e2514172adeed7a7d01f8abc
CRs-Fixed: 3608356
Add a vendor attribute for EHT testbed STA to configure MLD ID in the ML
Probe Request frame transmitted as part of host initiated scan request.
Change-Id: I759d147238f176a8aa1db62381528f81a92ba459
CRs-Fixed: 3605356
Define a new QCA vendor test config attribute to configure powersave
on MLO links.
This attribute is used for testing purposes.
CRs-Fixed: 3605466
Change-Id: I67daaa5c774aea20f139a60f04758babbfe32319
This change is to use ml dev context to fetch
link info, As ml dev context is available in both
vdev and psoc context. It's valid for both standby
and active links.
Change-Id: Ib705bd5a5a1144f980295331f5f26ba667906cf1
CRs-Fixed: 3568944
Currently if STA connected in 11BE mode, EHT Operation IE is not
getting updated in big data stats.
Add vendor command to support EHT operation IE,
QCA_WLAN_VENDOR_ATTR_GET_STATION_INFO_EHT_OPERATION.
Change-Id: I10bf45fcd6eeb7c06980d15a845be00ffdd72cde
CRs-Fixed: 3598720
With new sun kernel, wep keys are deprecated,
resulting in compilation issues. Fix this by
not using wep_keys if kernel is sun or greater.
Change-Id: I2c79545798825ae7c963885356595e5fa35b910a
CRs-Fixed: 3601939
Add a QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_PEER_AMPDU_CNT to
enable configuration of TX maximum aggregate size with a specific peer.
This can be used to improve performance in noisy environment. In AP
mode, the peer MAC address of the associated STA is specified with
QCA_WLAN_VENDOR_ATTR_CONFIG_PEER_MAC.
Change-Id: I659659d9277d9c22024164d12636315952866654
CRs-Fixed: 3603816
Rename the attribute QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_PEER_MAC
to a generic name QCA_WLAN_VENDOR_ATTR_CONFIG_PEER_MAC, so other
configuration commands can reuse it. And make backward compatibility of
QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_PEER_MAC, define it as same
value of QCA_WLAN_VENDOR_ATTR_CONFIG_PEER_MAC (35).
Change-Id: I393afb23df697321bd49c4f6d87213050f218d75
CRs-Fixed: 3603779
Based on the new requirement, add support for vendor event
to switch the audio transport bearer.
Change-Id: Ic83cff67e92554c55de96b9453f097e41683b60b
CRs-Fixed: 3585411
Based on the new requirement, add support for vendor command
to switch the audio transport bearer.
Change-Id: I85e61dfbcec55bad7685f143d7128654e47b66f3
CRs-Fixed: 3585196
When roam from mlo to slo/legacy/owe, mlo_cleanup_link is called to
disconnect link vdev, mlme_cm_osif_disconnect_start_ind is called,
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER is sent, then Tx queue is disabled,
all tx pkts can't be sent.
To fix it, when disconnect link vdev for roaming to slo/legacy/owe,
don't send WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER by checking special req
source CM_MLO_ROAM_INTERNAL_DISCONNECT.
Change-Id: Iacfc2f82069b2c21951af97c23c60ea99865a80d
CRs-Fixed: 3600747
When updating the AP link address and channel info after
roaming, update the self link address also to the link switch
context on each vdev. This information will be fetched while
sending roam + auth event to userspace after roaming.
Change-Id: I363a5ee8d65bb21d84c15879996369f4e397f2a6
CRs-Fixed: 3589401
Define an attribute for high RSSI roam trigger threshold. STA is
expected to trigger roam if the current connected AP's RSSI gets above
this high RSSI threshold. STA's roam attempt on high RSSI threshold aims
to find candidates from other better Wi-Fi bands.
Change-Id: Ie0323ff990e2679fd9768d2242730f7369cdb64f
CRs-Fixed: 3586127