Introduce flow steering matcher object and its create and destroy methods. This matcher object holds some mlx5 specific driver properties that matches the underlay device specification when an mlx5 flow steering group is created. It will be used in downstream patches to be part of mlx5 specific create flow method.
Showing the changes to include/uapi (1 of 6 files). Show all
Unified · Split
| @@ -33,6 +33,7 @@ · 32 unmodified lines | |||
| 33 | #ifndef MLX5_USER_IOCTL_CMDS_H | 33 | #ifndef MLX5_USER_IOCTL_CMDS_H |
| 34 | #define MLX5_USER_IOCTL_CMDS_H | 34 | #define MLX5_USER_IOCTL_CMDS_H |
| 35 | 35 | ||
| 36 | #include <linux/types.h> | ||
| 36 | #include <rdma/ib_user_ioctl_cmds.h> | 37 | #include <rdma/ib_user_ioctl_cmds.h> |
| 37 | 38 | ||
| 38 | enum mlx5_ib_create_flow_action_attrs { | 39 | enum mlx5_ib_create_flow_action_attrs { |
| @@ -112,10 +113,40 @@ enum mlx5_ib_devx_umem_methods { · 73 unmodified lines | |||
| 112 | MLX5_IB_METHOD_DEVX_UMEM_DEREG, | 113 | MLX5_IB_METHOD_DEVX_UMEM_DEREG, |
| 113 | }; | 114 | }; |
| 114 | 115 | ||
| 115 | enum mlx5_ib_devx_objects { | 116 | enum mlx5_ib_objects { |
| 116 | MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), | 117 | MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), |
| 117 | MLX5_IB_OBJECT_DEVX_OBJ, | 118 | MLX5_IB_OBJECT_DEVX_OBJ, |
| 118 | MLX5_IB_OBJECT_DEVX_UMEM, | 119 | MLX5_IB_OBJECT_DEVX_UMEM, |
| 120 | MLX5_IB_OBJECT_FLOW_MATCHER, | ||
| 121 | }; | ||
| 122 | |||
| 123 | enum mlx5_ib_flow_matcher_create_attrs { | ||
| 124 | MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 125 | MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, | ||
| 126 | MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, | ||
| 127 | MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, | ||
| 128 | }; | ||
| 129 | |||
| 130 | enum mlx5_ib_flow_matcher_destroy_attrs { | ||
| 131 | MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 132 | }; | ||
| 133 | |||
| 134 | enum mlx5_ib_flow_matcher_methods { | ||
| 135 | MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 136 | MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, | ||
| 137 | }; | ||
| 138 | |||
| 139 | #define MLX5_IB_DW_MATCH_PARAM 0x80 | ||
| 140 | |||
| 141 | struct mlx5_ib_match_params { | ||
| 142 | __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; | ||
| 143 | }; | ||
| 144 | |||
| 145 | enum mlx5_ib_flow_type { | ||
| 146 | MLX5_IB_FLOW_TYPE_NORMAL, | ||
| 147 | MLX5_IB_FLOW_TYPE_SNIFFER, | ||
| 148 | MLX5_IB_FLOW_TYPE_ALL_DEFAULT, | ||
| 149 | MLX5_IB_FLOW_TYPE_MC_DEFAULT, | ||
| 119 | }; | 150 | }; |
| 120 | 151 | ||
| 121 | #endif | 152 | #endif |