Saeed Mahameed says: ==================== mlx5-updates-2022-05-02 1) Trivial Misc updates to mlx5 driver 2) From Mark Bloch: Flow steering, general steering refactoring/cleaning An issue with flow steering deletion flow (when creating a rule without dests) turned out to be easy to fix but during the fix some issue with the flow steering creation/deletion flows have been found. The following patch series tries to fix long standing issues with flow steering code and hopefully preventing silly future bugs. A) Fix an issue where a proper dest type wasn't assigned. B) Refactor and fix dests enums values, refactor deletion function and do proper bookkeeping of dests. C) Change mlx5_del_flow_rules() to delete rules when there are no no more rules attached associated with an FTE. D) Don't call hard coded deletion function but use the node's defined one. E) Add a WARN_ON() to catch future bugs when an FTE with dests is deleted. * tag 'mlx5-updates-2022-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux: net/mlx5: fs, an FTE should have no dests when deleted net/mlx5: fs, call the deletion function of the node net/mlx5: fs, delete the FTE when there are no rules attached to it net/mlx5: fs, do proper bookkeeping for forward destinations net/mlx5: fs, add unused destination type net/mlx5: fs, jump to exit point and don't fall through net/mlx5: fs, refactor software deletion rule net/mlx5: fs, split software and IFC flow destination definitions net/mlx5e: TC, set proper dest type net/mlx5e: Remove unused mlx5e_dcbnl_build_rep_netdev function net/mlx5e: Drop error CQE handling from the XSK RX handler net/mlx5: Print initializing field in case of timeout net/mlx5: Delete redundant default assignment of runtime devlink params net/mlx5: Remove useless kfree net/mlx5: use kvfree() for kvzalloc() in mlx5_ct_fs_smfs_matcher_create ====================
Showing the changes to include (2 of 19 files). Show all
Unified · Split
| @@ -40,6 +40,18 @@ · 39 unmodified lines | |||
| 40 | 40 | ||
| 41 | #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v) | 41 | #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v) |
| 42 | 42 | ||
| 43 | enum mlx5_flow_destination_type { | ||
| 44 | MLX5_FLOW_DESTINATION_TYPE_NONE, | ||
| 45 | MLX5_FLOW_DESTINATION_TYPE_VPORT, | ||
| 46 | MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE, | ||
| 47 | MLX5_FLOW_DESTINATION_TYPE_TIR, | ||
| 48 | MLX5_FLOW_DESTINATION_TYPE_FLOW_SAMPLER, | ||
| 49 | MLX5_FLOW_DESTINATION_TYPE_UPLINK, | ||
| 50 | MLX5_FLOW_DESTINATION_TYPE_PORT, | ||
| 51 | MLX5_FLOW_DESTINATION_TYPE_COUNTER, | ||
| 52 | MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE_NUM, | ||
| 53 | }; | ||
| 54 | |||
| 43 | enum { | 55 | enum { |
| 44 | MLX5_FLOW_CONTEXT_ACTION_FWD_NEXT_PRIO = 1 << 16, | 56 | MLX5_FLOW_CONTEXT_ACTION_FWD_NEXT_PRIO = 1 << 16, |
| 45 | MLX5_FLOW_CONTEXT_ACTION_ENCRYPT = 1 << 17, | 57 | MLX5_FLOW_CONTEXT_ACTION_ENCRYPT = 1 << 17, |
| @@ -1806,16 +1806,12 @@ struct mlx5_ifc_cmd_hca_cap_2_bits { · 1805 unmodified lines | |||
| 1806 | u8 reserved_at_c0[0x740]; | 1806 | u8 reserved_at_c0[0x740]; |
| 1807 | }; | 1807 | }; |
| 1808 | 1808 | ||
| 1809 | enum mlx5_flow_destination_type { | 1809 | enum mlx5_ifc_flow_destination_type { |
| 1810 | MLX5_FLOW_DESTINATION_TYPE_VPORT = 0x0, | 1810 | MLX5_IFC_FLOW_DESTINATION_TYPE_VPORT = 0x0, |
| 1811 | MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE = 0x1, | 1811 | MLX5_IFC_FLOW_DESTINATION_TYPE_FLOW_TABLE = 0x1, |
| 1812 | MLX5_FLOW_DESTINATION_TYPE_TIR = 0x2, | 1812 | MLX5_IFC_FLOW_DESTINATION_TYPE_TIR = 0x2, |
| 1813 | MLX5_FLOW_DESTINATION_TYPE_FLOW_SAMPLER = 0x6, | 1813 | MLX5_IFC_FLOW_DESTINATION_TYPE_FLOW_SAMPLER = 0x6, |
| 1814 | MLX5_FLOW_DESTINATION_TYPE_UPLINK = 0x8, | 1814 | MLX5_IFC_FLOW_DESTINATION_TYPE_UPLINK = 0x8, |
| 1815 | |||
| 1816 | MLX5_FLOW_DESTINATION_TYPE_PORT = 0x99, | ||
| 1817 | MLX5_FLOW_DESTINATION_TYPE_COUNTER = 0x100, | ||
| 1818 | MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE_NUM = 0x101, | ||
| 1819 | }; | 1815 | }; |
| 1820 | 1816 | ||
| 1821 | enum mlx5_flow_table_miss_action { | 1817 | enum mlx5_flow_table_miss_action { |