Parsers now return the final engine-specific rule rather than temporary metadata. The generic flow layer passes this object to engine creation and stores it in `flow->rule`.
Rename the `meta` parameters and related local variables to reflect their role as persistent rules. Signed-off-by: Anatoly Burakov <[email protected]> --- drivers/net/intel/ice/ice_acl_filter.c | 8 ++++---- drivers/net/intel/ice/ice_fdir_filter.c | 8 ++++---- drivers/net/intel/ice/ice_generic_flow.c | 16 ++++++++-------- drivers/net/intel/ice/ice_generic_flow.h | 6 +++--- drivers/net/intel/ice/ice_hash.c | 12 ++++++------ drivers/net/intel/ice/ice_switch_filter.c | 8 ++++---- 6 files changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/net/intel/ice/ice_acl_filter.c b/drivers/net/intel/ice/ice_acl_filter.c index 08695b554f1..21b48e10091 100644 --- a/drivers/net/intel/ice/ice_acl_filter.c +++ b/drivers/net/intel/ice/ice_acl_filter.c @@ -505,10 +505,10 @@ ice_acl_hw_rem_conf(struct ice_pf *pf, struct acl_rule *rule, int32_t entry_idx) static int ice_acl_create_filter(struct ice_adapter *ad, - void *meta, + void *flow_rule, struct rte_flow_error *error) { - struct acl_rule *rule = meta; + struct acl_rule *rule = flow_rule; struct ice_acl_conf *filter = &rule->conf; enum ice_fltr_ptype flow_type = filter->input.flow_type; struct ice_flow_action acts[1]; @@ -948,7 +948,7 @@ ice_acl_parse(struct ice_adapter *ad, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], const struct rte_flow_attr *attr, - void **meta, + void **flow_rule, struct rte_flow_error *error) { struct ci_flow_actions parsed_actions = {0}; @@ -1005,7 +1005,7 @@ ice_acl_parse(struct ice_adapter *ad, if (ret) goto error; - *meta = rule; + *flow_rule = rule; return 0; error: diff --git a/drivers/net/intel/ice/ice_fdir_filter.c b/drivers/net/intel/ice/ice_fdir_filter.c index e3f2cf2e3dd..0ff9c567196 100644 --- a/drivers/net/intel/ice/ice_fdir_filter.c +++ b/drivers/net/intel/ice/ice_fdir_filter.c @@ -1537,11 +1537,11 @@ ice_fdir_entry_del(struct ice_pf *pf, struct ice_fdir_fltr_pattern *key) static int ice_fdir_create_filter(struct ice_adapter *ad, - void *meta, + void *flow_rule, struct rte_flow_error *error) { struct ice_pf *pf = &ad->pf; - struct ice_fdir_filter_conf *filter = meta; + struct ice_fdir_filter_conf *filter = flow_rule; struct ice_fdir_info *fdir_info = &pf->fdir; struct ice_fdir_filter_conf *node; struct ice_fdir_fltr_pattern key; @@ -2975,7 +2975,7 @@ ice_fdir_parse(struct ice_adapter *ad, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], const struct rte_flow_attr *attr, - void **meta, + void **flow_rule, struct rte_flow_error *error) { struct ci_flow_actions parsed_actions = {0}; @@ -3047,7 +3047,7 @@ ice_fdir_parse(struct ice_adapter *ad, if (ret) goto error; - *meta = filter; + *flow_rule = filter; return ret; error: diff --git a/drivers/net/intel/ice/ice_generic_flow.c b/drivers/net/intel/ice/ice_generic_flow.c index f5ae6f7d013..1602691b1cc 100644 --- a/drivers/net/intel/ice/ice_generic_flow.c +++ b/drivers/net/intel/ice/ice_generic_flow.c @@ -2251,7 +2251,7 @@ ice_parse_engine_create(struct ice_adapter *ad, const struct rte_flow_action actions[], struct rte_flow_error *error) { - void *meta = NULL; + void *flow_rule = NULL; if (ICE_FLOW_ENGINE_DISABLED(ad->disabled_engine_mask, parser->engine->type)) { @@ -2264,17 +2264,17 @@ ice_parse_engine_create(struct ice_adapter *ad, if (parser->parse_pattern_action(ad, parser->array, parser->array_len, - pattern, actions, attr, &meta, error) < 0) + pattern, actions, attr, &flow_rule, error) < 0) return false; RTE_ASSERT(parser->engine->create != NULL); - if (parser->engine->create(ad, meta, error) != 0) { - ice_flow_rule_free(parser->engine, meta); + if (parser->engine->create(ad, flow_rule, error) != 0) { + ice_flow_rule_free(parser->engine, flow_rule); return false; } - flow->rule = meta; + flow->rule = flow_rule; return true; } @@ -2287,7 +2287,7 @@ ice_parse_engine_validate(struct ice_adapter *ad, const struct rte_flow_action actions[], struct rte_flow_error *error) { - void *meta = NULL; + void *flow_rule = NULL; int ret; if (ICE_FLOW_ENGINE_DISABLED(ad->disabled_engine_mask, @@ -2302,9 +2302,9 @@ ice_parse_engine_validate(struct ice_adapter *ad, parser->array, parser->array_len, pattern, actions, attr, - &meta, error); + &flow_rule, error); if (ret >= 0) - ice_flow_rule_free(parser->engine, meta); + ice_flow_rule_free(parser->engine, flow_rule); return ret >= 0; } diff --git a/drivers/net/intel/ice/ice_generic_flow.h b/drivers/net/intel/ice/ice_generic_flow.h index ca0f7abe9aa..b6eedaa202d 100644 --- a/drivers/net/intel/ice/ice_generic_flow.h +++ b/drivers/net/intel/ice/ice_generic_flow.h @@ -506,7 +506,7 @@ struct ice_flow_redirect { typedef int (*engine_init_t)(struct ice_adapter *ad); typedef void (*engine_uninit_t)(struct ice_adapter *ad); typedef int (*engine_create_t)(struct ice_adapter *ad, - void *meta, + void *flow_rule, struct rte_flow_error *error); typedef int (*engine_destroy_t)(struct ice_adapter *ad, struct rte_flow *flow, @@ -521,7 +521,7 @@ typedef int(*engine_redirect_t)(struct ice_adapter *ad, /* Free nested rule allocations only, without accessing hardware resources. */ typedef void (*engine_free_t)(void *rule); /* - * Parsers return an allocated final rule through meta on success, and clean up + * Parsers return an allocated final rule through flow_rule on success, and clean up * their own allocations on failure. The generic layer owns successful results, * including during validation; engine create/destroy callbacks must not free them. */ @@ -531,7 +531,7 @@ typedef int (*parse_pattern_action_t)(struct ice_adapter *ad, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], const struct rte_flow_attr *attr, - void **meta, + void **flow_rule, struct rte_flow_error *error); /* Struct to store engine created. */ diff --git a/drivers/net/intel/ice/ice_hash.c b/drivers/net/intel/ice/ice_hash.c index 980abb58f3b..951a9d3aa2c 100644 --- a/drivers/net/intel/ice/ice_hash.c +++ b/drivers/net/intel/ice/ice_hash.c @@ -82,7 +82,7 @@ ice_hash_init(struct ice_adapter *ad); static int ice_hash_create(struct ice_adapter *ad, - void *meta, + void *flow_rule, struct rte_flow_error *error); static int @@ -100,7 +100,7 @@ ice_hash_parse_pattern_action(struct ice_adapter *ad, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], const struct rte_flow_attr *attr, - void **meta, + void **flow_rule, struct rte_flow_error *error); /* Rss configuration template */ @@ -1176,7 +1176,7 @@ ice_hash_parse_pattern_action(__rte_unused struct ice_adapter *ad, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], const struct rte_flow_attr *attr, - void **meta, + void **flow_rule, struct rte_flow_error *error) { struct ci_flow_actions parsed_actions = {0}; @@ -1239,7 +1239,7 @@ ice_hash_parse_pattern_action(__rte_unused struct ice_adapter *ad, error: if (!ret) - *meta = rss_meta_ptr; + *flow_rule = rss_meta_ptr; else rte_free(rss_meta_ptr); @@ -1313,7 +1313,7 @@ ice_hash_add_raw_cfg(struct ice_adapter *ad, static int ice_hash_create(struct ice_adapter *ad, - void *meta, + void *flow_rule, struct rte_flow_error *error) { struct ice_pf *pf = &ad->pf; @@ -1321,7 +1321,7 @@ ice_hash_create(struct ice_adapter *ad, struct ice_vsi *vsi = pf->main_vsi; int ret; uint32_t reg; - struct ice_hash_flow_cfg *filter_ptr = meta; + struct ice_hash_flow_cfg *filter_ptr = flow_rule; if (filter_ptr->simple_xor) { /* Enable registers for simple_xor hash function. */ diff --git a/drivers/net/intel/ice/ice_switch_filter.c b/drivers/net/intel/ice/ice_switch_filter.c index 59e18269206..8a550ed4c86 100644 --- a/drivers/net/intel/ice/ice_switch_filter.c +++ b/drivers/net/intel/ice/ice_switch_filter.c @@ -285,14 +285,14 @@ ice_pattern_match_item ice_switch_supported_pattern[] = { static int ice_switch_create(struct ice_adapter *ad, - void *meta, + void *flow_rule, struct rte_flow_error *error) { int ret = 0; struct ice_pf *pf = &ad->pf; struct ice_hw *hw = ICE_PF_TO_HW(pf); struct ice_rule_query_data rule_added = {0}; - struct ice_switch_filter_conf *filter_conf_ptr = meta; + struct ice_switch_filter_conf *filter_conf_ptr = flow_rule; struct ice_adv_lkup_elem *list = filter_conf_ptr->lkups; uint16_t lkups_cnt = filter_conf_ptr->lkups_num; struct ice_adv_rule_info *rule_info = &filter_conf_ptr->rule_info; @@ -1705,7 +1705,7 @@ ice_switch_parse_pattern_action(struct ice_adapter *ad, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], const struct rte_flow_attr *attr, - void **meta, + void **flow_rule, struct rte_flow_error *error) { struct ice_pf *pf = &ad->pf; @@ -1845,7 +1845,7 @@ ice_switch_parse_pattern_action(struct ice_adapter *ad, filter->lkups = list; filter->lkups_num = lkups_num; filter->rule_info = rule_info; - *meta = filter; + *flow_rule = filter; return 0; -- 2.52.0

