For packet capture mode, record the channel number on
which STA vdev is operating on.
Change-Id: Id52536b5b238dc1e4fe4c612a651c6fe8ddc17d3
CRs-Fixed: 2627713
Restore default RSO configs in host driver on disconnect, as vdev state
in the firmware is VDEV_STOP no need to update default RSO configs
in firmware.
Change-Id: I061dbfcc5e3fb5350a7fe240d8b1405e1548d7d5
CRs-fixed: 2627107
Improve logging in driver by avoiding unnecessary error prints
and combining logs.
Change-Id: Ibab9067aa1bce992f36fca22a5aed88e8d85ba25
CRs-Fixed: 2627549
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
Requirement is to allow station to just keep the
first PMK1 and PMKID1 which gets derived while first
connection and re-use it for roaming to other AP
which has some specific VSIE.
To support this feature, STA should Set new flag in 11i
params during RSO start/update when initial connection is
completed based on the VSIE in AP beacon/probe response
frame. This flag will allow fw to roam to AP(s) which has
VSIE with single PMK.
Update PMK info in RSO update command with sae_single_pmk
info if roaming is completed with AP(s) contains VSIE.
Change-Id: I6ef7a5581a380b0db323199fbda9407a5e792f4e
CRs-Fixed: 2616031
Requirement is to allow station to just keeps only one
PMK1 and PMKID1 which gets derived while first connection
and re-use it for roaming to other AP which has some
specific VSIE.
To support this feature, STA should Set new flag in 11i
params during RSO start/update when initial connection is
completed based on the VSIE in AP beacon/probe response
frame. This flag will allow fw to roam to AP(s) which has
VSIE with single PMK.
Update PMK info in RSO start command with
sae_single_pmk info if initial connection is completed
with AP contains VSIE.
Change-Id: I839b48da48f92f24444e69405d87560186d7f986
CRs-Fixed: 2616029
Requirement is to allow station to just keeps only one
PMK1 and PMKID1 which gets derived while first connection
and re-use it for roaming to other AP which has some
specific VSIE.
To support this feature, STA should:
1. Set new flag in 11i params during RSO start/update when
initial connection is completed based on the VSIE in AP
beacon/probe response frame. This flag will allow fw to roam
to AP(s) which has VSIE with single PMK.
2. STA should dynamically enable this feature if below
vendor specific IE on AP’s Beacon or Probe Response at
the first connection:
Category Data
Type 0xDD
Length 0x05
OUI 0x00 40 96
Type 0x03
Data Don’t care
(EX, 0x05)
Maintain a separate pmk information structure to support sae
roaming using single pmk.
Change-Id: I0aac7659cecd4d8aaff86c9715e512cf46f22615
CRs-Fixed: 2616035
Optimize logs after connect complete i.e roam offload params
and tdls state etc.
Change-Id: I5df7eb236ef1c7369f4d996c4f0eda7225652f12
CRs-Fixed: 2627694
Currently for big data logging in case of sap, query for
rssi, txrate and rxrate happens when station issues disconnect
to SAP but these stats are not queried when SAP
issues disconnect to the connected station.
To address above issue, add a logic to issue stats request
to FW when SAP disconnects the connected station.
Change-Id: I40db82d7b57fd0894ffbe95f52d27b4931227690
CRs-Fixed: 2626857
Disconnect cmd received from supplicant, at the same time
roam start event received from FW.This results in
conetxt switch in scheduler thread and leads to disconnection in
progress variable could not set. Roam sync events
SIR_ROAMING_DEREGISTER_STA and SIR_ROAM_SYNCH_PROPAGATION are
received one after another. Here again supplicant thread context
resumes resulting in csr roam profile cleanup.Later on when
scheuler thread resumes back it result in instability while trying
to access roam profile object.
Fix is to add check for current roam state using mlme component.
check for current state is ROAM_RSO_STOPPED during both
SIR_ROAMING_DEREGISTER_STA and SIR_ROAM_SYNCH_PROPAGATION events.
Change-Id: Id0ea18a33dfef3d4e9a4003da33fc7172cf58e85
CRs-Fixed: 2626474
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
The host driver updates the group management cipher suite to the
firmware as part of RSO commands over the WMI_AP_PROFILE
command.
Update the group management cipher suite from the crypto
component to the roam_request and copy it to the WMI_AP_PROFILE
command params in wma
Change-Id: I78d9cfbddfb74b16639ff03005935c4112a7e5af
CRs-Fixed: 2622864
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
The host driver start scan request on channels in the operating
class requested in the beacon report request. Starting from first
channel all channels are scanned one after another. The scan
request is sent in correct order of the channels in operating
class, but when filtering the scan results from the scan db, the
channel freqency is not indexed properly so first channel is sent
to the filter always. Due to this, always beacon report response
has only entries from first channel from the OP class.
Populate the correct channel frequency to filter the rrm scan
result.
Change-Id: I75461a4da99be9ef215f8c16258e0e21877fe362
CRs-Fixed: 2619363
5G 160M related HE Phy Caps comes from 5G MAC's HE Caps.
Change csr_revise_req_he_cap_per_band API to override the caps
with 5G MAC Caps if STA or SAP starts on non-2G channel.
Change-Id: I250385a64fdb4e043d150ed4e29cd07d10d00880
CRs-Fixed: 2620815
Extend ini value to disconnect from current AP
if roam failure happens after the NUD failure.
Change-Id: Id764c97b5c1748b1d513d85d4063868a1c77141b
CRs-Fixed: 2622087
If disassoc frame is sent from AP side, not DUT STA side,
roam state change with REASON_DISCONNECTED, then ROAM STOP
reason becomes REASON_SME_ISSUED, then scan mode is set as
WMI_ROAM_SCAN_MODE_ROAMOFFLOAD 4 for WMI_ROAM_SCAN_MODE, not 0.
Change-Id: I483b2117f1ae972e0d54ca4b1d3b8854e1695bf1
CRs-Fixed: 2622779
Use the country and operating class information to check for a
given frequency.
Change-Id: Ib154b7f292c2623673063ebe5f0d4f76eb4e99e1
CRs-Fixed: 2619355
During CU and low rssi based roam triggers, consider AP as roam candidate
only if its roam score is better than connected AP score by at least
min_roam_score_delta.
User configures this candidate minimum roam score delta value using
"min_roam_score_delta" INI. User can set candidate minimum score delta
value between 0 to 10000 and default value is 1850.
Firmware will trigger roaming only if roam score of candidate AP is
greater than "min_roam_score_delta" & "roam_score_delta" values of
connected AP.
Change-Id: I180e769b5629aa405dbd89ed73e39e228adf92db
CRS-Fixed: 2614117
Currently, additional unnecessary information is printed via
trace dump.
Remove unnecessary information by using nofl trace
in lim_trace_dump, sme_trace_dump and hdd_trace_dump
Change-Id: I3a02d05030e390ce39b4d33e57190a1aa586d132
CRs-Fixed: 2622095
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
Optimize logs while sending assoc req and assoc rsp handling
frame by dumping the assoc req frame and not printing each
params separately. Also avoid multiple dump of same frame.
Change-Id: Ibcf2d9aa8de292b9b9f4b4c6a53a0f694d69475c
CRs-Fixed: 2619553
Add a new qca sub command QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE.
This command is used to set BT coex chain mode via
WMI_COEX_CONFIG_BTCOEX_SEPARATE_CHAIN_MODE, it has 2 args:
arg1: BTC chain mode, including shared (0, default) and separated(1).
arg2: force restart flag. true means doing vdev restart after applying
the new configurations; while false or NOT set means not.
CRs-Fixed: 2534768
Change-Id: I869096784e5089a6c90e94e76234cd13c9b1a13a
Currently the strucutre tPmkidCacheInfo is allocated in stack
and used during pmksa operations. This structure takes up ~100
bytes of memory. This will cause stack corruption in low memory
devices.
Move allocations of structure tPmkidCacheInfo to heap.
Change-Id: Ibcf44bc331a9ef94499071af1899914edd75b3cf
CRs-Fixed: 2616488
For ADDROAMSCANCHANNELS command, always append user given channels
into the existing preferred channels list in driver. If the preferred
channel list exceeds SIR_ROAM_MAX_CHANNELS i.e. 80 then overwrite
oldest entries with new channels.
Change-Id: Ifa12b1e4d75dd927bdbceea9a076ed1bcbd91f4f
CRs-Fixed: 2618318
Currently there are unnecessary/duplicate logging. Identify and
reduce those logs that are not necessary.
Change-Id: I5473db8cf2406aa6aa2f8531cf5a0cc8b7bd2188
CRs-Fixed: 2614121
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
Currently there are unnecessary/duplicate logging. Identify and
reduce those logs that are not necessary.
Change-Id: I5ec0a7e06cdade73f0e99369ad89b0b677a9a96b
CRs-Fixed: 2615407
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
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
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
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
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
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
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