qcacld-3.0: add and initialize data structures for FST in CMEM
Adding init/deinit logic for the data structures required to place flow search table in CMEM. Change-Id: I315dbeb0f17fd8d3e37be61b6ef77e2bfc2b08ce CRs-Fixed: 2771169
This commit is contained in:
parent
c00ae96b8c
commit
0cc7771e12
@ -38,6 +38,17 @@
|
|||||||
#define FISA_FLOW_MAX_CUMULATIVE_IP_LEN \
|
#define FISA_FLOW_MAX_CUMULATIVE_IP_LEN \
|
||||||
(FISA_MAX_SINGLE_CUMULATIVE_IP_LEN * FISA_FLOW_MAX_AGGR_COUNT)
|
(FISA_MAX_SINGLE_CUMULATIVE_IP_LEN * FISA_FLOW_MAX_AGGR_COUNT)
|
||||||
|
|
||||||
|
struct dp_fisa_rx_fst_update_elem {
|
||||||
|
/* Do not add new entries here */
|
||||||
|
qdf_list_node_t node;
|
||||||
|
struct cdp_rx_flow_tuple_info flow_tuple_info;
|
||||||
|
struct dp_vdev *vdev;
|
||||||
|
uint32_t flow_idx;
|
||||||
|
bool is_tcp_flow;
|
||||||
|
bool is_udp_flow;
|
||||||
|
u8 reo_id;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_rx_dump_fisa_stats() - Dump fisa stats
|
* dp_rx_dump_fisa_stats() - Dump fisa stats
|
||||||
* @soc: core txrx main context
|
* @soc: core txrx main context
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "dp_internal.h"
|
#include "dp_internal.h"
|
||||||
|
|
||||||
#ifdef WLAN_SUPPORT_RX_FISA
|
#ifdef WLAN_SUPPORT_RX_FISA
|
||||||
|
void dp_fisa_rx_fst_update_work(void *arg);
|
||||||
|
|
||||||
void dp_rx_dump_fisa_table(struct dp_soc *soc)
|
void dp_rx_dump_fisa_table(struct dp_soc *soc)
|
||||||
{
|
{
|
||||||
@ -96,6 +97,54 @@ static void dp_fisa_fse_cache_flush_timer(void *arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_rx_fst_cmem_deinit() - De-initialize CMEM parameters
|
||||||
|
* @fst: Pointer to DP FST
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static void dp_rx_fst_cmem_deinit(struct dp_rx_fst *fst)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
qdf_cancel_work(&fst->fst_update_work);
|
||||||
|
qdf_flush_work(&fst->fst_update_work);
|
||||||
|
qdf_flush_workqueue(0, fst->fst_update_wq);
|
||||||
|
|
||||||
|
qdf_destroy_workqueue(0, fst->fst_update_wq);
|
||||||
|
qdf_list_destroy(&fst->fst_update_list);
|
||||||
|
qdf_event_destroy(&fst->cmem_resp_event);
|
||||||
|
|
||||||
|
for (i = 0; i < MAX_REO_DEST_RINGS; i++)
|
||||||
|
qdf_spinlock_destroy(&fst->dp_rx_sw_ft_lock[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_rx_fst_cmem_init() - Initialize CMEM parameters
|
||||||
|
* @fst: Pointer to DP FST
|
||||||
|
*
|
||||||
|
* Return: Success/Failure
|
||||||
|
*/
|
||||||
|
static QDF_STATUS dp_rx_fst_cmem_init(struct dp_rx_fst *fst)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
fst->fst_update_wq =
|
||||||
|
qdf_alloc_high_prior_ordered_workqueue("dp_rx_fst_update_wq");
|
||||||
|
if (!fst->fst_update_wq)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
qdf_create_work(0, &fst->fst_update_work,
|
||||||
|
dp_fisa_rx_fst_update_work, fst);
|
||||||
|
qdf_list_create(&fst->fst_update_list, 128);
|
||||||
|
qdf_event_create(&fst->cmem_resp_event);
|
||||||
|
|
||||||
|
for (i = 0; i < MAX_REO_DEST_RINGS; i++)
|
||||||
|
qdf_spinlock_create(&fst->dp_rx_sw_ft_lock[i]);
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_rx_fst_attach() - Initialize Rx FST and setup necessary parameters
|
* dp_rx_fst_attach() - Initialize Rx FST and setup necessary parameters
|
||||||
* @soc: SoC handle
|
* @soc: SoC handle
|
||||||
|
Loading…
Reference in New Issue
Block a user