Currently, the definition of WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID
is present at the fw-api level. The host should not be using fw-api
definitions outside the WMI TLV code. To make sure it,
1. Add host-defined enum vendor_control_roam_param which defines
the param IDs that the host supports.
2. Add logic to convert host-defined enum vendor_control_roam_param
to fw-api defined enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID and
vice versa.
Change-Id: I035ece1bc0af8e583782460868193affb76db0f3
CRs-Fixed: 3363916
Currently while updating EAPOL stats, there is no check
for subtype greater than array size, which can result in OOB access.
To fix the issue add additional check for subtype <= EAPOL M4 to
avoid OOB access.
Change-Id: I906ce9166b7a0202335403c77dc6bcd135dea663
CRs-Fixed: 3387939
Add critical update feature code. If BSS parameters change
count (BPCC) is changed, the value of cu_flag returns from
function lim_check_cu_happens is true. It can try to update
the critical update IEs code logic per cu_flag.
Change-Id: I39445a75e747e6e00a29be726fd447b9fbc7fb17
CRs-Fixed: 3296181
Currently gStaKeepAliveMethod and station_keepalive_method are not
mapped properly due to an offset of one. Fix this by updating enum
definition.
Change-Id: I572ee472b0b45816bf26830060d2b0707c90f387
CRs-Fixed: 3385907
Some legacy STA doesn't recognize the EXT CAP IE with
length greater than 8bytes. Therefore, these STA cannot
associate with hotspot broadcasting newer capabilities
in the extended IE.
To fix this, add an ini which would override the beacon
protection config in host driver.
Based on this ini, the beacon protection would be disabled
only for non-6 GHz and non-11be SAP profiles, as beacon
protection is mandatory in 6 GHz and 11be cases.
Change-Id: I672b707f6955fa31938aebba5e25461dd40cee4e
CRs-Fixed: 3378974
In case of 1x MLO roaming, 4 way handshake is offloaded to supplicant
and link vdev is down in FW. Host has to bring up link vdev post
set key installation.
Add handling in host for following:
- During roam sync indication handle only assoc link.
- Save reassoc response and link information.
- After keys are installed bring up link vdev by
queueing connect req on link vdev.
- Enable roaming after all links are up.
Change-Id: I9c0722f88e950ba05ec3dd7f44883bedf568f97d
CRs-Fixed: 3287316
Currently, driver finds PASN peer from BSSID in mgmt auth frame
and with help of this peer, it extracts the vdev_id. It uses this
vdev_id to retrieve the adapter in hdd.
But for NAN iface, there is no PASN peer and driver drops the
auth mgmt frame as no valid vdev_id available.
The NAN Cluster ID is a MAC address that takes a value from
50-6F-9A-01-00-00 to 50-6F-9A-01-FF-FF and is carried in the A3
field of some of the NAN frames.
So, to fix this, compare the first four bytes BSSID with
"50-6F-9A-01" and extract the vdev from vdev_list for NAN opmode.
Change-Id: Ie4f15549e3bd8378e362538da4d7ec49e84ad138
CRs-Fixed: 3382962
As per current implementation, SR(Spatial Reuse) commands are
rejected if STA is not connected or connected to AP that doesn't
support SR which causes issue because SR Enable/Disable command
shouldn't reject if STA is not connected instead of rejection
same configuration should be applied when SR AP connects to STA.
Fix is to not to reject SR command if PD threshold is not provided
along with enable command, so that enable command can be accepted and
applied when AP that supports SR connects to station.
Change-Id: Ie4a973053b79d0d5931bcc2520da42f9aab93089
CRs-Fixed: 3350451
Currently, unsafe channels are avoided when SAP restart happens.
If WMI_COEX_FIX_CHANNEL_CAPABILITIES is advertised by firmware
and if the SAP is started in a fixed channel, don't restart even
if the current operating channel is unsafe.
Change-Id: I5f7d632bcc00a1b5351dad64aca0ce16f1057537
CRs-Fixed: 3381394
During T2LM validation to pick assoc link, only check if
operation mode is station and if t2lm ie is valid.
Change-Id: Id31f83fabd22ae0e434e2720df773f778c7bb448
CRs-Fixed: 3370578
Whenever driver add new feature, it increments the feature version
and send it to firmware.
Due to new 11KV feature update, increments the feature version.
Change-Id: Ia840faf85c06a4f33f68f59dadda400c8e91804c
CRs-Fixed: 3381243
Firmware sends the roam scan info tlv to driver during roaming.
Currently, in this tlv, firmware fills scan type as (0-3) and
driver log this as "PARTIAL", "FULL", "NO SCAN" and "Higher Band"
But with new requirement, idle roaming shall only roam to higher band
(2.4 GHz < 5 GHz < 6 GHz) than current band.
1. If current band is 2.4 GHz, it cannot roam to 2.4 GHz.
It can roam to 5 GHz and 6 GHz.
2. If current band is 5 GHz, it cannot roam to 2.4 GHz and 5 GHz.
It can roam to 6 GHz.
So, to add this requirement, firmware introduces new scan type 4 for
which driver need to log.
Change-Id: I80d1c47a434da5009aed4cab08c6eae91bda5b0e
CRs-Fixed: 3379468
API to free the roaming info, fils ie and connect ies is now
present in cmn. Reuse of the same API to optimize the code.
Change-Id: I63b416323b4882ee589941e9b06f45a094b3f800
CRs-Fixed: 3378946
"bad_bssid_counter_thresh" is an ini parameter to specify the threshold
after which the BSSID is in the avoid list should be moved to
deny list, assuming that the AP or the gateway with which the data
stall happened has not recovered, and now the STA got the NUD
failure again with the BSSID.
Currently, in driver sets max value for this ini param as 10.
But for some new requirement, this value is required to 100 as
user does not want any BSSID in reject list.
So, to enable this feature, increase the max value for this param
as 100.
Change-Id: I80e908c82ea74801bfcb04a9669cc4b4589f0dec
CRs-Fixed: 3382136
Add pre-alloc entries for datapath config events
history, so that the memory for this history is
pre-allocated and not freed on every wifi off.
Change-Id: Iae1013c68a77d7da719400579af43369d9663163
CRs-Fixed: 3379157
Currently host drops an AP from scan list if host country is set to
US and AP country is non-US. This implementation violates our
standard regulatory scan policy.
To address this issue, introduce a new INI to differentiate
between our standard regulatory policy with others.
Change-Id: Ie6bd2d1925048aef427136b34d00d361955f40b2
CRs-Fixed: 3377242
When component dependent functions calling from higher
modules or any other components, it uses ucfg APIs pattern.
Calling ucfg dependent APIs is acceptable for higher modules
like HDD, OSIF but for another components like DP to avoid
using ucfg APIs here, implementing component APIs for existing
ucfg APIs to other components like NAN, vdev_mgr in DP
component module.
Change-Id: Ia5431c7de7fc944aacf5c8a328072a8ec31e8f3f
CRs-Fixed: 3351496
In api cm_roam_stats_print_11kv_info(), neighbor report
logging was not supported.
Add support for Neighbor report connectivity logging
through api cm_roam_neigh_rpt_req_event() for Neighbor
report request event and api cm_roam_neigh_rpt_resp_event()
for Neighbor report response event.
Change-Id: If9d93584d4030f76b5175d361dfd34fce3b5b5b1
CRs-Fixed: 3370797
Change done to handle t2lm ie after MLO connection
is completed and save tsf value received in beacon.
Also fix to not select link if tid mapping is not present.
Change-Id: Ie2ce1fcfa50a4e14a083a508b268dfebb308d3ad
CRs-Fixed: 3342807
If phy regulatory capability doesn't support high or low
frequency indicated by MACRO such as HIGH_5GHZ_FREQ,
LOW_5GHZ_FREQ, we should not hard code to the MACRO.
The change adds new mlme API wlan_mlme_get_phy_max_freq_range
to get phy regulatory ranges from target info.
Change-Id: I95f48296ca093c20b1391d7657204eecfb418908
CRs-Fixed: 3376402
Add support for T2LM action frame handling.
- Add an API to parse T2LM negotiation request action frame
and accept or reject T2LM mapping based on ML link info.
If accepted, store the new info in peer level context
and send it to FW.
- Add an API to send T2LM response action frame to
acknowledge request action frame with status code.
- Add wrapper API to invoke T2LM deliver event.
Change-Id: I10d440bd1713740ab8b9f1fe46439bea92e179db
CRs-Fixed: 3367425
According to new requirement, add INIs
max_pagefault_wakeups_for_ssr,
interval_for_pagefault_wakeup_counts and
ssr_frequency_on_pagefault to trigger SSR if host wakes up
because of pagefault.
For ex: If max_pagefault_wakeups_for_ssr = 30,
interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
ssr_frequency_on_pagefault = 3600000 (1hr), in this case host
will trigger the SSR if it receives 30 wakeups because of
pagefaults in 3 mins, host will trigger SSR only once in 1 hr.
Once the SSR is triggered, host will not trigger next SSR for
next 1 hr even if it receives 30 wakeups from fw because of pagefaults.
This 1 hr time is getting monitored from last SSR.
Change-Id: Ic122a7d8e8749870bfa5d28e74f6e9ee19493d04
CRs-Fixed: 3378492
Adding extn_ie_header and the invoking function
wlan_mlo_parse_t2lm_info because dot11f logic
removed the ie header.
Change-Id: I957c574ecf6323bfd6fb488f417ab1f738b4ee37
CRs-Fixed: 3362726
The kernel-doc script identified a few documentation issues in
components/pre_cac, so fix them.
Change-Id: Ie2a9be0c410e32c8e7ca5a86ed0dec7df5b62d25
CRs-Fixed: 3359794
The kernel-doc script identified a multitude of documentation issues
in components/umac, so fix them.
Change-Id: If30358cb83e90348e410cfea163353f2dd26b3fa
CRs-Fixed: 3360814
The kernel-doc script identified some documentation issues in
components/target_if, so fix them.
Change-Id: Id925b899074b1e9491cc3b9a3066420512459770
CRs-Fixed: 3359868
Create sysfs file for direct link unit test command to
generate traffic from LPASS.
Add ini to enable direct link unit testing.
Change-Id: I5b143bc6751eedb1a65cd836ea738744b72cc2cc
CRs-Fixed: 3365576
The kernel-doc script identified several documentation issues
in components/wifi_pos, so fix them.
Change-Id: If62f7c43983c1bb67ad0cb2764e8bbadff6e6cf7
CRs-Fixed: 3361660
The kernel-doc script identified a few documentation issues in
components/spatial_reuse, so fix them.
Change-Id: Ie4238aa43d8263151c2f9d05ebbe74ae8854f472
CRs-Fixed: 3361723
The kernel-doc script identified a few documentation issues in
components/denylist_mgr, so fix them.
Change-Id: I45fc8c6a637cebccf324dd44102b894fc84e7f2b
CRs-Fixed: 3361722
The kernel-doc script identified a few documentation issues in
components/son, so fix them.
Change-Id: I2aaa6746b05a963113ea78111a4cc45f35c1f98c
CRs-Fixed: 3359822
The kernel-doc script identified a multitude of documentation issues
in components/pmo, so fix them.
Note that there is currently one false positive error being flagged in
the documentation for typedef pmo_get_vdev_dp_handle.
Change-Id: Iddaccbf1b55557a82af34d2b6b4913d37c71123a
CRs-Fixed: 3359766
Currently, based on config_direct_link variable, link is voted
up or down which can result in same multiple votes.
To fix this, vote link up or down if there is a change in
previous config and incoming config_direct_link argument.
Also, return status success when direct link is not enabled
but dp_config_direct_link is called.
Change-Id: I4f54d74a9d4921f27f247450f89a03d6dabc838e
CRs-Fixed: 3375395
Set to_fw bit in DP vdev for direct link use case
and also set it when the use case is unspecified as
well.
Change-Id: I7306e22e81303720830cfce4ce19b15d2080d93c
CRs-Fixed: 3369891
Reproduce steps:
1. Driver received roam start from F/W, enqueue roam cmd in active queue.
2. Driver received disconnect cmd from wpa supplicant, set link vdev
vdev1 as disconnecting, enqueue disconnect cmd in pending queue.
3. Driver received MLO roam sync event from F/W, need handle link vdev
first, assoc vdev later.
4. Driver didn't handle link vdev1 roam sync for disconnecting state, DP
MLD peer isn't created.
5. Driver handled vdev0 roam sync, dp_peer_setup failed for DP MLD
peer not created, asserted.
To fix it, when handle vdev0 roam sync, check state of all mlo vdev,
if either disconnecting, abort roam sync, and delete roam req, let
disconnect from upper layer continue.
Change-Id: Ie03e0031908fef0f403d2cacf8ec976a147ef1ed
CRs-Fixed: 3371850
Introduce diag logging support for Neighbor report and
beacon report via event id EVENT_WLAN_NBR_RPT and
EVENT_WLAN_BCN_RPT.
For Neighbor report token, ssid, report number, frequency
list and frequency is sent. For Beacon report token, mode,
operating class, channel, duration, request_mode and report
number is sent.
Change-Id: I7ef407fa729e608ad0a7036f024acbf8b5180181
CRs-Fixed: 3370758
Currently, in case of Tx action frame driver start the ROC req based on
the offchannel is set. Due to this, if the TX action freq is same as
current vdev freq then also driver started the ROC req on the same
channel.
Fix is, even offchannel is set, but current vdev freq is same as
that of the channel for the tx frame. Driver will skip the ROC.
Change-Id: I7ab2ade0f01ad5035f7b156ded7eb7af7c826b9e
CRs-Fixed: 3366671
1. If CSA failed for last CSA in progress, can't stop SAP, SAP stop and
SAP CSA concurrency may lead to assert.
2. When access global var like pm_conc_connection_list, always need add
lock protection.
3. During CSA in progress, NAN CSA don't block current thread, just
return.
4. When SAP CSA completed, need check whether need CSA again for NAN
started during CSA.
Change-Id: I076ecad7395a265bbe83aaf97617a9a8b6c8b41a
CRs-Fixed: 3357265
The wpa_supplicant disables the BTM cap in extcap IE whenever
the MBO AP is not PMF capable, or if the btm_disable conf is set.
In current host driver design, the BTM offload is disabled only for
the MBO+non-PMF case. Therefore, add change to disable the btm offload
config if the BTM CAP is not present in the (re)assoc request as this
is determined based on intersection of peer and self cap.
Change-Id: I2fdc1010bccf5ce23f4ab2177aed6c374f7a510f
CRs-Fixed: 3369096
Currently wma_process_rate_update_indicate sends
two vdev set params separately to firmware.
Combine two vdev set params of
wma_process_rate_update_indicate,
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.
Change-Id: Icc50569bcc851c5ee269558b80a560b03e1fdcee
CRs-Fixed: 3333758
Currently host sends two ndp inactivity timeout
params to firmware one after the other.
Combine these two ndp inactivity timeout vdev
set params and send to WMI to reduce number of
transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.
Change-Id: Icaeca85f2aa074f04d268b819fe86f4b7879c25b
CRs-Fixed: 3333749
Currently host sends many pdev/vdev set param
commands separately to firmware from hdd.
Combine multiple pdev/vdev set params and
send to WMI to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.
Change-Id: Ib76f5bd5f582a2c67486f6773ff6fd486b3d84cf
CRs-Fixed: 3333732
Currently host sends tx chain mask and rx chain mask
pdev set params separately to firmware.
Combine these tx_rx chain mask pdev set params,send to WMI
to reduce number of transactions.
Also replace target wmi pdev/vdev params with host wmi
pdev/vdev params to fix existing broken layering
violation.
Change-Id: I6bd27b4bc99cbe44e6bdca2a8d55050a49719673
CRs-Fixed: 3333635
While scheduler thread init and enable RSO after MLO connected,
wpa_supplicant deinit RSO for MLO disconnect.
At last, RSO is enabled on host, RSO is deinited on F/W side,
no event for RSO stop cmd, vdev0 disconnect not finished for
cm_disconnect_continue_after_rso_stop isn't called.
To fix it, hold cm_rso_lock in cm_roam_state_change to make sure RSO
operation atomic. RSO operation of one thread not preemptied by RSO
operation of another thread. RSO init and enable process of connect thread
isn't preemptied by RSO deinit of another thread, no host F/W RSO out of
sync issue will happen.
Remove ucfg_user_space_enable_disable_rso from hdd_init_station_mode since
cm_rso_lock is held before created.
Change-Id: I3010895d26a622c2a14960847089a63736598b7c
CRs-Fixed: 3365417