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:
gaurank kathpalia
2020-02-10 16:27:58 +05:30
committed by nshrivas
parent 5fd5cf65e2
commit b73ede30b8
6 changed files with 52 additions and 3 deletions

View File

@@ -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
* 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,
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_hdl: wmi handle

View File

@@ -4526,6 +4526,7 @@ typedef enum {
wmi_ndp_responder_rsp_event_id,
wmi_ndp_end_indication_event_id,
wmi_ndp_end_rsp_event_id,
wmi_nan_dmesg_event_id,
wmi_ndl_schedule_update_event_id,
wmi_ndp_event_id,
wmi_oem_response_event_id,

View File

@@ -1960,6 +1960,8 @@ QDF_STATUS (*extract_ndp_initiator_rsp)(wmi_unified_t wmi_handle,
uint8_t *data, struct nan_datapath_initiator_rsp *rsp);
QDF_STATUS (*extract_ndp_ind)(wmi_unified_t wmi_handle,
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,
uint8_t *data, struct nan_datapath_confirm_event *ev);
QDF_STATUS (*extract_ndp_responder_rsp)(wmi_unified_t wmi_handle,

View File

@@ -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
* 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;
}
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,
uint8_t *data, struct nan_datapath_initiator_rsp *rsp)
{

View File

@@ -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
* 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;
}
#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,
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->extract_ndp_initiator_rsp = extract_ndp_initiator_rsp_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_responder_rsp = extract_ndp_responder_rsp_tlv;
ops->extract_ndp_end_rsp = extract_ndp_end_rsp_tlv;

View File

@@ -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_mgmt_offload_data_event_id] =
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] =
WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID;
event_ids[wmi_roam_pmkid_request_event_id] =