[dpdk-dev] net/ixgbe: fix drop action for signature match

Message ID 20170717114635.37616-1-qi.z.zhang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Qi Zhang July 17, 2017, 11:46 a.m. UTC
  Drop action is not supported by signature match, should return
error when try to create a signature match flow with drop action.

Fixes: a948d33bc05a ("net/ixgbe: enable signature match for consistent API")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ixgbe/ixgbe_flow.c | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Comments

Ferruh Yigit July 18, 2017, 11:47 a.m. UTC | #1
On 7/17/2017 12:46 PM, Qi Zhang wrote:
> Drop action is not supported by signature match, should return
> error when try to create a signature match flow with drop action.
> 
> Fixes: a948d33bc05a ("net/ixgbe: enable signature match for consistent API")
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_flow.c b/drivers/net/ixgbe/ixgbe_flow.c
index f70bdb0..cb177f3 100644
--- a/drivers/net/ixgbe/ixgbe_flow.c
+++ b/drivers/net/ixgbe/ixgbe_flow.c
@@ -1233,6 +1233,14 @@  ixgbe_parse_fdir_act_attr(const struct rte_flow_attr *attr,
 		act_q = (const struct rte_flow_action_queue *)act->conf;
 		rule->queue = act_q->index;
 	} else { /* drop */
+		/* signature mode does not support drop action. */
+		if (rule->mode == RTE_FDIR_MODE_SIGNATURE) {
+			memset(rule, 0, sizeof(struct ixgbe_fdir_rule));
+			rte_flow_error_set(error, EINVAL,
+				RTE_FLOW_ERROR_TYPE_ACTION,
+				act, "Not supported action.");
+			return -rte_errno;
+		}
 		rule->fdirflags = IXGBE_FDIRCMD_DROP;
 	}