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
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
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
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
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
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
In wlan_mlme_clear_sae_single_pmk_info, driver clears sae_single_pmk
locally while processing del/flush pmk command from supplicant.
Driver should clear entry for sae_single_pmk mlme priv objects.
Fix is to clear entry for sae_single_pmk in mlme priv objects.
Change-Id: Iee71a1a86e293a1028e9b4003d5a48c72d19a8f4
CRs-Fixed: 2636662
The max ini params for mws_coex_pcc_channel_avoid_delay and
mws_coex_scc_channel_avoid_delay are set to be at 0xFF. This max value
doesnot correspond with the actual max value needed by the firmware.
Change the max value to include upto 0xFFFFFFFF
Change-Id: If88d7866c584abf43a41b0c6b9f63b21a0a4a2f2
CRs-Fixed: 2632517
Use INI "sta_disable_roam" to disable roaming on STA interface if
connection on other interfaces ex. p2p, ndp comes up. Each bit of
the INI "sta_disable_roam" represents an interface.
ex. LFR3_STA_ROAM_DISABLE_BY_P2P BIT(0)
LFR3_STA_ROAM_DISABLE_BY_NAN BIT(1)
As INI "sta_disable_roam" is generic for all the interfaces, cleanup
for INI "p2p_disable_roam" done.
Change-Id: Icd05a97c640ca07978d9960a33de036ed6fe38df
CRs-Fixed: 2637555
Currently MCS parameters are not getting correctly in
wiphy which results in incorrect capabilities for iw list
command output.
To resolve above issue, update MCS parameters correctly in
wiphy band capabilities.
CRs-Fixed: 2633314
Change-Id: I830ad50aa4842bd2a79c97ed7b11b82c35148ff0
Currently the roam failure reason string size is 40 bytes.
Change this to 50 bytes to avoid truncation in some failure
cases.
Change-Id: I6c90e31fc792078354e98c7a5c61ffd5583469c3
CRs-Fixed: 2637901
Add ini support for DFS Channel Ageout Time, the time upto which
DFS channel information such as beacon found is remembered.
This ini is used to set the ageout timer value from host to FW.
If not set, FW will disable ageout time.
This value is sent as a WMI_PDEV_PARAM_SET_DFS_CHAN_AGEOUT_TIME
as part of WMI_PDEV_SET_PARAM_CMDID.
Change-Id: I99553fa87a4025f03c52b4b387a414ba06c2c457
CRs-Fixed: 2625996
ignore_fw_reg_offload_ind is used to ignore regdb offload
indication from FW and regulatory is treated as non offload.
Change-Id: Ic9a47fe3ec49cf1fa9cbf7ab166decdc4ece0511
CRs-Fixed: 2630994
Introduce ini for roaming_triggers to enable/disable specific
roaming triggers. This will be the master ini to control roaming
triggers. If this ini is set to zero, roaming will not be enabled
on the sta interface unless its enabled via vendor command.
A new roaming trigger - Sta kickout roaming is introduced in
firmware, include this bit support also in the ini.
The value of this ini will be sent over the wmi command
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID during RSO start.
Reset this value to 0 during RSO stop if RSO stop is due to
disconnect or roam synch failure.
Change-Id: I02f207cdde9d8fb68cd91fab07572baa9e7ac50d
CRs-Fixed: 2631712