23 #ifndef _MCA_OOB_TCP_PEER_H_
24 #define _MCA_OOB_TCP_PEER_H_
26 #include "orte_config.h"
29 #ifdef HAVE_NETINET_IN_H
30 #include <netinet/in.h>
36 #include "opal/mca/event/event.h"
49 MCA_OOB_TCP_CONNECTING,
50 MCA_OOB_TCP_CONNECT_ACK,
51 MCA_OOB_TCP_CONNECTED,
83 #define MCA_OOB_TCP_PEER_ALLOC(peer, rc) \
85 opal_free_list_item_t* item; \
86 OPAL_FREE_LIST_GET(&mca_oob_tcp_component.tcp_peer_free, item, rc); \
87 peer = (mca_oob_tcp_peer_t*)item; \
93 #define MCA_OOB_TCP_PEER_RETURN(peer) \
95 mca_oob_tcp_peer_shutdown(peer); \
96 opal_hash_table_remove_value_uint64(&mca_oob_tcp_component.tcp_peers, orte_util_hash_name(&peer->peer_name)); \
97 OPAL_FREE_LIST_RETURN(&mca_oob_tcp_component.tcp_peer_free, \
int peer_sd
socket descriptor of the connection
Definition: oob_tcp_peer.h:65
int peer_retries
number of times connection attempt has failed
Definition: oob_tcp_peer.h:63
mca_oob_tcp_peer_t * mca_oob_tcp_peer_lookup(const orte_process_name_t *peer_name)
Lookup a peer in the cache - if it doesn't exists create one and cache it.
Definition: oob_tcp_peer.c:223
opal_free_list_item_t super
allow this to be on a list
Definition: oob_tcp_peer.h:60
uint16_t peer_current_af
currently connecting af
Definition: oob_tcp_peer.h:66
void mca_oob_tcp_peer_close(mca_oob_tcp_peer_t *peer)
Cleanup/close the connection to the peer.
Definition: oob_tcp_peer.c:590
Structure to represent a single event.
Definition: event_struct.h:87
Definition: mutex_unix.h:53
Address info published to registry.
Definition: oob_tcp_addr.h:56
opal_event_t peer_timer_event
timer for retrying connection failures
Definition: oob_tcp_peer.h:69
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
opal_list_t peer_send_queue
list of messages to send
Definition: oob_tcp_peer.h:71
int mca_oob_tcp_peer_send(mca_oob_tcp_peer_t *peer, mca_oob_tcp_msg_t *msg)
Start sending a message to the specified peer.
Definition: oob_tcp_peer.c:162
describes each message being progressed.
Definition: oob_tcp_msg.h:47
Definition: opal_free_list.h:47
mca_oob_tcp_state_t
the state of the connection
Definition: oob_tcp_peer.h:46
bool mca_oob_tcp_peer_accept(mca_oob_tcp_peer_t *peer, int sd)
Connection request for this peer.
Definition: oob_tcp_peer.c:1088
opal_event_t peer_recv_event
registration with event thread for recv events
Definition: oob_tcp_peer.h:68
contains the data structure we will use to describe a message
Contains header used by tcp oob.
opal_mutex_t peer_lock
protect critical data structures
Definition: oob_tcp_peer.h:70
mca_oob_tcp_addr_t * peer_addr
the addresses of the peer process
Definition: oob_tcp_peer.h:64
mca_oob_tcp_state_t peer_state
the state of the connection
Definition: oob_tcp_peer.h:62
orte_process_name_t peer_name
the name of the peer
Definition: oob_tcp_peer.h:61
This structure describes a peer.
Definition: oob_tcp_peer.h:59
Definition: opal_list.h:147
mca_oob_tcp_msg_t * peer_send_msg
current send in progress
Definition: oob_tcp_peer.h:72
void mca_oob_tcp_peer_resolved(mca_oob_tcp_peer_t *peer, mca_oob_tcp_addr_t *addr)
The peers address has been resolved.
Definition: oob_tcp_peer.c:1133
mca_oob_tcp_msg_t * peer_recv_msg
current recv in progress
Definition: oob_tcp_peer.h:73
Mutual exclusion functions.
opal_event_t peer_send_event
registration with event thread for send events
Definition: oob_tcp_peer.h:67
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236