]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
mcm: add get/set prov attributes op, str print for ib async events
authorArlin Davis <arlin.r.davis@intel.com>
Thu, 12 Sep 2013 21:01:05 +0000 (14:01 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Thu, 12 Sep 2013 21:01:05 +0000 (14:01 -0700)
Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
dat/include/dat2/dat_mic_extensions.h

index 975e221faa12eeaf9ae84b87817716ce530c99a8..71ef976571561213bef68a5f2a0c98703667661a 100755 (executable)
@@ -157,6 +157,31 @@ static inline char * mcm_state_str(IN int st)
         return ((st < 0 || st > 16) ? "Invalid CM state?" : state[st]);
 }
 
+static inline char * mcm_ib_async_str(IN int st)
+{
+       static char *state[] = {
+               "IBV_EVENT_CQ_ERR",
+               "IBV_EVENT_QP_FATAL",
+               "IBV_EVENT_QP_REQ_ERR",
+               "IBV_EVENT_QP_ACCESS_ERR",
+               "IBV_EVENT_COMM_EST",
+               "IBV_EVENT_SQ_DRAINED",
+               "IBV_EVENT_PATH_MIG",
+               "IBV_EVENT_PATH_MIG_ERR",
+               "IBV_EVENT_DEVICE_FATAL",
+               "IBV_EVENT_PORT_ACTIVE",
+               "IBV_EVENT_PORT_ERR",
+               "IBV_EVENT_LID_CHANGE",
+               "IBV_EVENT_PKEY_CHANGE",
+               "IBV_EVENT_SM_CHANGE",
+               "IBV_EVENT_SRQ_ERR",
+               "IBV_EVENT_SRQ_LIMIT_REACHED",
+               "IBV_EVENT_QP_LAST_WQE_REACHED",
+               "IBV_EVENT_CLIENT_REREGISTER",
+        };
+        return ((st < 0 || st > 17) ? "Invalid IB async event?" : state[st]);
+}
+
 /* MCM address, 28 bytes */
 typedef struct dat_mcm_addr
 {
@@ -202,8 +227,8 @@ typedef struct dat_mcm_msg
 #define DAT_MIX_VER            4
 #define DAT_MIX_MSG_MAX        256
 #define DAT_MIX_INLINE_MAX     256
-#define DAT_MIX_RDMA_MAX       (8*1024*1024)
-#define DAT_MIX_WR_MAX         500
+#define DAT_MIX_RDMA_MAX       (8*1024*1024)
+#define DAT_MIX_WR_MAX         500
 
 typedef enum dat_mix_ops
 {
@@ -232,6 +257,7 @@ typedef enum dat_mix_ops
        MIX_DTO_EVENT,
        MIX_SEND,
        MIX_WRITE,
+       MIX_PROV_ATTR,
 
 } dat_mix_ops_t;
 
@@ -265,8 +291,9 @@ static inline char * mix_op_str(IN int op)
                "DTO_EVENT",
                "POST_SEND",
                "POST_WRITE",
+               "PROV_ATTR",
        };
-       return ((op < 2 || op > 25) ? "Invalid OP?" : mix_ops[op]);
+       return ((op < 2 || op > 26) ? "Invalid OP?" : mix_ops[op]);
 }
 
 typedef enum dat_mix_op_flags
@@ -276,6 +303,7 @@ typedef enum dat_mix_op_flags
     MIX_OP_SYNC   = 0x04,
     MIX_OP_ASYNC  = 0x08,
     MIX_OP_INLINE = 0x10,
+    MIX_OP_SET    = 0x20,
 
 } dat_mix_op_flags_t;
 
@@ -313,7 +341,7 @@ typedef struct dat_mix_hdr
 
 } __attribute__((packed)) dat_mix_hdr_t;
 
-/**** MIX device open  *****/
+/**** MIX device attributes, 16 bytes  *****/
 typedef struct dat_mix_dev_attr
 {
        uint8_t         ack_timer;
@@ -333,6 +361,29 @@ typedef struct dat_mix_dev_attr
 
 }  __attribute__((packed)) dat_mix_dev_attr_t;
 
+/**** MIX attributes, 120 bytes *****/
+typedef struct dat_mix_prov_attr
+{
+       uint32_t                max_msg_sz;
+       uint32_t                max_tx_dtos;
+       uint32_t                max_rx_dtos;
+       uint32_t                max_tx_pool;
+       uint32_t                max_rx_pool;
+       uint32_t                tx_segment_sz;
+       uint32_t                rx_segment_sz;
+       uint32_t                cm_retry;
+       uint32_t                cm_disc_retry;
+       uint32_t                cm_rep_time_ms;
+       uint32_t                cm_rtu_time_ms;
+       uint32_t                cm_drep_time_ms;
+       uint32_t                log_level;
+       uint32_t                counters;
+       dat_mix_dev_attr_t      dev_attr;
+       uint8_t                 gid_idx;
+       uint8_t                 resv[47];
+
+}  __attribute__((packed)) dat_mix_prov_attr_t;
+
 /***** MIX open, device address info returned */
 typedef struct dat_mix_open
 {
@@ -344,6 +395,14 @@ typedef struct dat_mix_open
 
 }  __attribute__((packed)) dat_mix_open_t;
 
+/***** MIX get,set attributes, 128 bytes */
+typedef struct dat_mix_attr
+{
+       dat_mix_hdr_t           hdr;
+       dat_mix_prov_attr_t     attr;
+
+}  __attribute__((packed)) dat_mix_attr_t;
+
 /***** MIX memory registration *****/
 typedef struct dat_mix_mr
 {