[dpdk-dev] [PATCH 3/3] app/testpmd: changed example to parse options from cfg file
Wu, Jingjing
jingjing.wu at intel.com
Tue Jun 20 04:13:37 CEST 2017
> +
> +#ifdef RTE_LIBRTE_CFGFILE
> +/* Load config file path from command line */ static char *
> +cfgfile_load_path(int argc, char **argv) {
> + int i;
> +
> + for (i = 0; i < argc; i++) {
> + if (!strcmp("--cfgfile-path", argv[i])) {
> + if (i < argc)
> + return strdup(argv[i+1]);
> + }
> + }
> + return 0;
> +}
> +#endif
> +
It is a little confused. Is the cfgfile-path is application's argument or EAL's?
Where is it supposed to be located?
> int
> main(int argc, char** argv)
> {
> int diag;
> uint8_t port_id;
> + struct rte_cfgfile *cfg = NULL;
> + char *config_file = NULL;
>
> signal(SIGINT, signal_handler);
> signal(SIGTERM, signal_handler);
>
> +#ifdef RTE_LIBRTE_CFGFILE
> + /* load --cfgfile-path argument from argv */
> + config_file = cfgfile_load_path(argc, argv);
> +
> + if (config_file) {
> + printf("Info: found cfgfile-path \"%s\"\n", config_file);
> + } else {
> + printf("Info: not found cfgfile-path parameter "
> + "(searching for cfgfile "
> + "in default directory)\n");
> + config_file = strdup("config.ini");
> + }
> + cfg = rte_cfgfile_load(config_file, CFG_FLAG_EMPTY_VALUES);
> + if (cfg == NULL)
> + printf("Info: Valid cfgfile not found\n");
> + rte_eal_configure(cfg);
> +#endif
> +
Does it mean if RTE_LIBRTE_CFGFILE is defined, then the arguments are passed by
Cfgfile, if no cfgfile will use config.ini by default? How about the legacy command lines?
I think even cfgfile is good, we still need to keep the command line way.
> diag = rte_eal_init(argc, argv);
> if (diag < 0)
> rte_panic("Cannot init EAL\n");
> @@ -2289,7 +2329,16 @@ uint8_t port_is_bonding_slave(portid_t slave_pid)
> argc -= diag;
> argv += diag;
> if (argc > 1)
> - launch_args_parse(argc, argv);
> + launch_args_parse(argc, argv, cfg);
> +
The argc and argv have been overwritten by cfgfile, right? Does it make sense to
Pass cfg to launch_args_parse?
And you also need to update the testpmd doc to describe this new use.
Thanks
Jingjing
More information about the dev
mailing list