qcacmn: Add new member CM_ROAMING_USER to wlan_cm_source

Define a new member CM_ROAMING_USER in wlan_cm_source and use
it for user invoked ROAM requests.
Currently, host driver uses CM_ROAMING_HOST for ROAM_INVOKE for
both host initiated(e.g. connect on connect, qos,..) and user
initiated requests(e.g. REASSOC ioctl).
The expectations are different for these cases upon ROAM_INVOKE
failure as explained below,
1. connect-on-connect/FASTREASSOC case: Expectation upon
   ROAM_INVOKE failure is to disconnect from current AP as this
   status needs to be sent to kernel.
2. REASSOC ioctl: Expectation upon ROAM_INVOKE failure is to stay
   connected to the current AP.

So, define a new source CM_ROAMING_USER and use it to
differentiate from CM_ROAMING_HOST to avoid disconnection.

Change-Id: I36d1631a19038bc523bee096836124e3149f9941
CRs-Fixed: 3621461
This commit is contained in:
Srinivas Dasari
2023-09-21 11:14:49 +05:30
committed by Rahul Choudhary
parent a64af3b447
commit 3251d2d0ad
2 changed files with 3 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ static uint32_t cm_get_prefix_for_cm_id(enum wlan_cm_source source) {
case CM_ROAMING_FW:
case CM_ROAMING_NUD_FAILURE:
case CM_ROAMING_LINK_REMOVAL:
case CM_ROAMING_USER:
return ROAM_REQ_PREFIX;
default:
return DISCONNECT_REQ_PREFIX;

View File

@@ -172,6 +172,7 @@ struct wlan_fils_con_info {
* @CM_MLO_ROAM_INTERNAL_DISCONNECT: Disconnect req triggered for mlo roaming
* @CM_MLO_LINK_SWITCH_CONNECT: Connect req triggered for mlo link switch
* @CM_MLO_LINK_SWITCH_DISCONNECT: Disconnect req triggered for mlo link switch
* @CM_ROAMING_USER: Roaming request initiated by user
* @CM_SOURCE_MAX: max value of connection manager source
* @CM_SOURCE_INVALID: Invalid connection manager req source
*/
@@ -194,6 +195,7 @@ enum wlan_cm_source {
CM_MLO_ROAM_INTERNAL_DISCONNECT,
CM_MLO_LINK_SWITCH_CONNECT,
CM_MLO_LINK_SWITCH_DISCONNECT,
CM_ROAMING_USER,
CM_SOURCE_MAX,
CM_SOURCE_INVALID = CM_SOURCE_MAX,
};