/*\r
* MAD methods\r
*/\r
+
/****d* IBA Base: Constants/IB_MAX_METHOD\r
* NAME\r
* IB_MAX_METHOD\r
*/\r
#define IB_MAX_METHODS 128\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_RESP_MASK\r
* NAME\r
* IB_MAD_METHOD_RESP_MASK\r
*/\r
#define IB_MAD_METHOD_RESP_MASK 0x80\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_GET\r
* NAME\r
* IB_MAD_METHOD_GET\r
*/\r
#define IB_MAD_METHOD_GET 0x01\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_SET\r
* NAME\r
* IB_MAD_METHOD_SET\r
*/\r
#define IB_MAD_METHOD_SET 0x02\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_GET_RESP\r
* NAME\r
* IB_MAD_METHOD_GET_RESP\r
* SOURCE\r
*/\r
#define IB_MAD_METHOD_GETTABLE 0x12\r
-\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_GETTABLE_RESP\r
* NAME\r
* IB_MAD_METHOD_GETTABLE_RESP\r
*/\r
#define IB_MAD_METHOD_SEND 0x03\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_TRAP\r
* NAME\r
* IB_MAD_METHOD_TRAP\r
*/\r
#define IB_MAD_METHOD_TRAP 0x05\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_REPORT\r
* NAME\r
* IB_MAD_METHOD_REPORT\r
*/\r
#define IB_MAD_METHOD_REPORT 0x06\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_REPORT_RESP\r
* NAME\r
* IB_MAD_METHOD_REPORT_RESP\r
*/\r
#define IB_MAD_METHOD_REPORT_RESP 0x86\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_METHOD_TRAP_REPRESS\r
* NAME\r
* IB_MAD_METHOD_TRAP_REPRESS\r
*/\r
#define IB_MAD_METHOD_TRAP_REPRESS 0x07\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_STATUS_BUSY\r
* NAME\r
* IB_MAD_STATUS_BUSY\r
*/\r
#define IB_MAD_STATUS_BUSY (CL_HTON16(0x0001))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_STATUS_REDIRECT\r
* NAME\r
* IB_MAD_STATUS_REDIRECT\r
*/\r
#define IB_MAD_STATUS_REDIRECT (CL_HTON16(0x0002))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_STATUS_UNSUP_CLASS_VER\r
* NAME\r
* IB_MAD_STATUS_UNSUP_CLASS_VER\r
*/\r
#define IB_MAD_STATUS_UNSUP_CLASS_VER (CL_HTON16(0x0004))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_STATUS_UNSUP_METHOD\r
* NAME\r
* IB_MAD_STATUS_UNSUP_METHOD\r
*/\r
#define IB_MAD_STATUS_UNSUP_METHOD (CL_HTON16(0x0008))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_STATUS_UNSUP_METHOD_ATTR\r
* NAME\r
* IB_MAD_STATUS_UNSUP_METHOD_ATTR\r
*/\r
#define IB_MAD_STATUS_UNSUP_METHOD_ATTR (CL_HTON16(0x000C))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_STATUS_INVALID_FIELD\r
* NAME\r
* IB_MAD_STATUS_INVALID_FIELD\r
*/\r
#define IB_MAD_ATTR_CLASS_PORT_INFO (CL_NTOH16(0x0001))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_NOTICE\r
* NAME\r
* IB_MAD_ATTR_NOTICE\r
*/\r
#define IB_MAD_ATTR_NOTICE (CL_NTOH16(0x0002))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_INFORM_INFO\r
* NAME\r
* IB_MAD_ATTR_INFORM_INFO\r
*/\r
#define IB_MAD_ATTR_INFORM_INFO (CL_NTOH16(0x0003))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_NODE_DESC\r
* NAME\r
* IB_MAD_ATTR_NODE_DESC\r
* SOURCE\r
*/\r
#define IB_MAD_ATTR_NODE_DESC (CL_NTOH16(0x0010))\r
-/*********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PORT_SMPL_CTRL\r
* NAME\r
* IB_MAD_ATTR_PORT_SMPL_CTRL\r
*/\r
#define IB_MAD_ATTR_PORT_SMPL_CTRL (CL_NTOH16(0x0010))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_NODE_INFO\r
* NAME\r
* IB_MAD_ATTR_NODE_INFO\r
*/\r
#define IB_MAD_ATTR_NODE_INFO (CL_NTOH16(0x0011))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PORT_SMPL_RSLT\r
* NAME\r
* IB_MAD_ATTR_PORT_SMPL_RSLT\r
*/\r
#define IB_MAD_ATTR_PORT_SMPL_RSLT (CL_NTOH16(0x0011))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_SWITCH_INFO\r
* NAME\r
* IB_MAD_ATTR_SWITCH_INFO\r
*/\r
#define IB_MAD_ATTR_SWITCH_INFO (CL_NTOH16(0x0012))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PORT_CNTRS\r
* NAME\r
* IB_MAD_ATTR_PORT_CNTRS\r
*/\r
#define IB_MAD_ATTR_PORT_CNTRS (CL_NTOH16(0x0012))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_GUID_INFO\r
* NAME\r
* IB_MAD_ATTR_GUID_INFO\r
*/\r
#define IB_MAD_ATTR_GUID_INFO (CL_NTOH16(0x0014))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PORT_INFO\r
* NAME\r
* IB_MAD_ATTR_PORT_INFO\r
*/\r
#define IB_MAD_ATTR_PORT_INFO (CL_NTOH16(0x0015))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_P_KEY_TABLE\r
* NAME\r
* IB_MAD_ATTR_P_KEY_TABLE\r
*/\r
#define IB_MAD_ATTR_P_KEY_TABLE (CL_NTOH16(0x0016))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_SLVL_TABLE\r
* NAME\r
* IB_MAD_ATTR_SLVL_TABLE\r
*/\r
#define IB_MAD_ATTR_SLVL_TABLE (CL_NTOH16(0x0017))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_VL_ARBITRATION\r
* NAME\r
* IB_MAD_ATTR_VL_ARBITRATION\r
*/\r
#define IB_MAD_ATTR_VL_ARBITRATION (CL_NTOH16(0x0018))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_LIN_FWD_TBL\r
* NAME\r
* IB_MAD_ATTR_LIN_FWD_TBL\r
*/\r
#define IB_MAD_ATTR_LIN_FWD_TBL (CL_NTOH16(0x0019))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_RND_FWD_TBL\r
* NAME\r
* IB_MAD_ATTR_RND_FWD_TBL\r
*/\r
#define IB_MAD_ATTR_RND_FWD_TBL (CL_NTOH16(0x001A))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_MCAST_FWD_TBL\r
* NAME\r
* IB_MAD_ATTR_MCAST_FWD_TBL\r
*/\r
#define IB_MAD_ATTR_NODE_RECORD (CL_NTOH16(0x0011))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PORTINFO_RECORD\r
* NAME\r
* IB_MAD_ATTR_PORTINFO_RECORD\r
#define IB_MAD_ATTR_PORTINFO_RECORD (CL_NTOH16(0x0012))\r
/**********/\r
\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_SWITCH_INFO_RECORD
+* NAME
+* IB_MAD_ATTR_SWITCH_INFO_RECORD
+*
+* DESCRIPTION
+* SwitchInfoRecord attribute (15.2.5)
+*
+* SOURCE
+*/
+#define IB_MAD_ATTR_SWITCH_INFO_RECORD (CL_NTOH16(0x0014))
+/**********/
\r
/****d* IBA Base: Constants/IB_MAD_ATTR_LINK_RECORD\r
* NAME\r
* IB_MAD_ATTR_SMINFO_RECORD\r
*\r
* DESCRIPTION\r
-* SmInfoRecord attribute (15.2.5)\r
+* SMInfoRecord attribute (15.2.5)
*\r
* SOURCE\r
*/\r
*/\r
#define IB_MAD_ATTR_VENDOR_DIAG (CL_NTOH16(0x0030))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_LED_INFO\r
* NAME\r
* IB_MAD_ATTR_LED_INFO\r
*/\r
#define IB_MAD_ATTR_LED_INFO (CL_NTOH16(0x0031))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_SERVICE_RECORD\r
* NAME\r
* IB_MAD_ATTR_SERVICE_RECORD\r
*/\r
#define IB_MAD_ATTR_SERVICE_RECORD (CL_NTOH16(0x0031))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_LFT_RECORD\r
* NAME\r
* IB_MAD_ATTR_LFT_RECORD\r
*/\r
#define IB_MAD_ATTR_LFT_RECORD (CL_NTOH16(0x0015))\r
/**********/\r
+
+/****d* IBA Base: Constants/IB_MAD_ATTR_MFT_RECORD
+* NAME
+* IB_MAD_ATTR_MFT_RECORD
+*
+* DESCRIPTION
+* MulticastForwardingTableRecord attribute (15.2.5.8)
+*
+* SOURCE
+*/
+#define IB_MAD_ATTR_MFT_RECORD (CL_NTOH16(0x0017))
+/**********/
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PKEYTBL_RECORD\r
* NAME\r
* IB_MAD_ATTR_PKEYTBL_RECORD\r
*/\r
#define IB_MAD_ATTR_PKEY_TBL_RECORD (CL_NTOH16(0x0033))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PATH_RECORD\r
* NAME\r
* IB_MAD_ATTR_PATH_RECORD\r
*/\r
#define IB_MAD_ATTR_PATH_RECORD (CL_NTOH16(0x0035))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_VLARB_RECORD\r
* NAME\r
* IB_MAD_ATTR_VLARB_RECORD\r
*/\r
#define IB_MAD_ATTR_VLARB_RECORD (CL_NTOH16(0x0036))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_SLVL_RECORD\r
* NAME\r
* IB_MAD_ATTR_SLVL_RECORD\r
*/\r
#define IB_MAD_ATTR_SLVL_RECORD (CL_NTOH16(0x0013))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_MCMEMBER_RECORD\r
* NAME\r
* IB_MAD_ATTR_MCMEMBER_RECORD\r
*/\r
#define IB_MAD_ATTR_MCMEMBER_RECORD (CL_NTOH16(0x0038))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_TRACE_RECORD\r
* NAME\r
-* IB_MAD_ATTR_MTRACE_RECORD\r
+* IB_MAD_ATTR_TRACE_RECORD
*\r
* DESCRIPTION\r
* TraceRecord attribute (15.2.5)\r
*/\r
#define IB_MAD_ATTR_TRACE_RECORD (CL_NTOH16(0x0039))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_MULTIPATH_RECORD\r
* NAME\r
* IB_MAD_ATTR_MULTIPATH_RECORD\r
* SOURCE\r
*/\r
#define IB_MAD_ATTR_INFORM_INFO_RECORD (CL_NTOH16(0x00F3))\r
-/**********/\r
\r
/****d* IBA Base: Constants/IB_MAD_ATTR_IO_UNIT_INFO\r
* NAME\r
*/\r
#define IB_MAD_ATTR_IO_CONTROLLER_PROFILE (CL_NTOH16(0x0011))
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_SERVICE_ENTRIES\r
* NAME\r
* IB_MAD_ATTR_SERVICE_ENTRIES\r
*/\r
#define IB_MAD_ATTR_SERVICE_ENTRIES (CL_NTOH16(0x0012))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_DIAGNOSTIC_TIMEOUT\r
* NAME\r
* IB_MAD_ATTR_DIAGNOSTIC_TIMEOUT\r
*/\r
#define IB_MAD_ATTR_DIAGNOSTIC_TIMEOUT (CL_NTOH16(0x0020))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_PREPARE_TO_TEST\r
* NAME\r
* IB_MAD_ATTR_PREPARE_TO_TEST\r
*/\r
#define IB_MAD_ATTR_PREPARE_TO_TEST (CL_NTOH16(0x0021))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_TEST_DEVICE_ONCE\r
* NAME\r
* IB_MAD_ATTR_TEST_DEVICE_ONCE\r
*/\r
#define IB_MAD_ATTR_TEST_DEVICE_ONCE (CL_NTOH16(0x0022))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_TEST_DEVICE_LOOP\r
* NAME\r
* IB_MAD_ATTR_TEST_DEVICE_LOOP\r
*/\r
#define IB_MAD_ATTR_TEST_DEVICE_LOOP (CL_NTOH16(0x0023))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_MAD_ATTR_DIAG_CODE\r
* NAME\r
* IB_MAD_ATTR_DIAG_CODE\r
*/\r
#define IB_NODE_TYPE_CA 0x01\r
/**********/\r
+
/****d* IBA Base: Constants/IB_NODE_TYPE_SWITCH\r
* NAME\r
* IB_NODE_TYPE_SWITCH\r
*/\r
#define IB_NODE_TYPE_SWITCH 0x02\r
/**********/\r
+
/****d* IBA Base: Constants/IB_NODE_TYPE_ROUTER\r
* NAME\r
* IB_NODE_TYPE_ROUTER\r
*/\r
#define IB_NOTICE_NODE_TYPE_CA (CL_NTOH32(0x000001))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_SWITCH\r
* NAME\r
* IB_NOTICE_NODE_TYPE_SWITCH\r
*/\r
#define IB_NOTICE_NODE_TYPE_SWITCH (CL_NTOH32(0x000002))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_ROUTER\r
* NAME\r
* IB_NOTICE_NODE_TYPE_ROUTER\r
*/\r
#define IB_NOTICE_NODE_TYPE_ROUTER (CL_NTOH32(0x000003))\r
/**********/\r
+
/****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_SUBN_MGMT\r
* NAME\r
* IB_NOTICE_NODE_TYPE_SUBN_MGMT\r
*/\r
#define IB_SMINFO_STATE_NOTACTIVE 0\r
/**********/\r
+
/****d* IBA Base: Constants/IB_SMINFO_STATE_DISCOVERING\r
* NAME\r
* IB_SMINFO_STATE_DISCOVERING\r
*/\r
#define IB_SMINFO_STATE_DISCOVERING 1\r
/**********/\r
+
/****d* IBA Base: Constants/IB_SMINFO_STATE_STANDBY\r
* NAME\r
* IB_SMINFO_STATE_STANDBY\r
*/\r
#define IB_SMINFO_STATE_STANDBY 2\r
/**********/\r
+
/****d* IBA Base: Constants/IB_SMINFO_STATE_MASTER\r
* NAME\r
* IB_SMINFO_STATE_MASTER\r
*/\r
#define IB_SMINFO_STATE_MASTER 3\r
/**********/\r
+
/****d* IBA Base: Constants/IB_PATH_REC_SELECTOR_MASK\r
* NAME\r
* IB_PATH_REC_SELECTOR_MASK\r
* SOURCE\r
*/\r
#define IB_PATH_REC_SELECTOR_MASK 0xC0\r
+
+/****d* IBA Base: Constants/IB_MULTIPATH_REC_SELECTOR_MASK
+* NAME
+* IB_MULTIPATH_REC_SELECTOR_MASK
+*
+* DESCRIPTION
+* Mask for the selector field for multipath record MTU, rate,
+* and packet lifetime.
+*
+* SOURCE
+*/
+#define IB_MULTIPATH_REC_SELECTOR_MASK 0xC0
/**********/\r
+
/****d* IBA Base: Constants/IB_PATH_REC_BASE_MASK\r
* NAME\r
* IB_PATH_REC_BASE_MASK\r
* Definitions are from the InfiniBand Architecture Specification v1.2\r
*\r
*********/\r
+
/****d* IBA Base: Types/ib_net16_t\r
* NAME\r
* ib_net16_t\r
*/\r
typedef uint16_t ib_net16_t;\r
/**********/\r
+
/****d* IBA Base: Types/ib_net32_t\r
* NAME\r
* ib_net32_t\r
*/\r
typedef uint32_t ib_net32_t;\r
/**********/\r
+
/****d* IBA Base: Types/ib_net64_t\r
* NAME\r
* ib_net64_t\r
*/\r
typedef uint64_t ib_net64_t;\r
/**********/\r
+
/****d* IBA Base: Types/ib_gid_prefix_t\r
* NAME\r
* ib_gid_prefix_t\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_pkey_is_full_member\r
* NAME\r
* ib_pkey_is_full_member\r
{\r
if (ib_pkey_get_base(pkey) == 0x0000)\r
return TRUE;\r
+
return FALSE;\r
}\r
/*\r
* SEE ALSO\r
* ib_gid_t\r
*********/\r
+
/****f* IBA Base: Types/ib_gid_get_subnet_prefix\r
* NAME\r
* ib_gid_get_subnet_prefix\r
* SEE ALSO\r
* ib_gid_t\r
*********/\r
+
/****f* IBA Base: Types/ib_gid_is_link_local\r
* NAME\r
* ib_gid_is_link_local\r
* SEE ALSO\r
* ib_gid_t\r
*********/\r
+
/****f* IBA Base: Types/ib_gid_is_site_local\r
* NAME\r
* ib_gid_is_site_local\r
* [in] Pointer to the GID object.\r
*\r
* RETURN VALUES\r
-* Returns TRUE if the unicast GID scoping indicates link local,\r
+* Returns TRUE if the unicast GID scoping indicates site local,
* FALSE otherwise.\r
*\r
* NOTES\r
* SEE ALSO\r
* ib_gid_t\r
*********/\r
+
/****f* IBA Base: Types/ib_gid_get_guid\r
* NAME\r
* ib_gid_get_guid\r
* Another global routing parameter.\r
*\r
* num_path\r
-* In queries, maximum number of paths to return.\r
+* Reversible path - 1 bit to say if path is reversible.
+* num_path [6:0] In queries, maximum number of paths to return.
* In responses, undefined.\r
*\r
* pkey\r
#define IB_LR_COMPMASK_TO_PORT (CL_HTON64(((uint64_t)1)<<2))\r
#define IB_LR_COMPMASK_TO_LID (CL_HTON64(((uint64_t)1)<<3))\r
\r
-/* VL Arbitration Record MASKs */\r
+/* VL Arbitration Record Masks */
#define IB_VLA_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))\r
#define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<1))\r
#define IB_VLA_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<2))\r
#define IB_PKEY_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1))\r
#define IB_PKEY_COMPMASK_PORT (CL_HTON64(((uint64_t)1)<<2))\r
\r
-/* LFT Record MASKS */\r
+/* Switch Info Record Masks */
+#define IB_SWIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
+#define IB_SWIR_COMPMASK_RESERVED1 (CL_HTON64(((uint64_t)1)<<1))
+
+/* LFT Record Masks */
#define IB_LFTR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))\r
#define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1))\r
\r
+/* MFT Record Masks */
+#define IB_MFTR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))
+#define IB_MFTR_COMPMASK_POSITION (CL_HTON64(((uint64_t)1)<<1))
+#define IB_MFTR_COMPMASK_RESERVED1 (CL_HTON64(((uint64_t)1)<<2))
+#define IB_MFTR_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<3))
+#define IB_MFTR_COMPMASK_RESERVED2 (CL_HTON64(((uint64_t)1)<<4))
+
/* NodeInfo Record Masks */\r
#define IB_NR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0))\r
#define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(((uint64_t)1)<<1))\r
#define IB_SR_COMPMASK_SDATA32_3 (CL_HTON64(((uint64_t)1)<<34))\r
#define IB_SR_COMPMASK_SDATA64_0 (CL_HTON64(((uint64_t)1)<<35))\r
#define IB_SR_COMPMASK_SDATA64_1 (CL_HTON64(((uint64_t)1)<<36))\r
+
/* Port Info Record Component Masks */\r
#define IB_PIR_COMPMASK_LID (CL_HTON64(1<<0))\r
#define IB_PIR_COMPMASK_PORTNUM (CL_HTON64(1<<1))\r
* [in] LID of source port.\r
*\r
* num_path\r
-* [in] In queries, maximum number of paths to return.\r
+* [in] Reversible path - 1 bit to say if path is reversible.
+* num_path [6:0] In queries, maximum number of paths to return.
* In responses, undefined.\r
*\r
* pkey\r
*/\r
#define IB_CLASS_CAP_TRAP 0x0001\r
/*********/\r
+
/****s* IBA Base: Constants/IB_CLASS_CAP_GETSET\r
* NAME\r
* IB_CLASS_CAP_GETSET\r
*/\r
#define IB_CLASS_CAP_GETSET 0x0002\r
/*********/\r
+
/****s* IBA Base: Constants/IB_CLASS_RESP_TIME_MASK\r
* NAME\r
* IB_CLASS_RESP_TIME_MASK\r
* IB_CLASS_CAP_GETSET, IB_CLASS_CAP_TRAP\r
*\r
*********/\r
+
/****s* IBA Base: Types/ib_sm_info_t\r
* NAME\r
* ib_sm_info_t\r
ib_net16_t attr_id;\r
ib_net16_t resv;\r
ib_net32_t attr_mod;\r
-\r
} PACK_SUFFIX ib_mad_t;\r
#include <complib/cl_packoff.h>\r
/*\r
* ib_mad_t\r
*********/\r
\r
-\r
#define IB_RMPP_TYPE_DATA 1\r
#define IB_RMPP_TYPE_ACK 2\r
#define IB_RMPP_TYPE_STOP 3\r
#define IB_RMPP_STATUS_TMR 126 /* too many retries */\r
#define IB_RMPP_STATUS_UNSPEC 127 /* unspecified */\r
\r
-\r
/****f* IBA Base: Types/ib_rmpp_is_flag_set\r
* NAME\r
* ib_rmpp_is_flag_set\r
return( (uint8_t)(p_rmpp_mad->rmpp_flags >> 3) );\r
}\r
\r
-\r
/****d* IBA Base: Constants/IB_SMP_DIRECTION\r
* NAME\r
* IB_SMP_DIRECTION\r
* SEE ALSO\r
* ib_smp_t\r
*********/\r
+
/****f* IBA Base: Types/ib_smp_is_d\r
* NAME\r
* ib_smp_is_d\r
* SEE ALSO\r
* ib_mad_t\r
*********/\r
+
/****f* IBA Base: Types/ib_smp_get_payload_ptr\r
* NAME\r
* ib_smp_get_payload_ptr\r
} PACK_SUFFIX ib_node_info_t;\r
#include <complib/cl_packoff.h>\r
/************/\r
+
/****s* IBA Base: Types/ib_sa_mad_t\r
* NAME\r
* ib_sa_mad_t\r
return( cl_hton16( (uint16_t)(attr_size >> 3) ) );\r
}\r
\r
-\r
/****f* IBA Base: Types/ib_sa_mad_get_payload_ptr\r
* NAME\r
* ib_sa_mad_get_payload_ptr\r
* SEE ALSO\r
* ib_node_info_t\r
*********/\r
+
/****f* IBA Base: Types/ib_node_info_get_vendor_id\r
* NAME\r
* ib_node_info_get_vendor_id\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_set_port_state\r
* NAME\r
* ib_port_info_set_port_state\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_get_vl_cap\r
* NAME\r
* ib_port_info_get_vl_cap\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_set_op_vls\r
* NAME\r
* ib_port_info_set_op_vls\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_set_state_no_change\r
* NAME\r
* ib_port_info_set_state_no_change\r
* SEE ALSO\r
*********/\r
\r
+/****f* IBA Base: Types/ib_port_info_get_port_phys_state
+* NAME
+* ib_port_info_get_port_phys_state
+*
+* DESCRIPTION
+* Returns the encoded value for the port physical state.
+*
+* SYNOPSIS
+*/\r
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_port_phys_state(
+ IN const ib_port_info_t* const p_pi )
+{
+ return( (uint8_t)((p_pi->state_info2 &
+ IB_PORT_PHYS_STATE_MASK) >>
+ IB_PORT_PHYS_STATE_SHIFT) );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* Returns the encoded value for the port physical state.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_set_port_phys_state
+* NAME
+* ib_port_info_set_port_phys_state
+*
+* DESCRIPTION
+* Given an integer of the port physical state,
+* Set the appropriate bits in state_info2
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_port_phys_state(
+ IN uint8_t const phys_state,
+ IN ib_port_info_t* p_pi )
+{
+ p_pi->state_info2 =
+ ( ~IB_PORT_PHYS_STATE_MASK & p_pi->state_info2 ) |
+ ( IB_PORT_PHYS_STATE_MASK &
+ (phys_state << IB_PORT_PHYS_STATE_SHIFT) );
+}
+/*
+* PARAMETERS
+* phys_state
+* [in] port physical state.
+*
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* This function does not return a value.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_get_link_down_def_state
+* NAME
+* ib_port_info_get_link_down_def_state
+*
+* DESCRIPTION
+* Returns the link down default state.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_link_down_def_state(
+ IN const ib_port_info_t* const p_pi )
+{
+ return( (uint8_t)(p_pi->state_info2 & IB_PORT_LNKDWNDFTSTATE_MASK) );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* link down default state of the port.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_set_link_down_def_state
+* NAME
+* ib_port_info_set_link_down_def_state
+*
+* DESCRIPTION
+* Sets the link down default state of the port.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_link_down_def_state(
+ IN ib_port_info_t* const p_pi,
+ IN const uint8_t link_dwn_state )
+{
+ p_pi->state_info2 = (uint8_t)((p_pi->state_info2 & 0xF0) | link_dwn_state );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* link_dwn_state
+* [in] Link down default state of the port.
+*
+* RETURN VALUES
+* None.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
/****f* IBA Base: Types/ib_port_info_get_link_speed_active\r
* NAME\r
* ib_port_info_get_link_speed_active\r
* SEE ALSO\r
*********/\r
\r
-\r
#define IB_LINK_WIDTH_ACTIVE_1X 1\r
#define IB_LINK_WIDTH_ACTIVE_4X 2\r
#define IB_LINK_WIDTH_ACTIVE_12X 8\r
-\r
#define IB_LINK_SPEED_ACTIVE_2_5 1\r
#define IB_LINK_SPEED_ACTIVE_5 2\r
#define IB_LINK_SPEED_ACTIVE_10 4\r
\r
+/* following v1 ver1.2 p901 */
#define IB_PATH_RECORD_RATE_2_5_GBS 2\r
#define IB_PATH_RECORD_RATE_10_GBS 3\r
#define IB_PATH_RECORD_RATE_30_GBS 4\r
#define IB_PATH_RECORD_RATE_80_GBS 9\r
#define IB_PATH_RECORD_RATE_120_GBS 10\r
\r
+#define IB_MIN_RATE IB_PATH_RECORD_RATE_2_5_GBS
+#define IB_MAX_RATE IB_PATH_RECORD_RATE_120_GBS
\r
/****f* IBA Base: Types/ib_port_info_compute_rate\r
* NAME\r
\r
switch(local_link_width_supported)\r
{\r
- //link_width_supported = 1: 1x\r
+ /* link_width_supported = 1: 1x */
case 1:\r
break;\r
\r
- //link_width_supported = 3: 1x or 4x\r
+ /* link_width_supported = 3: 1x or 4x */
case 3:\r
switch(path_rec_rate & 0x3F)\r
{\r
}\r
break;\r
\r
- //link_width_supported = 11: 1x or 4x or 12x\r
+ /* link_width_supported = 11: 1x or 4x or 12x */
case 11:\r
switch(path_rec_rate & 0x3F)\r
{\r
* SEE ALSO\r
*********/\r
\r
-\r
/****f* IBA Base: Types/ib_port_info_get_mtu_cap\r
* NAME\r
* ib_port_info_get_mtu_cap\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_get_neighbor_mtu\r
* NAME\r
* ib_port_info_get_neighbor_mtu\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_set_neighbor_mtu\r
* NAME\r
* ib_port_info_set_neighbor_mtu\r
*\r
* SEE ALSO\r
*********/\r
-\r
+
+/****f* IBA Base: Types/ib_port_info_set_client_rereg
+* NAME
+* ib_port_info_set_client_rereg
+*
+* DESCRIPTION
+* Sets the encoded client reregistration bit value in the PortInfo attribute.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_client_rereg(
+ IN ib_port_info_t* const p_pi,
+ IN const uint8_t client_rereg )
+{
+ CL_ASSERT( client_rereg <= 0x1 );
+ p_pi->subnet_timeout =
+ (uint8_t)(
+ (p_pi->subnet_timeout & 0x1F) | ((client_rereg << 7) & 0x80));
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* client_rereg
+* [in] Client reregistration value to set (either 1 or 0).
+*
+* RETURN VALUES
+* None.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_get_timeout
+* NAME
+* ib_port_info_get_timeout
+*
+* DESCRIPTION
+* Gets the encoded subnet timeout value in the PortInfo attribute.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_timeout(
+ IN ib_port_info_t const* p_pi )
+{
+ return(p_pi->subnet_timeout & 0x1F );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* The encoded timeout value
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_get_client_rereg
+* NAME
+* ib_port_info_get_client_rereg
+*
+* DESCRIPTION
+* Gets the encoded client reregistration bit value in the PortInfo attribute.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_client_rereg(
+ IN ib_port_info_t const* p_pi )
+{
+ return ( (p_pi->subnet_timeout & 0x80 ) >> 7);
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* Client reregistration value (either 1 or 0).
+*
+* NOTES
+*
+* SEE ALSO
+*********/\r
+\r
+/****f* IBA Base: Types/ib_port_info_set_hoq_lifetime
+* NAME
+* ib_port_info_set_hoq_lifetime
+*
+* DESCRIPTION
+* Sets the Head of Queue Lifetime for which a packet can live in the head
+* of VL queue
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_hoq_lifetime(
+ IN ib_port_info_t* const p_pi,
+ IN const uint8_t hoq_life )
+{
+ p_pi->vl_stall_life = (uint8_t)((hoq_life & 0x1f) |
+ (p_pi->vl_stall_life & 0xe0));
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* hoq_life
+* [in] Encoded lifetime value to set
+*
+* RETURN VALUES
+* None.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_get_hoq_lifetime
+* NAME
+* ib_port_info_get_hoq_lifetime
+*
+* DESCRIPTION
+* Gets the Head of Queue Lifetime for which a packet can live in the head
+* of VL queue
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_hoq_lifetime(
+ IN const ib_port_info_t* const p_pi )
+{
+ return( (uint8_t)(p_pi->vl_stall_life & 0x1f) );
+}
+
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* Encoded lifetime value
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_set_vl_stall_count
+* NAME
+* ib_port_info_set_vl_stall_count
+*
+* DESCRIPTION
+* Sets the VL Stall Count which define the number of contiguous
+* HLL (hoq) drops that will put the VL into stalled mode.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_vl_stall_count(
+ IN ib_port_info_t* const p_pi,
+ IN const uint8_t vl_stall_count )
+{
+ p_pi->vl_stall_life = (uint8_t)((p_pi->vl_stall_life & 0x1f) |
+ ((vl_stall_count << 5) & 0xe0));
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* vl_stall_count
+* [in] value to set
+*
+* RETURN VALUES
+* None.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_get_vl_stall_count
+* NAME
+* ib_port_info_get_vl_stall_count
+*
+* DESCRIPTION
+* Gets the VL Stall Count which define the number of contiguous
+* HLL (hoq) drops that will put the VL into stalled mode
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_vl_stall_count(
+ IN const ib_port_info_t* const p_pi )
+{
+ return( (uint8_t)(p_pi->vl_stall_life & 0xe0) >> 5);
+}
+
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* vl stall count
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
/****f* IBA Base: Types/ib_port_info_get_lmc\r
* NAME\r
* ib_port_info_get_lmc\r
*\r
* SEE ALSO\r
*********/\r
+
/****f* IBA Base: Types/ib_port_info_set_lmc\r
* NAME\r
* ib_port_info_set_lmc\r
IN ib_port_info_t* const p_pi,\r
IN const uint8_t lmc )\r
{\r
- CL_ASSERT( lmc <= 0x7 );\r
+ CL_ASSERT( lmc <= IB_PORT_LMC_MAX );
p_pi->mkey_lmc = (uint8_t)((p_pi->mkey_lmc & 0xF8) | lmc);\r
}\r
/*\r
*\r
* SEE ALSO\r
*********/\r
+
+/****f* IBA Base: Types/ib_port_info_get_link_speed_enabled
+* NAME
+* ib_port_info_get_link_speed_enabled
+*
+* DESCRIPTION
+* Returns the link speed enabled value assigned to this port.
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_link_speed_enabled(
+ IN const ib_port_info_t* const p_pi )
+{
+ return( (uint8_t)(p_pi->link_speed & IB_PORT_LINK_SPEED_ENABLED_MASK) );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* Port state.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_set_link_speed_enabled
+* NAME
+* ib_port_info_set_link_speed_enabled
+*
+* DESCRIPTION
+* Sets the link speed enabled value in the PortInfo attribute.
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_link_speed_enabled(
+ IN ib_port_info_t* const p_pi,
+ IN const uint8_t link_speed_enabled )
+{
+ p_pi->link_speed = (uint8_t)((p_pi->link_speed & 0xF0) | link_speed_enabled );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* link_speed_enabled
+* [in] link speed enabled value to set.
+*
+* RETURN VALUES
+* None.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
/****f* IBA Base: Types/ib_port_info_get_mpb\r
* NAME\r
* ib_port_info_get_mpb\r
IN uint8_t mpb )\r
{\r
p_pi->mkey_lmc =\r
- ((p_pi->mkey_lmc & ~IB_PORT_MPB_MASK) |\r
- (mpb << IB_PORT_MPB_SHIFT));\r
+ (~IB_PORT_MPB_MASK & p_pi->mkey_lmc) |
+ ( IB_PORT_MPB_MASK & (mpb << IB_PORT_MPB_SHIFT) );
}\r
/*\r
* PARAMETERS\r
* SEE ALSO\r
*********/\r
\r
+/****f* IBA Base: Types/ib_port_info_get_local_phy_err_thd
+* NAME
+* ib_port_info_get_local_phy_err_thd
+*
+* DESCRIPTION
+* Returns the Phy Link Threshold
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_local_phy_err_thd(
+ IN const ib_port_info_t* const p_pi )
+{
+ return (uint8_t)( (p_pi->error_threshold & 0xF0) >> 4);
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* Returns the Phy Link error threshold assigned to this port.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_get_overrun_err_thd
+* NAME
+* ib_port_info_get_local_overrun_err_thd
+*
+* DESCRIPTION
+* Returns the Credits Overrun Errors Threshold
+*
+* SYNOPSIS
+*/
+AL_INLINE uint8_t AL_API\r
+ib_port_info_get_overrun_err_thd(
+ IN const ib_port_info_t* const p_pi )
+{
+ return (uint8_t)(p_pi->error_threshold & 0x0F);
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* RETURN VALUES
+* Returns the Credits Overrun errors threshold assigned to this port.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
+/****f* IBA Base: Types/ib_port_info_set_phy_and_overrun_err_thd
+* NAME
+* ib_port_info_set_phy_and_overrun_err_thd
+*
+* DESCRIPTION
+* Sets the Phy Link and Credits Overrun Errors Threshold
+*
+* SYNOPSIS
+*/
+AL_INLINE void AL_API\r
+ib_port_info_set_phy_and_overrun_err_thd(
+ IN ib_port_info_t* const p_pi,
+ IN uint8_t phy_threshold,
+ IN uint8_t overrun_threshold )
+{
+ p_pi->error_threshold =
+ (uint8_t)( ((phy_threshold & 0x0F) << 4) | (overrun_threshold & 0x0F) );
+}
+/*
+* PARAMETERS
+* p_pi
+* [in] Pointer to a PortInfo attribute.
+*
+* phy_threshold
+* [in] Physical Link Errors Threshold above which Trap 129 is generated
+*
+* overrun_threshold
+* [in] Credits overrun Errors Threshold above which Trap 129 is generated
+*
+* RETURN VALUES
+* None.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
\r
typedef uint8_t ib_svc_name_t[64];\r
\r
* ib_lft_record_t\r
*\r
* DESCRIPTION\r
-* IBA defined LinearForwardingTable. (14.2.5.6)\r
+* IBA defined LinearForwardingTableRecord (15.2.5.6)
*\r
* SYNOPSIS\r
*/\r
ib_net16_t block_num;\r
uint32_t resv0;\r
uint8_t lft[64];\r
-\r
} PACK_SUFFIX ib_lft_record_t;\r
#include <complib/cl_packoff.h>\r
/************/\r
\r
+/****s* IBA Base: Types/ib_mft_record_t
+* NAME
+* ib_mft_record_t
+*
+* DESCRIPTION
+* IBA defined MulticastForwardingTableRecord (15.2.5.8)
+*
+* SYNOPSIS
+*/
+#include <complib/cl_packon.h>
+typedef struct _ib_mft_record
+{
+ ib_net16_t lid;
+ ib_net16_t position_block_num;
+ uint32_t resv0;
+ ib_net16_t mft[IB_MCAST_BLOCK_SIZE];
+} PACK_SUFFIX ib_mft_record_t;
+#include <complib/cl_packoff.h>
+/************/
+
/****s* IBA Base: Types/ib_switch_info_t\r
* NAME\r
* ib_switch_info_t\r
* SEE ALSO\r
*********/\r
\r
+/****f* IBA Base: Types/ib_switch_info_is_enhanced_port0
+* NAME
+* ib_switch_info_is_enhanced_port0
+*
+* DESCRIPTION
+* Returns TRUE if the enhancedPort0 bit is on (meaning the switch
+* port zero supports enhanced functions).
+* Returns FALSE otherwise.
+*
+* SYNOPSIS
+*/
+AL_INLINE boolean_t AL_API\r
+ib_switch_info_is_enhanced_port0(
+ IN const ib_switch_info_t* const p_si )
+{
+ return( (p_si->flags & 0x08) == 0x08 );
+}
+/*
+* PARAMETERS
+* p_si
+* [in] Pointer to a SwitchInfo attribute.
+*
+* RETURN VALUES
+* Returns TRUE if the switch supports enhanced port 0. FALSE otherwise.
+*
+* NOTES
+*
+* SEE ALSO
+*********/
+
/****s* IBA Base: Types/ib_guid_info_t\r
* NAME\r
* ib_guid_info_t\r