Просмотр исходного кода

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
Ravi Joshi 9 лет назад
Родитель
Сommit
412f23deb2

+ 350 - 0
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 */

+ 23 - 0
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;
+}

+ 94 - 0
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 */
 

+ 17 - 0
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 {

+ 20 - 1
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 */

+ 55 - 0
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;
+}
+
+

+ 136 - 0
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;
+}

+ 1 - 1
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 */