DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Subject: [dpdk-dev] [PATCH] l3fwd: set cli back to unix style
Date: Mon, 11 Dec 2017 15:12:58 -0800	[thread overview]
Message-ID: <20171211231258.16494-1-sthemmin@microsoft.com> (raw)

The l3fwd program became chatty, and the code looks cluttered in
recent versions. DPDK programs should try for Unix (not VMS) style
and not print messages for the options user selected. Also, errors should
be printed on stderr. To make it easier to find code matching error
messages; error strings should be placed in situ rather than saved
as string vaiables.

Fixes: 268888b5b020 ("examples/l3fwd: modularize")
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 examples/l3fwd/main.c | 45 +++++++++++----------------------------------
 1 file changed, 11 insertions(+), 34 deletions(-)

diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index 6229568f2f19..501e18c8989d 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -307,7 +307,7 @@ init_lcore_rx_queues(void)
 static void
 print_usage(const char *prgname)
 {
-	printf("%s [EAL options] --"
+	fprintf(stderr, "%s [EAL options] --"
 		" -p PORTMASK"
 		" [-P]"
 		" [-E]"
@@ -537,22 +537,6 @@ parse_args(int argc, char **argv)
 	argvopt = argv;
 
 	/* Error or normal output strings. */
-	const char *str1 = "L3FWD: Invalid portmask";
-	const char *str2 = "L3FWD: Promiscuous mode selected";
-	const char *str3 = "L3FWD: Exact match selected";
-	const char *str4 = "L3FWD: Longest-prefix match selected";
-	const char *str5 = "L3FWD: Invalid config";
-	const char *str6 = "L3FWD: NUMA is disabled";
-	const char *str7 = "L3FWD: IPV6 is specified";
-	const char *str8 =
-		"L3FWD: Jumbo frame is enabled - disabling simple TX path";
-	const char *str9 = "L3FWD: Invalid packet length";
-	const char *str10 = "L3FWD: Set jumbo frame max packet len to ";
-	const char *str11 = "L3FWD: Invalid hash entry number";
-	const char *str12 =
-		"L3FWD: LPM and EM are mutually exclusive, select only one";
-	const char *str13 = "L3FWD: LPM or EM none selected, default LPM on";
-
 	while ((opt = getopt_long(argc, argvopt, short_options,
 				lgopts, &option_index)) != EOF) {
 
@@ -561,24 +545,21 @@ parse_args(int argc, char **argv)
 		case 'p':
 			enabled_port_mask = parse_portmask(optarg);
 			if (enabled_port_mask == 0) {
-				printf("%s\n", str1);
+				fprintf(stderr, "Invalid portmask\n");
 				print_usage(prgname);
 				return -1;
 			}
 			break;
 
 		case 'P':
-			printf("%s\n", str2);
 			promiscuous_on = 1;
 			break;
 
 		case 'E':
-			printf("%s\n", str3);
 			l3fwd_em_on = 1;
 			break;
 
 		case 'L':
-			printf("%s\n", str4);
 			l3fwd_lpm_on = 1;
 			break;
 
@@ -586,7 +567,7 @@ parse_args(int argc, char **argv)
 		case CMD_LINE_OPT_CONFIG_NUM:
 			ret = parse_config(optarg);
 			if (ret) {
-				printf("%s\n", str5);
+				fprintf(stderr, "Invalid config\n");
 				print_usage(prgname);
 				return -1;
 			}
@@ -597,21 +578,19 @@ parse_args(int argc, char **argv)
 			break;
 
 		case CMD_LINE_OPT_NO_NUMA_NUM:
-			printf("%s\n", str6);
 			numa_on = 0;
 			break;
 
 		case CMD_LINE_OPT_IPV6_NUM:
-			printf("%sn", str7);
 			ipv6 = 1;
 			break;
 
 		case CMD_LINE_OPT_ENABLE_JUMBO_NUM: {
-			struct option lenopts = {
+			const struct option lenopts = {
 				"max-pkt-len", required_argument, 0, 0
 			};
 
-			printf("%s\n", str8);
+
 			port_conf.rxmode.jumbo_frame = 1;
 
 			/*
@@ -621,16 +600,14 @@ parse_args(int argc, char **argv)
 			if (getopt_long(argc, argvopt, "",
 					&lenopts, &option_index) == 0) {
 				ret = parse_max_pkt_len(optarg);
-				if ((ret < 64) ||
-					(ret > MAX_JUMBO_PKT_LEN)) {
-					printf("%s\n", str9);
+				if (ret < 64 || ret > MAX_JUMBO_PKT_LEN) {
+					fprintf(stderr,
+						"invalid maximum packet length\n");
 					print_usage(prgname);
 					return -1;
 				}
 				port_conf.rxmode.max_rx_pkt_len = ret;
 			}
-			printf("%s %u\n", str10,
-				(unsigned int)port_conf.rxmode.max_rx_pkt_len);
 			break;
 		}
 
@@ -639,7 +616,7 @@ parse_args(int argc, char **argv)
 			if ((ret > 0) && (ret <= L3FWD_HASH_ENTRIES)) {
 				hash_entry_number = ret;
 			} else {
-				printf("%s\n", str11);
+				fprintf(stderr, "invalid hash entry number\n");
 				print_usage(prgname);
 				return -1;
 			}
@@ -658,7 +635,7 @@ parse_args(int argc, char **argv)
 
 	/* If both LPM and EM are selected, return error. */
 	if (l3fwd_lpm_on && l3fwd_em_on) {
-		printf("%s\n", str12);
+		fprintf(stderr, "LPM and EM are mutually exclusive, select only one\n");
 		return -1;
 	}
 
@@ -667,8 +644,8 @@ parse_args(int argc, char **argv)
 	 * as default match.
 	 */
 	if (!l3fwd_lpm_on && !l3fwd_em_on) {
+		fprintf(stderr, "LPM or EM none selected, default LPM on\n");
 		l3fwd_lpm_on = 1;
-		printf("%s\n", str13);
 	}
 
 	/*
-- 
2.11.0

             reply	other threads:[~2017-12-11 23:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-11 23:12 Stephen Hemminger [this message]
2018-01-15 11:24 ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171211231258.16494-1-sthemmin@microsoft.com \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=sthemmin@microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).