From patchwork Thu Jul 21 17:22:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ferruh Yigit X-Patchwork-Id: 14969 X-Patchwork-Delegate: bruce.richardson@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 1E9BA5691; Thu, 21 Jul 2016 19:23:29 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 58D165691 for ; Thu, 21 Jul 2016 19:23:27 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 21 Jul 2016 10:23:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,400,1464678000"; d="scan'208";a="999941396" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga001.jf.intel.com with ESMTP; 21 Jul 2016 10:23:25 -0700 Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com [10.237.217.46]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id u6LHNOJa016712; Thu, 21 Jul 2016 18:23:24 +0100 Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id u6LHNOXE026197; Thu, 21 Jul 2016 18:23:24 +0100 Received: (from fyigit@localhost) by sivswdev02.ir.intel.com with id u6LHNOdZ026192; Thu, 21 Jul 2016 18:23:24 +0100 X-Authentication-Warning: sivswdev02.ir.intel.com: fyigit set sender to ferruh.yigit@intel.com using -f From: Ferruh Yigit To: dev@dpdk.org Cc: Nicolas Pernas Maradei Date: Thu, 21 Jul 2016 18:22:42 +0100 Message-Id: <1469121780-26099-4-git-send-email-ferruh.yigit@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1469121780-26099-1-git-send-email-ferruh.yigit@intel.com> References: <1469121780-26099-1-git-send-email-ferruh.yigit@intel.com> Subject: [dpdk-dev] [RFC 03/21] net/pcap: reorganize private structs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- 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 877e4c2..34c779a 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -85,21 +85,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]; @@ -107,6 +92,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, @@ -625,16 +620,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; @@ -659,16 +654,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; @@ -721,15 +716,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; } @@ -742,15 +737,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; @@ -764,15 +759,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; @@ -872,8 +867,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) @@ -891,22 +886,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; @@ -914,9 +909,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) @@ -943,9 +938,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, @@ -978,8 +973,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); @@ -1003,9 +998,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; @@ -1015,11 +1010,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); @@ -1032,13 +1027,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); @@ -1048,11 +1043,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);