[dpdk-dev] [PATCH v2 11/19] net/bnxt: add support for xstats get by id
Ferruh Yigit
ferruh.yigit at intel.com
Tue Sep 19 14:39:13 CEST 2017
On 9/18/2017 4:17 PM, Ajit Khaparde wrote:
> This patch adds support for xstats_get_by_id/xstats_get_names_by_id.
>
> Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
>
> --
> v1->v2: incorporate review comments.
> ---
> drivers/net/bnxt/bnxt_ethdev.c | 2 ++
> drivers/net/bnxt/bnxt_stats.c | 47 ++++++++++++++++++++++++++++++++++++++++++
> drivers/net/bnxt/bnxt_stats.h | 5 +++++
> 3 files changed, 54 insertions(+)
>
> diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
> index cecdfde..6eed19c 100644
> --- a/drivers/net/bnxt/bnxt_ethdev.c
> +++ b/drivers/net/bnxt/bnxt_ethdev.c
> @@ -1564,6 +1564,8 @@ static const struct eth_dev_ops bnxt_dev_ops = {
> .txq_info_get = bnxt_txq_info_get_op,
> .dev_led_on = bnxt_dev_led_on_op,
> .dev_led_off = bnxt_dev_led_off_op,
> + .xstats_get_by_id = bnxt_dev_xstats_get_by_id_op,
> + .xstats_get_names_by_id = bnxt_dev_xstats_get_names_by_id_op,
> };
>
> static bool bnxt_vf_pciid(uint16_t id)
> diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c
> index d7d0e35..89921fb 100644
> --- a/drivers/net/bnxt/bnxt_stats.c
> +++ b/drivers/net/bnxt/bnxt_stats.c
> @@ -358,3 +358,50 @@ void bnxt_dev_xstats_reset_op(struct rte_eth_dev *eth_dev)
> if (!(bp->flags & BNXT_FLAG_PORT_STATS))
> RTE_LOG(ERR, PMD, "Operation not supported\n");
> }
> +
> +int bnxt_dev_xstats_get_by_id_op(struct rte_eth_dev *dev, const uint64_t *ids,
> + uint64_t *values, unsigned int limit)
> +{
> + /* Account for the Tx drop pkts aka the Anti spoof counter */
Is this comment valid?
> + const unsigned int stat_cnt = RTE_DIM(bnxt_rx_stats_strings) +
> + RTE_DIM(bnxt_tx_stats_strings) + 1;
> + struct rte_eth_xstat xstats[stat_cnt];
> + uint16_t i;
> +
> + if (!ids)
> + return bnxt_dev_xstats_get_op(dev, xstats, stat_cnt);
Why not just return "stat_cnt" ?
> +
> + for (i = 0; i < limit; i++) {
> + if (ids[i] >= stat_cnt) {
> + RTE_LOG(ERR, PMD, "id value isn't valid");
> + return -1;
> + }
> + values[i] = xstats[ids[i]].value;
Where xstats[] has been filled?
Same comments valid for bnxt_dev_xstats_get_names_by_id_op()
> + }
> + return stat_cnt;
> +}
> +
<...>
More information about the dev
mailing list