/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
#ifndef _SYS_IB_IBTL_IBTL_CI_TYPES_H
#define _SYS_IB_IBTL_IBTL_CI_TYPES_H
/*
* Definitions shared between the IBTL and CI interface.
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
* Channel Modify flags - ibt_cep_modify_flags_t
*
* Note:
* That the IBT_CEP_SET_RESET_INIT, IBT_CEP_SET_INIT_RTR
* IBT_CEP_SET_RTR_RTS flags are mutually exclusive. However if one of the
* optional attributes associated with these flags is to be modified then
* the corresponding modify flag must also be specified. For example if
* a client wishes to transit from the INIT to RTR state but additionally
* they want to disable atomics, then the modify flags should be:
*
* (IBT_CEP_SET_INIT_RTR | IBT_CEP_SET_ATOMIC)
*
* And the following attributes specified:
*
* - Primary Path Address Vector Information.
* - Destination QPN.
* - PSN for ReceiveQ.
* - Minimum RNR NAK Timer field value.
* - ibt_cep_flags_t set to IBT_CEP_ATOMIC
*
*/
/*
* ibt_async_code_t
*/
/*
* ibt_adds_vect_t
*/
/*
* ibt_wc_t
*/
/* RawEthr only */
/*
* ibt_mcg_attr_t
*/
/*
* ibt_mcg_info_t
*/
/*
* ibt_hca_flags_t
*/
/*
* ibt_object_type_t
*/
/*
* ibt_hca_attr_t
*/
/*
* ibt_hca_portinfo_t
*/
/* Mapping of Verbs defined return status to channel specific. */
/*
* ibt_cep_path_t
*/
/* Local ACK timeout for RC */
/*
* Define an ibt UD Destination struct. This holds all the information
* needed to reach a UD destination.
*
* The ibt_ud_dest_s struct is known by the CI and IBTL. This structure is
* referenced by the CI during UD work request processing. It is defined here
* here so that IBTL does not need to do any data copying during ibt_post_send.
*/
typedef struct ibt_ud_dest_s {
/* The following fields are IBTL-only, i.e., opaque to the CI */
/*
* Reserved For Future Use
* RD destination address info.
*/
typedef struct ibt_rd_dest_s {
/*
* QP Type.
*/
typedef enum ibt_qp_type_e {
IBT_RC_RQP = 0,
/*
* Special QP Type.
*/
typedef enum ibt_sqp_type_e {
IBT_SMI_SQP = 0,
/*
* QP alloc flags.
*/
typedef enum ibt_qp_alloc_flags_e {
IBT_QP_NO_FLAGS = 0,
/* FC variants of UD */
/*
* QP Alloc Attributes definition.
*
* Contains the QP attributes that are required to create a QP.
*/
typedef struct ibt_qp_alloc_attr_s {
/*
* QP query info
*/
/* RC transport specific */
typedef struct ibt_qp_rc_attr_s {
/* Number of RDMA RD's & */
/* Atomics outstanding */
/* Responder resources for */
/* handling incoming RDMA */
/* RD's & Atomics */
/*
* Reserved For Future Use.
* UC transport specific
*/
typedef struct ibt_qp_uc_attr_s {
/*
* Reserved For Future Use.
* RD transport specific
*/
typedef struct ibt_qp_rd_attr_s {
/* UD transport specific */
typedef struct ibt_qp_ud_attr_s {
/*
* Common QP Info
*/
typedef struct ibt_qp_info_s {
/* modify_qp to RTS state */
union { /* transport specific */
} qp_transport;
/*
* QP Query Attributes definition.
*/
typedef struct ibt_qp_query_attr_s {
/*
* Reserved For Future Use.
* EEC Info.
*/
typedef struct ibt_eec_info_s {
/*
* Reserved For Future Use.
* EEC Query Attributes definition.
*/
typedef struct ibt_eec_query_attr_s {
/*
* ibt_hca_attr_t
*/
/* per EEC with HCA as target */
/* per EE by this HCA */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_IB_IBTL_IBTL_CI_TYPES_H */