Soft Patch Panel
 help / color / mirror / Atom feed
* [spp] [PATCH] shared/sec: refactor error msg for parsing
@ 2019-05-21  2:30 ogawa.yasufumi
  0 siblings, 0 replies; only message in thread
From: ogawa.yasufumi @ 2019-05-21  2:30 UTC (permalink / raw)
  To: spp, ferruh.yigit, ogawa.yasufumi

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

The name of functions for generating error messages for parsing command
is not intuitive and ambiguous for considering usages. This update is to
refactor to fix the issue.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 .../secondary/spp_worker_th/cmd_parser.c      | 42 ++++++++++---------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/src/shared/secondary/spp_worker_th/cmd_parser.c b/src/shared/secondary/spp_worker_th/cmd_parser.c
index 6813666..1c069cc 100644
--- a/src/shared/secondary/spp_worker_th/cmd_parser.c
+++ b/src/shared/secondary/spp_worker_th/cmd_parser.c
@@ -131,36 +131,39 @@ parse_resource_uid(const char *res_uid,
 	return SPP_RET_OK;
 }
 
-/* Convert component name to component type */
+/* Get component type from string of its name. */
+/* TODO(yasufum) should be worker local, separated for vf and mirror. */
 static enum spp_component_type
-spp_convert_component_type(const char *type_str)
+get_comp_type_from_str(const char *type_str)
 {
 	RTE_LOG(DEBUG, APP, "type_str is %s\n", type_str);
+
 #ifdef SPP_VF_MODULE
 	if (strncmp(type_str, CORE_TYPE_CLASSIFIER_MAC_STR,
 			strlen(CORE_TYPE_CLASSIFIER_MAC_STR)+1) == 0) {
-		/* Classifier */
 		return SPP_COMPONENT_CLASSIFIER_MAC;
 	} else if (strncmp(type_str, CORE_TYPE_MERGE_STR,
 			strlen(CORE_TYPE_MERGE_STR)+1) == 0) {
-		/* Merger */
 		return SPP_COMPONENT_MERGE;
 	} else if (strncmp(type_str, CORE_TYPE_FORWARD_STR,
 			strlen(CORE_TYPE_FORWARD_STR)+1) == 0) {
-		/* Forwarder */
 		return SPP_COMPONENT_FORWARD;
 	}
 #endif /* SPP_VF_MODULE */
+
 #ifdef SPP_MIRROR_MODULE
 	if (strncmp(type_str, SPP_TYPE_MIRROR_STR,
 			strlen(SPP_TYPE_MIRROR_STR)+1) == 0)
-		/* Mirror */
 		return SPP_COMPONENT_MIRROR;
 #endif /* SPP_MIRROR_MODULE */
+
 	return SPP_COMPONENT_UNUSE;
 }
 
 /* Format error message object and return error code for an error case. */
+/* TODO(yasufum) confirm usage of `set_parse_error` and
+ * `set_detailed_parse_error`, which should be used ?
+ */
 static inline int
 set_parse_error(struct sppwk_parse_err_msg *wk_err_msg,
 		const int err_code, const char *err_msg)
@@ -175,16 +178,16 @@ set_parse_error(struct sppwk_parse_err_msg *wk_err_msg,
 
 /* Set parse error message. */
 static inline int
-set_string_value_decode_error(struct sppwk_parse_err_msg *wk_err_msg,
-		const char *err_details, const char *err_msg)
+set_detailed_parse_error(struct sppwk_parse_err_msg *wk_err_msg,
+		const char *err_msg, const char *err_details)
 {
 	strcpy(wk_err_msg->details, err_details);
 	return set_parse_error(wk_err_msg, SPPWK_PARSE_INVALID_VALUE, err_msg);
 }
 
-/* Split command line parameter with spaces. */
+/* Split command line paramis with spaces. */
 static int
-decode_parameter_value(char *string, int max, int *argc, char *argv[])
+split_cmd_params(char *string, int max, int *argc, char *argv[])
 {
 	int cnt = 0;
 	const char *delim = " ";
@@ -373,7 +376,7 @@ decode_component_type_value(void *output, const char *arg_val,
 	if (component->wk_action != SPPWK_ACT_START)
 		return SPP_RET_OK;
 
-	comp_type = spp_convert_component_type(arg_val);
+	comp_type = get_comp_type_from_str(arg_val);
 	if (unlikely(comp_type <= 0)) {
 		RTE_LOG(ERR, SPP_COMMAND_PROC,
 				"Unknown component type. val=%s\n",
@@ -872,8 +875,8 @@ decode_command_parameter_component(struct sppwk_cmd_req *request,
 					"Invalid value. command=%s, name=%s, "
 					"index=%d, value=%s\n",
 					argv[0], list->name, pi, argv[pi]);
-			return set_string_value_decode_error(wk_err_msg,
-					argv[pi], list->name);
+			return set_detailed_parse_error(wk_err_msg,
+					list->name, argv[pi]);
 		}
 	}
 	return SPP_RET_OK;
@@ -912,8 +915,8 @@ decode_command_parameter_cls_table_vlan(struct sppwk_cmd_req *request,
 			RTE_LOG(ERR, SPP_COMMAND_PROC, "Bad value. "
 				"command=%s, name=%s, index=%d, value=%s\n",
 					argv[0], list->name, pi, argv[pi]);
-			return set_string_value_decode_error(wk_err_msg,
-					argv[pi], list->name);
+			return set_detailed_parse_error(wk_err_msg,
+					list->name, argv[pi]);
 		}
 	}
 	return SPP_RET_OK;
@@ -945,8 +948,8 @@ decode_command_parameter_port(struct sppwk_cmd_req *request,
 			RTE_LOG(ERR, SPP_COMMAND_PROC, "Bad value. "
 				"command=%s, name=%s, index=%d, value=%s\n",
 					argv[0], list->name, pi, argv[pi]);
-			return set_string_value_decode_error(wk_err_msg,
-					argv[pi], list->name);
+			return set_detailed_parse_error(wk_err_msg,
+					list->name, argv[pi]);
 		}
 	}
 	return SPP_RET_OK;
@@ -992,8 +995,7 @@ decode_command_in_list(struct sppwk_cmd_req *request,
 	memset(tmp_str, 0x00, sizeof(tmp_str));
 
 	strcpy(tmp_str, request_str);
-	ret = decode_parameter_value(tmp_str, SPPWK_MAX_PARAMS,
-			&argc, argv);
+	ret = split_cmd_params(tmp_str, SPPWK_MAX_PARAMS, &argc, argv);
 	if (ret < SPP_RET_OK) {
 		RTE_LOG(ERR, SPP_COMMAND_PROC, "Parameter number over limit."
 				"request_str=%s\n", request_str);
@@ -1031,7 +1033,7 @@ decode_command_in_list(struct sppwk_cmd_req *request,
 	RTE_LOG(ERR, SPP_COMMAND_PROC,
 			"Unknown command. command=%s, request_str=%s\n",
 			argv[0], request_str);
-	return set_string_value_decode_error(wk_err_msg, argv[0], "command");
+	return set_detailed_parse_error(wk_err_msg, "command", argv[0]);
 }
 
 /* Parse request of non null terminated string. */
-- 
2.17.1


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-05-21  2:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-21  2:30 [spp] [PATCH] shared/sec: refactor error msg for parsing ogawa.yasufumi

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).