net/sfc: change MAE rule actions parsing parameter
authorIgor Romanov <igor.romanov@oktetlabs.ru>
Fri, 12 Mar 2021 11:07:42 +0000 (14:07 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 22 Mar 2021 16:19:16 +0000 (17:19 +0100)
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
drivers/net/sfc/sfc_mae.c
drivers/net/sfc/sfc_mae.h

index 9cb7ade..848669c 100644 (file)
@@ -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;
 
index 32b88f9..bbf328b 100644 (file)
@@ -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;
 
index aa1b63b..379055b 100644 (file)
@@ -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;