summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavi Joshi <ravij@codeaurora.org>2016-05-26 15:09:23 -0700
committerNandini Suresh <snandini@codeaurora.org>2016-06-29 19:42:04 -0700
commit412f23deb27e6314ea8669274013f2c346bbbec3 (patch)
treee6956f0798486ccb49d2d1719431e713da5d3d50
parentc9acc447ea31797a08d74cc80a6c3a7c05ca99c3 (diff)
qcacld-3.0: Add interface changes for supporting NAN data path
Add interface changes to enable NAN data path feature Propagation from qcacld-2.0 to qcacld-3.0 CRs-Fixed: 962367 Change-Id: I12a1d0cf37db22ff0bcb8165cb3f6b3847f8bf5b
-rw-r--r--core/mac/inc/sir_api.h350
-rw-r--r--core/mac/src/pe/nan/nan_datapath.c23
-rw-r--r--core/mac/src/pe/nan/nan_datapath.h94
-rw-r--r--core/sme/inc/csr_api.h17
-rw-r--r--core/sme/inc/sme_nan_datapath.h21
-rw-r--r--core/sme/src/nan/nan_datapath_api.c55
-rw-r--r--core/wma/src/wma_nan_datapath.c136
-rw-r--r--core/wma/src/wma_nan_datapath.h2
8 files changed, 696 insertions, 2 deletions
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index e41e60bc8612..e2172422c8a1 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -5877,4 +5877,354 @@ enum ht_capability_fields {
HT_CAPS_RX_STBC = 0x0300
};
+#ifdef WLAN_FEATURE_NAN_DATAPATH
+
+#define IFACE_NAME_SIZE 64
+
+/**
+ * enum ndp_accept_policy - nan data path accept policy
+ * @NDP_ACCEPT_POLICY_NONE: the framework will decide the policy
+ * @NDP_ACCEPT_POLICY_ALL: accept policy offloaded to fw
+ *
+ */
+enum ndp_accept_policy {
+ NDP_ACCEPT_POLICY_NONE = 0,
+ NDP_ACCEPT_POLICY_ALL = 1,
+};
+
+/**
+ * enum ndp_self_role - nan data path role
+ * @NDP_ROLE_INITIATOR: initiator of nan data path request
+ * @NDP_ROLE_RESPONDER: responder to nan data path request
+ *
+ */
+enum ndp_self_role {
+ NDP_ROLE_INITIATOR = 0,
+ NDP_ROLE_RESPONDER = 1,
+};
+
+/**
+ * enum ndp_response_code - responder's response code to nan data path request
+ * @NDP_RESPONSE_ACCEPT: ndp request accepted
+ * @NDP_RESPONSE_REJECT: ndp request rejected
+ * @NDP_RESPONSE_DEFER: ndp request deferred until later (response to follow
+ * any time later)
+ *
+ */
+enum ndp_response_code {
+ NDP_RESPONSE_ACCEPT = 0,
+ NDP_RESPONSE_REJECT = 1,
+ NDP_RESPONSE_DEFER = 2,
+};
+
+/**
+ * struct ndp_cfg - ndp configuration
+ * @tag: unique identifier
+ * @ndp_cfg_len: ndp configuration length
+ * @ndp_cfg: variable length ndp configuration
+ *
+ */
+struct ndp_cfg {
+ uint32_t tag;
+ uint32_t ndp_cfg_len;
+ uint8_t ndp_cfg[];
+};
+
+/**
+ * struct ndp_qos_cfg - ndp qos configuration
+ * @tag: unique identifier
+ * @ndp_qos_cfg_len: ndp qos configuration length
+ * @ndp_qos_cfg: variable length ndp qos configuration
+ *
+ */
+struct ndp_qos_cfg {
+ uint32_t tag;
+ uint32_t ndp_qos_cfg_len;
+ uint8_t ndp_qos_cfg[];
+};
+
+/**
+ * struct ndp_app_info - application info shared during ndp setup
+ * @tag: unique identifier
+ * @ndp_app_info_len: ndp app info length
+ * @ndp_app_info: variable length application information
+ *
+ */
+struct ndp_app_info {
+ uint32_t tag;
+ uint32_t ndp_app_info_len;
+ uint8_t ndp_app_info[];
+};
+
+/**
+ * struct ndi_create_req - ndi create request params
+ * @transaction_id: unique identifier
+ * @iface_name: interface name
+ *
+ */
+struct ndi_create_req {
+ uint32_t transaction_id;
+ char iface_name[IFACE_NAME_SIZE];
+};
+
+/**
+ * struct ndi_create_rsp - ndi create response params
+ * @transaction_id: unique identifier
+ * @status: request status
+ * @reason: reason if any
+ *
+ */
+struct ndi_create_rsp {
+ uint32_t transaction_id;
+ uint32_t status;
+ uint32_t reason;
+};
+
+/**
+ * struct ndi_delete_req - ndi delete request params
+ * @transaction_id: unique identifier
+ * @iface_name: interface name
+ *
+ */
+struct ndi_delete_req {
+ uint32_t transaction_id;
+ char iface_name[IFACE_NAME_SIZE];
+};
+
+/**
+ * struct ndi_delete_rsp - ndi delete response params
+ * @transaction_id: unique identifier
+ * @status: request status
+ * @reason: reason if any
+ *
+ */
+struct ndi_delete_rsp {
+ uint32_t transaction_id;
+ uint32_t status;
+ uint32_t reason;
+};
+
+/**
+ * struct ndp_initiator_req - ndp initiator request params
+ * @transaction_id: unique identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @channel: suggested channel for ndp creation
+ * @service_instance_id: Service identifier
+ * @peer_discovery_mac_addr: Peer's discovery mac address
+ * @self_ndi_mac_addr: self NDI mac address
+ * @ndp_config: ndp configuration params
+ * @ndp_info: ndp application info
+ *
+ */
+struct ndp_initiator_req {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t channel;
+ uint32_t service_instance_id;
+ struct qdf_mac_addr peer_discovery_mac_addr;
+ struct qdf_mac_addr self_ndi_mac_addr;
+ struct ndp_cfg ndp_config;
+ struct ndp_app_info ndp_info;
+};
+
+/**
+ * struct ndp_initiator_rsp_event - response event from FW
+ * @transaction_id: unique identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @ndp_instance_id: locally created NDP instance ID
+ * @status: status of the ndp request
+ * @reason: reason for failure if any
+ *
+ */
+struct ndp_initiator_rsp_event {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t ndp_instance_id;
+ uint32_t status;
+ uint32_t reason;
+};
+
+/**
+ * struct ndp_indication_event - create ndp indication on the responder
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @service_instance_id: Service identifier
+ * @peer_discovery_mac_addr: Peer's discovery mac address
+ * @ndp_initiator_mac_addr: NDI mac address of the peer initiating NDP
+ * @ndp_instance_id: locally created NDP instance ID
+ * @role: self role for NDP
+ * @ndp_accept_policy: accept policy configured by the upper layer
+ * @ndp_config: ndp configuration params
+ * @ndp_info: ndp application info
+ *
+ */
+struct ndp_indication_event {
+ uint32_t vdev_id;
+ uint32_t service_instance_id;
+ struct qdf_mac_addr peer_discovery_mac_addr;
+ struct qdf_mac_addr ndp_initiator_mac_addr;
+ uint32_t ndp_instance_id;
+ enum ndp_self_role role;
+ enum ndp_accept_policy policy;
+ struct ndp_cfg ndp_config;
+ struct ndp_app_info ndp_info;
+};
+
+/**
+ * struct ndp_responder_req - responder's response to ndp create request
+ * @transaction_id: unique identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @ndp_instance_id: locally created NDP instance ID
+ * @ndp_rsp: response to the ndp create request
+ * @ndp_config: ndp configuration params
+ * @ndp_info: ndp application info
+ *
+ */
+struct ndp_responder_req {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t ndp_instance_id;
+ enum ndp_response_code ndp_rsp;
+ struct ndp_cfg ndp_config;
+ struct ndp_app_info ndp_info;
+};
+
+/**
+ * struct ndp_responder_rsp_event - response to responder's request
+ * @transaction_id: unique identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @status: command status
+ * @reason: reason for failure if any
+ *
+ */
+struct ndp_responder_rsp_event {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t status;
+ uint32_t reason;
+};
+
+/**
+ * struct ndp_confirm_event - ndp confirmation event from FW
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @ndp_instance_id: ndp instance id for which confirm is being generated
+ * @peer_ndi_mac_addr: peer NDI mac address
+ * @rsp_code: ndp response code
+ * @ndp_config: ndp configuration
+ * @ndp_info: ndp application info
+ *
+ */
+struct ndp_confirm_event {
+ uint32_t vdev_id;
+ uint32_t ndp_instance_id;
+ struct qdf_mac_addr peer_ndi_mac_addr;
+ enum ndp_response_code rsp_code;
+ struct ndp_cfg ndp_config;
+ struct ndp_app_info ndp_info;
+};
+
+/**
+ * struct ndp_end_req - ndp end request
+ * @transaction_id: unique transaction identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @num_ndp_instances: number of ndp instances to be terminated
+ * @ndp_instances: list of ndp instances to be terminated
+ *
+ */
+struct ndp_end_req {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t num_ndp_instances;
+ uint32_t ndp_instances[];
+};
+
+/**
+ * struct peer_ndp_map - mapping of NDP instances to peer to VDEV
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @peer_ndi_mac_addr: peer NDI mac address
+ * @num_active_ndp_sessions: number of active NDP sessions on the peer
+ *
+ */
+struct peer_ndp_map {
+ uint32_t vdev_id;
+ struct qdf_mac_addr peer_ndi_mac_addr;
+ uint32_t num_active_ndp_sessions;
+};
+
+/**
+ * struct ndp_end_rsp_event - firmware response to ndp end request
+ * @transaction_id: unique identifier for the request
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @ndp_map: mapping of NDP instances to peer to VDEV
+ *
+ */
+struct ndp_end_rsp_event {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ struct peer_ndp_map ndp_map[];
+};
+
+/**
+ * struct ndp_end_indication_event - ndp termination notification from FW
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @reason: reason code for failure if any
+ * @status: status of the request
+ * @ndp_map: mapping of NDP instances to peer to VDEV
+ *
+ */
+struct ndp_end_indication_event {
+ uint32_t vdev_id;
+ uint32_t status;
+ uint32_t reason;
+ struct peer_ndp_map ndp_map[];
+};
+
+/**
+ * struct ndp_schedule_update_req - ndp schedule update request
+ * @transaction_id: unique identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @ndp_instance_id: ndp instance id for which schedule update is requested
+ * @ndp_qos: new set of qos parameters
+ *
+ */
+struct ndp_schedule_update_req {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t ndp_instance_id;
+ struct ndp_qos_cfg ndp_qos;
+};
+
+/**
+ * struct ndp_schedule_update_rsp - ndp schedule update response
+ * @transaction_id: unique identifier
+ * @vdev_id: session id of the interface over which ndp is being created
+ * @status: status of the request
+ * @reason: reason code for failure if any
+ *
+ */
+struct ndp_schedule_update_rsp {
+ uint32_t transaction_id;
+ uint32_t vdev_id;
+ uint32_t status;
+ uint32_t reason;
+};
+
+/**
+ * struct sme_ndp_peer_ind - ndp peer indication
+ * @msg_type: message id
+ * @msg_len: message length
+ * @session_id: session id
+ * @peer_mac_addr: peer mac address
+ * @sta_id: station id
+ *
+ */
+struct sme_ndp_peer_ind {
+ uint16_t msg_type;
+ uint16_t msg_len;
+ uint8_t session_id;
+ struct qdf_mac_addr peer_mac_addr;
+ uint16_t sta_id;
+};
+
+#endif /* WLAN_FEATURE_NAN_DATAPATH */
+
#endif /* __SIR_API_H */
diff --git a/core/mac/src/pe/nan/nan_datapath.c b/core/mac/src/pe/nan/nan_datapath.c
index d9f6a5f26bd2..9333e777130e 100644
--- a/core/mac/src/pe/nan/nan_datapath.c
+++ b/core/mac/src/pe/nan/nan_datapath.c
@@ -26,3 +26,26 @@
#include "nan_datapath.h"
+/**
+ * handle_ndp_request_message() - Function to handle NDP requests from SME
+ * @mac_ctx: handle to mac structure
+ * @msg: pointer to message
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS handle_ndp_request_message(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * handle_ndp_event_message() - Handler for NDP events from WMA
+ * @mac_ctx: handle to mac structure
+ * @msg: pointer to message
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS handle_ndp_event_message(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
+{
+ return QDF_STATUS_SUCCESS;
+}
diff --git a/core/mac/src/pe/nan/nan_datapath.h b/core/mac/src/pe/nan/nan_datapath.h
index d4f23984c105..2d1afa6dc162 100644
--- a/core/mac/src/pe/nan/nan_datapath.h
+++ b/core/mac/src/pe/nan/nan_datapath.h
@@ -27,5 +27,99 @@
#ifndef __MAC_NAN_DATAPATH_H
#define __MAC_NAN_DATAPATH_H
+#ifdef WLAN_FEATURE_NAN_DATAPATH
+
+#include "sir_common.h"
+#include "ani_global.h"
+#include "sir_params.h"
+
+/**
+ * struct ndp_peer_node - structure for holding per-peer context
+ * @next: pointer to the next peer
+ * @peer_mac_addr: peer mac address
+ * @ext_rates_present: extended rates supported
+ * @edca_present: edca supported
+ * @wme_edca_present: WME EDCA supported
+ * @wme_info_present: WME info supported
+ * @ht_capable: HT capable
+ * @vht_capable: VHT capabale
+ * @ht_sec_chan_offset: HT secondary channel offset
+ * @capability_info: Generic capability info
+ * @supported_rates: Supported rates
+ * @extended_rates: Supported extended rates
+ * @supported_mcs_rate: Supported MCS rates
+ * @edca_params: EDCA parameters
+ * @erp_ie_present: ERP IE supported
+ * @ht_green_field: HT green field supported
+ * @ht_shortGI_40Mhz; 40 MHZ short GI support
+ * @ht_shortGI_20Mhz; 20 MHZ short GI support
+ * @ht_mimo_ps_state: MIMO power state
+ * @ht_ampdu_density: AMPDU density
+ * @ht_max_rxampdu_factor: receieve AMPDU factor
+ * @ht_max_amsdu_len: Max AMSDU lengh supported
+ * @ht_supp_chan_widthset: Supported channel widthset
+ * @ht_ldpc_capable: LDPC capable
+ * @heartbeat_failure: heart beat failure indication flag
+ * @vht_caps: VHT capability
+ * @vht_supp_chanwidth_set: VHT supported channel width
+ * @vht_beamformer_capable: Beam former capable
+ */
+struct ndp_peer_node {
+ struct ndp_peer_node *next;
+ struct qdf_mac_addr peer_mac_addr;
+ uint8_t ext_rates_present;
+ uint8_t edca_present;
+ uint8_t wme_edca_present;
+ uint8_t wme_info_present;
+ uint8_t ht_capable;
+ uint8_t vht_capable;
+ uint8_t ht_sec_chan_offset;
+ tSirMacCapabilityInfo capability_info;
+ tSirMacRateSet supported_rates;
+ tSirMacRateSet extended_rates;
+ uint8_t supported_mcs_rate[SIZE_OF_SUPPORTED_MCS_SET];
+ tSirMacEdcaParamSetIE edca_params;
+ uint8_t erp_ie_present;
+ uint8_t ht_green_field;
+ uint8_t ht_shortGI_40Mhz;
+ uint8_t ht_shortGI_20Mhz;
+ /* MIMO Power Save */
+ tSirMacHTMIMOPowerSaveState ht_mimo_ps_state;
+ uint8_t ht_ampdu_density;
+ /* Maximum Rx A-MPDU factor */
+ uint8_t ht_max_rxampdu_factor;
+ uint8_t ht_max_amsdu_len;
+ uint8_t ht_supp_chan_widthset;
+ uint8_t ht_ldpc_capable;
+ uint8_t heartbeat_failure;
+
+#ifdef WLAN_FEATURE_11AC
+ tDot11fIEVHTCaps vht_caps;
+ uint8_t vht_supp_chanwidth_set;
+ uint8_t vht_beamformer_capable;
+#endif
+};
+
+/* Function to process NDP requests */
+QDF_STATUS lim_handle_ndp_request_message(tpAniSirGlobal mac_ctx,
+ tpSirMsgQ msg);
+/* Function to process NDP events */
+QDF_STATUS lim_handle_ndp_event_message(tpAniSirGlobal mac_ctx,
+ tpSirMsgQ msg);
+#else
+/* Function to process NDP requests */
+static inline QDF_STATUS lim_handle_ndp_request_message(tpAniSirGlobal mac_ctx,
+ tpSirMsgQ msg)
+{
+ return QDF_STATUS_SUCCESS;
+}
+/* Function to process NDP events */
+static inline QDF_STATUS lim_handle_ndp_event_message(tpAniSirGlobal mac_ctx,
+ tpSirMsgQ msg)
+{
+ return QDF_STATUS_SUCCESS;
+}
+#endif /* WLAN_FEATURE_NAN_DATAPATH */
+
#endif /* __MAC_NAN_DATAPATH_H */
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index 99f255f4fc88..09a4b46a01aa 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -610,6 +610,8 @@ typedef enum {
eCSR_ROAM_RESULT_DFS_CHANSW_UPDATE_SUCCESS,
eCSR_ROAM_EXT_CHG_CHNL_UPDATE_IND,
+ eCSR_ROAM_RESULT_NDP_CREATE_RSP,
+ eCSR_ROAM_RESULT_NDP_DELETE_RSP,
eCSR_ROAM_RESULT_NDP_INITIATOR_RSP,
eCSR_ROAM_RESULT_NDP_NEW_PEER_IND,
eCSR_ROAM_RESULT_NDP_CONFIRM_IND,
@@ -1372,6 +1374,21 @@ typedef struct tagCsrRoamInfo {
#endif
tSirSmeChanInfo chan_info;
uint8_t target_channel;
+
+#ifdef WLAN_FEATURE_NAN_DATAPATH
+ union {
+ struct sme_ndp_peer_ind ndp_peer_ind_params;
+ struct ndp_schedule_update_rsp ndp_sched_upd_rsp_params;
+ struct ndp_end_indication_event ndp_end_ind_params;
+ struct ndp_end_rsp_event ndp_end_rsp_params;
+ struct ndp_confirm_event ndp_confirm_params;
+ struct ndp_responder_rsp_event ndp_responder_rsp_params;
+ struct ndp_indication_event ndp_indication_params;
+ struct ndp_initiator_rsp_event ndp_init_rsp_params;
+ struct ndi_create_rsp ndi_create_params;
+ struct ndi_delete_rsp ndi_delete_params;
+ } ndp;
+#endif
} tCsrRoamInfo;
typedef struct tagCsrFreqScanInfo {
diff --git a/core/sme/inc/sme_nan_datapath.h b/core/sme/inc/sme_nan_datapath.h
index 9b91f0a70f77..b65d5a472001 100644
--- a/core/sme/inc/sme_nan_datapath.h
+++ b/core/sme/inc/sme_nan_datapath.h
@@ -27,6 +27,25 @@
#ifndef __SME_NAN_DATAPATH_H
#define __SME_NAN_DATAPATH_H
-#endif /* __SME_NAN_DATAPATH_H */
+#include "ani_global.h"
+
+/* NAN initiator request handler */
+QDF_STATUS sme_ndp_initiator_req_handler(uint32_t session_id,
+ struct ndp_initiator_req *req_params);
+
+/* NAN responder request handler */
+QDF_STATUS sme_ndp_responder_req_handler(uint32_t session_id,
+ struct ndp_responder_req *req_params);
+/* NAN indication response handler */
+QDF_STATUS sme_ndp_end_req_handler(uint32_t session_id,
+ struct ndp_end_req *req_params);
+/* NAN schedule update request handler */
+QDF_STATUS sme_ndp_sched_req_handler(uint32_t session_id,
+ struct ndp_schedule_update_req *req_params);
+
+/* Function to handle NDP messages from lower layers */
+void sme_ndp_message_processor(tpAniSirGlobal mac_ctx, uint16_t msg_type,
+ void *msg);
+#endif /* __SME_NAN_DATAPATH_H */
diff --git a/core/sme/src/nan/nan_datapath_api.c b/core/sme/src/nan/nan_datapath_api.c
index 56a8a99f6ac8..88b428f505d1 100644
--- a/core/sme/src/nan/nan_datapath_api.c
+++ b/core/sme/src/nan/nan_datapath_api.c
@@ -24,3 +24,58 @@
* SME NAN Data path API implementation
*/
#include "sme_nan_datapath.h"
+
+/**
+ * sme_ndp_initiator_req_handler() - ndp initiator req handler
+ * @session_id: session id over which the ndp is being created
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS sme_ndp_initiator_req_handler(uint32_t session_id,
+ struct ndp_initiator_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * sme_ndp_responder_req_handler() - ndp responder request handler
+ * @session_id: session id over which the ndp is being created
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS sme_ndp_responder_req_handler(uint32_t session_id,
+ struct ndp_responder_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * sme_ndp_end_req_handler() - ndp end request handler
+ * @session_id: session id over which the ndp is being created
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS sme_ndp_end_req_handler(uint32_t session_id,
+ struct ndp_end_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+
+/**
+ * sme_ndp_sched_req_handler() - ndp schedule request handler
+ * @session_id: session id over which the ndp is being created
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS sme_ndp_sched_req_handler(uint32_t session_id,
+ struct ndp_schedule_update_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+
diff --git a/core/wma/src/wma_nan_datapath.c b/core/wma/src/wma_nan_datapath.c
index 6deebb293239..4a2d98425d75 100644
--- a/core/wma/src/wma_nan_datapath.c
+++ b/core/wma/src/wma_nan_datapath.c
@@ -26,3 +26,139 @@
#include "wma_nan_datapath.h"
+
+/**
+ * wma_handle_ndp_initiator_req() - NDP initiator request handler
+ * @wma_handle: wma handle
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_handle_ndp_initiator_req(tp_wma_handle wma_handle,
+ struct ndp_initiator_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_handle_ndp_responder_req() - NDP responder request handler
+ * @wma_handle: wma handle
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_handle_ndp_responder_req(tp_wma_handle wma_handle,
+ struct ndp_responder_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_handle_ndp_end_req() - NDP end request handler
+ * @wma_handle: wma handle
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_handle_ndp_end_req(tp_wma_handle wma_handle,
+ struct ndp_end_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_handle_ndp_sched_update_req() - NDP schedule update request handler
+ * @wma_handle: wma handle
+ * @req_params: request parameters
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_handle_ndp_sched_update_req(tp_wma_handle wma_handle,
+ struct ndp_end_req *req_params)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_ndp_indication_event_handler() - NDP indication event handler
+ * @handle: wma handle
+ * @event_info: event handler data
+ * @len: length of event_info
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_ndp_indication_event_handler(void *handle,
+ uint8_t *event_info, uint32_t len)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_ndp_responder_resp_event_handler() - NDP responder response event handler
+ * @handle: wma handle
+ * @event_info: event handler data
+ * @len: length of event_info
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_ndp_responder_resp_event_handler(void *handle,
+ uint8_t *event_info, uint32_t len)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_ndp_confirm_event_handler() - NDP confirm event handler
+ * @handle: wma handle
+ * @event_info: event handler data
+ * @len: length of event_info
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_ndp_confirm_event_handler(void *handle,
+ uint8_t *event_info, uint32_t len)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_ndp_end_response_event_handler() - NDP end response event handler
+ * @handle: wma handle
+ * @event_info: event handler data
+ * @len: length of event_info
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_ndp_end_response_event_handler(void *handle,
+ uint8_t *event_info, uint32_t len)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_ndp_end_indication_event_handler() - NDP end indication event handler
+ * @handle: wma handle
+ * @event_info: event handler data
+ * @len: length of event_info
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_ndp_end_indication_event_handler(void *handle,
+ uint8_t *event_info, uint32_t len)
+{
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_ndp_sched_update_rsp_event_handler() -NDP sched update rsp event handler
+ * @handle: wma handle
+ * @event_info: event handler data
+ * @len: length of event_info
+ *
+ * Return: QDF_STATUS_SUCCESS on success; error number otherwise
+ */
+QDF_STATUS wma_ndp_sched_update_rsp_event_handler(void *handle,
+ uint8_t *event_info, uint32_t len)
+{
+ return QDF_STATUS_SUCCESS;
+}
diff --git a/core/wma/src/wma_nan_datapath.h b/core/wma/src/wma_nan_datapath.h
index 00bbbad70c78..7623e43c2538 100644
--- a/core/wma/src/wma_nan_datapath.h
+++ b/core/wma/src/wma_nan_datapath.h
@@ -52,6 +52,6 @@ static inline void wma_update_hdd_cfg_ndp(tp_wma_handle wma_handle,
return;
}
-#endif
+#endif /* WLAN_FEATURE_NAN_DATAPATH */
#endif /* __WMA_NAN_DATAPATH_H */