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.
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:
12 * Redistribution and use in source and binary forms, with or
13 * without modification, are permitted provided that the following
16 * - Redistributions of source code must retain the above
17 * copyright notice, this list of conditions and the following
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.
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
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.
48 #endif /* HAVE_CONFIG_H */
51 #include <vendor/winosm_common.h>
52 #define OSM_CDECL __cdecl
57 #include <complib/cl_types.h>
60 # define BEGIN_C_DECLS extern "C" {
61 # define END_C_DECLS }
62 #else /* !__cplusplus */
63 # define BEGIN_C_DECLS
65 #endif /* __cplusplus */
68 /****h* OpenSM/Constants
73 * The following constants are used throughout the OpenSM.
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.
88 * This object should be treated as opaque and should be
89 * manipulated only through the provided functions.
95 /****s* OpenSM: Base/OSM_DEFAULT_M_KEY
100 * Managment key value used by the OpenSM.
104 #define OSM_DEFAULT_M_KEY 0
106 /****s* OpenSM: Base/OSM_DEFAULT_SM_KEY
111 * Subnet Manager key value used by the OpenSM.
115 #define OSM_DEFAULT_SM_KEY CL_HTON64(1)
117 /****s* OpenSM: Base/OSM_DEFAULT_SA_KEY
122 * Subnet Adminstration key value.
126 #define OSM_DEFAULT_SA_KEY OSM_DEFAULT_SM_KEY
128 /****s* OpenSM: Base/OSM_DEFAULT_LMC
133 * Default LMC value used by the OpenSM.
137 #define OSM_DEFAULT_LMC 0
139 /****s* OpenSM: Base/OSM_DEFAULT_MAX_OP_VLS
141 * OSM_DEFAULT_MAX_OP_VLS
144 * Default Maximal Operational VLs to be initialized on
145 * the link ports PortInfo by the OpenSM.
146 * Default value provides backward compatibility.
150 #define OSM_DEFAULT_MAX_OP_VLS 5
152 /****s* OpenSM: Base/OSM_DEFAULT_SL
157 * Default SL value used by the OpenSM.
161 #define OSM_DEFAULT_SL 0
163 /****s* OpenSM: Base/OSM_DEFAULT_SM_PRIORITY
165 * OSM_DEFAULT_SM_PRIORITY
168 * Default SM priority value used by the OpenSM,
169 * as defined in the SMInfo attribute. 0 is the lowest priority.
173 #define OSM_DEFAULT_SM_PRIORITY 0
175 /****d* OpenSM: Base/OSM_DEFAULT_TMP_DIR
177 * OSM_DEFAULT_TMP_DIR
180 * Specifies the default temporary directory for the log file,
181 * osm-subnet.lst, and other log files.
186 #define OSM_DEFAULT_TMP_DIR GetOsmTempPath()
188 #define OSM_DEFAULT_TMP_DIR "/var/log/"
191 /****d* OpenSM: Base/OSM_DEFAULT_CACHE_DIR
193 * OSM_DEFAULT_CACHE_DIR
196 * Specifies the default cache directory for the db files.
197 * Note that the directory must appear with "/" ("\\" for windows) at the end.
202 #define OSM_DEFAULT_CACHE_DIR GetOsmCachePath()
204 #define OSM_DEFAULT_CACHE_DIR "/var/cache/opensm/"
207 /****d* OpenSM: Base/OSM_DEFAULT_LOG_FILE
209 * OSM_DEFAULT_LOG_FILE
212 * Specifies the default log file name
217 #define OSM_DEFAULT_LOG_FILE strcat(GetOsmTempPath(), "osm.log")
219 #define OSM_DEFAULT_LOG_FILE "/var/log/opensm.log"
223 /****d* OpenSM: Base/OSM_DEFAULT_CONFIG_FILE
225 * OSM_DEFAULT_CONFIG_FILE
228 * Specifies the default OpenSM config file name
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"
239 #define OSM_DEFAULT_CONFIG_FILE "/etc/opensm/opensm.conf"
243 /****d* OpenSM: Base/OSM_DEFAULT_PARTITION_CONFIG_FILE
245 * OSM_DEFAULT_PARTITION_CONFIG_FILE
248 * Specifies the default partition config file name
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"
259 #define OSM_DEFAULT_PARTITION_CONFIG_FILE "/etc/opensm/partitions.conf"
263 /****d* OpenSM: Base/OSM_DEFAULT_QOS_POLICY_FILE
265 * OSM_DEFAULT_QOS_POLICY_FILE
268 * Specifies the default QoS policy file name
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"
279 #define OSM_DEFAULT_QOS_POLICY_FILE "/etc/opensm/qos-policy.conf"
283 /****d* OpenSM: Base/OSM_DEFAULT_PREFIX_ROUTES_FILE
285 * OSM_DEFAULT_PREFIX_ROUTES_FILE
288 * Specifies the default prefix routes file name
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"
299 #define OSM_DEFAULT_PREFIX_ROUTES_FILE "/etc/opensm/prefix-routes.conf"
303 /****d* OpenSM: Base/OSM_DEFAULT_SWEEP_INTERVAL_SECS
305 * OSM_DEFAULT_SWEEP_INTERVAL_SECS
308 * Specifies the default number of seconds between subnet sweeps.
312 #define OSM_DEFAULT_SWEEP_INTERVAL_SECS 10
314 /****d* OpenSM: Base/OSM_DEFAULT_TRANS_TIMEOUT_MILLISEC
316 * OSM_DEFAULT_TRANS_TIMEOUT_MILLISEC
319 * Specifies the default transaction timeout in milliseconds.
323 #define OSM_DEFAULT_TRANS_TIMEOUT_MILLISEC 200
325 /****d* OpenSM: Base/OSM_DEFAULT_SUBNET_TIMEOUT
327 * OSM_DEFAULT_SUBNET_TIMEOUT
330 * Specifies the default subnet timeout.
331 * timeout time = 4us * 2^timeout.
336 #define OSM_DEFAULT_SUBNET_TIMEOUT 0x12
338 /****d* OpenSM: Base/OSM_DEFAULT_SWITCH_PACKET_LIFE
340 * OSM_DEFAULT_SWITCH_PACKET_LIFE
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.
350 #define OSM_DEFAULT_SWITCH_PACKET_LIFE 0x12
352 /****d* OpenSM: Base/OSM_DEFAULT_HEAD_OF_QUEUE_LIFE
354 * OSM_DEFAULT_HEAD_OF_QUEUE_LIFE
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.
363 #define OSM_DEFAULT_HEAD_OF_QUEUE_LIFE 0x12
365 /****d* OpenSM: Base/OSM_DEFAULT_LEAF_HEAD_OF_QUEUE_LIFE
367 * OSM_DEFAULT_LEAF_HEAD_OF_QUEUE_LIFE
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
376 #define OSM_DEFAULT_LEAF_HEAD_OF_QUEUE_LIFE 0x10
378 /****d* OpenSM: Base/OSM_DEFAULT_VL_STALL_COUNT
380 * OSM_DEFAULT_LEAF_VL_COUNT
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)
389 #define OSM_DEFAULT_VL_STALL_COUNT 0x7
391 /****d* OpenSM: Base/OSM_DEFAULT_LEAF_VL_STALL_COUNT
393 * OSM_DEFAULT_LEAF_VL_STALL_COUNT
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.
403 #define OSM_DEFAULT_LEAF_VL_STALL_COUNT 0x7
405 /****d* OpenSM: Base/OSM_DEFAULT_TRAP_SUPRESSION_TIMEOUT
407 * OSM_DEFAULT_TRAP_SUPRESSION_TIMEOUT
410 * Specifies the default timeout for ignoring same trap.
411 * timeout time = 5000000us
416 #define OSM_DEFAULT_TRAP_SUPRESSION_TIMEOUT 5000000
418 /****d* OpenSM: Base/OSM_DEFAULT_UNHEALTHY_TIMEOUT
420 * OSM_DEFAULT_UNHEALTHY_TIMEOUT
423 * Specifies the default timeout for setting port as unhealthy.
424 * timeout time = 60000000us
425 * We use here ~60sec.
429 #define OSM_DEFAULT_UNHEALTHY_TIMEOUT 60000000
431 /****d* OpenSM: Base/OSM_DEFAULT_ERROR_THRESHOLD
433 * OSM_DEFAULT_ERROR_THRESHOLD
436 * Specifies default link error threshold to be set by SubnSet(PortInfo).
440 #define OSM_DEFAULT_ERROR_THRESHOLD 0x08
442 /****d* OpenSM: Base/OSM_DEFAULT_SMP_MAX_ON_WIRE
444 * OSM_DEFAULT_SMP_MAX_ON_WIRE
447 * Specifies the default number of VL15 SMP MADs allowed on
448 * the wire at any one time.
452 #define OSM_DEFAULT_SMP_MAX_ON_WIRE 4
454 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP0_RCV_SIZE
456 * OSM_SM_DEFAULT_QP0_RCV_SIZE
459 * Specifies the default size (in MADs) of the QP0 receive queue
463 #define OSM_SM_DEFAULT_QP0_RCV_SIZE 256
465 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP0_SEND_SIZE
467 * OSM_SM_DEFAULT_QP0_SEND_SIZE
470 * Specifies the default size (in MADs) of the QP0 send queue
474 #define OSM_SM_DEFAULT_QP0_SEND_SIZE 256
476 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP1_RCV_SIZE
478 * OSM_SM_DEFAULT_QP1_RCV_SIZE
481 * Specifies the default size (in MADs) of the QP1 receive queue
485 #define OSM_SM_DEFAULT_QP1_RCV_SIZE 256
487 /****d* OpenSM: Base/OSM_SM_DEFAULT_QP1_SEND_SIZE
489 * OSM_SM_DEFAULT_QP1_SEND_SIZE
492 * Specifies the default size (in MADs) of the QP1 send queue
496 #define OSM_SM_DEFAULT_QP1_SEND_SIZE 256
497 /****d* OpenSM: Base/OSM_PM_DEFAULT_QP1_RCV_SIZE
499 * OSM_PM_DEFAULT_QP1_RCV_SIZE
502 * Specifies the default size (in MADs) of the QP1 receive queue
506 #define OSM_PM_DEFAULT_QP1_RCV_SIZE 256
508 /****d* OpenSM: Base/OSM_PM_DEFAULT_QP1_SEND_SIZE
510 * OSM_PM_DEFAULT_QP1_SEND_SIZE
513 * Specifies the default size (in MADs) of the QP1 send queue
517 #define OSM_PM_DEFAULT_QP1_SEND_SIZE 256
518 /****d* OpenSM: Base/OSM_SM_DEFAULT_POLLING_TIMEOUT_MILLISECS
520 * OSM_SM_DEFAULT_POLLING_TIMEOUT_MILLISECS
523 * Specifies the polling timeout (in miliseconds) - the timeout
524 * between one poll to another.
528 #define OSM_SM_DEFAULT_POLLING_TIMEOUT_MILLISECS 10000
530 /****d* OpenSM: Base/OSM_SM_DEFAULT_POLLING_RETRY_NUMBER
532 * OSM_SM_DEFAULT_POLLING_RETRY_NUMBER
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.
540 #define OSM_SM_DEFAULT_POLLING_RETRY_NUMBER 4
542 /****d* OpenSM: MC Member Record Receiver/OSM_DEFAULT_MGRP_MTU
544 * OSM_DEFAULT_MGRP_MTU
547 * Default MTU used for new MGRP creation (2048 bytes)
548 * Note it includes the MTUSelector which is set to "Greater Than"
552 #define OSM_DEFAULT_MGRP_MTU 0x04
554 /****d* OpenSM: MC Member Record Receiver/OSM_DEFAULT_MGRP_RATE
556 * OSM_DEFAULT_MGRP_RATE
559 * Default RATE used for new MGRP creation (10Gb/sec)
560 * Note it includes the RateSelector which is set to "Greater Than"
564 #define OSM_DEFAULT_MGRP_RATE 0x03
566 /****d* OpenSM: MC Member Record Receiver/OSM_DEFAULT_MGRP_SCOPE
568 * OSM_DEFAULT_MGRP_SCOPE
571 * Default SCOPE used for new MGRP creation (link local)
575 #define OSM_DEFAULT_MGRP_SCOPE IB_MC_SCOPE_LINK_LOCAL
577 /****d* OpenSM: Base/OSM_DEFAULT_QOS_MAX_VLS
579 * OSM_DEFAULT_QOS_MAX_VLS
582 * Default Maximum VLs used by the OpenSM.
586 #define OSM_DEFAULT_QOS_MAX_VLS 15
588 /****d* OpenSM: Base/OSM_DEFAULT_QOS_HIGH_LIMIT
590 * OSM_DEFAULT_QOS_HIGH_LIMIT
593 * Default Limit of High Priority in VL Arbitration used by OpenSM.
597 #define OSM_DEFAULT_QOS_HIGH_LIMIT 0
599 /****d* OpenSM: Base/OSM_DEFAULT_QOS_VLARB_HIGH
601 * OSM_DEFAULT_QOS_VLARB_HIGH
604 * Default High Priority VL Arbitration table used by the OpenSM.
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"
610 /****d* OpenSM: Base/OSM_DEFAULT_QOS_VLARB_LOW
612 * OSM_DEFAULT_QOS_VLARB_LOW
615 * Default Low Priority VL Arbitration table used by the OpenSM.
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"
621 /****d* OpenSM: Base/OSM_DEFAULT_QOS_SL2VL
623 * OSM_DEFAULT_QOS_SL2VL
626 * Default QoS SL2VL Mapping Table used by the OpenSM.
630 #define OSM_DEFAULT_QOS_SL2VL "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,7"
632 /****d* OpenSM: Base/OSM_NO_PATH
637 * Value indicating there is no path to the given LID.
641 #define OSM_NO_PATH 0xFF
643 /****d* OpenSM: Base/OSM_NODE_DESC_UNKNOWN
645 * OSM_NODE_DESC_UNKNOWN
648 * Value indicating the Node Description is not set and is "unknown"
652 #define OSM_NODE_DESC_UNKNOWN "<unknown>"
654 /****d* OpenSM: Base/osm_thread_state_t
659 * Enumerates the possible states of worker threads, such
660 * as the subnet sweeper.
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;
673 * OSM_CAP are from Table 117 and C15-0.1.7 Table 186
676 /****d* OpenSM: Base/OSM_CAP_IS_TRAP_SUP
678 * OSM_CAP_IS_SUBN_TRAP_SUP
681 * Management class generates Trap() MADs
685 #define OSM_CAP_IS_SUBN_TRAP_SUP (1 << 0)
688 /****d* OpenSM: Base/OSM_CAP_IS_GET_SET_NOTICE_SUP
690 * OSM_CAP_IS_GET_SET_NOTICE_SUP
693 * Management class supports Get/Set(Notice)
697 #define OSM_CAP_IS_SUBN_GET_SET_NOTICE_SUP (1 << 1)
700 /****d* OpenSM: Base/OSM_CAP_IS_SUBN_OPT_RECS_SUP
702 * OSM_CAP_IS_SUBN_OPT_RECS_SUP
705 * Support all optional attributes except:
706 * MCMemberRecord, TraceRecord, MultiPathRecord
710 #define OSM_CAP_IS_SUBN_OPT_RECS_SUP (1 << 8)
713 /****d* OpenSM: Base/OSM_CAP_IS_UD_MCAST_SUP
715 * OSM_CAP_IS_UD_MCAST_SUP
718 * Multicast is supported
722 #define OSM_CAP_IS_UD_MCAST_SUP (1 << 9)
725 /****d* OpenSM: Base/OSM_CAP_IS_MULTIPATH_SUP
727 * OSM_CAP_IS_MULTIPATH_SUP
730 * MultiPathRecord and TraceRecord are supported
734 #define OSM_CAP_IS_MULTIPATH_SUP (1 << 10)
737 /****d* OpenSM: Base/OSM_CAP_IS_REINIT_SUP
739 * OSM_CAP_IS_REINIT_SUP
742 * SM/SA supports re-initialization supported
746 #define OSM_CAP_IS_REINIT_SUP (1 << 11)
749 /****d* OpenSM: Base/OSM_CAP_IS_PORT_INFO_CAPMASK_MATCH_SUPPORTED
751 * OSM_CAP_IS_PORT_INFO_CAPMASK_MATCH_SUPPORTED
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.
766 #define OSM_CAP_IS_PORT_INFO_CAPMASK_MATCH_SUPPORTED (1 << 13)
769 /****d* OpenSM: Base/OSM_CAP2_IS_QOS_SUPPORTED
771 * OSM_CAP2_IS_QOS_SUPPORTED
778 #define OSM_CAP2_IS_QOS_SUPPORTED (1 << 1)
781 /****d* OpenSM: Base/osm_signal_t
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
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
799 /* status values for sweep managers - can be removed later */
800 #define OSM_SIGNAL_DONE 16
801 #define OSM_SIGNAL_DONE_PENDING 17
803 typedef unsigned int osm_signal_t;
806 /****d* OpenSM: Base/osm_sm_signal_t
811 * Enumerates the possible signals used by the OSM_SM_MGR
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,
831 /****d* OpenSM/osm_mcast_req_type_t
833 * osm_mcast_req_type_t
836 * Enumerates the possible signals used by the OSM_MCAST_REQUEST
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;
848 /****s* OpenSM: Base/MAX_GUID_FILE_LINE_LENGTH
850 * MAX_GUID_FILE_LINE_LENGTH
853 * The maximum line number when reading guid file
857 #define MAX_GUID_FILE_LINE_LENGTH 120
860 /****s* OpenSM: Base/VendorOUIs
865 * Known device vendor ID and GUID OUIs
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
898 #endif /* _OSM_BASE_H_ */