There is a race condition while handling the below scenario,
1. NAN enable request is received from framework.
2. Policy mgr opportunistic timer expired and set hw mode
initiated to Single MAC mode in scheduler thread at
the same time
As the opportunistic timer handler doesn't have any info if
NAN enable initiated in DBS mode, it's configuring the hw
mode to Single Mac Mode just before NAN enable request is sent
to firmware. So the NAN enable request is sent to firmware in
Single Mac Mode which is not allowed by firmware.
NAN enable/disable is also similar to connection in progress
status in case of STA. So provide NAN enable/disable status
through hdd_is_connection_in_progress() to the opportunistic
timer handler. Opportunistic timer handler restarts the timer as
connection(NAN enable/disable) is in progress.
Also set hw_mode_change_in_progress before checking the
connection progress status. This is to avoid a possible race in
the below scenario,
1. NAN-enable sets the state but scheduler thread had read the
state just before that
2. NAN-enable read the hw_mode_change_in_progress just
before it gets set by scheduler thread.
Change-Id: I1a184c84520deb3f6ad1ec010a0fdefda96a5364
CRs-Fixed: 2566841
In case set key is sent to firmware and Roaming updated the session
before set key resp is processed in LIM, the limPrevMlmState will
be 0 and thus updating limMlmState to limPrevMlmState will result
in improper limMlmState, leading to sync issue.
So do not update the limMlmState in invalid state in set key resp.
Also update limPrevMlmState to limMlmState during roaming.
Change-Id: I96291e7c3eb34df8b5741745448c76cf63b1f200
CRs-Fixed: 2574731
Peer assoc command send to firmware updates peer params in
firmware ex. peer_new_assoc, peer_associd, need_gtk_2_way etc.
If RSN capability flags are present in peer assoc request of SAP and
P2P-Go peers, host updates need_gtk_2_way, need_ptk_4_way peer assoc
params to firmware.
If need_gtk_2_way, need_ptk_4_way params are not updated for RSN capable
peers of SAP/P2P-Go, firmware is not able to hanlde data packets(HTT)
before the key installation(WMI) is successful.
Change-Id: I0a24aab3ac4ff4ca061782f6a4d0ba62dd227b04
CRs-Fixed: 2575133
While pesession is created, the vdev id and opmode is not
logged. Thus it become difficult to check for which vdev the
session is created.
Add logs to print vdev id and opmode while creating pesession.
Change-Id: Ie550630c96342a812994fa6cb00b30427d3f5e93
CRs-Fixed: 2573242
Validate the HE mcs map in assoc response frame while sending it
in peer assoc command to FW. If the valid MCS is not found in assoc
response frame then populate HE mcs map from beacon HE caps as the
session Nss is derived from beacon capabilities.
Change-Id: Icea452bc23b86f8a45f6096ffcacbc6f8545aab5
CRs-Fixed: 2566959
SAE key derivation requires use of a secret element, PWE. This
element is deterministically discovered by repeatedly hashing
the password with some additional information until the
resulting hash is the abscissa of a point on the elliptic curve
(for ECC) or by exponentiating the hash digest to a constant to
produce an element (for FFC). This "hunting-and-pecking" loop
method is prone to side channel attacks.
To avoid this, a direct hashing to element technique in SAE is
introduced in IEEE P802.11-REVmd/D3.0. Support new RSNX IEEE
as part of the hash to element PWE derivation. The user space
sends the RSNX IE in the connect request.
Add support to save RSNXE from connect request and pack this IE
over SAE assoc request. Also send the IE in assoc IEs in RSO
commands.
Change-Id: I8eb756840400753794b1b80befe3a20f7d7c7705
CRs-Fixed: 2569596
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
Currently host sends wdev as NULL to cfg80211_vendor_event_alloc,
this allows userspace to process nl_cmd for
QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING_INDEX event with P2P
interface instead of WLAN.
Set wdev with proper value to avoid processing nl_cmd with P2P
interface by userspace.
Change-Id: If0b99efdc76c1f89b6b07ee72edc6c5e2994a90c
CRs-Fixed: 2568776