The mhz_freq_seg0 & mhz_freq_seg1 fields are not assigned
with values from sap ctx.
Fix by copy the whole the struct of "ch_params" to
csr_roamProfile.ch_params instead of one by one.
Change-Id: I92d7bc6ddeed1038597c7639d41fca059bf13457
CRs-Fixed: 2688693
In lim_check_rsn_ie, driver first upack the RSN IE and then do pack,
During unpack RSN_Cap_present is set to 0, in case pmkid and grp
mgmt cipher is not present. Also if pmkid is not present during pack
mgmt grp cipher is not added.
This lead to RSN caps not filled and thus PMF capability
is not determined leading to PMF cert failures.
So do not reset rsn caps and consider grp mgmt ciper.
Also in lim_check_rsn_ie use the preexisting RSN IE instead
of creating the IEs again.
Change-Id: Icc360b2eed0197fcf1ae27a0ff6ae9879b45cf2b
CRs-Fixed: 2690029
Currently, host driver sends disconnect reason code as
WLAN_REASON_UNSPECIFIED(1) when the station disconnects due to
continuous beacon miss and corresponding vendor specific reason
code is also sent to userspace. This change is introduced with
the commit I99bf4573b59dc810e0a1529fcd48061d10acae4e to
provide vendor specific reason codes for all internal
disconnections.
Driver used to send reason code as 0 for beacon miss before
this change. Few applications might still expect the same
reason code(0) and current behavior causes backward compatibility
issues. So, retain the same reason code 0 for beacon miss failure.
Change-Id: I82f215ba15ff6e215cb14ac08933e1491371dfde
CRs-Fixed: 2689257
Currently the driver votes for IDLE case when no
interface is associated. If the bus bandwidth timer
is stopped when there is no interface, we are not reducing
our votes, thereby causing higher power usage.
Remove our voting for bus bandwidth when the bus
bandwidth timer is stopped.
Also in the wlan resume case, vote for MEDIUM bus
bandwidth only if any interface is associated, else
vote for NONE.
Change-Id: I6cbe7f32036219b3b8914fb096562f44559931ce
CRs-Fixed: 2688853
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
Because FW don't support idle pdev suspend, and when all interface down
host will not send wow enable command because wakeup is not expected.
The idle shutdown precedure already exist for station mode, apply it to
virtual interface as well.Otherwise, it will cause wlan suspend failed
Change-Id: I5bde36298b1484b09b1bb52cf79841f99d5324be
CRs-Fixed: 2668600
After receiving PEER_ASSOC_CMD from host, FW sends Peer Assoc
Conf event as ACK of PEER_ASSOC_CMD. After that, host sends Mx
(STA:M2/M4) messages.
Currently, FW sends Peer Assoc Conf event to HOST only in
success case and HOT fills event status as success always.
As per requirement, FW now sends Peer Assoc Conf event to HOST
in failure case. So now host should update event status whatever
coming from FW.
Fix is to update proper Peer Assoc Conf event status
Change-Id: I7e1aa808e1beece23a5dfc0c120765e389e3f0f9
CRs-Fixed: 2640242
Current during system suspend/resume, we remove/add votes for DDR/SNOC
during cfg80211 suspend/resume functions. However, check for pending TX
completions and RX softirq processing happens in the bus suspend
functions which get called after cfg80211 suspend/resume functions.
Hence, there is a small time window where there may be DDR transactions
from WLAN SOC with no vote for DDR/SNOC. This can lead to high bus
latency as seen by WLAN SOC. To avoid this, move the bus voting for
system suspend/resume operation in the bus suspend/resume functions.
Change-Id: I9242d438c1fa07cd7a2dec6994f437d07dd9bb68
CRs-Fixed: 2673101
The lmac tx/rx ops are not freed in failure case of start module
which lead to mem leak.
So Free lmac tx/rx ops in start module failure.
Change-Id: Ib222e7e31164488cca7b7cc3d241f895f49daa6d
CRs-Fixed: 2688176
Set PMF enabled bit for Association Frame only when both peer
and self supports it.
Change-Id: I11994da4db87e6a83b7ebe308720c45a9e2f0173
CRs-Fixed: 2686114
Currently, SAP interface is being created when there is an existing
monitor mode interface. This concurrency is not allowed.
To avoid this, Add check for existing monitor mode interface before
creating SAP interface using add virtual interface.
Change-Id: Ia2318b880adaff39b7deb9e223140906e80a91ae
CRs-Fixed: 2680143
If FISA related macro WLAN_SUPPORT_RX_FISA is configured but INI
dp_rx_fisa_enable is not set, fisa related context is not initialed
in dp_soc structure. if do fisa flush when vdev detach, invalid
access to fisa context will happen.
Do fisa flush per vdev only if fisa is enabled in INI.
Change-Id: Id3cecfa24f8ce26465a7809d4d9b2e92ae199c7d
CRs-Fixed: 2687949
Few changes on tip got reverted as part of
I2b91a271d30b1230ef7bb14ee08d0b9da2706db4 so bring them back.
Change-Id: I12dc7304dba220f0d85763b01d4b04dd1540a3bb
CRs-Fixed: 2687980
If device is configured to Only dot11mode profile. Don't
connect to lesser profile the configured.
Change-Id: I7bf5157c0d7324c5ee7c4cdaac7806c0991d5dae
CRs-Fixed: 2683763
As part of WEXT replacement, replace wowlDelPtrn with a sysfs file.
file path: /sys/class/net/wlanxx/wowl_del_ptrn
where wlanxx is adapter name
example: echo 08:01:FFFFFFFFFFFF0000:FC > wowl_del_ptrn
Change-Id: I446456df5bd003b7328ba7afc0a4fb5e60059e11
CRs-Fixed: 2682245
There should only be STA and/or SAP modes for the new sysfs commands.
Remove P2P device mode when creating the store/show files.
Change-Id: Id090dff650466c907468eb530e9e24d96ce4d99d
CRs-Fixed: 2686781
Check AP's HE Rx MCS map to connect in HE mode. If AP has invalid
MCS map connect in HT/VHT mode.
Change-Id: Ia95f08999f0536ac3463e02212f39d4fd09390d4
CRs-Fixed: 2684887
As part of WEXT replacement, replace getChannel with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_GET_CHANNEL
file path: /sys/class/net/wlanxx/get_channel
where wlanxx is adapter name
example command: cat /sys/class/net/wlan1/get_channel
output: Channel number: 1
Change-Id: I3040af3d19eb83a819ca83cdbb74a70acd041698
CRs-Fixed: 2681803
Unloading the driver is a driver transition. As a part of this driver
unload, the PLD calls the pld_remove which is a psoc transition. This is
the reason why the driver unload is currently not being protected as
there is a call to psoc transition within it.
This absence of locking can lead to potential deadlock scenario. Assume the
example of add_virtual_interface and rmmod coming in parallel.
T1: add_virtual_interface (starts a vdev_trans)
T2: rmmod comes in parallel
-> unregister_driver goes to PLD
-> PLD calls pld_remove (psoc_trans waits due to T1)
T1: add_virtual_interface continues
-> Calls idle_restart that goes to PLD
-> PLD waits from pld_remove (T2) to complete first
T1 and T2 are waiting for each other to exit resulting in
deadlock.
To resolve this, add a driver_trans_start_wait to hdd_driver_unload.
This will ensure that either the unload waits for all other trans to be
completed before proceeding or set the driver_load_unload flag which
will result in upcoming trans to get rejected.
Change-Id: I64b03843065e5eef7c2be209c1f8cb936bdd0742
CRs-Fixed: 2683032
Host driver do receives radio tx power level stats as part of
radio stats even though we have different event ID for that.
Handling the tx_power_level as part of radio stats only if
num_tx_power_level is set.
Change-Id: I46aff51c70c444c94c9b10f32b7776ba4a1ca4e8
CRs-Fixed: 2686882
In dp_fisa_rx() function, L2 head pointer for fragment data is not
set correctly, actually it points to RX TLV header.
Skip RX TLV for RX fragment data.
Change-Id: Ie326734c657f45024a83792b103f931723148c92
CRs-Fixed: 2686851
As part of WEXT replacement, replace getTdlsPeers with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_GET_TDLS_PEERS
file path: /sys/class/net/wlanxx/get_tdls_peers
where wlanxx is adapter name
example command: cat /sys/class/net/wlanxx/get_tdls_peers
Change-Id: I66123266d6a3bf4c5c82f70186e35aa9942533b1
CRs-Fixed: 2681810
bTkipCntrMeasActive was not getting filling anywhere, hence
was removed from pe_session struct along with releveant code
where it was checked.
Change-Id: I8926bedef61c6468f8de2f73b4991c4c4860810b
CRs-Fixed: 2687067
eCsrForcedDeauthSta equals to 14 and as far as reason
codes are concerned, it is MIC_FAILURE. It is observed
that when wlan is configured as SAP-SAP DBS with same
SSID and same encryption WPA2/WPA3 mixed mode, it leads
to an IOT issue where clients with iOS 13 in particular
are not able to auto reconnect back after wlan is restarted.
Thus populate subtype to IEEE80211_STYPE_DEAUTH >> 4 and
reason_code to WLAN_REASON_DEAUTH_LEAVING as defined in
kernel since station_del_parameters is a kernel defined
structure.
Also correct internal use of subtype since right shift
4 for SIR_MAC_MGMT_DEAUTH and SIR_MAC_MGMT_DISASSOC
will always end up with value 0.
Change-Id: I60aa5ed4e7b672b7a92f05ad322fcb48ab0526d4
CRs-Fixed: 2678637
DUT perform FT-IM association instead of FT roaming to
process emergency deauth from connected AP.
In the case of FT-IM association, FW sends assoc requests
instead of re-assoc requests in roam sync indication to
host. Host truncate fixed parameters from assoc req and
forward frame tagged parameters to supplicants.
In re-assoc request fixed params length is 10bytes and
in assoc request, fixed param length is 4 bytes.
Currently host always truncating 10 bytes of assoc/re-assoc
frame present in roam sync ind and forward it to supplicant.
This results in extra first 6 bytes of assoc frame get stripped
by host. Due to this supplicant is not able to parse frame
content properly. This leads to 11r roaming failure.
As in case of FT-IM association roaming, FW forward assoc req
in roam sync ind, Host should truncate 4 bytes of fixed
parameters.
Fix is to ensure that host truncate only 4 bytes if assoc
request present in roam sync ind data.
Change-Id: Ie1352e41f9caffc4a28ed046330a73f303af36da
CRs-Fixed: 2664097
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
In case of partial reorder, seq number is sent by FW
when first_msdu bit is set in msdu. For all other msdus host
maintain copy of cur_seq_num_hl in pdev.
cur_seq_num_hl gets updated when htt_rx_mpdu_desc_seq_num API
is called. Currently htt_rx_mpdu_desc_seq_num API is called
from multiple functions. Add update_seq_num flag to make sure that
cur_seq_num_hl updates only during store function.
Change-Id: Ie3178ee6d1642dbeaf0cea032dc80e0ecccc1dc2
CRs-Fixed: 2683869
In some case, FISA flush for one FISA entry is missed which
lead to some RX frames stay at FISA entry forever, this will
cause skb leak.
Do FISA flush per vdev when vdev detach to avoid skb leak.
Change-Id: Ie6bdf885c740a99b089290257ea6936d5804d142
CRs-Fixed: 2679221
As part of WEXT replacement, replace get_range_ext with a sysfs file.
file path: /sys/class/net/wlanxx/get_range_ext
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_range_ext
Change-Id: Ic4b5076efce837d9c98167d6a807722adbbc74df
CRs-Fixed: 2683682
As part of WEXT replacement, replace set_dp_trace with a sysfs file.
file path: /sys/kernel/wifi/set_dp_trace
example: echo 1 1 1 > set_dp_trace
Change-Id: I3358ad4f483f66f643c4aa5538fd2c9172d8f077
CRs-Fixed: 2683643
As part of WEXT replacement, replace txrx_stats with a sysfs file.
file path: /sys/class/net/wlanxx/txrx_stats
wlanxx is adapter name
example: echo 1 1 > txrx_stats
Change-Id: I677111a48eb117044ac992616d468c1604b2bae0
CRs-Fixed: 2682369
As part of WEXT replacement, replace txrx_fw_stats with a sysfs file.
file path: /sys/class/net/wlanxx/txrx_fw_stats
wlanxx is adapter name
example: echo 1 > txrx_fw_stats
Change-Id: Icad1f920ef01a4b86efca786da4873a361cd2dfc
CRs-Fixed: 2682352
As part of WEXT replacement, replace setRadar with a sysfs file.
file path: /sys/class/net/wlanxx/set_radar
wlanxx is adapter name
example: echo 1 > set_radar
Change-Id: I6451f506c1525dcfc48c988f965cc6dedf64b369
CRs-Fixed: 2680424
As part of WEXT replacement, replace setMonChan with a sysfs file.
file path: /sys/class/net/wlanxx/set_mon_chan
wlanxx is adapter name
example: echo 1 1 > set_mon_chan
Change-Id: Id7d21b23129fdf6e37c99924ad91a19e3c03a0d2
CRs-Fixed: 2678501
As part of WEXT replacement, replace set_scan_cfg with a sysfs file.
file path: /sys/kernel/wifi/set_scan_cfg
example: echo 1 1 1 > set_scan_cfg
Change-Id: I0807a0fc7ab4e3963386f5f5979b039c291896d9
CRs-Fixed: 2678470
Removed all the API realted to FEATURE_WLAN_RMC
as well as related SME/WMA code.
Change-Id: Id471ccabcfd183fbcc7ff4e4953991f9e1551526
CRs-Fixed: 2686364
As part of WEXT replacement, replace get_sta_info with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_GET_STA_INFO
file path: /sys/class/net/wlanxx/get_sta_info
where wlanxx is adapter name
example command: cat /sys/class/net/wlanxx/get_tdls_peers
Change-Id: Iac23cdc92a860279480ec9703697f22b2f0b5223
CRs-Fixed: 2682163
As part of WEXT replacement, replace wowlAddPtrn with a sysfs file.
file path: /sys/class/net/wlanxx/wowl_add_ptrn
where wlanxx is adapter name
example: echo 08:01:FFFFFFFFFFFF0000:FC > wowl_add_ptrn
Change-Id: I46d00fd8a15851cf2838f3b07a0ec2d1050d1087
CRs-Fixed: 2680490
As part of WEXT replacement, replace wow_ito with a sysfs file.
file path: /sys/kernel/wifi/wow_ito
example: echo 1 > wow_ito
Change-Id: I11cf9acfc4282b910145efa527682ab1738eaaa0
CRs-Fixed: 2680332
As part of WEXT replacement, replace scan_disable with a sysfs file.
file path: /sys/kernel/wifi/scan_disable
example: echo 1 > scan_disable
Change-Id: Icaa7083d0f7b2cefd0f77cb7da7fe0d3d52d36c5
CRs-Fixed: 2676764
Host configures rssi trigger, connected ap rssi delta and rssi
threshold in firmware. As rssi threshold is hit, firmware start
roam scan. Firmware decreases further RSSI threshold by connected
ap rssi delta if matching profile ap not found and so on.
Example: STA connects to an AP and host sets rssi trigger,
connected ap rssi delta=5 and rssi threshold as -25dbm. Firmware
starts roam scan as the rssi threshold is hit. In the roam scan
if desired profile ap is not found, decreases rssi threshold
by 5dbm i.e connected ap rssi delta. Now rssi threshold becomes
-30dbm and then firmware triggers roam scan and so on.
Thus the rssi threshold changes dynamically when controlled
roaming mode is set from userspace, to fix this do not force
RSSI triggers when controlled roaming from userspace is enable.
Change-Id: I1de3f71ca96de9f464d5d33b0271f99c55cff535
CRs-Fixed: 2681882
Add sysfs entry to get connection info instead of debugfs.
This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_CONNECT_INFO
file path: /sys/class/net/wlanxx/connect_info
where wlanxx is adapter name
example command: cat /sys/class/net/wlanxx/connect_info
Change-Id: Ibe183e4665cdbea66b83abd4732e7ef33843612d
CRs-Fixed: 2682856
There is change modified the name of structure and API about spectral
cmd operations registration. So, add this change to correct them in
wma layer.
Change-Id: Icf1b8eb84e6cd6d110fe32ab30566c68ea33e2d7
CRs-Fixed: 2682782
Currently when supplicant sends set_pmkid_cache (Either after initial
connection or after session timeout with AP) to host to set
the new pmkid derived after the EAP is done. Host deletes PMK entry
only if bssid/ssid matches.
For OKC, the PMK derived from the initially associated AP will be
used for deriving PMKID for all APs. In case of connection with OKC
supported APs, If STA receive session timeout from AP, HOST should
delete older PMK of all APs which have the same PMK. Else While
roaming HOST could send older PMK to OKC supported AP and this
results PMK flush in FW and leads to full EAP.
Change-Id: I95881db229d5193cbdc22c5f30e1375b3892fbd4
CRs-Fixed: 2679737
Currently in the driver, we are printing the WOW pattern to the kernel
logs. This pattern is an array and printing it one by one can lead to
excessive logging.
Instead of printing one by one, use qdf_trace_hex_dump() to print the
pattern in one go. Also move the logging from kernel to the driver logs.
Change-Id: I6a3b02b0e57d8c27bb5ea4a7c44f67634c0f33fd
CRs-Fixed: 2661242
If osif_vdev_sync_op_start failed, that means operation on
net_dev is not permitted. So, free the skb before return.
Change-Id: Icd366c2d9d947e39f26f1b21878bfe0154a55fdc
CRs-Fixed: 2681018