Why opensm contains complib header and c-files ? What are they different with from IBAL complib ?
> -----Original Message----- > From: Smith, Stan [mailto:[email protected]] > Sent: Saturday, October 24, 2009 4:15 AM > To: Leonid Keller > Cc: [email protected] > Subject: [PATCH] OpenSM 3.3.2 required items added to ib_types.h > > > 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
