Update the handler to fetch the status of the supports_11be
capability flag properly.
CRs-Fixed: 3305253
Change-Id: I35a083b7b717b0cf4fbe40e2e00b8bfd0ada9082
Currently link specific probe response ie does not include
the basic variant ml ie. This results in multi link connection failure.
To solve this add basic variant mlo ie in the link probe response.
Change-Id: I7d6e9bcc461bf4e855c5613ad28a08749303a81d
CRs-Fixed: 3301288
1.This change fixes the use of uninitialized
variable in host driver.
2.Adds NULL check for num_psocs in mlo_peer_calculate_avg_rssi to
avoid undefined behaviour.
Change-Id: Ifbfef42b5930dfe15736a75a74e81155c5f1fbce
CRs-Fixed: 3297794
Host stops cfr without vdev id check. In MLO case, the other link
stops firstly and it will get mac id base on wrong vdev id. Finallly,
it cause FW assert. This change adds vdev id check when getting cfr
rcc enabled params and trying to stop cfr.
Change-Id: I745ff5398b3f00fdb84b62b0835c1dd2ab75fae1
CRs-Fixed: 3296067
SAP secondary channel offset of HT info in beacon is set wrongly.
When STA connects it, channel bonding mode check fails, falls back to
20 MHz width.
SAP secondary channel offset of HT info in beacon is decided by checking
40 MHz bonded frequency list. If primary frequency is start frequency of a
bonded frequency, then secondary channel is above the primary channel,
secondary channel offset should be set to 1, else set to 3.
For example, if SAP primary frequency is 5220 MHz, {5220, 5240} is 40 MHz
bonded frequency, secondary channel offset only can be 1, can't be 3.
Change-Id: Ife56e3d039f3fcf1912bedf696b1703a0e8f194f
CRs-Fixed: 3302759
As part of upgrading legacy code
with 6 GHz power APIs,
replace reg_is_disable_for_freq,
wlan_reg_is_disable_for_freq and
reg_set_5g_channel_params_for_freq APIs
with reg_is_disable_for_pwrmode,
wlan_reg_is_disable_for_pwrmode and
reg_set_5g_channel_params_for_pwrmode APIs
respectively.
Change-Id: I70089b02fd3698dcd83d5418993f7ca238ad0e0b
CRs-Fixed: 3145785
If the requested power mode is not supported, the API
reg_get_chan_state_on_given_pwr_mode may return
CHANNEL_STATE_INVALID flag. Besides check
CHANNEL_STATE_DISABLE for disabled channel, add check
CHANNEL_STATE_INVALID also.
If partner link frequency is not supported by regdomain,
do not enable the partner entry.
Change-Id: Ic7adfdcc4e535d6303fa0f4253d1499d369bc222
CRs-Fixed: 3302241
While generating the scan entry for TX VAP, the decision to
strip MBSSID IE from the TX VAP beacon, will be taken if the
platform supports 11BE.
CRs-Fixed: 3300515
Change-Id: Ie45da7a02a2811172b2403d5fd1bc4b9271432d5
While processing an beacon with MBSSID IE/ IEs, the driver
creates scan entries for the TX VAP/ profile and every Non-TX
profile present in the MBSSID IE.
The scan entry generation for nontx profile happens as required,
whereas while generating the scan entry for the TX VAP, driver
copies the MBSSID IE/IEs as well. Because of this, multiple
ML IEs would be part of one frame and as a result sometimes
supplicant fails in adapting/ fetching the proper ML IE.
With this change, the host driver takes care of stripping out
the MBSSID IE/IEs from the full beacon frame and while
generating the scan entry for TX VAP/ profile, it uses the data
that only belongs to the TX VAP.
This helps in resolving the duplicate ML IE issue.
Change-Id: I13b3ce94da1970eea8c16b52b1987edc1a5418bc
CRs-Fixed: 3295496
On disconnecting, the bssid may not be filled in cm_req->discon_req.
Zero bssid will fail to update the scan entry to non association
state which may block the scan entry age out.
Move disconnect bssid fill before update the scan entry for
disconnecting.
Change-Id: Id8a36d8a37c212af727c7b61a24b51f2782c4a2c
CRs-Fixed: 3291599
- target_if layer was calling UMAC layer wifi_pos_get_rx_ops(). This was
leading to compilation errror in WIN platform. Hence, added target_if
layer API target_if_wifi_pos_get_rx_ops().
- WMI_RX_SERIALIZER_CTX is used to register PASN peer create and delete.
WIN platform does not use the above context. Hence, use WMI_RX_UMAC_CTX
for WIN and WMI_RX_SERIALIZER_CTX for MCC.
- WIFI_POS rx_ops callbacks are registered in target_if layer. But, these
callbacks are called by UMAC component. Hence, move this registration
function to UMAC layer.
- Add an API to convert host PASN peer type value to target defined value.
Change-Id: I2a262121f959c2343e88158b94468d104b9e164c
CRs-Fixed: 3289852
During wlan_crypto_setkey, the mem_alloc for key is done and
all keyidx within WLAN_CRYPTO_MAX_VLANKEYIX are to freed in
crypto_free_key.
Change-Id: Ieae0f9f4eecabe1fb23812a9e436037bb4dad128
CRs-Fixed: 3296394
doing qdf_export_symbol for wlan_util_vdev_mlme_set_param
so it can be use in offload
Change-Id: I19c1be6ad8e6462aff29c284131fcc4765df7e25
CRs-Fixed: 3301968
Currently only pdev_priv_obj has fcc constraint flag and
it's value gets modified according to the SET_FCC_CHANNEL
command. As a result after getting SET_FCC_CHANNEL command
if wifi turned off and turned on or during SSR sequence
its value is reset to false as pdev is deleted and recreated,
hence the tx_power values of fcc frequencies aren't decreased.
To address this issue, store the fcc constraint flag in
psoc_priv_obj and copy its value to fcc constraint
flag in pdev_priv_obj during pdev creation.
Change-Id: Ic2f5450fd763abf04ad89fe4e5148d03f3b5d69a
CRs-Fixed: 3292446
Enable/Disable responder 11az ranging based on the below ini:
"enable_responder_11az_support"
With "enable_responder_11az_support" disabled, the below ext
cap advertisement will be disabled:
Non-TB Ranging Responder
TB Ranging Responder
and below vendor capabilities advertisment will be disabled:
QCA_WLAN_VENDOR_FEATURE_PROT_RANGE_NEGO_AND_MEASURE_AP
QCA_WLAN_VENDOR_FEATURE_SECURE_LTF_AP
Change-Id: I82eb70615f8daf82e98e7600418e07fad0672b76
CRs-Fixed: 3296410
Enhance serialization logging by adding vdev id info in logs to
differentiate same cmd id across vdevs.
Change-Id: I6706b07044769b56832e67388924f767ad5aabfe
CRs-Fixed: 3297468
The actual number of vdev info allocated was less than the number
of vdevs that can be created for each soc, hence fix them, also
previously the arrays were allocated statically consuming
considerable amount of memory, fix them by allocating dynamically
with only number of vdevs per soc
Change-Id: I5ea735d44994211f76ce18460332624831742f7b
CRs-Fixed: 3285131
1. Change (or) Add the following country mapping to Regdomain for 6 GHz.
i) Map Full 6 GHz Reg domain HEX CODE 0x0C to FIJI
ii) Map Full 6 GHz Reg domain Hex code 02 to KENYA, MAURITIUS and MONGOLIA.
iii) Create new Full 6 GHz Reg domain Hex code 0x0D and map to ISRAEL and
KUWAIT.
iv) Create new Full 6 GHz Reg domain Hex code 0x0E and map to NEW ZEALAND,
NIUE, COOK ISLANDS
v) Map Full 6 GHz Reg domain HEX CODE 01 to ANTIGUA AND BARBUDA, ARUBA,
BAHAMAS, CAYMAN ISLANDS, DOMINICAN REPUBLIC, EL SALVADOR, JAMAICA and
VENEZUELA.
vi) Map Full 6 GHz Regdomain Hex code 0x0B to Japan.
2. Add the following regulatory database for 2.4/5 GHz and 5 GHz.
i) Create new 5 GHz Regdomain APL28 (Hex 0x1233) and Full 2 & 5 GHz
Regdomain APL28_ETSIC (0x76)
ii) Update PAKISTAN from APL1_ETSIC to APL28_ETSIC.
3. Add the following regulatory database 2.4/5 GHz and 5 GHz for Auto only
i) Create new 5 GHz Regdomain ETSI19 (Hex 0x0E45) and Full 2 & 5 GHz
Regdomain ETSI19_WORLD (0x7B)
ii) Update ISRAEL from ETSI17_WORLD to ETSI19_WORLD.
Change-Id: I8de892abdc8f446e17ccb6a039ae90ab092b6c0d
CRs-Fixed: 3287062
The NOL and CAC timeout callback function is divided into two parts:
HardIRQ and workqueue. If NOL/CAC expires, the callback function runs in a
HardIRQ context and the rest of the task runs in a workqueue to avoid
deadlock issues.
Issue: Workqueue tasks run in a low-level context. The task's execution
might have been delayed.
To fix this, run the "NOL" and "CAC" timer in softirq context.
Use QDF_CONTEXT_TASKLET instead of QDF_CONTEXT_HARDWARE as a argument in
qdf_hrtimer_init. If it is a "QDF_CONTEXT_TASKLET," the HR timer
initialises with softIRQ mode(HRTIMER_MODE_SOFT) and runs in softRQ
context when timer expires.
Change-Id: I9e23a9dff1a9c4669bb85342b3ffd91bc46ebe95
CRs-Fixed: 3239417
Duplicated 6 GHz beacons with poor RSSI are received in frequency far away
from primary channel, they are not dropped because HE duplicate beacon
field is set, which makes poor RSSI saved in scan entry.
To fix it, if 6 GHz HE duplicate beacon field is set, compare band width
and center frequency from EHT ops and HE ops with current frequency beacon
received, if current frequency is outside of the BSS operating BW, drop the
leaked beacon.
Change-Id: I580df7efbbe5a7b56cfd14795474ad9a4d432fdc
CRs-Fixed: 3299236
When partner link probe rsp is generated from ML probe rsp, bssid is
filled wrongly, then scan entry with wrong bssid is added, if no beacon
or probe rsp of partner link is received, then candidate can't be found
by partner link bssid, partner link connect fails, at last MLO connect
fails.
Change-Id: I3fa51dbde1cf9d8e256ecfc17059660a4430056a
CRs-Fixed: 3298706
Add the following definitions related to the Reconfiguration variant
Multi Link element:
- Fixed fields of Per-STA Profile subelement in Reconfiguration
variant Multi-Link element Link Info field.
- Definitions related to STA Control field of Per-STA Profile
subelement in Reconfiguration variant Multi-Link element Link Info
field.
- Definitions related to STA Info field of Per-STA Profile subelement
in Reconfiguration variant Multi-Link element Link Info field.
Change-Id: I4f5a06a60461f37f6a45bf4c15f203980c0e22b9
CRs-Fixed: 3296891
Add the following definitions related to the Reconfiguration variant
Multi Link element:
- Encoding for Reconfiguration variant in the Type subfield in
Multi-Link element Control field. (Additionally for completeness, add
the missing encodings for TDLS and Priority Access variants for this
subfield).
- Definitions for bits in the Presence Bitmap subfield in
Reconfiguration variant Multi-Link element Control field.
- Definitions related to Reconfiguration variant Multi-Link element
Common Info field.
Change-Id: Ie5f89438533f372cd020831a0de0fdafac94d6af
CRs-Fixed: 3296867
Use def_tx_keyid for Mcast wep key.
Also reset all the key index in wlan_crypto_free_key once igtk,
bigtk and Ucast/Mcast are freed, so that their values are not
carried to next connection.
Change-Id: I9a1e8715c54f47905889511f983b3127b9b5cfcd
CRs-Fixed: 3297270
For a particular vdev, If one of such same CMD id
is needed to be cancelled, either
wlan_ser_cancel_scan_cmd() is called if cmd is scan
cmd or wlan_ser_cancel_non_scan_cmd() is called if
cmd is non-scan cmd.
For both the cases, currently cmd_id is iterated
among pdev serialization cmd queue and if cmd_id
is matched then that particular id is flushed.
Since in per vdev cmd_id, same ids can be assigned
across multiple vdevs and it may be possible that in
the pdev serialization cmd queue, different vdev can
enqueue the same cmd id.
Hence, with current condition that only checks for
cmd_id may result in incorrectly cancelling the
same cmd_id for different vdev.
To prevent this, along with checking for cmd id
and type, check for the valid vdev and remove
the cmd corresponding to that vdev only
Change-Id: I10d37588a52e8d3209c7521782716e2358e57079
CRs-Fixed: 3295516
Update Automotive Regulatory Database to 40th version, sync with
change 'Change-Id: I7fa7f1e9f3e6fcd6aa6ecd5aa21bd4e82aeb19a0'
Replicate 'Country Mapping for Linux Android' table for 'AUTO'.
Change-Id: I8dcee18ae3bb687f5724f18ece0cff9e2144b558
CRs-Fixed: 3293159
Reproduce steps:
1. Connect from OSIF success, wdev->connected = true;
2. Disconnect from target if and reassoc from OSIF happens back to
back.
3. Disconnect event is not sent to kernel, wdev->connected keeps
true, isn't cleared.
4. Connect from OSIF failed too, wdev->connected keeps true, isn't
cleared.
5. Scan with random address failed since wdev->connected is true.
To fix it, if connect req was a reassoc req and received in not connected
state for race between disconnect from target if and reassoc connect from
OSIF, set reassoc_in_non_connected to send disconnect instead of
connect rsp to kernel to cleanup kernel flags like: wdev->connected.
change-Id: Ibbe38da14e9339b49589216250453b76c7387b57
CRs-Fixed: 3290496
Bss peer can be NULL in case of vdev in disconnected state,
so change the log level from error to debug in
wlan_vdev_get_bss_peer_mac() to reduce logging in dmesg.
Change-Id: Idac08200253d83f267be3381691e10d6bd4b52bf
CRs-Fixed: 3293402
This change adds API that searches for the primary peer in the peer list.
It returns vdev link id of the primary peer.
Change-Id: I43bef7ec56c5785669f217d63a15f95717f8d349
CRs-Fixed: 3280575
Some p2p device include invalid RSN IE in wildcard probe respone
frames in p2p discovery. Do not drop it because the wildcard
SSID entry will not be used to do association.
Change-Id: I1e390509931094d9d9a55d2caef825c5772a086b
CRs-Fixed: 3282030
If get scan filter for link vdev, that means the MLO STA has
more than 1 link, do not filter the link vdev's scan filter
channel list. Link that is causing MCC with legacy STA can
be disabled in post conenction.
Change-Id: I4aafb7168e60bf158904d3b1c4a4c42d4eaeb126
CRs-Fixed: 3285312
In reg_update_sup_ch_entry_for_mode function, mas_chan_list_6g_ap is
copied to super chan list when AFC power event is not received.
mas_chan_list_6g_ap would have SP channels enabled based on the regulatory
rules and this is propagated to super channel list. In outdoor deployment,
the SP channels can be marked enabled when AFC power event is not received
as there is REGULATORY_CHAN_AFC_NOT_DONE flag set for such channels. But
in indoor deployment, as this flag is not applicable, SP channels should
not be marked enabled.
To fix this, return from reg_update_sup_ch_entry_for_mode function before
enabling the SP channels if the deployment type is not outdoor.
Change-Id: I3c5ccdc4826c33002bf1bb33f686404fa0ffcc65
CRs-Fixed: 3270672
Host driver sends RSO stop request to firmware as part of
disconnect and waits for RSO stop response. It pauses the
disconnection and resumes once RSO stop response is received
from the firmware.
But cm_lock is not taken when disconnection is resumed from RSO
stop response path. This causes synchronization issues with
north bound thread which issued the disconnection.
Acquire cm_lock by using cm_sm_deliver_event() API to provide
synchronization between disconnect initiator thread and
scheduler thread.
Change-Id: I3c287a020e0a12abab2ad6237594e022adc904a7
CRs-Fixed: 3287190
When roam from legacy to mlo, vdev1 is updated first, ml peer is created,
but failed to attach since it is link vdev, then vdev0 is updated, ml peer
is created again, ref count is 1.
When disconnect, stop vdev1 first, in stop event handler, ml peer ref count
becomes 0, mlo_peer_cleanup is called unexpectedly.
mlo_peer_cleanup should be called after MLO vdev0 stopped.
To fix it, change wlan_mlo_peer_create, mlo_dev_mlpeer_attach is called if
the ml peer not attached and can't be found.
Change-Id: Iae3b2b498849646ae71154484b555a7fc9a36017
CRs-Fixed: 3277886
Per spec 11be_D2.1.1, the TSF Offset subfield of the STA Info field
indicates the offset (Toffset)between the TSF timer of the reported
AP (TA) and the TSF timer of the reporting AP (TB) and is encoded
as a 2s complement signed integer with units of 2 µs. Toffset is
calculated as Toffset= Floor((TA – TB)/2).
Change-Id: I7810568f6308e369dcf2ff26bdfd1246783466d4
CRs-Fixed: 3276836
The macro QCA_DFS_BW_PUNCTURE depends on the macro
WLAN_FEATURE_11BE. This creates compilation issue and fix
is introduced in this patch.
CRs-Fixed: 3283332
Change-Id: Ie00f7384142b39c309845408c6268ae6346f4734
The macro QCA_DFS_BW_PUNCTURE depends on the macro
WLAN_FEATURE_11BE. This creates compilation issue and fix
is introduced in this patch.
CRs-Fixed: 3282072
Change-Id: I680670e58bd57d104bc69f2b4e7a56010b7584a5
When radar is found in any DFS channel, a radar bitmap is
generated based on the radar infected channels. For example,
if operating channel is 100 HT160 and radar found in 112,
then the generated bitmap is B0000_0010. This proposed bitmap
is compared with the valid puncturing patterns. In this case,
the proposed bitmap is valid puncturing pattern.
In case of a valid puncturing pattern, send the final
bitmap to DFS module and the module updates the DFS channel
puncturing pattern. If an invalid puncturing pattern is
found, return value zero and do not update DFS channel
puncturing pattern.
CRs-Fixed: 3273800
Change-Id: Iee23ac267bfea1b4815a72c2728555f96bed6466