doc: remove reference to pcapng init function
[dpdk.git] / lib / ethdev / rte_flow.c
index c314129..2c35a2f 100644 (file)
@@ -1791,3 +1791,58 @@ rte_flow_pull(uint16_t port_id,
        ret = ops->pull(dev, queue_id, res, n_res, error);
        return ret ? ret : flow_err(port_id, ret, error);
 }
+
+struct rte_flow_action_handle *
+rte_flow_async_action_handle_create(uint16_t port_id,
+               uint32_t queue_id,
+               const struct rte_flow_op_attr *op_attr,
+               const struct rte_flow_indir_action_conf *indir_action_conf,
+               const struct rte_flow_action *action,
+               void *user_data,
+               struct rte_flow_error *error)
+{
+       struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+       const struct rte_flow_ops *ops = rte_flow_ops_get(port_id, error);
+       struct rte_flow_action_handle *handle;
+
+       handle = ops->async_action_handle_create(dev, queue_id, op_attr,
+                                            indir_action_conf, action, user_data, error);
+       if (handle == NULL)
+               flow_err(port_id, -rte_errno, error);
+       return handle;
+}
+
+int
+rte_flow_async_action_handle_destroy(uint16_t port_id,
+               uint32_t queue_id,
+               const struct rte_flow_op_attr *op_attr,
+               struct rte_flow_action_handle *action_handle,
+               void *user_data,
+               struct rte_flow_error *error)
+{
+       struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+       const struct rte_flow_ops *ops = rte_flow_ops_get(port_id, error);
+       int ret;
+
+       ret = ops->async_action_handle_destroy(dev, queue_id, op_attr,
+                                          action_handle, user_data, error);
+       return flow_err(port_id, ret, error);
+}
+
+int
+rte_flow_async_action_handle_update(uint16_t port_id,
+               uint32_t queue_id,
+               const struct rte_flow_op_attr *op_attr,
+               struct rte_flow_action_handle *action_handle,
+               const void *update,
+               void *user_data,
+               struct rte_flow_error *error)
+{
+       struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+       const struct rte_flow_ops *ops = rte_flow_ops_get(port_id, error);
+       int ret;
+
+       ret = ops->async_action_handle_update(dev, queue_id, op_attr,
+                                         action_handle, update, user_data, error);
+       return flow_err(port_id, ret, error);
+}