c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar/*
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * This file contains definitions used in OFED defined user/kernel
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * interfaces. These are imported from the OFED header rdma_user_cm.h. Oracle
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * elects to have and use the contents of rdma_user_cm.h under and governed
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * by the OpenIB.org BSD license (see below for for full license text).
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * However, * the following notice accompanied the original version of this
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * file:
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar */
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar/*
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * Copyright (c) 2005-2006 Intel Corporation. All rights reserved.
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar *
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * This software is available to you under a choice of one of two
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * licenses. You may choose to be licensed under the terms of the GNU
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * General Public License (GPL) Version 2, available from the file
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * COPYING in the main directory of this source tree, or the
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * OpenIB.org BSD license below:
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar *
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * Redistribution and use in source and binary forms, with or
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * without modification, are permitted provided that the following
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * conditions are met:
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar *
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * - Redistributions of source code must retain the above
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * copyright notice, this list of conditions and the following
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * disclaimer.
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar *
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * - Redistributions in binary form must reproduce the above
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * copyright notice, this list of conditions and the following
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * disclaimer in the documentation and/or other materials
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * provided with the distribution.
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar *
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * SOFTWARE.
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar */
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#ifndef _SYS_IB_CLIENTS_OF_RDMA_RDMA_USER_CM_H
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#define _SYS_IB_CLIENTS_OF_RDMA_RDMA_USER_CM_H
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#ifdef __cplusplus
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarextern "C" {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#endif
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#include <sys/types.h>
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#include <sys/socket.h>
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#include <sys/ib/clients/of/rdma/ib_user_verbs.h>
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#include <sys/ib/clients/of/rdma/ib_user_sa.h>
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#define RDMA_USER_CM_ABI_VERSION 4
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#define RDMA_MAX_PRIVATE_DATA 256
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#pragma pack(1)
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarenum {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_CREATE_ID,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_DESTROY_ID,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_BIND_ADDR,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_RESOLVE_ADDR,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_RESOLVE_ROUTE,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_QUERY_ROUTE,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_CONNECT,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_LISTEN,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_ACCEPT,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_REJECT,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_DISCONNECT,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_INIT_QP_ATTR,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_GET_EVENT,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_GET_OPTION,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_SET_OPTION,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_NOTIFY,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_JOIN_MCAST,
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_USER_CM_CMD_LEAVE_MCAST
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar/*
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar * command ABI structures.
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar */
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_cmd_hdr {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t cmd;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint16_t in;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint16_t out;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_create_id {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t uid;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar ofv_resp_addr_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint16_t ps;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t reserved[6];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_create_id_resp {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_destroy_id {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar ofv_resp_addr_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_destroy_id_resp {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t events_reported;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_bind_addr {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct sockaddr_in6 addr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_resolve_addr {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct sockaddr_in6 src_addr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct sockaddr_in6 dst_addr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t timeout_ms;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_resolve_route {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t timeout_ms;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_query_route {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar ofv_resp_addr_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_query_route_resp {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t node_guid;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct ib_user_path_rec ib_route[2];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct sockaddr_in6 src_addr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct sockaddr_in6 dst_addr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t num_paths;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t port_num;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t reserved[3];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_conn_param {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t qp_num;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t private_data[RDMA_MAX_PRIVATE_DATA];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t private_data_len;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t srq;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t responder_resources;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t initiator_depth;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t flow_control;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t retry_count;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t rnr_retry_count;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t valid;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_ud_param {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t qp_num;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t qkey;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct ib_uverbs_ah_attr ah_attr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t private_data[RDMA_MAX_PRIVATE_DATA];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t private_data_len;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t reserved[7];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t reserved2[4];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_connect {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct rdma_ucm_conn_param conn_param;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_listen {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t backlog;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_accept {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t uid;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct rdma_ucm_conn_param conn_param;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_reject {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t private_data_len;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t reserved[3];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint8_t private_data[RDMA_MAX_PRIVATE_DATA];
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_disconnect {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_init_qp_attr {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar ofv_resp_addr_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t qp_state;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_notify {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t event;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_join_mcast {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar ofv_resp_addr_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t uid;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct sockaddr_in6 addr;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t reserved;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_get_event {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar ofv_resp_addr_t response;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_event_resp {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t uid;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t event;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t status;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar union {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct rdma_ucm_conn_param conn;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar struct rdma_ucm_ud_param ud;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar } param;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar/* Option levels */
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarenum {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_OPTION_ID = 0
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar/* Option details */
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarenum {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar RDMA_OPTION_ID_TOS = 0
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikarstruct rdma_ucm_set_option {
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint64_t optval;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t id;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t level;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t optname;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar uint32_t optlen;
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar};
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#pragma pack()
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#ifdef __cplusplus
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar}
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#endif
c39526b769298791ff5b0b6c5e761f49aabaeb4ePramod Gunjikar#endif /* _SYS_IB_CLIENTS_OF_RDMA_RDMA_USER_CM_H */