[dpdk-dev] [RFC 6/7] l2fwd: rework long options parsing

Olivier Matz olivier.matz at 6wind.com
Mon Sep 19 15:42:46 CEST 2016


Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 examples/l2fwd/main.c | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c
index 41ac1e1..028900b 100644
--- a/examples/l2fwd/main.c
+++ b/examples/l2fwd/main.c
@@ -376,6 +376,24 @@ l2fwd_parse_timer_period(const char *q_arg)
 	return n;
 }
 
+static const char short_options[] =
+	"p:"  /* portmask */
+	"q:"  /* number of queues */
+	"T:"  /* timer period */
+	;
+
+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[] = {
+	{NULL, 0, 0, 0}
+};
+
 /* Parse the argument given in the command line of the application */
 static int
 l2fwd_parse_args(int argc, char **argv)
@@ -384,9 +402,6 @@ l2fwd_parse_args(int argc, char **argv)
 	char **argvopt;
 	int option_index;
 	char *prgname = argv[0];
-	static struct option lgopts[] = {
-		{NULL, 0, 0, 0}
-	};
 
 	argvopt = argv;
 
@@ -425,11 +440,6 @@ l2fwd_parse_args(int argc, char **argv)
 			timer_period = timer_secs;
 			break;
 
-		/* long options */
-		case 0:
-			l2fwd_usage(prgname);
-			return -1;
-
 		default:
 			l2fwd_usage(prgname);
 			return -1;
-- 
2.8.1



More information about the dev mailing list