When multiple measurement requests are received in a single beacon
report request, multiple iterative scans are triggered for each
request for the frequency list provided in the request. This results
in free of rrm context global frequency list by the second
request rrm scan in the iter measurement timer start failure path
and was accessed by the scan done callback of the 1st measurement
request.
Add null check for rrm context frequency list and also if the
timer is already running, send measurement done indication for
that request.
Change-Id: I149ba47872095228595cd52535fb76c422eefba7
CRs-Fixed: 2648618
During set channel request for monitor mode vdev start is triggered.
The vdev operation is completed only when vdev up is send to FW.
Wlan driver does not wait for completion of the vdev up operation
and after posting set channel request context is returned to supplicant.
Supplicant sends vdev stop operation for montior mode which results in
vdev up command sending to FW after vdev stop.
Fix, is to wait for completion of vdev up operation, then return the
context to supplicant.
change-ID: I33d7f9f85848b74d1206cff145e27ca2d96580a0
CRs-Fixed: 2627239
Presently vdev delete is sent to firmware 1st and the object manager
vdev delete is deleted after all the references are released.
With this change the vdev delete is sent to firmware when all the
references are released and the vdev delete is sent to firmware via
the object manager vdev delete notification.
Change-Id: I67bea0d2b2a0d2d9eb4602e5d0b8bbdcafdd4d26
CRs-Fixed: 2618278
Currently when association reject with reason code 53(invalid
pmkid) is received from the AP, then we delete the pmksa entry
for that AP from csr_session, but with converged crypto component,
the entry needs to be deleted from the crypto pmk table.
Else when associating to the same AP again, driver will use the
stale pmk for the AP again.
Delete the pmk entry from crypto pmk table when association
reject is received from AP with reason code 53.
Change-Id: I54f4a7ee7e02d35e0560bfad9fe2e3466aaa361d
CRs-Fixed: 2636570
For FILS pmksa cache, the pmksa add/del/query is based on SSID
and cache id.
1. Add SSID/Cache ID to pmksa cache using pmksa API.
2. Set PMK to csr session if PMK is present, PMK will be sent
to FW in RSO command.
Change-Id: I88a3e70a50565300ebab9723b439ee7674788b55
CRs-Fixed: 2621846
Clear sae_single_pmk info while processing del/flush pmk command
from supplicant, if required.
Change-Id: Idd974822ef0426461cd9971e54d8244d64b246b5
CRs-Fixed: 2616036
Currently beacon IEs of the connected AP are cached in host driver
and flushed when it disconnects. Userspace needs this info after
disconnection to know the capabilities of the last connected AP.
So don't flush the IEs just after disconnection and provide the
same to userspace in GET_STA_INFO when queried. IEs are flushed
in the next connection.
Change-Id: I29c308b01b7519fffa174e26d644e0817e51b6fc
CRs-Fixed: 2624882
Firmware advertises WMI_SERVICE_ROAM_SCAN_CHANNEL_LIST_TO_HOST_SUPPORT
at the time of initialization. When user requests for roam scan channels
to driver using GETROAMSCANCHANNELS command, driver queries firmware for
roam scan channel list by sending wmi command with command id
WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID and vdev id.
Firmware response to WMI_ROAM_GET_SCAN_CHANNEL_LIST_CMDID commmad is
WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID. This event has roam scan channel
list, vdev id, connected BSSID, command_response.
Firmware issues WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID event for two reasons,
one for GETROAMSCANCHANNELS command where firmware sets command_response=1
in wmi event and asynchronous event upon disconnection where firmware sets
command_response=0 in wmi event.
Change-Id: I690aca6c3f1e3aa7ae1fe54aadc839ea19446079
CRs-Fixed: 2621535
Extend ini value to disconnect from current AP
if roam failure happens after the NUD failure.
Change-Id: Id764c97b5c1748b1d513d85d4063868a1c77141b
CRs-Fixed: 2622087
Currently, host driver sends disconnect reason code as UNSPECIFIED
to kernel in most of the disconnection scenarios. Correct the same
to send proper reason code received from peer in case of peer
initiated disconnections.
Introduce new reason codes for internal disconnections and assign
proper reason code for each possible disconnect scenario.
Change-Id: I99bf4573b59dc810e0a1529fcd48061d10acae4e
CRs-Fixed: 2622310
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
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
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
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
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
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
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
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
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
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
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
Currently the monitor mode does not check the chan
validity and BW validity before starting the monitor
mode vdev which could result in invalid configuration
given to FW and thus further can lead to assert.
Eg. If the command comes for an invalid channel, or
suppose 160 MHZ and the device supports 80 MHZ only
then it can lead to assert.
Fix is to verify the channel and BW info and reject
the command if found invalid.
Change-Id: Iaf9f06f8d4b943bd1e8db5c22ea155a4fe3e61a8
CRs-Fixed: 2572152
PMF info isn't filled in scan filter when find AP in scan
cache to build LFR3 channel map.
Change-Id: Ibacf0ee6534298415f97fc42e5223b7d85f203e0
CRs-Fixed: 2571777
The ANI level determines how well the device is coping with interference
in the wireless environment. Add support in the driver to query the ANI
level from the firmware and populate it for userspace entities to use.
Change-Id: I54934f670aa11737e11eca4d64e12f9dffb4f430
CRs-Fixed: 2554674
Send vdev create to firmware when the mlme vdev create handler
is invoked as part of the vdev object create.
Change-Id: Ibba02f6b5885d7b3a62529ef51768f520395513e
CRs-Fixed: 2555943
Check for any duplicate peer with the same mac address before
the vdev is created.
Change-Id: Ie6d71b7b2892ab2ac6e8bfb37c99f20f0854c2f2
CRs-Fixed: 2555932
1) Change the following functions' signatures and/or code
to make them using frequencies instead of channel IDs:
hdd_get_adapter_home_channel
hdd_get_operating_channel
wlan_hdd_request_pre_cac
wlan_hdd_validate_and_get_pre_cac_ch
__wlan_hdd_request_pre_cac
hdd_check_and_disconnect_sta_on_invalid_channel
set_first_connection_operating_channel
sme_is_channel_valid
csr_roam_is_channel_valid
2) Remove the declaration, definition and usage of
csr_roam_is_chan_freq_valid, and replace it with
csr_roam_is_channel_valid as this API does exactly
the same thing.
3) Retain the code/logic for chan ID utilization in
function set_first_connection_operating_channel as
it is used to convert the parameters issued by
user space apps.
4) Fix a few camel cases in csr_api_roam.c
Change-Id: I4f9cfa21a5f40288ad9492ac8be7939ed8eb6484
CRs-Fixed: 2565002
Presently vdev delete is sent via serialization, which
needs a vdev reference. With the new FR to send the
vdev delete on the physical destroy in object manager
vdev delete cannot be sent via serialization.
Hence, disable the serialization for the vdev and
donot send the vdev delete via serialization.
Change-Id: I3afa34880ddaab68850ed235ec1451370d82e7dd
CRs-Fixed: 2566120
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:
csr_roam_select_bss
Change-Id: I9c68e173af01d7cb29672179a7bbffb354134f87
CRs-Fixed: 2564011
Open/close session callbacks are common for all the device modes
supported, so register once during the start_modules.
Change-Id: Ia94857ce4cc608be30e9974ddde8a6261d45f6e3
CRs-Fixed: 2555919
Acs changes for 6ghz to change chan to frequency
in the spectral params structure.
Change-Id: Iffd348ac5c2457b313b702a92b340a258992e764
CRs-Fixed: 2564043
Modify the following 3 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
sme_get_reg_info
wlan_hdd_get_channel_info
hdd_update_channel_bw_info
Change-Id: I87ad6fb9cd9fcd7fe4e41e62a32e4954e93f8ba1
CRs-Fixed: 2554710
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.
Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.
Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_is_valid_channel
Change-Id: Ie0c912459daf8bcd907b27a288ad82edd18c22f1
CRs-Fixed: 2554177
Do not start motion detection if baselining is not done, or motion
detection config values are not available
CRs-Fixed: 2547648
Change-Id: I23a02dbd21e2b673e625938a35003f3730135327
As part of Ie9ffc701d93ed1c050375dd56151b7a0da69cdce the STA mode
channel change was added in disconnected state for spectral scan
test at CV2X platform.
Now with iwpriv wlan0 setMonChan on STA mode, a monitor mode
pe_session is created in PE/LIM which take ref count with
WLAN_LEGACY_MAC_ID. As the interface is STA type this session
is not deleted when vdev is deleted. This lead to vdev ref leak.
This code is broken and is no longer in use and cause vdev
ref leak when executed. Thus revert
Ie9ffc701d93ed1c050375dd56151b7a0da69cdce.
Also move the lim session create to hdd_set_mon_rx_cb during
vdev create, as it is deleted during vdev delete.
Change-Id: Ib60aa2bd2746a8cd17f20efa7506c18784a42630
CRs-Fixed: 2557160
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_operation_channel
wlan_hdd_update_survey_info
Change-Id: I90f05cc7fedd061bf08b47299d2fb6530c470136
CRs-Fixed: 2554149
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_roam_scan_channel_list
drv_cmd_get_roam_scan_channels
Change-Id: I4e6edee71ef25bf73c170813159f5078f0c3e612
CRs-Fixed: 2554148