1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name /** 20*5113495bSYour Name * DOC: Implement API's specific to NAN component. 21*5113495bSYour Name */ 22*5113495bSYour Name 23*5113495bSYour Name #ifndef _WMI_UNIFIED_NAN_API_H_ 24*5113495bSYour Name #define _WMI_UNIFIED_NAN_API_H_ 25*5113495bSYour Name 26*5113495bSYour Name #include <nan_public_structs.h> 27*5113495bSYour Name 28*5113495bSYour Name /** 29*5113495bSYour Name * wmi_unified_nan_req_cmd() - to send nan request to target 30*5113495bSYour Name * @wmi_handle: wmi handle 31*5113495bSYour Name * @nan_req: request data which will be non-null 32*5113495bSYour Name * 33*5113495bSYour Name * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 34*5113495bSYour Name */ 35*5113495bSYour Name QDF_STATUS wmi_unified_nan_req_cmd(wmi_unified_t wmi_handle, 36*5113495bSYour Name struct nan_msg_params *nan_req); 37*5113495bSYour Name 38*5113495bSYour Name /** 39*5113495bSYour Name * wmi_unified_nan_disable_req_cmd() - to send nan disable request to target 40*5113495bSYour Name * @wmi_handle: wmi handle 41*5113495bSYour Name * @nan_req: pointer to NAN Disable request structure 42*5113495bSYour Name * 43*5113495bSYour Name * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 44*5113495bSYour Name */ 45*5113495bSYour Name QDF_STATUS wmi_unified_nan_disable_req_cmd(wmi_unified_t wmi_handle, 46*5113495bSYour Name struct nan_disable_req *nan_req); 47*5113495bSYour Name 48*5113495bSYour Name /** 49*5113495bSYour Name * wmi_unified_ndp_initiator_req_cmd_send - api to send initiator request to FW 50*5113495bSYour Name * @wmi_handle: wmi handle 51*5113495bSYour Name * @req: pointer to request buffer 52*5113495bSYour Name * 53*5113495bSYour Name * Return: status of operation 54*5113495bSYour Name */ 55*5113495bSYour Name QDF_STATUS 56*5113495bSYour Name wmi_unified_ndp_initiator_req_cmd_send(wmi_unified_t wmi_handle, 57*5113495bSYour Name struct nan_datapath_initiator_req *req); 58*5113495bSYour Name 59*5113495bSYour Name /** 60*5113495bSYour Name * wmi_unified_ndp_responder_req_cmd_send - api to send responder request to FW 61*5113495bSYour Name * @wmi_handle: wmi handle 62*5113495bSYour Name * @req: pointer to request buffer 63*5113495bSYour Name * 64*5113495bSYour Name * Return: status of operation 65*5113495bSYour Name */ 66*5113495bSYour Name QDF_STATUS 67*5113495bSYour Name wmi_unified_ndp_responder_req_cmd_send(wmi_unified_t wmi_handle, 68*5113495bSYour Name struct nan_datapath_responder_req *req); 69*5113495bSYour Name 70*5113495bSYour Name /** 71*5113495bSYour Name * wmi_unified_ndp_end_req_cmd_send - api to send end request to FW 72*5113495bSYour Name * @wmi_handle: wmi handle 73*5113495bSYour Name * @req: pointer to request buffer 74*5113495bSYour Name * 75*5113495bSYour Name * Return: status of operation 76*5113495bSYour Name */ 77*5113495bSYour Name QDF_STATUS wmi_unified_ndp_end_req_cmd_send(wmi_unified_t wmi_handle, 78*5113495bSYour Name struct nan_datapath_end_req *req); 79*5113495bSYour Name 80*5113495bSYour Name /** 81*5113495bSYour Name * wmi_unified_terminate_all_ndps_req_cmd - api to request Firmware for 82*5113495bSYour Name * termination of all NDP's associated with the given vdev id. 83*5113495bSYour Name * @wmi_handle: wmi handle 84*5113495bSYour Name * @vdev_id: vdev id 85*5113495bSYour Name * 86*5113495bSYour Name * Return: status of operation 87*5113495bSYour Name */ 88*5113495bSYour Name QDF_STATUS wmi_unified_terminate_all_ndps_req_cmd(wmi_unified_t wmi_handle, 89*5113495bSYour Name uint32_t vdev_id); 90*5113495bSYour Name 91*5113495bSYour Name /** 92*5113495bSYour Name * wmi_extract_ndp_initiator_rsp - api to extract initiator rsp from even buffer 93*5113495bSYour Name * @wmi_handle: wmi handle 94*5113495bSYour Name * @data: event buffer 95*5113495bSYour Name * @rsp: buffer to populate 96*5113495bSYour Name * 97*5113495bSYour Name * Return: status of operation 98*5113495bSYour Name */ 99*5113495bSYour Name QDF_STATUS 100*5113495bSYour Name wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle, uint8_t *data, 101*5113495bSYour Name struct nan_datapath_initiator_rsp *rsp); 102*5113495bSYour Name 103*5113495bSYour Name /** 104*5113495bSYour Name * wmi_extract_ndp_ind - api to extract ndp indication struct from even buffer 105*5113495bSYour Name * @wmi_handle: wmi handle 106*5113495bSYour Name * @data: event buffer 107*5113495bSYour Name * @ind: buffer to populate 108*5113495bSYour Name * 109*5113495bSYour Name * Return: status of operation 110*5113495bSYour Name */ 111*5113495bSYour Name QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data, 112*5113495bSYour Name struct nan_datapath_indication_event *ind); 113*5113495bSYour Name 114*5113495bSYour Name /** 115*5113495bSYour Name * wmi_extract_nan_msg - api to extract ndp dmesg buffer to print logs 116*5113495bSYour Name * @wmi_handle: wmi handle 117*5113495bSYour Name * @data: event buffer 118*5113495bSYour Name * @msg: buffer to populate 119*5113495bSYour Name * 120*5113495bSYour Name * Return: status of operation 121*5113495bSYour Name */ 122*5113495bSYour Name QDF_STATUS wmi_extract_nan_msg(wmi_unified_t wmi_handle, uint8_t *data, 123*5113495bSYour Name struct nan_dump_msg *msg); 124*5113495bSYour Name 125*5113495bSYour Name /** 126*5113495bSYour Name * wmi_extract_ndp_confirm - api to extract ndp confim struct from even buffer 127*5113495bSYour Name * @wmi_handle: wmi handle 128*5113495bSYour Name * @data: event buffer 129*5113495bSYour Name * @ev: buffer to populate 130*5113495bSYour Name * 131*5113495bSYour Name * Return: status of operation 132*5113495bSYour Name */ 133*5113495bSYour Name QDF_STATUS wmi_extract_ndp_confirm(wmi_unified_t wmi_handle, uint8_t *data, 134*5113495bSYour Name struct nan_datapath_confirm_event *ev); 135*5113495bSYour Name 136*5113495bSYour Name /** 137*5113495bSYour Name * wmi_extract_ndp_responder_rsp - api to extract responder rsp from even buffer 138*5113495bSYour Name * @wmi_handle: wmi handle 139*5113495bSYour Name * @data: event buffer 140*5113495bSYour Name * @rsp: buffer to populate 141*5113495bSYour Name * 142*5113495bSYour Name * Return: status of operation 143*5113495bSYour Name */ 144*5113495bSYour Name QDF_STATUS 145*5113495bSYour Name wmi_extract_ndp_responder_rsp(wmi_unified_t wmi_handle, uint8_t *data, 146*5113495bSYour Name struct nan_datapath_responder_rsp *rsp); 147*5113495bSYour Name 148*5113495bSYour Name /** 149*5113495bSYour Name * wmi_extract_ndp_end_rsp - api to extract ndp end rsp from even buffer 150*5113495bSYour Name * @wmi_handle: wmi handle 151*5113495bSYour Name * @data: event buffer 152*5113495bSYour Name * @rsp: buffer to populate 153*5113495bSYour Name * 154*5113495bSYour Name * Return: status of operation 155*5113495bSYour Name */ 156*5113495bSYour Name QDF_STATUS wmi_extract_ndp_end_rsp(wmi_unified_t wmi_handle, uint8_t *data, 157*5113495bSYour Name struct nan_datapath_end_rsp_event *rsp); 158*5113495bSYour Name 159*5113495bSYour Name /** 160*5113495bSYour Name * wmi_extract_ndp_end_ind - api to extract ndp end indication from even buffer 161*5113495bSYour Name * @wmi_handle: wmi handle 162*5113495bSYour Name * @data: event buffer 163*5113495bSYour Name * @ind: buffer to populate 164*5113495bSYour Name * 165*5113495bSYour Name * Return: status of operation 166*5113495bSYour Name */ 167*5113495bSYour Name QDF_STATUS 168*5113495bSYour Name wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data, 169*5113495bSYour Name struct nan_datapath_end_indication_event **ind); 170*5113495bSYour Name 171*5113495bSYour Name /** 172*5113495bSYour Name * wmi_extract_ndp_sch_update - api to extract ndp sch update from event buffer 173*5113495bSYour Name * @wmi_handle: wmi handle 174*5113495bSYour Name * @data: event buffer 175*5113495bSYour Name * @ind: buffer to populate 176*5113495bSYour Name * 177*5113495bSYour Name * Return: status of operation 178*5113495bSYour Name */ 179*5113495bSYour Name QDF_STATUS 180*5113495bSYour Name wmi_extract_ndp_sch_update(wmi_unified_t wmi_handle, uint8_t *data, 181*5113495bSYour Name struct nan_datapath_sch_update_event *ind); 182*5113495bSYour Name 183*5113495bSYour Name /** 184*5113495bSYour Name * wmi_extract_nan_event_rsp - api to extract nan event into event parameters 185*5113495bSYour Name * @wmi_handle: wmi handle 186*5113495bSYour Name * @evt_buf: pointer to the event buffer 187*5113495bSYour Name * @temp_evt_params: Pointer to a temporary parameters structure to populate 188*5113495bSYour Name * @nan_msg_buf: Pointer to the NAN Message buffer encapsulated in the event 189*5113495bSYour Name * 190*5113495bSYour Name * Return: status of operation 191*5113495bSYour Name */ 192*5113495bSYour Name QDF_STATUS wmi_extract_nan_event_rsp(wmi_unified_t wmi_handle, void *evt_buf, 193*5113495bSYour Name struct nan_event_params *temp_evt_params, 194*5113495bSYour Name uint8_t **nan_msg_buf); 195*5113495bSYour Name 196*5113495bSYour Name /** 197*5113495bSYour Name * wmi_extract_ndp_host_event - api to extract ndp event from event buffer 198*5113495bSYour Name * @wmi_handle: wmi handle 199*5113495bSYour Name * @data: event buffer 200*5113495bSYour Name * @evt: event buffer to populate 201*5113495bSYour Name * 202*5113495bSYour Name * Return: status of operation 203*5113495bSYour Name */ 204*5113495bSYour Name QDF_STATUS wmi_extract_ndp_host_event(wmi_unified_t wmi_handle, uint8_t *data, 205*5113495bSYour Name struct nan_datapath_host_event *evt); 206*5113495bSYour Name #endif /* _WMI_UNIFIED_NAN_API_H_ */ 207