Introduce new INI sae_connect_retries to decide auth (initial connect
and roam auth) and connect retry for sae. MAX reties is capped to 2
and max for roam auth is 1.
Default is 0x49 i.e. 1 retry each.
Bits Retry Type
BIT[0:2] AUTH retries
BIT[3:5] Connection reties
BIT[6:8] ROAM AUTH retries
Change-Id: Idae86a7bdb32244c7f3a140b8591418b8238758a
CRs-Fixed: 2728458
Currently, function mlme_is_freq_present_in_list calculates
index based on chanel frequency in a loop of num_freq.
But acs_weight array can hold NUM_CHANNELS number of values.
loop index more than NUM_CHANNELS may lead to OOB read issue.
Fix is to add a validation for loop index < NUM_CHANNELS to
avoid any OOB issue.
Change-Id: I3c1d3393cd2a40147c325fea8f76b1db1a51f457
CRs-Fixed: 2727312
Rename the existing roam offload states to include
WLAN_ prefix. Add 2 new states:
WLAN_ROAMING_IN_PROG - Roaming has started at firmware, this is
after candidate selection at firmware.
WLAN_ROAM_SYNCH_IN_PROG - State after handoff is complete at
firmware.
Also move the roam_offload_state enum to connection manager.
Change-Id: Ib1f38d200393849253893113172cdfc69e381fb3
CRs-Fixed: 2725387
Send Vdev pcl command on both connected STA vdev when sta+sta
roaming is enabled. Handle below cases:
1. When 1st STA is connected send PDEV pcl command for the
first sta. Set pcl_vdev_cmd_active false.
2. When 2nd STA comes up, Set pcl_vdev_cmd_active to true,
send vdev PCL for 1st sta before enabling roaming(disabled
as part of the connect on 2nd STA).
3. For second STA force dbs connection when
enable_dual_sta_roam_offload ini is enabled. Set the channels
of the 1st connected STA band as invalid and remove these
channels from the scan filter.
4. On disconnection of 2nd STA connection, clear the vdev
PCL sent for 1st STA and then send PDEV pcl command.
Also make changes to send set PCL command after roam init
is done before RSO start is done at firmware to avoid assert.
Post set pcl command from sme/csr through lim/wma/wmi to avoid
the above condition.
Disable roaming on the vdev before sending set PCL command to
avoid roaming on undesirable band & channels.
Change-Id: I6bd869015b7248fe5c5c90b6e2fa0174995be197
CRs-Fixed: 2725360
Enable compilation of the connection manager roam files with
Kbuild changes.
Add new API to store and retrieve the firmware scan channels at
mlme. Also add initial support to post SET_PCL command through
lim, so that it is not sent before ROAM init command.
Add changes to restrict connection of the 2nd STA to
channels on the other band of the 1st STA connected band.
This is done by filling only the allowed band channels in
the scan filters for the 2nd STA connection. If only
1 STA is active, it is allowed to connect on any band.
Add header gaurds for missed header files:
wlan_cm_tgt_if_tx_api.h
target_if_cm_roam_offload.h
Change-Id: Id2bce12b9663ed635ea46164169b088461aab870
CRs-Fixed: 2720341
Currently, powersave configuration is being overwritten before INIs
are initialized by mlme component. As a result INI configuration is
not being overwritten in case of monitor mode.
To resolve this issue, overwrite PS configuration during start
modules and restore it in stop modules.
Change-Id: I2707b431b81881c943104b211d55c6f48f348ba9
CRs-Fixed: 2682164
Host retransmits WPA3 SAE authentication frames after 1 second
if there is no response for previous auth frames from AP.
Host keep retransmitting SAE auth frames for max WLAN_SAE_AUTH_RETRY
times.
Change-Id: I1be0bd5354586518781876646b063592e667b0bb
CRs-Fixed: 2716719
In 11ax draft 6.1, the 6G starting frequency has been shifted by 10 MHz
to the right. Change the default channel value of INI "normalize_acs_weight"
accordingly.
Change-Id: I6b08f3c604f4410dbddf25bbe7c7491047b676ea
CRs-Fixed: 2695542
Add new ini enable_dual_sta_roam_offload to enable/disable dual
sta romaing feature. Enabling this ini will allow firmware to
roam on both the vdev if firmware supports dual sta roaming and
the hw is dbs capable.
This ini will be checked in the dual sta roaming offload state
machine to enable roaming on both the STA or to fallback to the
current implementation where first connected sta will have rso
enabled.
Change-Id: I04f141ac31e0f168b6f19fe878bca219a36cfae7
CRs-Fixed: 2709036
Currently the driver supports the dynamic
configuration of nss and chain to FW for
VDEV if the FW advertises the capability
of supporting the same. However there is
no support to overide this.
Fix is to have an ini to enable/disable
this feature of configuring the dynamic
nss and chains to FW.
Change-Id: I0b84bb5aec53966a43a00c11d4aba3863414005c
CRs-Fixed: 2708303
In the beacon, ESS report element gives the information of a BSS
that station learns and uses for roaming. Hence enable BIT(16)
ROAM_TRIGGER_REASON_ESS_RSSI of "roam_triggers" INI.
Change-Id: I47f35c3fad640054a54ccb3874475a1c59b51489
CRs-Fixed: 2688522
Change the prior conditions required for configuring Rx Chainmask &
Tx Chainmask.
Below conditions should be met for setting chainmask:
1. Antenna sharing should be disabled.
2. If gEnable2x2 is 1 then enableBTChainSeparation must be 1
else gEnable2x2 should be 0.
3. DBS should be disabled (gDualMacFeatureDisable = 1)
or HW should be DBS 2x2 capable
4. set TX/RX chainmask 3 in ini (gSetTxChainmask1x1/gSetRxChainmask1x1)
5. HW should support TX/RX chainmask as 3
Change-Id: If83c55af47abb591cdf1b5d2e3981d80bc305bf2
CRs-Fixed: 2705520
When config chanlist with DFS channel only, SAP can't be started
due to all DFS channel are all excluded and can't find available
channel in current chanlist. Issue is introduced by
'Change-Id: I53a22a0059d56aa8fca66215fed1ed0588db7db5'.
Fix is to set default ini np_chan_weight value to 1, then DFS channel
will be most likely put at last in available chanlist and DFS channel
will be the last choice when no other normal channel can be used.
If config chanlist with DFS channels only, SAP still can be started
on DFS channel successfully.
Change-Id: I04f70068069ff5c4f68b7d7fa56a2ede40035c6e
CRs-Fixed: 2694415
hdd_get_connected_station_info ignores some peer txrx
statistics if gSapGetPeerInfo is not set.
Change-Id: I02e607c081a932601c9c84998f5e9ede3563110e
CRs-Fixed: 2691717
Introduce an INI "oce_subnet_id_weightage" to indicate firmware
about oce subnet id weightage so that firmware can use subnet id
weightage to calculate candidate AP's score.
Change-Id: Iaf3be1947f8966a2e2c34162d251a31950058231
CRs-Fixed: 2674596
Implemented driver interface for NL command for setting
and getting TX and RX chains. The chains can be set to
either chain 0(1) or chain 1(2) or both(3). This is only valid if
antenna mode is set to 2X2.
Below command can be used to set the chainmask:
iw phy <phyname> set antenna <bitmap> | all | <tx bitmap> <rx bitmap>
Example:
iw phy0 set antenna 1 -- to set both Tx and Rx chain 0.
iw phy0 set antenna all -- to set all/both chains for rx/tx
iw phy0 set antenna 1 2 -- to set chain 0 for tx and chain 1 for rx
Below command can be used to get the chainmask after set:
iw phy <phyname> info
check for "Configured Antennas: TX 0x1 RX 0x1"
Below conditions should be met for setting chainmask:
1. Antenna sharing should be disabled.
2. gEnable2x2 in ini file should be 0
3. enableBTChainSeparation in ini file should be 1
4. DBS should be disabled (gDualMacFeatureDisable = 1)
or HW should be DBS 2x2 capable
5. set TX/RX chainmask 3 in ini (gSetTxChainmask1x1/gSetRxChainmask1x1)
6. HW should support TX/RX chainmask as 3
Change-Id: I04f6667398eac405a6be61bc039e048090578abf
CRs-Fixed: 2693370
Enable band preference for 6ghz and give default
max weightage to 6ghz to push it for STA operation.
Change-Id: I2fb1d68bb0d8535b4e9813fdd1551723a1fe4f56
CRs-Fixed: 2688585
RMC is IBSS specific and CFG_RMC_ACTION_PERIOD_FREQUENCY is not used
now so remove the same
Change-Id: Icafff4bd7eb508d92c383861300146e3a0f2def7
CRs-Fixed: 2689882
This commit enables support for SuiteB roaming for SHA384.
Based on the WPA3 SuiteB roam service capability advertisement
received from Firmware, we enable the support in Host.
Change-Id: Iab4e6bfc9c8ba7d604c2720c8cb848fce40dd6b4
CRs-Fixed: 2685975
With specific AP(s), FW needs to perform FT initial mobility
association instead of FT roaming for deauth roam trigger.
This ini is used to configure "FT roaming for deauth roam trigger"
behavior from the HOST.
Change-Id: Id754a21f7ac2c330019055646f79c79db3e0c52c
CRs-Fixed: 2665882
Remove instances of CFG_COUNTRY_CODE and country_code from
wlan_mlme_reg struct.
Remove redundant country code APIs.
This change is needed because the country code is no longer
stored in CFG file, and subsequently, there is no need for
CFG_COUNTRY_CODE.
Change-Id: Ia4b3b40d0dccfde696352967f2902dfba344a445
CRs-Fixed: 2634079
Add support to provide the channel weightage of
DFS channels so that the weight can be configured
and the user can control whether they are allowed
to be selected for the SAP.
Change-Id: I53a22a0059d56aa8fca66215fed1ed0588db7db5
CRs-Fixed: 2676919
The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.
After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.
Define new vdev id value based on which the scan module will
abort only host triggered scans setting the request type to
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.
Change-Id: Ie8b005285973461f654329e1b2dc1a45205331f5
CRs-Fixed: 2644323
Add sanity check for mlme_obj in wlan_mlme_update_oce_flags to avoid
illegal memory access when mlme_obj is not valid.
Change-Id: I7dfd72cc704d3f9c11241fb2217f0b2ab7eda3d3
CRs-Fixed: 2669262
Currently there is no ini to control the rrm support on
SAP.
Add a new ini to enable/disable rrm on SAP.
Change-Id: Idef8da807bc5f8e2b4a1d61997824006e78b0cf6
CRs-Fixed: 2658926
Currently, the driver trims the channel list with
the PCL if external acs policy ini is set, and
if the channels are unsafe then that can lead
to 0 channels and the SAP can fail.
Fix is to check whether the force SAP start ini
is set and override the channel.
Change-Id: If245bf27deda0f6022343d7a175520fdd92d106b
CRs-Fixed: 2667742
Currently, only broadcast disassociation is supported
and deauth is sent in a unicast manner.
With peer delete all support, HDD sends a single call
to PE for broadcast deauth request. PE module sends a
single broadcast deauth frame and on TX completion,
calls vdev_mgr_peer_delete_all_send. This issues the
new WMI_VDEV_DELETE_ALL_PEER_CMDID to FW to cleanup
peers entries corresponding to VDEV ID and also flush
TIDS internally.
On receiving the peer delete all response, target_if
cleans object manager entries and datapath cleans up.
But PEER unmap is done iterating through all peer entries
individually. After this a single eSAP_STA_DISASSOC_EVENT
is received in HDD signalling the completion of broadcast
deauth procedure.
Change-Id: I928461606154380eef21a02cc7306921ceb9e16e
CRs-Fixed: 2585005
Made the default value to advertise trigger frame padding
duration as 16 us so as to honor HE MAC capabilities sent by FW
Change-Id: I1bf75965f1b9b46d61c94997273621a6e9de46c1
CRs-Fixed: 2667623
With Change-Id: I02f207cdde9d8fb68cd91fab07572baa9e7ac50d,
Ini roam_trigger_bitmap is only initialized when LFR3 enabled.
In LFR2 case, without disconnect, roam_trigger_bitmap is set as
0, vdev roame state is stuck in ROAM_DEINIT for 0 bitmap, can't
switch to ROAM_INIT and ROAM_RSO_STARTED any more, can't enable
roam scan offload in F/W, so no roam scan and better AP event
is reported to host from F/W even RSSI low or beacon miss
happens.
change-Id: I95cb6c892a67816cf47c8dada9b542ae6aefe7f3
CRs-Fixed: 2662880
When set_pmksa command is received from userspace, the internal
pmk table is updated with the new bssid entry and the pmk is saved
to the session. Additionally this update triggers an RSO update
command to the firmware which causes the use of stale pmk for
single pmkid case, in which the BSS capability of SAE single pmk
will be known only after parsing the beacon/probe received in the
roam synch indication.
So donot send RSO update on receiving set pmksa command.
Change-Id: I25419fbc3061ab963ccf3228b3681c83773a7963
CRs-Fixed: 2659055
Add INI - gActionOUIReconnAssocTimeout to configure driver
to do:
1. Driver will not send deauth to the AP after association timeout.
2. Reconnect to same BSS again if the last association failure
is association response timeout.
Default="00E04C 00 01"
The change fixes IOT issue with certain AP which doesn't
response first association request frame sometime. But the AP
would response second association request.
Change-Id: I9f7b8d14aaaaa97f08856c8b62e49b145db3ac91
CRs-Fixed: 2653877
Control path use the data path variables to detect PN replay
and also modify the same.
Thus move the PN replay detect logic in objmgr peer in control path.
Change-Id: I8d1cd4b86eac3f6a7343c4616e398579bc4932ae
CRs-Fixed: 2658077
Currently the driver fails the ACS process
if no channel is found suitable for SAP by
ACS and thus hotspot cannot be enabled.
Fix is to force SAP to come up on some
default channel, this behaviour would
be controlled via an ini to that customers
can choose whether to opt for this behaviour
or not.
Change-Id: I8a63cf0c5d42802e33f4ad67a33d148a4da54d2a
CRs-Fixed: 2658297
Currently the driver allows roaming to the BSSID
which it is already connected, which can lead to
many unexpected behaviour, for eg. if the SAP
to which the DUT is connected turns off, then the
DUT would try to roam to other BSSID of the same
SSID, and in case the SAP turns on back in time,
then the DUT would re-associate to the same BSSID.
Now if the subnet may change, and since the DHCP
does not happen again in roaming, it would then
lead to NUD failure.
Fix is to introduce an ini to allow/disallow
roaming to the same BSSID.
Change-Id: Ibd04fcd7384c0987db5bb6dae1a26ee077456290
CRs-Fixed: 2634860
Channel congestion score is not well bucketized, as we only have 0-25,
26-50, 51-75, 76-100, so small change will not give different score.
while channel congestion weight is high: 25.
Increase channel congestion slots num from 4 to 8 as following.
0-12% 13-25% 26-38% 39-50% 51-63% 64-75% 76-88% 87-100%
100% 90% 80% 70% 50% 25% 10% 5%
2500 2250 2000 1750 1250 625 250 125
Change-Id: I4fc2d8a5f0f64c5fce9fe5ec8f16c3e8e9665a60
CRs-Fixed: 2655110
Remove max_tx_power from wlan_mlme_power struct
and ini_tx_power from lim_max_tx_pwr_attr struct
and all their instances.
Change-Id: I982a15b71b64d368b623128e04f09a8f3bf4f5ec
CRs-Fixed: 2645922
Increase the roam failure reason string buffer size to
60 from 50.
Also add reason string for roam failure reason.
Change-Id: I42f4332463e4063aa0dee39631ca31965db12b62
CRs-Fixed: 2647260
Introduce an INI "ap_tx_pwr_scoring" to indicate firmware about ap tx
power weightage so that firmware can use ap tx power weightage to
calculate candidate AP's score.
Change-Id: I8831c571162f044f4ae204ef0edfc59942f36837
CRs-Fixed: 2647115
Add pointer str1 NULL check before use in mlme_acs_parse_weight_list()
in case user side has wrong configuration.
Change-Id: I7a1552e417a7571d138a2c1c526aa2f9d0015529
CRs-Fixed: 2642567
Currently QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST aren't aligned with
NUM_CHANNELS, these unalignment may cause some potential OOB access.
So replace QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST with NUM_CHANNELS
to keep unified.
Change-Id: Ib6c81a3979f2fd29ba1ec678f018a6704b599385
CRs-Fixed: 2644066
Add host driver support for MCS 12/13, a Q-Q PHY feature.
The following changes are being introduced as a part of this
- Advertisement of the MCS 12/13 using the QCN IE
- Interaction between the Host and the FW regarding the target and
peer capabilities for the new features introduced.
- The new data structures and variables to populate and use the feature
capability
- Routines to add and parse the IE.
Change-Id: I2b91a271d30b1230ef7bb14ee08d0b9da2706db4
CRs-Fixed: 2610277
As each bit of INI "sta_disable_roam" represents an interface on which
if the connection is present, disable station roaming.
Hence to use all the bits of "sta_disable_roam" INI, change type to
UINT.
Change-Id: Ife4bb31acf89ddbe744bdad376a8a6f5a733b92c
CRs-Fixed: 2647036