1219820Sjeff/*
2219820Sjeff * Copyright (c) 2004-2007 Voltaire, Inc. All rights reserved.
3219820Sjeff * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved.
4219820Sjeff * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
5219820Sjeff *
6219820Sjeff * This software is available to you under a choice of one of two
7219820Sjeff * licenses.  You may choose to be licensed under the terms of the GNU
8219820Sjeff * General Public License (GPL) Version 2, available from the file
9219820Sjeff * COPYING in the main directory of this source tree, or the
10219820Sjeff * OpenIB.org BSD license below:
11219820Sjeff *
12219820Sjeff *     Redistribution and use in source and binary forms, with or
13219820Sjeff *     without modification, are permitted provided that the following
14219820Sjeff *     conditions are met:
15219820Sjeff *
16219820Sjeff *      - Redistributions of source code must retain the above
17219820Sjeff *        copyright notice, this list of conditions and the following
18219820Sjeff *        disclaimer.
19219820Sjeff *
20219820Sjeff *      - Redistributions in binary form must reproduce the above
21219820Sjeff *        copyright notice, this list of conditions and the following
22219820Sjeff *        disclaimer in the documentation and/or other materials
23219820Sjeff *        provided with the distribution.
24219820Sjeff *
25219820Sjeff * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26219820Sjeff * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27219820Sjeff * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28219820Sjeff * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
29219820Sjeff * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
30219820Sjeff * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
31219820Sjeff * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32219820Sjeff * SOFTWARE.
33219820Sjeff *
34219820Sjeff */
35219820Sjeff
36219820Sjeff#if !defined(__IB_CM_TYPES_H__)
37219820Sjeff#define __IB_CM_TYPES_H__
38219820Sjeff
39219820Sjeff#ifndef WIN32
40219820Sjeff
41219820Sjeff#include <iba/ib_types.h>
42219820Sjeff
43219820Sjeff#ifdef __cplusplus
44219820Sjeff#  define BEGIN_C_DECLS extern "C" {
45219820Sjeff#  define END_C_DECLS   }
46219820Sjeff#else				/* !__cplusplus */
47219820Sjeff#  define BEGIN_C_DECLS
48219820Sjeff#  define END_C_DECLS
49219820Sjeff#endif				/* __cplusplus */
50219820Sjeff
51219820SjeffBEGIN_C_DECLS
52219820Sjeff/*
53219820Sjeff * Defines known Communication management class versions
54219820Sjeff */
55219820Sjeff#define IB_MCLASS_CM_VER_2				2
56219820Sjeff#define IB_MCLASS_CM_VER_1				1
57219820Sjeff/*
58219820Sjeff *	Defines the size of user available data in communication management MADs
59219820Sjeff */
60219820Sjeff#define IB_REQ_PDATA_SIZE_VER2				92
61219820Sjeff#define IB_MRA_PDATA_SIZE_VER2				222
62219820Sjeff#define IB_REJ_PDATA_SIZE_VER2				148
63219820Sjeff#define IB_REP_PDATA_SIZE_VER2				196
64219820Sjeff#define IB_RTU_PDATA_SIZE_VER2				224
65219820Sjeff#define IB_LAP_PDATA_SIZE_VER2				168
66219820Sjeff#define IB_APR_PDATA_SIZE_VER2				148
67219820Sjeff#define IB_DREQ_PDATA_SIZE_VER2				220
68219820Sjeff#define IB_DREP_PDATA_SIZE_VER2				224
69219820Sjeff#define IB_SIDR_REQ_PDATA_SIZE_VER2			216
70219820Sjeff#define IB_SIDR_REP_PDATA_SIZE_VER2			136
71219820Sjeff#define IB_REQ_PDATA_SIZE_VER1				92
72219820Sjeff#define IB_MRA_PDATA_SIZE_VER1				222
73219820Sjeff#define IB_REJ_PDATA_SIZE_VER1				148
74219820Sjeff#define IB_REP_PDATA_SIZE_VER1				204
75219820Sjeff#define IB_RTU_PDATA_SIZE_VER1				224
76219820Sjeff#define IB_LAP_PDATA_SIZE_VER1				168
77219820Sjeff#define IB_APR_PDATA_SIZE_VER1				151
78219820Sjeff#define IB_DREQ_PDATA_SIZE_VER1				220
79219820Sjeff#define IB_DREP_PDATA_SIZE_VER1				224
80219820Sjeff#define IB_SIDR_REQ_PDATA_SIZE_VER1			216
81219820Sjeff#define IB_SIDR_REP_PDATA_SIZE_VER1			140
82219820Sjeff#define IB_ARI_SIZE					72	// redefine
83219820Sjeff#define IB_APR_INFO_SIZE				72
84219820Sjeff/****d* Access Layer/ib_rej_status_t
85219820Sjeff* NAME
86219820Sjeff*	ib_rej_status_t
87219820Sjeff*
88219820Sjeff* DESCRIPTION
89219820Sjeff*	Rejection reasons.
90219820Sjeff*
91219820Sjeff* SYNOPSIS
92219820Sjeff*/
93219820Sjefftypedef ib_net16_t ib_rej_status_t;
94219820Sjeff/*
95219820Sjeff* SEE ALSO
96219820Sjeff*	ib_cm_rej, ib_cm_rej_rec_t
97219820Sjeff*
98219820Sjeff* SOURCE
99219820Sjeff*/
100219820Sjeff#define IB_REJ_INSUF_QP					CL_HTON16(1)
101219820Sjeff#define IB_REJ_INSUF_EEC				CL_HTON16(2)
102219820Sjeff#define IB_REJ_INSUF_RESOURCES				CL_HTON16(3)
103219820Sjeff#define IB_REJ_TIMEOUT					CL_HTON16(4)
104219820Sjeff#define IB_REJ_UNSUPPORTED				CL_HTON16(5)
105219820Sjeff#define IB_REJ_INVALID_COMM_ID				CL_HTON16(6)
106219820Sjeff#define IB_REJ_INVALID_COMM_INSTANCE			CL_HTON16(7)
107219820Sjeff#define IB_REJ_INVALID_SID				CL_HTON16(8)
108219820Sjeff#define IB_REJ_INVALID_XPORT				CL_HTON16(9)
109219820Sjeff#define IB_REJ_STALE_CONN				CL_HTON16(10)
110219820Sjeff#define IB_REJ_RDC_NOT_EXIST				CL_HTON16(11)
111219820Sjeff#define IB_REJ_INVALID_GID				CL_HTON16(12)
112219820Sjeff#define IB_REJ_INVALID_LID				CL_HTON16(13)
113219820Sjeff#define IB_REJ_INVALID_SL				CL_HTON16(14)
114219820Sjeff#define IB_REJ_INVALID_TRAFFIC_CLASS			CL_HTON16(15)
115219820Sjeff#define IB_REJ_INVALID_HOP_LIMIT			CL_HTON16(16)
116219820Sjeff#define IB_REJ_INVALID_PKT_RATE				CL_HTON16(17)
117219820Sjeff#define IB_REJ_INVALID_ALT_GID				CL_HTON16(18)
118219820Sjeff#define IB_REJ_INVALID_ALT_LID				CL_HTON16(19)
119219820Sjeff#define IB_REJ_INVALID_ALT_SL				CL_HTON16(20)
120219820Sjeff#define IB_REJ_INVALID_ALT_TRAFFIC_CLASS		CL_HTON16(21)
121219820Sjeff#define IB_REJ_INVALID_ALT_HOP_LIMIT			CL_HTON16(22)
122219820Sjeff#define IB_REJ_INVALID_ALT_PKT_RATE			CL_HTON16(23)
123219820Sjeff#define IB_REJ_PORT_REDIRECT				CL_HTON16(24)
124219820Sjeff#define IB_REJ_INVALID_MTU				CL_HTON16(26)
125219820Sjeff#define IB_REJ_INSUFFICIENT_RESP_RES			CL_HTON16(27)
126219820Sjeff#define IB_REJ_USER_DEFINED				CL_HTON16(28)
127219820Sjeff#define IB_REJ_INVALID_RNR_RETRY			CL_HTON16(29)
128219820Sjeff#define IB_REJ_DUPLICATE_LOCAL_COMM_ID			CL_HTON16(30)
129219820Sjeff#define IB_REJ_INVALID_CLASS_VER			CL_HTON16(31)
130219820Sjeff#define IB_REJ_INVALID_FLOW_LBL				CL_HTON16(32)
131219820Sjeff#define IB_REJ_INVALID_ALT_FLOW_LBL			CL_HTON16(33)
132219820Sjeff
133219820Sjeff#define IB_REJ_SERVICE_HANDOFF				CL_HTON16(65535)
134219820Sjeff/******/
135219820Sjeff
136219820Sjeff/****d* Access Layer/ib_apr_status_t
137219820Sjeff* NAME
138219820Sjeff*	ib_apr_status_t
139219820Sjeff*
140219820Sjeff* DESCRIPTION
141219820Sjeff*	Automatic path migration status information.
142219820Sjeff*
143219820Sjeff* SYNOPSIS
144219820Sjeff*/
145219820Sjefftypedef uint8_t ib_apr_status_t;
146219820Sjeff/*
147219820Sjeff* SEE ALSO
148219820Sjeff*	ib_cm_apr, ib_cm_apr_rec_t
149219820Sjeff*
150219820Sjeff* SOURCE
151219820Sjeff */
152219820Sjeff#define IB_AP_SUCCESS					0
153219820Sjeff#define IB_AP_INVALID_COMM_ID				1
154219820Sjeff#define IB_AP_UNSUPPORTED				2
155219820Sjeff#define IB_AP_REJECT					3
156219820Sjeff#define IB_AP_REDIRECT					4
157219820Sjeff#define IB_AP_IS_CURRENT				5
158219820Sjeff#define IB_AP_INVALID_QPN_EECN				6
159219820Sjeff#define IB_AP_INVALID_LID				7
160219820Sjeff#define IB_AP_INVALID_GID				8
161219820Sjeff#define IB_AP_INVALID_FLOW_LBL				9
162219820Sjeff#define IB_AP_INVALID_TCLASS				10
163219820Sjeff#define IB_AP_INVALID_HOP_LIMIT				11
164219820Sjeff#define IB_AP_INVALID_PKT_RATE				12
165219820Sjeff#define IB_AP_INVALID_SL				13
166219820Sjeff/******/
167219820Sjeff
168219820Sjeff/****d* Access Layer/ib_cm_cap_mask_t
169219820Sjeff* NAME
170219820Sjeff*	ib_cm_cap_mask_t
171219820Sjeff*
172219820Sjeff* DESCRIPTION
173219820Sjeff*	Capability mask values in ClassPortInfo.
174219820Sjeff*
175219820Sjeff* SYNOPSIS
176219820Sjeff*/
177219820Sjeff#define IB_CM_RELIABLE_CONN_CAPABLE			CL_HTON16(9)
178219820Sjeff#define IB_CM_RELIABLE_DGRM_CAPABLE			CL_HTON16(10)
179219820Sjeff#define IB_CM_RDGRM_CAPABLE				CL_HTON16(11)
180219820Sjeff#define IB_CM_UNRELIABLE_CONN_CAPABLE			CL_HTON16(12)
181219820Sjeff#define IB_CM_SIDR_CAPABLE				CL_HTON16(13)
182219820Sjeff/*
183219820Sjeff* SEE ALSO
184219820Sjeff*	ib_cm_rep, ib_class_port_info_t
185219820Sjeff*
186219820Sjeff* SOURCE
187219820Sjeff*
188219820Sjeff*******/
189219820Sjeff
190219820Sjeff/*
191219820Sjeff *	Service ID resolution status
192219820Sjeff */
193219820Sjefftypedef uint16_t ib_sidr_status_t;
194219820Sjeff#define IB_SIDR_SUCCESS					0
195219820Sjeff#define IB_SIDR_UNSUPPORTED				1
196219820Sjeff#define IB_SIDR_REJECT					2
197219820Sjeff#define IB_SIDR_NO_QP					3
198219820Sjeff#define IB_SIDR_REDIRECT				4
199219820Sjeff#define IB_SIDR_UNSUPPORTED_VER				5
200219820Sjeff
201219820SjeffEND_C_DECLS
202219820Sjeff#endif				/* ndef WIN32 */
203219820Sjeff#endif				/* __IB_CM_TYPES_H__ */
204