All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chen Jing D(Mark)" <jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: [PATCH v3 10/15] fm10k: add receive and tranmit function
Date: Tue, 10 Feb 2015 15:02:50 +0800	[thread overview]
Message-ID: <1423551775-3604-11-git-send-email-jing.d.chen@intel.com> (raw)
In-Reply-To: <1423551775-3604-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

From: Jeff Shaw <jeffrey.b.shaw-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

1. Add fm10k_recv_pkts and fm10k_xmit_pkts functions.
2. Link app function pointer to actual fm10k recv/xmit
   functions.
3. Change Makefile to compile new file fm10k_rxtx.c

Signed-off-by: Jeff Shaw <jeffrey.b.shaw-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Chen Jing D(Mark) <jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 lib/librte_pmd_fm10k/Makefile       |    1 +
 lib/librte_pmd_fm10k/fm10k.h        |    7 +
 lib/librte_pmd_fm10k/fm10k_ethdev.c |    2 +
 lib/librte_pmd_fm10k/fm10k_rxtx.c   |  299 +++++++++++++++++++++++++++++++++++
 4 files changed, 309 insertions(+), 0 deletions(-)
 create mode 100644 lib/librte_pmd_fm10k/fm10k_rxtx.c

diff --git a/lib/librte_pmd_fm10k/Makefile b/lib/librte_pmd_fm10k/Makefile
index 1da84e9..8ab788c 100644
--- a/lib/librte_pmd_fm10k/Makefile
+++ b/lib/librte_pmd_fm10k/Makefile
@@ -79,6 +79,7 @@ VPATH += $(RTE_SDK)/lib/librte_pmd_fm10k/base
 # all source are stored in SRCS-y
 #
 SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_ethdev.c
+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_rxtx.c
 
 SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_pf.c
 SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_tlv.c
diff --git a/lib/librte_pmd_fm10k/fm10k.h b/lib/librte_pmd_fm10k/fm10k.h
index be990e5..a9b19cd 100644
--- a/lib/librte_pmd_fm10k/fm10k.h
+++ b/lib/librte_pmd_fm10k/fm10k.h
@@ -280,4 +280,11 @@ fm10k_addr_alignment_valid(struct rte_mbuf *mb)
 
 	return 0;
 }
+
+/* Rx and Tx prototypes */
+uint16_t fm10k_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+	uint16_t nb_pkts);
+
+uint16_t fm10k_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+	uint16_t nb_pkts);
 #endif
diff --git a/lib/librte_pmd_fm10k/fm10k_ethdev.c b/lib/librte_pmd_fm10k/fm10k_ethdev.c
index 011b0bc..af68ad7 100644
--- a/lib/librte_pmd_fm10k/fm10k_ethdev.c
+++ b/lib/librte_pmd_fm10k/fm10k_ethdev.c
@@ -1245,6 +1245,8 @@ eth_fm10k_dev_init(__rte_unused struct eth_driver *eth_drv,
 	PMD_INIT_FUNC_TRACE();
 
 	dev->dev_ops = &fm10k_eth_dev_ops;
+	dev->rx_pkt_burst = &fm10k_recv_pkts;
+	dev->tx_pkt_burst = &fm10k_xmit_pkts;
 
 	/* only initialize in the primary process */
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
diff --git a/lib/librte_pmd_fm10k/fm10k_rxtx.c b/lib/librte_pmd_fm10k/fm10k_rxtx.c
new file mode 100644
index 0000000..1d95bff
--- /dev/null
+++ b/lib/librte_pmd_fm10k/fm10k_rxtx.c
@@ -0,0 +1,299 @@
+/*-
+ *   BSD LICENSE
+ *
+ *   Copyright(c) 2013-2015 Intel Corporation. All rights reserved.
+ *   All rights reserved.
+ *
+ *   Redistribution and use in source and binary forms, with or without
+ *   modification, are permitted provided that the following conditions
+ *   are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided with the
+ *       distribution.
+ *     * Neither the name of Intel Corporation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <rte_ethdev.h>
+#include <rte_common.h>
+#include "fm10k.h"
+#include "base/fm10k_type.h"
+
+#ifdef RTE_PMD_PACKET_PREFETCH
+#define rte_packet_prefetch(p)  rte_prefetch1(p)
+#else
+#define rte_packet_prefetch(p)  do {} while (0)
+#endif
+
+static inline void dump_rxd(union fm10k_rx_desc *rxd)
+{
+#ifndef RTE_LIBRTE_FM10K_DEBUG_RX
+	RTE_SET_USED(rxd);
+#endif
+	PMD_RX_LOG(DEBUG, "+----------------|----------------+");
+	PMD_RX_LOG(DEBUG, "|     GLORT      | PKT HDR & TYPE |");
+	PMD_RX_LOG(DEBUG, "|   0x%08x   |   0x%08x   |", rxd->d.glort,
+			rxd->d.data);
+	PMD_RX_LOG(DEBUG, "+----------------|----------------+");
+	PMD_RX_LOG(DEBUG, "|   VLAN & LEN   |     STATUS     |");
+	PMD_RX_LOG(DEBUG, "|   0x%08x   |   0x%08x   |", rxd->d.vlan_len,
+			rxd->d.staterr);
+	PMD_RX_LOG(DEBUG, "+----------------|----------------+");
+	PMD_RX_LOG(DEBUG, "|    RESERVED    |    RSS_HASH    |");
+	PMD_RX_LOG(DEBUG, "|   0x%08x   |   0x%08x   |", 0, rxd->d.rss);
+	PMD_RX_LOG(DEBUG, "+----------------|----------------+");
+	PMD_RX_LOG(DEBUG, "|            TIME TAG             |");
+	PMD_RX_LOG(DEBUG, "|       0x%016lx        |", rxd->q.timestamp);
+	PMD_RX_LOG(DEBUG, "+----------------|----------------+");
+}
+
+static inline void
+rx_desc_to_ol_flags(struct rte_mbuf *m, const union fm10k_rx_desc *d)
+{
+	uint16_t ptype;
+	static const uint16_t pt_lut[] = { 0,
+		PKT_RX_IPV4_HDR, PKT_RX_IPV4_HDR_EXT,
+		PKT_RX_IPV6_HDR, PKT_RX_IPV6_HDR_EXT,
+		0, 0, 0
+	};
+
+	if (d->w.pkt_info & FM10K_RXD_RSSTYPE_MASK)
+		m->ol_flags |= PKT_RX_RSS_HASH;
+
+	if ((d->d.staterr & (FM10K_RXD_STATUS_IPCS | FM10K_RXD_STATUS_IPE)) ==
+	    (FM10K_RXD_STATUS_IPCS | FM10K_RXD_STATUS_IPE))
+		m->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+
+	if ((d->d.staterr & (FM10K_RXD_STATUS_L4CS | FM10K_RXD_STATUS_L4E)) ==
+	    (FM10K_RXD_STATUS_L4CS | FM10K_RXD_STATUS_L4E))
+		m->ol_flags |= PKT_RX_L4_CKSUM_BAD;
+
+	if (d->d.staterr & FM10K_RXD_STATUS_VEXT)
+		m->ol_flags |= PKT_RX_VLAN_PKT;
+
+	if (d->d.staterr & FM10K_RXD_STATUS_HBO)
+		m->ol_flags |= PKT_RX_HBUF_OVERFLOW;
+
+	if (d->d.staterr & FM10K_RXD_STATUS_RXE)
+		m->ol_flags |= PKT_RX_RECIP_ERR;
+
+	ptype = (d->d.data & FM10K_RXD_PKTTYPE_MASK_L3) >>
+						FM10K_RXD_PKTTYPE_SHIFT;
+	m->ol_flags |= pt_lut[(uint8_t)ptype];
+}
+
+uint16_t
+fm10k_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+	uint16_t nb_pkts)
+{
+	struct rte_mbuf *mbuf;
+	union fm10k_rx_desc desc;
+	struct fm10k_rx_queue *q = rx_queue;
+	uint16_t count = 0;
+	int alloc = 0;
+	uint16_t next_dd;
+
+	next_dd = q->next_dd;
+
+	nb_pkts = RTE_MIN(nb_pkts, q->alloc_thresh);
+	for (count = 0; count < nb_pkts; ++count) {
+		mbuf = q->sw_ring[next_dd];
+		desc = q->hw_ring[next_dd];
+		if (!(desc.d.staterr & FM10K_RXD_STATUS_DD))
+			break;
+#ifdef RTE_LIBRTE_FM10K_DEBUG_RX
+		dump_rxd(&desc);
+#endif
+		rte_pktmbuf_pkt_len(mbuf) = desc.w.length;
+		rte_pktmbuf_data_len(mbuf) = desc.w.length;
+
+		mbuf->ol_flags = 0;
+#ifdef RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE
+		rx_desc_to_ol_flags(mbuf, &desc);
+#endif
+
+		mbuf->hash.rss = desc.d.rss;
+
+		rx_pkts[count] = mbuf;
+		if (++next_dd == q->nb_desc) {
+			next_dd = 0;
+			alloc = 1;
+		}
+
+		/* Prefetch next mbuf while processing current one. */
+		rte_prefetch0(q->sw_ring[next_dd]);
+
+		/*
+		 * When next RX descriptor is on a cache-line boundary,
+		 * prefetch the next 4 RX descriptors and the next 8 pointers
+		 * to mbufs.
+		 */
+		if ((next_dd & 0x3) == 0) {
+			rte_prefetch0(&q->hw_ring[next_dd]);
+			rte_prefetch0(&q->sw_ring[next_dd]);
+		}
+	}
+
+	q->next_dd = next_dd;
+
+	if ((q->next_dd > q->next_trigger) || (alloc == 1)) {
+		rte_mempool_get_bulk(q->mp, (void **)&q->sw_ring[q->next_alloc],
+					q->alloc_thresh);
+		for (; q->next_alloc <= q->next_trigger; ++q->next_alloc) {
+			mbuf = q->sw_ring[q->next_alloc];
+
+			/* setup static mbuf fields */
+			fm10k_pktmbuf_reset(mbuf, q->port_id);
+
+			/* write descriptor */
+			desc.q.pkt_addr = MBUF_DMA_ADDR_DEFAULT(mbuf);
+			desc.q.hdr_addr = MBUF_DMA_ADDR_DEFAULT(mbuf);
+			q->hw_ring[q->next_alloc] = desc;
+		}
+		FM10K_PCI_REG_WRITE(q->tail_ptr, q->next_trigger);
+		q->next_trigger += q->alloc_thresh;
+		if (q->next_trigger >= q->nb_desc) {
+			q->next_trigger = q->alloc_thresh - 1;
+			q->next_alloc = 0;
+		}
+	}
+
+	return count;
+}
+
+static inline void tx_free_descriptors(struct fm10k_tx_queue *q)
+{
+	uint16_t next_rs, count = 0;
+
+	next_rs = fifo_peek(&q->rs_tracker);
+	if (!(q->hw_ring[next_rs].flags & FM10K_TXD_FLAG_DONE))
+		return;
+
+	/* the DONE flag is set on this descriptor so remove the ID
+	 * from the RS bit tracker and free the buffers */
+	fifo_remove(&q->rs_tracker);
+
+	/* wrap around? if so, free buffers from last_free up to but NOT
+	 * including nb_desc */
+	if (q->last_free > next_rs) {
+		count = q->nb_desc - q->last_free;
+		while (q->last_free < q->nb_desc) {
+			rte_pktmbuf_free_seg(q->sw_ring[q->last_free]);
+			q->sw_ring[q->last_free] = NULL;
+			++q->last_free;
+		}
+		q->last_free = 0;
+	}
+
+	/* adjust free descriptor count before the next loop */
+	q->nb_free += count + (next_rs + 1 - q->last_free);
+
+	/* free buffers from last_free, up to and including next_rs */
+	while (q->last_free <= next_rs) {
+		rte_pktmbuf_free_seg(q->sw_ring[q->last_free]);
+		q->sw_ring[q->last_free] = NULL;
+		++q->last_free;
+	}
+
+	if (q->last_free == q->nb_desc)
+		q->last_free = 0;
+}
+
+static inline void tx_xmit_pkt(struct fm10k_tx_queue *q, struct rte_mbuf *mb)
+{
+	uint16_t last_id;
+	uint8_t flags;
+
+	/* always set the LAST flag on the last descriptor used to
+	 * transmit the packet */
+	flags = FM10K_TXD_FLAG_LAST;
+	last_id = q->next_free + mb->nb_segs - 1;
+	if (last_id >= q->nb_desc)
+		last_id = last_id - q->nb_desc;
+
+	/* but only set the RS flag on the last descriptor if rs_thresh
+	 * descriptors will be used since the RS flag was last set */
+	if ((q->nb_used + mb->nb_segs) >= q->rs_thresh) {
+		flags |= FM10K_TXD_FLAG_RS;
+		fifo_insert(&q->rs_tracker, last_id);
+		q->nb_used = 0;
+	} else {
+		q->nb_used = q->nb_used + mb->nb_segs;
+	}
+
+	q->hw_ring[last_id].flags = flags;
+	q->nb_free -= mb->nb_segs;
+
+	/* set checksum flags on first descriptor of packet. SCTP checksum
+	 * offload is not supported, but we do not explicitely check for this
+	 * case in favor of greatly simplified processing. */
+	if (mb->ol_flags & (PKT_TX_IPV4_CSUM | PKT_TX_L4_MASK))
+		q->hw_ring[q->next_free].flags |= FM10K_TXD_FLAG_CSUM;
+
+	/* set vlan if requested */
+	if (mb->ol_flags & PKT_TX_VLAN_PKT)
+		q->hw_ring[q->next_free].vlan = mb->vlan_tci;
+
+	/* fill up the rings */
+	for (; mb != NULL; mb = mb->next) {
+		q->sw_ring[q->next_free] = mb;
+		q->hw_ring[q->next_free].buffer_addr =
+				rte_cpu_to_le_64(MBUF_DMA_ADDR(mb));
+		q->hw_ring[q->next_free].buflen =
+				rte_cpu_to_le_16(rte_pktmbuf_data_len(mb));
+		if (++q->next_free == q->nb_desc)
+			q->next_free = 0;
+	}
+}
+
+uint16_t
+fm10k_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+	uint16_t nb_pkts)
+{
+	struct fm10k_tx_queue *q = tx_queue;
+	struct rte_mbuf *mb;
+	uint16_t count;
+
+	for (count = 0; count < nb_pkts; ++count) {
+		mb = tx_pkts[count];
+
+		/* running low on descriptors? try to free some... */
+		if (q->nb_free < q->free_trigger)
+			tx_free_descriptors(q);
+
+		/* make sure there are enough free descriptors to transmit the
+		 * entire packet before doing anything */
+		if (q->nb_free < mb->nb_segs)
+			break;
+
+		/* sanity check to make sure the mbuf is valid */
+		if ((mb->nb_segs == 0) ||
+		    ((mb->nb_segs > 1) && (mb->next == NULL)))
+			break;
+
+		/* process the packet */
+		tx_xmit_pkt(q, mb);
+	}
+
+	/* update the tail pointer if any packets were processed */
+	if (count > 0)
+		FM10K_PCI_REG_WRITE(q->tail_ptr, q->next_free);
+
+	return count;
+}
-- 
1.7.7.6

  parent reply	other threads:[~2015-02-10  7:02 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-30  5:07 [PATCH 00/18] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
     [not found] ` <1422594454-11045-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-01-30  5:07   ` [PATCH 01/18] fm10k: add base driver Chen Jing D(Mark)
     [not found]     ` <1422594454-11045-2-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-04 10:40       ` [PATCH v2 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
     [not found]         ` <1423046460-21141-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-04 10:40           ` [PATCH v2 01/15] fm10k: add base driver Chen Jing D(Mark)
     [not found]             ` <1423046460-21141-2-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-10  7:02               ` [PATCH v3 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
     [not found]                 ` <1423551775-3604-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-10  7:02                   ` [PATCH v3 01/15] fm10k: add base driver Chen Jing D(Mark)
     [not found]                     ` <1423551775-3604-2-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-11  1:31                       ` [PATCH v4 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
     [not found]                         ` <1423618298-2933-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-11  1:31                           ` [PATCH v4 01/15] fm10k: add base driver Chen Jing D(Mark)
     [not found]                             ` <1423618298-2933-2-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13  8:19                               ` [PATCH v5 00/17] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
     [not found]                                 ` <1423815597-17819-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13  8:19                                   ` [PATCH v5 01/17] fm10k: add base driver Chen Jing D(Mark)
     [not found]                                     ` <1423815597-17819-2-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-17 14:18                                       ` [PATCH v6 00/16] lib/librte_pmd_fm10k : fm10k pmd driver Chen Jing D(Mark)
     [not found]                                         ` <1424182739-11058-1-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-17 14:18                                           ` [PATCH v6 01/16] fm10k: add base driver Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 02/16] eal: add fm10k device id Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 03/16] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 04/16] config: change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 05/16] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 06/16] fm10k: add Rx queue setup/release function Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 07/16] fm10k: add Tx " Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 08/16] fm10k: add Rx/Tx single queue start/stop function Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 09/16] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 10/16] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 11/16] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 12/16] fm10k: add scatter receive function Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 13/16] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 14/16] fm10k: add SRIOV-VF support Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 15/16] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-17 14:18                                           ` [PATCH v6 16/16] maintainers: claim for fm10k review Chen Jing D(Mark)
2015-02-18  0:13                                           ` [PATCH v6 00/16] lib/librte_pmd_fm10k : fm10k pmd driver Thomas Monjalon
2015-02-13  8:19                                   ` [PATCH v5 02/17] eal: add fm10k device id Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 03/17] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 04/17] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 05/17] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 06/17] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
     [not found]                                     ` <1423815597-17819-7-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13 11:08                                       ` David Marchand
     [not found]                                         ` <CALwxeUvHAQFswoWy6wNQLjbrSuXO7=uMn=GZn2ByK2g9iRdfeg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-17 13:01                                           ` Chen, Jing D
2015-02-13  8:19                                   ` [PATCH v5 07/17] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 08/17] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
     [not found]                                     ` <1423815597-17819-9-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13 11:31                                       ` David Marchand
     [not found]                                         ` <CALwxeUshpFKc--RpnqML4HVdp_q2j70OHPgnbVHwm6pMU-4+AQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-13 16:45                                           ` Jeff Shaw
2015-02-13  8:19                                   ` [PATCH v5 09/17] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 10/17] fm10k: add receive and tranmit function Chen Jing D(Mark)
     [not found]                                     ` <1423815597-17819-11-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13 11:42                                       ` David Marchand
     [not found]                                         ` <CALwxeUsoCej556m2dvxu6w2xtf3Sc-f4PEorVzki1aLDGs41Dg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-17 13:07                                           ` Chen, Jing D
2015-02-13 11:53                                       ` David Marchand
     [not found]                                         ` <CALwxeUs-++1dFtA1rhFKVXEg35Fahh=VjdM4wPwQJqgjdL6XmQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-17 13:10                                           ` Chen, Jing D
2015-02-13  8:19                                   ` [PATCH v5 11/17] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 12/17] fm10k: Add scatter receive function Chen Jing D(Mark)
     [not found]                                     ` <1423815597-17819-13-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13 11:55                                       ` David Marchand
     [not found]                                         ` <CALwxeUv+RfT+Nvu0pG5Zx-yc=25f2qC1YsGCaRvdcBUw8curkg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-17 13:11                                           ` Chen, Jing D
2015-02-13  8:19                                   ` [PATCH v5 13/17] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 14/17] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 15/17] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
     [not found]                                     ` <1423815597-17819-16-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-13 11:42                                       ` David Marchand
     [not found]                                         ` <CALwxeUsoqaYfVfTDZm=O1NOUh2vZbRDM90rMQJZ6kiB3d3tbvA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-17 13:12                                           ` Chen, Jing D
2015-02-13  8:19                                   ` [PATCH v5 16/17] maintainers: claim for fm10k review Chen Jing D(Mark)
2015-02-13  8:19                                   ` [PATCH v5 17/17] fm10k: Add ABI version of librte_pmd_fm10k Chen Jing D(Mark)
2015-02-13  8:37                                   ` [PATCH v5 00/17] lib/librte_pmd_fm10k : fm10k pmd driver Zhang, Helin
2015-02-15  5:07                                 ` Qiu, Michael
2015-02-11  1:31                           ` [PATCH v4 02/15] eal: add fm10k device id Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 03/15] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 04/15] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 05/15] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 06/15] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 07/15] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 08/15] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 09/15] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 10/15] fm10k: add receive and tranmit function Chen Jing D(Mark)
     [not found]                             ` <1423618298-2933-11-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-11 17:28                               ` Jeff Shaw
     [not found]                                 ` <20150211172847.GA2984-xsuQPsiAMSxDtcM2BRa8+1DQ4js95KgL@public.gmane.org>
2015-02-12  4:04                                   ` Chen, Jing D
2015-02-11  1:31                           ` [PATCH v4 11/15] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 12/15] fm10k: Add scatter receive function Chen Jing D(Mark)
     [not found]                             ` <1423618298-2933-13-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-11 17:32                               ` Jeff Shaw
     [not found]                                 ` <20150211173238.GB2984-xsuQPsiAMSxDtcM2BRa8+1DQ4js95KgL@public.gmane.org>
2015-02-12  4:04                                   ` Chen, Jing D
2015-02-11  1:31                           ` [PATCH v4 13/15] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 14/15] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-11  1:31                           ` [PATCH v4 15/15] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-11  1:50                         ` [PATCH v4 00/15] lib/librte_pmd_fm10k : fm10k pmd driver Qiu, Michael
2015-02-10  7:02                   ` [PATCH v3 02/15] eal: add fm10k device id Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 03/15] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 04/15] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 05/15] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 06/15] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 07/15] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 08/15] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 09/15] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-10  7:02                   ` Chen Jing D(Mark) [this message]
2015-02-10  7:02                   ` [PATCH v3 11/15] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 12/15] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 13/15] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 14/15] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-10  7:02                   ` [PATCH v3 15/15] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 02/15] fm10k: add fm10k device id Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 03/15] fm10k: register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 04/15] Change config files to add fm10k into compile Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 05/15] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 06/15] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 07/15] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 08/15] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 09/15] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 10/15] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 11/15] fm10k: add PF RSS support Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 12/15] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 13/15] fm10k: add function to set vlan Chen Jing D(Mark)
2015-02-04 10:40           ` [PATCH v2 14/15] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-02-04 10:41           ` [PATCH v2 15/15] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 02/18] Change config/ files to add macros for fm10k Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 03/18] fm10k: Add empty fm10k files Chen Jing D(Mark)
     [not found]     ` <1422594454-11045-4-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-01-31 14:02       ` Neil Horman
     [not found]         ` <20150131140200.GA22012-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-02-02  5:34           ` Chen, Jing D
     [not found]             ` <4341B239C0EFF9468EE453F9E9F4604D01661FA5-E2R4CRU6q/6iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02 13:38               ` Neil Horman
     [not found]                 ` <20150202133848.GA21700-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2015-02-03  6:47                   ` Chen, Jing D
2015-02-01 13:01       ` David Marchand
     [not found]         ` <CALwxeUuzS5ns7buzXp2phvMZJ4Nckkf32GQWJ6oPcu=kzZDU5A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-02  9:25           ` Chen, Jing D
2015-01-30  5:07   ` [PATCH 04/18] fm10k: add fm10k device id Chen Jing D(Mark)
     [not found]     ` <1422594454-11045-5-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-01-31 14:19       ` Neil Horman
     [not found]         ` <20150131141935.GB22012-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-01-31 16:07           ` David Marchand
     [not found]             ` <CALwxeUsVNxZ4-dGSr-oyL2BdPjvgKgF0Yn9N1kBUreC6RBfXcg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-31 16:32               ` Neil Horman
     [not found]                 ` <20150131163227.GA23878-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-01-31 16:55                   ` David Marchand
     [not found]                     ` <CALwxeUtkfPnh9aAzoL-t6r65nhcqnH7_oC8KMjMf8Ao_+QizKg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-31 18:35                       ` Neil Horman
     [not found]                         ` <20150131183535.GA24821-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-05-07 11:06                           ` David Marchand
     [not found]                             ` <CALwxeUujPcm1o_7N90MP08A33QbHCEaitM0Qnmtpes9RH=t3fQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-07 13:36                               ` Neil Horman
     [not found]                                 ` <20150507133614.GB336-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2015-05-07 13:39                                   ` David Marchand
2015-02-02  7:54           ` Chen, Jing D
2015-01-30  5:07   ` [PATCH 05/18] fm10k: Add code to register fm10k pmd PF driver Chen Jing D(Mark)
2015-02-02  9:10     ` Qiu, Michael
     [not found]       ` <533710CFB86FA344BFBF2D6802E60286CD36A6-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02  9:21         ` Chen, Jing D
2015-01-30  5:07   ` [PATCH 06/18] fm10k: add reta update/requery functions Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 07/18] fm10k: add rx_queue_setup/release function Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 08/18] fm10k: add tx_queue_setup/release function Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 09/18] fm10k: add RX/TX single queue start/stop function Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 10/18] fm10k: add dev start/stop functions Chen Jing D(Mark)
2015-02-04  2:36     ` Qiu, Michael
     [not found]       ` <533710CFB86FA344BFBF2D6802E60286CD4285-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-04  9:55         ` Chen, Jing D
2015-01-30  5:07   ` [PATCH 11/18] fm10k: add receive and tranmit function Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 12/18] fm10k: add PF RSS support Chen Jing D(Mark)
     [not found]     ` <1422594454-11045-13-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-01  0:38       ` Neil Horman
2015-01-30  5:07   ` [PATCH 13/18] fm10k: Add scatter receive function Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 14/18] fm10k: add function to set vlan Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 15/18] fm10k: Add SRIOV-VF support Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 16/18] fm10k: add PF and VF interrupt handling function Chen Jing D(Mark)
     [not found]     ` <1422594454-11045-17-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-01  0:42       ` Neil Horman
     [not found]         ` <20150201004259.GB31443-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-02-02  7:59           ` Chen, Jing D
2015-01-30  5:07   ` [PATCH 17/18] Change lib/Makefile to add fm10k driver into compile list Chen Jing D(Mark)
2015-01-30  5:07   ` [PATCH 18/18] Change mk/rte.app.mk to add fm10k lib into link Chen Jing D(Mark)
     [not found]     ` <1422594454-11045-19-git-send-email-jing.d.chen-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-01  0:50       ` Neil Horman
     [not found]         ` <20150201005059.GC31443-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-02-02  8:10           ` Chen, Jing D
     [not found]             ` <4341B239C0EFF9468EE453F9E9F4604D016631DC-E2R4CRU6q/6iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02  8:39               ` Thomas Monjalon
2015-02-02  8:59                 ` Chen, Jing D
2015-02-02 13:46               ` Neil Horman
2015-01-30 21:26   ` [PATCH 00/18] lib/librte_pmd_fm10k : fm10k pmd driver Neil Horman
     [not found]     ` <20150130212633.GD2664-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2015-01-30 21:46       ` Jeff Shaw
     [not found]         ` <20150130214622.GA21286-P+9LSW+heshDtcM2BRa8+1DQ4js95KgL@public.gmane.org>
2015-01-30 22:19           ` Thomas Monjalon
2015-02-02  2:59             ` Chen, Jing D
     [not found]               ` <4341B239C0EFF9468EE453F9E9F4604D01661ED1-E2R4CRU6q/6iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-02-02  8:19                 ` Thomas Monjalon
2015-02-02  8:55                   ` Chen, Jing D

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=1423551775-3604-11-git-send-email-jing.d.chen@intel.com \
    --to=jing.d.chen-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dev-VfR2kkLFssw@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.