[ofw] [PATCH] OpenSM 3.3.2 required items added to ib_types.h

Smith, Stan stan.smith at intel.com
Fri Oct 23 19:15:11 PDT 2009


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 <stan.smith at intel.com>

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





More information about the ofw mailing list