Commit Graph

258 Commits

Author SHA1 Message Date
Jyoti Kumari
714d3f7eb1 qcacld-3.0: Add connection roaming ini support
Add get/set support for connection roaming ini file

Change-Id: I09d6ebf86c5374fabb82f79d0a2cd8758e454e4b
CRs-Fixed: 3038459
2022-05-06 03:27:59 -07:00
abhinav kumar
f95d76a857 qcacld-3.0: Add multi-client service bit caps and INI support
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
2022-04-25 05:38:05 -07:00
Bing Sun
ff3734010c qcacld-3.0: Add cfg to configure mlo single link connection for sta
Add API to get mlo single link connection configuration for sta.

Change-Id: Ie3b6c270c5c7358321a176c744083175a81d0180
CRs-Fixed: 3171955
2022-04-15 12:56:54 -07:00
Bing Sun
6df47a0d95 qcacld-3.0: Add API to get max mcs index
Add a new field max_mcs_index in mlme_legacy_priv to save max mcs
index of current vdev.
Add a new field max_real_mcs_idx in hdd_station_info to save max
mcs index of the connected station.

Change-Id: I28908515cbe5c18c79f14f8645defd5c82e3a6f0
CRs-Fixed: 3065838
2022-04-12 06:31:07 -07:00
nakul kachhwaha
91468b4a79 qcacld-3.0: Add ucfg API to set 6ghz relaxed conn policy flag
Add ucfg API to set 6ghz relaxed connection policy flag.

change-Id: I659bf86c4308691d5adc9f2a4d2ed3c38bbc63f0
CRs-Fixed: 3166847
2022-04-06 03:25:15 -07:00
Madhvapathi Sriram
79e13b55ab qcacld-3.0: User MCC quota setting
Set the MCC quota for a given interface.

Change-Id: I313cdf1673f8fc5f50a049d429c0d88fd213e66f
CRs-Fixed: 3106146
2022-03-14 00:43:35 -07:00
nakul kachhwaha
12c10fe176 qcacld-3.0: Add config to ease scan/connection restriction in 6Ghz
Add new config to ease scan and connection restriction
in 6GHz band when bss is advertising different country.

Change-Id: I13bd0dbd52fad297b995add8fc8a71d7a058c25b
CRs-Fixed: 3135152
2022-03-08 01:19:44 -08:00
Jayachandran Sreekumaran
0a8f7d7347 qcacld-3.0: Dynamic ratemask update
Add support for dynamic ratemask update.

Change-Id: I9aede4bdcd399af6c8e827f813016df63d7b8ab1
CRs-Fixed: 3112489
2022-03-01 05:38:56 -08:00
Balaji Pothunoori
be88a7597e qcacld-3.0: select min bw during csa if channel bonding disabled
During CSA max bw is selected for SAP in STA + SAP concurrency
for non-dfs channel and SAP is tear down after 60 sec of operation
due to STA is in 20Mhz and SAP is in 40Mhz with
IEEE80211_HT_CAP_SUP_WIDTH_20_40 flag disabled.

This change is to select 20Mhz BW during CSA if channel bonding is
disabled.

Change-Id: If4ed3d9a080ed976a0f4be6704848ae4494c7bbc
CRs-Fixed: 3126074
2022-02-24 10:42:24 -08:00
Balaji Pothunoori
8fbe1e4593 qcacld-3.0: Add ini support to disable regulatory channels
Currently regulatory channels are disabled for
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT vendor command
event if ini coex_unsafe_chan_nb_user_prefer is not set and if
STA operates on disabled channels which results in crash for
STA interface in STA + SAP SCC case.

Hence coex_unsafe_chan_reg_disable ini is controlled based
on coex_unsafe_chan_nb_user_prefer.

Ini behavior summary:

|----------------|----------------------|-------------|--------------------------------|
|User prefer ini | Reg chan disable ini |   PLs       |  Expectation		       |
|	         |			| 	      |				       |
|----------------|----------------------|-------------|--------------------------------|
|   1	         |	  1	        |   LE        | accept freq ext command and    |
|                |                      |             |  disable the regulatory channel|
|----------------|----------------------|-------------|--------------------------------|
|   0            | 	  0	        | Non-Pixel SP| reject freq ext cmd driver and |
|                |                      |             | returns NOT SUPP               |
|----------------|----------------------|-------------|--------------------------------|
|   1		 |	  0             |  Pixel SP   |  accept freq ext command and   |
|                |                      |             |  Don't disable the reg channels|
|----------------|----------------------|-------------|--------------------------------|

Change-Id: Ia3acbc133cab4865d8ad69992e893be91439f856
CRs-Fixed: 3128908
2022-02-17 05:03:07 -08:00
Srinivas Girigowda
0737e8caec qcacld-3.0: TWT cfg params initialization
Initialize TWT psoc cfg params with the cfg.ini values.

Change-Id: I326239d4f3f146113871fb3700fa82260988d697
CRs-Fixed: 3085507
2022-02-11 00:21:22 -08:00
Deeksha Gupta
1a6c49978e qcacld-3.0: Check peer broadcast TWT capability
Currently, for Broadcast TWT setup command, if peer does not
support TWT responder capability and supports broadcast TWT
capability then host rejects broadcast twt setup command
based on TWT responder capability.

Add condition to check the peer broadcast capabilities before
sending broadcast TWT setup request to firmware.

Change-Id: Iaa8941424d948d501655859564669baff4af9e69
CRs-Fixed: 3092276
2022-02-10 11:39:12 -08:00
Bing Sun
3e6513e3b8 qcacld-3.0: Implement beamforming configuration for EHT
Intersecting EHT beamforming configuration from ini and FW
indication, then save it to eht caps of mlme.
For sta, update mlme EHT beamforming configuration to FW
through WMI_VDEV_PARAM_SET_EHT_MU_MODE directly.
For ap, intersecting mlme EHT beamforming configuration and user
configuration, then send result to FW.

Change-Id: I3d6185896af9fc58eb1fb6db913d4a425f72c696
CRs-Fixed: 3113235
2022-01-25 06:57:40 -08:00
Balaji Pothunoori
abc80f8a60 qcacld-3.0: Add ini support to prefer user coex unsafe freq list
Currently coex unsafe freq event is honored from firmware using
"wmi_wlan_freq_avoid_event_id".

As per requirement, add ini to don't honor coex unsafe freq
event from firmware and use the coex unsafe freq list from
vendor QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT.

Change-Id: Ia3acbc133cab4865d8ad69992e893be91439f705
CRs-Fixed: 3114742
2022-01-24 14:40:54 -08:00
Liangwei Dong
a185d29d1b qcacld-3.0: Add INI to configure MGMT frame HW retry count
Add INI - mgmt_frame_hw_tx_retry_count to configure MGMT
frame HW tx retry count for certain frame types.
The INI String format:
frame_hw_tx_retry_count="<frame type>,<retry count>,..."

The supported frame types are defined by enum mlme_cfg_frame_type.
Retry count max value is 127.
For example:
mgmt_frame_hw_tx_retry_count="0,64,2,32"
The above input string means:
For p2p go negotiation request fame, hw retry count 64
For p2p provision discovery request, hw retry count 32

Change-Id: I32f6c7d83ede9b28484c7a0b29824bde32e06422
CRs-Fixed: 3082532
2021-12-08 12:41:18 -08:00
Deeksha Gupta
0dbd5cacf6 qcacld-3.0: Check peer TWT capability before TWT setup request
Currently, in TWT setup command, if peer does not support TWT
capabilities then firmware returns status = 4.

Add condition to check the peer capabilities before sends TWT
setup request to firmware.

Change-Id: Icd1cbeff2db2bdec4e456013e98270a526ff22ce
CRs-Fixed: 3082071
2021-12-01 16:13:05 -08:00
Rongjing Liao
7d30fea1c8 qcacld-3.0: support 2.4G 1x1 + 5G 1x1 DBS config for FW
Currently host doesn't support below configuration for FW:
gEnable2x2=0 (disable 2x2 mode)
dual_mac_feature=0(ENABLE_DBS_CXN_AND_SCAN)
tx_chain_mask_2g=0x1
rx_chain_mask_2g=0x1
tx_chain_mask_5g=4
rx_chain_mask_5g=4
disable_rx_mrc_2g=1
disable_tx_mrc_2g=1
disable_tx_mrc_5g=1
disable_rx_mrc_5g=1
gSetTxChainmask1x1=0
gSetRxChainmask1x1=0

Now there is a new requirement for QCA6595:
1. RF chain0: WLAN 2.4G with 1x1 antenna
2. EF chain1: WLAN 5G with 1x1 antenna
3. RF chain1: BT 2.4G with 1x1 antenna

To support this new requirement, need to exclude the case in
condition check when gEnable2x2=0 and dual_mac_feature=0.

Change-Id: Ic08a4b7f5eb4beece867d7d7b4ae1796e67eae85
CRs-Fixed: 3074098
2021-11-24 15:39:28 -08:00
sheenam monga
65c2cb4682 qcacld-3.0: Add ini support for tx_retry_multiplier
Add ini support for tx_retry_multiplier and send
tx_retry_multiplier to fw as PDEV_STATS_TX_XRETRY_EXT
pdev param, so that fw can multiply the counter by the
percentage provided by user.

Change-Id: Ie2f06dc3aaa4a161a451b68abd085cc1537eb468
CRs-Fixed: 3066799
2021-11-10 02:30:44 -08:00
Jianmin Zhu
22dd408968 qcacld-3.0: Add self bss roam check for connnect cmd
Add self bss roam check in roam invoke cmd handler,
If ini enable_self_bss_roam is 0, don't permit to roam
to current connected bss, just keep current connection.

Change-Id: I7fe724e26d15bcc008957829e4e3384c60b58773
CRs-Fixed: 3069587
2021-11-08 13:21:18 -08:00
Ashish Kumar Dhanotiya
693f6400d1 qcacld-3.0: Add ini to enable/disable vht mcs 10 and 11 support
Currently there is no ini to enable/disable vht mac 10, 11
and this feature is completely based on FW capability.

Based on current requirement add support to enable/disable
vht mcs 10/11 feature from ini.

CRs-Fixed: 2861854
Change-Id: I350daea8a2f81bfeac25ccdda026d1a5d1c133e3
2021-10-08 23:15:43 -07:00
bings
a44cf88b36 qcacld-3.0: Implement legacy commands of easy mesh
Provide below APIs for easy mesh.
API to get the current frequency of the given VDEV.
API to get acs status of the given VDEV.
API to get cac status of the given VDEV.
API to get/set bandwidth of the given VDEV.
API to get band information of the given VDEV.
API to get connected STA count of the given VDEV.
API to get BSSID of the given VDEV.
API to get SSID of the given VDEV.
API to set channel of the given VDEV.
API to get/set cac timeout of the given VDEV.
API to get/set country code of the given VDEV.

Change-Id: Ia0bd201ad8155a66a4a8c5517f6fa43f3f358505
CRs-Fixed: 3027192
2021-09-30 10:51:28 -07:00
Yu Wang
d3a8dfe1b6 qcacld-3.0: update rates set on connect success
Update operational rates set, extended operational rates set
and MCS based rates set in VDEV MLME legacy priv object on
connect success.
Refine the APIs for fetching these rates.

Change-Id: I7697b3d2e26e2fc565a2e672afe19f255af89d7e
CRs-Fixed: 3044036
2021-09-28 21:11:56 -07:00
Pragaspathi Thilagaraj
7e90b8b5f5 qcacld-3.0: Fix missing attributes in connectivity logging events
Fix few missing attribute in below connectivity events:
QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_RESPONSE
QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CURR_AP

Also send the roam candidate info properly to userspace.

Change-Id: Ia9c4f095316adf8f40294f1e119cad648749bb72
CRs-Fixed: 3037650
2021-09-28 21:11:51 -07:00
Pragaspathi Thilagaraj
9081371b4b qcacld-3.0: Add changes to send connectivity log events to userspace
Fill the QCA_NL80211_VENDOR_SUBCMD_DIAG_DATA event data and
send the event to userspace.
Add dispatch table for the connectivity events to lookup
attribute type, id and length.

Change-Id: I1fc8467409852a430874ac1d926b06ec8dafb736
CRs-Fixed: 3030085
2021-09-26 04:49:49 -07:00
Nirav Shah
b7fe8299dc qcacld-3.0: Add ini configuration to limit supported HE MCS rates
Add ini configuration to limit supported TX/RX HE MCS rates.
In case of XR use-case, higher throughput is not needed but
higher reliability is expected. So, this ini provide option to
limit HE MCS rate capability to MCS0-7 to achieve higher reliability.

Change-Id: Id6343f5b28d341e5ee377d11ad8420e3b8ded6ef
CRs-Fixed: 3033342
2021-09-23 04:25:11 -07:00
sheenam monga
c339ab4ddf qcacld-3.0: Check Fw capability to support p2p + p2p concurrency
Check fw capability to support p2p + p2p concurrency from
soc_fw_ext_caps and based on fw capability, set policy
mgr concurrency for p2p + p2p.

Change-Id: Ia32f81f37174e9d722911b1fae6d4897d0af9816
CRs-Fixed: 2991300
2021-09-17 01:18:20 -07:00
abhinav kumar
3173789d99 qcacld-3.0: Add new BT Coex roam trigger reason
Send additional roam trigger TLV for BTC in
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
command, to support a new roaming trigger
"WMI_ROAM_TRIGGER_REASON_BTC".

Change-Id: Ib767bd6bcf005c187b0fb58986ad287fe8753c1b
CRs-Fixed: 3009788
2021-09-10 20:09:34 -07:00
Pragaspathi Thilagaraj
100c310363 qcacld-3.0: Set PS config per vdev
Currently the PS config received from kernel/userspace is set
to mac_ctx globally. This causes PS config set for one vdev to
override on the other vdev.

To avoid this, set the PS config per vdev.

Change-Id: I6a2e2a9d8fb67b94d9d5f1d4164077990bdaf4a5
CRs-Fixed: 3007060
2021-09-01 14:02:27 -07:00
Kiran Kumar Lokere
cde70adc46 qcacld-3.0: Config support to use BSSID in probe request RA
User configuration support to use scan request BSSID value
in Probe Request frame RA during the scan.

Change-Id: Ie0b7620428e1bfbd51e7430b6b7ad23ebede9e67
CRs-Fixed: 3021525
2021-08-27 01:05:14 -07:00
Jyoti Kumari
bf9589ac92 qcacld-3.0: Reset twt active command if ack fail
Reset twt active command if ack fails due to firmware internal
error.

Change-Id: Ic980314261ab4f6deb437b36e525ea59c286eee2
CRs-Fixed: 2997509
2021-08-05 15:13:27 -07:00
abhinav kumar
a0e112969b qcacld-3.0: Restore dual sta config after SSR
Save dual sta configuration in hdd context and
restore it after SSR. This allows driver STA + STA
connection in MCC/SCC.

Change-Id: Ia8bb8c845f0f76e7ce41ff32ab0a3bc6d5111018
CRs-Fixed: 2998225
2021-08-04 21:13:15 -07:00
Jyoti Kumari
87fb1e3c33 qcacld-3.0: Mismatch of TWT responder bit in HE caps and EXT caps
In a beacon template, there is a mismatch of twt responder bit in
HE caps and extended caps.

During start BSS, there is a kernel flag related with twt
responder. Intersect this kernel flag and service bit capability
before calling twt enable/disable api in start BSS.

Change-Id: I0725fc560904c622cc47f43958bcd490daacfa2f
CRs-Fixed: 2995538
2021-07-28 04:30:24 -07:00
bings
5b8e66816a qcacld-3.0: register mlme mlo ext call back
register mlme mlo ext call back.
unregister mlme mlo ext call back.

Change-Id: Ifbfd474fcd01d091c65d6dbde08c9877d05e3cd5
CRs-Fixed: 2976146
2021-07-21 17:14:43 -07:00
Jyoti Kumari
f93a29459a qcacld-3.0: Add support for TWT ack event
In case if TWT command (i.e setup, terminate, pause, resume,
nudge) comes from userspace and if the firmware is in below mode
1. scan in progress
2. roam in progress
3. CSA is in progress
4. any other error
then the command needs to be rejected in userspace context

Synchronize the TWT commands so that whenever command goes from
driver to firmware, then driver will receive ack event first
followed by respective event (i.e add dialog, delete dialog,
pause, resume, nudge) with below condition
1. If driver receives the ack event as successful then driver
   waits for this ack event, respective event with status of the
   TWT action frame over the air is expected.
2. If driver receives the ack event as failure then it will
   reject the TWT command request in userspace context.

Change-Id: Ib68b89b74b5e44f28106884efd7412cee49f5bd8
CRs-Fixed: 2987978
2021-07-20 11:08:57 -07:00
Li Feng
39ef2d2c6d qcacld-3.0: Add sanity check for bmiss configuration from vendor cmd
Add sanity check for bmiss configuration from vendor cmd:
the device mode shall be station mode,
the final beacon miss value can't exceed ini max setting,
vdev_id shall correspond to the interface from vendor cmd.

Change-Id: I7ecdd40f69a8317ccd5362adbcad1159b1792ab7
CRs-Fixed: 2990863
2021-07-20 05:13:41 -07:00
Deeksha Gupta
ed12a74d8c qcacld-3.0: Add support for FT over DS
Add support to enable the "FT over DS" via
QCA_WLAN_VENDOR_ATTR_CONFIG_FT_OVER_DS vendor config
command.

This configuration helps the firmware to support
“FT over DS” instead of “FT over Air”

Change-Id: I493bf15f83bc39135aaeefa9d8ef328f0fc0cda3
CRs-Fixed: 2968680
2021-07-15 04:13:04 -07:00
Srinivas Dasari
c65ead975b qcacld-3.0: Let IOT APs recover by avoiding back to back DELBA
Station sends the BA and upgrades to the next possible BA window
size upon receiving all frames successfully from the current
window. Some IOT APs go out of sync from BA window size of the
station when AP fails to receive the BA sent from station. AP
transmits the frames again with previous window sequence number
and won't be ack'ed by station hardware as BA window has already
moved ahead. So, station deletes the upgraded BA and tries
to fallback.

Ideally, AP is supposed to consider the fact that "the previous
window transmission was successful when station upgrades to next
window size". But some APs take little longer time to
recover/upgrade to next window size. Don't delete the BA
immediately and have some tolerance(3 seconds) as the previous
negotiated BA just got deleted.

Change-Id: I6b277223f02dac521316cec20bd5d958785cc2e9
CRs-Fixed: 2970714
2021-07-06 02:15:48 -07:00
Kiran Kumar Lokere
73061c8eff qcacld-3.0: Config support for STA bss color collision detection
Add INI configuration support to enable/disable BSS color collision
detection offload in STA mode.

Change-Id: I9d8f096813d74242566ccae5f92e872bcaca6295
CRs-Fixed: 2965133
2021-06-22 16:17:50 -07:00
Srikanth Marepalli
e4323e039d qcacld-3.0: Enhance the EAPOL handshake offload INI per AKM
Existing INI disable_4way_hs_offload is defined as a boolean
that controls the EAPOL Handshake to be offloaded to Firmware or
Not. There is no way to specify the EAPOL offload per AKM.

Hence extended the support of EAPOL handshake offload to firmware
per AKM by converting this INI to a bitmap integer.
With ini value as 0 by default Firmware takes care of 4-way HS
during roam for all AKMs except for SAE and OWE. If
this ini value is 1 then Host takes care of EAPOL for all AKMs.

Having the backward compatibility, added a new value to ini.
If this ini value is set to 2 and also if the SAE EAPOL offload
service bit is set by Firmware then the behavior is same as ini
with 0 except that Firmware takes care of 4-way HS for SAE roam
as well. And for OWE it is still handled by supplicant.

To achieve this, new roam offload flag is introduced to indicate
Firmware about SAE roam EAPOL offload, So that in Roam sync
indication Firmware will inform the status as connected but not
authenticated so that supplicant can take care of 4-way EAPOL HS.

Change-Id: I8b65a1768fad91fac7e427712d3ccf4586176f5f
CRs-Fixed: 2955029
2021-06-07 22:54:32 -07:00
Srinivas Girigowda
bd0961f3db qcacld-3.0: Separate TWT enable command wrt req/res role
1. Currently, the same twt enable api hdd_send_twt_enable_cmd()
sends to firmware for both requestor and responder role.

2. When firmware receives enable command, it will be busy to
handle that command. If any back to back enable command, it can
lead to some issues.

As part of this change, decouple enable api based on requestor
and responder role as per below:
for requestor: hdd_send_twt_requestor_enable_cmd()
for responder: hdd_send_twt_responder_enable_cmd()

Synchronize twt enable command to avoid back to back command
issue.

Change-Id: I3d3840740fee7413d6123ece919c42558e9b35d1
CRs-Fixed: 2937540
2021-05-27 03:46:45 -07:00
Ashish Kumar Dhanotiya
cc3c67977d qcacld-3.0: Add ini support to enable NAN on indoor channels
Currently there is no  support to enable NAN on indoor channels,
as per the new requirement add an ini support to enable NAN on
indoor channels.

Change-Id: Ia3acbc133cab4865d8ad69992e893be91439f50f
CRs-Fixed: 2943668
2021-05-26 09:20:42 -07:00
Pragaspathi Thilagaraj
077006a020 qcacld-3.0: Add new roam scan type string
Add new roam_scan type string to indicate all the 5G+6G
channels are scanned.

Change-Id: I8f77b9b28d5b544d586612e177c86a3b730b0bd9
CRs-Fixed: 2947645
2021-05-19 14:37:43 -07:00
Liangwei Dong
edd0baca7d qcacld-3.0: Update ht cap max amsdu size
When vht cap indicates the vht max MPDU size >= 7991 supported,
ht cap A-MSDU length field should indicate 7935 octets
supported according to 80211 specification.
At present no WMI HT cap defined for ht cap A-MSDU length field
from target.
Fix the issue by override ht amsdu len to 1 if vht max mpdu
len >= 7991 supported by target.

Change-Id: I9d2b8c11e7a27e016f618c1a2c8a380d081a6ba7
CRs-Fixed: 2929148
2021-05-14 04:52:39 -07:00
Lincoln Tran
5ccffc5260 qcacld-3.0: Send 6G HE caps to userspace
New checks have been added in userspace to verify the 6GHz HE
capabilities before allowing the connection. These capabilities
are not currently being shared by host. Add logic to send the
6GHz HE capabilities to userspace.
Also, add APIs to get capabilities from MLME component.

Change-Id: I3d2bbe0d87be6094b6fc74ce01d0e418873cbc6f
CRs-fixed: 2931130
2021-05-06 20:53:00 -07:00
Lincoln Tran
3dc6bd54f5 qcacld-3.0: Add INI to not consider TPE IE
Sometimes, the AP sends low values in the TPE IE resulting in low TX
power. This causes DUT to have throughput/connection issues. Add an INI
to skip over TPE IE only in 2g/5g case. TPE IE will always be considered
in 6G band.

Change-Id: Ia0750195bb0aabf304743e1ad89c8f6d0c9ef1a3
CRs-fixed: 2936492
2021-05-04 13:03:36 -07:00
abhinav kumar
17a2fc170b qcacld-3.0: Update pmk cache entry for roamed AP
Consider two APs: AP1, AP2

Both APs configured with EAP 802.1x security mode
and OKC is enabled in both APs by default. Initially
DUT successfully associated with AP1, and generated
PMK1 by performing full EAP and added an entry for AP1
in pmk table. At this stage, pmk table has only one
entry for PMK1 (1. AP1-->PMK1).

Now DUT roams to AP2 using PMK1 (as OKC is enabled)
but session timeout happens on AP2 just before 4 way
handshake completion in FW. At this point of time DUT not
in authenticated state. Due to this DUT performs full EAP
with AP2 and generates PMK2. As there is no previous
entry of AP2 (AP2-->PMK1) in pmk table. When host gets
pmk delete command for BSSID of AP2, the BSSID match
fails. Hence host will not delete pmk entry of AP1 as well.

At this point of time, the PMK table has two entry
1. AP1-->PMK1 and 2. AP2 --> PMK2.

Ideally, if OKC is enabled then whenever timeout occurs in
a mobility domain, then the driver should clear all APs
cache entries related to that domain but as the BSSID
doesn't exist yet in the driver cache there is no way of
clearing the cache entries, without disturbing the legacy
roaming. Now security profile for both APs changed to FT-RSN.
DUT first disassociate with AP2 and successfully associated
with AP2 and perform full EAP and generates PMK3. DUT first
deletes PMK entry for AP2 and then adds a new entry for AP2.

At this point of time pmk table has two entry AP2--> PMK3
and AP1-->PMK1. Now DUT roamed to AP1 using
PMK3 but sends stale entry of AP1 (PMK1) to fw via RSO
command. This override PMK for both APs with PMK1
(as FW uses mlme session PMK for both APs in case of FT
roaming) and next time when FW try to roam to AP2 using
PMK1, AP2 rejects PMK1 (As AP2 is expecting PMK3) and
initiates full EAP with AP2, which is wrong.

Fix is to update pmk table entry for roamed AP1 with PMK3 value
comes to host via roam sync indication event.. By this host
override stale entry (if any) with the latest valid pmk for
that AP at a point of time.

Also add new api to get the sae single pmk ini value and
update the bss desc of single_pmk cap after intersecting the ini
value.

Change-Id: I12fecbae69d0d2a11f2a39eee6be960752d831bd
CRs-Fixed: 2889847
2021-05-03 15:03:10 -07:00
abhinav kumar
9ca87d9490 qcacld-3.0: Address corner scenarios for dual sta roaming
Address below corner scenarios for dual sta roaming:

1. Initialize primary interface vdev id
with WLAN_UMAC_VDEV_ID_MAX.

2. Enable roaming while processing set primary interface
vendor command irrespective of dual sta roam policy.

3. Disable mcc_adaptive_scheduler before sending
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID to FW and
enable it if host receives dual sta policy as unbiased.

Change-Id: I8e5254c6f9053bd5fe7f925af4b577e76c9b9a2e
CRs-Fixed: 2928870
2021-04-26 10:01:30 -07:00
abhinav kumar
7e315ca4af qcacld-3.0: Set time quota for 2 MCC vdevs/adapters
If STA + STA connected in MCC, FW should distribute
the duty cycle between primary and secondary connection
in 70:30 ratio.

Quota for the 2nd role is calculated as 100 - quota of
first mode.

Change-Id: I36ab9a9717da1e1f0ff0e0e11a18681c97ed6c58
CRs-Fixed: 2927460
2021-04-26 10:01:16 -07:00
abhinav kumar
0ad5179cd6 qcacld-3.0: Add support to set primary STA interface
Add support to primary STA iface when there are more
than one STA iface concurrently active via the
SET_WIFI_CONFIGURATION vendor command.

Below attribute associated with this vendor command to
give indication to host to set primary interface:
QCA_WLAN_VENDOR_ATTR_CONFIG_CONCURRENT_STA_PRIMARY.
Set indicates that the specified iface is the primary
STA iface.

This configuration helps the firmware/chip to support
certain features (e.g., roaming) on this primary interface,
if the same cannot be supported on concurrent STA ifaces
simultaneously.
This configuration is only applicable for the STA iface and
gives the priority for it only over other concurrent STA
ifaces. 1-Enable, 0-Disable.

Change-Id: I2bc7d8880c78c0c05e824f58aadacd84369d1880
CRs-Fixed: 2915728
2021-04-22 21:59:09 -07:00
abhinav kumar
31df4c4960 qcacld-3.0: Add support to config concurrent dual sta policy
Add support to configure the concurrent session policies
when multiple STA ifaces are getting active via the
CONCURRENT_DUAL_STA_POLICY vendor command.

Possible values associated with this vendor command are:
1. QCA_WLAN_CONCURRENT_STA_POLICY_PREFER_PRIMARY:
This indicates host to give preference to the Primary
STA interface while selecting the connection policies
(e.g., BSSID, Band, TX/RX chains, etc).

2. QCA_WLAN_CONCURRENT_STA_POLICY_UNBIASED:
This indicates connection policies for the subsequent STA
connection shall be chosen to balance with the existing
concurrent STA's performance.

Change-Id: I56994a182bb54adca57c3fc8fce9963b5db37b79
CRs-Fixed: 2915718
2021-04-22 21:59:04 -07:00