On Thu, 14 Jun 2018 10:30:21 +0000 "Iremonger, Bernard" <bernard.iremon...@intel.com> wrote:
> Hi Stephen, > > > -----Original Message----- > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Stephen > > Hemminger > > Sent: Monday, June 11, 2018 7:25 PM > > To: dev@dpdk.org > > Cc: Stephen Hemminger <step...@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 <step...@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.