qcacmn: Add start/stop bss changes in interface mgr

- Add start/stop bss event processing

Change-Id: I7d0b786567229f4d683b72981f7f52e93e785c73
CRs-Fixed: 2759986
Cette révision appartient à :
Amruta Kulkarni
2020-08-20 11:26:04 -07:00
révisé par snandini
Parent 907c485706
révision 21bf0386f0
4 fichiers modifiés avec 96 ajouts et 37 suppressions

Voir le fichier

@@ -22,16 +22,63 @@
#define _WLAN_IF_MGR_AP_H_
/**
* wlan_process_start_bss_start() - Start BSS event handler
*
* Interface manager connect start bss event handler
*
* if_mgr_ap_start_bss() - Start BSS event handler
* @vdev: vdev object
* @event_data: Interface mgr event data
*
* Interface manager start bss event handler
*
* Context: It should run in thread context
*
* 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_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
* @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
*/
QDF_STATUS
if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev,
struct if_mgr_event_data *event_data);
#endif

Voir le fichier

@@ -30,15 +30,15 @@
/**
* 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 {
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_VALIDATE_CANDIDATE = 4,
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_COMPLETE = 8,
WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE = 8,
WLAN_IF_MGR_EV_MAX = 9,
};
/**
* 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 {
QDF_STATUS status;

Voir le fichier

@@ -22,29 +22,31 @@
#define _WLAN_IF_MGR_STA_H_
/**
* wlan_process_connect_start() - connect start event handler
*
* Interface manager 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
*
* Context: It should run in thread context
*
* 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
*
* Interface manager 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
*
* Context: It should run in thread context
*
* 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

Voir le fichier

@@ -21,12 +21,14 @@
#include "wlan_if_mgr_api.h"
#include "wlan_if_mgr_sta.h"
#include "wlan_if_mgr_ap.h"
#include "wlan_if_mgr_main.h"
QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
enum wlan_if_mgr_evt event,
struct if_mgr_event_data *event_data)
{
struct wlan_objmgr_psoc *psoc;
QDF_STATUS status;
psoc = wlan_vdev_get_psoc(vdev);
if (!psoc)
@@ -34,20 +36,27 @@ QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
switch (event) {
case WLAN_IF_MGR_EV_CONNECT_START:
wlan_process_connect_start(vdev, event_data);
status = if_mgr_connect_start(vdev, event_data);
break;
case WLAN_IF_MGR_EV_CONNECT_COMPLETE:
wlan_process_connect_complete(vdev, event_data);
status = if_mgr_connect_complete(vdev, event_data);
break;
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;
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:
status = QDF_STATUS_E_INVAL;
ifmgr_err("Invalid event");
break;
}
return QDF_STATUS_SUCCESS;
return status;
}