From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: <dev@dpdk.org>
Cc: <ferruh.yigit@intel.com>, <shreyansh.jain@nxp.com>
Subject: [dpdk-dev] [PATCH v4 08/20] net/dpaa2: add support for congestion notification
Date: Fri, 26 May 2017 12:21:13 +0530 [thread overview]
Message-ID: <1495781485-2236-9-git-send-email-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <1495781485-2236-1-git-send-email-hemant.agrawal@nxp.com>
In case of HW egress FQ is congested, skip further
transmission of frames.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 5 +-
drivers/net/dpaa2/dpaa2_ethdev.c | 62 ++++++++++++++-
drivers/net/dpaa2/dpaa2_ethdev.h | 14 ++++
drivers/net/dpaa2/dpaa2_rxtx.c | 4 +
drivers/net/dpaa2/mc/dpni.c | 48 ++++++++++++
drivers/net/dpaa2/mc/fsl_dpni.h | 130 +++++++++++++++++++++++++++++++-
drivers/net/dpaa2/mc/fsl_dpni_cmd.h | 36 +++++++++
7 files changed, 291 insertions(+), 8 deletions(-)
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index e04edc6..b83ddd9 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -123,7 +123,10 @@ struct dpaa2_queue {
uint64_t rx_pkts;
uint64_t tx_pkts;
uint64_t err_pkts;
- struct queue_storage_info_t *q_storage;
+ union {
+ struct queue_storage_info_t *q_storage;
+ struct qbman_result *cscn;
+ };
};
struct swp_active_dqs {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 797e71d..80f1cd7 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -177,8 +177,13 @@
for (i = 0; i < priv->nb_tx_queues; i++) {
mc_q->dev = dev;
- mc_q->flow_id = DPNI_NEW_FLOW_ID;
+ mc_q->flow_id = 0xffff;
priv->tx_vq[i] = mc_q++;
+ dpaa2_q = (struct dpaa2_queue *)priv->tx_vq[i];
+ dpaa2_q->cscn = rte_malloc(NULL,
+ sizeof(struct qbman_result), 16);
+ if (!dpaa2_q->cscn)
+ goto fail_tx;
}
vq_id = 0;
@@ -191,6 +196,14 @@
}
return 0;
+fail_tx:
+ i -= 1;
+ while (i >= 0) {
+ dpaa2_q = (struct dpaa2_queue *)priv->tx_vq[i];
+ rte_free(dpaa2_q->cscn);
+ priv->tx_vq[i--] = NULL;
+ }
+ i = priv->nb_rx_queues;
fail:
i -= 1;
mc_q = priv->rx_vq[0];
@@ -320,7 +333,7 @@
PMD_INIT_FUNC_TRACE();
/* Return if queue already configured */
- if (dpaa2_q->flow_id != DPNI_NEW_FLOW_ID)
+ if (dpaa2_q->flow_id != 0xffff)
return 0;
memset(&tx_conf_cfg, 0, sizeof(struct dpni_queue));
@@ -358,6 +371,36 @@
}
dpaa2_q->tc_index = tc_id;
+ if (priv->flags & DPAA2_TX_CGR_SUPPORT) {
+ struct dpni_congestion_notification_cfg cong_notif_cfg;
+
+ cong_notif_cfg.units = DPNI_CONGESTION_UNIT_BYTES;
+ /* Notify about congestion when the queue size is 32 KB */
+ cong_notif_cfg.threshold_entry = CONG_ENTER_TX_THRESHOLD;
+ /* Notify that the queue is not congested when the data in
+ * the queue is below this thershold.
+ */
+ cong_notif_cfg.threshold_exit = CONG_EXIT_TX_THRESHOLD;
+ cong_notif_cfg.message_ctx = 0;
+ cong_notif_cfg.message_iova = (uint64_t)dpaa2_q->cscn;
+ cong_notif_cfg.dest_cfg.dest_type = DPNI_DEST_NONE;
+ cong_notif_cfg.notification_mode =
+ DPNI_CONG_OPT_WRITE_MEM_ON_ENTER |
+ DPNI_CONG_OPT_WRITE_MEM_ON_EXIT |
+ DPNI_CONG_OPT_COHERENT_WRITE;
+
+ ret = dpni_set_congestion_notification(dpni, CMD_PRI_LOW,
+ priv->token,
+ DPNI_QUEUE_TX,
+ tc_id,
+ &cong_notif_cfg);
+ if (ret) {
+ PMD_INIT_LOG(ERR,
+ "Error in setting tx congestion notification: = %d",
+ -ret);
+ return -ret;
+ }
+ }
dev->data->tx_queues[tx_queue_id] = dpaa2_q;
return 0;
}
@@ -513,12 +556,22 @@
static void
dpaa2_dev_close(struct rte_eth_dev *dev)
{
+ struct rte_eth_dev_data *data = dev->data;
struct dpaa2_dev_priv *priv = dev->data->dev_private;
struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw;
- int ret;
+ int i, ret;
+ struct dpaa2_queue *dpaa2_q;
PMD_INIT_FUNC_TRACE();
+ for (i = 0; i < data->nb_tx_queues; i++) {
+ dpaa2_q = (struct dpaa2_queue *)data->tx_queues[i];
+ if (!dpaa2_q->cscn) {
+ rte_free(dpaa2_q->cscn);
+ dpaa2_q->cscn = NULL;
+ }
+ }
+
/* Clean the device first */
ret = dpni_reset(dpni, CMD_PRI_LOW, priv->token);
if (ret) {
@@ -832,6 +885,9 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
priv->max_vlan_filters = attr.vlan_filter_entries;
priv->flags = 0;
+ priv->flags |= DPAA2_TX_CGR_SUPPORT;
+ PMD_INIT_LOG(INFO, "Enable the tx congestion control support");
+
/* Allocate memory for hardware structure for queues */
ret = dpaa2_alloc_rx_tx_queues(eth_dev);
if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 7fa7e7d..e7728ba 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -47,9 +47,23 @@
/*default tc to be used for ,congestion, distribution etc configuration. */
#define DPAA2_DEF_TC 0
+/* Threshold for a queue to *Enter* Congestion state.
+ * It is set to 32KB
+ */
+#define CONG_ENTER_TX_THRESHOLD (32 * 1024)
+
+/* Threshold for a queue to *Exit* Congestion state.
+ */
+#define CONG_EXIT_TX_THRESHOLD (24 * 1024)
+
/* Size of the input SMMU mapped memory required by MC */
#define DIST_PARAM_IOVA_SIZE 256
+/* Enable TX Congestion control support
+ * default is disable
+ */
+#define DPAA2_TX_CGR_SUPPORT 0x01
+
struct dpaa2_dev_priv {
void *hw;
int32_t hw_id;
diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index 9b7539a..0670ae3 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -406,6 +406,10 @@ static inline int __attribute__((hot))
/*Clear the unused FD fields before sending*/
while (nb_pkts) {
+ /*Check if the queue is congested*/
+ if (qbman_result_SCN_state_in_mem(dpaa2_q->cscn))
+ goto skip_tx;
+
frames_to_send = (nb_pkts >> 3) ? MAX_TX_RING_SLOTS : nb_pkts;
for (loop = 0; loop < frames_to_send; loop++) {
diff --git a/drivers/net/dpaa2/mc/dpni.c b/drivers/net/dpaa2/mc/dpni.c
index 3330614..3d1f81b 100644
--- a/drivers/net/dpaa2/mc/dpni.c
+++ b/drivers/net/dpaa2/mc/dpni.c
@@ -626,6 +626,54 @@ int dpni_set_tx_confirmation_mode(struct fsl_mc_io *mc_io,
return mc_send_command(mc_io, &cmd);
}
+int dpni_set_congestion_notification(
+ struct fsl_mc_io *mc_io,
+ uint32_t cmd_flags,
+ uint16_t token,
+ enum dpni_queue_type qtype,
+ uint8_t tc_id,
+ const struct dpni_congestion_notification_cfg *cfg)
+{
+ struct mc_command cmd = { 0 };
+
+ /* prepare command */
+ cmd.header = mc_encode_cmd_header(
+ DPNI_CMDID_SET_CONGESTION_NOTIFICATION,
+ cmd_flags,
+ token);
+ DPNI_CMD_SET_CONGESTION_NOTIFICATION(cmd, qtype, tc_id, cfg);
+
+ /* send command to mc*/
+ return mc_send_command(mc_io, &cmd);
+}
+
+int dpni_get_congestion_notification(struct fsl_mc_io *mc_io,
+ uint32_t cmd_flags,
+ uint16_t token,
+ enum dpni_queue_type qtype,
+ uint8_t tc_id,
+ struct dpni_congestion_notification_cfg *cfg)
+{
+ struct mc_command cmd = { 0 };
+ int err;
+
+ /* prepare command */
+ cmd.header = mc_encode_cmd_header(
+ DPNI_CMDID_GET_CONGESTION_NOTIFICATION,
+ cmd_flags,
+ token);
+ DPNI_CMD_GET_CONGESTION_NOTIFICATION(cmd, qtype, tc_id);
+
+ /* send command to mc*/
+ err = mc_send_command(mc_io, &cmd);
+ if (err)
+ return err;
+
+ DPNI_RSP_GET_CONGESTION_NOTIFICATION(cmd, cfg);
+
+ return 0;
+}
+
int dpni_get_api_version(struct fsl_mc_io *mc_io,
uint32_t cmd_flags,
uint16_t *major_ver,
diff --git a/drivers/net/dpaa2/mc/fsl_dpni.h b/drivers/net/dpaa2/mc/fsl_dpni.h
index ef14f85..2b6515a 100644
--- a/drivers/net/dpaa2/mc/fsl_dpni.h
+++ b/drivers/net/dpaa2/mc/fsl_dpni.h
@@ -72,10 +72,7 @@
* All flows within traffic class considered; see dpni_set_queue()
*/
#define DPNI_ALL_TC_FLOWS (uint16_t)(-1)
-/**
- * Generate new flow ID; see dpni_set_queue()
- */
-#define DPNI_NEW_FLOW_ID (uint16_t)(-1)
+
/**
* Tx traffic is always released to a buffer pool on transmit, there are no
* resources allocated to have the frames confirmed back to the source after
@@ -961,6 +958,16 @@ int dpni_set_rx_tc_dist(struct fsl_mc_io *mc_io,
uint16_t token,
uint8_t tc_id,
const struct dpni_rx_tc_dist_cfg *cfg);
+/**
+ * enum dpni_congestion_unit - DPNI congestion units
+ * @DPNI_CONGESTION_UNIT_BYTES: bytes units
+ * @DPNI_CONGESTION_UNIT_FRAMES: frames units
+ */
+enum dpni_congestion_unit {
+ DPNI_CONGESTION_UNIT_BYTES = 0,
+ DPNI_CONGESTION_UNIT_FRAMES
+};
+
/**
* enum dpni_dest - DPNI destination types
@@ -981,6 +988,119 @@ enum dpni_dest {
DPNI_DEST_DPCON = 2
};
+/**
+ * struct dpni_dest_cfg - Structure representing DPNI destination parameters
+ * @dest_type: Destination type
+ * @dest_id: Either DPIO ID or DPCON ID, depending on the destination type
+ * @priority: Priority selection within the DPIO or DPCON channel; valid values
+ * are 0-1 or 0-7, depending on the number of priorities in that
+ * channel; not relevant for 'DPNI_DEST_NONE' option
+ */
+struct dpni_dest_cfg {
+ enum dpni_dest dest_type;
+ int dest_id;
+ uint8_t priority;
+};
+
+/* DPNI congestion options */
+
+/**
+ * CSCN message is written to message_iova once entering a
+ * congestion state (see 'threshold_entry')
+ */
+#define DPNI_CONG_OPT_WRITE_MEM_ON_ENTER 0x00000001
+/**
+ * CSCN message is written to message_iova once exiting a
+ * congestion state (see 'threshold_exit')
+ */
+#define DPNI_CONG_OPT_WRITE_MEM_ON_EXIT 0x00000002
+/**
+ * CSCN write will attempt to allocate into a cache (coherent write);
+ * valid only if 'DPNI_CONG_OPT_WRITE_MEM_<X>' is selected
+ */
+#define DPNI_CONG_OPT_COHERENT_WRITE 0x00000004
+/**
+ * if 'dest_cfg.dest_type != DPNI_DEST_NONE' CSCN message is sent to
+ * DPIO/DPCON's WQ channel once entering a congestion state
+ * (see 'threshold_entry')
+ */
+#define DPNI_CONG_OPT_NOTIFY_DEST_ON_ENTER 0x00000008
+/**
+ * if 'dest_cfg.dest_type != DPNI_DEST_NONE' CSCN message is sent to
+ * DPIO/DPCON's WQ channel once exiting a congestion state
+ * (see 'threshold_exit')
+ */
+#define DPNI_CONG_OPT_NOTIFY_DEST_ON_EXIT 0x00000010
+/**
+ * if 'dest_cfg.dest_type != DPNI_DEST_NONE' when the CSCN is written to the
+ * sw-portal's DQRR, the DQRI interrupt is asserted immediately (if enabled)
+ */
+#define DPNI_CONG_OPT_INTR_COALESCING_DISABLED 0x00000020
+
+/**
+ * struct dpni_congestion_notification_cfg - congestion notification
+ * configuration
+ * @units: units type
+ * @threshold_entry: above this threshold we enter a congestion state.
+ * set it to '0' to disable it
+ * @threshold_exit: below this threshold we exit the congestion state.
+ * @message_ctx: The context that will be part of the CSCN message
+ * @message_iova: I/O virtual address (must be in DMA-able memory),
+ * must be 16B aligned; valid only if 'DPNI_CONG_OPT_WRITE_MEM_<X>' is
+ * contained in 'options'
+ * @dest_cfg: CSCN can be send to either DPIO or DPCON WQ channel
+ * @notification_mode: Mask of available options; use 'DPNI_CONG_OPT_<X>' values
+ */
+
+struct dpni_congestion_notification_cfg {
+ enum dpni_congestion_unit units;
+ uint32_t threshold_entry;
+ uint32_t threshold_exit;
+ uint64_t message_ctx;
+ uint64_t message_iova;
+ struct dpni_dest_cfg dest_cfg;
+ uint16_t notification_mode;
+};
+
+/**
+ * dpni_set_congestion_notification() - Set traffic class congestion
+ * notification configuration
+ * @mc_io: Pointer to MC portal's I/O object
+ * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token: Token of DPNI object
+ * @qtype: Type of queue - Rx, Tx and Tx confirm types are supported
+ * @tc_id: Traffic class selection (0-7)
+ * @cfg: congestion notification configuration
+ *
+ * Return: '0' on Success; error code otherwise.
+ */
+int dpni_set_congestion_notification(
+ struct fsl_mc_io *mc_io,
+ uint32_t cmd_flags,
+ uint16_t token,
+ enum dpni_queue_type qtype,
+ uint8_t tc_id,
+ const struct dpni_congestion_notification_cfg *cfg);
+
+/**
+ * dpni_get_congestion_notification() - Get traffic class congestion
+ * notification configuration
+ * @mc_io: Pointer to MC portal's I/O object
+ * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
+ * @token: Token of DPNI object
+ * @qtype: Type of queue - Rx, Tx and Tx confirm types are supported
+ * @tc_id: Traffic class selection (0-7)
+ * @cfg: congestion notification configuration
+ *
+ * Return: '0' on Success; error code otherwise.
+ */
+int dpni_get_congestion_notification(struct fsl_mc_io *mc_io,
+ uint32_t cmd_flags,
+ uint16_t token,
+ enum dpni_queue_type qtype,
+ uint8_t tc_id,
+ struct dpni_congestion_notification_cfg *cfg);
+
/**
* struct dpni_queue - Queue structure
@@ -1077,6 +1197,8 @@ enum dpni_confirmation_mode {
* Calling this function with 'mode' set to DPNI_CONF_SINGLE switches all
* Tx confirmations to a shared Tx conf queue. The ID of the queue when
* calling dpni_set/get_queue is -1.
+ * Tx confirmation mode can only be changed while the DPNI is disabled.
+ * Executing this command while the DPNI is enabled will return an error.
*
* Return: '0' on Success; Error code otherwise.
*/
diff --git a/drivers/net/dpaa2/mc/fsl_dpni_cmd.h b/drivers/net/dpaa2/mc/fsl_dpni_cmd.h
index bb92ea8..383649e 100644
--- a/drivers/net/dpaa2/mc/fsl_dpni_cmd.h
+++ b/drivers/net/dpaa2/mc/fsl_dpni_cmd.h
@@ -82,6 +82,8 @@
#define DPNI_CMDID_GET_BUFFER_LAYOUT ((0x264 << 4) | (0x1))
#define DPNI_CMDID_SET_BUFFER_LAYOUT ((0x265 << 4) | (0x1))
+#define DPNI_CMDID_SET_CONGESTION_NOTIFICATION ((0x267 << 4) | (0x1))
+#define DPNI_CMDID_GET_CONGESTION_NOTIFICATION ((0x268 << 4) | (0x1))
#define DPNI_CMDID_GET_OFFLOAD ((0x26B << 4) | (0x1))
#define DPNI_CMDID_SET_OFFLOAD ((0x26C << 4) | (0x1))
#define DPNI_CMDID_SET_TX_CONFIRMATION_MODE ((0x266 << 4) | (0x1))
@@ -331,4 +333,38 @@
#define DPNI_RSP_GET_TX_CONFIRMATION_MODE(cmd, mode) \
MC_RSP_OP(cmd, 0, 32, 8, enum dpni_confirmation_mode, mode)
+#define DPNI_CMD_SET_CONGESTION_NOTIFICATION(cmd, qtype, tc, cfg) \
+do { \
+ MC_CMD_OP(cmd, 0, 0, 8, enum dpni_queue_type, qtype); \
+ MC_CMD_OP(cmd, 0, 8, 8, uint8_t, tc); \
+ MC_CMD_OP(cmd, 1, 0, 32, uint32_t, (cfg)->dest_cfg.dest_id); \
+ MC_CMD_OP(cmd, 1, 32, 16, uint16_t, (cfg)->notification_mode); \
+ MC_CMD_OP(cmd, 1, 48, 8, uint8_t, (cfg)->dest_cfg.priority); \
+ MC_CMD_OP(cmd, 1, 56, 4, enum dpni_dest, (cfg)->dest_cfg.dest_type); \
+ MC_CMD_OP(cmd, 1, 60, 2, enum dpni_congestion_unit, (cfg)->units); \
+ MC_CMD_OP(cmd, 2, 0, 64, uint64_t, (cfg)->message_iova); \
+ MC_CMD_OP(cmd, 3, 0, 64, uint64_t, (cfg)->message_ctx); \
+ MC_CMD_OP(cmd, 4, 0, 32, uint32_t, (cfg)->threshold_entry); \
+ MC_CMD_OP(cmd, 4, 32, 32, uint32_t, (cfg)->threshold_exit); \
+} while (0)
+
+#define DPNI_CMD_GET_CONGESTION_NOTIFICATION(cmd, qtype, tc) \
+do { \
+ MC_CMD_OP(cmd, 0, 0, 8, enum dpni_queue_type, qtype); \
+ MC_CMD_OP(cmd, 0, 8, 8, uint8_t, tc); \
+} while (0)
+
+#define DPNI_RSP_GET_CONGESTION_NOTIFICATION(cmd, cfg) \
+do { \
+ MC_RSP_OP(cmd, 1, 0, 32, uint32_t, (cfg)->dest_cfg.dest_id); \
+ MC_RSP_OP(cmd, 1, 0, 16, uint16_t, (cfg)->notification_mode); \
+ MC_RSP_OP(cmd, 1, 48, 8, uint8_t, (cfg)->dest_cfg.priority); \
+ MC_RSP_OP(cmd, 1, 56, 4, enum dpni_dest, (cfg)->dest_cfg.dest_type); \
+ MC_RSP_OP(cmd, 1, 60, 2, enum dpni_congestion_unit, (cfg)->units); \
+ MC_RSP_OP(cmd, 2, 0, 64, uint64_t, (cfg)->message_iova); \
+ MC_RSP_OP(cmd, 3, 0, 64, uint64_t, (cfg)->message_ctx); \
+ MC_RSP_OP(cmd, 4, 0, 32, uint32_t, (cfg)->threshold_entry); \
+ MC_RSP_OP(cmd, 4, 32, 32, uint32_t, (cfg)->threshold_exit); \
+} while (0)
+
#endif /* _FSL_DPNI_CMD_H */
--
1.9.1
next prev parent reply other threads:[~2017-05-26 6:51 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-19 13:09 [dpdk-dev] [PATCH 1/4] net/dpaa2: stop using software annotation Hemant Agrawal
2017-04-19 13:09 ` [dpdk-dev] [PATCH 2/4] net/dpaa2: improve the error handling in dev init Hemant Agrawal
2017-05-12 13:51 ` Ferruh Yigit
2017-04-19 13:09 ` [dpdk-dev] [PATCH 3/4] bus/fslmc: support for multiple parallel dq requests Hemant Agrawal
2017-05-12 13:53 ` Ferruh Yigit
2017-04-19 13:09 ` [dpdk-dev] [PATCH 4/4] net/dpaa2: support parallel recv mode Hemant Agrawal
2017-05-12 13:48 ` Ferruh Yigit
2017-05-15 8:26 ` Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 00/20] NXP DPAA2 PMD functional enhancements Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 01/20] mk: change to cortex-a72 Hemant Agrawal
2017-05-15 16:49 ` Ferruh Yigit
2017-05-16 15:06 ` Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 02/20] net/dpaa2: remove port level buffer layout definition Hemant Agrawal
2017-05-15 16:50 ` Ferruh Yigit
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 03/20] net/dpaa2: stop using software annotation Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 04/20] net/dpaa2: improve the error handling in dev init Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 05/20] bus/fslmc: support for parallel Rx DQ requests Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 06/20] net/dpaa2: support parallel Rx mode Hemant Agrawal
2017-05-15 12:37 ` Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 07/20] bus/fslmc: export qbman results in map file Hemant Agrawal
2017-05-15 16:55 ` Ferruh Yigit
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 08/20] net/dpaa2: add support for congestion notification Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 09/20] net/dpaa2: add support for tail drop on queue Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 10/20] bus/fslmc: update TAILQ usages in dpaa2 objects Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 11/20] net/dpaa2: add support for MAC address filtering Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 12/20] net/dpaa2: add support for multicast promiscuous mode Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 13/20] net/dpaa2: add support for VLAN filter and offload Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 14/20] net/dpaa2: add support for VLAN strip Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 15/20] net/dpaa2: add link status config support Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 16/20] net/dpaa2: add support for flow control Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 17/20] net/dpaa2: configure jumbo frames Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 18/20] bus/fslmc: add support to detect soc version Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 19/20] net/dpaa2: add support for Firmware Version get Hemant Agrawal
2017-05-15 12:37 ` [dpdk-dev] [PATCH v2 20/20] bus/fslmc: reducing the debug log messages Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 00/20] NXP DPAA2 PMD functional enhancements Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 01/20] mk: change to cortex-a72 Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 02/20] net/dpaa2: remove port level buffer layout definition Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 03/20] net/dpaa2: stop using software annotation Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 04/20] net/dpaa2: improve the error handling in dev init Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 05/20] bus/fslmc: support for parallel Rx DQ requests Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 06/20] net/dpaa2: support parallel Rx in eth pmd Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 07/20] bus/fslmc: export qbman results in map file Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 08/20] net/dpaa2: add support for congestion notification Hemant Agrawal
2017-05-24 11:45 ` Ferruh Yigit
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 09/20] net/dpaa2: add support for tail drop on queue Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 10/20] bus/fslmc: update TAILQ usages in dpaa2 objects Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 11/20] net/dpaa2: add support for MAC address filtering Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 12/20] net/dpaa2: add support for multicast promiscuous mode Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 13/20] net/dpaa2: add support for VLAN filter and offload Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 14/20] net/dpaa2: add support for VLAN strip Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 15/20] net/dpaa2: add link status config support Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 16/20] net/dpaa2: add support for flow control Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 17/20] net/dpaa2: configure jumbo frames Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 18/20] bus/fslmc: add support to detect soc version Hemant Agrawal
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 19/20] net/dpaa2: add support for Firmware Version get Hemant Agrawal
2017-05-24 11:43 ` Ferruh Yigit
2017-05-22 9:39 ` [dpdk-dev] [PATCH v3 20/20] bus/fslmc: reducing the debug log messages Hemant Agrawal
2017-05-24 11:49 ` [dpdk-dev] [PATCH v3 00/20] NXP DPAA2 PMD functional enhancements Ferruh Yigit
2017-05-26 7:51 ` Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 " Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 01/20] mk: change to cortex-a72 Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 02/20] net/dpaa2: remove port level buffer layout definition Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 03/20] net/dpaa2: stop using software annotation Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 04/20] net/dpaa2: improve the error handling in dev init Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 05/20] bus/fslmc: support for parallel Rx DQ requests Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 06/20] net/dpaa2: support parallel Rx in eth pmd Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 07/20] bus/fslmc: export qbman results in map file Hemant Agrawal
2017-05-26 6:51 ` Hemant Agrawal [this message]
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 09/20] net/dpaa2: add support for tail drop on queue Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 10/20] bus/fslmc: update TAILQ usages in dpaa2 objects Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 11/20] net/dpaa2: add support for MAC address filtering Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 12/20] net/dpaa2: add support for multicast promiscuous mode Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 13/20] net/dpaa2: add support for VLAN filter and offload Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 14/20] net/dpaa2: add support for VLAN strip Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 15/20] net/dpaa2: add link status config support Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 16/20] net/dpaa2: add support for flow control Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 17/20] net/dpaa2: configure jumbo frames Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 18/20] bus/fslmc: add support to detect soc version Hemant Agrawal
2017-05-26 8:51 ` Ferruh Yigit
2017-05-26 9:26 ` [dpdk-dev] [PATCH] bus/fslmc: fix license information Shreyansh Jain
2017-05-26 9:22 ` Ferruh Yigit
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 19/20] net/dpaa2: add support for Firmware Version get Hemant Agrawal
2017-05-26 6:51 ` [dpdk-dev] [PATCH v4 20/20] bus/fslmc: reducing the debug log messages Hemant Agrawal
2017-05-26 8:47 ` [dpdk-dev] [PATCH v4 00/20] NXP DPAA2 PMD functional enhancements 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=1495781485-2236-9-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).