]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[INC] additions to support opensm 3.3.6
authorStan Smith <stan.smith@intel.com>
Thu, 27 May 2010 16:39:07 +0000 (16:39 +0000)
committerStan Smith <stan.smith@intel.com>
Thu, 27 May 2010 16:39:07 +0000 (16:39 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@2813 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/inc/iba/ib_types.h

index 14256d5ad0d66b7ddf5f130cec48ee205dd00853..d01bf94b115dc5fef56831b0c8f3f6becb1b3079 100644 (file)
@@ -585,6 +585,18 @@ extern "C"
 #define IB_MCLASS_BIS 0x12\r
 /**********/\r
 \r
+/****d* IBA Base: Constants/IB_MCLASS_CC\r
+* NAME\r
+*      IB_MCLASS_CC\r
+*\r
+* DESCRIPTION\r
+*      Management Class, Congestion Control (A10.4.1)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MCLASS_CC 0x21\r
+/**********/\r
+\r
 /****d* IBA Base: Constants/IB_MCLASS_VENDOR_HIGH_RANGE_MIN\r
 * NAME\r
 *      IB_MCLASS_VENDOR_HIGH_RANGE_MIN\r
@@ -974,6 +986,8 @@ ib_class_is_rmpp(
 #define IB_SA_MAD_STATUS_TOO_MANY_RECORDS      (CL_HTON16(0x0400))\r
 #define IB_SA_MAD_STATUS_INVALID_GID           (CL_HTON16(0x0500))\r
 #define IB_SA_MAD_STATUS_INSUF_COMPS           (CL_HTON16(0x0600))\r
+#define IB_SA_MAD_STATUS_DENIED                                (CL_HTON16(0x0700))\r
+#define IB_SA_MAD_STATUS_PRIO_SUGGESTED                (CL_HTON16(0x0800))\r
 \r
 #define IB_DM_MAD_STATUS_NO_IOC_RESP           (CL_HTON16(0x0100))\r
 #define IB_DM_MAD_STATUS_NO_SVC_ENTRIES                (CL_HTON16(0x0200))\r
@@ -1410,18 +1424,6 @@ ib_class_is_rmpp(
 #define IB_MAD_ATTR_MULTIPATH_RECORD                   (CL_NTOH16(0x003A))\r
 /**********/\r
 \r
-/****d* IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD\r
-* NAME\r
-*      IB_MAD_ATTR_SVC_ASSOCIATION_RECORD\r
-*\r
-* DESCRIPTION\r
-*      Service Association Record attribute (15.2.5)\r
-*\r
-* SOURCE\r
-*/\r
-#define IB_MAD_ATTR_SVC_ASSOCIATION_RECORD             (CL_NTOH16(0x003B))\r
-/**********/\r
-\r
 /****d* IBA Base: Constants/IB_MAD_ATTR_INFORM_INFO_RECORD\r
 * NAME\r
 *      IB_MAD_ATTR_INFORM_INFO_RECORD\r
@@ -1529,6 +1531,114 @@ ib_class_is_rmpp(
 #define IB_MAD_ATTR_DIAG_CODE                          (CL_NTOH16(0x0024))\r
 /**********/\r
 \r
+/****d* IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD\r
+* NAME\r
+*      IB_MAD_ATTR_SVC_ASSOCIATION_RECORD\r
+*\r
+* DESCRIPTION\r
+*      Service Association Record attribute (15.2.5)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_SVC_ASSOCIATION_RECORD     (CL_HTON16(0x003B))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_CONG_INFO\r
+* NAME\r
+*      IB_MAD_ATTR_CONG_INFO\r
+*\r
+* DESCRIPTION\r
+*      CongestionInfo attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_CONG_INFO                          (CL_HTON16(0x0011))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_CONG_KEY_INFO\r
+* NAME\r
+*      IB_MAD_ATTR_CONG_KEY_INFO\r
+*\r
+* DESCRIPTION\r
+*      CongestionKeyInfo attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_CONG_KEY_INFO                      (CL_HTON16(0x0012))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_CONG_LOG\r
+* NAME\r
+*      IB_MAD_ATTR_CONG_LOG\r
+*\r
+* DESCRIPTION\r
+*      CongestionLog attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_CONG_LOG                           (CL_HTON16(0x0013))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_SW_CONG_SETTING\r
+* NAME\r
+*      IB_MAD_ATTR_SW_CONG_SETTING\r
+*\r
+* DESCRIPTION\r
+*      SwitchCongestionSetting attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_SW_CONG_SETTING                    (CL_HTON16(0x0014))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_SW_PORT_CONG_SETTING\r
+* NAME\r
+*      IB_MAD_ATTR_SW_PORT_CONG_SETTING\r
+*\r
+* DESCRIPTION\r
+*      SwitchPortCongestionSetting attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_SW_PORT_CONG_SETTING               (CL_HTON16(0x0015))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_CA_CONG_SETTING\r
+* NAME\r
+*      IB_MAD_ATTR_CA_CONG_SETTING\r
+*\r
+* DESCRIPTION\r
+*      CACongestionSetting attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_CA_CONG_SETTING                    (CL_HTON16(0x0016))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_CC_TBL\r
+* NAME\r
+*      IB_MAD_ATTR_CC_TBL\r
+*\r
+* DESCRIPTION\r
+*      CongestionControlTable attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_CC_TBL                             (CL_HTON16(0x0017))\r
+/**********/\r
+\r
+/****d* IBA Base: Constants/IB_MAD_ATTR_TIME_STAMP\r
+* NAME\r
+*      IB_MAD_ATTR_TIME_STAMP\r
+*\r
+* DESCRIPTION\r
+*      TimeStamp attribute (A10.4.3)\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_MAD_ATTR_TIME_STAMP                         (CL_HTON16(0x0018))\r
+/**********/\r
+\r
 /****d* IBA Base: Constants/IB_NODE_TYPE_CA\r
 * NAME\r
 *      IB_NODE_TYPE_CA\r
@@ -1565,40 +1675,40 @@ ib_class_is_rmpp(
 #define IB_NODE_TYPE_ROUTER                                    0x03\r
 /**********/\r
 \r
-/****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_CA\r
+/****d* IBA Base: Constants/IB_NOTICE_PRODUCER_TYPE_CA\r
 * NAME\r
-*      IB_NOTICE_NODE_TYPE_CA\r
+*      IB_NOTICE_PRODUCER_TYPE_CA\r
 *\r
 * DESCRIPTION\r
-*      Encoded generic node type used in MAD attributes (13.4.8.2)\r
+*      Encoded generic producer type used in Notice attribute (13.4.8.2)\r
 *\r
 * SOURCE\r
 */\r
-#define IB_NOTICE_NODE_TYPE_CA                         (CL_NTOH32(0x000001))\r
+#define IB_NOTICE_PRODUCER_TYPE_CA                     (CL_HTON32(0x000001))\r
 /**********/\r
 \r
-/****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_SWITCH\r
+/****d* IBA Base: Constants/IB_NOTICE_PRODUCER_TYPE_SWITCH\r
 * NAME\r
-*      IB_NOTICE_NODE_TYPE_SWITCH\r
+*      IB_NOTICE_PRODUCER_TYPE_SWITCH\r
 *\r
 * DESCRIPTION\r
-*      Encoded generic node type used in MAD attributes (13.4.8.2)\r
+*      Encoded generic producer type used in Notice attribute (13.4.8.2)\r
 *\r
 * SOURCE\r
 */\r
-#define IB_NOTICE_NODE_TYPE_SWITCH                     (CL_NTOH32(0x000002))\r
+#define IB_NOTICE_PRODUCER_TYPE_SWITCH                 (CL_HTON32(0x000002))\r
 /**********/\r
 \r
-/****d* IBA Base: Constants/IB_NOTICE_NODE_TYPE_ROUTER\r
+/****d* IBA Base: Constants/IB_NOTICE_PRODUCER_TYPE_ROUTER\r
 * NAME\r
-*      IB_NOTICE_NODE_TYPE_ROUTER\r
+*      IB_NOTICE_PRODUCER_TYPE_ROUTER\r
 *\r
 * DESCRIPTION\r
-*      Encoded generic node type used in MAD attributes (13.4.8.2)\r
+*      Encoded generic producer type used in Notice attribute (13.4.8.2)\r
 *\r
 * SOURCE\r
 */\r
-#define IB_NOTICE_NODE_TYPE_ROUTER                     (CL_NTOH32(0x000003))\r
+#define IB_NOTICE_PRODUCER_TYPE_ROUTER                 (CL_HTON32(0x000003))\r
 /**********/\r
 \r
 /****d* IBA Base: Constants/IB_NOTICE_PRODUCER_TYPE_CLASS_MGR\r
@@ -2328,7 +2438,8 @@ static inline boolean_t
 ib_gid_is_link_local(\r
        IN              const   ib_gid_t* const                         p_gid )\r
 {\r
-       return( ib_gid_get_subnet_prefix( p_gid ) == IB_DEFAULT_SUBNET_PREFIX );\r
+       return ((ib_gid_get_subnet_prefix(p_gid) &\r
+                CL_HTON64(0xFFC0000000000000ULL)) == IB_DEFAULT_SUBNET_PREFIX);\r
 }\r
 /*\r
 * PARAMETERS\r
@@ -3376,6 +3487,23 @@ ib_path_rec_set_hop_flow_raw(
 #define IB_CLASS_CAP_GETSET                                    0x0002\r
 /*********/\r
 \r
+/****s* IBA Base: Constants/IB_CLASS_ENH_PORT0_CC_MASK\r
+* NAME\r
+*      IB_CLASS_ENH_PORT0_CC_MASK\r
+*\r
+* DESCRIPTION\r
+*      ClassPortInfo CapabilityMask bits.\r
+*      Switch only: This bit will be set if the EnhacedPort0\r
+*      supports CA Congestion Control (A10.4.3.1).\r
+*\r
+* SEE ALSO\r
+*      ib_class_port_info_t\r
+*\r
+* SOURCE\r
+*/\r
+#define IB_CLASS_ENH_PORT0_CC_MASK                     0x0100\r
+/*********/\r
+\r
 /****s* IBA Base: Constants/IB_CLASS_RESP_TIME_MASK\r
 * NAME\r
 *      IB_CLASS_RESP_TIME_MASK\r
@@ -3482,6 +3610,10 @@ typedef struct _ib_class_port_info
 *\r
 *********/\r
 \r
+#define IB_PM_ALL_PORT_SELECT                  (CL_HTON16(((uint16_t)1)<<8))\r
+#define IB_PM_EXT_WIDTH_SUPPORTED              (CL_HTON16(((uint16_t)1)<<9))\r
+#define IB_PM_EXT_WIDTH_NOIETF_SUP             (CL_HTON16(((uint16_t)1)<<10))\r
+\r
 /****f* IBA Base: Types/ib_class_set_resp_time_val\r
 * NAME\r
 *      ib_class_set_resp_time_val\r
@@ -5129,6 +5261,9 @@ ib_port_info_compute_rate(
       rate = IB_PATH_RECORD_RATE_10_GBS;\r
       break;\r
 \r
+       case IB_LINK_WIDTH_ACTIVE_8X:\r
+               rate = IB_PATH_RECORD_RATE_20_GBS;\r
+               break;\r
     case IB_LINK_WIDTH_ACTIVE_12X:\r
       rate = IB_PATH_RECORD_RATE_30_GBS;\r
       break;\r
@@ -6265,6 +6400,34 @@ ib_switch_info_clear_state_change(
 * SEE ALSO\r
 *********/\r
 \r
+/****f* IBA Base: Types/ib_switch_info_get_opt_sl2vlmapping\r
+* NAME\r
+*      ib_switch_info_get_state_opt_sl2vlmapping\r
+*\r
+* DESCRIPTION\r
+*       Returns the value of the optimized SLtoVLMapping programming flag.\r
+*\r
+* SYNOPSIS\r
+*/\r
+static inline boolean_t AL_API\r
+ib_switch_info_get_opt_sl2vlmapping(IN const ib_switch_info_t * const p_si)\r
+{\r
+        return ((p_si->life_state & 0x01) == 0x01);\r
+}\r
+\r
+/*\r
+* PARAMETERS\r
+*      p_si\r
+*              [in] Pointer to a SwitchInfo attribute.\r
+*\r
+* RETURN VALUES\r
+*      Returns the value of the optimized SLtoVLMapping programming flag.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+*********/\r
+\r
 /****f* IBA Base: Types/ib_switch_info_is_enhanced_port0\r
 * NAME\r
 *      ib_switch_info_is_enhanced_port0\r
@@ -7719,6 +7882,20 @@ typedef struct _ib_mad_notice_attr    // Total Size calc  Accumulated
                 ib_gid_t gid;\r
          } PACK_SUFFIX ntc_bkey_259;\r
 \r
+         struct _ntc_cckey_0   // CC key violation\r
+         {\r
+               ib_net16_t slid;     // source LID from offending packet LRH\r
+               uint8_t method;      // method, from common MAD header\r
+               uint8_t resv0;\r
+               ib_net16_t attribute_id; // Attribute ID, from common MAD header\r
+               ib_net16_t resv1;\r
+               ib_net32_t attribute_modifier;// Attribute Modif, from common MAD header\r
+               ib_net32_t qp;       // 8b pad, 24b dest QP from BTH\r
+               ib_net64_t cc_key;   // CC key of the offending packet\r
+               ib_gid_t source_gid; // GID from GRH of the offending packet\r
+               uint8_t padding[14]; // Padding - ignored on read\r
+         } PACK_SUFFIX ntc_cckey_0;\r
+\r
        } data_details;\r
 \r
   ib_gid_t                     issuer_gid;    // 16          80\r
@@ -8171,7 +8348,7 @@ typedef struct _ib_inform_info_record
 {\r
        ib_gid_t                                subscriber_gid;\r
        net16_t                                 subscriber_enum;\r
-       uint16_t                                reserved[3];\r
+       uint8_t                                 reserved[6];\r
        ib_inform_info_t                inform_info;\r
        uint8_t                                 pad[4];\r
 \r
@@ -8212,6 +8389,25 @@ typedef struct _ib_perfmgt_mad {
 * ib_mad_t\r
 *********/\r
 \r
+/****s* IBA Base: Types/ib_port_rcv_data_sl\r
+* NAME\r
+*      ib_port_rcv_data_sl_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined PortRcvDataSL Attribute. (A13.6.4)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_port_rcv_data_sl {\r
+       uint8_t reserved;\r
+       uint8_t port_select;\r
+       ib_net16_t counter_select;\r
+       ib_net32_t port_rcv_data_sl[16];\r
+       uint8_t resv[124];\r
+} PACK_SUFFIX ib_port_rcv_data_sl_t;\r
+#include <complib/cl_packoff.h>\r
+\r
 /****d* IBA Base: Types/DM_SVC_NAME\r
 * NAME\r
 *      DM_SVC_NAME\r
@@ -11638,6 +11834,644 @@ typedef struct _ib_ci_op
 *      on the structure command field or the usage context.\r
 *****/\r
 \r
+/****s* IBA Base: Types/ib_cc_mad_t\r
+* NAME\r
+*      ib_cc_mad_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined Congestion Control MAD format. (A10.4.1)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#define IB_CC_LOG_DATA_SIZE 32\r
+#define IB_CC_MGT_DATA_SIZE 192\r
+#define IB_CC_MAD_HDR_SIZE (sizeof(ib_sa_mad_t) - IB_CC_LOG_DATA_SIZE \\r
+                                               - IB_CC_MGT_DATA_SIZE)\r
+\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cc_mad {\r
+       ib_mad_t header;\r
+       ib_net64_t cc_key;\r
+       uint8_t log_data[IB_CC_LOG_DATA_SIZE];\r
+       uint8_t mgt_data[IB_CC_MGT_DATA_SIZE];\r
+} PACK_SUFFIX ib_cc_mad_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*      header\r
+*              Common MAD header.\r
+*\r
+*      cc_key\r
+*              CC_Key of the Congestion Control MAD.\r
+*\r
+*      log_data\r
+*              Congestion Control log data of the CC MAD.\r
+*\r
+*      mgt_data\r
+*              Congestion Control management data of the CC MAD.\r
+*\r
+* SEE ALSO\r
+* ib_mad_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_cc_mad_get_cc_key\r
+* NAME\r
+*      ib_cc_mad_get_cc_key\r
+*\r
+* DESCRIPTION\r
+*      Gets a CC_Key of the CC MAD.\r
+*\r
+* SYNOPSIS\r
+*/\r
+static inline ib_net64_t AL_API\r
+ib_cc_mad_get_cc_key(IN const ib_cc_mad_t * const p_cc_mad)\r
+{\r
+       return p_cc_mad->cc_key;\r
+}\r
+/*\r
+* PARAMETERS\r
+*      p_cc_mad\r
+*              [in] Pointer to the CC MAD packet.\r
+*\r
+* RETURN VALUES\r
+*      CC_Key of the provided CC MAD packet.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_cc_mad_get_log_data_ptr\r
+* NAME\r
+*      ib_cc_mad_get_mgt_data_ptr\r
+*\r
+* DESCRIPTION\r
+*      Gets a pointer to the CC MAD's log data area.\r
+*\r
+* SYNOPSIS\r
+*/\r
+static inline void * AL_API\r
+ib_cc_mad_get_log_data_ptr(IN const ib_cc_mad_t * const p_cc_mad)\r
+{\r
+       return ((void *)p_cc_mad->log_data);\r
+}\r
+/*\r
+* PARAMETERS\r
+*      p_cc_mad\r
+*              [in] Pointer to the CC MAD packet.\r
+*\r
+* RETURN VALUES\r
+*      Pointer to CC MAD log data area.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****f* IBA Base: Types/ib_cc_mad_get_mgt_data_ptr\r
+* NAME\r
+*      ib_cc_mad_get_mgt_data_ptr\r
+*\r
+* DESCRIPTION\r
+*      Gets a pointer to the CC MAD's management data area.\r
+*\r
+* SYNOPSIS\r
+*/\r
+static inline void * AL_API\r
+ib_cc_mad_get_mgt_data_ptr(IN const ib_cc_mad_t * const p_cc_mad)\r
+{\r
+       return ((void *)p_cc_mad->mgt_data);\r
+}\r
+/*\r
+* PARAMETERS\r
+*      p_cc_mad\r
+*              [in] Pointer to the CC MAD packet.\r
+*\r
+* RETURN VALUES\r
+*      Pointer to CC MAD management data area.\r
+*\r
+* NOTES\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cong_info_t\r
+* NAME\r
+*      ib_cong_info_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionInfo attribute (A10.4.3.3)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cong_info {\r
+       uint8_t cong_info;\r
+       uint8_t resv;\r
+       uint8_t ctrl_table_cap;\r
+} PACK_SUFFIX ib_cong_info_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*      cong_info\r
+*              Congestion control capabilities of the node.\r
+*\r
+*      ctrl_table_cap\r
+*              Number of 64 entry blocks in the CongestionControlTable.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cong_key_info_t\r
+* NAME\r
+*      ib_cong_key_info_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionKeyInfo attribute (A10.4.3.4)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cong_key_info {\r
+       ib_net64_t cc_key;\r
+       ib_net16_t protect_bit;\r
+       ib_net16_t lease_period;\r
+       ib_net16_t violations;\r
+} PACK_SUFFIX ib_cong_key_info_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*      cc_key\r
+*              8-byte CC Key.\r
+*\r
+*      protect_bit\r
+*              Bit 0 is a CC Key Protect Bit, other 15 bits are reserved.\r
+*\r
+*      lease_period\r
+*              How long the CC Key protect bit is to remain non-zero.\r
+*\r
+*      violations\r
+*              Number of received MADs that violated CC Key.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cong_log_event_sw_t\r
+* NAME\r
+*      ib_cong_log_event_sw_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionLogEvent (SW) entry (A10.4.3.5)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cong_log_event_sw {\r
+       ib_net16_t slid;\r
+       ib_net16_t dlid;\r
+       ib_net32_t sl;\r
+       ib_net32_t time_stamp;\r
+} PACK_SUFFIX ib_cong_log_event_sw_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*      slid\r
+*              Source LID of congestion event.\r
+*\r
+*      dlid\r
+*              Destination LID of congestion event.\r
+*\r
+*      sl\r
+*              4 bits - SL of congestion event.\r
+*              rest of the bits are reserved.\r
+*\r
+*      time_stamp\r
+*              Timestamp of congestion event.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t, ib_cong_log_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cong_log_event_ca_t\r
+* NAME\r
+*      ib_cong_log_event_ca_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionLogEvent (CA) entry (A10.4.3.5)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cong_log_event_ca {\r
+       ib_net32_t local_qp_resv0;\r
+       ib_net32_t remote_qp_sl_service_type;\r
+       ib_net16_t remote_lid;\r
+       ib_net16_t resv1;\r
+       ib_net32_t time_stamp;\r
+} PACK_SUFFIX ib_cong_log_event_ca_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*      resv0_local_qp\r
+*              bits [31:8] local QP that reached CN threshold.\r
+*              bits [7:0] reserved.\r
+*\r
+*      remote_qp_sl_service_type\r
+*              bits [31:8] remote QP that is connected to local QP.\r
+*              bits [7:4] SL of the local QP.\r
+*              bits [3:0] Service Type of the local QP.\r
+*\r
+*      remote_lid\r
+*              LID of the remote port that is connected to local QP.\r
+*\r
+*      time_stamp\r
+*              Timestamp when threshold reached.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t, ib_cong_log_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cong_log_t\r
+* NAME\r
+*      ib_cong_log_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionLog attribute (A10.4.3.5)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cong_log {\r
+       uint8_t log_type;\r
+       union _log_details\r
+       {\r
+               struct _log_sw {\r
+                       uint8_t cong_flags;\r
+                       ib_net16_t event_counter;\r
+                       ib_net32_t time_stamp;\r
+                       uint8_t port_map[32];\r
+                       ib_cong_log_event_sw_t entry_list[15];\r
+               } PACK_SUFFIX log_sw;\r
+\r
+               struct _log_ca {\r
+                       uint8_t cong_flags;\r
+                       ib_net16_t event_counter;\r
+                       ib_net16_t event_map;\r
+                       ib_net16_t resv;\r
+                       ib_net32_t time_stamp;\r
+                       ib_cong_log_event_ca_t log_event[13];\r
+               } PACK_SUFFIX log_ca;\r
+\r
+       } log_details;\r
+} PACK_SUFFIX ib_cong_log_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      log_{sw,ca}.log_type\r
+*              Log type: 0x1 is for Switch, 0x2 is for CA\r
+*\r
+*      log_{sw,ca}.cong_flags\r
+*              Congestion Flags.\r
+*\r
+*      log_{sw,ca}.event_counter\r
+*              Number of events since log last sent.\r
+*\r
+*      log_{sw,ca}.time_stamp\r
+*              Timestamp when log sent.\r
+*\r
+*      log_sw.port_map\r
+*              If a bit set to 1, then the corresponding port\r
+*              has marked packets with a FECN.\r
+*              bits 0 and 255 - reserved\r
+*              bits [254..1] - ports [254..1].\r
+*\r
+*      log_sw.entry_list\r
+*              Array of 13 most recent congestion log events.\r
+*\r
+*      log_ca.event_map\r
+*              array 16 bits, one for each SL.\r
+*\r
+*      log_ca.log_event\r
+*              Array of 13 most recent congestion log events.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t, ib_cong_log_event_sw_t, ib_cong_log_event_ca_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_sw_cong_setting_t\r
+* NAME\r
+*      ib_sw_cong_setting_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined SwitchCongestionSetting attribute (A10.4.3.6)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_sw_cong_setting {\r
+       ib_net32_t control_map;\r
+       uint8_t victim_mask[32];\r
+       uint8_t credit_mask[32];\r
+       uint8_t threshold_resv;\r
+       uint8_t packet_size;\r
+       ib_net16_t cs_threshold_resv;\r
+       ib_net16_t cs_return_delay;\r
+       ib_net16_t marking_rate;\r
+} PACK_SUFFIX ib_sw_cong_setting_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      control_map\r
+*              Indicates which components of this attribute are valid\r
+*\r
+*      victim_mask\r
+*              If the bit set to 1, then the port corresponding to\r
+*              that bit shall mark packets that encounter congestion\r
+*              with a FECN, whether they are the source or victim\r
+*              of congestion. (See A10.2.1.1.1)\r
+*                bit 0: port 0 (enhanced port 0 only)\r
+*                bits [254..1]: ports [254..1]\r
+*                bit 255: reserved\r
+*\r
+*      credit_mask\r
+*              If the bit set to 1, then the port corresponding\r
+*              to that bit shall apply Credit Starvation.\r
+*                bit 0: port 0 (enhanced port 0 only)\r
+*                bits [254..1]: ports [254..1]\r
+*                bit 255: reserved\r
+*\r
+*      threshold\r
+*              bits [15..12] Indicates how agressive cong. marking should be\r
+*              bits [11..0] Reserved\r
+*\r
+*      packet_size\r
+*              Any packet less than this size won't be marked with FECN\r
+*\r
+*      cs_threshold\r
+*              bits [7..4] How agressive Credit Starvation should be\r
+*              bits [3..0] Reserved\r
+*\r
+*      cs_return_delay\r
+*              Value that controls credit return rate.\r
+*\r
+*      marking_rate\r
+*              The value that provides the mean number of packets\r
+*              between marking eligible packets with FECN.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_sw_port_cong_setting_element_t\r
+* NAME\r
+*      ib_sw_port_cong_setting_element_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined SwitchPortCongestionSettingElement (A10.4.3.7)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_sw_port_cong_setting_element {\r
+       uint8_t valid_ctrl_type_res_threshold;\r
+       uint8_t packet_size;\r
+       ib_net16_t cong_param;\r
+} PACK_SUFFIX ib_sw_port_cong_setting_element_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      valid_ctrl_type_res_threshold\r
+*              bit 7: "Valid"\r
+*                      when set to 1, indicates this switch\r
+*                      port congestion setting element is valid.\r
+*              bit 6: "Control Type"\r
+*                      Indicates which type of attribute is being set:\r
+*                      0b = Congestion Control parameters are being set.\r
+*                      1b = Credit Starvation parameters are being set.\r
+*              bits [5..4]: reserved\r
+*              bits [3..0]: "Threshold"\r
+*                      When Control Type is 0, contains the congestion\r
+*                      threshold value (Threshold) for this port.\r
+*                      When Control Type is 1, contains the credit\r
+*                      starvation threshold (CS_Threshold) value for\r
+*                      this port.\r
+*\r
+*      packet_size\r
+*              When Control Type is 0, this field contains the minimum\r
+*              size of packets that may be marked with a FECN.\r
+*              When Control Type is 1, this field is reserved.\r
+*\r
+*      cong_parm\r
+*              When Control Type is 0, this field contains the port\r
+*              marking_rate.\r
+*              When Control Type is 1, this field is reserved.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t, ib_sw_port_cong_setting_t\r
+*********/\r
+\r
+/****d* IBA Base: Types/ib_sw_port_cong_setting_block_t\r
+* NAME\r
+*      ib_sw_port_cong_setting_block_t\r
+*\r
+* DESCRIPTION\r
+*      Defines the SwitchPortCongestionSetting Block (A10.4.3.7).\r
+*\r
+* SOURCE\r
+*/\r
+typedef ib_sw_port_cong_setting_element_t ib_sw_port_cong_setting_block_t[32];\r
+/**********/\r
+\r
+/****s* IBA Base: Types/ib_sw_port_cong_setting_t\r
+* NAME\r
+*      ib_sw_port_cong_setting_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined SwitchPortCongestionSetting attribute (A10.4.3.7)\r
+*\r
+* SYNOPSIS\r
+*/\r
+\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_sw_port_cong_setting {\r
+       ib_sw_port_cong_setting_block_t block;\r
+} PACK_SUFFIX ib_sw_port_cong_setting_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      block\r
+*              SwitchPortCongestionSetting block.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t, ib_sw_port_cong_setting_element_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_ca_cong_entry_t\r
+* NAME\r
+*      ib_ca_cong_entry_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CACongestionEntry (A10.4.3.8)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_ca_cong_entry {\r
+       ib_net16_t ccti_timer;\r
+       uint8_t ccti_increase;\r
+       uint8_t trigger_threshold;\r
+       uint8_t ccti_min;\r
+       uint8_t resv0;\r
+       ib_net16_t resv1;\r
+} PACK_SUFFIX ib_ca_cong_entry_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      ccti_timer\r
+*              When the timer expires it will be reset to its specified\r
+*              value, and 1 will be decremented from the CCTI.\r
+*\r
+*      ccti_increase\r
+*              The number to be added to the table Index (CCTI)\r
+*              on the receipt of a BECN.\r
+*\r
+*      trigger_threshold\r
+*              When the CCTI is equal to this value, an event\r
+*              is logged in the CAs cyclic event log.\r
+*\r
+*      ccti_min\r
+*              The minimum value permitted for the CCTI.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_ca_cong_setting_t\r
+* NAME\r
+*      ib_ca_cong_setting_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CACongestionSetting attribute (A10.4.3.8)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_ca_cong_setting {\r
+       ib_net16_t port_control;\r
+       ib_net16_t control_map;\r
+       ib_ca_cong_entry_t entry_list[16];\r
+} PACK_SUFFIX ib_ca_cong_setting_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      port_control\r
+*              Congestion attributes for this port:\r
+*                bit0 = 0: QP based CC\r
+*                bit0 = 1: SL/Port based CC\r
+*              All other bits are reserved\r
+*\r
+*      control_map\r
+*              An array of sixteen bits, one for each SL. Each bit indicates\r
+*              whether or not the corresponding entry is to be modified.\r
+*\r
+*      entry_list\r
+*              List of 16 CACongestionEntries, one per SL.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cc_tbl_entry_t\r
+* NAME\r
+*      ib_cc_tbl_entry_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionControlTableEntry (A10.4.3.9)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cc_tbl_entry {\r
+       ib_net16_t shift_multiplier;\r
+} PACK_SUFFIX ib_cc_tbl_entry_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      shift_multiplier\r
+*              bits [15..14] - CCT Shift\r
+*                used when calculating the injection rate delay\r
+*              bits [13..0] - CCT Multiplier\r
+*                used when calculating the injection rate delay\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_cc_tbl_t\r
+* NAME\r
+*      ib_cc_tbl_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined CongestionControlTable attribute (A10.4.3.9)\r
+*\r
+* SYNOPSIS\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_cc_tbl {\r
+       ib_net16_t ccti_limit;\r
+       ib_net16_t resv;\r
+       ib_cc_tbl_entry_t entry_list[64];\r
+} PACK_SUFFIX ib_cc_tbl_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      ccti_limit\r
+*              Maximum valid CCTI for this table.\r
+*\r
+*      entry_list\r
+*              List of up to 64 CongestionControlTableEntries.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
+\r
+/****s* IBA Base: Types/ib_time_stamp_t\r
+* NAME\r
+*      ib_time_stamp_t\r
+*\r
+* DESCRIPTION\r
+*      IBA defined TimeStamp attribute (A10.4.3.10)\r
+*\r
+* SOURCE\r
+*/\r
+#include <complib/cl_packon.h>\r
+typedef struct _ib_time_stamp {\r
+       ib_net32_t value;\r
+} PACK_SUFFIX ib_time_stamp_t;\r
+#include <complib/cl_packoff.h>\r
+/*\r
+* FIELDS\r
+*\r
+*      value\r
+*              Free running clock that provides relative time info\r
+*              for a device. Time is kept in 1.024 usec units.\r
+*\r
+* SEE ALSO\r
+*      ib_cc_mad_t\r
+*********/\r
 \r
 #define IB_REQ_CM_RDMA_SID_PREFIX                      0x0000000001000000\r
 #define IB_REQ_CM_RDMA_PDATA_SIZE                      56\r