From: sleybo Date: Wed, 7 Feb 2007 11:03:56 +0000 (+0000) Subject: [INCLUDE] update from Linux ib_types.h . X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=a683699f3ff3173f89375948293ade0c9b2b3022;p=~shefty%2Frdma-win.git [INCLUDE] update from Linux ib_types.h . add new defines and fix some spelling errors git-svn-id: svn://openib.tc.cornell.edu/gen1@575 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- diff --git a/trunk/inc/iba/ib_types.h b/trunk/inc/iba/ib_types.h index 7828f9d7..abc02434 100644 --- a/trunk/inc/iba/ib_types.h +++ b/trunk/inc/iba/ib_types.h @@ -65,7 +65,7 @@ extern "C" * DESCRIPTION * The following constants are used throughout the IBA code base. * -* Definitions are from the InfiniBand Architecture Specification v1.1 +* Definitions are from the InfiniBand Architecture Specification v1.2 * *********/ @@ -219,7 +219,7 @@ extern "C" * * SOURCE */ -#define IB_DEFAULT_SUBNET_PREFIX (CL_HTON64(CL_CONST64(0xFE80000000000000))) +#define IB_DEFAULT_SUBNET_PREFIX (CL_HTON64(0xFE80000000000000ULL)) /**********/ /****d* IBA Base: Constants/IB_NODE_NUM_PORTS_MAX @@ -374,7 +374,7 @@ extern "C" * * SOURCE */ -#define IB_PKEY_BASE_MASK (CL_NTOH16(0x7FFF)) +#define IB_PKEY_BASE_MASK (CL_HTON16(0x7FFF)) /*********/ /****d* IBA Base: Constants/IB_PKEY_TYPE_MASK @@ -389,6 +389,18 @@ extern "C" #define IB_PKEY_TYPE_MASK (CL_NTOH16(0x8000)) /*********/ +/****d* IBA Base: Constants/IB_DEFAULT_PARTIAL_PKEY +* NAME +* IB_DEFAULT_PARTIAL_PKEY +* +* DESCRIPTION +* 0x7FFF in network order +* +* SOURCE +*/ +#define IB_DEFAULT_PARTIAL_PKEY (CL_HTON16(0x7FFF)) +/**********/ + /****d* IBA Base: Constants/IB_MCLASS_SUBN_LID * NAME * IB_MCLASS_SUBN_LID @@ -509,6 +521,30 @@ extern "C" #define IB_MCLASS_VENDOR_LOW_RANGE_MAX 0x0f /**********/ +/****d* IBA Base: Constants/IB_MCLASS_DEV_ADM +* NAME +* IB_MCLASS_DEV_ADM +* +* DESCRIPTION +* Subnet Management Class, Device Administration +* +* SOURCE +*/ +#define IB_MCLASS_DEV_ADM 0x10 +/**********/ + +/****d* IBA Base: Constants/IB_MCLASS_BIS +* NAME +* IB_MCLASS_BIS +* +* DESCRIPTION +* Subnet Management Class, BIS +* +* SOURCE +*/ +#define IB_MCLASS_BIS 0x12 +/**********/ + /****d* IBA Base: Constants/IB_MCLASS_VENDOR_HIGH_RANGE_MIN * NAME * IB_MCLASS_VENDOR_HIGH_RANGE_MIN @@ -538,7 +574,7 @@ extern "C" * ib_class_is_vendor_specific_low * * DESCRIPTION -* Indicitates if the Class Code if a vendor specific class from +* Indicates if the Class Code if a vendor specific class from * the low range * * SYNOPSIS @@ -570,7 +606,7 @@ ib_class_is_vendor_specific_low( * ib_class_is_vendor_specific_high * * DESCRIPTION -* Indicitates if the Class Code if a vendor specific class from +* Indicates if the Class Code if a vendor specific class from * the high range * * SYNOPSIS @@ -603,7 +639,7 @@ ib_class_is_vendor_specific_high( * ib_class_is_vendor_specific * * DESCRIPTION -* Indicitates if the Class Code if a vendor specific class +* Indicates if the Class Code if a vendor specific class * * SYNOPSIS */ @@ -629,6 +665,38 @@ ib_class_is_vendor_specific( * ib_class_is_vendor_specific_low, ib_class_is_vendor_specific_high *********/ +/****f* IBA Base: Types/ib_class_is_rmpp +* NAME +* ib_class_is_rmpp +* +* DESCRIPTION +* Indicates if the Class Code supports RMPP +* +* SYNOPSIS +*/ +AL_INLINE boolean_t AL_API +ib_class_is_rmpp( + IN const uint8_t class_code ) +{ + return( (class_code == IB_MCLASS_SUBN_ADM) || + (class_code == IB_MCLASS_DEV_MGMT) || + (class_code == IB_MCLASS_DEV_ADM) || + (class_code == IB_MCLASS_BIS) || + ib_class_is_vendor_specific_high( class_code ) ); +} +/* +* PARAMETERS +* class_code +* [in] The Management Datagram Class Code +* +* RETURN VALUE +* TRUE if the class supports RMPP +* FALSE otherwise. +* +* NOTES +* +*********/ + /* * MAD methods */ @@ -1104,6 +1172,18 @@ ib_class_is_vendor_specific( #define IB_MAD_ATTR_SMINFO_RECORD (CL_NTOH16(0x0018)) /**********/ +/****d* IBA Base: Constants/IB_MAD_ATTR_GUIDINFO_RECORD +* NAME +* IB_MAD_ATTR_GUIDINFO_RECORD +* +* DESCRIPTION +* GuidInfoRecord attribute (15.2.5) +* +* SOURCE +*/ +#define IB_MAD_ATTR_GUIDINFO_RECORD (CL_NTOH16(0x0030)) +/**********/ + /****d* IBA Base: Constants/IB_MAD_ATTR_VENDOR_DIAG * NAME * IB_MAD_ATTR_VENDOR_DIAG @@ -1142,7 +1222,7 @@ ib_class_is_vendor_specific( * IB_MAD_ATTR_LFT_RECORD * * DESCRIPTION -* LinearForwardingRecord attribute (15.2.5.6) +* LinearForwardingTableRecord attribute (15.2.5.6) * * SOURCE */ @@ -1153,7 +1233,7 @@ ib_class_is_vendor_specific( * IB_MAD_ATTR_PKEYTBL_RECORD * * DESCRIPTION -* P-KEY table attribute (15.2.5) +* PKEY Table Record attribute (15.2.5) * * SOURCE */ @@ -1175,7 +1255,7 @@ ib_class_is_vendor_specific( * IB_MAD_ATTR_VLARB_RECORD * * DESCRIPTION -* VL Arbitration Table attribute (15.2.5) +* VL Arbitration Table Record attribute (15.2.5) * * SOURCE */ @@ -1186,7 +1266,7 @@ ib_class_is_vendor_specific( * IB_MAD_ATTR_SLVL_RECORD * * DESCRIPTION -* VSLtoL Map Table attribute (15.2.5) +* SLtoVL Mapping Table Record attribute (15.2.5) * * SOURCE */ @@ -1219,7 +1299,7 @@ ib_class_is_vendor_specific( * IB_MAD_ATTR_MULTIPATH_RECORD * * DESCRIPTION -* MultiPath attribute (15.2.5) +* MultiPathRecord attribute (15.2.5) * * SOURCE */ @@ -1230,12 +1310,24 @@ ib_class_is_vendor_specific( * IB_MAD_ATTR_SVC_ASSOCIATION_RECORD * * DESCRIPTION -* Service Association attribute (15.2.5) +* Service Association Record attribute (15.2.5) * * SOURCE */ #define IB_MAD_ATTR_SVC_ASSOCIATION_RECORD (CL_NTOH16(0x003B)) /**********/ + +/****d* IBA Base: Constants/IB_MAD_ATTR_INFORM_INFO_RECORD +* NAME +* IB_MAD_ATTR_INFORM_INFO_RECORD +* +* DESCRIPTION +* InformInfo Record attribute (15.2.5) +* +* SOURCE +*/ +#define IB_MAD_ATTR_INFORM_INFO_RECORD (CL_NTOH16(0x00F3)) + /****d* IBA Base: Constants/IB_MAD_ATTR_IO_UNIT_INFO * NAME * IB_MAD_ATTR_IO_UNIT_INFO @@ -1324,12 +1416,13 @@ ib_class_is_vendor_specific( */ #define IB_MAD_ATTR_DIAG_CODE (CL_NTOH16(0x0024)) /**********/ -/*** IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD + +/****d* IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD * NAME * IB_MAD_ATTR_SVC_ASSOCIATION_RECORD * * DESCRIPTION -* Service Association attribute (15.2.5) +* Service Association Record attribute (15.2.5) * * SOURCE */ @@ -1444,10 +1537,10 @@ ib_class_is_vendor_specific( * * DESCRIPTION * Path selector. -* 0: greater than rate specified -* 1: less than rate specified -* 2: exactly the rate specified -* 3: largest rate available +* 0: greater than specified +* 1: less than specified +* 2: exactly the specified +* 3: largest available * * SOURCE */ @@ -1506,7 +1599,7 @@ ib_class_is_vendor_specific( * IB_PATH_REC_SELECTOR_MASK * * DESCRIPTION -* Mask for the selector field for path record MTU, rate +* Mask for the selector field for path record MTU, rate, * and packet lifetime. * * SOURCE @@ -1518,7 +1611,7 @@ ib_class_is_vendor_specific( * IB_PATH_REC_BASE_MASK * * DESCRIPTION -* Mask for the base value field for path record MTU, rate +* Mask for the base value field for path record MTU, rate, * and packet lifetime. * * SOURCE @@ -1526,12 +1619,25 @@ ib_class_is_vendor_specific( #define IB_PATH_REC_BASE_MASK 0x3F /**********/ +/****d* IBA Base: Constants/IB_MULTIPATH_REC_BASE_MASK +* NAME +* IB_MULTIPATH_REC_BASE_MASK +* +* DESCRIPTION +* Mask for the base value field for multipath record MTU, rate, +* and packet lifetime. +* +* SOURCE +*/ +#define IB_MULTIPATH_REC_BASE_MASK 0x3F +/**********/ + /****h* IBA Base/Type Definitions * NAME * Type Definitions * * DESCRIPTION -* Definitions are from the InfiniBand Architecture Specification v1.1 +* Definitions are from the InfiniBand Architecture Specification v1.2 * *********/ /****d* IBA Base: Types/ib_net16_t @@ -1764,7 +1870,7 @@ ib_pkey_get_base( * ib_pkey_is_full_member * * DESCRIPTION -* Indicitates if the port is a full member of the parition. +* Indicates if the port is a full member of the parition. * * SYNOPSIS */ @@ -1789,6 +1895,38 @@ ib_pkey_is_full_member( * ib_pkey_get_base, ib_net16_t *********/ +/****f* IBA Base: Types/ib_pkey_is_invalid +* NAME +* ib_pkey_is_invalid +* +* DESCRIPTION +* Returns TRUE if the given P_Key is an invalid P_Key +* C10-116: the CI shall regard a P_Key as invalid if its low-order +* 15 bits are all zero... +* +* SYNOPSIS +*/ +static inline boolean_t +ib_pkey_is_invalid( + IN const ib_net16_t pkey ) +{ + if (ib_pkey_get_base(pkey) == 0x0000) + return TRUE; + return FALSE; +} +/* +* PARAMETERS +* pkey +* [in] P_Key value +* +* RETURN VALUE +* Returns the base P_Key value with the membership bit stripped. +* +* NOTES +* +* SEE ALSO +*********/ + /****d* IBA Base: Types/ib_gid_t * NAME * ib_gid_t @@ -1945,8 +2083,7 @@ ib_gid_is_site_local( IN const ib_gid_t* const p_gid ) { return( ( ib_gid_get_subnet_prefix( p_gid ) & - CL_HTON64( CL_CONST64(0xFFFFFFFFFFFF0000) ) ) == - CL_HTON64( CL_CONST64(0xFEC0000000000000) ) ); + CL_HTON64( 0xFFFFFFFFFFFF0000ULL ) ) == CL_HTON64( 0xFEC0000000000000ULL ) ); } /* * PARAMETERS @@ -2132,71 +2269,80 @@ typedef __declspec(align(8)) struct _ib_path_rec #define IB_PR_COMPMASK_PFTLIFETIME (CL_HTON64(1<<21)) /* Link Record Component Masks */ -#define IB_LR_COMPMASK_FROM_LID (CL_HTON64(1<<0)) -#define IB_LR_COMPMASK_FROM_PORT (CL_HTON64(1<<1)) -#define IB_LR_COMPMASK_TO_PORT (CL_HTON64(1<<2)) -#define IB_LR_COMPMASK_TO_LID (CL_HTON64(1<<3)) +#define IB_LR_COMPMASK_FROM_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_LR_COMPMASK_FROM_PORT (CL_HTON64(((uint64_t)1)<<1)) +#define IB_LR_COMPMASK_TO_PORT (CL_HTON64(((uint64_t)1)<<2)) +#define IB_LR_COMPMASK_TO_LID (CL_HTON64(((uint64_t)1)<<3)) /* VL Arbitration Record MASKs */ -#define IB_VLA_COMPMASK_LID (CL_HTON64(1<<0)) -#define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(1<<1)) -#define IB_VLA_COMPMASK_BLOCK (CL_HTON64(1<<2)) +#define IB_VLA_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_VLA_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<1)) +#define IB_VLA_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<2)) + /* SLtoVL Mapping Record Masks */ -#define IB_SLVL_COMPMASK_LID (CL_HTON64(1<<0)) -#define IB_SLVL_COMPMASK_IN_PORT (CL_HTON64(1<<1)) -#define IB_SLVL_COMPMASK_OUT_PORT (CL_HTON64(1<<2)) +#define IB_SLVL_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_SLVL_COMPMASK_IN_PORT (CL_HTON64(((uint64_t)1)<<1)) +#define IB_SLVL_COMPMASK_OUT_PORT (CL_HTON64(((uint64_t)1)<<2)) + +/* P_Key Table Record Masks */ +#define IB_PKEY_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_PKEY_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1)) +#define IB_PKEY_COMPMASK_PORT (CL_HTON64(((uint64_t)1)<<2)) + /* LFT Record MASKS */ -#define IB_LFTR_COMPMASK_LID (CL_HTON64(1<<0)) -#define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(1<<1)) -/* ModeInfo Record MASKS */ -#define IB_NR_COMPMASK_LID (CL_HTON64(1<<0)) -#define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(1<<1)) -#define IB_NR_COMPMASK_BASEVERSION (CL_HTON64(1<<2)) -#define IB_NR_COMPMASK_CLASSVERSION (CL_HTON64(1<<3)) -#define IB_NR_COMPMASK_NODETYPE (CL_HTON64(1<<4)) -#define IB_NR_COMPMASK_NUMPORTS (CL_HTON64(1<<5)) -#define IB_NR_COMPMASK_SYSIMAGEGUID (CL_HTON64(1<<6)) -#define IB_NR_COMPMASK_NODEGUID (CL_HTON64(1<<7)) -#define IB_NR_COMPMASK_PORTGUID (CL_HTON64(1<<8)) -#define IB_NR_COMPMASK_PARTCAP (CL_HTON64(1<<9)) -#define IB_NR_COMPMASK_DEVID (CL_HTON64(1<<10)) -#define IB_NR_COMPMASK_REV (CL_HTON64(1<<11)) -#define IB_NR_COMPMASK_PORTNUM (CL_HTON64(1<<12)) -#define IB_NR_COMPMASK_VENDID (CL_HTON64(1<<13)) -#define IB_NR_COMPMASK_NODEDESC (CL_HTON64(1<<14)) -/* Service Record Component Mask Sec 15.2.5.14 Ver 1.1*/ -#define IB_SR_COMPMASK_SID (CL_HTON64(1<<0)) -#define IB_SR_COMPMASK_SGID (CL_HTON64(1<<1)) -#define IB_SR_COMPMASK_SPKEY (CL_HTON64(1<<2)) -#define IB_SR_COMPMASK_RES1 (CL_HTON64(1<<3)) -#define IB_SR_COMPMASK_SLEASE (CL_HTON64(1<<4)) -#define IB_SR_COMPMASK_SKEY (CL_HTON64(1<<5)) -#define IB_SR_COMPMASK_SNAME (CL_HTON64(1<<6)) -#define IB_SR_COMPMASK_SDATA8_0 (CL_HTON64(1<<7)) -#define IB_SR_COMPMASK_SDATA8_1 (CL_HTON64(1<<8)) -#define IB_SR_COMPMASK_SDATA8_2 (CL_HTON64(1<<9)) -#define IB_SR_COMPMASK_SDATA8_3 (CL_HTON64(1<<10)) -#define IB_SR_COMPMASK_SDATA8_4 (CL_HTON64(1<<11)) -#define IB_SR_COMPMASK_SDATA8_5 (CL_HTON64(1<<12)) -#define IB_SR_COMPMASK_SDATA8_6 (CL_HTON64(1<<13)) -#define IB_SR_COMPMASK_SDATA8_7 (CL_HTON64(1<<14)) -#define IB_SR_COMPMASK_SDATA8_8 (CL_HTON64(1<<15)) -#define IB_SR_COMPMASK_SDATA8_9 (CL_HTON64(1<<16)) -#define IB_SR_COMPMASK_SDATA8_10 (CL_HTON64(1<<17)) -#define IB_SR_COMPMASK_SDATA8_11 (CL_HTON64(1<<18)) -#define IB_SR_COMPMASK_SDATA8_12 (CL_HTON64(1<<19)) -#define IB_SR_COMPMASK_SDATA8_13 (CL_HTON64(1<<20)) -#define IB_SR_COMPMASK_SDATA8_14 (CL_HTON64(1<<21)) -#define IB_SR_COMPMASK_SDATA8_15 (CL_HTON64(1<<22)) -#define IB_SR_COMPMASK_SDATA16_0 (CL_HTON64(1<<23)) -#define IB_SR_COMPMASK_SDATA16_1 (CL_HTON64(1<<24)) -#define IB_SR_COMPMASK_SDATA16_2 (CL_HTON64(1<<25)) -#define IB_SR_COMPMASK_SDATA16_3 (CL_HTON64(1<<26)) -#define IB_SR_COMPMASK_SDATA16_4 (CL_HTON64(1<<27)) -#define IB_SR_COMPMASK_SDATA16_5 (CL_HTON64(1<<28)) -#define IB_SR_COMPMASK_SDATA16_6 (CL_HTON64(1<<29)) -#define IB_SR_COMPMASK_SDATA16_7 (CL_HTON64(1<<30)) -#define IB_SR_COMPMASK_SDATA32_0 (CL_HTON64(1<<31)) +#define IB_LFTR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_LFTR_COMPMASK_BLOCK (CL_HTON64(((uint64_t)1)<<1)) + +/* NodeInfo Record Masks */ +#define IB_NR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_NR_COMPMASK_RESERVED1 (CL_HTON64(((uint64_t)1)<<1)) +#define IB_NR_COMPMASK_BASEVERSION (CL_HTON64(((uint64_t)1)<<2)) +#define IB_NR_COMPMASK_CLASSVERSION (CL_HTON64(((uint64_t)1)<<3)) +#define IB_NR_COMPMASK_NODETYPE (CL_HTON64(((uint64_t)1)<<4)) +#define IB_NR_COMPMASK_NUMPORTS (CL_HTON64(((uint64_t)1)<<5)) +#define IB_NR_COMPMASK_SYSIMAGEGUID (CL_HTON64(((uint64_t)1)<<6)) +#define IB_NR_COMPMASK_NODEGUID (CL_HTON64(((uint64_t)1)<<7)) +#define IB_NR_COMPMASK_PORTGUID (CL_HTON64(((uint64_t)1)<<8)) +#define IB_NR_COMPMASK_PARTCAP (CL_HTON64(((uint64_t)1)<<9)) +#define IB_NR_COMPMASK_DEVID (CL_HTON64(((uint64_t)1)<<10)) +#define IB_NR_COMPMASK_REV (CL_HTON64(((uint64_t)1)<<11)) +#define IB_NR_COMPMASK_PORTNUM (CL_HTON64(((uint64_t)1)<<12)) +#define IB_NR_COMPMASK_VENDID (CL_HTON64(((uint64_t)1)<<13)) +#define IB_NR_COMPMASK_NODEDESC (CL_HTON64(((uint64_t)1)<<14)) + +/* Service Record Component Masks Sec 15.2.5.14 Ver 1.1*/ +#define IB_SR_COMPMASK_SID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_SR_COMPMASK_SGID (CL_HTON64(((uint64_t)1)<<1)) +#define IB_SR_COMPMASK_SPKEY (CL_HTON64(((uint64_t)1)<<2)) +#define IB_SR_COMPMASK_RES1 (CL_HTON64(((uint64_t)1)<<3)) +#define IB_SR_COMPMASK_SLEASE (CL_HTON64(((uint64_t)1)<<4)) +#define IB_SR_COMPMASK_SKEY (CL_HTON64(((uint64_t)1)<<5)) +#define IB_SR_COMPMASK_SNAME (CL_HTON64(((uint64_t)1)<<6)) +#define IB_SR_COMPMASK_SDATA8_0 (CL_HTON64(((uint64_t)1)<<7)) +#define IB_SR_COMPMASK_SDATA8_1 (CL_HTON64(((uint64_t)1)<<8)) +#define IB_SR_COMPMASK_SDATA8_2 (CL_HTON64(((uint64_t)1)<<9)) +#define IB_SR_COMPMASK_SDATA8_3 (CL_HTON64(((uint64_t)1)<<10)) +#define IB_SR_COMPMASK_SDATA8_4 (CL_HTON64(((uint64_t)1)<<11)) +#define IB_SR_COMPMASK_SDATA8_5 (CL_HTON64(((uint64_t)1)<<12)) +#define IB_SR_COMPMASK_SDATA8_6 (CL_HTON64(((uint64_t)1)<<13)) +#define IB_SR_COMPMASK_SDATA8_7 (CL_HTON64(((uint64_t)1)<<14)) +#define IB_SR_COMPMASK_SDATA8_8 (CL_HTON64(((uint64_t)1)<<15)) +#define IB_SR_COMPMASK_SDATA8_9 (CL_HTON64(((uint64_t)1)<<16)) +#define IB_SR_COMPMASK_SDATA8_10 (CL_HTON64(((uint64_t)1)<<17)) +#define IB_SR_COMPMASK_SDATA8_11 (CL_HTON64(((uint64_t)1)<<18)) +#define IB_SR_COMPMASK_SDATA8_12 (CL_HTON64(((uint64_t)1)<<19)) +#define IB_SR_COMPMASK_SDATA8_13 (CL_HTON64(((uint64_t)1)<<20)) +#define IB_SR_COMPMASK_SDATA8_14 (CL_HTON64(((uint64_t)1)<<21)) +#define IB_SR_COMPMASK_SDATA8_15 (CL_HTON64(((uint64_t)1)<<22)) +#define IB_SR_COMPMASK_SDATA16_0 (CL_HTON64(((uint64_t)1)<<23)) +#define IB_SR_COMPMASK_SDATA16_1 (CL_HTON64(((uint64_t)1)<<24)) +#define IB_SR_COMPMASK_SDATA16_2 (CL_HTON64(((uint64_t)1)<<25)) +#define IB_SR_COMPMASK_SDATA16_3 (CL_HTON64(((uint64_t)1)<<26)) +#define IB_SR_COMPMASK_SDATA16_4 (CL_HTON64(((uint64_t)1)<<27)) +#define IB_SR_COMPMASK_SDATA16_5 (CL_HTON64(((uint64_t)1)<<28)) +#define IB_SR_COMPMASK_SDATA16_6 (CL_HTON64(((uint64_t)1)<<29)) +#define IB_SR_COMPMASK_SDATA16_7 (CL_HTON64(((uint64_t)1)<<30)) +#define IB_SR_COMPMASK_SDATA32_0 (CL_HTON64(((uint64_t)1)<<31)) #define IB_SR_COMPMASK_SDATA32_1 (CL_HTON64(((uint64_t)1)<<32)) #define IB_SR_COMPMASK_SDATA32_2 (CL_HTON64(((uint64_t)1)<<33)) #define IB_SR_COMPMASK_SDATA32_3 (CL_HTON64(((uint64_t)1)<<34)) @@ -2252,25 +2398,92 @@ typedef __declspec(align(8)) struct _ib_path_rec #define IB_PIR_COMPMASK_LOCALPHYERR (CL_HTON64(((uint64_t)1)<<46)) #define IB_PIR_COMPMASK_OVERRUNERR (CL_HTON64(((uint64_t)1)<<47)) /* Multicast Member Record Component Masks */ -#define IB_MCR_COMPMASK_GID (CL_HTON64(1<<0)) -#define IB_MCR_COMPMASK_MGID (CL_HTON64(1<<0)) -#define IB_MCR_COMPMASK_PORT_GID (CL_HTON64(1<<1)) -#define IB_MCR_COMPMASK_QKEY (CL_HTON64(1<<2)) -#define IB_MCR_COMPMASK_MLID (CL_HTON64(1<<3)) -#define IB_MCR_COMPMASK_MTU_SEL (CL_HTON64(1<<4)) -#define IB_MCR_COMPMASK_MTU (CL_HTON64(1<<5)) -#define IB_MCR_COMPMASK_TCLASS (CL_HTON64(1<<6)) -#define IB_MCR_COMPMASK_PKEY (CL_HTON64(1<<7)) -#define IB_MCR_COMPMASK_RATE_SEL (CL_HTON64(1<<8)) -#define IB_MCR_COMPMASK_RATE (CL_HTON64(1<<9)) -#define IB_MCR_COMPMASK_LIFE_SEL (CL_HTON64(1<<10)) -#define IB_MCR_COMPMASK_LIFE (CL_HTON64(1<<11)) -#define IB_MCR_COMPMASK_SL (CL_HTON64(1<<12)) -#define IB_MCR_COMPMASK_FLOW (CL_HTON64(1<<13)) -#define IB_MCR_COMPMASK_HOP (CL_HTON64(1<<14)) -#define IB_MCR_COMPMASK_SCOPE (CL_HTON64(1<<15)) -#define IB_MCR_COMPMASK_JOIN_STATE (CL_HTON64(1<<16)) -#define IB_MCR_COMPMASK_PROXY (CL_HTON64(1<<17)) +#define IB_MCR_COMPMASK_GID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_MCR_COMPMASK_MGID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_MCR_COMPMASK_PORT_GID (CL_HTON64(((uint64_t)1)<<1)) +#define IB_MCR_COMPMASK_QKEY (CL_HTON64(((uint64_t)1)<<2)) +#define IB_MCR_COMPMASK_MLID (CL_HTON64(((uint64_t)1)<<3)) +#define IB_MCR_COMPMASK_MTU_SEL (CL_HTON64(((uint64_t)1)<<4)) +#define IB_MCR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<5)) +#define IB_MCR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<6)) +#define IB_MCR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7)) +#define IB_MCR_COMPMASK_RATE_SEL (CL_HTON64(((uint64_t)1)<<8)) +#define IB_MCR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<9)) +#define IB_MCR_COMPMASK_LIFE_SEL (CL_HTON64(((uint64_t)1)<<10)) +#define IB_MCR_COMPMASK_LIFE (CL_HTON64(((uint64_t)1)<<11)) +#define IB_MCR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<12)) +#define IB_MCR_COMPMASK_FLOW (CL_HTON64(((uint64_t)1)<<13)) +#define IB_MCR_COMPMASK_HOP (CL_HTON64(((uint64_t)1)<<14)) +#define IB_MCR_COMPMASK_SCOPE (CL_HTON64(((uint64_t)1)<<15)) +#define IB_MCR_COMPMASK_JOIN_STATE (CL_HTON64(((uint64_t)1)<<16)) +#define IB_MCR_COMPMASK_PROXY (CL_HTON64(((uint64_t)1)<<17)) + +/* GUID Info Record Component Masks */ +#define IB_GIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_GIR_COMPMASK_BLOCKNUM (CL_HTON64(((uint64_t)1)<<1)) +#define IB_GIR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<2)) +#define IB_GIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<3)) +#define IB_GIR_COMPMASK_GID0 (CL_HTON64(((uint64_t)1)<<4)) +#define IB_GIR_COMPMASK_GID1 (CL_HTON64(((uint64_t)1)<<5)) +#define IB_GIR_COMPMASK_GID2 (CL_HTON64(((uint64_t)1)<<6)) +#define IB_GIR_COMPMASK_GID3 (CL_HTON64(((uint64_t)1)<<7)) +#define IB_GIR_COMPMASK_GID4 (CL_HTON64(((uint64_t)1)<<8)) +#define IB_GIR_COMPMASK_GID5 (CL_HTON64(((uint64_t)1)<<9)) +#define IB_GIR_COMPMASK_GID6 (CL_HTON64(((uint64_t)1)<<10)) +#define IB_GIR_COMPMASK_GID7 (CL_HTON64(((uint64_t)1)<<11)) + +/* MultiPath Record Component Masks */ +#define IB_MPR_COMPMASK_RAWTRAFFIC (CL_HTON64(((uint64_t)1)<<0)) +#define IB_MPR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<1)) +#define IB_MPR_COMPMASK_FLOWLABEL (CL_HTON64(((uint64_t)1)<<2)) +#define IB_MPR_COMPMASK_HOPLIMIT (CL_HTON64(((uint64_t)1)<<3)) +#define IB_MPR_COMPMASK_TCLASS (CL_HTON64(((uint64_t)1)<<4)) +#define IB_MPR_COMPMASK_REVERSIBLE (CL_HTON64(((uint64_t)1)<<5)) +#define IB_MPR_COMPMASK_NUMBPATH (CL_HTON64(((uint64_t)1)<<6)) +#define IB_MPR_COMPMASK_PKEY (CL_HTON64(((uint64_t)1)<<7)) +#define IB_MPR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<8)) +#define IB_MPR_COMPMASK_SL (CL_HTON64(((uint64_t)1)<<9)) +#define IB_MPR_COMPMASK_MTUSELEC (CL_HTON64(((uint64_t)1)<<10)) +#define IB_MPR_COMPMASK_MTU (CL_HTON64(((uint64_t)1)<<11)) +#define IB_MPR_COMPMASK_RATESELEC (CL_HTON64(((uint64_t)1)<<12)) +#define IB_MPR_COMPMASK_RATE (CL_HTON64(((uint64_t)1)<<13)) +#define IB_MPR_COMPMASK_PKTLIFETIMESELEC (CL_HTON64(((uint64_t)1)<<14)) +#define IB_MPR_COMPMASK_PKTLIFETIME (CL_HTON64(((uint64_t)1)<<15)) +#define IB_MPR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<16)) +#define IB_MPR_COMPMASK_INDEPSELEC (CL_HTON64(((uint64_t)1)<<17)) +#define IB_MPR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<18)) +#define IB_MPR_COMPMASK_SGIDCOUNT (CL_HTON64(((uint64_t)1)<<19)) +#define IB_MPR_COMPMASK_DGIDCOUNT (CL_HTON64(((uint64_t)1)<<20)) +#define IB_MPR_COMPMASK_RESV4 (CL_HTON64(((uint64_t)1)<<21)) + +/* SMInfo Record Component Masks */ +#define IB_SMIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_SMIR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<1)) +#define IB_SMIR_COMPMASK_GUID (CL_HTON64(((uint64_t)1)<<2)) +#define IB_SMIR_COMPMASK_SMKEY (CL_HTON64(((uint64_t)1)<<3)) +#define IB_SMIR_COMPMASK_ACTCOUNT (CL_HTON64(((uint64_t)1)<<4)) +#define IB_SMIR_COMPMASK_PRIORITY (CL_HTON64(((uint64_t)1)<<5)) +#define IB_SMIR_COMPMASK_SMSTATE (CL_HTON64(((uint64_t)1)<<6)) + +/* InformInfo Record Component Masks */ +#define IB_IIR_COMPMASK_SUBSCRIBERGID (CL_HTON64(((uint64_t)1)<<0)) +#define IB_IIR_COMPMASK_ENUM (CL_HTON64(((uint64_t)1)<<1)) +#define IB_IIR_COMPMASK_RESV0 (CL_HTON64(((uint64_t)1)<<2)) +#define IB_IIR_COMPMASK_GID (CL_HTON64(((uint64_t)1)<<3)) +#define IB_IIR_COMPMASK_LIDRANGEBEGIN (CL_HTON64(((uint64_t)1)<<4)) +#define IB_IIR_COMPMASK_LIDRANGEEND (CL_HTON64(((uint64_t)1)<<5)) +#define IB_IIR_COMPMASK_RESV1 (CL_HTON64(((uint64_t)1)<<6)) +#define IB_IIR_COMPMASK_ISGENERIC (CL_HTON64(((uint64_t)1)<<7)) +#define IB_IIR_COMPMASK_SUBSCRIBE (CL_HTON64(((uint64_t)1)<<8)) +#define IB_IIR_COMPMASK_TYPE (CL_HTON64(((uint64_t)1)<<9)) +#define IB_IIR_COMPMASK_TRAPNUMB (CL_HTON64(((uint64_t)1)<<10)) +#define IB_IIR_COMPMASK_DEVICEID (CL_HTON64(((uint64_t)1)<<10)) +#define IB_IIR_COMPMASK_QPN (CL_HTON64(((uint64_t)1)<<11)) +#define IB_IIR_COMPMASK_RESV2 (CL_HTON64(((uint64_t)1)<<12)) +#define IB_IIR_COMPMASK_RESPTIME (CL_HTON64(((uint64_t)1)<<13)) +#define IB_IIR_COMPMASK_RESV3 (CL_HTON64(((uint64_t)1)<<14)) +#define IB_IIR_COMPMASK_PRODTYPE (CL_HTON64(((uint64_t)1)<<15)) +#define IB_IIR_COMPMASK_VENDID (CL_HTON64(((uint64_t)1)<<15)) /****f* IBA Base: Types/ib_path_rec_init_local * NAME @@ -2381,6 +2594,35 @@ ib_path_rec_init_local( * ib_gid_t *********/ +/****f* IBA Base: Types/ib_path_rec_num_path +* NAME +* ib_path_rec_num_path +* +* DESCRIPTION +* Get max number of paths to return. +* +* SYNOPSIS +*/ +static inline uint8_t +ib_path_rec_num_path( + IN const ib_path_rec_t* const p_rec ) +{ + return( p_rec->num_path &0x7F ); +} +/* +* PARAMETERS +* p_rec +* [in] Pointer to the path record object. +* +* RETURN VALUES +* Maximum number of paths to return for each unique SGID_DGID combination. +* +* NOTES +* +* SEE ALSO +* ib_path_rec_t +*********/ + /****f* IBA Base: Types/ib_path_rec_sl * NAME * ib_path_rec_sl @@ -2402,13 +2644,7 @@ ib_path_rec_sl( * [in] Pointer to the path record object. * * RETURN VALUES -* Encoded path MTU. -* 1: 256 -* 2: 512 -* 3: 1024 -* 4: 2048 -* 5: 4096 -* others: reserved +* SL. * * NOTES * @@ -2509,6 +2745,12 @@ ib_path_rec_rate( * 2: 2.5 Gb/sec. * 3: 10 Gb/sec. * 4: 30 Gb/sec. +* 5: 5 Gb/sec. +* 6: 20 Gb/sec. +* 7: 40 Gb/sec. +* 8: 60 Gb/sec. +* 9: 80 Gb/sec. +* 10: 120 Gb/sec. * others: reserved * * NOTES @@ -2571,7 +2813,7 @@ ib_path_rec_pkt_life( * [in] Pointer to the path record object. * * RETURN VALUES -* Encoded path pkt_life = 4.096 µsec * 2 PacketLifeTime. +* Encoded path pkt_life = 4.096 µsec * 2 ** PacketLifeTime. * * NOTES * @@ -3256,7 +3498,8 @@ ib_rmpp_get_resp_time( * * SOURCE */ -#define IB_SMP_DIRECTION (CL_HTON16(0x8000)) +#define IB_SMP_DIRECTION_HO 0x8000 +#define IB_SMP_DIRECTION (CL_HTON16(IB_SMP_DIRECTION_HO)) /**********/ /****d* IBA Base: Constants/IB_SMP_STATUS_MASK @@ -3268,7 +3511,8 @@ ib_rmpp_get_resp_time( * * SOURCE */ -#define IB_SMP_STATUS_MASK (CL_HTON16(0x7FFF)) +#define IB_SMP_STATUS_MASK_HO 0x7FFF +#define IB_SMP_STATUS_MASK (CL_HTON16(IB_SMP_STATUS_MASK_HO)) /**********/ /****s* IBA Base: Types/ib_smp_t @@ -3807,12 +4051,12 @@ typedef struct _ib_port_info uint8_t link_width_enabled; uint8_t link_width_supported; uint8_t link_width_active; - uint8_t state_info1; // LinkSpeedSupported and PortState - uint8_t state_info2; // PortPhysState and LinkDownDefaultState + uint8_t state_info1; /* LinkSpeedSupported and PortState */ + uint8_t state_info2; /* PortPhysState and LinkDownDefaultState */ uint8_t mkey_lmc; - uint8_t link_speed; // LinkSpeedEnabled and LinkSpeedActive + uint8_t link_speed; /* LinkSpeedEnabled and LinkSpeedActive */ uint8_t mtu_smsl; - uint8_t vl_cap; // VlCap and InitType + uint8_t vl_cap; /* VLCap and InitType */ uint8_t vl_high_limit; uint8_t vl_arb_high_cap; uint8_t vl_arb_low_cap; @@ -3823,7 +4067,8 @@ typedef struct _ib_port_info ib_net16_t p_key_violations; ib_net16_t q_key_violations; uint8_t guid_cap; - uint8_t subnet_timeout; + uint8_t subnet_timeout; /* cli_rereg(1b), resrv( +2b), timeout(5b) */ uint8_t resp_time_value; uint8_t error_threshold; @@ -3833,12 +4078,16 @@ typedef struct _ib_port_info #define IB_PORT_STATE_MASK 0x0F #define IB_PORT_LMC_MASK 0x07 +#define IB_PORT_LMC_MAX 0x07 #define IB_PORT_MPB_MASK 0xC0 #define IB_PORT_MPB_SHIFT 6 #define IB_PORT_LINK_SPEED_SHIFT 4 #define IB_PORT_LINK_SPEED_SUPPORTED_MASK 0xF0 #define IB_PORT_LINK_SPEED_ACTIVE_MASK 0xF0 #define IB_PORT_LINK_SPEED_ENABLED_MASK 0x0F +#define IB_PORT_PHYS_STATE_MASK 0xF0 +#define IB_PORT_PHYS_STATE_SHIFT 4 +#define IB_PORT_LNKDWNDFTSTATE_MASK 0x0F #define IB_PORT_CAP_RESV0 (CL_NTOH32(0x00000001)) #define IB_PORT_CAP_IS_SM (CL_NTOH32(0x00000002)) @@ -3958,6 +4207,35 @@ ib_port_info_get_vl_cap( * * SEE ALSO *********/ + +/****f* IBA Base: Types/ib_port_info_get_init_type +* NAME +* ib_port_info_get_init_type +* +* DESCRIPTION +* Gets the init type of a port. +* +* SYNOPSIS +*/ +static inline uint8_t +ib_port_info_get_init_type( + IN const ib_port_info_t* const p_pi) +{ + return (uint8_t) (p_pi->vl_cap & 0x0F); +} +/* +* PARAMETERS +* p_pi +* [in] Pointer to a PortInfo attribute. +* +* RETURN VALUES +* InitType field +* +* NOTES +* +* SEE ALSO +*********/ + /****f* IBA Base: Types/ib_port_info_get_op_vls * NAME * ib_port_info_get_op_vls @@ -4029,7 +4307,7 @@ AL_INLINE void AL_API ib_port_info_set_state_no_change( IN ib_port_info_t* const p_pi ) { - ib_port_info_set_port_state( p_pi, 0 ); + ib_port_info_set_port_state( p_pi, IB_LINK_NO_CHANGE ); p_pi->state_info2 = 0; } /*