qcacmn: Ingress frame logging changes in Mgmt Rx REO
Add new fields to incoming management frame logging. CRs-Fixed: 3081845 Change-Id: Ie549078066de91d87701fa4ee588df4c7840e9ec
Šī revīzija ir iekļauta:

revīziju iesūtīja
Madan Koyyalamudi

vecāks
6540534870
revīzija
9a5fdf9dfb
@@ -1784,12 +1784,14 @@ wlan_mgmt_rx_reo_update_host_snapshot(struct wlan_objmgr_pdev *pdev,
|
|||||||
* the reorder algorithm.
|
* the reorder algorithm.
|
||||||
* @reo_ctx: management rx reorder context
|
* @reo_ctx: management rx reorder context
|
||||||
* @desc: Pointer to frame descriptor
|
* @desc: Pointer to frame descriptor
|
||||||
|
* @is_queued: Indicates whether this frame is queued to reorder list
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS of operation
|
* Return: QDF_STATUS of operation
|
||||||
*/
|
*/
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx,
|
mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx,
|
||||||
struct mgmt_rx_reo_frame_descriptor *desc)
|
struct mgmt_rx_reo_frame_descriptor *desc,
|
||||||
|
bool is_queued)
|
||||||
{
|
{
|
||||||
struct reo_ingress_debug_info *ingress_frame_debug_info;
|
struct reo_ingress_debug_info *ingress_frame_debug_info;
|
||||||
struct reo_ingress_debug_frame_info *cur_frame_debug_info;
|
struct reo_ingress_debug_frame_info *cur_frame_debug_info;
|
||||||
@@ -1811,6 +1813,10 @@ mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx,
|
|||||||
cur_frame_debug_info->type = desc->type;
|
cur_frame_debug_info->type = desc->type;
|
||||||
cur_frame_debug_info->wait_count = desc->wait_count;
|
cur_frame_debug_info->wait_count = desc->wait_count;
|
||||||
cur_frame_debug_info->ingress_timestamp = desc->ingress_timestamp;
|
cur_frame_debug_info->ingress_timestamp = desc->ingress_timestamp;
|
||||||
|
cur_frame_debug_info->is_queued = is_queued;
|
||||||
|
cur_frame_debug_info->is_stale = desc->is_stale;
|
||||||
|
cur_frame_debug_info->ts_last_released_frame =
|
||||||
|
reo_ctx->reo_list.ts_last_released_frame;
|
||||||
|
|
||||||
ingress_frame_debug_info->next_index++;
|
ingress_frame_debug_info->next_index++;
|
||||||
ingress_frame_debug_info->next_index %=
|
ingress_frame_debug_info->next_index %=
|
||||||
@@ -1824,12 +1830,14 @@ mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx,
|
|||||||
* the reorder algorithm.
|
* the reorder algorithm.
|
||||||
* @reo_ctx: management rx reorder context
|
* @reo_ctx: management rx reorder context
|
||||||
* @desc: Pointer to frame descriptor
|
* @desc: Pointer to frame descriptor
|
||||||
|
* @is_queued: Indicates whether this frame is queued to reorder list
|
||||||
*
|
*
|
||||||
* Return: QDF_STATUS of operation
|
* Return: QDF_STATUS of operation
|
||||||
*/
|
*/
|
||||||
static QDF_STATUS
|
static QDF_STATUS
|
||||||
mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx,
|
mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx,
|
||||||
struct mgmt_rx_reo_frame_descriptor *desc)
|
struct mgmt_rx_reo_frame_descriptor *desc,
|
||||||
|
bool is_queued)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
@@ -1981,7 +1989,7 @@ wlan_mgmt_rx_reo_algo_entry(struct wlan_objmgr_pdev *pdev,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
status = mgmt_rx_reo_log_ingress_frame(reo_ctx, desc);
|
status = mgmt_rx_reo_log_ingress_frame(reo_ctx, desc, *is_queued);
|
||||||
if (QDF_IS_STATUS_ERROR(status)) {
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
qdf_spin_unlock(&reo_ctx->reo_algo_entry_lock);
|
qdf_spin_unlock(&reo_ctx->reo_algo_entry_lock);
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
@@ -378,6 +379,10 @@ struct mgmt_rx_reo_sim_context {
|
|||||||
* @ingress_timestamp: Host time stamp when the frames enters the reorder
|
* @ingress_timestamp: Host time stamp when the frames enters the reorder
|
||||||
* algorithm
|
* algorithm
|
||||||
* @wait_count: Wait count calculated for the current frame
|
* @wait_count: Wait count calculated for the current frame
|
||||||
|
* @is_queued: Indicates whether this frame is queued to reorder list
|
||||||
|
* @is_stale: Indicates whether this frame is stale.
|
||||||
|
* @ts_last_released_frame: Stores the global time stamp for the last frame
|
||||||
|
* removed from the reorder list
|
||||||
*/
|
*/
|
||||||
struct reo_ingress_debug_frame_info {
|
struct reo_ingress_debug_frame_info {
|
||||||
uint8_t link_id;
|
uint8_t link_id;
|
||||||
@@ -386,6 +391,9 @@ struct reo_ingress_debug_frame_info {
|
|||||||
enum mgmt_rx_reo_frame_descriptor_type type;
|
enum mgmt_rx_reo_frame_descriptor_type type;
|
||||||
uint64_t ingress_timestamp;
|
uint64_t ingress_timestamp;
|
||||||
struct mgmt_rx_reo_wait_count wait_count;
|
struct mgmt_rx_reo_wait_count wait_count;
|
||||||
|
bool is_queued;
|
||||||
|
bool is_stale;
|
||||||
|
struct mgmt_rx_reo_global_ts_info ts_last_released_frame;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Atsaukties uz šo jaunā problēmā
Block a user