23 #ifndef MCA_BTL_UDAPL_ENDPOINT_H
24 #define MCA_BTL_UDAPL_ENDPOINT_H
27 #include "opal/mca/event/event.h"
28 #include "ompi/mca/btl/base/btl_base_error.h"
29 #include "btl_udapl_frag.h"
31 #include "btl_udapl_eager_rdma.h"
36 #define BTL_UDAPL_TOKEN_AVAIL(E, C, T) \
39 if ( (E)->endpoint_lwqe_tokens[(C)] > 0 && \
40 ((E)->endpoint_sr_tokens[(C)] + \
41 (((C) == BTL_UDAPL_EAGER_CONNECTION)?(E)->endpoint_eager_rdma_remote.tokens:0)) \
63 MCA_BTL_UDAPL_CONN_EAGER,
64 MCA_BTL_UDAPL_CONN_MAX,
65 MCA_BTL_UDAPL_CONNECTED,
68 } mca_btl_udapl_endpoint_state_t;
74 BTL_UDAPL_EAGER_CONNECTION,
75 BTL_UDAPL_MAX_CONNECTION,
76 BTL_UDAPL_NUM_CONNECTION
77 } mca_btl_udapl_endpoint_conn_t;
113 int32_t endpoint_eager_sends;
139 DAT_EP_HANDLE endpoint_eager;
168 void mca_btl_udapl_endpoint_post_oob_recv(
void);
177 DAT_EP_HANDLE endpoint);
188 DAT_EP_PARAM* ep_param);
194 DAT_EP_HANDLE* udapl_endpoint);
200 const int connection);
205 int mca_btl_udapl_endpoint_pd_established_conn(
207 DAT_EP_HANDLE established_ep);
mca_btl_udapl_addr_t endpoint_addr
remote address on the other side of this endpoint
Definition: btl_udapl_endpoint.h:136
int32_t endpoint_eager_rdma_index
index into array of endpoints with RDMA buffers
Definition: btl_udapl_endpoint.h:143
DAT_EP_HANDLE endpoint_max
uDAPL endpoint handle
Definition: btl_udapl_endpoint.h:140
int32_t endpoint_connection_seq
sequence number of sendrecv message for the connection est
Definition: btl_udapl_endpoint.h:127
Definition: btl_udapl_eager_rdma.h:36
Definition: mutex_unix.h:53
Structure used to publish uDAPL id information to peers.
Definition: btl_udapl_endpoint.h:50
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
mca_btl_udapl_eager_rdma_local_t endpoint_eager_rdma_local
info about local RDMA buffer
Definition: btl_udapl_endpoint.h:145
uDAPL fragment derived type.
Definition: btl_udapl_frag.h:85
Definition: opal_list.h:98
opal_mutex_t endpoint_lock
lock for concurrent access to endpoint state
Definition: btl_openib_endpoint.h:198
BTL Module Interface.
Definition: btl_udapl.h:106
mca_btl_udapl_endpoint_state_t endpoint_state
current state of the endpoint connection
Definition: btl_udapl_endpoint.h:106
Represents the state of a remote process and the set of addresses that it exports.
Definition: btl_udapl_proc.h:36
opal_list_t endpoint_max_frags
pending send frags on this endpoint
Definition: btl_udapl_endpoint.h:110
mca_btl_udapl_eager_rdma_remote_t endpoint_eager_rdma_remote
info about remote RDMA buffer
Definition: btl_udapl_endpoint.h:147
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
Definition: btl_udapl_endpoint.h:82
Definition: opal_list.h:147
int32_t endpoint_max_sends
number of sends that may be posted
Definition: btl_udapl_endpoint.h:114
Definition: btl_udapl_eager_rdma.h:23
struct mca_btl_udapl_proc_t * endpoint_proc
proc structure corresponding to endpoint
Definition: btl_udapl_endpoint.h:103
int32_t endpoint_connections_completed
count of completed connections for priv data connection est.
Definition: btl_udapl_endpoint.h:130
int32_t endpoint_lwqe_tokens[BTL_UDAPL_NUM_CONNECTION]
number of local work queue credits available (combination of posted sends and rdma writes allowed per...
Definition: btl_udapl_endpoint.h:123
int32_t endpoint_sr_credits[BTL_UDAPL_NUM_CONNECTION]
number of recvs that are now available
Definition: btl_udapl_endpoint.h:120
struct mca_btl_udapl_module_t * endpoint_btl
BTL instance that created this connection.
Definition: btl_udapl_endpoint.h:100
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236
int32_t endpoint_sr_tokens[BTL_UDAPL_NUM_CONNECTION]
number of sends that may be posted
Definition: btl_udapl_endpoint.h:117