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
RMC is IBSS specific and CFG_RMC_ACTION_PERIOD_FREQUENCY is not used
now so remove the same
Change-Id: Icafff4bd7eb508d92c383861300146e3a0f2def7
CRs-Fixed: 2689882
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
There is requirement to support maximum 4 devs on Genoa,
like sta + p2p + dual band sap, change CONFIG_WLAN_MAX_VDEVS from
3 to 4 for Genoa auto.
Change-Id: I17604b0ff191bf8ee13ebb48004c893f1fb353c2
CRs-Fixed: 2674091
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
In PMF cert test case, peer device sends disassoc req to APUT.
After the STA cleanup is done on DUT, ping data packets are still
sent by the peer STA causing rxdma decrypt errors. Rxdma decrypt
errors are not processed and the control path callback to send
deauth frame to peer STA is not invoked resulting in test case
failure.
Fix is to revert commit bf58054b02
("qcacld-3.0: Add feature flag to not process rxdma decrypt err").
Change-Id: I39686a4b16d256bd4d4b62a782457e941cfda8d6
CRs-Fixed: 2686159
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
WLAN_FEATURE_NAN_DATAPATH is deprecated and the define is also
removed. But there is still some code(NDP wakelock event
configuration) which is guarded in this flag and it never gets
compiled. So replace WLAN_FEATURE_NAN_DATAPATH with overall
NAN feature define WLAN_FEATURE_NAN and move it to a separate
API.
Also, enhance log to print the complete 16-byte bitmap in hex
format.
Change-Id: I1ad51efc2b6a088022601686744802995fb7b4b7
CRs-Fixed: 2679286
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
If IPA is not enabled, don't set ipa cfg to fw, else
firmware crash when loading driver.
Change-Id: I9c5d55775a5390c4f35a91100cf4b1bdebc7f4f0
CRs-Fixed: 2635439
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