18a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier/* 28a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * Copyright (c) 2005 Topspin Communications. All rights reserved. 333b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier * Copyright (c) 2005, 2006 Cisco Systems. All rights reserved. 491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * Copyright (c) 2005 PathScale, Inc. All rights reserved. 58bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak * Copyright (c) 2006 Mellanox Technologies. All rights reserved. 68a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * 78a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * This software is available to you under a choice of one of two 88a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * licenses. You may choose to be licensed under the terms of the GNU 98a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * General Public License (GPL) Version 2, available from the file 108a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * COPYING in the main directory of this source tree, or the 118a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * OpenIB.org BSD license below: 128a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * 138a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * Redistribution and use in source and binary forms, with or 148a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * without modification, are permitted provided that the following 158a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * conditions are met: 168a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * 178a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * - Redistributions of source code must retain the above 188a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * copyright notice, this list of conditions and the following 198a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * disclaimer. 208a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * 218a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * - Redistributions in binary form must reproduce the above 228a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * copyright notice, this list of conditions and the following 238a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * disclaimer in the documentation and/or other materials 248a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * provided with the distribution. 258a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * 268a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 278a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 288a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 298a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 308a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 318a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 328a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 338a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * SOFTWARE. 348a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier */ 358a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 368a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier#ifndef IB_USER_VERBS_H 378a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier#define IB_USER_VERBS_H 388a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 398a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier#include <linux/types.h> 408a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 418a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier/* 428a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * Increment this value if any changes that break userspace ABI 438a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * compatibility are made. 448a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier */ 45ea88fd16d6e85f4bc71b6053180b64f04be1ff14Dotan Barak#define IB_USER_VERBS_ABI_VERSION 6 46400dbc96583ff3b8ad4c09bd7e9dcd35a6215922Igor Ivanov#define IB_USER_VERBS_CMD_THRESHOLD 50 478a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 488a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierenum { 498a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_GET_CONTEXT, 508a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_QUERY_DEVICE, 518a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_QUERY_PORT, 528a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_ALLOC_PD, 538a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_DEALLOC_PD, 548a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_CREATE_AH, 558a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_MODIFY_AH, 568a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_QUERY_AH, 578a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_DESTROY_AH, 588a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_REG_MR, 598a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_REG_SMR, 608a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_REREG_MR, 618a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_QUERY_MR, 628a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_DEREG_MR, 638a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_ALLOC_MW, 648a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_BIND_MW, 658a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_DEALLOC_MW, 666b73597e7062118c0549c2702bfb7d273518c906Roland Dreier IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL, 678a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_CREATE_CQ, 688a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_RESIZE_CQ, 698a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_DESTROY_CQ, 708a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_POLL_CQ, 718a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_PEEK_CQ, 728a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_REQ_NOTIFY_CQ, 738a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_CREATE_QP, 748a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_QUERY_QP, 758a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_MODIFY_QP, 768a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_DESTROY_QP, 778a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_POST_SEND, 788a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_POST_RECV, 798a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier IB_USER_VERBS_CMD_ATTACH_MCAST, 80f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier IB_USER_VERBS_CMD_DETACH_MCAST, 81f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier IB_USER_VERBS_CMD_CREATE_SRQ, 82f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier IB_USER_VERBS_CMD_MODIFY_SRQ, 83f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier IB_USER_VERBS_CMD_QUERY_SRQ, 84f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier IB_USER_VERBS_CMD_DESTROY_SRQ, 8553d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty IB_USER_VERBS_CMD_POST_SRQ_RECV, 8653d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty IB_USER_VERBS_CMD_OPEN_XRCD, 878541f8de0583f562c652008a4e7a65e537842a7eSean Hefty IB_USER_VERBS_CMD_CLOSE_XRCD, 8842849b2697c36abdafa6aef64186b15055392046Sean Hefty IB_USER_VERBS_CMD_CREATE_XSRQ, 89436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion IB_USER_VERBS_CMD_OPEN_QP, 90f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud}; 91f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud 92f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaudenum { 93f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud IB_USER_VERBS_EX_CMD_CREATE_FLOW = IB_USER_VERBS_CMD_THRESHOLD, 94f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud IB_USER_VERBS_EX_CMD_DESTROY_FLOW 958a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 968a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 978a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier/* 988a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * Make sure that all structs defined in this file remain laid out so 998a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * that they pack the same way on 32-bit and 64-bit architectures (to 1008a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * avoid incompatibility between 32-bit userspace and 64-bit kernels). 10191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * Specifically: 10291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * - Do not use pointer types -- pass pointers in __u64 instead. 10391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * - Make sure that any structure larger than 4 bytes is padded to a 10491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * multiple of 8 bytes. Otherwise the structure size will be 10591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * different between 32-bit and 64-bit architectures. 1068a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier */ 1078a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 1088a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_async_event_desc { 1098a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 element; 1108a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 event_type; /* enum ib_event_type */ 1118a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 reserved; 1128a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 1138a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 1148a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_comp_event_desc { 1158a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 cq_handle; 1168a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 1178a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 1188a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier/* 1198a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * All commands from userspace should start with a __u32 command field 1208a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * followed by __u16 in_words and out_words fields (which give the 1218a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * length of the command block and response buffer if any in 32-bit 1228a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * words). The kernel driver will read these fields first and read 1238a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * the rest of the command struct based on these value. 1248a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier */ 1258a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 126f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud#define IB_USER_VERBS_CMD_COMMAND_MASK 0xff 127f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud#define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u 128f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud#define IB_USER_VERBS_CMD_FLAGS_SHIFT 24 129f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud 130f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80 131f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud 1328a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_cmd_hdr { 1338a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 command; 1348a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 in_words; 1358a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 out_words; 1368a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 1378a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 138f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaudstruct ib_uverbs_ex_cmd_hdr { 139f21519b23c1b6fa25366be4114ccf7fcf1c190f9Yann Droneaud __u64 response; 140400dbc96583ff3b8ad4c09bd7e9dcd35a6215922Igor Ivanov __u16 provider_in_words; 141400dbc96583ff3b8ad4c09bd7e9dcd35a6215922Igor Ivanov __u16 provider_out_words; 142400dbc96583ff3b8ad4c09bd7e9dcd35a6215922Igor Ivanov __u32 cmd_hdr_reserved; 143400dbc96583ff3b8ad4c09bd7e9dcd35a6215922Igor Ivanov}; 144400dbc96583ff3b8ad4c09bd7e9dcd35a6215922Igor Ivanov 1458a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_get_context { 1468a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 1478a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 1488a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 1498a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 1508a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_get_context_resp { 1518a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 async_fd; 1526b73597e7062118c0549c2702bfb7d273518c906Roland Dreier __u32 num_comp_vectors; 1538a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 1548a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 1558a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_query_device { 1568a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 1578a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 1588a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 1598a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 1608a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_query_device_resp { 1618a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 fw_ver; 16297f52eb438be7caebe026421545619d8a0c1398aSean Hefty __be64 node_guid; 16397f52eb438be7caebe026421545619d8a0c1398aSean Hefty __be64 sys_image_guid; 1648a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 max_mr_size; 1658a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 page_size_cap; 1668a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 vendor_id; 1678a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 vendor_part_id; 1688a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 hw_ver; 1698a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_qp; 1708a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_qp_wr; 1718a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 device_cap_flags; 1728a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_sge; 1738a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_sge_rd; 1748a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_cq; 1758a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_cqe; 1768a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_mr; 1778a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_pd; 1788a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_qp_rd_atom; 1798a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_ee_rd_atom; 1808a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_res_rd_atom; 1818a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_qp_init_rd_atom; 1828a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_ee_init_rd_atom; 1838a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 atomic_cap; 1848a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_ee; 1858a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_rdd; 1868a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_mw; 1878a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_raw_ipv6_qp; 1888a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_raw_ethy_qp; 1898a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_mcast_grp; 1908a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_mcast_qp_attach; 1918a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_total_mcast_qp_attach; 1928a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_ah; 1938a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_fmr; 1948a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_map_per_fmr; 1958a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_srq; 1968a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_srq_wr; 1978a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_srq_sge; 1988a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 max_pkeys; 1998a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 local_ca_ack_delay; 2008a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 phys_port_cnt; 2018a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 reserved[4]; 2028a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2038a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2048a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_query_port { 2058a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 2068a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 port_num; 2078a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 reserved[7]; 2088a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 2098a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2108a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2118a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_query_port_resp { 2128a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 port_cap_flags; 2138a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_msg_sz; 2148a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 bad_pkey_cntr; 2158a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qkey_viol_cntr; 2168a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 gid_tbl_len; 2178a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 pkey_tbl_len; 2188a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 lid; 2198a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 sm_lid; 2208a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 state; 2218a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 max_mtu; 2228a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 active_mtu; 2238a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 lmc; 2248a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 max_vl_num; 2258a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 sm_sl; 2268a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 subnet_timeout; 2278a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 init_type_reply; 2288a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 active_width; 2298a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 active_speed; 2308a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 phys_state; 2312420b60b1dc4ed98cb1788e928bc57ff2efa1a8dEli Cohen __u8 link_layer; 2322420b60b1dc4ed98cb1788e928bc57ff2efa1a8dEli Cohen __u8 reserved[2]; 2338a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2348a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2358a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_alloc_pd { 2368a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 2378a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 2388a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2398a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2408a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_alloc_pd_resp { 2418a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 pd_handle; 2428a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2438a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2448a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_dealloc_pd { 2458a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 pd_handle; 2468a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2478a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 24853d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Heftystruct ib_uverbs_open_xrcd { 24953d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty __u64 response; 25053d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty __u32 fd; 25153d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty __u32 oflags; 25253d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty __u64 driver_data[0]; 25353d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty}; 25453d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty 25553d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Heftystruct ib_uverbs_open_xrcd_resp { 25653d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty __u32 xrcd_handle; 25753d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty}; 25853d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty 25953d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Heftystruct ib_uverbs_close_xrcd { 26053d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty __u32 xrcd_handle; 26153d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty}; 26253d0bd1e7ff2fc626321f337c609fb76ae5d12c9Sean Hefty 2638a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_reg_mr { 2648a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 2658a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 start; 2668a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 length; 2678a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 hca_va; 2688a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 pd_handle; 2698a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 access_flags; 2708a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 2718a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2728a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2738a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_reg_mr_resp { 2748a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 mr_handle; 2758a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 lkey; 2768a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 rkey; 2778a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2788a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2797e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barakstruct ib_uverbs_rereg_mr { 2807e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u64 response; 2817e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u32 mr_handle; 2827e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u32 flags; 2837e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u64 start; 2847e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u64 length; 2857e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u64 hca_va; 2867e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u32 pd_handle; 2877e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u32 access_flags; 2887e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak}; 2897e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak 2907e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barakstruct ib_uverbs_rereg_mr_resp { 2917e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u32 lkey; 2927e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak __u32 rkey; 2937e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak}; 2947e6edb9b2e0bcfb2a588db390c44d120213c57aeMatan Barak 2958a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_dereg_mr { 2968a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 mr_handle; 2978a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 2988a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 2996b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaelistruct ib_uverbs_alloc_mw { 3006b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u64 response; 3016b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u32 pd_handle; 3026b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u8 mw_type; 3036b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u8 reserved[3]; 3046b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli}; 3056b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli 3066b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaelistruct ib_uverbs_alloc_mw_resp { 3076b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u32 mw_handle; 3086b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u32 rkey; 3096b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli}; 3106b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli 3116b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaelistruct ib_uverbs_dealloc_mw { 3126b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli __u32 mw_handle; 3136b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli}; 3146b52a12bc3fc39053b5bac4d4927ec8d974f8f60Shani Michaeli 3156b73597e7062118c0549c2702bfb7d273518c906Roland Dreierstruct ib_uverbs_create_comp_channel { 3166b73597e7062118c0549c2702bfb7d273518c906Roland Dreier __u64 response; 3176b73597e7062118c0549c2702bfb7d273518c906Roland Dreier}; 3186b73597e7062118c0549c2702bfb7d273518c906Roland Dreier 3196b73597e7062118c0549c2702bfb7d273518c906Roland Dreierstruct ib_uverbs_create_comp_channel_resp { 3206b73597e7062118c0549c2702bfb7d273518c906Roland Dreier __u32 fd; 3216b73597e7062118c0549c2702bfb7d273518c906Roland Dreier}; 3226b73597e7062118c0549c2702bfb7d273518c906Roland Dreier 3238a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_create_cq { 3248a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 3258a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 user_handle; 3268a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 cqe; 3276b73597e7062118c0549c2702bfb7d273518c906Roland Dreier __u32 comp_vector; 3286b73597e7062118c0549c2702bfb7d273518c906Roland Dreier __s32 comp_channel; 3296b73597e7062118c0549c2702bfb7d273518c906Roland Dreier __u32 reserved; 3308a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 3318a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 3328a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 3338a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_create_cq_resp { 3348a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 cq_handle; 3358a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 cqe; 3368a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 3378a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 33833b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreierstruct ib_uverbs_resize_cq { 33933b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier __u64 response; 34033b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier __u32 cq_handle; 34133b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier __u32 cqe; 34233b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier __u64 driver_data[0]; 34333b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier}; 34433b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier 34533b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreierstruct ib_uverbs_resize_cq_resp { 34633b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier __u32 cqe; 34764f817ba98095156149ba5991592d5d039f6da74Ralph Campbell __u32 reserved; 34864f817ba98095156149ba5991592d5d039f6da74Ralph Campbell __u64 driver_data[0]; 34933b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier}; 35033b9b3ee9709b19c4f02ab91571d53540d05c3d1Roland Dreier 35191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_poll_cq { 35291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 response; 35391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 cq_handle; 35491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 ne; 35591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 35691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 35791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_wc { 35891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 wr_id; 35991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 status; 36091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 opcode; 36191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 vendor_err; 36291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 byte_len; 36300f7ec36c9324928e4cd23f02e6d8550f30c32caSteve Wise union { 36400f7ec36c9324928e4cd23f02e6d8550f30c32caSteve Wise __u32 imm_data; 36500f7ec36c9324928e4cd23f02e6d8550f30c32caSteve Wise __u32 invalidate_rkey; 36600f7ec36c9324928e4cd23f02e6d8550f30c32caSteve Wise } ex; 36791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 qp_num; 36891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 src_qp; 36991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wc_flags; 37091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u16 pkey_index; 37191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u16 slid; 37291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u8 sl; 37391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u8 dlid_path_bits; 37491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u8 port_num; 37591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u8 reserved; 37691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 37791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 37891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_poll_cq_resp { 37991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 count; 38091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 reserved; 38191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct ib_uverbs_wc wc[0]; 38291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 38391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 38491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_req_notify_cq { 38591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 cq_handle; 38691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 solicited_only; 38791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 38891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 3898a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_destroy_cq { 39063aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u64 response; 3918a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 cq_handle; 39263aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 reserved; 39363aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier}; 39463aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier 39563aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreierstruct ib_uverbs_destroy_cq_resp { 39663aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 comp_events_reported; 39763aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 async_events_reported; 3988a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 3998a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 4006a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Heftystruct ib_uverbs_global_route { 4016a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 dgid[16]; 4026a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 flow_label; 4036a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 sgid_index; 4046a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 hop_limit; 4056a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 traffic_class; 4066a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 reserved; 4076a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty}; 4086a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty 4096a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Heftystruct ib_uverbs_ah_attr { 4106a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty struct ib_uverbs_global_route grh; 4116a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u16 dlid; 4126a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 sl; 4136a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 src_path_bits; 4146a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 static_rate; 4156a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 is_global; 4166a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 port_num; 4176a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 reserved; 4186a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty}; 4196a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty 4206a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Heftystruct ib_uverbs_qp_attr { 4216a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 qp_attr_mask; 4226a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 qp_state; 4236a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 cur_qp_state; 4246a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 path_mtu; 4256a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 path_mig_state; 4266a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 qkey; 4276a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 rq_psn; 4286a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 sq_psn; 4296a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 dest_qp_num; 4306a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 qp_access_flags; 4316a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty 4326a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty struct ib_uverbs_ah_attr ah_attr; 4336a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty struct ib_uverbs_ah_attr alt_ah_attr; 4346a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty 4356a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty /* ib_qp_cap */ 4366a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 max_send_wr; 4376a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 max_recv_wr; 4386a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 max_send_sge; 4396a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 max_recv_sge; 4406a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u32 max_inline_data; 4416a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty 4426a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u16 pkey_index; 4436a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u16 alt_pkey_index; 4446a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 en_sqd_async_notify; 4456a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 sq_draining; 4466a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 max_rd_atomic; 4476a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 max_dest_rd_atomic; 4486a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 min_rnr_timer; 4496a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 port_num; 4506a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 timeout; 4516a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 retry_cnt; 4526a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 rnr_retry; 4536a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 alt_port_num; 4546a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 alt_timeout; 4556a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty __u8 reserved[5]; 4566a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty}; 4576a9af2e18a5c6ebcf8283309d20ac0e9fa35e346Sean Hefty 4588a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_create_qp { 4598a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 response; 4608a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 user_handle; 4618a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 pd_handle; 4628a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 send_cq_handle; 4638a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 recv_cq_handle; 4648a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 srq_handle; 4658a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_send_wr; 4668a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_recv_wr; 4678a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_send_sge; 4688a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_recv_sge; 4698a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 max_inline_data; 4708a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 sq_sig_all; 4718a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 qp_type; 4728a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 is_srq; 4738a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 reserved; 4748a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 4758a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 4768a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 47742849b2697c36abdafa6aef64186b15055392046Sean Heftystruct ib_uverbs_open_qp { 47842849b2697c36abdafa6aef64186b15055392046Sean Hefty __u64 response; 47942849b2697c36abdafa6aef64186b15055392046Sean Hefty __u64 user_handle; 48042849b2697c36abdafa6aef64186b15055392046Sean Hefty __u32 pd_handle; 48142849b2697c36abdafa6aef64186b15055392046Sean Hefty __u32 qpn; 48242849b2697c36abdafa6aef64186b15055392046Sean Hefty __u8 qp_type; 48342849b2697c36abdafa6aef64186b15055392046Sean Hefty __u8 reserved[7]; 48442849b2697c36abdafa6aef64186b15055392046Sean Hefty __u64 driver_data[0]; 48542849b2697c36abdafa6aef64186b15055392046Sean Hefty}; 48642849b2697c36abdafa6aef64186b15055392046Sean Hefty 48742849b2697c36abdafa6aef64186b15055392046Sean Hefty/* also used for open response */ 4888a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_create_qp_resp { 4898a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qp_handle; 4908a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qpn; 49177369ed31daac51f4827c50d30f233c45480235aJack Morgenstein __u32 max_send_wr; 49277369ed31daac51f4827c50d30f233c45480235aJack Morgenstein __u32 max_recv_wr; 49377369ed31daac51f4827c50d30f233c45480235aJack Morgenstein __u32 max_send_sge; 49477369ed31daac51f4827c50d30f233c45480235aJack Morgenstein __u32 max_recv_sge; 49577369ed31daac51f4827c50d30f233c45480235aJack Morgenstein __u32 max_inline_data; 4964d9781c5ce1a517a07dbf03c37323c011037fe79Roland Dreier __u32 reserved; 4978a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 4988a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 4998a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier/* 5008a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * This struct needs to remain a multiple of 8 bytes to keep the 5018a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier * alignment of the modify QP parameters. 5028a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier */ 5038a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_qp_dest { 5048a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 dgid[16]; 5058a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 flow_label; 5068a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 dlid; 5078a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 reserved; 5088a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 sgid_index; 5098a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 hop_limit; 5108a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 traffic_class; 5118a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 sl; 5128a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 src_path_bits; 5138a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 static_rate; 5148a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 is_global; 5158a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 port_num; 5168a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 5178a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 5187ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barakstruct ib_uverbs_query_qp { 5197ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u64 response; 5207ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 qp_handle; 5217ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 attr_mask; 5227ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u64 driver_data[0]; 5237ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak}; 5247ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak 5257ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barakstruct ib_uverbs_query_qp_resp { 5267ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak struct ib_uverbs_qp_dest dest; 5277ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak struct ib_uverbs_qp_dest alt_dest; 5287ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 max_send_wr; 5297ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 max_recv_wr; 5307ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 max_send_sge; 5317ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 max_recv_sge; 5327ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 max_inline_data; 5337ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 qkey; 5347ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 rq_psn; 5357ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 sq_psn; 5367ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 dest_qp_num; 5377ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u32 qp_access_flags; 5387ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u16 pkey_index; 5397ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u16 alt_pkey_index; 5407ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 qp_state; 5417ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 cur_qp_state; 5427ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 path_mtu; 5437ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 path_mig_state; 5440b26c88f29ad8bcf91a2ea8f25a36f2028ebabeaJack Morgenstein __u8 sq_draining; 5457ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 max_rd_atomic; 5467ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 max_dest_rd_atomic; 5477ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 min_rnr_timer; 5487ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 port_num; 5497ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 timeout; 5507ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 retry_cnt; 5517ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 rnr_retry; 5527ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 alt_port_num; 5537ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 alt_timeout; 5547ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 sq_sig_all; 5557ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u8 reserved[5]; 5567ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak __u64 driver_data[0]; 5577ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak}; 5587ccc9a24e01258a31ee2b964215e4ddddd2a02c4Dotan Barak 5598a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_modify_qp { 5608a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier struct ib_uverbs_qp_dest dest; 5618a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier struct ib_uverbs_qp_dest alt_dest; 5628a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qp_handle; 5638a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 attr_mask; 5648a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qkey; 5658a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 rq_psn; 5668a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 sq_psn; 5678a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 dest_qp_num; 5688a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qp_access_flags; 5698a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 pkey_index; 5708a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 alt_pkey_index; 5718a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 qp_state; 5728a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 cur_qp_state; 5738a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 path_mtu; 5748a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 path_mig_state; 5758a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 en_sqd_async_notify; 5768a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 max_rd_atomic; 5778a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 max_dest_rd_atomic; 5788a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 min_rnr_timer; 5798a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 port_num; 5808a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 timeout; 5818a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 retry_cnt; 5828a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 rnr_retry; 5838a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 alt_port_num; 5848a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 alt_timeout; 5858a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 reserved[2]; 5868a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 5878a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 5888a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 5898a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_modify_qp_resp { 5908a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 5918a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 5928a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_destroy_qp { 59363aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u64 response; 5948a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qp_handle; 59563aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 reserved; 59663aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier}; 59763aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier 59863aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreierstruct ib_uverbs_destroy_qp_resp { 59963aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 events_reported; 6008a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 6018a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 60291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier/* 60391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * The ib_uverbs_sge structure isn't used anywhere, since we assume 60491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * the ib_sge structure is packed the same way on 32-bit and 64-bit 60591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * architectures in both kernel and user space. It's just here to 60691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier * document the ABI. 60791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier */ 60891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_sge { 60991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 addr; 61091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 length; 61191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 lkey; 61291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 61391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 61491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_send_wr { 615a74cd4af0bfa9578594acbb711a958104c93b772Roland Dreier __u64 wr_id; 61691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 num_sge; 61791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 opcode; 61891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 send_flags; 6190f39cf3d54e67a705773fd0ec56ca3dcd3e9272fRoland Dreier union { 6200f39cf3d54e67a705773fd0ec56ca3dcd3e9272fRoland Dreier __u32 imm_data; 6210f39cf3d54e67a705773fd0ec56ca3dcd3e9272fRoland Dreier __u32 invalidate_rkey; 6220f39cf3d54e67a705773fd0ec56ca3dcd3e9272fRoland Dreier } ex; 62391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier union { 62491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct { 62591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 remote_addr; 62691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 rkey; 62791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 reserved; 62891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier } rdma; 62991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct { 63091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 remote_addr; 63191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 compare_add; 63291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 swap; 63391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 rkey; 63491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 reserved; 63591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier } atomic; 63691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct { 63791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 ah; 63891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 remote_qpn; 63991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 remote_qkey; 64091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 reserved; 64191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier } ud; 64291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier } wr; 64391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 64491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 64591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_post_send { 64691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 response; 64791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 qp_handle; 64891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wr_count; 64991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 sge_count; 65091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wqe_size; 65191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct ib_uverbs_send_wr send_wr[0]; 65291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 65391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 65491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_post_send_resp { 65591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 bad_wr; 65691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 65791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 65891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_recv_wr { 65991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 wr_id; 66091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 num_sge; 66191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 reserved; 66291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 66391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 66491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_post_recv { 66591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 response; 66691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 qp_handle; 66791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wr_count; 66891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 sge_count; 66991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wqe_size; 67091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct ib_uverbs_recv_wr recv_wr[0]; 67191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 67291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 67391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_post_recv_resp { 67491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 bad_wr; 67591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 67691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 67791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_post_srq_recv { 67891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 response; 67991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 srq_handle; 68091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wr_count; 68191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 sge_count; 68291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 wqe_size; 68391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct ib_uverbs_recv_wr recv[0]; 68491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 68591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 68691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_post_srq_recv_resp { 68791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 bad_wr; 68891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 68991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 69091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_create_ah { 69191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 response; 69291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u64 user_handle; 69391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 pd_handle; 69491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 reserved; 69591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier struct ib_uverbs_ah_attr attr; 69691ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 69791ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 69891ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_create_ah_resp { 69991ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 ah_handle; 70091ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 70191ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 70291ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreierstruct ib_uverbs_destroy_ah { 70391ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier __u32 ah_handle; 70491ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier}; 70591ecd4ae178bed83da4f6a94ced7992e4d7711ebRoland Dreier 7068a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_attach_mcast { 7078a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 gid[16]; 7088a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qp_handle; 7098a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 mlid; 7108a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 reserved; 7118a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 7128a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 7138a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 7148a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreierstruct ib_uverbs_detach_mcast { 7158a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u8 gid[16]; 7168a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u32 qp_handle; 7178a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 mlid; 7188a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u16 reserved; 7198a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier __u64 driver_data[0]; 720436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 721436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 72258913efba9c3aa7992f2a4d630135ded833d988eYann Droneaudstruct ib_uverbs_flow_spec_hdr { 72358913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u32 type; 72458913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 size; 72558913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 reserved; 72658913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud /* followed by flow_spec */ 72758913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u64 flow_spec_data[0]; 72858913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud}; 72958913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud 730b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaudstruct ib_uverbs_flow_eth_filter { 731436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u8 dst_mac[6]; 732436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u8 src_mac[6]; 733436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __be16 ether_type; 734436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __be16 vlan_tag; 735436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 736436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 737b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaudstruct ib_uverbs_flow_spec_eth { 73858913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud union { 73958913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct ib_uverbs_flow_spec_hdr hdr; 74058913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct { 74158913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u32 type; 74258913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 size; 74358913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 reserved; 74458913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud }; 74558913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud }; 746b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaud struct ib_uverbs_flow_eth_filter val; 747b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaud struct ib_uverbs_flow_eth_filter mask; 748436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 749436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 750b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaudstruct ib_uverbs_flow_ipv4_filter { 751436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __be32 src_ip; 752436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __be32 dst_ip; 753436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 754436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 755b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaudstruct ib_uverbs_flow_spec_ipv4 { 75658913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud union { 75758913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct ib_uverbs_flow_spec_hdr hdr; 75858913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct { 75958913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u32 type; 76058913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 size; 76158913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 reserved; 76258913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud }; 76358913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud }; 764b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaud struct ib_uverbs_flow_ipv4_filter val; 765b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaud struct ib_uverbs_flow_ipv4_filter mask; 766436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 767436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 768b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaudstruct ib_uverbs_flow_tcp_udp_filter { 769436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __be16 dst_port; 770436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __be16 src_port; 771436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 772436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 773b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaudstruct ib_uverbs_flow_spec_tcp_udp { 77458913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud union { 77558913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct ib_uverbs_flow_spec_hdr hdr; 77658913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct { 77758913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u32 type; 77858913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 size; 77958913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud __u16 reserved; 78058913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud }; 78158913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud }; 782b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaud struct ib_uverbs_flow_tcp_udp_filter val; 783b68c956021386eead6b8b28e445f33c8c985d7d2Yann Droneaud struct ib_uverbs_flow_tcp_udp_filter mask; 784436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 785436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 786d82693dad09b49232cd727ee9e15bd027710edacYann Droneaudstruct ib_uverbs_flow_attr { 787436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 type; 788436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u16 size; 789436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u16 priority; 790436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u8 num_of_specs; 791436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u8 reserved[2]; 792436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u8 port; 793436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 flags; 794436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion /* Following are the optional layers according to user request 795436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion * struct ib_flow_spec_xxx 796436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion * struct ib_flow_spec_yyy 797436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion */ 79858913efba9c3aa7992f2a4d630135ded833d988eYann Droneaud struct ib_uverbs_flow_spec_hdr flow_specs[0]; 799436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 800436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 801436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zionstruct ib_uverbs_create_flow { 802436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 comp_mask; 803436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 qp_handle; 804d82693dad09b49232cd727ee9e15bd027710edacYann Droneaud struct ib_uverbs_flow_attr flow_attr; 805436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 806436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 807436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zionstruct ib_uverbs_create_flow_resp { 808436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 comp_mask; 809436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 flow_handle; 810436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion}; 811436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion 812436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zionstruct ib_uverbs_destroy_flow { 813436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 comp_mask; 814436f2ad05a0b65b1467ddf51bc68171c381bf844Hadar Hen Zion __u32 flow_handle; 8158a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier}; 8168a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier 817f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreierstruct ib_uverbs_create_srq { 818f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u64 response; 819f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u64 user_handle; 820f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 pd_handle; 821f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 max_wr; 822f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 max_sge; 823f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 srq_limit; 824f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u64 driver_data[0]; 825f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier}; 826f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier 8278541f8de0583f562c652008a4e7a65e537842a7eSean Heftystruct ib_uverbs_create_xsrq { 8288541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u64 response; 8298541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u64 user_handle; 8308541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 srq_type; 8318541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 pd_handle; 8328541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 max_wr; 8338541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 max_sge; 8348541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 srq_limit; 8358541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 reserved; 8368541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 xrcd_handle; 8378541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 cq_handle; 8388541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u64 driver_data[0]; 8398541f8de0583f562c652008a4e7a65e537842a7eSean Hefty}; 8408541f8de0583f562c652008a4e7a65e537842a7eSean Hefty 841f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreierstruct ib_uverbs_create_srq_resp { 842f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 srq_handle; 843ea88fd16d6e85f4bc71b6053180b64f04be1ff14Dotan Barak __u32 max_wr; 844ea88fd16d6e85f4bc71b6053180b64f04be1ff14Dotan Barak __u32 max_sge; 8458541f8de0583f562c652008a4e7a65e537842a7eSean Hefty __u32 srqn; 846f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier}; 847f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier 848f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreierstruct ib_uverbs_modify_srq { 849f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 srq_handle; 850f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 attr_mask; 851f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 max_wr; 852f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 srq_limit; 853f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u64 driver_data[0]; 854f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier}; 855f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier 8568bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barakstruct ib_uverbs_query_srq { 8578bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u64 response; 8588bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u32 srq_handle; 8598bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u32 reserved; 8608bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u64 driver_data[0]; 8618bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak}; 8628bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak 8638bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barakstruct ib_uverbs_query_srq_resp { 8648bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u32 max_wr; 8658bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u32 max_sge; 8668bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u32 srq_limit; 8678bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak __u32 reserved; 8688bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak}; 8698bdb0e8632e0f5061bd18b6934346cb609490135Dotan Barak 870f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreierstruct ib_uverbs_destroy_srq { 87163aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u64 response; 872f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier __u32 srq_handle; 87363aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 reserved; 87463aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier}; 87563aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier 87663aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreierstruct ib_uverbs_destroy_srq_resp { 87763aaf647529e8a56bdf31fd8f2979d4371c6a332Roland Dreier __u32 events_reported; 878f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier}; 879f520ba5aa48e2891c3fb3e364eeaaab4212c7c45Roland Dreier 8808a96b3f9af2d0351285665b532f9359d6cd73f42Roland Dreier#endif /* IB_USER_VERBS_H */ 881