mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
net/mlx5: Implement new destination type TABLE_TYPE
Implement new destination type to support flow transition between different table types. e.g. from NIC_RX to RDMA_RX or from RDMA_TX to NIC_TX. The new destination is described in the tracepoint as follows: "mlx5_fs_add_rule: rule=00000000d53cd0ed fte=0000000048a8a6ed index=0 sw_action=<> [dst] flow_table_type=7 id:262152" Signed-off-by: Mark Zhang <markzhang@nvidia.com> Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
7368f221e0
commit
4f226b71f5
|
|
@ -275,6 +275,10 @@ const char *parse_fs_dst(struct trace_seq *p,
|
|||
fs_dest_range_field_to_str(dst->range.field),
|
||||
dst->range.min, dst->range.max);
|
||||
break;
|
||||
case MLX5_FLOW_DESTINATION_TYPE_TABLE_TYPE:
|
||||
trace_seq_printf(p, "flow_table_type=%u id:%u\n", dst->ft->type,
|
||||
dst->ft->id);
|
||||
break;
|
||||
case MLX5_FLOW_DESTINATION_TYPE_NONE:
|
||||
trace_seq_printf(p, "none\n");
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -653,6 +653,12 @@ static int mlx5_cmd_set_fte(struct mlx5_core_dev *dev,
|
|||
id = dst->dest_attr.sampler_id;
|
||||
ifc_type = MLX5_IFC_FLOW_DESTINATION_TYPE_FLOW_SAMPLER;
|
||||
break;
|
||||
case MLX5_FLOW_DESTINATION_TYPE_TABLE_TYPE:
|
||||
MLX5_SET(dest_format_struct, in_dests,
|
||||
destination_table_type, dst->dest_attr.ft->type);
|
||||
id = dst->dest_attr.ft->id;
|
||||
ifc_type = MLX5_IFC_FLOW_DESTINATION_TYPE_TABLE_TYPE;
|
||||
break;
|
||||
default:
|
||||
id = dst->dest_attr.tir_num;
|
||||
ifc_type = MLX5_IFC_FLOW_DESTINATION_TYPE_TIR;
|
||||
|
|
|
|||
|
|
@ -449,7 +449,8 @@ static bool is_fwd_dest_type(enum mlx5_flow_destination_type type)
|
|||
type == MLX5_FLOW_DESTINATION_TYPE_VPORT ||
|
||||
type == MLX5_FLOW_DESTINATION_TYPE_FLOW_SAMPLER ||
|
||||
type == MLX5_FLOW_DESTINATION_TYPE_TIR ||
|
||||
type == MLX5_FLOW_DESTINATION_TYPE_RANGE;
|
||||
type == MLX5_FLOW_DESTINATION_TYPE_RANGE ||
|
||||
type == MLX5_FLOW_DESTINATION_TYPE_TABLE_TYPE;
|
||||
}
|
||||
|
||||
static bool check_valid_spec(const struct mlx5_flow_spec *spec)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ enum mlx5_flow_destination_type {
|
|||
MLX5_FLOW_DESTINATION_TYPE_COUNTER,
|
||||
MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE_NUM,
|
||||
MLX5_FLOW_DESTINATION_TYPE_RANGE,
|
||||
MLX5_FLOW_DESTINATION_TYPE_TABLE_TYPE,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user