OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

btl_mx_endpoint.h
1 /*
2 * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2008 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * $COPYRIGHT$
13 *
14 * Additional copyrights may follow
15 *
16 * $HEADER$
17 */
18
19 #ifndef MCA_BTL_MX_ENDPOINT_H
20 #define MCA_BTL_MX_ENDPOINT_H
21
22 #include "opal/class/opal_list.h"
23 #include "opal/mca/event/event.h"
24 #include "btl_mx_frag.h"
25 #include "btl_mx.h"
26
27 #include <myriexpress.h>
28
29 BEGIN_C_DECLS
30
31 #define MCA_BTL_MX_NOT_CONNECTED 0x0000
32 #define MCA_BTL_MX_NOT_REACHEABLE 0x0001
33 #define MCA_BTL_MX_CONNECTION_PENDING 0x0002
34 #define MCA_BTL_MX_CONNECTED 0x0004
35
36 /**
37 * Structure used to publish MX information to peers
38 */
39 struct mca_btl_mx_addr_t {
40 uint64_t nic_id;
41 uint32_t endpoint_id;
42 uint32_t unique_network_id; /* Unique identifier for each MX network */
43 };
44 typedef struct mca_btl_mx_addr_t mca_btl_mx_addr_t;
45
46 #define BTL_MX_ADDR_HTON(h) \
47 do { \
48 h.nic_id = hton64(h.nic_id); \
49 h.endpoint_id = htonl(h.endpoint_id); \
50 h.unique_network_id = htonl(h.unique_network_id); \
51 } while (0)
52
53 #define BTL_MX_ADDR_NTOH(h) \
54 do { \
55 h.nic_id = ntoh64(h.nic_id); \
56 h.endpoint_id = ntohl(h.endpoint_id); \
57 h.unique_network_id = ntohl(h.unique_network_id); \
58 } while (0)
59
60
61 /**
62 * An abstraction that represents a connection to a endpoint process.
63 * An instance of mca_btl_base_endpoint_t is associated w/ each process
64 * and BTL pair at startup. However, connections to the endpoint
65 * are established dynamically on an as-needed basis:
66 */
67
68 struct mca_btl_base_endpoint_t {
69 opal_list_item_t super;
70
71 struct mca_btl_mx_module_t* endpoint_btl;
72 /**< BTL instance that created this connection */
73
74 struct mca_btl_mx_proc_t* endpoint_proc;
75 /**< proc structure corresponding to endpoint */
76
77 struct mca_btl_mx_addr_t* mx_peer;
78 /** the address as reported by the peer */
79
80 mx_endpoint_addr_t mx_peer_addr;
81 /** the remote MX endpoint address */
82
83 int status; /**< status of the endpoint */
84 };
85
86 typedef struct mca_btl_base_endpoint_t mca_btl_base_endpoint_t;
87 typedef mca_btl_base_endpoint_t mca_btl_mx_endpoint_t;
88
89 OBJ_CLASS_DECLARATION(mca_btl_mx_endpoint_t);
90
91 END_C_DECLS
92 #endif
btl_mx.h
mca_btl_base_endpoint_t::mx_peer_addr
mx_endpoint_addr_t mx_peer_addr
the address as reported by the peer
Definition: btl_mx_endpoint.h:80
opal_list.h
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
myriexpress.h
Macros to help interaction between hwloc and Myrinet Express.
mca_btl_mx_addr_t
Structure used to publish MX information to peers.
Definition: btl_mx_endpoint.h:39
opal_list_item_t
Definition: opal_list.h:98
mca_btl_base_endpoint_t::status
int status
the remote MX endpoint address
Definition: btl_mx_endpoint.h:83
mca_btl_base_endpoint_t
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
mca_btl_mx_module_t
BTL Module Interface.
Definition: btl_mx.h:115
mca_btl_base_endpoint_t::endpoint_proc
struct mca_btl_mx_proc_t * endpoint_proc
proc structure corresponding to endpoint
Definition: btl_mx_endpoint.h:74
mca_btl_base_endpoint_t::endpoint_btl
struct mca_btl_mx_module_t * endpoint_btl
BTL instance that created this connection.
Definition: btl_mx_endpoint.h:71
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236
mca_btl_mx_proc_t
Represents the state of a remote process and the set of addresses that it exports.
Definition: btl_mx_proc.h:34