[11/11] net/nfp: support QUEUE flow action
Checks
Commit Message
Add the corresponding logics to support the offload of QUEUE action.
Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
drivers/net/nfp/nfp_net_flow.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
@@ -552,6 +552,20 @@ nfp_net_flow_action_mark(struct rte_flow *nfp_flow,
action_data->mark_id = mark->id;
}
+static void
+nfp_net_flow_action_queue(struct rte_flow *nfp_flow,
+ const struct rte_flow_action *action)
+{
+ struct nfp_net_cmsg_action *action_data;
+ const struct rte_flow_action_queue *queue;
+
+ action_data = (struct nfp_net_cmsg_action *)nfp_flow->payload.action_data;
+ queue = action->conf;
+
+ action_data->action |= NFP_NET_CMSG_ACTION_QUEUE;
+ action_data->queue = queue->index;
+}
+
static int
nfp_net_flow_compile_actions(const struct rte_flow_action actions[],
struct rte_flow *nfp_flow)
@@ -568,6 +582,10 @@ nfp_net_flow_compile_actions(const struct rte_flow_action actions[],
PMD_DRV_LOG(DEBUG, "Process RTE_FLOW_ACTION_TYPE_MARK");
nfp_net_flow_action_mark(nfp_flow, action);
break;
+ case RTE_FLOW_ACTION_TYPE_QUEUE:
+ PMD_DRV_LOG(DEBUG, "Process RTE_FLOW_ACTION_TYPE_QUEUE");
+ nfp_net_flow_action_queue(nfp_flow, action);
+ break;
default:
PMD_DRV_LOG(ERR, "Unsupported action type: %d", action->type);
return -ENOTSUP;