From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: <dev@dpdk.org>
Cc: <ferruh.yigit@intel.com>, <shreyansh.jain@nxp.com>
Subject: [dpdk-dev] [PATCH v2 25/30] net/dpaa2: add support for extra stats
Date: Fri, 8 Sep 2017 14:15:22 +0530 [thread overview]
Message-ID: <1504860327-18451-26-git-send-email-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <1504860327-18451-1-git-send-email-hemant.agrawal@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
doc/guides/nics/features/dpaa2.ini | 1 +
drivers/net/dpaa/dpaa_ethdev.c | 143 ++++++++++++++++++++++++++++++
drivers/net/dpaa/dpaa_ethdev.h | 40 +++++++++
drivers/net/dpaa2/dpaa2_ethdev.c | 174 ++++++++++++++++++++++++++++++++++++-
4 files changed, 356 insertions(+), 2 deletions(-)
diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini
index ba4321c..6ebbab4 100644
--- a/doc/guides/nics/features/dpaa2.ini
+++ b/doc/guides/nics/features/dpaa2.ini
@@ -21,6 +21,7 @@ L3 checksum offload = Y
L4 checksum offload = Y
Packet type parsing = Y
Basic stats = Y
+Extended stats = Y
FW version = Y
Linux VFIO = Y
ARMv8 = Y
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index e94cf7c..82a87f6 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -78,6 +78,40 @@ static int is_global_init;
static struct rte_dpaa_driver rte_dpaa_pmd;
+struct rte_dpaa_xstats_name_off {
+ char name[RTE_ETH_XSTATS_NAME_SIZE];
+ uint32_t offset;
+};
+
+static const struct rte_dpaa_xstats_name_off dpaa_xstats_strings[] = {
+ {"rx_align_err",
+ offsetof(struct dpaa_if_stats, raln)},
+ {"rx_valid_pause",
+ offsetof(struct dpaa_if_stats, rxpf)},
+ {"rx_fcs_err",
+ offsetof(struct dpaa_if_stats, rfcs)},
+ {"rx_vlan_frame",
+ offsetof(struct dpaa_if_stats, rvlan)},
+ {"rx_frame_err",
+ offsetof(struct dpaa_if_stats, rerr)},
+ {"rx_drop_err",
+ offsetof(struct dpaa_if_stats, rdrp)},
+ {"rx_undersized",
+ offsetof(struct dpaa_if_stats, rund)},
+ {"rx_oversize_err",
+ offsetof(struct dpaa_if_stats, rovr)},
+ {"rx_fragment_pkt",
+ offsetof(struct dpaa_if_stats, rfrg)},
+ {"tx_valid_pause",
+ offsetof(struct dpaa_if_stats, txpf)},
+ {"tx_fcs_err",
+ offsetof(struct dpaa_if_stats, terr)},
+ {"tx_vlan_frame",
+ offsetof(struct dpaa_if_stats, tvlan)},
+ {"rx_undersized",
+ offsetof(struct dpaa_if_stats, tund)},
+};
+
static int
dpaa_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
{
@@ -271,6 +305,110 @@ static void dpaa_eth_stats_reset(struct rte_eth_dev *dev)
fman_if_stats_reset(dpaa_intf->fif);
}
+static int
+dpaa_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
+ unsigned int n)
+{
+ struct dpaa_if *dpaa_intf = dev->data->dev_private;
+ unsigned int i = 0, num = RTE_DIM(dpaa_xstats_strings);
+ uint64_t values[sizeof(struct dpaa_if_stats) / 8];
+
+ if (xstats == NULL)
+ return 0;
+
+ if (n < num)
+ return num;
+
+ fman_if_stats_get_all(dpaa_intf->fif, values,
+ sizeof(struct dpaa_if_stats) / 8);
+
+ for (i = 0; i < num; i++) {
+ xstats[i].id = i;
+ xstats[i].value = values[dpaa_xstats_strings[i].offset / 8];
+ }
+ return i;
+}
+
+static int
+dpaa_xstats_get_names(__rte_unused struct rte_eth_dev *dev,
+ struct rte_eth_xstat_name *xstats_names,
+ __rte_unused unsigned int limit)
+{
+ unsigned int i, stat_cnt = RTE_DIM(dpaa_xstats_strings);
+
+ if (xstats_names != NULL)
+ for (i = 0; i < stat_cnt; i++)
+ snprintf(xstats_names[i].name,
+ sizeof(xstats_names[i].name),
+ "%s",
+ dpaa_xstats_strings[i].name);
+
+ return stat_cnt;
+}
+
+static int
+dpaa_xstats_get_by_id(struct rte_eth_dev *dev, const uint64_t *ids,
+ uint64_t *values, unsigned int n)
+{
+ unsigned int i, stat_cnt = RTE_DIM(dpaa_xstats_strings);
+ uint64_t values_copy[sizeof(struct dpaa_if_stats) / 8];
+
+ if (!ids) {
+ struct dpaa_if *dpaa_intf = dev->data->dev_private;
+
+ if (n < stat_cnt)
+ return stat_cnt;
+
+ if (!values)
+ return 0;
+
+ fman_if_stats_get_all(dpaa_intf->fif, values_copy,
+ sizeof(struct dpaa_if_stats));
+
+ for (i = 0; i < stat_cnt; i++)
+ values[i] =
+ values_copy[dpaa_xstats_strings[i].offset / 8];
+
+ return stat_cnt;
+ }
+
+ dpaa_xstats_get_by_id(dev, NULL, values_copy, stat_cnt);
+
+ for (i = 0; i < n; i++) {
+ if (ids[i] >= stat_cnt) {
+ DPAA_PMD_ERR("id value isn't valid");
+ return -1;
+ }
+ values[i] = values_copy[ids[i]];
+ }
+ return n;
+}
+
+static int
+dpaa_xstats_get_names_by_id(
+ struct rte_eth_dev *dev,
+ struct rte_eth_xstat_name *xstats_names,
+ const uint64_t *ids,
+ unsigned int limit)
+{
+ unsigned int i, stat_cnt = RTE_DIM(dpaa_xstats_strings);
+ struct rte_eth_xstat_name xstats_names_copy[stat_cnt];
+
+ if (!ids)
+ return dpaa_xstats_get_names(dev, xstats_names, limit);
+
+ dpaa_xstats_get_names(dev, xstats_names_copy, limit);
+
+ for (i = 0; i < limit; i++) {
+ if (ids[i] >= stat_cnt) {
+ DPAA_PMD_ERR("id value isn't valid");
+ return -1;
+ }
+ strcpy(xstats_names[i].name, xstats_names_copy[ids[i]].name);
+ }
+ return limit;
+}
+
static void dpaa_eth_promiscuous_enable(struct rte_eth_dev *dev)
{
struct dpaa_if *dpaa_intf = dev->data->dev_private;
@@ -538,6 +676,11 @@ static struct eth_dev_ops dpaa_devops = {
.link_update = dpaa_eth_link_update,
.stats_get = dpaa_eth_stats_get,
+ .xstats_get = dpaa_dev_xstats_get,
+ .xstats_get_by_id = dpaa_xstats_get_by_id,
+ .xstats_get_names_by_id = dpaa_xstats_get_names_by_id,
+ .xstats_get_names = dpaa_xstats_get_names,
+ .xstats_reset = dpaa_eth_stats_reset,
.stats_reset = dpaa_eth_stats_reset,
.promiscuous_enable = dpaa_eth_promiscuous_enable,
.promiscuous_disable = dpaa_eth_promiscuous_disable,
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index e1e062e..3f06d63 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -134,4 +134,44 @@ struct dpaa_if {
struct rte_eth_fc_conf *fc_conf;
};
+struct dpaa_if_stats {
+ /* Rx Statistics Counter */
+ uint64_t reoct; /**<Rx Eth Octets Counter */
+ uint64_t roct; /**<Rx Octet Counters */
+ uint64_t raln; /**<Rx Alignment Error Counter */
+ uint64_t rxpf; /**<Rx valid Pause Frame */
+ uint64_t rfrm; /**<Rx Frame counter */
+ uint64_t rfcs; /**<Rx frame check seq error */
+ uint64_t rvlan; /**<Rx Vlan Frame Counter */
+ uint64_t rerr; /**<Rx Frame error */
+ uint64_t ruca; /**<Rx Unicast */
+ uint64_t rmca; /**<Rx Multicast */
+ uint64_t rbca; /**<Rx Broadcast */
+ uint64_t rdrp; /**<Rx Dropped Packet */
+ uint64_t rpkt; /**<Rx packet */
+ uint64_t rund; /**<Rx undersized packets */
+ uint32_t res_x[14];
+ uint64_t rovr; /**<Rx oversized but good */
+ uint64_t rjbr; /**<Rx oversized with bad csum */
+ uint64_t rfrg; /**<Rx fragment Packet */
+ uint64_t rcnp; /**<Rx control packets (0x8808 */
+ uint64_t rdrntp; /**<Rx dropped due to FIFO overflow */
+ uint32_t res01d0[12];
+ /* Tx Statistics Counter */
+ uint64_t teoct; /**<Tx eth octets */
+ uint64_t toct; /**<Tx Octets */
+ uint32_t res0210[2];
+ uint64_t txpf; /**<Tx valid pause frame */
+ uint64_t tfrm; /**<Tx frame counter */
+ uint64_t tfcs; /**<Tx FCS error */
+ uint64_t tvlan; /**<Tx Vlan Frame */
+ uint64_t terr; /**<Tx frame error */
+ uint64_t tuca; /**<Tx Unicast */
+ uint64_t tmca; /**<Tx Multicast */
+ uint64_t tbca; /**<Tx Broadcast */
+ uint32_t res0258[2];
+ uint64_t tpkt; /**<Tx Packet */
+ uint64_t tund; /**<Tx Undersized */
+};
+
#endif
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index aebcc71..a274e12 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -52,6 +52,28 @@
#include <mc/fsl_dpmng.h>
#include "dpaa2_ethdev.h"
+struct rte_dpaa2_xstats_name_off {
+ char name[RTE_ETH_XSTATS_NAME_SIZE];
+ uint8_t page_id; /* dpni statistics page id */
+ uint8_t stats_id; /* stats id in the given page */
+};
+
+static const struct rte_dpaa2_xstats_name_off dpaa2_xstats_strings[] = {
+ {"ingress_multicast_frames", 0, 2},
+ {"ingress_multicast_bytes", 0, 3},
+ {"ingress_broadcast_frames", 0, 4},
+ {"ingress_broadcast_bytes", 0, 5},
+ {"egress_multicast_frames", 1, 2},
+ {"egress_multicast_bytes", 1, 3},
+ {"egress_broadcast_frames", 1, 4},
+ {"egress_broadcast_bytes", 1, 5},
+ {"ingress_filtered_frames", 2, 0},
+ {"ingress_discarded_frames", 2, 1},
+ {"ingress_nobuffer_discards", 2, 2},
+ {"egress_discarded_frames", 2, 3},
+ {"egress_confirmed_frames", 2, 4},
+};
+
static struct rte_dpaa2_driver rte_dpaa2_pmd;
static int dpaa2_dev_uninit(struct rte_eth_dev *eth_dev);
static int dpaa2_dev_link_update(struct rte_eth_dev *dev,
@@ -1090,8 +1112,151 @@ void dpaa2_dev_stats_get(struct rte_eth_dev *dev,
return;
};
-static
-void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
+static int
+dpaa2_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
+ unsigned int n)
+{
+ 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] = {};
+ unsigned int i = 0, num = RTE_DIM(dpaa2_xstats_strings);
+
+ if (xstats == NULL)
+ return 0;
+
+ if (n < num)
+ return num;
+
+ /* Get Counters from page_0*/
+ retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+ 0, 0, &value[0]);
+ if (retcode)
+ goto err;
+
+ /* Get Counters from page_1*/
+ retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+ 1, 0, &value[1]);
+ if (retcode)
+ goto err;
+
+ /* Get Counters from page_2*/
+ retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+ 2, 0, &value[2]);
+ if (retcode)
+ goto err;
+
+ for (i = 0; i < num; i++) {
+ xstats[i].id = i;
+ xstats[i].value = value[dpaa2_xstats_strings[i].page_id].
+ raw.counter[dpaa2_xstats_strings[i].stats_id];
+ }
+ return i;
+err:
+ RTE_LOG(ERR, PMD, "Error in obtaining extended stats (%d)\n", retcode);
+ return retcode;
+}
+
+static int
+dpaa2_xstats_get_names(__rte_unused struct rte_eth_dev *dev,
+ struct rte_eth_xstat_name *xstats_names,
+ __rte_unused unsigned int limit)
+{
+ unsigned int i, stat_cnt = RTE_DIM(dpaa2_xstats_strings);
+
+ if (xstats_names != NULL)
+ for (i = 0; i < stat_cnt; i++)
+ snprintf(xstats_names[i].name,
+ sizeof(xstats_names[i].name),
+ "%s",
+ dpaa2_xstats_strings[i].name);
+
+ return stat_cnt;
+}
+
+static int
+dpaa2_xstats_get_by_id(struct rte_eth_dev *dev, const uint64_t *ids,
+ uint64_t *values, unsigned int n)
+{
+ unsigned int i, stat_cnt = RTE_DIM(dpaa2_xstats_strings);
+ uint64_t values_copy[stat_cnt];
+
+ if (!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] = {};
+
+ if (n < stat_cnt)
+ return stat_cnt;
+
+ if (!values)
+ return 0;
+
+ /* Get Counters from page_0*/
+ retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+ 0, 0, &value[0]);
+ if (retcode)
+ return 0;
+
+ /* Get Counters from page_1*/
+ retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+ 1, 0, &value[1]);
+ if (retcode)
+ return 0;
+
+ /* Get Counters from page_2*/
+ retcode = dpni_get_statistics(dpni, CMD_PRI_LOW, priv->token,
+ 2, 0, &value[2]);
+ 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];
+ }
+ return stat_cnt;
+ }
+
+ dpaa2_xstats_get_by_id(dev, NULL, values_copy, stat_cnt);
+
+ for (i = 0; i < n; i++) {
+ if (ids[i] >= stat_cnt) {
+ PMD_INIT_LOG(ERR, "id value isn't valid");
+ return -1;
+ }
+ values[i] = values_copy[ids[i]];
+ }
+ return n;
+}
+
+static int
+dpaa2_xstats_get_names_by_id(
+ struct rte_eth_dev *dev,
+ struct rte_eth_xstat_name *xstats_names,
+ const uint64_t *ids,
+ unsigned int limit)
+{
+ unsigned int i, stat_cnt = RTE_DIM(dpaa2_xstats_strings);
+ struct rte_eth_xstat_name xstats_names_copy[stat_cnt];
+
+ if (!ids)
+ return dpaa2_xstats_get_names(dev, xstats_names, limit);
+
+ dpaa2_xstats_get_names(dev, xstats_names_copy, limit);
+
+ for (i = 0; i < limit; i++) {
+ if (ids[i] >= stat_cnt) {
+ PMD_INIT_LOG(ERR, "id value isn't valid");
+ return -1;
+ }
+ strcpy(xstats_names[i].name, xstats_names_copy[ids[i]].name);
+ }
+ return limit;
+}
+
+static void
+dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw;
@@ -1471,7 +1636,12 @@ static struct eth_dev_ops dpaa2_ethdev_ops = {
.dev_set_link_down = dpaa2_dev_set_link_down,
.link_update = dpaa2_dev_link_update,
.stats_get = dpaa2_dev_stats_get,
+ .xstats_get = dpaa2_dev_xstats_get,
+ .xstats_get_by_id = dpaa2_xstats_get_by_id,
+ .xstats_get_names_by_id = dpaa2_xstats_get_names_by_id,
+ .xstats_get_names = dpaa2_xstats_get_names,
.stats_reset = dpaa2_dev_stats_reset,
+ .xstats_reset = dpaa2_dev_stats_reset,
.fw_version_get = dpaa2_fw_version_get,
.dev_infos_get = dpaa2_dev_info_get,
.dev_supported_ptypes_get = dpaa2_supported_ptypes_get,
--
2.7.4
next prev parent reply other threads:[~2017-09-08 8:46 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-25 10:49 [dpdk-dev] [PATCH 00/27] NXP DPAA2 PMD updates Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 01/27] bus/fslmc: qbman replace word copy with memcpy Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 02/27] bus/fslmc: remove the export for qbman version function Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 03/27] bus/fslmc: add qbman API to do enqueue with multiple frames Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 04/27] bus/fslmc: support up to 32 frames in one volatile dequeue Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 05/27] bus/fslmc: enhance the QBMAN CENA mode Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 06/27] bus/fslmc: qbman remove unused funcs and align names Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 07/27] bus/fslmc: cleanup compat file Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 08/27] bus/fslmc: clean the qbman support code Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 09/27] bus/fslmc: update MC to 10.3.x Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 10/27] net/dpaa2: " Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 11/27] crypto/dpaa2_sec: " Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 12/27] config/dpaa2: change max lores to 16 Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 13/27] bus/fslmc: add support for LX2160 platform Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 14/27] net/dpaa2: add support for congestion overhead Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 15/27] bus/fslmc: add support to check dpbp presence Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 16/27] bus/fslmc: cleanup the dpaa2 interrupt support Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 17/27] net/dpaa2: add support for link status event Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 18/27] bus/fslmc: enable link status interrupt Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 19/27] net/dpaa2: check physical link state on up cmd Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 20/27] net/dpaa2: improve error and logs for flow distribution Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 21/27] net/dpaa2: increase the dist param to 64 bit Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 22/27] net/dpaa2: remove RSS restriction with num of queues Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 23/27] net/dpaa2: add support for RSS hash update and get Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 24/27] net/dpaa2: add support for extra stats Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 25/27] net/dpaa2: fix the Tx handling of non HW pool bufs Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 26/27] net/dpaa2: improve debug messaging Hemant Agrawal
2017-08-25 10:49 ` [dpdk-dev] [PATCH 27/27] net/dpaa2: log that VLAN extend offload not supported Hemant Agrawal
2017-09-08 8:44 ` [dpdk-dev] [PATCH v2 00/30] NXP DPAA2 PMD updates Hemant Agrawal
2017-09-08 8:44 ` [dpdk-dev] [PATCH v2 01/30] bus/fslmc: qbman replace word copy with memcpy Hemant Agrawal
2017-09-08 8:44 ` [dpdk-dev] [PATCH v2 02/30] bus/fslmc: remove the export for qbman version function Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 03/30] bus/fslmc: add qbman API to do enqueue with multiple frames Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 04/30] bus/fslmc: support up to 32 frames in one volatile dequeue Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 05/30] bus/fslmc: enhance the QBMAN CENA mode Hemant Agrawal
2017-09-15 12:26 ` Ferruh Yigit
2017-09-15 12:32 ` Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 06/30] bus/fslmc: qbman remove unused funcs and align names Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 07/30] bus/fslmc: cleanup compat file Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 08/30] bus/fslmc: clean the qbman support code Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 09/30] bus/fslmc: update MC to 10.3.x Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 10/30] net/dpaa2: " Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 11/30] crypto/dpaa2_sec: " Hemant Agrawal
2017-09-15 12:37 ` Ferruh Yigit
2017-09-15 12:45 ` Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 12/30] config/dpaa2: change max lores to 16 Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 13/30] bus/fslmc: add support for LX2160 platform Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 14/30] net/dpaa2: add support for congestion overhead Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 15/30] bus/fslmc: add support to check dpbp presence Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 16/30] bus/fslmc: cleanup the dpaa2 interrupt support Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 17/30] net/dpaa2: add support for link status event Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 18/30] bus/fslmc: enable link status interrupt Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 19/30] net/dpaa2: check physical link state on up cmd Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 20/30] net/dpaa2: improve error and logs for flow distribution Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 21/30] net/dpaa2: increase the dist param to 64 bit Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 22/30] net/dpaa2: remove RSS restriction with num of queues Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 23/30] net/dpaa2: add support for RSS hash update and get Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 24/30] bus/dpaa2: add support for hw extra stats API Hemant Agrawal
2017-09-15 11:38 ` Ferruh Yigit
2017-09-15 11:45 ` Hemant Agrawal
2017-09-08 8:45 ` Hemant Agrawal [this message]
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 26/30] net/dpaa2: fix the Tx handling of non HW pool bufs Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 27/30] net/dpaa2: log that VLAN extend offload not supported Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 28/30] net/dpaa2: checksum support as per user config Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 29/30] net/dpaa2: improve debug messaging Hemant Agrawal
2017-09-08 8:45 ` [dpdk-dev] [PATCH v2 30/30] bus/dpaa2: improve debug log messages Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 00/27] NXP DPAA2 PMD updates Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 01/27] bus/fslmc: qbman replace word copy with memcpy Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 02/27] bus/fslmc: remove the export for qbman version function Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 03/27] bus/fslmc: add qbman API to do enqueue with multiple frames Hemant Agrawal
2017-09-18 20:18 ` Ferruh Yigit
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 04/27] bus/fslmc: support up to 32 frames in one volatile dequeue Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 05/27] bus/fslmc: enhance the QBMAN CENA mode Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 06/27] bus/fslmc: qbman remove unused funcs and align names Hemant Agrawal
2017-09-18 20:19 ` Ferruh Yigit
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 07/27] bus/fslmc: cleanup compat file Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 08/27] bus/fslmc: clean the qbman support code Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 09/27] config/dpaa2: change max lores to 16 Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 10/27] bus/fslmc: add support for LX2160 platform Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 11/27] net/dpaa2: add support for congestion overhead Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 12/27] bus/fslmc: add support to check dpbp presence Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 13/27] bus/fslmc: cleanup the dpaa2 interrupt support Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 14/27] net/dpaa2: add support for link status event Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 15/27] bus/fslmc: enable link status interrupt Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 16/27] net/dpaa2: check physical link state on up cmd Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 17/27] net/dpaa2: improve error and logs for flow distribution Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 18/27] net/dpaa2: increase the dist param to 64 bit Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 19/27] net/dpaa2: remove RSS restriction with num of queues Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 20/27] net/dpaa2: add support for RSS hash update and get Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 21/27] net/dpaa2: add support for extra stats Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 22/27] net/dpaa2: fix the Tx handling of non HW pool bufs Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 23/27] net/dpaa2: log that VLAN extend offload not supported Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 24/27] net/dpaa2: checksum support as per user config Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 25/27] net/dpaa2: improve debug messaging Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 26/27] bus/dpaa2: improve debug log messages Hemant Agrawal
2017-09-16 10:52 ` [dpdk-dev] [PATCH v3 27/27] bus/fslmc: add devices in sorted order Hemant Agrawal
2017-09-18 20:20 ` [dpdk-dev] [PATCH v3 00/27] NXP DPAA2 PMD updates Ferruh Yigit
2017-10-06 1:30 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1504860327-18451-26-git-send-email-hemant.agrawal@nxp.com \
--to=hemant.agrawal@nxp.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=shreyansh.jain@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).