[spp] [PATCH v3 2/2] spp_vf: change to not use flush and cancel commnad

x-fn-spp at sl.ntt-tx.co.jp x-fn-spp at sl.ntt-tx.co.jp
Fri Jul 27 02:32:06 CEST 2018


From: Hideyuki Yamashita <yamashita.hideyuki at po.ntt-tx.co.jp>

It is bothering to run flush every time after changing configrations.
User does not need to run flush if spp_vf executes it for accepting
command by itself. Cancel command is also not needed for this change.

This patch is to stop support for flush and cancel command by following
changes.
- Send an error if it receives flush or cancel command.
- Call spp_flush() if it receives component, port or classifier_mac
  command.
- Remove functions for cancel command.

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki at po.ntt-tx.co.jp>
Signed-off-by: Naoki Takada <takada.naoki at lab.ntt.co.jp>
---
 src/vf/command_dec.c  |  4 ----
 src/vf/command_dec.h  |  6 ------
 src/vf/command_proc.c | 25 +++++++++++++++----------
 src/vf/spp_vf.c       | 20 --------------------
 src/vf/spp_vf.h       |  5 -----
 5 files changed, 15 insertions(+), 45 deletions(-)

diff --git a/src/vf/command_dec.c b/src/vf/command_dec.c
index 2c7debc..74b0c1d 100644
--- a/src/vf/command_dec.c
+++ b/src/vf/command_dec.c
@@ -642,7 +642,6 @@ static struct decode_parameter_list parameter_list[][SPP_CMD_MAX_PARAMETERS] = {
 		},
 		DECODE_PARAMETER_LIST_EMPTY,
 	},
-	{ DECODE_PARAMETER_LIST_EMPTY }, /* flush            */
 	{ DECODE_PARAMETER_LIST_EMPTY }, /* _get_client_id   */
 	{ DECODE_PARAMETER_LIST_EMPTY }, /* status           */
 	{ DECODE_PARAMETER_LIST_EMPTY }, /* exit             */
@@ -709,7 +708,6 @@ static struct decode_parameter_list parameter_list[][SPP_CMD_MAX_PARAMETERS] = {
 		},
 		DECODE_PARAMETER_LIST_EMPTY,
 	},
-	{ DECODE_PARAMETER_LIST_EMPTY }, /* cancel           */
 	{ DECODE_PARAMETER_LIST_EMPTY }, /* termination      */
 };
 
@@ -755,7 +753,6 @@ static struct decode_command_list command_list[] = {
 						/* classifier_table(mac) */
 	{ "classifier_table", 6, 6, decode_command_parameter_in_list },
 						/* classifier_table(vlan) */
-	{ "flush",            1, 1, NULL },     /* flush            */
 	{ "_get_client_id",   1, 1, NULL },     /* _get_client_id   */
 	{ "status",           1, 1, NULL },     /* status           */
 	{ "exit",             1, 1, NULL },     /* exit             */
@@ -763,7 +760,6 @@ static struct decode_command_list command_list[] = {
 						/* component        */
 	{ "port",             5, 8, decode_command_parameter_in_list },
 						/* port             */
-	{ "cancel",           1, 1, NULL },     /* cancel           */
 	{ "",                 0, 0, NULL }      /* termination      */
 };
 
diff --git a/src/vf/command_dec.h b/src/vf/command_dec.h
index e7cbc8b..93444cb 100644
--- a/src/vf/command_dec.h
+++ b/src/vf/command_dec.h
@@ -50,9 +50,6 @@ enum spp_command_type {
 	/** classifier_table command(VLAN) */
 	SPP_CMDTYPE_CLASSIFIER_TABLE_VLAN,
 
-	/** flush command */
-	SPP_CMDTYPE_FLUSH,
-
 	/** get_client_id command */
 	SPP_CMDTYPE_CLIENT_ID,
 
@@ -67,9 +64,6 @@ enum spp_command_type {
 
 	/** port command */
 	SPP_CMDTYPE_PORT,
-
-	/** cancel command */
-	SPP_CMDTYPE_CANCEL,
 };
 
 /** "classifier_table" command specific parameters */
diff --git a/src/vf/command_proc.c b/src/vf/command_proc.c
index e13ae2c..0cda68e 100644
--- a/src/vf/command_proc.c
+++ b/src/vf/command_proc.c
@@ -218,11 +218,11 @@ execute_command(const struct spp_command *command)
 				command->spec.classifier_table.vid,
 				command->spec.classifier_table.mac,
 				&command->spec.classifier_table.port);
-		break;
-
-	case SPP_CMDTYPE_FLUSH:
-		RTE_LOG(INFO, SPP_COMMAND_PROC, "Execute flush command.\n");
-		ret = spp_flush();
+		if (ret == 0) {
+			RTE_LOG(INFO, SPP_COMMAND_PROC,
+					"Execute flush.\n");
+			ret = spp_flush();
+		}
 		break;
 
 	case SPP_CMDTYPE_COMPONENT:
@@ -232,6 +232,11 @@ execute_command(const struct spp_command *command)
 				command->spec.component.name,
 				command->spec.component.core,
 				command->spec.component.type);
+		if (ret == 0) {
+			RTE_LOG(INFO, SPP_COMMAND_PROC,
+					"Execute flush.\n");
+			ret = spp_flush();
+		}
 		break;
 
 	case SPP_CMDTYPE_PORT:
@@ -244,11 +249,11 @@ execute_command(const struct spp_command *command)
 				command->spec.port.rxtx,
 				command->spec.port.name,
 				&command->spec.port.ability);
-		break;
-
-	case SPP_CMDTYPE_CANCEL:
-		RTE_LOG(INFO, SPP_COMMAND_PROC, "Execute cancel command.\n");
-		spp_cancel();
+		if (ret == 0) {
+			RTE_LOG(INFO, SPP_COMMAND_PROC,
+					"Execute flush.\n");
+			ret = spp_flush();
+		}
 		break;
 
 	default:
diff --git a/src/vf/spp_vf.c b/src/vf/spp_vf.c
index 4d0d278..2a77ec6 100644
--- a/src/vf/spp_vf.c
+++ b/src/vf/spp_vf.c
@@ -664,19 +664,6 @@ backup_mng_info(struct cancel_backup_info *backup)
 	memset(g_change_component, 0x00, sizeof(g_change_component));
 }
 
-/* Cancel update of management information */
-static void
-cancel_mng_info(struct cancel_backup_info *backup)
-{
-	dump_all_mng_info(backup->core, backup->component, &backup->interface);
-	copy_mng_info(g_core_info, g_component_info, &g_iface_info,
-			backup->core, backup->component, &backup->interface,
-			COPY_MNG_FLG_ALLCOPY);
-	dump_all_mng_info(g_core_info, g_component_info, &g_iface_info);
-	memset(g_change_core, 0x00, sizeof(g_change_core));
-	memset(g_change_component, 0x00, sizeof(g_change_component));
-}
-
 /**
  * Initialize g_iface_info
  *
@@ -1635,13 +1622,6 @@ spp_flush(void)
 	return ret;
 }
 
-/* Cancel data that is not flushing */
-void
-spp_cancel(void)
-{
-	cancel_mng_info(&g_backup_info);
-}
-
 /* Iterate core information */
 int
 spp_iterate_core_info(struct spp_iterate_core_params *params)
diff --git a/src/vf/spp_vf.h b/src/vf/spp_vf.h
index adcfafe..3491879 100644
--- a/src/vf/spp_vf.h
+++ b/src/vf/spp_vf.h
@@ -267,11 +267,6 @@ int spp_update_port(
  */
 int spp_flush(void);
 
-/**
- * Cancel data that is not flushing
- */
-void spp_cancel(void);
-
 struct spp_iterate_core_params;
 /** definition of iterated core element procedure function */
 typedef int (*spp_iterate_core_element_proc)(
-- 
2.18.0



More information about the spp mailing list