From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olivier Matz Subject: [PATCH 2/2] l2fwd: rework long options parsing Date: Tue, 22 Nov 2016 14:52:16 +0100 Message-ID: <1479822736-32399-3-git-send-email-olivier.matz@6wind.com> References: <1479822736-32399-1-git-send-email-olivier.matz@6wind.com> To: dev@dpdk.org, bruce.richardson@intel.com, pablo.de.lara.guarch@intel.com Return-path: Received: from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com [62.23.145.76]) by dpdk.org (Postfix) with ESMTP id 1058B5582 for ; Tue, 22 Nov 2016 14:52:41 +0100 (CET) In-Reply-To: <1479822736-32399-1-git-send-email-olivier.matz@6wind.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Do the same than in l3fwd to avoid strcmp() for long options. For l2fwd, there is no long option that take advantage of this new mechanism as --mac-updating and --no-mac-updating are directly setting a flag without needing an entry in the switch/case. So this patch just prepares the framework in case a new long option is added in the future. Signed-off-by: Olivier Matz --- examples/l2fwd/main.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index b2f5851..97d6454 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -392,6 +392,29 @@ l2fwd_parse_timer_period(const char *q_arg) return n; } +static const char short_options[] = + "p:" /* portmask */ + "q:" /* number of queues */ + "T:" /* timer period */ + ; + +#define CMD_LINE_OPT_MAC_UPDATING "mac-updating" +#define CMD_LINE_OPT_NO_MAC_UPDATING "no-mac-updating" + +enum { + /* long options mapped to a short option */ + + /* first long only option value must be >= 256, so that we won't + * conflict with short options */ + CMD_LINE_OPT_MIN_NUM = 256, +}; + +static const struct option lgopts[] = { + { CMD_LINE_OPT_MAC_UPDATING, no_argument, &mac_updating, 1}, + { CMD_LINE_OPT_NO_MAC_UPDATING, no_argument, &mac_updating, 0}, + {NULL, 0, 0, 0} +}; + /* Parse the argument given in the command line of the application */ static int l2fwd_parse_args(int argc, char **argv) @@ -400,15 +423,10 @@ l2fwd_parse_args(int argc, char **argv) char **argvopt; int option_index; char *prgname = argv[0]; - static struct option lgopts[] = { - { "mac-updating", no_argument, &mac_updating, 1}, - { "no-mac-updating", no_argument, &mac_updating, 0}, - {NULL, 0, 0, 0} - }; argvopt = argv; - while ((opt = getopt_long(argc, argvopt, "p:q:T:", + while ((opt = getopt_long(argc, argvopt, short_options, lgopts, &option_index)) != EOF) { switch (opt) { -- 2.8.1