Эх сурвалжийг харах

qcacmn: Add start/stop bss changes in interface mgr

- Add start/stop bss event processing

Change-Id: I7d0b786567229f4d683b72981f7f52e93e785c73
CRs-Fixed: 2759986
Amruta Kulkarni 4 жил өмнө
parent
commit
21bf0386f0

+ 51 - 4
umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h

@@ -22,16 +22,63 @@
 #define _WLAN_IF_MGR_AP_H_
 #define _WLAN_IF_MGR_AP_H_
 
 
 /**
 /**
- * wlan_process_start_bss_start() - Start BSS event handler
+ * if_mgr_ap_start_bss() - Start BSS event handler
+ * @vdev: vdev object
+ * @event_data: Interface mgr event data
  *
  *
- * Interface manager connect start bss event handler
+ * Interface manager start bss event handler
  *
  *
+ * Context: It should run in thread context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+if_mgr_ap_start_bss(struct wlan_objmgr_vdev *vdev,
+		    struct if_mgr_event_data *event_data);
+
+/**
+ * if_mgr_ap_start_bss_complete() - Start BSS complete event handler
  * @vdev: vdev object
  * @vdev: vdev object
  * @event_data: Interface mgr event data
  * @event_data: Interface mgr event data
  *
  *
+ * Interface manager start bss complete event handler
+ *
+ * Context: It should run in thread context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+if_mgr_ap_start_bss_complete(struct wlan_objmgr_vdev *vdev,
+			     struct if_mgr_event_data *event_data);
+
+/**
+ * if_mgr_ap_stop_bss() - Stop BSS event handler
+ * @vdev: vdev object
+ * @event_data: Interface mgr event data
+ *
+ * Interface manager stop bss event handler
+ *
+ * Context: It should run in thread context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+if_mgr_ap_stop_bss(struct wlan_objmgr_vdev *vdev,
+		   struct if_mgr_event_data *event_data);
+
+/**
+ * if_mgr_ap_stop_bss_complete() - Stop BSS event complete handler
+ * @vdev: vdev object
+ * @event_data: Interface mgr event data
+ *
+ * Interface manager stop bss complete event handler
+ *
+ * Context: It should run in thread context
+ *
  * Return: QDF_STATUS
  * Return: QDF_STATUS
  */
  */
-QDF_STATUS wlan_process_ap_start_bss(struct wlan_objmgr_vdev *vdev,
-				     struct if_mgr_event_data *event_data);
+QDF_STATUS
+if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev,
+			    struct if_mgr_event_data *event_data);
 
 
 #endif
 #endif

+ 13 - 12
umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h

@@ -30,15 +30,15 @@
 
 
 /**
 /**
  * enum wlan_if_mgr_evt: interface manager events
  * enum wlan_if_mgr_evt: interface manager events
- * @WLAN_IF_MGR_EV_CONNECT_START:
- * @WLAN_IF_MGR_EV_CONNECT_COMPLETE:
- * @WLAN_IF_MGR_EV_DISCONNECT_START:
- * @WLAN_IF_MGR_EV_DISCONNECT_COMPLETE:
- * @WLAN_IF_MGR_EV_VALIDATE_CANDIDATE:
- * @WLAN_IF_MGR_EV_AP_START_BSS:
- * @WLAN_IF_MGR_EV_AP_START_COMPLETE:
- * @WLAN_IF_MGR_EV_AP_STOP_BSS:
- * @WLAN_IF_MGR_EV_AP_STOP_COMPLETE:
+ * @WLAN_IF_MGR_EV_CONNECT_START:Event to handle connect start request
+ * @WLAN_IF_MGR_EV_CONNECT_COMPLETE:Event to handle connect start complete
+ * @WLAN_IF_MGR_EV_DISCONNECT_START:Event to handle disconnect start request
+ * @WLAN_IF_MGR_EV_DISCONNECT_COMPLETE:Event to handle disconnect start complete
+ * @WLAN_IF_MGR_EV_VALIDATE_CANDIDATE:Event to validate candidate
+ * @WLAN_IF_MGR_EV_AP_START_BSS:Event to handle start bss request
+ * @WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE:Event to handle start bss complete
+ * @WLAN_IF_MGR_EV_AP_STOP_BSS:Event to handle stop bss request
+ * @WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE:Event to stop bss complete
  */
  */
 enum wlan_if_mgr_evt {
 enum wlan_if_mgr_evt {
 	WLAN_IF_MGR_EV_CONNECT_START = 0,
 	WLAN_IF_MGR_EV_CONNECT_START = 0,
@@ -47,15 +47,16 @@ enum wlan_if_mgr_evt {
 	WLAN_IF_MGR_EV_DISCONNECT_COMPLETE = 3,
 	WLAN_IF_MGR_EV_DISCONNECT_COMPLETE = 3,
 	WLAN_IF_MGR_EV_VALIDATE_CANDIDATE = 4,
 	WLAN_IF_MGR_EV_VALIDATE_CANDIDATE = 4,
 	WLAN_IF_MGR_EV_AP_START_BSS = 5,
 	WLAN_IF_MGR_EV_AP_START_BSS = 5,
-	WLAN_IF_MGR_EV_AP_START_COMPLETE = 6,
+	WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE = 6,
 	WLAN_IF_MGR_EV_AP_STOP_BSS = 7,
 	WLAN_IF_MGR_EV_AP_STOP_BSS = 7,
-	WLAN_IF_MGR_EV_AP_STOP_COMPLETE = 8,
+	WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE = 8,
 	WLAN_IF_MGR_EV_MAX = 9,
 	WLAN_IF_MGR_EV_MAX = 9,
 };
 };
 
 
 /**
 /**
  * struct if_mgr_event_data - interface manager event data
  * struct if_mgr_event_data - interface manager event data
- * @status: status
+ * @status: qdf status used to indicate if connect,disconnect,
+ *	    start bss,stop bss event is success/failure.
  */
  */
 struct if_mgr_event_data {
 struct if_mgr_event_data {
 	QDF_STATUS status;
 	QDF_STATUS status;

+ 12 - 10
umac/cmn_services/interface_mgr/inc/wlan_if_mgr_sta.h

@@ -22,29 +22,31 @@
 #define _WLAN_IF_MGR_STA_H_
 #define _WLAN_IF_MGR_STA_H_
 
 
 /**
 /**
- * wlan_process_connect_start() - connect start event handler
+ * if_mgr_connect_start() - connect start event handler
+ * @vdev: vdev object
+ * @event_data: Interface mgr event data
  *
  *
  * Interface manager connect start event handler
  * Interface manager connect start event handler
  *
  *
- * @vdev: vdev object
- * @event_data: Interface mgr event data
+ * Context: It should run in thread context
  *
  *
  * Return: QDF_STATUS
  * Return: QDF_STATUS
  */
  */
-QDF_STATUS wlan_process_connect_start(struct wlan_objmgr_vdev *vdev,
-				      struct if_mgr_event_data *event_data);
+QDF_STATUS if_mgr_connect_start(struct wlan_objmgr_vdev *vdev,
+				struct if_mgr_event_data *event_data);
 
 
 /**
 /**
- * wlan_process_connect_complete() - connect complete event handler
+ * if_mgr_connect_complete() - connect complete event handler
+ * @vdev: vdev object
+ * @event_data: Interface manager complete event data
  *
  *
  * Interface manager connect complete event handler
  * Interface manager connect complete event handler
  *
  *
- * @vdev: vdev object
- * @event_data: Interface manager complete event data
+ * Context: It should run in thread context
  *
  *
  * Return: QDF_STATUS
  * Return: QDF_STATUS
  */
  */
-QDF_STATUS wlan_process_connect_complete(struct wlan_objmgr_vdev *vdev,
-					 struct if_mgr_event_data *event_data);
+QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
+				   struct if_mgr_event_data *event_data);
 
 
 #endif
 #endif

+ 16 - 7
umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c

@@ -21,12 +21,14 @@
 #include "wlan_if_mgr_api.h"
 #include "wlan_if_mgr_api.h"
 #include "wlan_if_mgr_sta.h"
 #include "wlan_if_mgr_sta.h"
 #include "wlan_if_mgr_ap.h"
 #include "wlan_if_mgr_ap.h"
+#include "wlan_if_mgr_main.h"
 
 
 QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
 QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
 				enum wlan_if_mgr_evt event,
 				enum wlan_if_mgr_evt event,
 				struct if_mgr_event_data *event_data)
 				struct if_mgr_event_data *event_data)
 {
 {
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_objmgr_psoc *psoc;
+	QDF_STATUS status;
 
 
 	psoc = wlan_vdev_get_psoc(vdev);
 	psoc = wlan_vdev_get_psoc(vdev);
 	if (!psoc)
 	if (!psoc)
@@ -34,20 +36,27 @@ QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
 
 
 	switch (event) {
 	switch (event) {
 	case WLAN_IF_MGR_EV_CONNECT_START:
 	case WLAN_IF_MGR_EV_CONNECT_START:
-		wlan_process_connect_start(vdev, event_data);
+		status = if_mgr_connect_start(vdev, event_data);
 		break;
 		break;
-
 	case WLAN_IF_MGR_EV_CONNECT_COMPLETE:
 	case WLAN_IF_MGR_EV_CONNECT_COMPLETE:
-		wlan_process_connect_complete(vdev, event_data);
+		status = if_mgr_connect_complete(vdev, event_data);
 		break;
 		break;
-
 	case WLAN_IF_MGR_EV_AP_START_BSS:
 	case WLAN_IF_MGR_EV_AP_START_BSS:
-		wlan_process_ap_start_bss(vdev, event_data);
+		status = if_mgr_ap_start_bss(vdev, event_data);
 		break;
 		break;
-
+	case WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE:
+		status = if_mgr_ap_start_bss_complete(vdev, event_data);
+		break;
+	case WLAN_IF_MGR_EV_AP_STOP_BSS:
+		status = if_mgr_ap_stop_bss(vdev, event_data);
+		break;
+	case WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE:
+		status = if_mgr_ap_stop_bss_complete(vdev, event_data);
 	default:
 	default:
+		status = QDF_STATUS_E_INVAL;
+		ifmgr_err("Invalid event");
 		break;
 		break;
 	}
 	}
 
 
-	return QDF_STATUS_SUCCESS;
+	return status;
 }
 }