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
This commit is contained in:
Padma Raghunathan
2017-03-07 12:01:00 +05:30
committed by snandini
parent 57c42a193c
commit 314a0f7786

View File

@@ -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.