1c6475a0bSAviad Yehezkel /* 2c6475a0bSAviad Yehezkel * Copyright (c) 2018, Mellanox Technologies inc. All rights reserved. 3c6475a0bSAviad Yehezkel * 4c6475a0bSAviad Yehezkel * This software is available to you under a choice of one of two 5c6475a0bSAviad Yehezkel * licenses. You may choose to be licensed under the terms of the GNU 6c6475a0bSAviad Yehezkel * General Public License (GPL) Version 2, available from the file 7c6475a0bSAviad Yehezkel * COPYING in the main directory of this source tree, or the 8c6475a0bSAviad Yehezkel * OpenIB.org BSD license below: 9c6475a0bSAviad Yehezkel * 10c6475a0bSAviad Yehezkel * Redistribution and use in source and binary forms, with or 11c6475a0bSAviad Yehezkel * without modification, are permitted provided that the following 12c6475a0bSAviad Yehezkel * conditions are met: 13c6475a0bSAviad Yehezkel * 14c6475a0bSAviad Yehezkel * - Redistributions of source code must retain the above 15c6475a0bSAviad Yehezkel * copyright notice, this list of conditions and the following 16c6475a0bSAviad Yehezkel * disclaimer. 17c6475a0bSAviad Yehezkel * 18c6475a0bSAviad Yehezkel * - Redistributions in binary form must reproduce the above 19c6475a0bSAviad Yehezkel * copyright notice, this list of conditions and the following 20c6475a0bSAviad Yehezkel * disclaimer in the documentation and/or other materials 21c6475a0bSAviad Yehezkel * provided with the distribution. 22c6475a0bSAviad Yehezkel * 23c6475a0bSAviad Yehezkel * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24c6475a0bSAviad Yehezkel * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25c6475a0bSAviad Yehezkel * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26c6475a0bSAviad Yehezkel * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 27c6475a0bSAviad Yehezkel * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 28c6475a0bSAviad Yehezkel * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 29c6475a0bSAviad Yehezkel * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 30c6475a0bSAviad Yehezkel * SOFTWARE. 31c6475a0bSAviad Yehezkel */ 32c6475a0bSAviad Yehezkel 33c6475a0bSAviad Yehezkel #ifndef MLX5_USER_IOCTL_VERBS_H 34c6475a0bSAviad Yehezkel #define MLX5_USER_IOCTL_VERBS_H 35c6475a0bSAviad Yehezkel 36c6475a0bSAviad Yehezkel #include <linux/types.h> 37c6475a0bSAviad Yehezkel 38c6475a0bSAviad Yehezkel enum mlx5_ib_uapi_flow_action_flags { 39c6475a0bSAviad Yehezkel MLX5_IB_UAPI_FLOW_ACTION_FLAGS_REQUIRE_METADATA = 1 << 0, 40c6475a0bSAviad Yehezkel }; 41c6475a0bSAviad Yehezkel 42b4749bf2SMark Bloch enum mlx5_ib_uapi_flow_table_type { 43b4749bf2SMark Bloch MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_RX = 0x0, 44b4749bf2SMark Bloch MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1, 4552438be4SMark Bloch MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2, 46b4749bf2SMark Bloch }; 47b4749bf2SMark Bloch 4808aeb97cSMark Bloch enum mlx5_ib_uapi_flow_action_packet_reformat_type { 4908aeb97cSMark Bloch MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2 = 0x0, 50a090d0d8SMark Bloch MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L2_TUNNEL = 0x1, 51a090d0d8SMark Bloch MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x2, 52a090d0d8SMark Bloch MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3, 5308aeb97cSMark Bloch }; 5408aeb97cSMark Bloch 55a124edbaSYishai Hadas struct mlx5_ib_uapi_devx_async_cmd_hdr { 56a124edbaSYishai Hadas __aligned_u64 wr_id; 57a124edbaSYishai Hadas __u8 out_data[]; 58a124edbaSYishai Hadas }; 59a124edbaSYishai Hadas 603b113a1eSAriel Levkovich enum mlx5_ib_uapi_dm_type { 613b113a1eSAriel Levkovich MLX5_IB_UAPI_DM_TYPE_MEMIC, 62*25c13324SAriel Levkovich MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM, 63*25c13324SAriel Levkovich MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM, 643b113a1eSAriel Levkovich }; 653b113a1eSAriel Levkovich 66c6475a0bSAviad Yehezkel #endif 67c6475a0bSAviad Yehezkel 68