From: Hemant Agrawal <hemant.agra...@nxp.com>

Add congestion frame drop and byte drop count in xtra stats.

Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 877acff94..721e125b4 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -84,6 +84,8 @@ static const struct rte_dpaa2_xstats_name_off 
dpaa2_xstats_strings[] = {
        {"ingress_nobuffer_discards", 2, 2},
        {"egress_discarded_frames", 2, 3},
        {"egress_confirmed_frames", 2, 4},
+       {"cgr_reject_frames", 4, 0},
+       {"cgr_reject_bytes", 4, 1},
 };
 
 static const enum rte_filter_op dpaa2_supported_filter_ops[] = {
@@ -1371,7 +1373,7 @@ dpaa2_dev_xstats_get(struct rte_eth_dev *dev, struct 
rte_eth_xstat *xstats,
        struct dpaa2_dev_priv *priv = dev->data->dev_private;
        struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw;
        int32_t  retcode;
-       union dpni_statistics value[3] = {};
+       union dpni_statistics value[5] = {};
        unsigned int i = 0, num = RTE_DIM(dpaa2_xstats_strings);
 
        if (n < num)
@@ -1398,6 +1400,18 @@ dpaa2_dev_xstats_get(struct rte_eth_dev *dev, struct 
rte_eth_xstat *xstats,
        if (retcode)
                goto err;
 
+       for (i = 0; i < priv->max_cgs; i++) {
+               if (!priv->cgid_in_use[i]) {
+                       /* Get Counters from page_4*/
+                       retcode = dpni_get_statistics(dpni, CMD_PRI_LOW,
+                                                     priv->token,
+                                                     4, 0, &value[4]);
+                       if (retcode)
+                               goto err;
+                       break;
+               }
+       }
+
        for (i = 0; i < num; i++) {
                xstats[i].id = i;
                xstats[i].value = value[dpaa2_xstats_strings[i].page_id].
@@ -1439,7 +1453,7 @@ dpaa2_xstats_get_by_id(struct rte_eth_dev *dev, const 
uint64_t *ids,
                struct dpaa2_dev_priv *priv = dev->data->dev_private;
                struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw;
                int32_t  retcode;
-               union dpni_statistics value[3] = {};
+               union dpni_statistics value[5] = {};
 
                if (n < stat_cnt)
                        return stat_cnt;
@@ -1465,6 +1479,12 @@ dpaa2_xstats_get_by_id(struct rte_eth_dev *dev, const 
uint64_t *ids,
                if (retcode)
                        return 0;
 
+               /* Get Counters from page_4*/
+               retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+                                             4, 0, &value[4]);
+               if (retcode)
+                       return 0;
+
                for (i = 0; i < stat_cnt; i++) {
                        values[i] = value[dpaa2_xstats_strings[i].page_id].
                                raw.counter[dpaa2_xstats_strings[i].stats_id];
-- 
2.17.1

Reply via email to