From: Alex Vesker <valex@nvidia.com>
To: <valex@nvidia.com>, <viacheslavo@nvidia.com>,
<thomas@monjalon.net>, <suanmingm@nvidia.com>,
Matan Azrad <matan@nvidia.com>
Cc: <dev@dpdk.org>, <orika@nvidia.com>
Subject: [v2 08/19] net/mlx5: Remove stub HWS support
Date: Thu, 6 Oct 2022 18:03:14 +0300 [thread overview]
Message-ID: <20221006150325.660-9-valex@nvidia.com> (raw)
In-Reply-To: <20221006150325.660-1-valex@nvidia.com>
This change brakes compilation, which is bad, but it will
be fixed for the final submission.
Signed-off-by: Alex Vesker <valex@nvidia.com>
---
drivers/net/mlx5/meson.build | 1 -
drivers/net/mlx5/mlx5.h | 1 -
drivers/net/mlx5/mlx5_dr.c | 383 -----------------------------
drivers/net/mlx5/mlx5_dr.h | 456 -----------------------------------
4 files changed, 841 deletions(-)
delete mode 100644 drivers/net/mlx5/mlx5_dr.c
delete mode 100644 drivers/net/mlx5/mlx5_dr.h
diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
index 6a84d96380..c7ddd4b65c 100644
--- a/drivers/net/mlx5/meson.build
+++ b/drivers/net/mlx5/meson.build
@@ -14,7 +14,6 @@ sources = files(
'mlx5.c',
'mlx5_ethdev.c',
'mlx5_flow.c',
- 'mlx5_dr.c',
'mlx5_flow_meter.c',
'mlx5_flow_dv.c',
'mlx5_flow_hw.c',
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index ea63c29bf9..29657ab273 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -34,7 +34,6 @@
#include "mlx5_os.h"
#include "mlx5_autoconf.h"
#if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
-#include "mlx5_dr.h"
#endif
#define MLX5_SH(dev) (((struct mlx5_priv *)(dev)->data->dev_private)->sh)
diff --git a/drivers/net/mlx5/mlx5_dr.c b/drivers/net/mlx5/mlx5_dr.c
deleted file mode 100644
index 7218708986..0000000000
--- a/drivers/net/mlx5/mlx5_dr.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright (c) 2021 NVIDIA CORPORATION. All rights reserved.
- */
-#include <rte_flow.h>
-
-#include "mlx5_defs.h"
-#if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
-#include "mlx5_dr.h"
-
-/*
- * The following null stubs are prepared in order not to break the linkage
- * before the HW steering low-level implementation is added.
- */
-
-/* Open a context used for direct rule insertion using hardware steering.
- * Each context can contain multiple tables of different types.
- *
- * @param[in] ibv_ctx
- * The ibv context to used for HWS.
- * @param[in] attr
- * Attributes used for context open.
- * @return pointer to mlx5dr_context on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_context *
-mlx5dr_context_open(void *ibv_ctx,
- struct mlx5dr_context_attr *attr)
-{
- (void)ibv_ctx;
- (void)attr;
- return NULL;
-}
-
-/* Close a context used for direct hardware steering.
- *
- * @param[in] ctx
- * mlx5dr context to close.
- * @return zero on success non zero otherwise.
- */
-__rte_weak int
-mlx5dr_context_close(struct mlx5dr_context *ctx)
-{
- (void)ctx;
- return 0;
-}
-
-/* Create a new direct rule table. Each table can contain multiple matchers.
- *
- * @param[in] ctx
- * The context in which the new table will be opened.
- * @param[in] attr
- * Attributes used for table creation.
- * @return pointer to mlx5dr_table on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_table *
-mlx5dr_table_create(struct mlx5dr_context *ctx,
- struct mlx5dr_table_attr *attr)
-{
- (void)ctx;
- (void)attr;
- return NULL;
-}
-
-/* Destroy direct rule table.
- *
- * @param[in] tbl
- * mlx5dr table to destroy.
- * @return zero on success non zero otherwise.
- */
-__rte_weak int mlx5dr_table_destroy(struct mlx5dr_table *tbl)
-{
- (void)tbl;
- return 0;
-}
-
-/* Create new match template based on items mask, the match template
- * will be used for matcher creation.
- *
- * @param[in] items
- * Describe the mask for template creation
- * @param[in] flags
- * Template creation flags
- * @return pointer to mlx5dr_match_template on success NULL otherwise
- */
-__rte_weak struct mlx5dr_match_template *
-mlx5dr_match_template_create(const struct rte_flow_item items[],
- enum mlx5dr_match_template_flags flags)
-{
- (void)items;
- (void)flags;
- return NULL;
-}
-
-/* Destroy match template.
- *
- * @param[in] mt
- * Match template to destroy.
- * @return zero on success non zero otherwise.
- */
-__rte_weak int
-mlx5dr_match_template_destroy(struct mlx5dr_match_template *mt)
-{
- (void)mt;
- return 0;
-}
-
-/* Create a new direct rule matcher. Each matcher can contain multiple rules.
- * Matchers on the table will be processed by priority. Matching fields and
- * mask are described by the match template. In some cases multiple match
- * templates can be used on the same matcher.
- *
- * @param[in] table
- * The table in which the new matcher will be opened.
- * @param[in] mt
- * Array of match templates to be used on matcher.
- * @param[in] num_of_mt
- * Number of match templates in mt array.
- * @param[in] attr
- * Attributes used for matcher creation.
- * @return pointer to mlx5dr_matcher on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_matcher *
-mlx5dr_matcher_create(struct mlx5dr_table *table __rte_unused,
- struct mlx5dr_match_template *mt[] __rte_unused,
- uint8_t num_of_mt __rte_unused,
- struct mlx5dr_matcher_attr *attr __rte_unused)
-{
- return NULL;
-}
-
-/* Destroy direct rule matcher.
- *
- * @param[in] matcher
- * Matcher to destroy.
- * @return zero on success non zero otherwise.
- */
-__rte_weak int
-mlx5dr_matcher_destroy(struct mlx5dr_matcher *matcher __rte_unused)
-{
- return 0;
-}
-
-/* Enqueue create rule operation.
- *
- * @param[in] matcher
- * The matcher in which the new rule will be created.
- * @param[in] mt_idx
- * Match template index to create the rule with.
- * @param[in] items
- * The items used for the value matching.
- * @param[in] rule_actions
- * Rule action to be executed on match.
- * @param[in] num_of_actions
- * Number of rule actions.
- * @param[in] attr
- * Rule creation attributes.
- * @param[in, out] rule_handle
- * A valid rule handle. The handle doesn't require any initialization.
- * @return zero on successful enqueue non zero otherwise.
- */
-__rte_weak int
-mlx5dr_rule_create(struct mlx5dr_matcher *matcher __rte_unused,
- uint8_t mt_idx __rte_unused,
- const struct rte_flow_item items[] __rte_unused,
- struct mlx5dr_rule_action rule_actions[] __rte_unused,
- uint8_t num_of_actions __rte_unused,
- struct mlx5dr_rule_attr *attr __rte_unused,
- struct mlx5dr_rule *rule_handle __rte_unused)
-{
- return 0;
-}
-
-/* Enqueue destroy rule operation.
- *
- * @param[in] rule
- * The rule destruction to enqueue.
- * @param[in] attr
- * Rule destruction attributes.
- * @return zero on successful enqueue non zero otherwise.
- */
-__rte_weak int
-mlx5dr_rule_destroy(struct mlx5dr_rule *rule __rte_unused,
- struct mlx5dr_rule_attr *attr __rte_unused)
-{
- return 0;
-}
-
-/* Create direct rule drop action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_dest_drop(struct mlx5dr_context *ctx __rte_unused,
- uint32_t flags __rte_unused)
-{
- return NULL;
-}
-
-/* Create direct rule default miss action.
- * Defaults are RX: Drop TX: Wire.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_default_miss(struct mlx5dr_context *ctx __rte_unused,
- uint32_t flags __rte_unused)
-{
- return NULL;
-}
-
-/* Create direct rule goto table action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] tbl
- * Destination table.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_dest_table(struct mlx5dr_context *ctx __rte_unused,
- struct mlx5dr_table *tbl __rte_unused,
- uint32_t flags __rte_unused)
-{
- return NULL;
-}
-
-/* Create direct rule goto TIR action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] obj
- * Direct rule TIR devx object.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx __rte_unused,
- struct mlx5dr_devx_obj *obj __rte_unused,
- uint32_t flags __rte_unused)
-{
- return NULL;
-}
-
-/* Create direct rule TAG action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_tag(struct mlx5dr_context *ctx __rte_unused,
- uint32_t flags __rte_unused)
-{
- return NULL;
-}
-
-/* Create direct rule counter action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] obj
- * Direct rule counter devx object.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_counter(struct mlx5dr_context *ctx,
- struct mlx5dr_devx_obj *obj,
- uint32_t flags);
-
-/* Create direct rule reformat action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] reformat_type
- * Type of reformat.
- * @param[in] data_sz
- * Size in bytes of data.
- * @param[in] inline_data
- * Header data array in case of inline action.
- * @param[in] log_bulk_size
- * Number of unique values used with this pattern.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_reformat(struct mlx5dr_context *ctx __rte_unused,
- enum mlx5dr_action_reformat_type reformat_type __rte_unused,
- size_t data_sz __rte_unused,
- void *inline_data __rte_unused,
- uint32_t log_bulk_size __rte_unused,
- uint32_t flags __rte_unused)
-{
- return NULL;
-}
-
-/* Create direct rule modify header action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] pattern_sz
- * Byte size of the pattern array.
- * @param[in] pattern
- * PRM format modify pattern action array.
- * @param[in] log_bulk_size
- * Number of unique values used with this pattern.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-__rte_weak struct mlx5dr_action *
-mlx5dr_action_create_modify_header(struct mlx5dr_context *ctx,
- size_t pattern_sz,
- rte_be64_t pattern[],
- uint32_t log_bulk_size,
- uint32_t flags);
-
-/* Destroy direct rule action.
- *
- * @param[in] action
- * The action to destroy.
- * @return zero on success non zero otherwise.
- */
-__rte_weak int
-mlx5dr_action_destroy(struct mlx5dr_action *action __rte_unused)
-{
- return 0;
-}
-
-/* Poll queue for rule creation and deletions completions.
- *
- * @param[in] ctx
- * The context to which the queue belong to.
- * @param[in] queue_id
- * The id of the queue to poll.
- * @param[in, out] res
- * Completion array.
- * @param[in] res_nb
- * Maximum number of results to return.
- * @return negative number on failure, the number of completions otherwise.
- */
-__rte_weak int
-mlx5dr_send_queue_poll(struct mlx5dr_context *ctx __rte_unused,
- uint16_t queue_id __rte_unused,
- struct rte_flow_op_result res[] __rte_unused,
- uint32_t res_nb __rte_unused)
-{
- return 0;
-}
-
-/* Perform an action on the queue
- *
- * @param[in] ctx
- * The context to which the queue belong to.
- * @param[in] queue_id
- * The id of the queue to perform the action on.
- * @param[in] actions
- * Actions to perform on the queue. (enum mlx5dr_send_queue_actions)
- * @return zero on success non zero otherwise.
- */
-__rte_weak int
-mlx5dr_send_queue_action(struct mlx5dr_context *ctx __rte_unused,
- uint16_t queue_id __rte_unused,
- uint32_t actions __rte_unused)
-{
- return 0;
-}
-
-#endif
diff --git a/drivers/net/mlx5/mlx5_dr.h b/drivers/net/mlx5/mlx5_dr.h
deleted file mode 100644
index d0b2c15652..0000000000
--- a/drivers/net/mlx5/mlx5_dr.h
+++ /dev/null
@@ -1,456 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright (c) 2021 NVIDIA CORPORATION. All rights reserved.
- */
-
-#ifndef MLX5_DR_H_
-#define MLX5_DR_H_
-
-#include <rte_flow.h>
-
-struct mlx5dr_context;
-struct mlx5dr_table;
-struct mlx5dr_matcher;
-struct mlx5dr_rule;
-
-enum mlx5dr_table_type {
- MLX5DR_TABLE_TYPE_NIC_RX,
- MLX5DR_TABLE_TYPE_NIC_TX,
- MLX5DR_TABLE_TYPE_FDB,
- MLX5DR_TABLE_TYPE_MAX,
-};
-
-enum mlx5dr_matcher_resource_mode {
- /* Allocate resources based on number of rules with minimal failure probability */
- MLX5DR_MATCHER_RESOURCE_MODE_RULE,
- /* Allocate fixed size hash table based on given column and rows */
- MLX5DR_MATCHER_RESOURCE_MODE_HTABLE,
-};
-
-enum mlx5dr_action_flags {
- MLX5DR_ACTION_FLAG_ROOT_RX = 1 << 0,
- MLX5DR_ACTION_FLAG_ROOT_TX = 1 << 1,
- MLX5DR_ACTION_FLAG_ROOT_FDB = 1 << 2,
- MLX5DR_ACTION_FLAG_HWS_RX = 1 << 3,
- MLX5DR_ACTION_FLAG_HWS_TX = 1 << 4,
- MLX5DR_ACTION_FLAG_HWS_FDB = 1 << 5,
- MLX5DR_ACTION_FLAG_INLINE = 1 << 6,
-};
-
-enum mlx5dr_action_reformat_type {
- MLX5DR_ACTION_REFORMAT_TYPE_TNL_L2_TO_L2,
- MLX5DR_ACTION_REFORMAT_TYPE_L2_TO_TNL_L2,
- MLX5DR_ACTION_REFORMAT_TYPE_TNL_L3_TO_L2,
- MLX5DR_ACTION_REFORMAT_TYPE_L2_TO_TNL_L3,
-};
-
-enum mlx5dr_match_template_flags {
- /* Allow relaxed matching by skipping derived dependent match fields. */
- MLX5DR_MATCH_TEMPLATE_FLAG_RELAXED_MATCH = 1,
-};
-
-enum mlx5dr_send_queue_actions {
- /* Start executing all pending queued rules and write to HW */
- MLX5DR_SEND_QUEUE_ACTION_DRAIN = 1 << 0,
-};
-
-struct mlx5dr_context_attr {
- uint16_t queues;
- uint16_t queue_size;
- size_t initial_log_ste_memory;
- /* Optional PD used for allocating res ources */
- struct ibv_pd *pd;
-};
-
-struct mlx5dr_table_attr {
- enum mlx5dr_table_type type;
- uint32_t level;
-};
-
-struct mlx5dr_matcher_attr {
- uint32_t priority;
- enum mlx5dr_matcher_resource_mode mode;
- union {
- struct {
- uint8_t sz_row_log;
- uint8_t sz_col_log;
- } table;
-
- struct {
- uint8_t num_log;
- } rule;
- };
-};
-
-struct mlx5dr_rule_attr {
- uint16_t queue_id;
- void *user_data;
- uint32_t burst:1;
-};
-
-struct mlx5dr_devx_obj {
- struct mlx5dv_devx_obj *obj;
- uint32_t id;
-};
-
-struct mlx5dr_rule_action {
- struct mlx5dr_action *action;
- union {
- struct {
- uint32_t value;
- } tag;
-
- struct {
- uint32_t offset;
- } counter;
-
- struct {
- uint32_t offset;
- uint8_t *data;
- } modify_header;
-
- struct {
- uint32_t offset;
- uint8_t *data;
- } reformat;
-
- struct {
- rte_be32_t vlan_hdr;
- } push_vlan;
- };
-};
-
-enum {
- MLX5DR_MATCH_TAG_SZ = 32,
- MLX5DR_JAMBO_TAG_SZ = 44,
-};
-
-enum mlx5dr_rule_status {
- MLX5DR_RULE_STATUS_UNKNOWN,
- MLX5DR_RULE_STATUS_CREATING,
- MLX5DR_RULE_STATUS_CREATED,
- MLX5DR_RULE_STATUS_DELETING,
- MLX5DR_RULE_STATUS_DELETED,
- MLX5DR_RULE_STATUS_FAILED,
-};
-
-struct mlx5dr_rule {
- struct mlx5dr_matcher *matcher;
- union {
- uint8_t match_tag[MLX5DR_MATCH_TAG_SZ];
- struct ibv_flow *flow;
- };
- enum mlx5dr_rule_status status;
- uint32_t rtc_used; /* The RTC into which the STE was inserted */
-};
-
-/* Open a context used for direct rule insertion using hardware steering.
- * Each context can contain multiple tables of different types.
- *
- * @param[in] ibv_ctx
- * The ibv context to used for HWS.
- * @param[in] attr
- * Attributes used for context open.
- * @return pointer to mlx5dr_context on success NULL otherwise.
- */
-struct mlx5dr_context *
-mlx5dr_context_open(void *ibv_ctx,
- struct mlx5dr_context_attr *attr);
-
-/* Close a context used for direct hardware steering.
- *
- * @param[in] ctx
- * mlx5dr context to close.
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_context_close(struct mlx5dr_context *ctx);
-
-/* Create a new direct rule table. Each table can contain multiple matchers.
- *
- * @param[in] ctx
- * The context in which the new table will be opened.
- * @param[in] attr
- * Attributes used for table creation.
- * @return pointer to mlx5dr_table on success NULL otherwise.
- */
-struct mlx5dr_table *
-mlx5dr_table_create(struct mlx5dr_context *ctx,
- struct mlx5dr_table_attr *attr);
-
-/* Destroy direct rule table.
- *
- * @param[in] tbl
- * mlx5dr table to destroy.
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_table_destroy(struct mlx5dr_table *tbl);
-
-/* Create new match template based on items mask, the match template
- * will be used for matcher creation.
- *
- * @param[in] items
- * Describe the mask for template creation
- * @param[in] flags
- * Template creation flags
- * @return pointer to mlx5dr_match_template on success NULL otherwise
- */
-struct mlx5dr_match_template *
-mlx5dr_match_template_create(const struct rte_flow_item items[],
- enum mlx5dr_match_template_flags flags);
-
-/* Destroy match template.
- *
- * @param[in] mt
- * Match template to destroy.
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_match_template_destroy(struct mlx5dr_match_template *mt);
-
-/* Create a new direct rule matcher. Each matcher can contain multiple rules.
- * Matchers on the table will be processed by priority. Matching fields and
- * mask are described by the match template. In some cases multiple match
- * templates can be used on the same matcher.
- *
- * @param[in] table
- * The table in which the new matcher will be opened.
- * @param[in] mt
- * Array of match templates to be used on matcher.
- * @param[in] num_of_mt
- * Number of match templates in mt array.
- * @param[in] attr
- * Attributes used for matcher creation.
- * @return pointer to mlx5dr_matcher on success NULL otherwise.
- */
-struct mlx5dr_matcher *
-mlx5dr_matcher_create(struct mlx5dr_table *table,
- struct mlx5dr_match_template *mt[],
- uint8_t num_of_mt,
- struct mlx5dr_matcher_attr *attr);
-
-/* Destroy direct rule matcher.
- *
- * @param[in] matcher
- * Matcher to destroy.
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_matcher_destroy(struct mlx5dr_matcher *matcher);
-
-/* Get the size of the rule handle (mlx5dr_rule) to be used on rule creation.
- *
- * @return size in bytes of rule handle struct.
- */
-size_t mlx5dr_rule_get_handle_size(void);
-
-/* Enqueue create rule operation.
- *
- * @param[in] matcher
- * The matcher in which the new rule will be created.
- * @param[in] mt_idx
- * Match template index to create the rule with.
- * @param[in] items
- * The items used for the value matching.
- * @param[in] rule_actions
- * Rule action to be executed on match.
- * @param[in] num_of_actions
- * Number of rule actions.
- * @param[in] attr
- * Rule creation attributes.
- * @param[in, out] rule_handle
- * A valid rule handle. The handle doesn't require any initialization.
- * @return zero on successful enqueue non zero otherwise.
- */
-int mlx5dr_rule_create(struct mlx5dr_matcher *matcher,
- uint8_t mt_idx,
- const struct rte_flow_item items[],
- struct mlx5dr_rule_action rule_actions[],
- uint8_t num_of_actions,
- struct mlx5dr_rule_attr *attr,
- struct mlx5dr_rule *rule_handle);
-
-/* Enqueue destroy rule operation.
- *
- * @param[in] rule
- * The rule destruction to enqueue.
- * @param[in] attr
- * Rule destruction attributes.
- * @return zero on successful enqueue non zero otherwise.
- */
-int mlx5dr_rule_destroy(struct mlx5dr_rule *rule,
- struct mlx5dr_rule_attr *attr);
-
-/* Create direct rule drop action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_dest_drop(struct mlx5dr_context *ctx,
- uint32_t flags);
-
-/* Create direct rule default miss action.
- * Defaults are RX: Drop TX: Wire.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_default_miss(struct mlx5dr_context *ctx,
- uint32_t flags);
-
-/* Create direct rule goto table action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] tbl
- * Destination table.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_dest_table(struct mlx5dr_context *ctx,
- struct mlx5dr_table *tbl,
- uint32_t flags);
-
-/* Create direct rule goto TIR action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] obj
- * Direct rule TIR devx object.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_dest_tir(struct mlx5dr_context *ctx,
- struct mlx5dr_devx_obj *obj,
- uint32_t flags);
-
-/* Create direct rule TAG action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_tag(struct mlx5dr_context *ctx,
- uint32_t flags);
-
-/* Create direct rule counter action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] obj
- * Direct rule counter devx object.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_counter(struct mlx5dr_context *ctx,
- struct mlx5dr_devx_obj *obj,
- uint32_t flags);
-
-/* Create direct rule reformat action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] reformat_type
- * Type of reformat.
- * @param[in] data_sz
- * Size in bytes of data.
- * @param[in] inline_data
- * Header data array in case of inline action.
- * @param[in] log_bulk_size
- * Number of unique values used with this pattern.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_reformat(struct mlx5dr_context *ctx,
- enum mlx5dr_action_reformat_type reformat_type,
- size_t data_sz,
- void *inline_data,
- uint32_t log_bulk_size,
- uint32_t flags);
-
-/* Create direct rule modify header action.
- *
- * @param[in] ctx
- * The context in which the new action will be created.
- * @param[in] pattern_sz
- * Byte size of the pattern array.
- * @param[in] pattern
- * PRM format modify pattern action array.
- * @param[in] log_bulk_size
- * Number of unique values used with this pattern.
- * @param[in] flags
- * Action creation flags. (enum mlx5dr_action_flags)
- * @return pointer to mlx5dr_action on success NULL otherwise.
- */
-struct mlx5dr_action *
-mlx5dr_action_create_modify_header(struct mlx5dr_context *ctx,
- size_t pattern_sz,
- rte_be64_t pattern[],
- uint32_t log_bulk_size,
- uint32_t flags);
-
-/* Destroy direct rule action.
- *
- * @param[in] action
- * The action to destroy.
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_action_destroy(struct mlx5dr_action *action);
-
-/* Poll queue for rule creation and deletions completions.
- *
- * @param[in] ctx
- * The context to which the queue belong to.
- * @param[in] queue_id
- * The id of the queue to poll.
- * @param[in, out] res
- * Completion array.
- * @param[in] res_nb
- * Maximum number of results to return.
- * @return negative number on failure, the number of completions otherwise.
- */
-int mlx5dr_send_queue_poll(struct mlx5dr_context *ctx,
- uint16_t queue_id,
- struct rte_flow_op_result res[],
- uint32_t res_nb);
-
-/* Perform an action on the queue
- *
- * @param[in] ctx
- * The context to which the queue belong to.
- * @param[in] queue_id
- * The id of the queue to perform the action on.
- * @param[in] actions
- * Actions to perform on the queue. (enum mlx5dr_send_queue_actions)
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_send_queue_action(struct mlx5dr_context *ctx,
- uint16_t queue_id,
- uint32_t actions);
-
-/* Dump HWS info
- *
- * @param[in] ctx
- * The context which to dump the info from.
- * @param[in] f
- * The file to write the dump to.
- * @return zero on success non zero otherwise.
- */
-int mlx5dr_debug_dump(struct mlx5dr_context *ctx, FILE *f);
-
-#endif
--
2.18.1
next prev parent reply other threads:[~2022-10-06 15:05 UTC|newest]
Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-22 19:03 [v1 00/19] net/mlx5: Add HW steering low level support Alex Vesker
2022-09-22 19:03 ` [v1 01/19] net/mlx5: split flow item translation Alex Vesker
2022-09-22 19:03 ` [v1 02/19] net/mlx5: split flow item matcher and value translation Alex Vesker
2022-09-22 19:03 ` [v1 03/19] net/mlx5: add hardware steering item translation function Alex Vesker
2022-09-22 19:03 ` [v1 04/19] net/mlx5: add port to metadata conversion Alex Vesker
2022-09-22 19:03 ` [v1 05/19] common/mlx5: query set capability of registers Alex Vesker
2022-09-22 19:03 ` [v1 06/19] net/mlx5: provide the available tag registers Alex Vesker
2022-09-22 19:03 ` [v1 07/19] net/mlx5: Add additional glue functions for HWS Alex Vesker
2022-09-22 19:03 ` [v1 08/19] net/mlx5: Remove stub HWS support Alex Vesker
2022-09-22 19:03 ` [v1 09/19] net/mlx5/hws: Add HWS command layer Alex Vesker
2022-09-22 19:03 ` [v1 10/19] net/mlx5/hws: Add HWS pool and buddy Alex Vesker
2022-09-22 19:03 ` [v1 11/19] net/mlx5/hws: Add HWS send layer Alex Vesker
2022-09-22 19:03 ` [v1 12/19] net/mlx5/hws: Add HWS definer layer Alex Vesker
2022-09-22 19:03 ` [v1 13/19] net/mlx5/hws: Add HWS context object Alex Vesker
2022-09-22 19:03 ` [v1 14/19] net/mlx5/hws: Add HWS table object Alex Vesker
2022-09-22 19:03 ` [v1 15/19] net/mlx5/hws: Add HWS matcher object Alex Vesker
2022-09-22 19:03 ` [v1 16/19] net/mlx5/hws: Add HWS rule object Alex Vesker
2022-09-22 19:03 ` [v1 17/19] net/mlx5/hws: Add HWS action object Alex Vesker
2022-09-22 19:03 ` [v1 18/19] net/mlx5/hws: Add HWS debug layer Alex Vesker
2022-09-22 19:03 ` [v1 19/19] net/mlx5/hws: Enable HWS Alex Vesker
2022-10-06 15:03 ` [v2 00/19] net/mlx5: Add HW steering low level support Alex Vesker
2022-10-06 15:03 ` [v2 01/19] net/mlx5: split flow item translation Alex Vesker
2022-10-06 15:03 ` [v2 02/19] net/mlx5: split flow item matcher and value translation Alex Vesker
2022-10-06 15:03 ` [v2 03/19] net/mlx5: add hardware steering item translation function Alex Vesker
2022-10-06 15:03 ` [v2 04/19] net/mlx5: add port to metadata conversion Alex Vesker
2022-10-06 15:03 ` [v2 05/19] common/mlx5: query set capability of registers Alex Vesker
2022-10-06 15:03 ` [v2 06/19] net/mlx5: provide the available tag registers Alex Vesker
2022-10-06 15:03 ` [v2 07/19] net/mlx5: Add additional glue functions for HWS Alex Vesker
2022-10-06 15:03 ` Alex Vesker [this message]
2022-10-06 15:03 ` [v2 09/19] net/mlx5/hws: Add HWS command layer Alex Vesker
2022-10-06 15:03 ` [v2 10/19] net/mlx5/hws: Add HWS pool and buddy Alex Vesker
2022-10-06 15:03 ` [v2 11/19] net/mlx5/hws: Add HWS send layer Alex Vesker
2022-10-06 15:03 ` [v2 12/19] net/mlx5/hws: Add HWS definer layer Alex Vesker
2022-10-06 15:03 ` [v2 13/19] net/mlx5/hws: Add HWS context object Alex Vesker
2022-10-06 15:03 ` [v2 14/19] net/mlx5/hws: Add HWS table object Alex Vesker
2022-10-06 15:03 ` [v2 15/19] net/mlx5/hws: Add HWS matcher object Alex Vesker
2022-10-06 15:03 ` [v2 16/19] net/mlx5/hws: Add HWS rule object Alex Vesker
2022-10-06 15:03 ` [v2 17/19] net/mlx5/hws: Add HWS action object Alex Vesker
2022-10-06 15:03 ` [v2 18/19] net/mlx5/hws: Add HWS debug layer Alex Vesker
2022-10-06 15:03 ` [v2 19/19] net/mlx5/hws: Enable HWS Alex Vesker
2022-10-14 11:48 ` [v3 00/18] net/mlx5: Add HW steering low level support Alex Vesker
2022-10-14 11:48 ` [v3 01/18] net/mlx5: split flow item translation Alex Vesker
2022-10-14 11:48 ` [v3 02/18] net/mlx5: split flow item matcher and value translation Alex Vesker
2022-10-14 11:48 ` [v3 03/18] net/mlx5: add hardware steering item translation function Alex Vesker
2022-10-14 11:48 ` [v3 04/18] net/mlx5: add port to metadata conversion Alex Vesker
2022-10-14 11:48 ` [v3 05/18] common/mlx5: query set capability of registers Alex Vesker
2022-10-14 11:48 ` [v3 06/18] net/mlx5: provide the available tag registers Alex Vesker
2022-10-14 11:48 ` [v3 07/18] net/mlx5: Add additional glue functions for HWS Alex Vesker
2022-10-14 11:48 ` [v3 08/18] net/mlx5/hws: Add HWS command layer Alex Vesker
2022-10-14 11:48 ` [v3 09/18] net/mlx5/hws: Add HWS pool and buddy Alex Vesker
2022-10-14 11:48 ` [v3 10/18] net/mlx5/hws: Add HWS send layer Alex Vesker
2022-10-14 11:48 ` [v3 11/18] net/mlx5/hws: Add HWS definer layer Alex Vesker
2022-10-14 11:48 ` [v3 12/18] net/mlx5/hws: Add HWS context object Alex Vesker
2022-10-14 11:48 ` [v3 13/18] net/mlx5/hws: Add HWS table object Alex Vesker
2022-10-14 11:48 ` [v3 14/18] net/mlx5/hws: Add HWS matcher object Alex Vesker
2022-10-14 11:48 ` [v3 15/18] net/mlx5/hws: Add HWS rule object Alex Vesker
2022-10-14 11:48 ` [v3 16/18] net/mlx5/hws: Add HWS action object Alex Vesker
2022-10-14 11:48 ` [v3 17/18] net/mlx5/hws: Add HWS debug layer Alex Vesker
2022-10-14 11:48 ` [v3 18/18] net/mlx5/hws: Enable HWS Alex Vesker
2022-10-19 14:42 ` [v4 00/18] net/mlx5: Add HW steering low level support Alex Vesker
2022-10-19 14:42 ` [v4 01/18] net/mlx5: split flow item translation Alex Vesker
2022-10-19 14:42 ` [v4 02/18] net/mlx5: split flow item matcher and value translation Alex Vesker
2022-10-19 14:42 ` [v4 03/18] net/mlx5: add hardware steering item translation function Alex Vesker
2022-10-19 14:42 ` [v4 04/18] net/mlx5: add port to metadata conversion Alex Vesker
2022-10-19 14:42 ` [v4 05/18] common/mlx5: query set capability of registers Alex Vesker
2022-10-19 14:42 ` [v4 06/18] net/mlx5: provide the available tag registers Alex Vesker
2022-10-19 14:42 ` [v4 07/18] net/mlx5: Add additional glue functions for HWS Alex Vesker
2022-10-19 14:42 ` [v4 08/18] net/mlx5/hws: Add HWS command layer Alex Vesker
2022-10-19 14:42 ` [v4 09/18] net/mlx5/hws: Add HWS pool and buddy Alex Vesker
2022-10-19 14:42 ` [v4 10/18] net/mlx5/hws: Add HWS send layer Alex Vesker
2022-10-19 14:42 ` [v4 11/18] net/mlx5/hws: Add HWS definer layer Alex Vesker
2022-10-19 14:42 ` [v4 12/18] net/mlx5/hws: Add HWS context object Alex Vesker
2022-10-19 14:42 ` [v4 13/18] net/mlx5/hws: Add HWS table object Alex Vesker
2022-10-19 14:42 ` [v4 14/18] net/mlx5/hws: Add HWS matcher object Alex Vesker
2022-10-19 14:42 ` [v4 15/18] net/mlx5/hws: Add HWS rule object Alex Vesker
2022-10-19 14:42 ` [v4 16/18] net/mlx5/hws: Add HWS action object Alex Vesker
2022-10-19 14:42 ` [v4 17/18] net/mlx5/hws: Add HWS debug layer Alex Vesker
2022-10-19 14:42 ` [v4 18/18] net/mlx5/hws: Enable HWS Alex Vesker
2022-10-19 20:57 ` [v5 00/18] net/mlx5: Add HW steering low level support Alex Vesker
2022-10-19 20:57 ` [v5 01/18] net/mlx5: split flow item translation Alex Vesker
2022-10-19 20:57 ` [v5 02/18] net/mlx5: split flow item matcher and value translation Alex Vesker
2022-10-19 20:57 ` [v5 03/18] net/mlx5: add hardware steering item translation function Alex Vesker
2022-10-19 20:57 ` [v5 04/18] net/mlx5: add port to metadata conversion Alex Vesker
2022-10-19 20:57 ` [v5 05/18] common/mlx5: query set capability of registers Alex Vesker
2022-10-19 20:57 ` [v5 06/18] net/mlx5: provide the available tag registers Alex Vesker
2022-10-19 20:57 ` [v5 07/18] net/mlx5: Add additional glue functions for HWS Alex Vesker
2022-10-19 20:57 ` [v5 08/18] net/mlx5/hws: Add HWS command layer Alex Vesker
2022-10-19 20:57 ` [v5 09/18] net/mlx5/hws: Add HWS pool and buddy Alex Vesker
2022-10-19 20:57 ` [v5 10/18] net/mlx5/hws: Add HWS send layer Alex Vesker
2022-10-19 20:57 ` [v5 11/18] net/mlx5/hws: Add HWS definer layer Alex Vesker
2022-10-19 20:57 ` [v5 12/18] net/mlx5/hws: Add HWS context object Alex Vesker
2022-10-19 20:57 ` [v5 13/18] net/mlx5/hws: Add HWS table object Alex Vesker
2022-10-19 20:57 ` [v5 14/18] net/mlx5/hws: Add HWS matcher object Alex Vesker
2022-10-19 20:57 ` [v5 15/18] net/mlx5/hws: Add HWS rule object Alex Vesker
2022-10-19 20:57 ` [v5 16/18] net/mlx5/hws: Add HWS action object Alex Vesker
2022-10-19 20:57 ` [v5 17/18] net/mlx5/hws: Add HWS debug layer Alex Vesker
2022-10-19 20:57 ` [v5 18/18] net/mlx5/hws: Enable HWS Alex Vesker
2022-10-20 15:57 ` [v6 00/18] net/mlx5: Add HW steering low level support Alex Vesker
2022-10-20 15:57 ` [v6 01/18] net/mlx5: split flow item translation Alex Vesker
2022-10-24 6:47 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 02/18] net/mlx5: split flow item matcher and value translation Alex Vesker
2022-10-24 6:49 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 03/18] net/mlx5: add hardware steering item translation function Alex Vesker
2022-10-24 6:50 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 04/18] net/mlx5: add port to metadata conversion Alex Vesker
2022-10-24 6:50 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 05/18] common/mlx5: query set capability of registers Alex Vesker
2022-10-24 6:50 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 06/18] net/mlx5: provide the available tag registers Alex Vesker
2022-10-24 6:51 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 07/18] net/mlx5: Add additional glue functions for HWS Alex Vesker
2022-10-24 6:52 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 08/18] net/mlx5/hws: Add HWS command layer Alex Vesker
2022-10-24 6:52 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 09/18] net/mlx5/hws: Add HWS pool and buddy Alex Vesker
2022-10-24 6:52 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 10/18] net/mlx5/hws: Add HWS send layer Alex Vesker
2022-10-24 6:53 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 11/18] net/mlx5/hws: Add HWS definer layer Alex Vesker
2022-10-24 6:53 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 12/18] net/mlx5/hws: Add HWS context object Alex Vesker
2022-10-24 6:53 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 13/18] net/mlx5/hws: Add HWS table object Alex Vesker
2022-10-24 6:54 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 14/18] net/mlx5/hws: Add HWS matcher object Alex Vesker
2022-10-24 6:54 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 15/18] net/mlx5/hws: Add HWS rule object Alex Vesker
2022-10-24 6:54 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 16/18] net/mlx5/hws: Add HWS action object Alex Vesker
2022-10-20 15:57 ` [v6 17/18] net/mlx5/hws: Add HWS debug layer Alex Vesker
2022-10-24 6:54 ` Slava Ovsiienko
2022-10-20 15:57 ` [v6 18/18] net/mlx5/hws: Enable HWS Alex Vesker
2022-10-24 6:54 ` Slava Ovsiienko
2022-10-24 10:56 ` [v6 00/18] net/mlx5: Add HW steering low level support Raslan Darawsheh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221006150325.660-9-valex@nvidia.com \
--to=valex@nvidia.com \
--cc=dev@dpdk.org \
--cc=matan@nvidia.com \
--cc=orika@nvidia.com \
--cc=suanmingm@nvidia.com \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.