Wrap glue call dv_create_flow_action_dest_devx_tir() with an OS API.
Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations")
Cc: stable@dpdk.org
Signed-off-by: Ophir Munk <ophirmu@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
return (*action) ? 0 : -1;
}
+/**
+ * Create flow action: dest_devx_tir
+ *
+ * @param[in] tir
+ * Pointer to DevX tir object
+ * @param[out] action
+ * Pointer to a valid action on success, NULL otherwise.
+ *
+ * @return
+ * 0 on success, or -1 on failure and errno is set.
+ */
+static inline int
+mlx5_flow_os_create_flow_action_dest_devx_tir(struct mlx5_devx_obj *tir,
+ void **action)
+{
+#ifdef HAVE_IBV_FLOW_DV_SUPPORT
+ *action = mlx5_glue->dv_create_flow_action_dest_devx_tir(tir->obj);
+ return (*action) ? 0 : -1;
+#else
+ /* If no DV support - skip the operation and return success */
+ RTE_SET_USED(tir);
+ *action = 0;
+ return 0;
+#endif
+}
+
/**
* Destroy flow action.
*
#include "mlx5_utils.h"
#include "mlx5_devx.h"
#include "mlx5_flow.h"
-
+#include "mlx5_flow_os.h"
/**
* Modify RQ vlan stripping offload
goto error;
}
#ifdef HAVE_IBV_FLOW_DV_SUPPORT
- hrxq->action = mlx5_glue->dv_create_flow_action_dest_devx_tir
- (hrxq->tir->obj);
- if (!hrxq->action) {
+ if (mlx5_flow_os_create_flow_action_dest_devx_tir(hrxq->tir,
+ &hrxq->action)) {
rte_errno = errno;
goto error;
}