NULL, 0, cm_ptr->ep);
}
}
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_DREQ_TX);
/* release from workq */
dapli_cm_free(cm_ptr);
dapli_cm_free(cm_ptr);
return;
}
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_ERR_TIMEOUT);
goto bail;
}
htonll(*(uint64_t*)&cm_ptr->msg.saddr.ib.gid[0]),
(unsigned long long)
htonll(*(uint64_t*)&cm_ptr->msg.saddr.ib.gid[8]));
+
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_REQ_TX);
return;
bail:
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_ERR);
+
/* mark CM object for cleanup */
dapli_cm_free(cm_ptr);
dapl_evd_connection_callback(NULL, IB_CME_DESTINATION_REJECT, NULL, 0, ep_ptr);
dapli_cm_queue(cm_ptr);
return DAT_SUCCESS;
bail:
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_ERR);
+
dapl_log(DAPL_DBG_TYPE_ERR,
" connect ERROR: -> %s r_qual %d\n",
inet_ntoa(((struct sockaddr_in *)r_addr)->sin_addr),
}
goto bail;
}
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_REP_RX);
/* keep the QP, address info in network order */
/* post the event with private data */
event = IB_CME_CONNECTED;
dapl_dbg_log(DAPL_DBG_TYPE_EP, " ACTIVE: connected!\n");
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_RTU_TX);
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_ACTIVE_EST);
#ifdef DAT_EXTENSIONS
ud_bail:
cm_ptr->ah,
ntohs(cm_ptr->msg.saddr.ib.lid),
ntohl(cm_ptr->msg.saddr.ib.qpn));
+
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)),
+ DCNT_IA_CM_AH_RESOLVED);
} else
event = DAT_IB_UD_CONNECTION_ERROR_EVENT;
" setup listen: port %d cr %p s_fd %d\n",
serviceID + 1000, cm_ptr, cm_ptr->socket);
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_LISTEN);
+
return dat_status;
bail:
/* Never queued, destroy here */
acm_ptr->state = DCM_ACCEPTING_DATA;
dapl_os_unlock(&acm_ptr->lock);
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&acm_ptr->hca->ia_list_head)), DCNT_IA_CM_REQ_RX);
+
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" ACCEPT: DST %s %x lid=0x%x, qpn=0x%x, psz=%d\n",
inet_ntoa(((struct sockaddr_in *)
(DAT_COUNT) exp,
(DAT_PVOID *) acm_ptr->msg.p_data,
(DAT_PVOID *) &xevent);
+
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&acm_ptr->hca->ia_list_head)),
+ DCNT_IA_CM_AH_REQ_RX);
} else
#endif
/* trigger CR event and return SUCCESS */
dapl_dbg_log(DAPL_DBG_TYPE_EP, " PASSIVE: accepted!\n");
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_REP_TX);
+
return DAT_SUCCESS;
bail:
/* schedule cleanup from workq */
goto bail;
}
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_RTU_RX);
+
/* save state and reference to EP, queue for disc event */
dapl_os_lock(&cm_ptr->lock);
cm_ptr->state = DCM_CONNECTED;
(DAT_PVOID *) cm_ptr->msg.p_data,
(DAT_PVOID *) &xevent);
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_AH_RESOLVED);
+
/* cleanup and release from local list, still on EP list */
dapli_cm_free(cm_ptr);
writev(cm_ptr->socket, iov, 1);
}
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)),
+ reason == IB_CM_REJ_REASON_CONSUMER_REJ ?
+ DCNT_IA_CM_USER_REJ_TX : DCNT_IA_CM_ERR_REJ_TX);
+
/* release and cleanup CM object */
dapli_cm_free(cm_ptr);
return DAT_SUCCESS;
break;
case DCM_CONNECTED:
dapl_os_unlock(&cr->lock);
+ DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cr->hca->ia_list_head)),
+ DCNT_IA_CM_DREQ_RX);
dapli_socket_disconnect(cr);
break;
case DCM_DISCONNECTED:
dapl_os_unlock(&ia_ptr->hca_ptr->ib_trans.lock);
}
#endif
+