ソースを参照

qcacld-3.0: Reconfigure KEEPALIVE interval after link switch

As part of SET_KEEP_ALIVE_INTERVAL command host configures
KEEPALIVE interval for connected ml vdevs and resets to
default value as part of disconnect. In case of disconnect
as part of link repurpose host resets KEEPALIVE interval
and fails to set in connect case.

To address this issue, don't reset KEEPALIVE interval
incase of link repurpose and set it after connection.

Change-Id: Ia62109ceb32740844cfef3ef975ab15492e64b8c
CRs-Fixed: 3805788
Asutosh Mohapatra 1 年間 前
コミット
cf626e1a3c

+ 5 - 6
core/hdd/src/wlan_hdd_cm_connect.c

@@ -1795,15 +1795,14 @@ hdd_cm_connect_success_pre_user_update(struct wlan_objmgr_vdev *vdev,
 		link_info->vdev_id, QDF_TRACE_DEFAULT_PDEV_ID,
 		QDF_PROTO_TYPE_MGMT, QDF_PROTO_MGMT_ASSOC));
 
-	if (is_roam) {
+	if (is_roam)
 		ucfg_dp_nud_indicate_roam(vdev);
+	 /* hdd_objmgr_set_peer_mlme_auth_state */
 
-		if (adapter->keep_alive_interval)
-			hdd_vdev_send_sta_keep_alive_interval(link_info,
-						hdd_ctx,
+	if (adapter->keep_alive_interval &&
+	    (is_roam ||	wlan_vdev_mlme_is_mlo_link_switch_in_progress(vdev)))
+		hdd_vdev_send_sta_keep_alive_interval(link_info, hdd_ctx,
 						adapter->keep_alive_interval);
-	}
-	 /* hdd_objmgr_set_peer_mlme_auth_state */
 }
 
 static void

+ 3 - 1
core/hdd/src/wlan_hdd_cm_disconnect.c

@@ -280,7 +280,9 @@ __hdd_cm_disconnect_handler_post_user_update(struct wlan_hdd_link_info *link_inf
 
 	ucfg_dp_nud_reset_tracking(vdev);
 	hdd_reset_limit_off_chan(adapter);
-	hdd_reset_sta_keep_alive_interval(link_info, hdd_ctx);
+
+	if (!is_link_switch)
+		hdd_reset_sta_keep_alive_interval(link_info, hdd_ctx);
 
 	hdd_cm_print_bss_info(sta_ctx);
 }