Browse Source

qcacmn: MLME tx/rx ops for DA scan

 - DA scan state machine is moved to LMAC from UMAC
 - Functionalities in UMAC required by LMAC scan are accessed through tx
   ops and rx ops framework
 - These functionalities are specific to DA, hence distinguished by
   having them in seperate mlme_ops structure instead of mixing with
   common scan_ops structure

FR 38661: UMAC Convergence: Direct Attach Separation

Change-Id: I5177f20d41b7c1788629bcf10d60e4ad9642e0a6
CRs-Fixed: 2037656
Padma Raghunathan 8 years ago
parent
commit
314a0f7786
1 changed files with 68 additions and 0 deletions
  1. 68 0
      umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h

+ 68 - 0
umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h

@@ -20,6 +20,7 @@
 #ifndef _WLAN_LMAC_IF_DEF_H_
 #define _WLAN_LMAC_IF_DEF_H_
 
+#include <qdf_time.h>
 #include "qdf_status.h"
 #include "wlan_objmgr_cmn.h"
 #ifdef DFS_COMPONENT_ENABLE
@@ -95,6 +96,13 @@ struct wlan_lmac_if_scan_tx_ops {
 };
 
 
+struct wlan_lmac_if_mlme_tx_ops {
+	void (*scan_sta_power_events)(struct wlan_objmgr_pdev *pdev,
+			int event_type, int event_status);
+	void (*scan_connection_lost)(struct wlan_objmgr_pdev *pdev);
+	void (*scan_end)(struct wlan_objmgr_pdev *pdev);
+};
+
 /**
  * struct wlan_lmac_if_scan_rx_ops  - south bound rx function pointers for scan
  * @scan_ev_handler: scan event handler
@@ -559,6 +567,7 @@ struct wlan_lmac_if_tx_ops {
 #ifdef CONVERGED_TDLS_ENABLE
 	struct wlan_lmac_if_tdls_tx_ops tdls_tx_ops;
 #endif
+	 struct wlan_lmac_if_mlme_tx_ops mops;
 };
 
 /**
@@ -836,6 +845,64 @@ struct wlan_lmac_if_dfs_rx_ops {
 #endif
 };
 
+struct wlan_lmac_if_mlme_rx_ops {
+
+	void (*wlan_mlme_scan_start)(struct wlan_objmgr_pdev *pdev);
+	void (*wlan_mlme_register_pm_event_handler)(
+			struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	void (*wlan_mlme_unregister_pm_event_handler)(
+			struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	QDF_STATUS (*wlan_mlme_register_vdev_event_handler)(
+			struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	QDF_STATUS (*wlan_mlme_unregister_vdev_event_handler)(
+			struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	int (*wlan_mlme_send_probe_request)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id,
+			u_int8_t  *destination,
+			u_int8_t  *bssid,
+			u_int8_t  *ssid,
+			u_int32_t  ssidlen,
+			u_int8_t  *ie,
+			size_t len);
+	int (*wlan_mlme_resmgr_request_bsschan)(struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_resmgr_request_offchan)(struct wlan_objmgr_pdev *pdev,
+			u_int32_t freq,
+			u_int32_t flags,
+			u_int32_t estimated_offchannel_time);
+	int (*wlan_mlme_resmgr_active)(struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_get_cw_inter_found)(struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_set_home_channel)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	int (*wlan_mlme_set_channel)(struct wlan_objmgr_pdev *pdev,
+			u_int32_t freq,
+			u_int32_t flags);
+	void (*wlan_mlme_start_record_stats)(struct wlan_objmgr_pdev *pdev);
+	void (*wlan_mlme_end_record_stats)(struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_get_enh_rpt_ind)(struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_pause)(struct wlan_objmgr_pdev *pdev);
+	void (*wlan_mlme_unpause)(struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_vdev_pause_control)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	int (*wlan_mlme_sta_power_pause)(
+			struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id,
+			u_int32_t timeout);
+	int (*wlan_mlme_sta_power_unpause)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	int (*wlan_mlme_set_vdev_sleep)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	int (*wlan_mlme_set_vdev_wakeup)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	qdf_time_t (*wlan_mlme_get_traffic_indication_timestamp)(
+			struct wlan_objmgr_pdev *pdev);
+	int (*wlan_mlme_get_acs_in_progress)(struct wlan_objmgr_pdev *pdev,
+			uint8_t vdev_id);
+	void (*wlan_mlme_end_scan)(struct wlan_objmgr_pdev *pdev);
+};
 /**
  * struct wlan_lmac_if_rx_ops - south bound rx function pointers
  * @mgmt_txrx_tx_ops: mgmt txrx rx ops
@@ -877,6 +944,7 @@ struct wlan_lmac_if_rx_ops {
 #ifdef CONVERGED_TDLS_ENABLE
 	struct wlan_lmac_if_tdls_rx_ops tdls_rx_ops;
 #endif
+	struct wlan_lmac_if_mlme_rx_ops mops;
 };
 
 /* Function pointer to call legacy tx_ops registration in OL/WMA.