From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH v2 2/2] testpmd: add ability to set tx IP and UDP parameters Date: Mon, 18 Jun 2018 12:31:05 -0700 Message-ID: <20180618123105.10bed42d@xeon-e3> References: <20180611182526.32327-1-stephen@networkplumber.org> <20180611182526.32327-3-stephen@networkplumber.org> <8CEF83825BEC744B83065625E567D7C260CB34E5@IRSMSX108.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: "dev@dpdk.org" To: "Iremonger, Bernard" Return-path: Received: from mail-pf0-f196.google.com (mail-pf0-f196.google.com [209.85.192.196]) by dpdk.org (Postfix) with ESMTP id 83F072BF5 for ; Mon, 18 Jun 2018 21:31:14 +0200 (CEST) Received: by mail-pf0-f196.google.com with SMTP id a22-v6so8661824pfo.12 for ; Mon, 18 Jun 2018 12:31:14 -0700 (PDT) In-Reply-To: <8CEF83825BEC744B83065625E567D7C260CB34E5@IRSMSX108.ger.corp.intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Thu, 14 Jun 2018 10:30:21 +0000 "Iremonger, Bernard" wrote: > Hi Stephen, > > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Stephen > > Hemminger > > Sent: Monday, June 11, 2018 7:25 PM > > To: dev@dpdk.org > > Cc: Stephen Hemminger > > Subject: [dpdk-dev] [PATCH v2 2/2] testpmd: add ability to set tx IP and UDP > > parameters > > > > Allow user to override the hard coded IP address and UDP port values in Tx > > only test. > > > > Signed-off-by: Stephen Hemminger > > --- > > app/test-pmd/parameters.c | 49 +++++++++++++++++++++++++++ > > app/test-pmd/testpmd.h | 6 ++++ > > app/test-pmd/txonly.c | 16 ++++----- > > doc/guides/testpmd_app_ug/run_app.rst | 9 +++++ > > 4 files changed, 72 insertions(+), 8 deletions(-) > > > > diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index > > 75807623c719..6d666e088fd9 100644 > > --- a/app/test-pmd/parameters.c > > +++ b/app/test-pmd/parameters.c > > @@ -19,6 +19,7 @@ > > #include > > #include > > #include > > +#include > > > > #include > > #include > > @@ -65,6 +66,7 @@ usage(char* progname) > > #ifdef RTE_LIBRTE_CMDLINE > > "--eth-peers-configfile= | " > > "--eth-peer=X,M:M:M:M:M:M | " > > + "--tx-ip=SRC,DST | --tx-udp=PORT | " > > #endif > > "--pkt-filter-mode= |" > > "--rss-ip | --rss-udp | " > > @@ -625,6 +627,8 @@ launch_args_parse(int argc, char** argv) > > { "vxlan-gpe-port", 1, 0, 0 }, > > { "mlockall", 0, 0, 0 }, > > { "no-mlockall", 0, 0, 0 }, > > + { "tx-ip", 1, 0, 0 }, > > + { "tx-udp", 1, 0, 0 }, > > { 0, 0, 0, 0 }, > > }; > > > > @@ -717,6 +721,51 @@ launch_args_parse(int argc, char** argv) > > nb_peer_eth_addrs++; > > } > > #endif > > + if (!strcmp(lgopts[opt_idx].name, "tx-ip")) { > > + struct in_addr in; > > + char *end; > > + > > + end = strchr(optarg, ','); > > + if (end == optarg || !end) > > + rte_exit(EXIT_FAILURE, > > + "Invalid tx-ip: %s", optarg); > > + > > + *end++ = 0; > > + if (inet_aton(optarg, &in) == 0) > > + rte_exit(EXIT_FAILURE, > > + "Invalid source IP address: > > %s\n", optarg); > > Line over 80 characters should be fixed. > > > + tx_ip_src_addr = > > rte_be_to_cpu_32(in.s_addr); > > + > > + if (inet_aton(end, &in) == 0) > > + rte_exit(EXIT_FAILURE, > > + "Invalid destination IP > > address: %s\n", optarg); > > Line over 80 characters should be fixed. > > > + tx_ip_dst_addr = > > rte_be_to_cpu_32(in.s_addr); > > + } > > + if (!strcmp(lgopts[opt_idx].name, "tx-udp")) { > > + char *end = NULL; > > + > > + errno = 0; > > + n = strtoul(optarg, &end, 10); > > + if (errno != 0 || end == optarg || n > > > UINT16_MAX || > > Line over 80 characters should be fixed. I don't want to get into major code restructuring, just to deal with existing parsing. The 80 limit is really too small.