table: add stats structure and config option

Added common structure for table statistics.
Added config option to enable table stats collecting.

Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
This commit is contained in:
Maciej Gajdzica 2015-06-19 12:28:34 +02:00 committed by Thomas Monjalon
parent 4d7eabf9f7
commit d517a16072
3 changed files with 27 additions and 0 deletions

View File

@ -389,6 +389,7 @@ CONFIG_RTE_PORT_STATS_COLLECT=n
# Compile librte_table
#
CONFIG_RTE_LIBRTE_TABLE=y
CONFIG_RTE_TABLE_STATS_COLLECT=n
#
# Compile librte_pipeline

View File

@ -396,6 +396,7 @@ CONFIG_RTE_PORT_STATS_COLLECT=n
# Compile librte_table
#
CONFIG_RTE_LIBRTE_TABLE=y
CONFIG_RTE_TABLE_STATS_COLLECT=n
#
# Compile librte_pipeline

View File

@ -59,6 +59,12 @@ extern "C" {
struct rte_mbuf;
/** Lookup table statistics */
struct rte_table_stats {
uint64_t n_pkts_in;
uint64_t n_pkts_lookup_miss;
};
/**
* Lookup table create
*
@ -187,6 +193,24 @@ typedef int (*rte_table_op_lookup)(
uint64_t *lookup_hit_mask,
void **entries);
/**
* Lookup table stats read
*
* @param table
* Handle to lookup table instance
* @param stats
* Handle to table stats struct to copy data
* @param clear
* Flag indicating that stats should be cleared after read
*
* @return
* Error code or 0 on success.
*/
typedef int (*rte_table_op_stats_read)(
void *table,
struct rte_table_stats *stats,
int clear);
/** Lookup table interface defining the lookup table operation */
struct rte_table_ops {
rte_table_op_create f_create; /**< Create */
@ -194,6 +218,7 @@ struct rte_table_ops {
rte_table_op_entry_add f_add; /**< Entry add */
rte_table_op_entry_delete f_delete; /**< Entry delete */
rte_table_op_lookup f_lookup; /**< Lookup */
rte_table_op_stats_read f_stats; /**< Stats */
};
#ifdef __cplusplus