All of lore.kernel.org
 help / color / mirror / Atom feed
From: Declan Doherty <declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: [PATCH v4 2/6] Support for unique interface naming of pmds
Date: Mon, 16 Jun 2014 12:18:29 +0100	[thread overview]
Message-ID: <1402917513-19495-3-git-send-email-declan.doherty@intel.com> (raw)
In-Reply-To: <cover.1402662300.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Adding support to rte_eth_dev_data structure to support unique
name identifier for ethdevs to support adding slave ethdevs
(specifically virtual devices which have no public unique
identifier) to a link bonding device. This changes the API
rte_eth_dev_allocate() to require a const char *name when
allocating a ethdev, which also verifies that the name is
unique and hasn’t been already used by an existed allocated
rte_eth_dev. Also contains updates to virtual pmd’s to now call
the API with a name parameter.

Signed-off-by: Declan Doherty <declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 lib/librte_ether/rte_ethdev.c            |   33 +++++++++++++++++++++++++++--
 lib/librte_ether/rte_ethdev.h            |    7 +++++-
 lib/librte_pmd_pcap/rte_eth_pcap.c       |   22 ++++++++++----------
 lib/librte_pmd_ring/rte_eth_ring.c       |   32 +++++++++++++++-------------
 lib/librte_pmd_ring/rte_eth_ring.h       |    3 +-
 lib/librte_pmd_xenvirt/rte_eth_xenvirt.c |    2 +-
 6 files changed, 67 insertions(+), 32 deletions(-)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index 8011b8b..e5373fe 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -64,6 +64,7 @@
 #include <rte_mbuf.h>
 #include <rte_errno.h>
 #include <rte_spinlock.h>
+#include <rte_string_fns.h>
 
 #include "rte_ether.h"
 #include "rte_ethdev.h"
@@ -152,8 +153,21 @@ rte_eth_dev_data_alloc(void)
 				RTE_MAX_ETHPORTS * sizeof(*rte_eth_dev_data));
 }
 
+static int
+rte_eth_dev_name_unique(const char *name)
+{
+	unsigned i;
+
+	for (i = 0; i < nb_ports; i++) {
+		if (strcmp(rte_eth_devices[i].data->name, name) == 0)
+			return -1;
+	}
+
+	return 0;
+}
+
 struct rte_eth_dev *
-rte_eth_dev_allocate(void)
+rte_eth_dev_allocate(const char *name)
 {
 	struct rte_eth_dev *eth_dev;
 
@@ -165,23 +179,36 @@ rte_eth_dev_allocate(void)
 	if (rte_eth_dev_data == NULL)
 		rte_eth_dev_data_alloc();
 
+	if (rte_eth_dev_name_unique(name)) {
+		PMD_DEBUG_TRACE("Ethernet Device with name %s already allocated!\n");
+		return NULL;
+	}
+
 	eth_dev = &rte_eth_devices[nb_ports];
 	eth_dev->data = &rte_eth_dev_data[nb_ports];
+	rte_snprintf(eth_dev->data->name, sizeof(eth_dev->data->name),
+			"%s", name);
 	eth_dev->data->port_id = nb_ports++;
 	return eth_dev;
 }
 
 static int
 rte_eth_dev_init(struct rte_pci_driver *pci_drv,
-		 struct rte_pci_device *pci_dev)
+		struct rte_pci_device *pci_dev)
 {
 	struct eth_driver    *eth_drv;
 	struct rte_eth_dev *eth_dev;
+	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
+
 	int diag;
 
 	eth_drv = (struct eth_driver *)pci_drv;
 
-	eth_dev = rte_eth_dev_allocate();
+	/* Create unique ethdev name from pci address */
+	rte_snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "%d:%d.%d",
+			pci_dev->addr.bus, pci_dev->addr.devid, pci_dev->addr.function);
+
+	eth_dev = rte_eth_dev_allocate(ethdev_name);
 	if (eth_dev == NULL)
 		return -ENOMEM;
 
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 67eda50..27ed0ab 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -1233,6 +1233,8 @@ struct rte_eth_dev_sriov {
 };
 #define RTE_ETH_DEV_SRIOV(dev)         ((dev)->data->sriov)
 
+#define RTE_ETH_NAME_MAX_LEN (32)
+
 /**
  * @internal
  * The data part, with no function pointers, associated with each ethernet device.
@@ -1241,6 +1243,8 @@ struct rte_eth_dev_sriov {
  * processes in a multi-process configuration.
  */
 struct rte_eth_dev_data {
+	char name[RTE_ETH_NAME_MAX_LEN]; /**< Unique identifier name */
+
 	void **rx_queues; /**< Array of pointers to RX queues. */
 	void **tx_queues; /**< Array of pointers to TX queues. */
 	uint16_t nb_rx_queues; /**< Number of RX queues. */
@@ -1293,10 +1297,11 @@ extern uint8_t rte_eth_dev_count(void);
  * Allocates a new ethdev slot for an ethernet device and returns the pointer
  * to that slot for the driver to use.
  *
+ * @param	name	Unique identifier name for each Ethernet device
  * @return
  *   - Slot in the rte_dev_devices array for a new device;
  */
-struct rte_eth_dev *rte_eth_dev_allocate(void);
+struct rte_eth_dev *rte_eth_dev_allocate(const char *name);
 
 struct eth_driver;
 /**
diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.c b/lib/librte_pmd_pcap/rte_eth_pcap.c
index b3dbbda..12b7e0c 100644
--- a/lib/librte_pmd_pcap/rte_eth_pcap.c
+++ b/lib/librte_pmd_pcap/rte_eth_pcap.c
@@ -534,7 +534,7 @@ open_tx_iface(const char *key __rte_unused, const char *value, void *extra_args)
 
 
 static int
-rte_pmd_init_internals(const unsigned nb_rx_queues,
+rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues,
 		const unsigned nb_tx_queues,
 		const unsigned numa_node,
 		struct pmd_internals **internals,
@@ -558,20 +558,20 @@ rte_pmd_init_internals(const unsigned nb_rx_queues,
 	/* now do all data allocation - for eth_dev structure, dummy pci driver
 	 * and internal (private) data
 	 */
-	data = rte_zmalloc_socket(NULL, sizeof(*data), 0, numa_node);
+	data = rte_zmalloc_socket(name, sizeof(*data), 0, numa_node);
 	if (data == NULL)
 		goto error;
 
-	pci_dev = rte_zmalloc_socket(NULL, sizeof(*pci_dev), 0, numa_node);
+	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
 	if (pci_dev == NULL)
 		goto error;
 
-	*internals = rte_zmalloc_socket(NULL, sizeof(**internals), 0, numa_node);
+	*internals = rte_zmalloc_socket(name, sizeof(**internals), 0, numa_node);
 	if (*internals == NULL)
 		goto error;
 
 	/* reserve an ethdev entry */
-	*eth_dev = rte_eth_dev_allocate();
+	*eth_dev = rte_eth_dev_allocate(name);
 	if (*eth_dev == NULL)
 		goto error;
 
@@ -617,7 +617,7 @@ rte_pmd_init_internals(const unsigned nb_rx_queues,
 }
 
 static int
-rte_eth_from_pcaps_n_dumpers(pcap_t * const rx_queues[],
+rte_eth_from_pcaps_n_dumpers(const char *name, pcap_t * const rx_queues[],
 		const unsigned nb_rx_queues,
 		pcap_dumper_t * const tx_queues[],
 		const unsigned nb_tx_queues,
@@ -634,7 +634,7 @@ rte_eth_from_pcaps_n_dumpers(pcap_t * const rx_queues[],
 	if (tx_queues == NULL && nb_tx_queues > 0)
 		return -1;
 
-	if (rte_pmd_init_internals(nb_rx_queues, nb_tx_queues, numa_node,
+	if (rte_pmd_init_internals(name, nb_rx_queues, nb_tx_queues, numa_node,
 			&internals, &eth_dev, kvlist) < 0)
 		return -1;
 
@@ -652,7 +652,7 @@ rte_eth_from_pcaps_n_dumpers(pcap_t * const rx_queues[],
 }
 
 static int
-rte_eth_from_pcaps(pcap_t * const rx_queues[],
+rte_eth_from_pcaps(const char *name, pcap_t * const rx_queues[],
 		const unsigned nb_rx_queues,
 		pcap_t * const tx_queues[],
 		const unsigned nb_tx_queues,
@@ -669,7 +669,7 @@ rte_eth_from_pcaps(pcap_t * const rx_queues[],
 	if (tx_queues == NULL && nb_tx_queues > 0)
 		return -1;
 
-	if (rte_pmd_init_internals(nb_rx_queues, nb_tx_queues, numa_node,
+	if (rte_pmd_init_internals(name, nb_rx_queues, nb_tx_queues, numa_node,
 			&internals, &eth_dev, kvlist) < 0)
 		return -1;
 
@@ -760,10 +760,10 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
 		return -1;
 
 	if (using_dumpers)
-		return rte_eth_from_pcaps_n_dumpers(pcaps.pcaps, pcaps.num_of_rx,
+		return rte_eth_from_pcaps_n_dumpers(name, pcaps.pcaps, pcaps.num_of_rx,
 				dumpers.dumpers, dumpers.num_of_tx, numa_node, kvlist);
 
-	return rte_eth_from_pcaps(pcaps.pcaps, pcaps.num_of_rx, dumpers.pcaps,
+	return rte_eth_from_pcaps(name, pcaps.pcaps, pcaps.num_of_rx, dumpers.pcaps,
 			dumpers.num_of_tx, numa_node, kvlist);
 
 }
diff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c
index 10d4e24..f9174f1 100644
--- a/lib/librte_pmd_ring/rte_eth_ring.c
+++ b/lib/librte_pmd_ring/rte_eth_ring.c
@@ -219,7 +219,7 @@ static struct eth_dev_ops ops = {
 };
 
 int
-rte_eth_from_rings(struct rte_ring *const rx_queues[],
+rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		const unsigned nb_rx_queues,
 		struct rte_ring *const tx_queues[],
 		const unsigned nb_tx_queues,
@@ -243,20 +243,20 @@ rte_eth_from_rings(struct rte_ring *const rx_queues[],
 	/* now do all data allocation - for eth_dev structure, dummy pci driver
 	 * and internal (private) data
 	 */
-	data = rte_zmalloc_socket(NULL, sizeof(*data), 0, numa_node);
+	data = rte_zmalloc_socket(name, sizeof(*data), 0, numa_node);
 	if (data == NULL)
 		goto error;
 
-	pci_dev = rte_zmalloc_socket(NULL, sizeof(*pci_dev), 0, numa_node);
+	pci_dev = rte_zmalloc_socket(name, sizeof(*pci_dev), 0, numa_node);
 	if (pci_dev == NULL)
 		goto error;
 
-	internals = rte_zmalloc_socket(NULL, sizeof(*internals), 0, numa_node);
+	internals = rte_zmalloc_socket(name, sizeof(*internals), 0, numa_node);
 	if (internals == NULL)
 		goto error;
 
 	/* reserve an ethdev entry */
-	eth_dev = rte_eth_dev_allocate();
+	eth_dev = rte_eth_dev_allocate(name);
 	if (eth_dev == NULL)
 		goto error;
 
@@ -335,7 +335,7 @@ eth_dev_ring_create(const char *name, const unsigned numa_node,
 			return -1;
 	}
 
-	if (rte_eth_from_rings(rxtx, num_rings, rxtx, num_rings, numa_node))
+	if (rte_eth_from_rings(name, rxtx, num_rings, rxtx, num_rings, numa_node))
 		return -1;
 
 	return 0;
@@ -352,29 +352,31 @@ eth_dev_ring_pair_create(const char *name, const unsigned numa_node,
 	struct rte_ring *rx[RTE_PMD_RING_MAX_RX_RINGS];
 	struct rte_ring *tx[RTE_PMD_RING_MAX_TX_RINGS];
 	unsigned i;
-	char rng_name[RTE_RING_NAMESIZE];
+	char rx_rng_name[RTE_RING_NAMESIZE];
+	char tx_rng_name[RTE_RING_NAMESIZE];
 	unsigned num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
-		rte_snprintf(rng_name, sizeof(rng_name), "ETH_RX%u_%s", i, name);
+		rte_snprintf(rx_rng_name, sizeof(rx_rng_name), "ETH_RX%u_%s", i, name);
 		rx[i] = (action == DEV_CREATE) ?
-				rte_ring_create(rng_name, 1024, numa_node,
+				rte_ring_create(rx_rng_name, 1024, numa_node,
 						RING_F_SP_ENQ|RING_F_SC_DEQ) :
-				rte_ring_lookup(rng_name);
+				rte_ring_lookup(rx_rng_name);
 		if (rx[i] == NULL)
 			return -1;
-		rte_snprintf(rng_name, sizeof(rng_name), "ETH_TX%u_%s", i, name);
+		rte_snprintf(tx_rng_name, sizeof(tx_rng_name), "ETH_TX%u_%s", i, name);
 		tx[i] = (action == DEV_CREATE) ?
-				rte_ring_create(rng_name, 1024, numa_node,
+				rte_ring_create(tx_rng_name, 1024, numa_node,
 						RING_F_SP_ENQ|RING_F_SC_DEQ):
-				rte_ring_lookup(rng_name);
+				rte_ring_lookup(tx_rng_name);
 		if (tx[i] == NULL)
 			return -1;
 	}
 
-	if (rte_eth_from_rings(rx, num_rings, tx, num_rings, numa_node) ||
-			rte_eth_from_rings(tx, num_rings, rx, num_rings, numa_node) )
+	if (rte_eth_from_rings(rx_rng_name, rx, num_rings, tx, num_rings,
+			numa_node) || rte_eth_from_rings(tx_rng_name, tx, num_rings, rx,
+					num_rings, numa_node))
 		return -1;
 
 	return 0;
diff --git a/lib/librte_pmd_ring/rte_eth_ring.h b/lib/librte_pmd_ring/rte_eth_ring.h
index ef29344..e6ae19e 100644
--- a/lib/librte_pmd_ring/rte_eth_ring.h
+++ b/lib/librte_pmd_ring/rte_eth_ring.h
@@ -40,7 +40,8 @@ extern "C" {
 
 #include <rte_ring.h>
 
-int rte_eth_from_rings(struct rte_ring * const rx_queues[],
+int rte_eth_from_rings(const char *name,
+		struct rte_ring * const rx_queues[],
 		const unsigned nb_rx_queues,
 		struct rte_ring *const tx_queues[],
 		const unsigned nb_tx_queues,
diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c
index 7c4d3fe..a0b4bdd 100644
--- a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c
+++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c
@@ -647,7 +647,7 @@ eth_dev_xenvirt_create(const char *name, const char *params,
 		goto err;
 
 	/* reserve an ethdev entry */
-	eth_dev = rte_eth_dev_allocate();
+	eth_dev = rte_eth_dev_allocate(name);
 	if (eth_dev == NULL)
 		goto err;
 
-- 
1.7.0.7

  parent reply	other threads:[~2014-06-16 11:18 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-28 15:32 [PATCH 0/4] Link Bonding Library declan.doherty-ral2JQCrhuEAvxtiuMwx3w
     [not found] ` <cover.1401287412.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-05-28 15:32   ` [PATCH 1/4] " declan.doherty-ral2JQCrhuEAvxtiuMwx3w
     [not found]     ` <4d8e6bc2665fbaac641f0577714d7be9b0415d3c.1401287412.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-05-28 16:54       ` Shaw, Jeffrey B
     [not found]         ` <4032A54B6BB5F04B8C08B6CFF08C59285543C357-AtyAts71sc9Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-05-29 13:32           ` Doherty, Declan
2014-05-28 15:32   ` [PATCH 2/4] Link bonding unit tests declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-05-28 15:32   ` [PATCH 3/4] Link bonding integration into testpmd declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-05-28 15:32   ` [PATCH 4/4] Add Link Bonding Library to Doxygen declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-05-28 17:49   ` [PATCH 0/4] Link Bonding Library Neil Horman
     [not found]     ` <20140528174908.GB2648-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-05-29 10:33       ` Doherty, Declan
     [not found]         ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D3327C-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-05-29 11:33           ` Neil Horman
2014-05-29  3:23   ` Cao, Waterman
     [not found]     ` <AA3F441F262C58498CD6D0C1801DE7EB0AA89A63-0J0gbvR4kTggGBtAFL8yw7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-05-29 10:35       ` Doherty, Declan
2014-06-04 15:18   ` [PATCH v2 " declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-06-04 15:18   ` declan.doherty-ral2JQCrhuEAvxtiuMwx3w
     [not found]   ` <cover.1401891670.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-04 15:18     ` [PATCH v2 1/4] " declan.doherty-ral2JQCrhuEAvxtiuMwx3w
     [not found]       ` <e6e8ecba5e2ba9d1a0e5299e042e7c54757e8644.1401891670.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-05 15:15         ` Stephen Hemminger
     [not found]           ` <20140605081557.42a797e8-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2014-06-06  9:07             ` Doherty, Declan
     [not found]               ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D3737A-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-06 15:13                 ` Stephen Hemminger
2014-06-09 21:11         ` Eric Kinzie
     [not found]           ` <20140609211054.GA4853-5G/Vjf02Nsf/9pzu0YdTqQ@public.gmane.org>
2014-06-13 14:03             ` Doherty, Declan
2014-06-04 15:18     ` [PATCH v2 2/4] Link bonding unit tests, including: - code to generate packet bursts for testing rx and tx functionality of bonded device - virtual/stubbed out ethdev for use as slave ethdev in testing - checkpack fixes declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-06-04 15:18     ` [PATCH v2 1/4] Link Bonding Library declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-06-04 15:18     ` [PATCH v2 2/4] Link bonding unit tests, including: - code to generate packet bursts for testing rx and tx functionality of bonded device - virtual/stubbed out ethdev for use as slave ethdev in testing - checkpack fixes declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-06-04 15:18     ` [PATCH v2 3/4] Adding link bonding support to testpmd. - Includes the ability to create new bonded devices. - Add /remove bonding slave devices. - Interogate bonded device stats/configuration - Change bonding modes and select balance transmit polices declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-06-04 15:18     ` [PATCH v2 4/4] Add Link Bonding Library to Doxygen declan.doherty-ral2JQCrhuEAvxtiuMwx3w
2014-06-04 16:10     ` [PATCH v2 0/4] Link Bonding Library Doherty, Declan
2014-06-05  8:03     ` De Lara Guarch, Pablo
2014-06-05 11:03     ` Neil Horman
     [not found]       ` <20140605110340.GB20841-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-06-06  8:23         ` Doherty, Declan
     [not found]           ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D37331-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-06 14:54             ` Neil Horman
     [not found]               ` <20140606145426.GA2543-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-06-13 14:56                 ` Doherty, Declan
     [not found]                   ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D38DBF-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-13 15:11                     ` Neil Horman
2014-06-06  3:26     ` Cao, Waterman
2014-06-11 16:33     ` Thomas Monjalon
2014-06-13 14:08       ` Doherty, Declan
     [not found]         ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D38CDE-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-13 15:15           ` Thomas Monjalon
2014-06-13 14:41   ` [PATCH v3 0/5] Link Bonding PMD Library Declan Doherty
     [not found]   ` <cover.1402662300.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-13 14:41     ` [PATCH v3 1/5] " Declan Doherty
2014-06-13 14:41     ` [PATCH v3 2/5] Link Bonding PMD Library (librte_eal/librte_ether link bonding support changes) Declan Doherty
     [not found]       ` <258914f35917ae07dddc991ac9726542964dce44.1402662300.git.declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-13 16:08         ` Neil Horman
     [not found]           ` <20140613160807.GD22451-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-06-13 18:34             ` Doherty, Declan
     [not found]               ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D38EE9-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-13 19:38                 ` Neil Horman
     [not found]                   ` <20140613193815.GE22451-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-06-16  8:59                     ` Doherty, Declan
     [not found]                       ` <345C63BAECC1AD42A2EC8C63AFFC3ADC13D39383-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-16 11:07                         ` Neil Horman
     [not found]                           ` <20140616110758.GA15165-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-06-16 16:17                             ` Richardson, Bruce
     [not found]                               ` <59AF69C657FD0841A61C55336867B5B01AA368CE-kPTMFJFq+rELt2AQoY/u9bfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-16 17:47                                 ` Neil Horman
     [not found]                                   ` <20140616174746.GC15165-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-06-16 18:07                                     ` Richardson, Bruce
2014-06-16 18:09                                     ` Thomas Monjalon
2014-06-13 21:59         ` Stephen Hemminger
     [not found]           ` <20140613145918.5faebfde-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2014-06-16  7:59             ` Doherty, Declan
2014-06-13 14:42     ` [PATCH v3 3/5] Link Bonding PMD Library (Unit Test Suite) Declan Doherty
2014-06-13 14:42     ` [PATCH v3 4/5] Link Bonding PMD Library (testpmd link bonding API support) Declan Doherty
2014-06-13 14:42     ` [PATCH v3 5/5] Link Bonding PMD Library (Doxygen Additions) Declan Doherty
2014-06-13 15:20     ` [PATCH v3 0/5] Link Bonding PMD Library Neil Horman
2014-06-16 11:18     ` [PATCH v4 0/6] Link Bonding Library Declan Doherty
     [not found]       ` <1402917513-19495-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-18 16:14         ` [PATCH v5 " Declan Doherty
     [not found]           ` <1403108063-27169-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-18 16:18             ` Neil Horman
2014-06-24 14:52             ` [PATCH v6 " Declan Doherty
     [not found]               ` <1403621531-30487-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-24 16:03                 ` [PATCH v7 " Declan Doherty
     [not found]                   ` <1403625828-20956-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-25 20:07                     ` [PATCH v8 " Declan Doherty
     [not found]                       ` <1403726868-8161-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-26 16:02                         ` De Lara Guarch, Pablo
2014-06-26 23:57                         ` [PATCH v9 0/5] link bonding Thomas Monjalon
     [not found]                           ` <1403827075-9192-1-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-06-26 23:57                             ` [PATCH v9 1/5] bond: new link bonding library Thomas Monjalon
     [not found]                               ` <1403827075-9192-2-git-send-email-thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
2014-06-27  0:45                                 ` Thomas Monjalon
2014-06-26 23:57                             ` [PATCH v9 2/5] ethdev: add unique name to devices Thomas Monjalon
2014-06-26 23:57                             ` [PATCH v9 3/5] eal: support link bonding device initialization Thomas Monjalon
2014-06-26 23:57                             ` [PATCH v9 4/5] bond: unit tests Thomas Monjalon
2014-06-26 23:57                             ` [PATCH v9 5/5] bond: testpmd support Thomas Monjalon
2014-06-27 10:18                             ` [PATCH v10 0/5] link bonding Declan Doherty
     [not found]                               ` <1403864324-12022-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-27 20:58                                 ` Thomas Monjalon
2014-06-29 17:49                                 ` [PATCH v11 0/5] link bonding library Declan Doherty
     [not found]                                   ` <1404064161-26370-1-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-30  9:21                                     ` Thomas Monjalon
2014-06-30  9:28                                       ` Doherty, Declan
     [not found]                                         ` <345C63BAECC1AD42A2EC8C63AFFC3ADC2730631F-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-07-01 22:01                                           ` Thomas Monjalon
2014-06-29 17:49                                 ` [PATCH v11 1/5] bond: new " Declan Doherty
     [not found]                                   ` <1404064161-26370-2-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-30  9:13                                     ` Thomas Monjalon
2014-06-30 22:29                                     ` Robert Sanford
     [not found]                                       ` <CA+cr1cojs0sx5s1ohwVcdT6ojQ_7PEwEAqmtCca0LAz_jkvVdw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-01 14:16                                         ` Thomas Monjalon
2014-07-01 14:19                                         ` Doherty, Declan
     [not found]                                           ` <345C63BAECC1AD42A2EC8C63AFFC3ADC273077A5-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-07-01 14:26                                             ` Thomas Monjalon
2014-06-29 17:49                                 ` [PATCH v11 2/5] ethdev: add unique name to devices Declan Doherty
2014-06-29 17:49                                 ` [PATCH v11 3/5] eal: support link bonding device initialization Declan Doherty
2014-06-29 17:49                                 ` [PATCH v11 4/5] bond: unit tests Declan Doherty
     [not found]                                   ` <1404064161-26370-5-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-30  8:56                                     ` Thomas Monjalon
2014-06-29 17:49                                 ` [PATCH v11 5/5] bond: testpmd support Declan Doherty
2014-06-27 10:18                             ` [PATCH v10 1/5] bond: new link bonding library Declan Doherty
2014-06-27 10:18                             ` [PATCH v10 2/5] ethdev: add unique name to devices Declan Doherty
2014-06-27 10:18                             ` [PATCH v10 3/5] eal: support link bonding device initialization Declan Doherty
2014-06-27 10:18                             ` [PATCH v10 4/5] bond: unit tests Declan Doherty
2014-06-27 10:18                             ` [PATCH v10 5/5] bond: testpmd support Declan Doherty
2014-06-25 20:07                     ` [PATCH v8 1/6] Link Bonding Library (lib/librte_pmd_bond) Declan Doherty
2014-06-25 20:07                     ` [PATCH v8 2/6] Support for unique interface naming of pmds Declan Doherty
2014-06-25 20:07                     ` [PATCH v8 3/6] EAL support for link bonding device initialization Declan Doherty
2014-06-25 20:07                     ` [PATCH v8 4/6] Link bonding Unit Tests Declan Doherty
2014-06-25 20:07                     ` [PATCH v8 5/6] testpmd link bonding additions Declan Doherty
2014-06-25 20:07                     ` [PATCH v8 6/6] Link Bonding Library doxygen additions Declan Doherty
2014-06-24 16:03                 ` [PATCH v7 1/6] Link Bonding Library (lib/librte_pmd_bond) Declan Doherty
2014-06-24 16:03                 ` [PATCH v7 2/6] Support for unique interface naming of pmds Declan Doherty
2014-06-24 16:03                 ` [PATCH v7 3/6] EAL support for link bonding device initialization Declan Doherty
     [not found]                   ` <1403625828-20956-4-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-25 13:54                     ` Thomas Monjalon
2014-06-25 14:41                       ` Doherty, Declan
     [not found]                         ` <345C63BAECC1AD42A2EC8C63AFFC3ADC272FB41C-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-25 16:00                           ` Thomas Monjalon
2014-06-25 16:15                             ` Richardson, Bruce
2014-06-24 16:03                 ` [PATCH v7 4/6] Link bonding Unit Tests Declan Doherty
2014-06-24 16:03                 ` [PATCH v7 5/6] testpmd link bonding additions Declan Doherty
2014-06-24 16:03                 ` [PATCH v7 6/6] Link Bonding Library doxygen additions Declan Doherty
     [not found]                   ` <1403625828-20956-7-git-send-email-declan.doherty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2014-06-25 13:43                     ` Thomas Monjalon
2014-06-25 14:19                       ` Doherty, Declan
     [not found]                         ` <345C63BAECC1AD42A2EC8C63AFFC3ADC272FA3EA-kPTMFJFq+rF9qrmMLTLiibfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2014-06-25 14:23                           ` Thomas Monjalon
2014-06-24 14:52             ` [PATCH v6 1/6] Link Bonding Library (lib/librte_pmd_bond) Declan Doherty
2014-06-24 14:52             ` [PATCH v6 2/6] Support for unique interface naming of pmds Declan Doherty
2014-06-24 14:52             ` [PATCH v6 3/6] EAL support for link bonding device initialization Declan Doherty
2014-06-24 14:52             ` [PATCH v6 4/6] Link bonding Unit Tests Declan Doherty
2014-06-24 14:52             ` [PATCH v6 5/6] testpmd link bonding additions Declan Doherty
2014-06-24 14:52             ` [PATCH v6 6/6] Link Bonding Library doxygen additions Declan Doherty
2014-06-18 16:14         ` [PATCH v5 1/6] Link Bonding Library (lib/librte_pmd_bond) Declan Doherty
2014-06-18 16:14         ` [PATCH v5 2/6] Support for unique interface naming of pmds Declan Doherty
2014-06-18 16:14         ` [PATCH v5 3/6] EAL support for link bonding device initialization Declan Doherty
2014-06-18 16:14         ` [PATCH v5 4/6] Link bonding Unit Tests Declan Doherty
2014-06-18 16:14         ` [PATCH v5 5/6] testpmd link bonding additions Declan Doherty
2014-06-18 16:14         ` [PATCH v5 6/6] Link Bonding Library doxygen additions Declan Doherty
2014-06-16 11:18     ` [PATCH v4 1/6] Link Bonding Library (lib/librte_pmd_bond) initial release with support for Mode 0 - Round Robin Mode 1 - Active Backup Mode 2 - Balance -> Supports 3 transmit polices (layer 2, layer 2+3, la Mode 3 - Broadcast Declan Doherty
2014-06-16 11:18     ` Declan Doherty [this message]
2014-06-16 11:18     ` [PATCH v4 3/6] EAL support for link bonding device initialization Declan Doherty
2014-06-16 11:18     ` [PATCH v4 4/6] Link bonding Unit Tests Declan Doherty
2014-06-16 11:18     ` [PATCH v4 5/6] testpmd link bonding additions Declan Doherty
2014-06-16 11:18     ` [PATCH v4 6/6] Link Bonding Library doxygen additions Declan Doherty

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=1402917513-19495-3-git-send-email-declan.doherty@intel.com \
    --to=declan.doherty-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.