DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 03/22] net/pcap: reorganize private structs
Date: Fri, 26 Aug 2016 12:17:40 +0100	[thread overview]
Message-ID: <1472210279-8286-4-git-send-email-ferruh.yigit@intel.com> (raw)
In-Reply-To: <1472210279-8286-1-git-send-email-ferruh.yigit@intel.com>

struct rx_pcaps and tx_pcaps used to point parsed devargs, but it is not
clear with current names.

Merged both into single struct and modified struct name and field names.

Functionality not changed, only struct names.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/pcap/rte_eth_pcap.c | 123 +++++++++++++++++++---------------------
 1 file changed, 59 insertions(+), 64 deletions(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index 69d9bc9..3493897 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -87,21 +87,6 @@ struct pcap_tx_queue {
 	char type[ETH_PCAP_ARG_MAXLEN];
 };
 
-struct rx_pcaps {
-	unsigned num_of_rx;
-	pcap_t *pcaps[RTE_PMD_PCAP_MAX_QUEUES];
-	const char *names[RTE_PMD_PCAP_MAX_QUEUES];
-	const char *types[RTE_PMD_PCAP_MAX_QUEUES];
-};
-
-struct tx_pcaps {
-	unsigned num_of_tx;
-	pcap_dumper_t *dumpers[RTE_PMD_PCAP_MAX_QUEUES];
-	pcap_t *pcaps[RTE_PMD_PCAP_MAX_QUEUES];
-	const char *names[RTE_PMD_PCAP_MAX_QUEUES];
-	const char *types[RTE_PMD_PCAP_MAX_QUEUES];
-};
-
 struct pmd_internals {
 	struct pcap_rx_queue rx_queue[RTE_PMD_PCAP_MAX_QUEUES];
 	struct pcap_tx_queue tx_queue[RTE_PMD_PCAP_MAX_QUEUES];
@@ -109,6 +94,16 @@ struct pmd_internals {
 	int single_iface;
 };
 
+struct pmd_devargs {
+	unsigned num_of_queue;
+	struct devargs_queue {
+		pcap_dumper_t *dumper;
+		pcap_t *pcap;
+		const char *name;
+		const char *type;
+	} queue[RTE_PMD_PCAP_MAX_QUEUES];
+};
+
 const char *valid_arguments[] = {
 	ETH_PCAP_RX_PCAP_ARG,
 	ETH_PCAP_TX_PCAP_ARG,
@@ -627,16 +622,16 @@ open_rx_pcap(const char *key, const char *value, void *extra_args)
 {
 	unsigned i;
 	const char *pcap_filename = value;
-	struct rx_pcaps *pcaps = extra_args;
+	struct pmd_devargs *rx = extra_args;
 	pcap_t *pcap = NULL;
 
-	for (i = 0; i < pcaps->num_of_rx; i++) {
+	for (i = 0; i < rx->num_of_queue; i++) {
 		if (open_single_rx_pcap(pcap_filename, &pcap) < 0)
 			return -1;
 
-		pcaps->pcaps[i] = pcap;
-		pcaps->names[i] = pcap_filename;
-		pcaps->types[i] = key;
+		rx->queue[i].pcap = pcap;
+		rx->queue[i].name = pcap_filename;
+		rx->queue[i].type = key;
 	}
 
 	return 0;
@@ -661,16 +656,16 @@ open_tx_pcap(const char *key, const char *value, void *extra_args)
 {
 	unsigned i;
 	const char *pcap_filename = value;
-	struct tx_pcaps *dumpers = extra_args;
+	struct pmd_devargs *dumpers = extra_args;
 	pcap_dumper_t *dumper;
 
-	for (i = 0; i < dumpers->num_of_tx; i++) {
+	for (i = 0; i < dumpers->num_of_queue; i++) {
 		if (open_single_tx_pcap(pcap_filename, &dumper) < 0)
 			return -1;
 
-		dumpers->dumpers[i] = dumper;
-		dumpers->names[i] = pcap_filename;
-		dumpers->types[i] = key;
+		dumpers->queue[i].dumper = dumper;
+		dumpers->queue[i].name = pcap_filename;
+		dumpers->queue[i].type = key;
 	}
 
 	return 0;
@@ -723,15 +718,15 @@ static inline int
 open_rx_tx_iface(const char *key, const char *value, void *extra_args)
 {
 	const char *iface = value;
-	struct rx_pcaps *pcaps = extra_args;
+	struct pmd_devargs *tx = extra_args;
 	pcap_t *pcap = NULL;
 
 	if (open_single_iface(iface, &pcap) < 0)
 		return -1;
 
-	pcaps->pcaps[0] = pcap;
-	pcaps->names[0] = iface;
-	pcaps->types[0] = key;
+	tx->queue[0].pcap = pcap;
+	tx->queue[0].name = iface;
+	tx->queue[0].type = key;
 
 	return 0;
 }
@@ -744,15 +739,15 @@ open_rx_iface(const char *key, const char *value, void *extra_args)
 {
 	unsigned i;
 	const char *iface = value;
-	struct rx_pcaps *pcaps = extra_args;
+	struct pmd_devargs *rx = extra_args;
 	pcap_t *pcap = NULL;
 
-	for (i = 0; i < pcaps->num_of_rx; i++) {
+	for (i = 0; i < rx->num_of_queue; i++) {
 		if (open_single_iface(iface, &pcap) < 0)
 			return -1;
-		pcaps->pcaps[i] = pcap;
-		pcaps->names[i] = iface;
-		pcaps->types[i] = key;
+		rx->queue[i].pcap = pcap;
+		rx->queue[i].name = iface;
+		rx->queue[i].type = key;
 	}
 
 	return 0;
@@ -766,15 +761,15 @@ open_tx_iface(const char *key, const char *value, void *extra_args)
 {
 	unsigned i;
 	const char *iface = value;
-	struct tx_pcaps *pcaps = extra_args;
+	struct pmd_devargs *tx = extra_args;
 	pcap_t *pcap;
 
-	for (i = 0; i < pcaps->num_of_tx; i++) {
+	for (i = 0; i < tx->num_of_queue; i++) {
 		if (open_single_iface(iface, &pcap) < 0)
 			return -1;
-		pcaps->pcaps[i] = pcap;
-		pcaps->names[i] = iface;
-		pcaps->types[i] = key;
+		tx->queue[i].pcap = pcap;
+		tx->queue[i].name = iface;
+		tx->queue[i].type = key;
 	}
 
 	return 0;
@@ -874,8 +869,8 @@ error:
 }
 
 static int
-rte_eth_from_pcaps_common(const char *name, struct rx_pcaps *rx_queues,
-		const unsigned nb_rx_queues, struct tx_pcaps *tx_queues,
+rte_eth_from_pcaps_common(const char *name, struct pmd_devargs *rx_queues,
+		const unsigned nb_rx_queues, struct pmd_devargs *tx_queues,
 		const unsigned nb_tx_queues, const unsigned numa_node,
 		struct rte_kvargs *kvlist, struct pmd_internals **internals,
 		struct rte_eth_dev **eth_dev)
@@ -893,22 +888,22 @@ rte_eth_from_pcaps_common(const char *name, struct rx_pcaps *rx_queues,
 		return -1;
 
 	for (i = 0; i < nb_rx_queues; i++) {
-		(*internals)->rx_queue[i].pcap = rx_queues->pcaps[i];
+		(*internals)->rx_queue[i].pcap = rx_queues->queue[i].pcap;
 		snprintf((*internals)->rx_queue[i].name,
 			sizeof((*internals)->rx_queue[i].name), "%s",
-			rx_queues->names[i]);
+			rx_queues->queue[i].name);
 		snprintf((*internals)->rx_queue[i].type,
 			sizeof((*internals)->rx_queue[i].type), "%s",
-			rx_queues->types[i]);
+			rx_queues->queue[i].type);
 	}
 	for (i = 0; i < nb_tx_queues; i++) {
-		(*internals)->tx_queue[i].dumper = tx_queues->dumpers[i];
+		(*internals)->tx_queue[i].dumper = tx_queues->queue[i].dumper;
 		snprintf((*internals)->tx_queue[i].name,
 			sizeof((*internals)->tx_queue[i].name), "%s",
-			tx_queues->names[i]);
+			tx_queues->queue[i].name);
 		snprintf((*internals)->tx_queue[i].type,
 			sizeof((*internals)->tx_queue[i].type), "%s",
-			tx_queues->types[i]);
+			tx_queues->queue[i].type);
 	}
 
 	return 0;
@@ -916,9 +911,9 @@ rte_eth_from_pcaps_common(const char *name, struct rx_pcaps *rx_queues,
 
 static int
 rte_eth_from_pcaps_n_dumpers(const char *name,
-		struct rx_pcaps *rx_queues,
+		struct pmd_devargs *rx_queues,
 		const unsigned nb_rx_queues,
-		struct tx_pcaps *tx_queues,
+		struct pmd_devargs *tx_queues,
 		const unsigned nb_tx_queues,
 		const unsigned numa_node,
 		struct rte_kvargs *kvlist)
@@ -945,9 +940,9 @@ rte_eth_from_pcaps_n_dumpers(const char *name,
 
 static int
 rte_eth_from_pcaps(const char *name,
-		struct rx_pcaps *rx_queues,
+		struct pmd_devargs *rx_queues,
 		const unsigned nb_rx_queues,
-		struct tx_pcaps *tx_queues,
+		struct pmd_devargs *tx_queues,
 		const unsigned nb_tx_queues,
 		const unsigned numa_node,
 		struct rte_kvargs *kvlist,
@@ -980,8 +975,8 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
 	unsigned numa_node, using_dumpers = 0;
 	int ret;
 	struct rte_kvargs *kvlist;
-	struct rx_pcaps pcaps = {0};
-	struct tx_pcaps dumpers = {0};
+	struct pmd_devargs pcaps = {0};
+	struct pmd_devargs dumpers = {0};
 
 	RTE_LOG(INFO, PMD, "Initializing pmd_pcap for %s\n", name);
 
@@ -1005,9 +1000,9 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
 				&open_rx_tx_iface, &pcaps);
 		if (ret < 0)
 			goto free_kvlist;
-		dumpers.pcaps[0] = pcaps.pcaps[0];
-		dumpers.names[0] = pcaps.names[0];
-		dumpers.types[0] = pcaps.types[0];
+		dumpers.queue[0].pcap = pcaps.queue[0].pcap;
+		dumpers.queue[0].name = pcaps.queue[0].name;
+		dumpers.queue[0].type = pcaps.queue[0].type;
 		ret = rte_eth_from_pcaps(name, &pcaps, 1, &dumpers, 1,
 				numa_node, kvlist, 1);
 		goto free_kvlist;
@@ -1017,11 +1012,11 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
 	 * We check whether we want to open a RX stream from a real NIC or a
 	 * pcap file
 	 */
-	if ((pcaps.num_of_rx = rte_kvargs_count(kvlist, ETH_PCAP_RX_PCAP_ARG))) {
+	if ((pcaps.num_of_queue = rte_kvargs_count(kvlist, ETH_PCAP_RX_PCAP_ARG))) {
 		ret = rte_kvargs_process(kvlist, ETH_PCAP_RX_PCAP_ARG,
 				&open_rx_pcap, &pcaps);
 	} else {
-		pcaps.num_of_rx = rte_kvargs_count(kvlist,
+		pcaps.num_of_queue = rte_kvargs_count(kvlist,
 				ETH_PCAP_RX_IFACE_ARG);
 		ret = rte_kvargs_process(kvlist, ETH_PCAP_RX_IFACE_ARG,
 				&open_rx_iface, &pcaps);
@@ -1034,13 +1029,13 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
 	 * We check whether we want to open a TX stream to a real NIC or a
 	 * pcap file
 	 */
-	if ((dumpers.num_of_tx = rte_kvargs_count(kvlist,
+	if ((dumpers.num_of_queue = rte_kvargs_count(kvlist,
 			ETH_PCAP_TX_PCAP_ARG))) {
 		ret = rte_kvargs_process(kvlist, ETH_PCAP_TX_PCAP_ARG,
 				&open_tx_pcap, &dumpers);
 		using_dumpers = 1;
 	} else {
-		dumpers.num_of_tx = rte_kvargs_count(kvlist,
+		dumpers.num_of_queue = rte_kvargs_count(kvlist,
 				ETH_PCAP_TX_IFACE_ARG);
 		ret = rte_kvargs_process(kvlist, ETH_PCAP_TX_IFACE_ARG,
 				&open_tx_iface, &dumpers);
@@ -1050,11 +1045,11 @@ rte_pmd_pcap_devinit(const char *name, const char *params)
 		goto free_kvlist;
 
 	if (using_dumpers)
-		ret = rte_eth_from_pcaps_n_dumpers(name, &pcaps, pcaps.num_of_rx,
-				&dumpers, dumpers.num_of_tx, numa_node, kvlist);
+		ret = rte_eth_from_pcaps_n_dumpers(name, &pcaps, pcaps.num_of_queue,
+				&dumpers, dumpers.num_of_queue, numa_node, kvlist);
 	else
-		ret = rte_eth_from_pcaps(name, &pcaps, pcaps.num_of_rx, &dumpers,
-			dumpers.num_of_tx, numa_node, kvlist, 0);
+		ret = rte_eth_from_pcaps(name, &pcaps, pcaps.num_of_queue, &dumpers,
+			dumpers.num_of_queue, numa_node, kvlist, 0);
 
 free_kvlist:
 	rte_kvargs_free(kvlist);
-- 
2.7.4

  parent reply	other threads:[~2016-08-26 11:19 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-26 11:17 [dpdk-dev] [PATCH 00/22] pcap pmd improvements Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 01/22] net/pcap: convert config option to a macro Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 02/22] net/pcap: use macros for param string Ferruh Yigit
2016-08-26 11:17 ` Ferruh Yigit [this message]
2016-08-26 11:17 ` [dpdk-dev] [PATCH 04/22] net/pcap: add checks for max queue number Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 05/22] net/pcap: update function to reuse it Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 06/22] net/pcap: don't carry numa_node argument Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 07/22] net/pcap: don't carry kvlist argument Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 08/22] net/pcap: move comment to correct place Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 09/22] net/pcap: remove duplicated max queue number check Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 10/22] net/pcap: use single_iface variable instead of hardcoded Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 11/22] net/pcap: group stats related fields into a struct Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 12/22] net/pcap: make const array static Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 13/22] net/pcap: reorder header files Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 14/22] net/pcap: reorder functions Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 15/22] net/pcap: update how single iface handled Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 16/22] net/pcap: remove unnecessary check Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 17/22] net/pcap: remove redundant assignment Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 18/22] net/pcap: simplify function Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 19/22] net/pcap: fix missing Tx iface assignment Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 20/22] net/pcap: coding convention updates Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 21/22] net/pcap: remove rte prefix from static functions Ferruh Yigit
2016-08-26 11:17 ` [dpdk-dev] [PATCH 22/22] net/pcap: fix checkpatch warnings Ferruh Yigit
2016-08-26 17:38 ` [dpdk-dev] [PATCH 00/22] pcap pmd improvements Stephen Hemminger
2016-09-19 16:42   ` Bruce Richardson

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=1472210279-8286-4-git-send-email-ferruh.yigit@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=dev@dpdk.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 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).