From: John Daley Date: Wed, 15 Apr 2020 01:06:41 +0000 (-0700) Subject: net/enic: allow multiple mark and flag actions X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=45a40f98b345e3f83d50f293974f1cd106ca02b3;p=dpdk.git net/enic: allow multiple mark and flag actions 1400 series adapters support multiple MARK and FLAG action types. e.g.: mark id 10 / queue index 2 / mark id 11 / queue index 3 Remove the restriction in the Flow Manager implementation. Signed-off-by: John Daley Reviewed-by: Hyong Youb Kim --- diff --git a/drivers/net/enic/enic_fm_flow.c b/drivers/net/enic/enic_fm_flow.c index 86efeffc64..6ee0224372 100644 --- a/drivers/net/enic/enic_fm_flow.c +++ b/drivers/net/enic/enic_fm_flow.c @@ -1086,11 +1086,10 @@ enic_fm_copy_action(struct enic_flowman *fm, { enum { FATE = 1 << 0, - MARK = 1 << 1, + DECAP = 1 << 1, PASSTHRU = 1 << 2, COUNT = 1 << 3, ENCAP = 1 << 4, - DECAP = 1 << 5, }; struct fm_tcam_match_entry *fmt; struct fm_action_op fm_op; @@ -1141,9 +1140,6 @@ enic_fm_copy_action(struct enic_flowman *fm, const struct rte_flow_action_mark *mark = actions->conf; - if (overlap & MARK) - goto unsupported; - overlap |= MARK; if (mark->id >= ENIC_MAGIC_FILTER_ID - 1) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, @@ -1157,9 +1153,6 @@ enic_fm_copy_action(struct enic_flowman *fm, break; } case RTE_FLOW_ACTION_TYPE_FLAG: { - if (overlap & MARK) - goto unsupported; - overlap |= MARK; /* ENIC_MAGIC_FILTER_ID is reserved for flagging */ memset(&fm_op, 0, sizeof(fm_op)); fm_op.fa_op = FMOP_MARK;