As part of protected dynamic interface control feature, add
infra to disable/enable wifi, when invoked from user space.
Change-Id: I3f6c2abcef1ef89cbd0a735820de9b54d37bfa29
CRs-Fixed: 3166467
Currently parser code doesn't have support to decode optional
fields in EHT capability IE which are dependent on HE cap IE.
To achive this, add API to decode EHT cap IE in assoc request or
response frames.
Change-Id: Ie1781de079ecc6c4860fdcb4a2abb3ffeff10fc0
CRs-Fixed: 3135825
Currently parser code doesn't have support for packing of optional fields
in EHT capability IE which are dependent on HE cap IE.
To achive this, add API to encode EHT cap IE and include the generated EHT
capability IE bytes in assoc request or response frames.
Change-Id: Iec975e3f11450673c682eb85422dc5436c35089e
CRs-Fixed: 3127621
Currently driver does not caches peer nss and it needs this info
for big data stats. When driver receives big data stats command
it always returns nss as 0 which is not correct.
To address above issue, add support to cache peer nss in SAP
mode.
Change-Id: I5152581d7d66b5bf20f6102dcb9edaa4e23b35bc
CRs-Fixed: 3174420
Issue scenario, 1st Addba response tx and set is_mgmt_data_valid false.
2nd TX frame happens for valid frame that needs to be logged and set
wma_handle->is_mgmt_data_valid to true. Then the 1st frame TX completion
tried to access wma_handle->mgmt._data. It may access invalid context if
race condition happened.
Move management frames handling from lim_send API to tx_complete_cnf API
Change-Id: Ib5090dcd274160b3a9d7b9975d0839ec06616b86
CRs-Fixed: 3154710
Currently there is a corner case wlan_cbs_timer_handler is called
with cbs->vdev being NULL.
In wlan_cbs_iterate, cbs->vdev is checked before getting g_cbs_lock
lock, then wlan_son_cbs_disable is called which sets cbs->vdev as
NULL and sets cbs state as CBS_INIT, then in wlan_cbs_iterate, it
gets g_cbs_lock lock and set cbs state as CBS_WAIT and start timer.
Finally in timer callback, cbs->vdev is NULL and cbs state is CBS_WAIT.
Check cbs->vdev after getting g_cbs_lock lock in wlan_cbs_iterate.
g_cbs_lock should protect all fields in struct son_cbs.
Change-Id: I393db09ac29e19fd29e546035c37062c04da7f7d
CRs-Fixed: 3179382
Make puncture information can be populated and parsed.
Pass the puncture bitmap to FW in peer assoc wmi command.
Change-Id: I9d6f7ead90cfe2e2b366ffb37f74bfac8404c2b7
CRs-Fixed: 3145854
Add support for QCA_WLAN_TWT_SET_PARAM command to configure
QCA_WLAN_VENDOR_ATTR_TWT_SET_PARAM_AP_AC_VALUE attribute.
This attribute provides access category value for
WMI_PDEV_PARAM_TWT_AC_CONFIG. This is used by firmware to
configure access category for TWT HW queue in TWT Responder
mode(SAP).
Change-Id: I5131967ff2061bf6afad7bc5f091a7eb5ee01b8a
CRs-Fixed: 3168197
The current maximum buffer size for an ADDBA req/response action
frame is 256 bytes. This needs to be increased to 1024 in case of
EHT session.
Change-Id: I6579bfd0e0a535e8fb71bdd1e4d9932f30ace605
CRs-Fixed: 3182383
If the multi-client Low latency feature is enabled
in the driver, the host includes a multi-client id
bitmap and the corresponding latency level and sends
the WMI_WLM_CONFIG_CMDID command to set the latency
level in the firmware.
FW calculates a stringent latency level and as a
response to the WLM config command, Fw sends an event
WMI_LATENCY_LEVEL_EVENTID to the host to configure a
stringent latency value.
Change-Id: Ib7a474956f39ef26e1d957b7619ebb8ac87233a6
CRs-Fixed: 3180939
As per the new design, If the multi-client Low latency feature
enabled then the host should configure the below value to FW
at the time of driver init time via multiple SET_VDEV_PARAMS
commands:
1. Latency Level Flags for each latency level
2. Default latency level for all clients
3. INI configurations for multi-client Low latency Feature
If the multi-client Low latency feature is enabled, FW uses
these configurations while processing command
WMI_WLM_CONFIG_CMDID.
Change-Id: If46c253ab8b3b22a5c7723a278feb4daaed0ab2b
CRs-Fixed: 3180934
As per current driver implementation, whenever we load the wlan
driver, we initialize the dp_prealloc structs with default values,
which are used by dp_prealloc_init to allocate memory and during
driver unload, in the function dp_prealloc_deinit, after freeing
the allocated memory, we mem_zero the dp_prealloc structures.
Unfortunately, this zeros both the static and dynamic content.
In case of soft driver unload/load, where we internally
de-init/init the wlan driver, dp_prealloc_init fails because
we now don't know size of memory to be allocated. That info
was part of the static memory that had been zeroed during
deinit.
To address this issue, only zero the dynamic fields of
dp_prealloc structs in dp_prealloc_deinit.
Change-Id: If450d426ee655f6c2b32febdd001ab6d5489b51e
CRs-Fixed: 3174685
Expected error code is not returned for TWT setup with no
associated AP. Error code has been updated to correct value.
Change-Id: I5234026410a1bcfaf1151c6b7da272a1784d3fe3
CRs-Fixed: 3181078
SAE authentication logging events are sent from host
driver during connection as well as during roaming.
But the other roaming frame related stats are printed
as part of the WMI_ROAM_STATS_EVENTID handling.
Since this roam stats event is received after preauth
frame related logs are queued to userspace, the order
of the logs are not correct.
Cache the SAE preauth logs in mlme and print them
upon receiving ROAM stats event. Read the firmware
service capability to decide if new caching needs
to be used or legacy behavior needs to be followed
Change-Id: I76381b9deef222f1481325974e2b5d9730eb2b67
CRs-Fixed: 3154147
Compiler with option -Werror=missing-braces enabled wants
extra pair of braces while initializing variables during
declaration. Add extra pair of braces to fix compilation
issue.
Change-Id: I4ffd2711985cb01a9f6800800165280bddf00590
CRs-Fixed: 3180670
EHT capabilities and EHT operation IE definitions are updated as per
new draft version D1.3. Update corresponding IE handling as per new
definitions.
Change-Id: I33edb03e99fd122e70ecd55b880a3e928884515b
CRs-Fixed: 3108224
Currently, data stall events are not detected individually.
Updated gEnableDataStallDetection ini provides control over
individual data stall events if bit 0 is not set.
Change-Id: Id4fd7f10f0806a39c5bdb7b8c097c26894dc5340
CRs-Fixed: 3159405
Add multi-client latency level service bit capability support,
WLAN_SOC_WLM_MULTI_CLIENT_LL_SUPPORT, to check whether the FW
supports multi-client latency level event or not.
Add INI "wlm_multi_client_ll feature" to enable/disable multi
client latency level feature from the host side.
* @min: 0
* @max: 1
* @default: 0
If firmware sends multi-client latency level service
bit capability to host and host enables multi-client latency
level feature via INI, the host waits for an event
WMI_VDEV_LATENCY_LEVEL_EVENTID as a response to a request
command WMI_WLM_CONFIG_CMDID.
Change-Id: I5cbea89e67caabac5db70b7f0a91c18bdd512e9b
CRs-Fixed: 3180928
The extended cap IE from the hostapd is of variable
length, but it is always type casted to a fixed length
of 11 octets. This leads to OOB access of memory and
incorrect data gets read. In this case, beacon protection
is not enabled in the ext cap IE, but due to OOB access
beacon protection is read as 1.
Fix the OOB access by typecasting the IE to the length of
the IE.
Change-Id: Id9a54e3467fa9f7a49687da41411a421fd9c9d37
CRs-Fixed: 3178294
Add support to dump the full management,eapol,
dhcp, arp frames based on the level of the
debug_packet_log configured through ini gEnableDebugLog.
The dump levels are as follows:
* 0x1 - Enable mgmt pkt logs (except probe req/rsp, beacons).
* 0x2 - Enable EAPOL pkt logs.
* 0x4 - Enable DHCP pkt logs.
* 0x8 - Enable mgmt action frames logs.
* 0x10 - Enable ARP pkt logs.
* 0x0 - Disable all the above connection related logs.
Change-Id: If572cccb327da785dd0d56cff6d37ba170b15cc8
CRs-Fixed: 3173604
If there are 3 or more 5/6Ghz SCC freq, avoid filling SBS freq in
PCL as due to 3 home freq limitation, 3rd freq will always be
leading to SBS.
So add SBS freqs in PCL, only if number of SCC are 1 OR 2 with 5Ghz
MCC/SCC.
Change-Id: Ib97589df50bbacafa56766dd4b8af6d9f5d1419b
CRs-Fixed: 3178339
On Wear HL based target with keystone kernel, it generates
WLAN driver with name "qca_cld3_wlan.ko" based on macro
definition WLAN_WEAR_CHIPSET. But the driver was not loading
because of the old INI path and /dev path.
This commit modifies the INI path and /dev path based on
macro defined i.e. WLAN_WEAR_CHIPSET.
Change-Id: I6d457a3bb708de3175c40b0f2b3ba0ebde915838
CRs-Fixed: 3168115