Gráfico de commits

2281 Commits

Autor SHA1 Mensagem Data
Pragaspathi Thilagaraj
f088933247 qcacld-3.0: Refine csr_dump_connection_stats() with more info
Add following changes to refine csr_dump_connection_stats:
1. Remove unused argument and rename the function to reduce the
number of characters used.
2. Add self mac address information.
3. Rename Auth type to AKM. Print the AKM string instead of
existing diag auth type enum as it doesn't include new WPA3 and
FILS related AKM.
4. Print channel and channel bandwidth on the same line.

New format of log:
csr_connect_info: 3692: +---------CONNECTION INFO START------------+
csr_connect_info: 3692: VDEV-ID: 0 self_mac:18:23:73:36:23:0f
csr_connect_info: 3692: ssid: FILS_AP
csr_connect_info: 3692: bssid: c8:b3:73:36:a3:0f
csr_connect_info: 3692: rssi: -25 dBm
csr_connect_info: 3693: channel: 6 channel_bw: BW_20MHZ
csr_connect_info: 3695: dot11Mode: DOT11_MODE_11N
csr_connect_info: 3700: AKM: FILS-SHA384
csr_connect_info: 3701: Encry-type: ENC_MODE_OPEN
csr_connect_info: 3702: channel frequency: 5745
csr_connect_info: 3703: Qos enable: 1 | Associated: yes
csr_connect_info: 3704: +---------CONNECTION INFO END------------+

Change-Id: Ia87357dd607bfa0d9256c8129bf8e4448ae93104
CRs-Fixed: 2614465
2020-02-06 14:31:39 -08:00
sheenam monga
008dd2b326 qcacld-3.0: Log optimization for Roam Invoke
Currently there are unnecessary/duplicate logging. Identify and
reduce those logs that are not necessary.

Change-Id: I5ec0a7e06cdade73f0e99369ad89b0b677a9a96b
CRs-Fixed: 2615407
2020-02-06 08:41:19 -08:00
gaurank kathpalia
02743447bd qcacld-3.0: Fix mem leak issue
Fix mem leak issue in power save config
path to FW.

Change-Id: I1ee8961774047f094406222170092e45965b6372
CRs-Fixed: 2615206
2020-02-06 02:11:06 -08:00
Abhishek Singh
4ec44a7db6 qcacld-3.0: Optimize logs in connect req in HDD and CSR
Remove redundant logs and optimize the logs for connect in
HDD and CSR.

Change-Id: I2d2d63aaaff814d91018e95a30869b81c1349a80
CRs-Fixed: 2615902
2020-02-05 12:31:18 -08:00
Kiran Kumar Lokere
681403ca0d qcacld-3.0: Support for auto rate LDPC configuration
Add support to configure auto rate LDPC setting to FW.

Change-Id: Ic2b707c7e2132f83b4ab8732b8e087742888725e
CRs-Fixed: 2613203
2020-02-04 19:34:07 -08:00
gaurank kathpalia
16f2a47c11 qcacld-3.0: Optimize logs in serialization
Remove redundant logs in serialization.

Change-Id: Icaebd5ce800ec035f082210785e95372cf2e7e72
CRs-Fixed: 2612824
2020-02-04 02:01:34 -08:00
gaurank kathpalia
ca2ecc8a2a qcacld-3.0: Remove redundent logs from the Sta connect req
Remove redundant logs from the Sta connect req.

Change-Id: I0b0d455802b0df3509010c31b908737c54a861c7
CRs-Fixed: 2614594
2020-02-03 19:46:52 -08:00
gaurank kathpalia
e7bd43280f qcacld-3.0: Set power save enable directly to FW
Currently, the driver schedules the message to set
power save enable/disable to FW as part of the
set power mgmt command received from the userspace.
This command is then scheduled and is sent via
the scheduler thread.
Generally, userspace sets the power save disable
when it starts the DHCP process and enables the
power save back when the DHCP is completed.
DHCP packets are sent through the Datapath and the
PS enable/disable command would be sent via the
control path explained above.
the Race could happen that the scheduler was busy
with some other task and the PS disable command
was in the queue and the DHCP process began.
This would result in DHCP packets going to the peer
with PS enabled.

The fix is to set the power save enable/disable directly
instead of using the scheduler path.

Change-Id: I0f2aed37f875c283f318fb44bcc40d0ab401413a
CRs-Fixed: 2611480
2020-02-03 09:39:06 -08:00
Abhishek Ambure
7b4b2ff625 qcacld-3.0: Reset roam configs to default while STA mode init
Reset roam configurations to default while station mode init.

Thus user gets default roam configuration with which STA mode is
initialized.

example: When STA connect to AP, user queries for default roam
scan home away time using following command of wpa_cli.
$wpa_cli
>driver GETSCANHOMEAWAYTIME
<OUTPUT is default value of gRoamScanHomeAwayTime INI>

Change-Id: If525e4a92fee6f4823996c1e1e34b9943fed0432
CRs-Fixed: 2607557
2020-02-01 00:44:09 -08:00
Pankaj Singh
50e40422d1 qcacld-3.0: Add support for WLAN thermal mitigation
As part of new requirement WLAN subsystem needs to perform thermal
mitigation action as per the thermal state of the device. The
wifi hal sends vendor command QCA_NL80211_VENDOR_SUBCMD_THERMAL_CMD
with the thermal level parameter and wlan host performs the required
appropriate action. wlan host driver maps the thermal level to
corresponding duty cycle off percent value and duty cycle value,
send WMI_THERM_THROT_SET_CONF_CMDID cmd to FW.

Make changes to perform vendor command handling, mapping thermal level
to duty cycle value and communicating the thermal information to FW.

change-ID: I77175048c817ab755cdb838018e414ef3ee0b112
CRs-Fixed: 2610395
2020-01-31 12:45:29 -08:00
Abhishek Singh
4dfc0eec9b qcacld-3.0: Optimize logs in serialization
Remove redundant logs and optimize the logs in serialization.

Change-Id: Iab3f6dce6067ceac94ca53fe36ca9027b6d9ca50
CRs-Fixed: 2612824
2020-01-31 07:12:57 -08:00
Amruta Kulkarni
04fc674134 Revert "qcacld-3.0: follow ref-ap edca if ref-ap and sta intersection is 11ax"
This reverts commit I707409d242ec6f91bbf6620862120747d697af92.

Change-Id: I47b0233998636f2bee0a34dfa8d9124ec21339da
CRs-Fixed: 2612393
2020-01-30 10:01:27 -08:00
Abhishek Ambure
82302fc938 qcacld-3.0: Update result for GETROAMSCANCHANNELS command
User can configure roam scan channels using SETROAMSCANCHANNELS and
ADDROAMSCANCHANNELS command.

As the result of GETROAMSCANCHANNELS command, driver returns the list
of channels configured by user.

Change-Id: I847215c8319f819f8db60690842ef50037fe6aaf
CRs-Fixed: 2610136
2020-01-29 12:56:32 -08:00
Pragaspathi Thilagaraj
acdf340ee1 qcacld-3.0: Add beacon report related logging to kmsg
Below beacon report/NEIGH rpt related details needs to be logged into kmsg:
i. Beacon Report Request
	1. Token, Class, Channel list, Duration, Mode, BSSID wildcard, SSID
ii. Beacon Report Response
	1. Token, Scanned AP Number
	2. Reason – If Beacon Report could not proceed.
iii. Neighbor Report request
	1. Sent from Mobile
iv. Neighbor Report Response
	1. Channel list

Add the required details in beacon/neighbor report TX/RX path

Change-Id: I719863ecd4ac607d65dbbfde806921fe7214ce10
CRs-Fixed: 2610596
2020-01-28 20:44:58 -08:00
Abhishek Ambure
843ece96eb qcacld-3.0: Block ADDROAMSCANCHANNELS if specific channels configured
User configures specific channel using SETROAMSCANCHANNELS command
and preferred channels using ADDROAMSCANCHANNELS command.

For roam scanning, "specific channels list" is preferred over
"preferred channel list". Hence if user configured specific channels
then block ADDROAMSCANCHANNLES command.

Change-Id: Ib4e2c9ed7ca1e44c0c7e287e2ac350c3d4f3540e
CRs-Fixed: 2610133
2020-01-28 11:01:58 -08:00
Arun Kumar Khandavalli
da60bb1412 qcacld-3.0: Selectively reduce the SME logs
Selectively reduce the sme logs loglevel from info to debug.

Change-Id: Ie571aa0438e673d34d045869473935816d4289e9
CRs-Fixed: 2607108
2020-01-27 12:44:09 -08:00
Srikanth Marepalli
6a87278fe7 qcacld-3.0: Add support for pmkid generation for FIPS
Add support to fallback the PMKID generation from firmware to
wpa_supplicant.
In FIPS Enabled case, for roaming Firmware sends PMKID
request to host as firmware is not supposed to do crypto
functionality with FIPS enabled. Once the roam candidate
selection is done in the firmware, it sends the
WMI_ROAM_PMKID_REQUEST_EVENTID. After receiving this event
the host driver triggers an event to wpa_supplicant using
NL80211_CMD_PMKSA_CANDIDATE for PMKID generation. Then
wpa_supplicant responds with PMKID to host using
NL80211_CMD_SET_PMKSA. And host updates the wmi pmk cache
and indicates the firmware via WMI_PDEV_UPDATE_PMK_CACHE_CMDID
wmi command.

Change-Id: I7d33a2b92f97260fa5a7e742b6f877adc7eced55
CRs-Fixed: 2512955
2020-01-27 03:57:30 -08:00
Abhinav Kumar
c0716d4f8a qcacld-3.0: Fix race between wpa_supplicant and scheduler_thread
Driver receives roam invoke command from supplicant, Host start
processing it in wpa_supplicant thread and sends ROAM_INVOKE
command to firmware. FW indicates roam invoke failure, so host
clean up the AP (Disconnect). But wpa_supplicant did not get
scheduled till disconnection completion. After disconnection,
wpa_supplicant thread gets resume and sets the roaming in progress
true. This results in roaming in progress remain set in a
disconnection state.

sme_fast_reassoc should be protected with sme lock to avoid
the race between SB disconnect and sme_fast_reassoc.

Fix is to protect sme_fast_reassoc with sme lock and
set roaming in progress flag before sending sme_fast_reassoc
command to FW and reset it again if sme_fast_reassoc fail to
initiate the roam invoke.

Change-Id: I05d92f8d5916decbd2c6f99eb67da0a29525ead5
CRs-Fixed: 2608398
2020-01-23 19:21:08 -08:00
Srinivas Dasari
c5b2de38a6 qcacld-3.0: Allow RSO update cmds on RSO_STARTED state
Firmware operates on RSO update params only if state is RSO_STARTED.

Hence allow RSO update commands only in RSO_STARTED state.

Change-Id: Ic9d0d6df0608bfc4b4273f7c42c893dd52739d78
CRs-Fixed: 2605298
2020-01-23 05:10:04 -08:00
Abhishek Ambure
f15c50bad1 qcacld-3.0: Restore default RSO values after STA disconnect
Restore default RSO values after STA disconnect.

Change-Id: I6b230b5a8e00449955d641b440f12925340ca0df
CRs-Fixed: 2605336
2020-01-22 19:22:45 -08:00
Srinivas Dasari
a73e5f5dee qcacld-3.0: Clear static, dynamic roam channels on NCHO disable
For NCHO disable, clear static and dynamic channels from roam scan
list in driver and firmware.

Change-Id: I24bca4dfb34895b4e86455dea40764af163544f1
CRs-Fixed: 2605299
2020-01-22 10:57:51 -08:00
Vevek Venkatesan
2d88a6bc30 qcacld-3.0: cdp: Converge cdp_peer_ops
Currently cdp ops are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.

Hence as a part of cdp convergence, pass only
the pdev_id or vdev_id or peer mac address,
which will be used to get the respective handles,
and hence avoiding the unwanted access of the
handles if it has been deleted.

Also remove the ops which are used to store
and retrieve such handles, that no more needed.

- register_peer
- clear_peer
- change_peer_state
- peer_get_ref_by_addr
- peer_release_ref
- peer_state_update
- get_vdev_by_sta_id
- register_ocb_peer
- get_peer_state
- get_vdev_for_peer
- update_ibss_add_peer_num_of_vdev
- remove_peers_for_vdev
- remove_peers_for_vdev_no_lock
- copy_mac_addr_raw
- add_last_real_peer
- is_vdev_restore_last_peer
- update_last_real_peer
- peer_detach_force_delete

Change-Id: I5134ca882f5fcf0e5941317e48712717eddb58fe
CRs-Fixed: 2541708
2020-01-22 02:45:32 -08:00
bings
32e066d5bf qcacld-3.0: follow ref-ap edca if ref-ap and sta intersection is 11ax
If ref-ap and sta are both support 11ax mode, make sta edca follow ref-ap.

Change-Id: I707409d242ec6f91bbf6620862120747d697af92
CRs-Fixed: 2600718
2020-01-17 18:23:32 -08:00
Abhishek Singh
bda14831fa qcacld-3.0: Remove unused code for defer key
As setFTPTKState is never set to true the code for defer
key is not been used

Change-Id: I8afcebf00b00bcf39ba7da999c55e5eacdf26aaa
CRs-Fixed: 2604329
2020-01-16 15:46:48 -08:00
Alan Chen
9fcd4d39f9 qcacld-3.0: Fix remaining compilation issues regarding WLAN_FEATURE_11W
When CONFIG_WLAN_FEATURE_11W is disabled, compilation of lahaina still fails
in a few areas. Even though CONFIG_WLAN_FEATURE_11W should be always be
enabled now, add appropriate fixes for the compilation issues in the event
that CONFIG_WLAN_FEATURE_11W is disabled.

Change-Id: I1743678df6b66a63160795374de7969f313f55d9
CRs-Fixed: 2601362
2020-01-15 04:43:08 -08:00
Liangwei Dong
c1956bd4cb qcacld-3.0: Handle 6Ghz channel switch
Always use ECSA for STA/SAP channel switch between 6GHz band and
other 2Ghz or 5Ghz band since operating class is required to identify
an unique channel together with channel number in IE.
Change channel switch APIs to use frequency.

Change-Id: Ie655ae88b5223a3213146cb2684a70f91cdd5b04
CRs-Fixed: 2600136
2020-01-12 18:57:55 -08:00
Jianmin Zhu
7ff7fe7d37 qcacld-3.0: Some AP are missed in Beacon Report response
In radio measurement beacon report frame,  The BSSID field
indicates the BSSID of the BSS(s) for which a beacon report is
requested. When requesting beacon reports for all BSSs on the
channel, the BSSID field contains the wildcard BSSID; otherwise
the BSSID field contains a specific BSSID for a single BSS.

If BSSID is wildcard BSSID, bssid num should be 0 when use fill
scan result filter, or filtered scan result is always empty
since wildcard BSSID can't match any normal bssid.

Change-Id: Ia172ac8160d0c38ce4c875fc29458c6c8f26c804
CRs-Fixed: 2599634
2020-01-11 13:56:06 -08:00
Amruta Kulkarni
e673511908 qcacld-3.0: Change info/err prints to debug in roaming path
In roaming path, while processing roam synch indication info/err
prints at the driver adds up latency to the total roaming
transition time and the KPI for maximum transition time exceeds
the expected 100ms. The printk buffer is protected by a global
raw spinlock for readers and writers. This restricts the contexts that
are allowed to access the buffer. So large latencies exists when
printing to kmsg done with QDF trace levels WARN, INFO, ERROR.

Change the redundant/less significant info, error, warn level
prints in roaming path to debug level.

Change-Id: I8e2a03ddef8f3cd680263939f6e0275b8703e681
CRs-Fixed: 2597624
2020-01-08 20:10:31 -08:00
Yue Ma
b49b7fedc5 qcacld-3.0: Cleanup CRYPTO_SET_KEY_CONVERGED for SME layer
CRYPTO_SET_KEY_CONVERGED is a temporary flag which is used for
converged crypto component transition. The transition has already
been done, so cleanup legacy code related to the flag in SME layer.

Change-Id: Iff9ba19887caaa39f43cb58d519a14cf6e759d59
CRs-fixed: 2593523
2020-01-08 11:30:50 -08:00
Yue Ma
d03d10bcd1 qcacld-3.0: Cleanup WLAN_CONV_CRYPTO_IE_SUPPORT flag
WLAN_CONV_CRYPTO_IE_SUPPORT is a temporary flag which is used for
converged crypto component transition. The transition has already
been done, so cleanup legacy code related to the flag.

Change-Id: Ide9fa97a9eb0b5c197c762205f386651efc51e33
CRs-fixed: 2592096
2020-01-08 11:30:05 -08:00
Pragaspathi Thilagaraj
9cece7211d qcacld-3.0: Send PER config command before WMI_ROAM_SCAN_MODE command
The host driver sends WMI_ROAM_PER_CONFIG_CMDID command after
WMI_ROAM_SCAN_MODE as part of RSO start/update. But the
expectation from firmware is that host should send this after
WMI_VDEV_PARAM_ROAM_FW_OFFLOAD but before WMI_ROAM_SCAN_MODE.
Also the WMI_VDEV_PARAM_ROAM_FW_OFFLOAD is sent after set key
response from csr->lim->wma->wmi. But the
WMI_ROAM_PER_CONFIG_CMDID is directly posted wma (csr->wma->wmi)
which can cause this command to go before the
WMI_VDEV_PARAM_ROAM_FW_OFFLOAD is sent to firmware.
One more instance where the WMI_ROAM_PER_CONFIG_CMDID can go
before vdev roam fw offload init is if the userspace sends
blacklist update command before offload init happens.

So route the WMI_ROAM_PER_CONFIG_CMDID via lim before posting
it to wma and add changes in rso update config to block the
blacklist command being sent in ROAM_DEINIT state.
Also Call csr_roam_offload_per_scan before csr_roam_send_rso_cmd
in csr_roam_offload_scan to send WMI_ROAM_PER_CONFIG_CMDID before
WMI_ROAM_SCAN_MODE.

Change-Id: I2600cfeafcc3e3ebfac6694c1f2cdb5df0366411
CRs-Fixed: 2596257
2020-01-08 07:49:45 -08:00
Pankaj Singh
dc48e39e8d qcacld-3.0: Fix uapsd auto trigger command failing after addts
Modify sme_enable_sta_ps_check() to take power save mode
parameter as new argument.During certification WMMAC test
cases failed due to recent change of saving user power save
configuration. The uapsd auto trigger cmd could not be send
due to user power save configuration.

Apply the user power save configuration in conjunction with
power save mode.

Change-Id: I79bdfc3f4d168df23415bfb3418913de7a45886a
CRs-Fixed: 2592560
2020-01-08 04:52:24 -08:00
gaurank kathpalia
570f0aff4f qcacld-3.0: Fix issue for SMM before vdev start on 2.4ghz
Scenario:-
1. Turn on SAP and STA on 2.4ghz and 5ghz
2. Turn off SAP
3. Turn off STA
4. Turn on SAP on 2.4ghz

Issue:-
In the start ap function, the driver calls
the stop opportunistic timer and calls the handler
to goto SMM mode.
After this, the SAP checks whether it requires the
DBS or not and then requests for DBS also, but since
the driver is already in DBS mode this command gets
rejected, so there would be 2 commands in the serialization
queue which would be SMM and start AP, which would lead to
a crash as SMM is sent before a connection on 2.4ghz as
Hastings is not capable to start a vdev in 2.4ghz without
DBS mode.

Fix:-
1.Not allow SMM if the current connection requires DBS
2. Check the HW capabilty in the active command only and
not before that to protect the reliability of hw mode.

Change-Id: I1c0c05ea05ba14d1556af2612daa3de2ffcba367
CRs-Fixed: 2587508
2020-01-08 02:03:40 -08:00
Liangwei Dong
5f8906d29f qcacld-3.0: Fix unknown phymode in vdev start
If gDot11Mode=1 is set to INI, DUT STA will be failed to
connect to 5G AP due to "unknown phymode" included in
vdev start.
Correct the driver to use freq API to identify 5G band
BSS instead of channel API.
And the change forces 11ax mode for 6ghz bss.

Change-Id: I692fa744756490e7125ccd5fd82c15febc19ce68
CRs-Fixed: 2594048
2020-01-03 12:20:19 -08:00
sheenam monga
10b9a7ff27 qcacld-3.0: Send RSO update after roaming to a whitelist SSID
When roaming to  whitelist SSID, firmware offloads
EAPOL 4-way HS to supplicant. Suppose initially if DUT connects
to SSID1 and then firmware roams to SSID2 then 4-way HS should be
offloaded to supplicant as the firmware doesn't posses the
pre-shared key. When roaming happens between same SSID, then
firmware has PSK and 4-way handshake is taken care by firmware.

But due to issue in roaming code, 4-way HS is offloaded to supplicant
even if roam happens between same SSID. Issue is for ROAM_RSO_STARTED
state in csr_roam_switch_to_rso_start API, there is no handling to send
RSO update if Roaming is already started, due to which
csr_roam_offload_scan is not invoked.
Second issue in roaming code is that RSO is not enabled with the
new SSID2 in firmware. RSO is not enabled as after set key
complete the state of roaming state was not set to
eCSR_NEIGHBOR_ROAM_STATE_INIT. Due to this the SSID in
firmware is still SSID1 and when firmware tries to roam again
to SSID2 it offloads 4-way HS to supplicant instead of handling
within firmware only.

Fix is to update the roam state from eCSR_NEIGHBOR_ROAM_STATE_CONNECTED
to eCSR_NEIGHBOR_ROAM_STATE_INIT in csr_process_roam_sync_callback after
roam synch propagation and also handle ROAM_RSO_STARTED state with
roam_command ROAM_SCAN_OFFLOAD_UPDATE_CFG instead of returing success from
csr_roam_switch_to_rso_start API. Now when supplicant does set key after
4-way HS, roaming is enabled via csr_roam_chk_lnk_set_ctx_rsp->
csr_roam_link_up->csr_neighbor_roam_indicate_connect->
csr_neighbor_roam_info_ctx_init->csr_post_roam_state_change.

Change-Id: I5b81f2e03fe1c7dee2820370d06f4e4f8017f12c
CRs-Fixed: 2587120
2020-01-03 06:26:06 -08:00
Alan Chen
e37ba25faa qcacld-3.0: Change wlan vdev log level from error error to debug
After removing alarms, suspend failures are still seen saying that
linux is failing to freeze tasks. This is because there is an error
log message that indicates that at the time of suspend, there was no
active wlan vdev since the DUT is also in airplane mode. Thus, change
the log message level from error to debug.

Change-Id: I7ef0f0d9cf6eab26e53f62a176fc771e862b8ccd
CRs-Fixed: 2594922
2019-12-30 22:30:42 -08:00
Liangwei Dong
10054b9f9e qcacld-3.0: Channel to Freq conversion for channel overlap API
Use frequency as parameter for channel overlap handling
APIs - csr_check_concurrent_channel_overlap,
csr_calc_chb_for_sap_phymode, csr_get_ch_from_ht_profile,
csr_handle_conc_chnl_overlap_for_sap_go.

Change-Id: Ie3c9d466f21d7313998328432c063b1f6c7e5d0f
CRs-Fixed: 2577706
2019-12-23 09:35:06 -08:00
Sandeep Puligilla
a6b845d2c8 qcacld-3.0: Force STA connection in VHT
Force STA connection in VHT mode if AP HE adveritised rates
does not match with STA supported HE rates

Change-Id: Ia691a66ad4a2d2d2d59e07d07104e6771c6e4a84
CRs-Fixed: 2580041
2019-12-22 23:50:15 -08:00
Pragaspathi Thilagaraj
1e30b6ac29 qcacld-3.0: Clear Country code information after roaming
The connected profile in csr_roam_session is filled after join
success with an AP in csr_roam_process_join_res(). The connected
profile information also has the country code advertised by the
AP over its beacon in the Country Element (EID 7). When STA
roams from AP1 having country IE to AP1 which doesn't have
country IE, the driver checks if the country IE is present in
the AP2 beacon IEs. If the country code is present, new value is
copied, else the older country code value is not cleared.
This results in beacon report failure when roamed to AP2 due
to country code and op class mismatch.

Clear the country code in connected profile before checking if the
country code IE is present.

Change-Id: I503f9761ff33fb245a25b23893360389d7a0b258
CRs-Fixed: 2590117
2019-12-21 21:12:00 -08:00
Ashish Kumar Dhanotiya
d8d7dead7d qcacld-3.0: Add support for oem data event
Currently use of comamnd QCA_NL80211_VENDOR_SUBCMD_OEM_DATA
is to pass data blobs from Application to FW but there is
no mechanism to send the data blobs from FW to Application.

To meet the above requirement update the usage of existing
OEM DATA command to use it as a vendor event as well to
send data blob from host to Application.

Change-Id: I502312f25d2754984b86e1cc4e011800a5d4b58a
CRs-Fixed: 2573464
2019-12-17 14:09:53 -08:00
Pragaspathi Thilagaraj
376ead97d5 qcacld-3.0: Add MBO IE for Open auth connection
The host driver checks the peer PMF capability
before adding MBO IE. But for open authentication
AP, the peer will not advertise PMF capability.
So while connecting to open mode AP, the MBO IE
doesn't get added in the association request frames.

Check if the authentication algorithm is open.
If the authentication algorithm is open don't
check for peer pmf capability to add MBO IE.

Change-Id: Ieae85ce696a40234535388a548906dc9521b19a0
CRs-Fixed: 2584527
2019-12-14 14:13:14 -08:00
Pankaj Singh
f84a5dd718 qcacld-3.0: Fix connection latency situation in driver
In 11D scan procedure if WMI_11D_NEW_COUNTRY_EVENTID event is
received, host processes 11d new country code event.
Host driver as a response sends WMI_SCAN_CHAN_LIST_CMDID
new channel list cmd to firmware.

As a result the ongoing scan procedure is aborted by firmware,
and if the scan was a first scan for connection, then it would
lead to connection latency as the supplicant then have to
scan again.

Fix is to check if any scan is in progress, then delay
WMI_SCAN_CHAN_LIST_CMDID channel list command to FW till
the current scan is complete.

Change-Id: I4e747bb747c32430b5d8024823aa0df4928a8c71
CRs-Fixed: 2569741
2019-12-14 04:04:25 -08:00
wadesong
fbf576a8fa qcacld-3.0: Convert CSR legacy channel ID usage
Remove wlan_reg_freq_to_chan within function
csr_update_op_class_array and use channel frequencies
directly to retrieve opclass.

To utilize the new channel frequency function,
regional opclass table will be used unconditionally,
given no OTA packets' country IEs will be populated
here(and thus no need to carry global opclass).

Change-Id: Ida9831e7e74223455089770744222185ae3cb1d3
CRs-Fixed: 2576285
2019-12-13 14:11:30 -08:00
Abhinav Kumar
d83a689ba1 qcacld-3.0: Send pause indication to upper layer for proper vdev
While processing BEACON_REPORTING_ACTIVE_REPORTING vendor command
on a particular STA (say its vdevid == 0), If scan started on any
interfaces (for example, on same STA (with vdev id == 0) or P2P
(with vdev id == 1) or on second STA (with vdev id == 1) of
STA + STA), Host should send a pause indication to upper layer only
for the vdev id(s) (here vdev id == 0) on which host processing
BEACON_REPORTING vendor command comes from user space.

Add sanity check to make sure that HOST should send pause
indication to upper layer only for vdev of STA for which host
processing BEACON_REPORTING vendor command at the moment.

Change-Id: I5ed5dc42e4dded2a803349d75234b84d3aa7f314
CRs-Fixed: 2582389
2019-12-11 14:55:32 -08:00
Abhishek Singh
4f134e2ff7 qcacld-3.0: Cleanup unused legacy crypto api of csr
Cleanup unused legacy crypto api of csr.

Change-Id: I68cd35d8a72fbea675a34d9894563bf83e1fed8a
CRs-Fixed: 2583679
2019-12-11 03:21:03 -08:00
Liangwei Dong
2b0c18bde9 qcacld-3.0: Update 6GHz ch_width based on peer HE IE
In 6GHz BSS, the VHT and HT IE are not present and only
HE IE is present. Driver needs to update ch_width to peer
struct based on HE IE if vht and HT is not supported.

Change-Id: Ib48dc63f972cfc040b40c3dbf53a4c46f9e95eee
CRs-Fixed: 2583249
2019-12-11 03:20:50 -08:00
Jayachandran Sreekumaran
0eede6b342 qcacld-3.0: Remove the completed roam command from active queue
If hardware mode change is required during roaming, then
the roam command to disassoc from the current ap remains in the
active queue until SME receives hw_mode_res. Due to which the
SME requests for hardware mode switch and nss update are not
able to get queued into the active queue. Hence LFR2.0 roaming
fails to proceed after disassoc completion.

Removed the completed roam command from active queue.

Change-Id: I5f244ddba88cbb8af3a34e6f78b9b664ca009666
CRs-Fixed: 2576362
2019-12-10 00:50:32 -08:00
Abhishek Ambure
3d18b4c831 qcacld-3.0: Add max index check for dscp_to_up_map array
In SME layer, boundary check for dscp_to_up_map array is not present.

The dscpmapping is an array of 0x40 elements. Values in dscp_exceptions
are used to index dscpmapping. The indices are not validated to be less
than 0x40. The dscp_exceptions array is received from association
response frame. A malicious AP can send values up to 0xff, causing OOB
write of dscpmapping array.

Hence, max index check is added to avoid OOB write of dscpmapping array.

Change-Id: I73526849677e867673fc0bd0024ed2b003e4f89e
CRs-Fixed: 2569764
2019-12-10 00:50:20 -08:00
Abhinav Kumar
a3cc2199cf qcacld-3.0: Send roam ch list to fw for both roaming and initial conn
Suppose, STA first connected to AP0 then connected to AP1.
After connection HOST sends current op channel to fw as roam
scan channel map only if the current(AP1) and previous AP(AP0)
profile does not match.

Now a disconnect indication comes to STA from AP1. While processing
deauth with currently associated AP (AP1) host first deletes its
previous connection profile(AP0) and then save the current AP profile
(AP1) as prev profile and complete disconnection with AP1.

At this point of time, STA successfully disconnected with AP1 and
has info about AP1 as a previous profile.

Now STA initiates a fresh connection with AP2 and successfully
connected. In case if the profile of AP1 and AP2 match, host does not
send the current home channel to fw after connection with AP2. This
results in the unavailability of the current home channel in fw scan
channel list and FW fails to find any AP available on current
operating channels in the partial scan.

Irrespective of capabilities of current and previously associated
APs, Host should send current home channel to FW after initial
connection as well as while roaming. FW has logic to append its
channel list with a list coming from host. So send current AP
channel to firmware all the time.

Change-Id: I7942b98116c651e6b53f1134fd6cc85bc80b5354
CRs-Fixed: 2561340
2019-12-10 00:49:58 -08:00
Will Huang
95e5946964 qcacld-3.0: Enable Tspec handover when ESE capable roaming
Currently if roaming is offloaded to target, and it is a ESE capable
association, but 11r capable is not available, the Tspec configure
before roaming can't handover to new AP in host, but target has
reassociated with new AP include Tspec configure, and if want to
delete Tspec after roaming it fails to find it in lim in host.

Fix it by also enable ftHandoffInProgress flag if hit such case

Change-Id: Ie242d3c2e137c31bc5f213ea1756846f18b860ae
CRs-Fixed: 2566015
2019-12-09 17:28:22 -08:00