Currently driver is doing unlink BSS when there is a connect failure.
This will cause an issue, for 2G+5G ML connection.
1) Connect on 5G link failed due to Auth failure
2) Connect on next candidate (2G) is success and FW is in SMM
3) Partner link(5G) connect will fail due to 5G scan entry won't
be found in SMM mode.
To avoid this, don't unlink the BSS for ML VDEV connect failure.
Change-Id: Icaa8c736d9038c971b5c3d459fd4af5a833bdc80
CRs-Fixed: 3129726
While notifying the ML connection status to the supplicant, partner vdev
information will be filled in the connect response. This partner vdev info
is populated using partner link IDs. This may cause issues since it is
not guaranteed that link id information in the partner vdev is valid while
notifying the connection status to the supplicant.
To address this, get partner vdev information using vdev ID instead of
link ID.
Change-Id: I5e45b038b1fe5b6ab9c6bbb514eefb0ad4c39e66
CRs-Fixed: 3117702
Currently, VDEV manager responses are using legacy path instead of
target_if, vdev_mgr and os_if components. As the driver implementation
is planned for converged model, legacy implementation will be moved to
the respective components.
To avoid rework, Use target_if, vdev_mgr and os_if components to process
the FW responses corresponding to the vdev manager.
Change-Id: I778f6de93481fc730383e8f8e1c604f173947d69
CRs-Fixed: 3093776
In case the vdev is already disconnected, the indication to
the upper layer, would have been sent as part of previous
disconnect/connect failure.
If the upper layer is in process of connecting, sending
the disconnect indication back again may cause it to incorrectly
think it as connect failure. So sending a disconnect indication
again is not advisable.
So if a new disconnect is received in INIT state, drop the
disconnect and return failure.
Also remove osif_cm_reset_id_and_src() from osif disconnect
to avoid race between disconnect complete of old disconnect
and new disconnect request. With osif_cm_reset_id_and_src()
old disconnect might also get dropped in osif and with this
fix new disconnect will also get dropped, so make sure that
last/old disconnect indication is sent to upper layer.
Change-Id: Icf7352d8904473329edff9ec124c6197f214f88b
CRs-Fixed: 3074093
Modify MLO disconnect handling to issue disconnect on all links in
parallel
Also modify connect resp to accommodate ml info in connect resp
Change-Id: I57575c6ce7c8ebff7770f862dc81e7dfd20aa42d
Fill ML partners info in connect response structure of the connect
notification to the supplicant.
Change-Id: I3b972254138d0f00ef63f2b4d336d142e6d5e2ae
CRs-Fixed: 3036325
There are instances in the code where the response is sent from the
driver to the kernel indicating the allocation flags which is
used by the kernel to allocate memory
In those situations, we should pass the allocation flags based on
the context in which the response is sent.
Send the response with the right allocation flags to the kernel.
Change-Id: I39ade12bd3603acf622a9ca49b4d1d0b79da4585
CRs-Fixed: 3037225
Validate assoc request and response IE pointer
and length before sending the connect response
to the cfg80211 layer, else if there is a mismatch
between assoc request and response IE and length,
it would result in a panic.
CRs-Fixed: 3029994
Change-Id: I6bb285719c9749cb8c42306a95c392a01555d67f
There are instances in the code where the response is sent from the
driver to the supplicant indicating the allocation flags which is
used by the supplicant to allocate memory.
In those situations, we should pass the allocation flags based on
the context in which the response is sent.
Send the response with the right allocation flags to the supplicant.
Change-Id: I85f1c29fc66ba51a9f9c645692712c3a25b7fed1
CRs-Fixed: 2987552
Structure wlan_cm_roam_resp and wlan_cm_connect_resp are identical
structures and in current code these structures are used for connect
and reassoc functionalities with different functions as these are
identical structures and only one structure can be used to reduce
the duplication of the code.
To address this code duplication issue replace wlan_cm_roam_resp
structure with wlan_cm_connect_resp.
Change-Id: I90949c25f46acd2fa78cebb70c9a04f0718b90c4
CRs-Fixed: 2875232
Set value for locally_generated flag for disconnect response based on
disconnect req source
Change-Id: I4f693be98ca10a5f883f1a9349ed50876679e723
CRs-Fixed: 2880520
In cm_allocate_and_copy_ies_and_keys instead of target's pointer
source's pointers are reset thus making the following code void
Fix this by resetting the target pointers which needs to be allocated
with new memory.
Change-Id: I4417492c43eb27833d365ec4aa644e07ed4eca51
CRs-fixed: 2884187
Currently driver rejects connect request if assoc ie length
is 0 or assoc ie is NULL which results in connect failure.
To avoid above issue do not reject connect request if
assoc ie is NULL. Also fix the connect status to send the
proper status code instead of WLAN_STATUS_UNSPECIFIED_FAILURE.
Change-Id: Icb775a88780350fa589ae8db65abdd79980558c6
CRs-Fixed: 2869967
Host updates proper FILS param set i.e. username, auth_type and
is_fils_connection in the FILS response.
Change-Id: I0c30325bc7d620aa286aae0dd299dec9b26219ff
CRs-Fixed: 2865060
In connection success case the unlink BSS is not required, so
add the status check.
Change-Id: If5e2d02b37865267a096f01f0835bdccbc8e1c3d
CRs-Fixed: 2860102
Host add support to save gtk and set hlp data from fils ie of connect
response.
Change-Id: I5e6b9882359697f09a0935a9c07f3427dbe04cc2
CRs-Fixed: 2849123
In dual station case, wlan0 is connected to AP, wlan1
connects to the same ap and will get failed because two
interfaces can not connect to same band (same ap).
At present wlan1 will do unlink bss of ap after connect fail.
This may corrupt the bss tree in kernel because the bss is
still pointed by wlan0’s wdev -> current_bss.
Fix by avoid the unlink bss if the bss is still connected
in any interfaces.
Change-Id: I27c76eca2d4f130addabbdc2600f6959d24c8511
CRs-Fixed: 2837496
Add logic to
- Check if connect req freq is 6Ghz and security
is not allowed for 6Ghz, reject connect.
- Ignore 6Ghz APs if connect req security is invalid
for 6Ghz
Also added user config key_mgmt_mask_6ghz mask
to allow specific AKMs, by default all are allowed.
Add added user config check_6Ghz_security to enable
security checks as per spec.
Change-Id: I37518731faa4de67a49853e5ac544efa3b3ce1d6
CRs-Fixed: 2813013
There is a possibility that driver already has a vdev
with the mac address same as bssid, in this case sta
should not connect to this AP as it may lead to undefined
behavior.
To address above issue add a check to compare bssid with
already existing vdevs before connect start.
Along with above changes add few renaming changes also.
Change-Id: Ia12be0b392a01bf935b5261e505290064de68805
CRs-Fixed: 2809147
Move disconnect wait logic from osif to connection mgr, so that
MLO/IF manager can use the wait logic for disconnect
during vdev delete.
Change-Id: Ied2bbcfd6a532209f8008499424f94acc41efc0e
CRs-Fixed: 2800990
Unlink BSS on connect timeouts like AUTH/JOIN/ASSOC timeout and
in case of no candidate found. This is to avoid reconnect without
a scan.
Also remove entry if diconnect from peer or south bound disconnect
due to heartbeat failure, sta kickout etc.
Change-Id: Ie78c7e764e8c009a5d19ed5dda9c6b9bbf75196f
CRs-Fixed: 2798188
Initialize osif callbacks to connection manager and add
legacy callbacks to osif and initialize these legacy callbacks
for connection manager.
Change-Id: Ic3e8bd6f55b6cdbbc8cdd5c9c3a6631e8d3bd83e
CRs-Fixed: 2797472
Add connect params in osif connect request to pass scan IE and other
params from legacy to be used in connect request.
Change-Id: I83721023362ff2405727316f090671468200b362
CRs-Fixed: 2793280
Add sync API for disconnect to wait for disconnect to complete.
This can be used during vdev delete sequence to move the vdev and
connection manager SM to init state before VDEV is marked logically
deleted.
Change-Id: Id562e444cf1995d800b8268f906f811f143d0fc9
CRs-Fixed: 2790885
Change Ic166c112189ef79a84f61d16e7e04a6334c61178 renames
few files for osif in connection manager, but does not
take care of the compilation issue after rename of the files.
Add a change to take care of the compilation errors in
connection manager module.
Change-Id: Icecb3f7aa625a65b835c15890fc019917e2b9446
CRs-Fixed: 2786828
Currently connection manager does not update crypto params
of connect request based on RSN/WPA/WAPI IEs.
Add logic to update the connect params based on IEs.
Change-Id: I74aba3c061ed5fc203be7270dcc244f14718c781
CRs-Fixed: 2777574
The naming of the osif files and functions is not correct as
these files and functions include wlan_cfg80211 as prefix
instead of osif.
Correct file name and function name should contain the component
name first, followed by feature name followed by method.
Change-Id: Ic166c112189ef79a84f61d16e7e04a6334c61178
CRs-Fixed: 2780298
Add reason code enum and prints in connect and disconnect handlers,
also take care of the vendor reason code during disconnect resp.
Change-Id: I1298e0739bd08d7d43fcb3839a07459819207196
CRs-Fixed: 2778233