[dpdk-dev] [PATCH v2 2/2] testpmd: add ability to set tx IP and UDP parameters

Stephen Hemminger stephen at networkplumber.org
Mon Jun 18 21:31:05 CEST 2018


On Thu, 14 Jun 2018 10:30:21 +0000
"Iremonger, Bernard" <bernard.iremonger at intel.com> wrote:

> Hi Stephen,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Stephen
> > Hemminger
> > Sent: Monday, June 11, 2018 7:25 PM
> > To: dev at dpdk.org
> > Cc: Stephen Hemminger <stephen at networkplumber.org>
> > 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 <stephen at networkplumber.org>
> > ---
> >  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 <stdint.h>
> >  #include <unistd.h>
> >  #include <inttypes.h>
> > +#include <arpa/inet.h>
> > 
> >  #include <rte_common.h>
> >  #include <rte_byteorder.h>
> > @@ -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.




More information about the dev mailing list