diff --git a/src/cntlr.c b/src/cntlr.c
index d319e35cacf1cbb0d3d95cf33dd4bdf8ce2520af..5eb434562e72a6d0b340d6eba9643ebfffdfdf61 100644
--- a/src/cntlr.c
+++ b/src/cntlr.c
@@ -527,6 +527,19 @@ void cntlr_notify_client_steer_req_evt(struct controller *c,
 	cntlr_notify_event(c, "client_steer_request", ev_data);
 }
 
+void cntlr_notify_client_steer_result(struct controller *c,
+		uint8_t *sta_mac, bool steer_success)
+{
+	char ev_data[1024] = {0};
+
+	snprintf(ev_data, sizeof(ev_data),
+	         "{\"sta_mac\":\""MACFMT"\""
+	         ",\"status\":%s}",
+	         MAC2STR(sta_mac),
+	         steer_success ? "SUCCESS" : "FAIL");
+	cntlr_notify_event(c, "client_steer_result", ev_data);
+}
+
 #if 0
 static int invoke_disconnect_sta(struct node *n, struct netif_iface *p,
 		uint8_t *sta_mac)
@@ -568,6 +581,8 @@ static void cntlr_btm_req_timer_cb(atimer_t *t)
 		c->dlem.network.steer_summary.btm_failure_cnt +=
 				s->de_sta->mapsta.pending_btm_resp_num;
 		s->de_sta->mapsta.pending_btm_resp_num = 0;
+
+		cntlr_notify_client_steer_result(c, s->de_sta->macaddr, false);
 	}
 }
 
diff --git a/src/cntlr.h b/src/cntlr.h
index b25179fc6c3ab385d5ba2c41adf1b357a714764b..abd21bb62947a3ea20bac2a14c009dd34b530f07 100644
--- a/src/cntlr.h
+++ b/src/cntlr.h
@@ -393,6 +393,8 @@ void cntlr_update_sta_steer_counters(struct controller *c, uint8_t *sta_mac,
 void cntlr_notify_client_steer_req_evt(struct controller *c,
 			uint8_t *bssid, uint32_t sta_nr, uint8_t stas[][6],
 			uint32_t bssid_nr, uint8_t target_bssid[][6]);
+void cntlr_notify_client_steer_result(struct controller *c,
+		uint8_t *sta_mac, bool steer_success);
 struct steer_control_config *get_steer_control_config(struct controller *c);
 struct sta *cntlr_add_sta(struct controller *c, uint8_t *macaddr);
 struct sta *cntlr_find_sta(struct controller *c, uint8_t *mac);
diff --git a/src/cntlr_map.c b/src/cntlr_map.c
index 8f392d0835b562edf4114623e28aed55c9f551ea..88a78c0499ca512ceb04ff20166167086c85f001 100644
--- a/src/cntlr_map.c
+++ b/src/cntlr_map.c
@@ -1187,9 +1187,11 @@ int handle_1905_ack(void *cntlr, struct cmdu_buff *cmdu, struct node *n)
 
 			dbg("%s: cmdu->cdata->hdr.mid %u\n", __func__, mid);
 
-			if (s->latest_assoc_cntrl_mid == mid)
+			if (s->latest_assoc_cntrl_mid == mid) {
 				s->de_sta->mapsta.stats.failed_steer_attempts++;
 
+				cntlr_notify_client_steer_result(c, s->de_sta->macaddr, false);
+			}
 		}
 	}
 
@@ -2726,6 +2728,8 @@ int handle_sta_steer_btm_report(void *cntlr, struct cmdu_buff *cmdu,
 			s->de_sta->mapsta.stats.failed_steer_attempts++;
 			s->de_sta->mapsta.stats.btm_failure_cnt++;
 			c->dlem.network.steer_summary.btm_failure_cnt++;
+
+			cntlr_notify_client_steer_result(c, s->de_sta->macaddr, false);
 		}
 		/* else: counters already updated in cntlr_btm_req_timer_cb */
 
@@ -2737,6 +2741,8 @@ int handle_sta_steer_btm_report(void *cntlr, struct cmdu_buff *cmdu,
 		s->de_sta->mapsta.stats.btm_success_cnt++;
 		c->dlem.network.steer_summary.btm_success_cnt++;
 
+		cntlr_notify_client_steer_result(c, s->de_sta->macaddr, true);
+
 		if (s->de_sta->mapsta.pending_btm_resp_num == 0) {
 			/* Received succesful btm report, after the btm timeout,
 			 * meaning that failure counter have been increased