]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/ofed/management/opensm/include/opensm/osm_base.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / ofed / management / opensm / include / opensm / osm_base.h
1 /*
2  * Copyright (c) 2004-2008 Voltaire, Inc. All rights reserved.
3  * Copyright (c) 2002-2006 Mellanox Technologies LTD. All rights reserved.
4  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
5  *
6  * This software is available to you under a choice of one of two
7  * licenses.  You may choose to be licensed under the terms of the GNU
8  * General Public License (GPL) Version 2, available from the file
9  * COPYING in the main directory of this source tree, or the
10  * OpenIB.org BSD license below:
11  *
12  *     Redistribution and use in source and binary forms, with or
13  *     without modification, are permitted provided that the following
14  *     conditions are met:
15  *
16  *      - Redistributions of source code must retain the above
17  *        copyright notice, this list of conditions and the following
18  *        disclaimer.
19  *
20  *      - Redistributions in binary form must reproduce the above
21  *        copyright notice, this list of conditions and the following
22  *        disclaimer in the documentation and/or other materials
23  *        provided with the distribution.
24  *
25  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
29  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
30  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
31  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32  * SOFTWARE.
33  *
34  */
35
36 /*
37  * Abstract:
38  *      Basic OpenSM definitions and structures.
39  *      This object represents an OpenSM "base class".
40  *      This object is part of the OpenSM family of objects.
41  */
42
43 #ifndef _OSM_BASE_H_
44 #define _OSM_BASE_H_
45
46 #if HAVE_CONFIG_H
47 #  include <config.h>
48 #endif                          /* HAVE_CONFIG_H */
49
50 #ifdef __WIN__
51 #include <vendor/winosm_common.h>
52 #define OSM_CDECL __cdecl
53 #else
54 #define OSM_CDECL
55 #endif
56
57 #include <complib/cl_types.h>
58
59 #ifdef __cplusplus
60 #  define BEGIN_C_DECLS extern "C" {
61 #  define END_C_DECLS   }
62 #else                           /* !__cplusplus */
63 #  define BEGIN_C_DECLS
64 #  define END_C_DECLS
65 #endif                          /* __cplusplus */
66
67 BEGIN_C_DECLS
68 /****h* OpenSM/Constants
69 * NAME
70 *       Constants
71 *
72 * DESCRIPTION
73 *       The following constants are used throughout the OpenSM.
74 *
75 * AUTHOR
76 *       Steve King, Intel
77 *
78 *********/
79 /****h* OpenSM/Base
80 * NAME
81 *       Base
82 *
83 * DESCRIPTION
84 *       The Base object encapsulates basic information needed by the
85 *       OpenSM to manage objects.  Each OpenSM object includes the
86 *       Base object as the first member.
87 *
88 *       This object should be treated as opaque and should be
89 *       manipulated only through the provided functions.
90 *
91 * AUTHOR
92 *       Steve King, Intel
93 *
94 *********/
95 /****s* OpenSM: Base/OSM_DEFAULT_M_KEY
96 * NAME
97 *       OSM_DEFAULT_M_KEY
98 *
99 * DESCRIPTION
100 *       Managment key value used by the OpenSM.
101 *
102 * SYNOPSIS
103 */
104 #define OSM_DEFAULT_M_KEY 0
105 /********/
106 /****s* OpenSM: Base/OSM_DEFAULT_SM_KEY
107 * NAME
108 *       OSM_DEFAULT_SM_KEY
109 *
110 * DESCRIPTION
111 *       Subnet Manager key value used by the OpenSM.
112 *
113 * SYNOPSIS
114 */
115 #define OSM_DEFAULT_SM_KEY CL_HTON64(1)
116 /********/
117 /****s* OpenSM: Base/OSM_DEFAULT_SA_KEY
118 * NAME
119 *       OSM_DEFAULT_SA_KEY
120 *
121 * DESCRIPTION
122 *       Subnet Adminstration key value.
123 *
124 * SYNOPSIS
125 */
126 #define OSM_DEFAULT_SA_KEY OSM_DEFAULT_SM_KEY
127 /********/
128 /****s* OpenSM: Base/OSM_DEFAULT_LMC
129 * NAME
130 *       OSM_DEFAULT_LMC
131 *
132 * DESCRIPTION
133 *       Default LMC value used by the OpenSM.
134 *
135 * SYNOPSIS
136 */
137 #define OSM_DEFAULT_LMC 0
138 /********/
139 /****s* OpenSM: Base/OSM_DEFAULT_MAX_OP_VLS
140 * NAME
141 *       OSM_DEFAULT_MAX_OP_VLS
142 *
143 * DESCRIPTION
144 *       Default Maximal Operational VLs to be initialized on
145 *  the link ports PortInfo by the OpenSM.
146 *  Default value provides backward compatibility.
147 *
148 * SYNOPSIS
149 */
150 #define OSM_DEFAULT_MAX_OP_VLS 5
151 /********/
152 /****s* OpenSM: Base/OSM_DEFAULT_SL
153 * NAME
154 *       OSM_DEFAULT_SL
155 *
156 * DESCRIPTION
157 *       Default SL value used by the OpenSM.
158 *
159 * SYNOPSIS
160 */
161 #define OSM_DEFAULT_SL 0
162 /********/
163 /****s* OpenSM: Base/OSM_DEFAULT_SM_PRIORITY
164 * NAME
165 *       OSM_DEFAULT_SM_PRIORITY
166 *
167 * DESCRIPTION
168 *       Default SM priority value used by the OpenSM,
169 *       as defined in the SMInfo attribute.  0 is the lowest priority.
170 *
171 * SYNOPSIS
172 */
173 #define OSM_DEFAULT_SM_PRIORITY 0
174 /********/
175 /****d* OpenSM: Base/OSM_DEFAULT_TMP_DIR
176 * NAME
177 *       OSM_DEFAULT_TMP_DIR
178 *
179 * DESCRIPTION
180 *       Specifies the default temporary directory for the log file,
181 *  osm-subnet.lst, and other log files.
182 *
183 * SYNOPSIS
184 */
185 #ifdef __WIN__
186 #define OSM_DEFAULT_TMP_DIR GetOsmTempPath()
187 #else
188 #define OSM_DEFAULT_TMP_DIR "/var/log/"
189 #endif
190 /***********/
191 /****d* OpenSM: Base/OSM_DEFAULT_CACHE_DIR
192 * NAME
193 *       OSM_DEFAULT_CACHE_DIR
194 *
195 * DESCRIPTION
196 *       Specifies the default cache directory for the db files.
197 *       Note that the directory must appear with "/" ("\\" for windows) at the end.
198 *
199 * SYNOPSIS
200 */
201 #ifdef __WIN__
202 #define OSM_DEFAULT_CACHE_DIR GetOsmCachePath()
203 #else
204 #define OSM_DEFAULT_CACHE_DIR "/var/cache/opensm/"
205 #endif
206 /***********/
207 /****d* OpenSM: Base/OSM_DEFAULT_LOG_FILE
208 * NAME
209 *       OSM_DEFAULT_LOG_FILE
210 *
211 * DESCRIPTION
212 *       Specifies the default log file name
213 *
214 * SYNOPSIS
215 */
216 #ifdef __WIN__
217 #define OSM_DEFAULT_LOG_FILE strcat(GetOsmTempPath(), "osm.log")
218 #else
219 #define OSM_DEFAULT_LOG_FILE "/var/log/opensm.log"
220 #endif
221 /***********/
222
223 /****d* OpenSM: Base/OSM_DEFAULT_CONFIG_FILE
224 * NAME
225 *       OSM_DEFAULT_CONFIG_FILE
226 *
227 * DESCRIPTION
228 *       Specifies the default OpenSM config file name
229 *
230 * SYNOPSIS
231 */
232 #ifdef __WIN__
233 #define OSM_DEFAULT_CONFIG_FILE strcat(GetOsmCachePath(), "opensm.conf")
234 #elif defined(HAVE_DEFAULT_OPENSM_CONFIG_FILE)
235 #define OSM_DEFAULT_CONFIG_FILE HAVE_DEFAULT_OPENSM_CONFIG_FILE
236 #elif defined (OPENSM_CONFIG_DIR)
237 #define OSM_DEFAULT_CONFIG_FILE OPENSM_CONFIG_DIR "/opensm.conf"
238 #else
239 #define OSM_DEFAULT_CONFIG_FILE "/etc/opensm/opensm.conf"
240 #endif /* __WIN__ */
241 /***********/
242
243 /****d* OpenSM: Base/OSM_DEFAULT_PARTITION_CONFIG_FILE
244 * NAME
245 *       OSM_DEFAULT_PARTITION_CONFIG_FILE
246 *
247 * DESCRIPTION
248 *       Specifies the default partition config file name
249 *
250 * SYNOPSIS
251 */
252 #ifdef __WIN__
253 #define OSM_DEFAULT_PARTITION_CONFIG_FILE strcat(GetOsmCachePath(), "osm-partitions.conf")
254 #elif defined(HAVE_DEFAULT_PARTITION_CONFIG_FILE)
255 #define OSM_DEFAULT_PARTITION_CONFIG_FILE HAVE_DEFAULT_PARTITION_CONFIG_FILE
256 #elif defined(OPENSM_CONFIG_DIR)
257 #define OSM_DEFAULT_PARTITION_CONFIG_FILE OPENSM_CONFIG_DIR "/partitions.conf"
258 #else
259 #define OSM_DEFAULT_PARTITION_CONFIG_FILE "/etc/opensm/partitions.conf"
260 #endif /* __WIN__ */
261 /***********/
262
263 /****d* OpenSM: Base/OSM_DEFAULT_QOS_POLICY_FILE
264 * NAME
265 *       OSM_DEFAULT_QOS_POLICY_FILE
266 *
267 * DESCRIPTION
268 *       Specifies the default QoS policy file name
269 *
270 * SYNOPSIS
271 */
272 #ifdef __WIN__
273 #define OSM_DEFAULT_QOS_POLICY_FILE strcat(GetOsmCachePath(), "osm-qos-policy.conf")
274 #elif defined(HAVE_DEFAULT_QOS_POLICY_FILE)
275 #define OSM_DEFAULT_QOS_POLICY_FILE HAVE_DEFAULT_QOS_POLICY_FILE
276 #elif defined(OPENSM_CONFIG_DIR)
277 #define OSM_DEFAULT_QOS_POLICY_FILE OPENSM_CONFIG_DIR "/qos-policy.conf"
278 #else
279 #define OSM_DEFAULT_QOS_POLICY_FILE "/etc/opensm/qos-policy.conf"
280 #endif /* __WIN__ */
281 /***********/
282
283 /****d* OpenSM: Base/OSM_DEFAULT_PREFIX_ROUTES_FILE
284 * NAME
285 *       OSM_DEFAULT_PREFIX_ROUTES_FILE
286 *
287 * DESCRIPTION
288 *       Specifies the default prefix routes file name
289 *
290 * SYNOPSIS
291 */
292 #ifdef __WIN__
293 #define OSM_DEFAULT_PREFIX_ROUTES_FILE strcat(GetOsmCachePath(), "osm-prefix-routes.conf")
294 #elif defined(HAVE_DEFAULT_PREFIX_ROUTES_FILE)
295 #define OSM_DEFAULT_PREFIX_ROUTES_FILE HAVE_DEFAULT_PREFIX_ROUTES_FILE
296 #elif defined(OPENSM_CONFIG_DIR)
297 #define OSM_DEFAULT_PREFIX_ROUTES_FILE OPENSM_CONFIG_DIR "/prefix-routes.conf"
298 #else
299 #define OSM_DEFAULT_PREFIX_ROUTES_FILE "/etc/opensm/prefix-routes.conf"
300 #endif
301 /***********/
302
303 /****d* OpenSM: Base/OSM_DEFAULT_SWEEP_INTERVAL_SECS
304 * NAME
305 *       OSM_DEFAULT_SWEEP_INTERVAL_SECS
306 *
307 * DESCRIPTION
308 *       Specifies the default number of seconds between subnet sweeps.
309 *
310 * SYNOPSIS
311 */
312 #define OSM_DEFAULT_SWEEP_INTERVAL_SECS 10
313 /***********/
314 /****d* OpenSM: Base/OSM_DEFAULT_TRANS_TIMEOUT_MILLISEC
315 * NAME
316 *       OSM_DEFAULT_TRANS_TIMEOUT_MILLISEC
317 *
318 * DESCRIPTION
319 *       Specifies the default transaction timeout in milliseconds.
320 *
321 * SYNOPSIS
322 */
323 #define OSM_DEFAULT_TRANS_TIMEOUT_MILLISEC 200
324 /***********/
325 /****d* OpenSM: Base/OSM_DEFAULT_SUBNET_TIMEOUT
326 * NAME
327 *       OSM_DEFAULT_SUBNET_TIMEOUT
328 *
329 * DESCRIPTION
330 *       Specifies the default subnet timeout.
331 *       timeout time = 4us * 2^timeout.
332 *  We use here ~1sec.
333 *
334 * SYNOPSIS
335 */
336 #define OSM_DEFAULT_SUBNET_TIMEOUT 0x12
337 /***********/
338 /****d* OpenSM: Base/OSM_DEFAULT_SWITCH_PACKET_LIFE
339 * NAME
340 *       OSM_DEFAULT_SWITCH_PACKET_LIFE
341 *
342 * DESCRIPTION
343 *       Specifies the default max life time for a pcket on the switch.
344 *       timeout time = 4us * 2^timeout.
345 *  We use here the value of ~1sec
346 *  A Value > 19dec disables this mechanism.
347 *
348 * SYNOPSIS
349 */
350 #define OSM_DEFAULT_SWITCH_PACKET_LIFE 0x12
351 /***********/
352 /****d* OpenSM: Base/OSM_DEFAULT_HEAD_OF_QUEUE_LIFE
353 * NAME
354 *       OSM_DEFAULT_HEAD_OF_QUEUE_LIFE
355 *
356 * DESCRIPTION
357 *       Sets the time a packet can live in the head of the VL Queue
358 *  We use here the value of ~1sec
359 *  A Value > 19dec disables this mechanism.
360 *
361 * SYNOPSIS
362 */
363 #define OSM_DEFAULT_HEAD_OF_QUEUE_LIFE 0x12
364 /***********/
365 /****d* OpenSM: Base/OSM_DEFAULT_LEAF_HEAD_OF_QUEUE_LIFE
366 * NAME
367 *       OSM_DEFAULT_LEAF_HEAD_OF_QUEUE_LIFE
368 *
369 * DESCRIPTION
370 *       Sets the time a packet can live in the head of the VL Queue
371 *  of a port that drives a CA port.
372 *  We use here the value of ~256msec
373 *
374 * SYNOPSIS
375 */
376 #define OSM_DEFAULT_LEAF_HEAD_OF_QUEUE_LIFE 0x10
377 /***********/
378 /****d* OpenSM: Base/OSM_DEFAULT_VL_STALL_COUNT
379 * NAME
380 *       OSM_DEFAULT_LEAF_VL_COUNT
381 *
382 * DESCRIPTION
383 *       Sets the number of consecutive head of queue life time drops that
384 *  puts the VL into stalled state. In stalled state, the port is supposed
385 *  to drop everything for 8*(head of queue lifetime)
386 *
387 * SYNOPSIS
388 */
389 #define OSM_DEFAULT_VL_STALL_COUNT 0x7
390 /***********/
391 /****d* OpenSM: Base/OSM_DEFAULT_LEAF_VL_STALL_COUNT
392 * NAME
393 *       OSM_DEFAULT_LEAF_VL_STALL_COUNT
394 *
395 * DESCRIPTION
396 *       Sets the number of consecutive head of queue life time drops that
397 *  puts the VL into stalled state. In stalled state, the port is supposed
398 *  to drop everything for 8*(head of queue lifetime). This value is for
399 *  switch ports driving a CA port.
400 *
401 * SYNOPSIS
402 */
403 #define OSM_DEFAULT_LEAF_VL_STALL_COUNT 0x7
404 /***********/
405 /****d* OpenSM: Base/OSM_DEFAULT_TRAP_SUPRESSION_TIMEOUT
406 * NAME
407 *       OSM_DEFAULT_TRAP_SUPRESSION_TIMEOUT
408 *
409 * DESCRIPTION
410 *       Specifies the default timeout for ignoring same trap.
411 *       timeout time = 5000000us
412 *  We use here ~5sec.
413 *
414 * SYNOPSIS
415 */
416 #define OSM_DEFAULT_TRAP_SUPRESSION_TIMEOUT 5000000
417 /***********/
418 /****d* OpenSM: Base/OSM_DEFAULT_UNHEALTHY_TIMEOUT
419 * NAME
420 *       OSM_DEFAULT_UNHEALTHY_TIMEOUT
421 *
422 * DESCRIPTION
423 *       Specifies the default timeout for setting port as unhealthy.
424 *       timeout time = 60000000us
425 *  We use here ~60sec.
426 *
427 * SYNOPSIS
428 */
429 #define OSM_DEFAULT_UNHEALTHY_TIMEOUT 60000000
430 /***********/
431 /****d* OpenSM: Base/OSM_DEFAULT_ERROR_THRESHOLD
432 * NAME
433 *       OSM_DEFAULT_ERROR_THRESHOLD
434 *
435 * DESCRIPTION
436 *       Specifies default link error threshold to be set by SubnSet(PortInfo).
437 *
438 * SYNOPSIS
439 */
440 #define OSM_DEFAULT_ERROR_THRESHOLD 0x08
441 /***********/
442 /****d* OpenSM: Base/OSM_DEFAULT_SMP_MAX_ON_WIRE
443 * NAME
444 *       OSM_DEFAULT_SMP_MAX_ON_WIRE
445 *
446 * DESCRIPTION
447 *       Specifies the default number of VL15 SMP MADs allowed on
448 *       the wire at any one time.
449 *
450 * SYNOPSIS
451 */
452 #define OSM_DEFAULT_SMP_MAX_ON_WIRE 4
453 /***********/
454 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP0_RCV_SIZE
455 * NAME
456 *       OSM_SM_DEFAULT_QP0_RCV_SIZE
457 *
458 * DESCRIPTION
459 *       Specifies the default size (in MADs) of the QP0 receive queue
460 *
461 * SYNOPSIS
462 */
463 #define OSM_SM_DEFAULT_QP0_RCV_SIZE 256
464 /***********/
465 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP0_SEND_SIZE
466 * NAME
467 *       OSM_SM_DEFAULT_QP0_SEND_SIZE
468 *
469 * DESCRIPTION
470 *       Specifies the default size (in MADs) of the QP0 send queue
471 *
472 * SYNOPSIS
473 */
474 #define OSM_SM_DEFAULT_QP0_SEND_SIZE 256
475 /***********/
476 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP1_RCV_SIZE
477 * NAME
478 *   OSM_SM_DEFAULT_QP1_RCV_SIZE
479 *
480 * DESCRIPTION
481 *   Specifies the default size (in MADs) of the QP1 receive queue
482 *
483 * SYNOPSIS
484 */
485 #define OSM_SM_DEFAULT_QP1_RCV_SIZE 256
486 /***********/
487 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP1_SEND_SIZE
488 * NAME
489 *   OSM_SM_DEFAULT_QP1_SEND_SIZE
490 *
491 * DESCRIPTION
492 *   Specifies the default size (in MADs) of the QP1 send queue
493 *
494 * SYNOPSIS
495 */
496 #define OSM_SM_DEFAULT_QP1_SEND_SIZE 256
497 /****d* OpenSM: Base/OSM_PM_DEFAULT_QP1_RCV_SIZE
498 * NAME
499 *   OSM_PM_DEFAULT_QP1_RCV_SIZE
500 *
501 * DESCRIPTION
502 *   Specifies the default size (in MADs) of the QP1 receive queue
503 *
504 * SYNOPSIS
505 */
506 #define OSM_PM_DEFAULT_QP1_RCV_SIZE 256
507 /***********/
508 /****d* OpenSM: Base/OSM_PM_DEFAULT_QP1_SEND_SIZE
509 * NAME
510 *   OSM_PM_DEFAULT_QP1_SEND_SIZE
511 *
512 * DESCRIPTION
513 *   Specifies the default size (in MADs) of the QP1 send queue
514 *
515 * SYNOPSIS
516 */
517 #define OSM_PM_DEFAULT_QP1_SEND_SIZE 256
518 /****d* OpenSM: Base/OSM_SM_DEFAULT_POLLING_TIMEOUT_MILLISECS
519 * NAME
520 *   OSM_SM_DEFAULT_POLLING_TIMEOUT_MILLISECS
521 *
522 * DESCRIPTION
523 *   Specifies the polling timeout (in miliseconds) - the timeout
524 *   between one poll to another.
525 *
526 * SYNOPSIS
527 */
528 #define OSM_SM_DEFAULT_POLLING_TIMEOUT_MILLISECS 10000
529 /**********/
530 /****d* OpenSM: Base/OSM_SM_DEFAULT_POLLING_RETRY_NUMBER
531 * NAME
532 *   OSM_SM_DEFAULT_POLLING_RETRY_NUMBER
533 *
534 * DESCRIPTION
535 *   Specifies the number of polling retries before the SM goes back
536 *   to DISCOVERY stage. So the default total time for handoff is 40 sec.
537 *
538 * SYNOPSIS
539 */
540 #define OSM_SM_DEFAULT_POLLING_RETRY_NUMBER 4
541 /**********/
542 /****d* OpenSM: MC Member Record Receiver/OSM_DEFAULT_MGRP_MTU
543 * Name
544 *       OSM_DEFAULT_MGRP_MTU
545 *
546 * DESCRIPTION
547 *       Default MTU used for new MGRP creation (2048 bytes)
548 *  Note it includes the MTUSelector which is set to "Greater Than"
549 *
550 * SYNOPSIS
551 */
552 #define OSM_DEFAULT_MGRP_MTU 0x04
553 /***********/
554 /****d* OpenSM: MC Member Record Receiver/OSM_DEFAULT_MGRP_RATE
555 * Name
556 *       OSM_DEFAULT_MGRP_RATE
557 *
558 * DESCRIPTION
559 *       Default RATE used for new MGRP creation (10Gb/sec)
560 *  Note it includes the RateSelector which is set to "Greater Than"
561 *
562 * SYNOPSIS
563 */
564 #define OSM_DEFAULT_MGRP_RATE 0x03
565 /***********/
566 /****d* OpenSM: MC Member Record Receiver/OSM_DEFAULT_MGRP_SCOPE
567 * Name
568 *       OSM_DEFAULT_MGRP_SCOPE
569 *
570 * DESCRIPTION
571 *       Default SCOPE used for new MGRP creation (link local)
572 *
573 * SYNOPSIS
574 */
575 #define OSM_DEFAULT_MGRP_SCOPE IB_MC_SCOPE_LINK_LOCAL
576 /***********/
577 /****d* OpenSM: Base/OSM_DEFAULT_QOS_MAX_VLS
578  * Name
579  *       OSM_DEFAULT_QOS_MAX_VLS
580  *
581  * DESCRIPTION
582  *       Default Maximum VLs used by the OpenSM.
583  *
584  * SYNOPSIS
585  */
586 #define OSM_DEFAULT_QOS_MAX_VLS 15
587 /***********/
588 /****d* OpenSM: Base/OSM_DEFAULT_QOS_HIGH_LIMIT
589  * Name
590  *       OSM_DEFAULT_QOS_HIGH_LIMIT
591  *
592  * DESCRIPTION
593  *       Default Limit of High Priority in VL Arbitration used by OpenSM.
594  *
595  * SYNOPSIS
596  */
597 #define OSM_DEFAULT_QOS_HIGH_LIMIT 0
598 /***********/
599 /****d* OpenSM: Base/OSM_DEFAULT_QOS_VLARB_HIGH
600  * Name
601  *       OSM_DEFAULT_QOS_VLARB_HIGH
602  *
603  * DESCRIPTION
604  *       Default High Priority VL Arbitration table used by the OpenSM.
605  *
606  * SYNOPSIS
607  */
608 #define OSM_DEFAULT_QOS_VLARB_HIGH "0:4,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0"
609 /***********/
610 /****d* OpenSM: Base/OSM_DEFAULT_QOS_VLARB_LOW
611  * Name
612  *       OSM_DEFAULT_QOS_VLARB_LOW
613  *
614  * DESCRIPTION
615  *       Default Low Priority VL Arbitration table used by the OpenSM.
616  *
617  * SYNOPSIS
618  */
619 #define OSM_DEFAULT_QOS_VLARB_LOW "0:0,1:4,2:4,3:4,4:4,5:4,6:4,7:4,8:4,9:4,10:4,11:4,12:4,13:4,14:4"
620 /***********/
621 /****d* OpenSM: Base/OSM_DEFAULT_QOS_SL2VL
622  * Name
623  *       OSM_DEFAULT_QOS_SL2VL
624  *
625  * DESCRIPTION
626  *       Default QoS SL2VL Mapping Table used by the OpenSM.
627  *
628  * SYNOPSIS
629  */
630 #define OSM_DEFAULT_QOS_SL2VL "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,7"
631 /***********/
632 /****d* OpenSM: Base/OSM_NO_PATH
633 * NAME
634 *       OSM_NO_PATH
635 *
636 * DESCRIPTION
637 *       Value indicating there is no path to the given LID.
638 *
639 * SYNOPSIS
640 */
641 #define OSM_NO_PATH                     0xFF
642 /**********/
643 /****d* OpenSM: Base/OSM_NODE_DESC_UNKNOWN
644 * NAME
645 *       OSM_NODE_DESC_UNKNOWN
646 *
647 * DESCRIPTION
648 *       Value indicating the Node Description is not set and is "unknown"
649 *
650 * SYNOPSIS
651 */
652 #define OSM_NODE_DESC_UNKNOWN "<unknown>"
653 /**********/
654 /****d* OpenSM: Base/osm_thread_state_t
655 * NAME
656 *       osm_thread_state_t
657 *
658 * DESCRIPTION
659 *       Enumerates the possible states of worker threads, such
660 *       as the subnet sweeper.
661 *
662 * SYNOPSIS
663 */
664 typedef enum _osm_thread_state {
665         OSM_THREAD_STATE_NONE = 0,
666         OSM_THREAD_STATE_INIT,
667         OSM_THREAD_STATE_RUN,
668         OSM_THREAD_STATE_EXIT
669 } osm_thread_state_t;
670 /***********/
671
672 /*
673  * OSM_CAP are from Table 117 and C15-0.1.7 Table 186
674  */
675
676 /****d* OpenSM: Base/OSM_CAP_IS_TRAP_SUP
677 * Name
678 *       OSM_CAP_IS_SUBN_TRAP_SUP
679 *
680 * DESCRIPTION
681 *       Management class generates Trap() MADs
682 *
683 * SYNOPSIS
684 */
685 #define OSM_CAP_IS_SUBN_TRAP_SUP (1 << 0)
686 /***********/
687
688 /****d* OpenSM: Base/OSM_CAP_IS_GET_SET_NOTICE_SUP
689 * Name
690 *       OSM_CAP_IS_GET_SET_NOTICE_SUP
691 *
692 * DESCRIPTION
693 *       Management class supports Get/Set(Notice)
694 *
695 * SYNOPSIS
696 */
697 #define OSM_CAP_IS_SUBN_GET_SET_NOTICE_SUP (1 << 1)
698 /***********/
699
700 /****d* OpenSM: Base/OSM_CAP_IS_SUBN_OPT_RECS_SUP
701 * Name
702 *       OSM_CAP_IS_SUBN_OPT_RECS_SUP
703 *
704 * DESCRIPTION
705 *       Support all optional attributes except:
706 *  MCMemberRecord, TraceRecord, MultiPathRecord
707 *
708 * SYNOPSIS
709 */
710 #define OSM_CAP_IS_SUBN_OPT_RECS_SUP (1 << 8)
711 /***********/
712
713 /****d* OpenSM: Base/OSM_CAP_IS_UD_MCAST_SUP
714 * Name
715 *       OSM_CAP_IS_UD_MCAST_SUP
716 *
717 * DESCRIPTION
718 *       Multicast is supported
719 *
720 * SYNOPSIS
721 */
722 #define OSM_CAP_IS_UD_MCAST_SUP (1 << 9)
723 /***********/
724
725 /****d* OpenSM: Base/OSM_CAP_IS_MULTIPATH_SUP
726 * Name
727 *       OSM_CAP_IS_MULTIPATH_SUP
728 *
729 * DESCRIPTION
730 *       MultiPathRecord and TraceRecord are supported
731 *
732 * SYNOPSIS
733 */
734 #define OSM_CAP_IS_MULTIPATH_SUP (1 << 10)
735 /***********/
736
737 /****d* OpenSM: Base/OSM_CAP_IS_REINIT_SUP
738 * Name
739 *       OSM_CAP_IS_REINIT_SUP
740 *
741 * DESCRIPTION
742 *       SM/SA supports re-initialization supported
743 *
744 * SYNOPSIS
745 */
746 #define OSM_CAP_IS_REINIT_SUP (1 << 11)
747 /***********/
748
749 /****d* OpenSM: Base/OSM_CAP_IS_PORT_INFO_CAPMASK_MATCH_SUPPORTED
750 * Name
751 *       OSM_CAP_IS_PORT_INFO_CAPMASK_MATCH_SUPPORTED
752 *
753 * DESCRIPTION
754 *       SM/SA supports enhanced SA PortInfoRecord searches per 1.2 Errata:
755 *  ClassPortInfo:CapabilityMask.IsPortInfoCapMaskMatchSupported is 1,
756 *  then the AttributeModifier of the SubnAdmGet() and SubnAdmGetTable()
757 *  methods affects the matching behavior on the PortInfo:CapabilityMask
758 *  component. If the high-order bit (bit 31) of the AttributeModifier
759 *  is set to 1, matching on the CapabilityMask component will not be an
760 *  exact bitwise match as described in <ref to 15.4.4>.  Instead,
761 *  matching will only be performed on those bits which are set to 1 in
762 *  the PortInfo:CapabilityMask embedded in the query.
763 *
764 * SYNOPSIS
765 */
766 #define OSM_CAP_IS_PORT_INFO_CAPMASK_MATCH_SUPPORTED (1 << 13)
767 /***********/
768
769 /****d* OpenSM: Base/OSM_CAP2_IS_QOS_SUPPORTED
770 * Name
771 *       OSM_CAP2_IS_QOS_SUPPORTED
772 *
773 * DESCRIPTION
774 *       QoS is supported
775 *
776 * SYNOPSIS
777 */
778 #define OSM_CAP2_IS_QOS_SUPPORTED (1 << 1)
779 /***********/
780
781 /****d* OpenSM: Base/osm_signal_t
782 * NAME
783 *       osm_signal_t
784 *
785 * DESCRIPTION
786 *       Enumerates the possible signal codes used by the OSM managers
787 *       This cannot be an enum type, since conversion to and from
788 *       integral types is necessary when passing signals through
789 *       the dispatcher.
790 *
791 * SYNOPSIS
792 */
793 #define OSM_SIGNAL_NONE                         0
794 #define OSM_SIGNAL_SWEEP                        1
795 #define OSM_SIGNAL_IDLE_TIME_PROCESS_REQUEST    2
796 #define OSM_SIGNAL_PERFMGR_SWEEP                3
797 #define OSM_SIGNAL_MAX                          3
798
799 /* status values for sweep managers - can be removed later */
800 #define OSM_SIGNAL_DONE         16
801 #define OSM_SIGNAL_DONE_PENDING 17
802
803 typedef unsigned int osm_signal_t;
804 /***********/
805
806 /****d* OpenSM: Base/osm_sm_signal_t
807 * NAME
808 *       osm_sm_signal_t
809 *
810 * DESCRIPTION
811 *       Enumerates the possible signals used by the OSM_SM_MGR
812 *
813 * SYNOPSIS
814 */
815 typedef enum _osm_sm_signal {
816         OSM_SM_SIGNAL_NONE = 0,
817         OSM_SM_SIGNAL_DISCOVERY_COMPLETED,
818         OSM_SM_SIGNAL_POLLING_TIMEOUT,
819         OSM_SM_SIGNAL_DISCOVER,
820         OSM_SM_SIGNAL_DISABLE,
821         OSM_SM_SIGNAL_HANDOVER,
822         OSM_SM_SIGNAL_HANDOVER_SENT,
823         OSM_SM_SIGNAL_ACKNOWLEDGE,
824         OSM_SM_SIGNAL_STANDBY,
825         OSM_SM_SIGNAL_MASTER_OR_HIGHER_SM_DETECTED,
826         OSM_SM_SIGNAL_WAIT_FOR_HANDOVER,
827         OSM_SM_SIGNAL_MAX
828 } osm_sm_signal_t;
829 /***********/
830
831 /****d* OpenSM/osm_mcast_req_type_t
832 * NAME
833 *       osm_mcast_req_type_t
834 *
835 * DESCRIPTION
836 *       Enumerates the possible signals used by the OSM_MCAST_REQUEST
837 *
838 * SYNOPSIS
839 */
840 typedef enum _osm_mcast_req_type {
841         OSM_MCAST_REQ_TYPE_CREATE,
842         OSM_MCAST_REQ_TYPE_JOIN,
843         OSM_MCAST_REQ_TYPE_LEAVE,
844         OSM_MCAST_REQ_TYPE_SUBNET_CHANGE
845 } osm_mcast_req_type_t;
846 /***********/
847
848 /****s* OpenSM: Base/MAX_GUID_FILE_LINE_LENGTH
849 * NAME
850 *       MAX_GUID_FILE_LINE_LENGTH
851 *
852 * DESCRIPTION
853 *       The maximum line number when reading guid file
854 *
855 * SYNOPSIS
856 */
857 #define MAX_GUID_FILE_LINE_LENGTH 120
858 /**********/
859
860 /****s* OpenSM: Base/VendorOUIs
861 * NAME
862 *       VendorOUIs
863 *
864 * DESCRIPTION
865 *       Known device vendor ID and GUID OUIs
866 *
867 * SYNOPSIS
868 */
869 #define OSM_VENDOR_ID_INTEL         0x00D0B7
870 #define OSM_VENDOR_ID_MELLANOX      0x0002C9
871 #define OSM_VENDOR_ID_REDSWITCH     0x000617
872 #define OSM_VENDOR_ID_SILVERSTORM   0x00066A
873 #define OSM_VENDOR_ID_TOPSPIN       0x0005AD
874 #define OSM_VENDOR_ID_FUJITSU       0x00E000
875 #define OSM_VENDOR_ID_FUJITSU2      0x000B5D
876 #define OSM_VENDOR_ID_VOLTAIRE      0x0008F1
877 #define OSM_VENDOR_ID_YOTTAYOTTA    0x000453
878 #define OSM_VENDOR_ID_PATHSCALE     0x001175
879 #define OSM_VENDOR_ID_IBM           0x000255
880 #define OSM_VENDOR_ID_DIVERGENET    0x00084E
881 #define OSM_VENDOR_ID_FLEXTRONICS   0x000B8C
882 #define OSM_VENDOR_ID_AGILENT       0x0030D3
883 #define OSM_VENDOR_ID_OBSIDIAN      0x001777
884 #define OSM_VENDOR_ID_BAYMICRO      0x000BC1
885 #define OSM_VENDOR_ID_LSILOGIC      0x00A0B8
886 #define OSM_VENDOR_ID_DDN           0x0001FF
887 #define OSM_VENDOR_ID_PANTA         0x001393
888 #define OSM_VENDOR_ID_HP            0x001708
889 #define OSM_VENDOR_ID_RIOWORKS      0x005045
890 #define OSM_VENDOR_ID_SUN           0x0003BA
891 #define OSM_VENDOR_ID_3LEAFNTWKS    0x0016A1
892 #define OSM_VENDOR_ID_XSIGO         0x001397
893 #define OSM_VENDOR_ID_HP2           0x0018FE
894
895 /**********/
896
897 END_C_DECLS
898 #endif                          /* _OSM_BASE_H_ */