qcacmn: Add support for NAN msg in kmsg
Add support for the following NAN messages in kmsg:- 1. NAN enable status 2. NAN, NDP match events 3. NDP channel info. etc. Change-Id: I7f67b67153904b7efe8a708e3f93d069e399395c CRs-Fixed: 2618433
This commit is contained in:

committed by
nshrivas

vanhempi
5fd5cf65e2
commit
b73ede30b8
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -111,6 +111,16 @@ wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle, uint8_t *data,
|
|||||||
QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data,
|
QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data,
|
||||||
struct nan_datapath_indication_event *ind);
|
struct nan_datapath_indication_event *ind);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wmi_extract_nan_msg - api to extract ndp dmesg buffer to print logs
|
||||||
|
* @data: event buffer
|
||||||
|
* @msg: buffer to populate
|
||||||
|
*
|
||||||
|
* Return: status of operation
|
||||||
|
*/
|
||||||
|
QDF_STATUS wmi_extract_nan_msg(wmi_unified_t wmi_handle, uint8_t *data,
|
||||||
|
struct nan_dump_msg *msg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wmi_extract_ndp_confirm - api to extract ndp confim struct from even buffer
|
* wmi_extract_ndp_confirm - api to extract ndp confim struct from even buffer
|
||||||
* @wmi_hdl: wmi handle
|
* @wmi_hdl: wmi handle
|
||||||
|
@@ -4526,6 +4526,7 @@ typedef enum {
|
|||||||
wmi_ndp_responder_rsp_event_id,
|
wmi_ndp_responder_rsp_event_id,
|
||||||
wmi_ndp_end_indication_event_id,
|
wmi_ndp_end_indication_event_id,
|
||||||
wmi_ndp_end_rsp_event_id,
|
wmi_ndp_end_rsp_event_id,
|
||||||
|
wmi_nan_dmesg_event_id,
|
||||||
wmi_ndl_schedule_update_event_id,
|
wmi_ndl_schedule_update_event_id,
|
||||||
wmi_ndp_event_id,
|
wmi_ndp_event_id,
|
||||||
wmi_oem_response_event_id,
|
wmi_oem_response_event_id,
|
||||||
|
@@ -1960,6 +1960,8 @@ QDF_STATUS (*extract_ndp_initiator_rsp)(wmi_unified_t wmi_handle,
|
|||||||
uint8_t *data, struct nan_datapath_initiator_rsp *rsp);
|
uint8_t *data, struct nan_datapath_initiator_rsp *rsp);
|
||||||
QDF_STATUS (*extract_ndp_ind)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*extract_ndp_ind)(wmi_unified_t wmi_handle,
|
||||||
uint8_t *data, struct nan_datapath_indication_event *ind);
|
uint8_t *data, struct nan_datapath_indication_event *ind);
|
||||||
|
QDF_STATUS (*extract_nan_msg)(uint8_t *data,
|
||||||
|
struct nan_dump_msg *msg);
|
||||||
QDF_STATUS (*extract_ndp_confirm)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*extract_ndp_confirm)(wmi_unified_t wmi_handle,
|
||||||
uint8_t *data, struct nan_datapath_confirm_event *ev);
|
uint8_t *data, struct nan_datapath_confirm_event *ev);
|
||||||
QDF_STATUS (*extract_ndp_responder_rsp)(wmi_unified_t wmi_handle,
|
QDF_STATUS (*extract_ndp_responder_rsp)(wmi_unified_t wmi_handle,
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -98,6 +98,16 @@ QDF_STATUS wmi_unified_ndp_end_req_cmd_send(wmi_unified_t wmi_handle,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wmi_extract_nan_msg(wmi_unified_t wmi_handle,
|
||||||
|
uint8_t *data,
|
||||||
|
struct nan_dump_msg *msg)
|
||||||
|
{
|
||||||
|
if (wmi_handle->ops->extract_nan_msg)
|
||||||
|
return wmi_handle->ops->extract_nan_msg(data, msg);
|
||||||
|
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle,
|
QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle,
|
||||||
uint8_t *data, struct nan_datapath_initiator_rsp *rsp)
|
uint8_t *data, struct nan_datapath_initiator_rsp *rsp)
|
||||||
{
|
{
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -755,6 +755,29 @@ static QDF_STATUS extract_ndp_initiator_rsp_tlv(wmi_unified_t wmi_handle,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define MAX_NAN_MSG_LEN 200
|
||||||
|
|
||||||
|
static QDF_STATUS extract_nan_msg_tlv(uint8_t *data,
|
||||||
|
struct nan_dump_msg *msg)
|
||||||
|
{
|
||||||
|
WMI_NAN_DMESG_EVENTID_param_tlvs *event;
|
||||||
|
wmi_nan_dmesg_event_fixed_param *fixed_params;
|
||||||
|
|
||||||
|
event = (WMI_NAN_DMESG_EVENTID_param_tlvs *)data;
|
||||||
|
fixed_params = (wmi_nan_dmesg_event_fixed_param *)event->fixed_param;
|
||||||
|
if (!fixed_params->msg_len ||
|
||||||
|
fixed_params->msg_len > MAX_NAN_MSG_LEN ||
|
||||||
|
fixed_params->msg_len > event->num_msg)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
msg->data_len = fixed_params->msg_len;
|
||||||
|
msg->msg = event->msg;
|
||||||
|
|
||||||
|
msg->msg[fixed_params->msg_len - 1] = (uint8_t)'\0';
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static QDF_STATUS extract_ndp_ind_tlv(wmi_unified_t wmi_handle,
|
static QDF_STATUS extract_ndp_ind_tlv(wmi_unified_t wmi_handle,
|
||||||
uint8_t *data, struct nan_datapath_indication_event *rsp)
|
uint8_t *data, struct nan_datapath_indication_event *rsp)
|
||||||
{
|
{
|
||||||
@@ -1239,6 +1262,7 @@ void wmi_nan_attach_tlv(wmi_unified_t wmi_handle)
|
|||||||
ops->send_ndp_end_req_cmd = nan_ndp_end_req_tlv;
|
ops->send_ndp_end_req_cmd = nan_ndp_end_req_tlv;
|
||||||
ops->extract_ndp_initiator_rsp = extract_ndp_initiator_rsp_tlv;
|
ops->extract_ndp_initiator_rsp = extract_ndp_initiator_rsp_tlv;
|
||||||
ops->extract_ndp_ind = extract_ndp_ind_tlv;
|
ops->extract_ndp_ind = extract_ndp_ind_tlv;
|
||||||
|
ops->extract_nan_msg = extract_nan_msg_tlv,
|
||||||
ops->extract_ndp_confirm = extract_ndp_confirm_tlv;
|
ops->extract_ndp_confirm = extract_ndp_confirm_tlv;
|
||||||
ops->extract_ndp_responder_rsp = extract_ndp_responder_rsp_tlv;
|
ops->extract_ndp_responder_rsp = extract_ndp_responder_rsp_tlv;
|
||||||
ops->extract_ndp_end_rsp = extract_ndp_end_rsp_tlv;
|
ops->extract_ndp_end_rsp = extract_ndp_end_rsp_tlv;
|
||||||
|
@@ -14047,6 +14047,8 @@ static void populate_tlv_events_id(uint32_t *event_ids)
|
|||||||
event_ids[wmi_oem_data_event_id] = WMI_OEM_DATA_EVENTID;
|
event_ids[wmi_oem_data_event_id] = WMI_OEM_DATA_EVENTID;
|
||||||
event_ids[wmi_mgmt_offload_data_event_id] =
|
event_ids[wmi_mgmt_offload_data_event_id] =
|
||||||
WMI_VDEV_MGMT_OFFLOAD_EVENTID;
|
WMI_VDEV_MGMT_OFFLOAD_EVENTID;
|
||||||
|
event_ids[wmi_nan_dmesg_event_id] =
|
||||||
|
WMI_NAN_DMESG_EVENTID;
|
||||||
event_ids[wmi_pdev_multi_vdev_restart_response_event_id] =
|
event_ids[wmi_pdev_multi_vdev_restart_response_event_id] =
|
||||||
WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID;
|
WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID;
|
||||||
event_ids[wmi_roam_pmkid_request_event_id] =
|
event_ids[wmi_roam_pmkid_request_event_id] =
|
||||||
|
Viittaa uudesa ongelmassa
Block a user