In order to build openSM 3.3.2 using only trunk\inc\* items were added to ib_types.h. trunk\inc\iba\ib_types.h is now very close to matching management/opensm/include/iba/ib_types.h. Whitespace is the prime offender.
These mods have been tested by building & installing the entire tree on ia64/x86/x64 Svr2008/3 Using both the existing trunk\ulp\opensm and the newer 3.3.2 version; both successful. Signed-off-by: stan smith <[email protected]> Revision: 2498 Author: stansmith Date: 5:32:28 PM, Friday, October 23, 2009 Message: [INC] add defines and inline functions from OFED management ib_types.h in order to build OpenSM 3.3.2 using only trunk\inc\*. Tested by building & installing WinOF releases x86,x64) using current openSM and newer openSM; no observed differences. ---- Modified : /gen1/trunk/inc/iba/ib_types.h --- a/trunk/inc/iba/ib_types.h Fri Oct 23 16:21:30 2009 +++ b/trunk/inc/iba/ib_types.h Fri Oct 23 14:48:44 2009 @@ -270,6 +270,32 @@ #define IB_SUBNET_PATH_HOPS_MAX 64 /*********/ +/****d* IBA Base: Constants/IB_HOPLIMIT_MAX +* NAME +* IB_HOPLIMIT_MAX +* +* DESCRIPTION +* Maximum number of router hops allowed. +* +* SOURCE +*/ +#define IB_HOPLIMIT_MAX 255 +/*********/ + +/*********/ +/****d* IBA Base: Constants/IB_MC_SCOPE_* +* NAME +* IB_MC_SCOPE_* +* +* DESCRIPTION +* Scope component definitions from IBA 1.2.1 (Table 3 p. 148) +*/ +#define IB_MC_SCOPE_LINK_LOCAL 0x2 +#define IB_MC_SCOPE_SITE_LOCAL 0x5 +#define IB_MC_SCOPE_ORG_LOCAL 0x8 +#define IB_MC_SCOPE_GLOBAL 0xE +/*********/ + /****d* IBA Base: Constants/IB_PKEY_MAX_BLOCKS * NAME * IB_PKEY_MAX_BLOCKS @@ -1577,6 +1603,18 @@ #define IB_NOTICE_NODE_TYPE_ROUTER (CL_NTOH32(0x000003)) /**********/ +/****d* IBA Base: Constants/IB_NOTICE_PRODUCER_TYPE_CLASS_MGR +* NAME +* IB_NOTICE_PRODUCER_TYPE_CLASS_MGR +* +* DESCRIPTION +* Encoded generic producer type used in Notice attribute (13.4.8.2) +* +* SOURCE +*/ +#define IB_NOTICE_PRODUCER_TYPE_CLASS_MGR (CL_HTON32(0x000004)) +/**********/ + /****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_SUBN_MGMT * NAME * IB_NOTICE_NODE_TYPE_SUBN_MGMT @@ -1695,6 +1733,17 @@ */ #define IB_PATH_REC_SL_MASK 0x000F +/****d* IBA Base: Constants/IB_MULTIPATH_REC_SL_MASK +* NAME +* IB_MILTIPATH_REC_SL_MASK +* +* DESCRIPTION +* Mask for the sl field for MultiPath record +* +* SOURCE +*/ +#define IB_MULTIPATH_REC_SL_MASK 0x000F + /****d* IBA Base: Constants/IB_PATH_REC_QOS_CLASS_MASK * NAME * IB_PATH_REC_QOS_CLASS_MASK @@ -1706,6 +1755,17 @@ */ #define IB_PATH_REC_QOS_CLASS_MASK 0xFFF0 +/****d* IBA Base: Constants/IB_MULTIPATH_REC_QOS_CLASS_MASK +* NAME +* IB_MULTIPATH_REC_QOS_CLASS_MASK +* +* DESCRIPTION +* Mask for the QoS class field for MultiPath record +* +* SOURCE +*/ +#define IB_MULTIPATH_REC_QOS_CLASS_MASK 0xFFF0 + /****d* IBA Base: Constants/IB_PATH_REC_SELECTOR_MASK * NAME * IB_PATH_REC_SELECTOR_MASK @@ -1870,6 +1930,48 @@ * ib_node_info_t *********/ +static const char *const __ib_producer_type_str[] = { + "UNKNOWN", + "Channel Adapter", + "Switch", + "Router", + "Class Manager" +}; + +/****f* IBA Base: Types/ib_get_producer_type_str +* NAME +* ib_get_producer_type_str +* +* DESCRIPTION +* Returns a string for the specified producer type +* 13.4.8.2 Notice +* 13.4.8.3 InformInfo +* +* SYNOPSIS +*/ +static inline const char *AL_API +ib_get_producer_type_str(IN ib_net32_t producer_type) +{ + if (cl_ntoh32(producer_type) > + CL_NTOH32(IB_NOTICE_PRODUCER_TYPE_CLASS_MGR)) + producer_type = 0; + return (__ib_producer_type_str[cl_ntoh32(producer_type)]); +} + +/* +* PARAMETERS +* producer_type +* [in] Encoded producer type from the Notice attribute + +* RETURN VALUES +* Pointer to the producer type string. +* +* NOTES +* +* SEE ALSO +* ib_notice_get_prod_type +*********/ + static const char* const __ib_port_state_str[] = { "No State Change (NOP)", @@ -2643,12 +2745,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_SERVICEID_MSB (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)) +#define IB_MPR_COMPMASK_SERVICEID_LSB (CL_HTON64(((uint64_t)1)<<21)) /* SMInfo Record Component Masks */ #define IB_SMIR_COMPMASK_LID (CL_HTON64(((uint64_t)1)<<0)) @@ -4472,10 +4574,11 @@ ib_net16_t p_key_violations; ib_net16_t q_key_violations; uint8_t guid_cap; - uint8_t subnet_timeout; /* cli_rereg(1b), resrv( -2b), timeout(5b) */ + uint8_t subnet_timeout; /* cli_rereg(1b), mcast_pkey_trap_suppr(1b), resrv(1b), timeout(5b) */ uint8_t resp_time_value; uint8_t error_threshold; + ib_net16_t max_credit_hint; + ib_net32_t link_rt_latency; /* reserv(8b), link round trip lat(24b) */ } PACK_SUFFIX ib_port_info_t; #include <complib/cl_packoff.h> @@ -4528,12 +4631,12 @@ #define IB_PORT_CAP_HAS_BM (CL_NTOH32(0x00800000)) #define IB_PORT_CAP_HAS_LINK_RT_LATENCY (CL_NTOH32(0x01000000)) #define IB_PORT_CAP_HAS_CLIENT_REREG (CL_NTOH32(0x02000000)) -#define IB_PORT_CAP_RESV26 (CL_NTOH32(0x04000000)) -#define IB_PORT_CAP_RESV27 (CL_NTOH32(0x08000000)) -#define IB_PORT_CAP_RESV28 (CL_NTOH32(0x10000000)) -#define IB_PORT_CAP_RESV29 (CL_NTOH32(0x20000000)) -#define IB_PORT_CAP_RESV30 (CL_NTOH32(0x40000000)) -#define IB_PORT_CAP_RESV31 (CL_NTOH32(0x80000000)) +#define IB_PORT_CAP_HAS_OTHER_LOCAL_CHANGES_NTC (CL_HTON32(0x04000000)) +#define IB_PORT_CAP_HAS_LINK_SPEED_WIDTH_PAIRS_TBL (CL_HTON32(0x08000000)) +#define IB_PORT_CAP_HAS_VEND_MADS (CL_HTON32(0x10000000)) +#define IB_PORT_CAP_HAS_MCAST_PKEY_TRAP_SUPPRESS (CL_HTON32(0x20000000)) +#define IB_PORT_CAP_HAS_MCAST_FDB_TOP (CL_HTON32(0x40000000)) +#define IB_PORT_CAP_HAS_HIER_INFO (CL_HTON32(0x80000000)) /****f* IBA Base: Types/ib_port_info_get_port_state * NAME @@ -4964,6 +5067,7 @@ #define IB_LINK_WIDTH_ACTIVE_1X 1 #define IB_LINK_WIDTH_ACTIVE_4X 2 +#define IB_LINK_WIDTH_ACTIVE_8X 4 #define IB_LINK_WIDTH_ACTIVE_12X 8 #define IB_LINK_SPEED_ACTIVE_2_5 1 #define IB_LINK_SPEED_ACTIVE_5 2 @@ -5241,6 +5345,66 @@ * SEE ALSO *********/ +/****f* IBA Base: Types/ib_port_info_get_master_smsl +* NAME +* ib_port_info_get_master_smsl +* +* DESCRIPTION +* Returns the encoded value for the Master SMSL at this port. +* +* SYNOPSIS +*/ +static inline uint8_t AL_API +ib_port_info_get_master_smsl(IN const ib_port_info_t * const p_pi) +{ + return (uint8_t) (p_pi->mtu_smsl & 0x0F); +} + +/* +* PARAMETERS +* p_pi +* [in] Pointer to a PortInfo attribute. +* +* RETURN VALUES +* Returns the encoded value for the Master SMSL at this port. +* +* NOTES +* +* SEE ALSO +*********/ + +/****f* IBA Base: Types/ib_port_info_set_master_smsl +* NAME +* ib_port_info_set_master_smsl +* +* DESCRIPTION +* Sets the Master SMSL value in the PortInfo attribute. +* +* SYNOPSIS +*/ +static inline void AL_API +ib_port_info_set_master_smsl(IN ib_port_info_t * const p_pi, + IN const uint8_t smsl) +{ + p_pi->mtu_smsl = (uint8_t) ((p_pi->mtu_smsl & 0xF0) | smsl); +} + +/* +* PARAMETERS +* p_pi +* [in] Pointer to a PortInfo attribute. +* +* mtu +* [in] Encoded Master SMSL value to set +* +* RETURN VALUES +* None. +* +* NOTES +* +* SEE ALSO +*********/ + /****f* IBA Base: Types/ib_port_info_get_sm_sl * NAME @@ -5319,8 +5483,7 @@ { CL_ASSERT( timeout <= 0x1F ); p_pi->subnet_timeout = - (uint8_t)( - (p_pi->subnet_timeout & 0x80) | (timeout & 0x1F)); + (uint8_t) ((p_pi->subnet_timeout & 0xE0) | (timeout & 0x1F)); } /* * PARAMETERS @@ -5354,8 +5517,7 @@ { CL_ASSERT( client_rereg <= 0x1 ); p_pi->subnet_timeout = - (uint8_t)( - (p_pi->subnet_timeout & 0x1F) | ((client_rereg << 7) & 0x80)); + (uint8_t) ((p_pi->subnet_timeout & 0x7F) | (client_rereg << 7)); } /* * PARAMETERS @@ -5373,6 +5535,71 @@ * SEE ALSO *********/ +/****f* IBA Base: Types/ib_port_info_get_mcast_pkey_trap_suppress +* NAME +* ib_port_info_get_mcast_pkey_trap_suppress +* +* DESCRIPTION +* Gets the encoded multicast pkey trap suppresion enabled bit value +* in the PortInfo attribute. +* +* SYNOPSIS +*/ +static inline uint8_t AL_API +ib_port_info_get_mcast_pkey_trap_suppress(IN ib_port_info_t const *p_pi) +{ + return ((p_pi->subnet_timeout & 0x40) >> 6); +} + +/* +* PARAMETERS +* p_pi +* [in] Pointer to a PortInfo attribute. +* +* RETURN VALUES +* Multicast PKey trap suppression enabled value (either 1 or 0). +* +* NOTES +* +* SEE ALSO +*********/ + +/****f* IBA Base: Types/ib_port_info_set_mcast_pkey_trap_suppress +* NAME +* ib_port_info_set_mcast_pkey_trap_suppress +* +* DESCRIPTION +* Sets the encoded multicast pkey trap suppresion enabled bit value +* in the PortInfo attribute. +* +* SYNOPSIS +*/ +static inline void AL_API +ib_port_info_set_mcast_pkey_trap_suppress(IN ib_port_info_t * const p_pi, + IN const uint8_t trap_suppress) +{ + CL_ASSERT(trap_suppress <= 0x1); + p_pi->subnet_timeout = + (uint8_t) ((p_pi->subnet_timeout & 0xBF) | (trap_suppress << 6)); +} + +/* +* PARAMETERS +* p_pi +* [in] Pointer to a PortInfo attribute. +* +* trap_suppress +* [in] Multicast pkey trap suppresion enabled 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 @@ -5950,6 +6177,8 @@ ib_net16_t lids_per_port; ib_net16_t enforce_cap; uint8_t flags; + uint8_t resvd; + ib_net16_t mcast_top; } PACK_SUFFIX ib_switch_info_t; #include <complib/cl_packoff.h> @@ -6094,16 +6323,15 @@ uint8_t tclass; uint8_t num_path; ib_net16_t pkey; - uint8_t resv0; - uint8_t sl; + ib_net16_t qos_class_sl; uint8_t mtu; uint8_t rate; uint8_t pkt_life; - uint8_t resv1; + uint8_t service_id_8msb; uint8_t independence; /* formerly resv2 */ uint8_t sgid_count; uint8_t dgid_count; - uint8_t resv3[7]; + uint8_t service_id_56lsb[7]; ib_gid_t gids[IB_MULTIPATH_MAX_GIDS]; } PACK_SUFFIX ib_multipath_rec_t; #include <complib/cl_packoff.h> @@ -6170,6 +6398,41 @@ * ib_multipath_rec_t *********/ +/****f* IBA Base: Types/ib_multipath_rec_set_sl +* NAME +* ib_multipath_rec_set_sl +* +* DESCRIPTION +* Set path service level. +* +* SYNOPSIS +*/ +static inline void AL_API +ib_multipath_rec_set_sl( + IN ib_multipath_rec_t* const p_rec, + IN const uint8_t sl ) +{ + p_rec->qos_class_sl = + (p_rec->qos_class_sl & CL_HTON16(IB_MULTIPATH_REC_QOS_CLASS_MASK)) | + cl_hton16(sl & IB_MULTIPATH_REC_SL_MASK); +} +/* +* PARAMETERS +* p_rec +* [in] Pointer to the MultiPath record object. +* +* sl +* [in] Service level to set. +* +* RETURN VALUES +* None +* +* NOTES +* +* SEE ALSO +* ib_multipath_rec_t +*********/ + /****f* IBA Base: Types/ib_multipath_rec_sl * NAME * ib_multipath_rec_sl @@ -6183,7 +6446,7 @@ ib_multipath_rec_sl( IN const ib_multipath_rec_t* const p_rec ) { - return( (uint8_t)((cl_ntoh16( p_rec->sl )) & 0xF) ); + return ((uint8_t) ((cl_ntoh16(p_rec->qos_class_sl)) & IB_MULTIPATH_REC_SL_MASK)); } /* * PARAMETERS @@ -6199,6 +6462,70 @@ * ib_multipath_rec_t *********/ +/****f* IBA Base: Types/ib_multipath_rec_set_qos_class +* NAME +* ib_multipath_rec_set_qos_class +* +* DESCRIPTION +* Set path QoS class. +* +* SYNOPSIS +*/ +static inline void AL_API +ib_multipath_rec_set_qos_class( + IN ib_multipath_rec_t* const p_rec, + IN const uint16_t qos_class ) +{ + p_rec->qos_class_sl = + (p_rec->qos_class_sl & CL_HTON16(IB_MULTIPATH_REC_SL_MASK)) | + cl_hton16(qos_class << 4); +} +/* +* PARAMETERS +* p_rec +* [in] Pointer to the MultiPath record object. +* +* qos_class +* [in] QoS class to set. +* +* RETURN VALUES +* None +* +* NOTES +* +* SEE ALSO +* ib_multipath_rec_t +*********/ + +/****f* IBA Base: Types/ib_multipath_rec_qos_class +* NAME +* ib_multipath_rec_qos_class +* +* DESCRIPTION +* Get QoS class. +* +* SYNOPSIS +*/ +static inline uint16_t AL_API +ib_multipath_rec_qos_class( + IN const ib_multipath_rec_t* const p_rec ) +{ + return (cl_ntoh16( p_rec->qos_class_sl ) >> 4); +} +/* +* PARAMETERS +* p_rec +* [in] Pointer to the MultiPath record object. +* +* RETURN VALUES +* QoS class of the MultiPath record. +* +* NOTES +* +* SEE ALSO +* ib_multipath_rec_t +*********/ + /****f* IBA Base: Types/ib_multipath_rec_mtu * NAME * ib_multipath_rec_mtu @@ -6395,6 +6722,41 @@ * ib_multipath_rec_t *********/ +/****f* IBA Base: Types/ib_multipath_rec_service_id +* NAME +* ib_multipath_rec_service_id +* +* DESCRIPTION +* Get multipath service id. +* +* SYNOPSIS +*/ +static inline ib_net64_t AL_API +ib_multipath_rec_service_id(IN const ib_multipath_rec_t * const p_rec) +{ + union { + ib_net64_t sid; + uint8_t sid_arr[8]; + } sid_union; + sid_union.sid_arr[0] = p_rec->service_id_8msb; + memcpy(&sid_union.sid_arr[1], p_rec->service_id_56lsb, 7); + return sid_union.sid; +} + +/* +* PARAMETERS +* p_rec +* [in] Pointer to the multipath record object. +* +* RETURN VALUES +* Service ID +* +* NOTES +* +* SEE ALSO +* ib_multipath_rec_t +*********/ + #define IB_NUM_PKEY_ELEMENTS_IN_BLOCK 32 /****s* IBA Base: Types/ib_pkey_table_t * NAME @@ -6452,7 +6814,7 @@ #include <complib/cl_packon.h> typedef struct _ib_slvl_table { - uint8_t vl_table[IB_MAX_NUM_VLS/2]; + uint8_t raw_vl_by_sl[IB_MAX_NUM_VLS/2]; } PACK_SUFFIX ib_slvl_table_t; #include <complib/cl_packoff.h> @@ -6499,15 +6861,17 @@ CL_ASSERT(vl <= 15); CL_ASSERT(sl_index <= 15); - if (sl_index%2) + if (sl_index % 2) { /* this is an odd sl. Need to update the ls bits */ - p_slvl_tbl->vl_table[idx] = ( p_slvl_tbl->vl_table[idx] & 0xF0 ) | vl ; + p_slvl_tbl->raw_vl_by_sl[idx] = + ( p_slvl_tbl->raw_vl_by_sl[idx] & 0xF0 ) | vl ; } else { /* this is an even sl. Need to update the ms bits */ - p_slvl_tbl->vl_table[idx] = ( vl << 4 ) | ( p_slvl_tbl->vl_table[idx] & 0x0F ); + p_slvl_tbl->raw_vl_by_sl[idx] = + ( vl << 4 ) | ( p_slvl_tbl->raw_vl_by_sl[idx] & 0x0F ); } } /* @@ -6547,15 +6911,15 @@ uint8_t idx = sl_index/2; CL_ASSERT(sl_index <= 15); - if (sl_index%2) + if (sl_index % 2) { /* this is an odd sl. Need to return the ls bits. */ - return ( p_slvl_tbl->vl_table[idx] & 0x0F ); + return ( p_slvl_tbl->raw_vl_by_sl[idx] & 0x0F ); } else { /* this is an even sl. Need to return the ms bits. */ - return ( (p_slvl_tbl->vl_table[idx] & 0xF0) >> 4 ); + return ( (p_slvl_tbl->raw_vl_by_sl[idx] & 0xF0) >> 4 ); } } /* @@ -7314,22 +7678,32 @@ ib_gid_t gid2; // 16 } PACK_SUFFIX ntc_257_258; - struct _ntc_259 // p/q_key violation with sw info 53 + struct _ntc_259 // p/q_key violation from switch 51 { ib_net16_t data_valid; // 2 ib_net16_t lid1; // 2 ib_net16_t lid2; // 2 - ib_net32_t key; // 4 - uint8_t sl; // 1 - ib_net32_t qp1; // 4 - uint8_t qp2_msb; // 1 - ib_net16_t qp2_lsb; // 2 + ib_net16_t pkey; // 2 + ib_net32_t sl_qp1; // 4b sl, 4b pad, 24b qp1 + ib_net32_t qp2; // 8b pad, 24b qp2 ib_gid_t gid1; // 16 ib_gid_t gid2; // 16 ib_net16_t sw_lid; // 2 uint8_t port_no; // 1 } PACK_SUFFIX ntc_259; + struct _ntc_bkey_259 // bkey violation + { + ib_net16_t lidaddr; + uint8_t method; + uint8_t reserved; + ib_net16_t attribute_id; + ib_net32_t attribute_modifier; + ib_net32_t qp; // qp is low 24 bits + ib_net64_t bkey; + ib_gid_t gid; + } PACK_SUFFIX ntc_bkey_259; + } data_details; ib_gid_t issuer_gid; // 16 80 @@ -7352,6 +7726,258 @@ #define TRAP_144_MASK_LINK_WIDTH_ENABLE_CHANGE (CL_HTON16(0x0002)) #define TRAP_144_MASK_NODE_DESCRIPTION_CHANGE (CL_HTON16(0x0001)) +/****f* IBA Base: Types/ib_notice_is_generic +* NAME +* ib_notice_is_generic +* +* DESCRIPTION +* Check if the notice is generic +* +* SYNOPSIS +*/ +static inline boolean_t AL_API +ib_notice_is_generic(IN const ib_mad_notice_attr_t * p_ntc) +{ + return (p_ntc->generic_type & 0x80); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* RETURN VALUES +* TRUE if mad is generic +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_get_type +* NAME +* ib_notice_get_type +* +* DESCRIPTION +* Get the notice type +* +* SYNOPSIS +*/ +static inline uint8_t AL_API +ib_notice_get_type(IN const ib_mad_notice_attr_t * p_ntc) +{ + return p_ntc->generic_type & 0x7f; +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* RETURN VALUES +* TRUE if mad is generic +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_get_prod_type +* NAME +* ib_notice_get_prod_type +* +* DESCRIPTION +* Get the notice Producer Type of Generic Notice +* +* SYNOPSIS +*/ +static inline ib_net32_t AL_API +ib_notice_get_prod_type(IN const ib_mad_notice_attr_t * p_ntc) +{ + uint32_t pt; + + pt = cl_ntoh16(p_ntc->g_or_v.generic.prod_type_lsb) | + (p_ntc->g_or_v.generic.prod_type_msb << 16); + return cl_hton32(pt); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* RETURN VALUES +* The producer type +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_set_prod_type +* NAME +* ib_notice_set_prod_type +* +* DESCRIPTION +* Set the notice Producer Type of Generic Notice +* +* SYNOPSIS +*/ +static inline void AL_API +ib_notice_set_prod_type(IN ib_mad_notice_attr_t * p_ntc, + IN ib_net32_t prod_type_val) +{ + uint32_t ptv = cl_ntoh32(prod_type_val); + p_ntc->g_or_v.generic.prod_type_lsb = + cl_hton16((uint16_t) (ptv & 0x0000ffff)); + p_ntc->g_or_v.generic.prod_type_msb = + (uint8_t) ((ptv & 0x00ff0000) >> 16); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* prod_type +* [in] The producer Type code +* +* RETURN VALUES +* None +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_set_prod_type_ho +* NAME +* ib_notice_set_prod_type_ho +* +* DESCRIPTION +* Set the notice Producer Type of Generic Notice given Host Order +* +* SYNOPSIS +*/ +static inline void AL_API +ib_notice_set_prod_type_ho(IN ib_mad_notice_attr_t * p_ntc, + IN uint32_t prod_type_val_ho) +{ + p_ntc->g_or_v.generic.prod_type_lsb = + cl_hton16((uint16_t) (prod_type_val_ho & 0x0000ffff)); + p_ntc->g_or_v.generic.prod_type_msb = + (uint8_t) ((prod_type_val_ho & 0x00ff0000) >> 16); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* prod_type +* [in] The producer Type code in host order +* +* RETURN VALUES +* None +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_get_vend_id +* NAME +* ib_notice_get_vend_id +* +* DESCRIPTION +* Get the Vendor Id of Vendor type Notice +* +* SYNOPSIS +*/ +static inline ib_net32_t AL_API +ib_notice_get_vend_id(IN const ib_mad_notice_attr_t * p_ntc) +{ + uint32_t vi; + + vi = cl_ntoh16(p_ntc->g_or_v.vend.vend_id_lsb) | + (p_ntc->g_or_v.vend.vend_id_msb << 16); + return cl_hton32(vi); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* RETURN VALUES +* The Vendor Id of Vendor type Notice +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_set_vend_id +* NAME +* ib_notice_set_vend_id +* +* DESCRIPTION +* Set the notice Producer Type of Generic Notice +* +* SYNOPSIS +*/ +static inline void AL_API +ib_notice_set_vend_id(IN ib_mad_notice_attr_t * p_ntc, IN ib_net32_t vend_id) +{ + uint32_t vi = cl_ntoh32(vend_id); + p_ntc->g_or_v.vend.vend_id_lsb = + cl_hton16((uint16_t) (vi & 0x0000ffff)); + p_ntc->g_or_v.vend.vend_id_msb = (uint8_t) ((vi & 0x00ff0000) >> 16); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* vend_id +* [in] The producer Type code +* +* RETURN VALUES +* None +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + +/****f* IBA Base: Types/ib_notice_set_vend_id_ho +* NAME +* ib_notice_set_vend_id_ho +* +* DESCRIPTION +* Set the notice Producer Type of Generic Notice given a host order value +* +* SYNOPSIS +*/ +static inline void AL_API +ib_notice_set_vend_id_ho(IN ib_mad_notice_attr_t * p_ntc, + IN uint32_t vend_id_ho) +{ + p_ntc->g_or_v.vend.vend_id_lsb = + cl_hton16((uint16_t) (vend_id_ho & 0x0000ffff)); + p_ntc->g_or_v.vend.vend_id_msb = + (uint8_t) ((vend_id_ho & 0x00ff0000) >> 16); +} + +/* +* PARAMETERS +* p_ntc +* [in] Pointer to the notice MAD attribute +* +* vend_id_ho +* [in] The producer Type code in host order +* +* RETURN VALUES +* None +* +* SEE ALSO +* ib_mad_notice_attr_t +*********/ + #include <complib/cl_packon.h> typedef struct _ib_inform_info { @@ -7537,6 +8163,40 @@ } PACK_SUFFIX ib_inform_info_record_t; #include <complib/cl_packoff.h> /********/ + +/****s* IBA Base: Types/ib_perfmgt_mad_t +* NAME +* ib_perfmgt_mad_t +* +* DESCRIPTION +* IBA defined Perf Management MAD (16.3.1) +* +* SYNOPSIS +*/ +#include <complib/cl_packon.h> +typedef struct _ib_perfmgt_mad { + ib_mad_t header; + uint8_t resv[40]; +#define IB_PM_DATA_SIZE 192 + uint8_t data[IB_PM_DATA_SIZE]; +} PACK_SUFFIX ib_perfmgt_mad_t; +#include <complib/cl_packoff.h> +/* +* FIELDS +* header +* Common MAD header. +* +* resv +* Reserved. +* +* data +* Performance Management payload. The structure and content of this field +* depends upon the method, attr_id, and attr_mod fields in the header. +* +* SEE ALSO +* ib_mad_t +*********/ + /****d* IBA Base: Types/DM_SVC_NAME * NAME * DM_SVC_NAME _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
