port: add stats structures and config option
Added common data structures for port statistics. Added config option to enable 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:
parent
55cf939a4f
commit
45c24d8320
@ -383,6 +383,7 @@ CONFIG_RTE_LIBRTE_REORDER=y
|
|||||||
# Compile librte_port
|
# Compile librte_port
|
||||||
#
|
#
|
||||||
CONFIG_RTE_LIBRTE_PORT=y
|
CONFIG_RTE_LIBRTE_PORT=y
|
||||||
|
CONFIG_RTE_PORT_STATS_COLLECT=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compile librte_table
|
# Compile librte_table
|
||||||
|
@ -390,6 +390,7 @@ CONFIG_RTE_LIBRTE_REORDER=y
|
|||||||
# Compile librte_port
|
# Compile librte_port
|
||||||
#
|
#
|
||||||
CONFIG_RTE_LIBRTE_PORT=y
|
CONFIG_RTE_LIBRTE_PORT=y
|
||||||
|
CONFIG_RTE_PORT_STATS_COLLECT=n
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compile librte_table
|
# Compile librte_table
|
||||||
|
@ -81,6 +81,12 @@ extern "C" {
|
|||||||
Cannot be changed. */
|
Cannot be changed. */
|
||||||
#define RTE_PORT_IN_BURST_SIZE_MAX 64
|
#define RTE_PORT_IN_BURST_SIZE_MAX 64
|
||||||
|
|
||||||
|
/** Input port statistics */
|
||||||
|
struct rte_port_in_stats {
|
||||||
|
uint64_t n_pkts_in;
|
||||||
|
uint64_t n_pkts_drop;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Input port create
|
* Input port create
|
||||||
*
|
*
|
||||||
@ -120,17 +126,42 @@ typedef int (*rte_port_in_op_rx)(
|
|||||||
struct rte_mbuf **pkts,
|
struct rte_mbuf **pkts,
|
||||||
uint32_t n_pkts);
|
uint32_t n_pkts);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Input port stats get
|
||||||
|
*
|
||||||
|
* @param port
|
||||||
|
* Handle to output port instance
|
||||||
|
* @param stats
|
||||||
|
* Handle to port_in 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_port_in_op_stats_read)(
|
||||||
|
void *port,
|
||||||
|
struct rte_port_in_stats *stats,
|
||||||
|
int clear);
|
||||||
|
|
||||||
/** Input port interface defining the input port operation */
|
/** Input port interface defining the input port operation */
|
||||||
struct rte_port_in_ops {
|
struct rte_port_in_ops {
|
||||||
rte_port_in_op_create f_create; /**< Create */
|
rte_port_in_op_create f_create; /**< Create */
|
||||||
rte_port_in_op_free f_free; /**< Free */
|
rte_port_in_op_free f_free; /**< Free */
|
||||||
rte_port_in_op_rx f_rx; /**< Packet RX (packet burst) */
|
rte_port_in_op_rx f_rx; /**< Packet RX (packet burst) */
|
||||||
|
rte_port_in_op_stats_read f_stats; /**< Stats */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port OUT
|
* Port OUT
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
/** Output port statistics */
|
||||||
|
struct rte_port_out_stats {
|
||||||
|
uint64_t n_pkts_in;
|
||||||
|
uint64_t n_pkts_drop;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Output port create
|
* Output port create
|
||||||
*
|
*
|
||||||
@ -197,6 +228,24 @@ typedef int (*rte_port_out_op_tx_bulk)(
|
|||||||
*/
|
*/
|
||||||
typedef int (*rte_port_out_op_flush)(void *port);
|
typedef int (*rte_port_out_op_flush)(void *port);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Output port stats read
|
||||||
|
*
|
||||||
|
* @param port
|
||||||
|
* Handle to output port instance
|
||||||
|
* @param stats
|
||||||
|
* Handle to port_out 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_port_out_op_stats_read)(
|
||||||
|
void *port,
|
||||||
|
struct rte_port_out_stats *stats,
|
||||||
|
int clear);
|
||||||
|
|
||||||
/** Output port interface defining the output port operation */
|
/** Output port interface defining the output port operation */
|
||||||
struct rte_port_out_ops {
|
struct rte_port_out_ops {
|
||||||
rte_port_out_op_create f_create; /**< Create */
|
rte_port_out_op_create f_create; /**< Create */
|
||||||
@ -204,6 +253,7 @@ struct rte_port_out_ops {
|
|||||||
rte_port_out_op_tx f_tx; /**< Packet TX (single packet) */
|
rte_port_out_op_tx f_tx; /**< Packet TX (single packet) */
|
||||||
rte_port_out_op_tx_bulk f_tx_bulk; /**< Packet TX (packet burst) */
|
rte_port_out_op_tx_bulk f_tx_bulk; /**< Packet TX (packet burst) */
|
||||||
rte_port_out_op_flush f_flush; /**< Flush */
|
rte_port_out_op_flush f_flush; /**< Flush */
|
||||||
|
rte_port_out_op_stats_read f_stats; /**< Stats */
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
Loading…
Reference in New Issue
Block a user