[dpdk-dev] [PATCH v3 1/3] app/flow-perf: support meter policy API

Thomas Monjalon thomas at monjalon.net
Fri Nov 5 11:34:18 CET 2021


05/11/2021 11:24, Rongwei Liu:
> HI Tomas:
> 	Flow-perf application run-time options are growing quickly and some of them are a little complex.
> 	Under current architecture, I don't find a valid way to reduce the indention level unless maintainer agree to simply the logic.

Trust checkpatch, it is possible.
One basic solution is to have sub-functions.

Please do not top-post.

> 	For the fill_actions() function, I will rebase it once our github branch updated.
> 	It should be something like:
> 
> > > +             fill_actions(actions[i], all_actions[i], 0, 0, 0,
> > > +                          0, 0, 0, unique_data, rx_queues_count, dst_port);
> 
> BR
> Rongwei
> 
> > -----Original Message-----
> > From: Thomas Monjalon <thomas at monjalon.net>
> > Sent: Friday, November 5, 2021 5:58 PM
> > To: Wisam Monther <wisamm at nvidia.com>; Rongwei Liu
> > <rongweil at nvidia.com>
> > Cc: Matan Azrad <matan at nvidia.com>; Slava Ovsiienko
> > <viacheslavo at nvidia.com>; Ori Kam <orika at nvidia.com>; dev at dpdk.org;
> > Raslan Darawsheh <rasland at nvidia.com>; Haifei Luo <haifeil at nvidia.com>;
> > Jiawei(Jonny) Wang <jiaweiw at nvidia.com>
> > Subject: Re: [dpdk-dev] [PATCH v3 1/3] app/flow-perf: support meter policy
> > API
> > 
> > External email: Use caution opening links or attachments
> > 
> > 
> > 28/10/2021 05:25, Rongwei Liu:
> > > @@ -854,6 +862,46 @@ args_parse(int argc, char **argv)
> > >                                               RTE_MAX_LCORE);
> > >                               }
> > >                       }
> > > +                     if (strcmp(lgopts[opt_idx].name, "policy-mtr") == 0) {
> > > +                             j = 0;
> > > +                             k = 0;
> > > +                             arg = optarg;
> > > +                             policy_mtr = true;
> > > +                             token = strsep(&arg, ":\0");
> > > +                             while (token != NULL && j < RTE_COLORS) {
> > > +                                     actions_str[j++] = token;
> > > +                                     token = strsep(&arg, ":\0");
> > > +                             }
> > > +                             j = 0;
> > > +                             token = strtok(actions_str[0], ",\0");
> > > +                             while (token == NULL && j < RTE_COLORS - 1)
> > > +                                     token = strtok(actions_str[++j], ",\0");
> > > +                             while (j < RTE_COLORS && token != NULL) {
> > > +                                     for (i = 0;
> > > +                                          i < RTE_DIM(flow_options); i++) {
> > > +                                             if (!strcmp(token,
> > > +                                                 flow_options[i].str)) {
> > > +                                                     all_actions[j][k++] =
> > > +                                                     flow_options[i].mask;
> > > +                                                     break;
> > > +                                             }
> > > +                                     }
> > > +                                     /* Reached last item with no match */
> > > +                                     if (i >= RTE_DIM(flow_options)) {
> > > +                                             fprintf(stderr,
> > > +                                                     "Invalid actions "
> > > +                                                     "item: %s\n", token);
> > > +                                             usage(argv[0]);
> > > +                                             rte_exit(EXIT_SUCCESS, "Invalid actions item\n");
> > > +                                     }
> > > +                                     token = strtok(NULL, ",\0");
> > > +                                     while (!token && j < RTE_COLORS - 1) {
> > > +                                             token = strtok(actions_str[++j],
> > > +                                                             ",\0");
> > > +                                             k = 0;
> > > +                                     }
> > > +                             }
> > > +                     }
> > 
> > Could we avoid having so many indents?
> > Checkpatch suggest considering a refactoring.
> > 
> > [...]
> > > +             fill_actions(actions[i], all_actions[i], 0, 0, 0,
> > > +                          0, 0, 0, unique_data, rx_queues_count);
> > 
> > error: too few arguments to function ‘fill_actions’
> > 
> > That's a rebase issue because I merged first the patch
> > "app/flow-perf: add destination ports parameter"
> > 
> > 
> 
> 







More information about the dev mailing list