On 4/5/20 10:56 AM, jer...@marvell.com wrote: > From: Nithin Dabilpuram <ndabilpu...@marvell.com> > > Add graph based l3fwd application skeleton with cmdline > parsing support inline with normal l3fwd. > > Signed-off-by: Nithin Dabilpuram <ndabilpu...@marvell.com> [...] > +static int > +parse_config(const char *q_arg) > +{ > + enum fieldnames { FLD_PORT = 0, FLD_QUEUE, FLD_LCORE, _NUM_FLD }; > + unsigned long int_fld[_NUM_FLD]; > + const char *p, *p0 = q_arg; > + char *str_fld[_NUM_FLD]; > + uint32_t size; > + char s[256]; > + char *end; > + int i; > + > + nb_lcore_params = 0; > + > + while ((p = strchr(p0, '(')) != NULL) { > + ++p; > + p0 = strchr(p, ')'); > + if (p0 == NULL) > + return -1; > + > + size = p0 - p; > + if (size >= sizeof(s)) > + return -1; > + > + snprintf(s, sizeof(s), "%.*s", size, p);
Could I ask to make this function to be the same as final versions of l2fwd and l2fwd-event that were recently under review? There were couple simple comments there and they apply here also. > + if (rte_strsplit(s, sizeof(s), str_fld, _NUM_FLD, ',') != > + _NUM_FLD) > + return -1; > + for (i = 0; i < _NUM_FLD; i++) { > + errno = 0; > + int_fld[i] = strtoul(str_fld[i], &end, 0); > + if (errno != 0 || end == str_fld[i] || int_fld[i] > 255) > + return -1; > + } > + if (nb_lcore_params >= MAX_LCORE_PARAMS) { > + printf("Exceeded max number of lcore params: %hu\n", > + nb_lcore_params); > + return -1; > + } > + lcore_params_array[nb_lcore_params].port_id = > + (uint8_t)int_fld[FLD_PORT]; > + lcore_params_array[nb_lcore_params].queue_id = > + (uint8_t)int_fld[FLD_QUEUE]; > + lcore_params_array[nb_lcore_params].lcore_id = > + (uint8_t)int_fld[FLD_LCORE]; > + ++nb_lcore_params; > + } > + lcore_params = lcore_params_array; > + > + return 0; > +} With regards Andrzej Ostruszka