[07/10] net/sfc: change MAE rule actions parse API

Message ID 20210312093143.28186-7-ivan.malov@oktetlabs.ru (mailing list archive)
State Superseded, archived
Headers
Series [01/10] ethdev: reuse header definition in flow pattern item ETH |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Ivan Malov March 12, 2021, 9:31 a.m. UTC
  From: Igor Romanov <igor.romanov@oktetlabs.ru>

Current API signature makes it hard to add other entities that
belong to a flow specification. Pass the flow specification
so that additional members can be accessed through the spec.

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
---
 drivers/net/sfc/sfc_flow.c | 3 +--
 drivers/net/sfc/sfc_mae.c  | 8 ++++----
 drivers/net/sfc/sfc_mae.h  | 2 +-
 3 files changed, 6 insertions(+), 7 deletions(-)
  

Patch

diff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c
index ab1d2cc59..2c78473b5 100644
--- a/drivers/net/sfc/sfc_flow.c
+++ b/drivers/net/sfc/sfc_flow.c
@@ -2440,8 +2440,7 @@  sfc_flow_parse_rte_to_mae(struct rte_eth_dev *dev,
 	if (rc != 0)
 		return rc;
 
-	rc = sfc_mae_rule_parse_actions(sa, actions, &spec_mae->action_set,
-					error);
+	rc = sfc_mae_rule_parse_actions(sa, actions, spec_mae, error);
 	if (rc != 0)
 		return rc;
 
diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index 15c5c3975..50efd47ad 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -2093,7 +2093,7 @@  sfc_mae_rule_parse_action(struct sfc_adapter *sa,
 int
 sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
 			   const struct rte_flow_action actions[],
-			   struct sfc_mae_action_set **action_setp,
+			   struct sfc_flow_spec_mae *spec_mae,
 			   struct rte_flow_error *error)
 {
 	struct sfc_mae_actions_bundle bundle = {0};
@@ -2127,13 +2127,13 @@  sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
 	if (rc != 0)
 		goto fail_rule_parse_action;
 
-	*action_setp = sfc_mae_action_set_attach(sa, spec);
-	if (*action_setp != NULL) {
+	spec_mae->action_set = sfc_mae_action_set_attach(sa, spec);
+	if (spec_mae->action_set != NULL) {
 		efx_mae_action_set_spec_fini(sa->nic, spec);
 		return 0;
 	}
 
-	rc = sfc_mae_action_set_add(sa, spec, action_setp);
+	rc = sfc_mae_action_set_add(sa, spec, &spec_mae->action_set);
 	if (rc != 0)
 		goto fail_action_set_add;
 
diff --git a/drivers/net/sfc/sfc_mae.h b/drivers/net/sfc/sfc_mae.h
index bf432638c..00987af61 100644
--- a/drivers/net/sfc/sfc_mae.h
+++ b/drivers/net/sfc/sfc_mae.h
@@ -197,7 +197,7 @@  int sfc_mae_rule_parse_pattern(struct sfc_adapter *sa,
 			       struct rte_flow_error *error);
 int sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
 			       const struct rte_flow_action actions[],
-			       struct sfc_mae_action_set **action_setp,
+			       struct sfc_flow_spec_mae *spec_mae,
 			       struct rte_flow_error *error);
 sfc_flow_verify_cb_t sfc_mae_flow_verify;
 sfc_flow_insert_cb_t sfc_mae_flow_insert;