OpenMPI  0.1.1
btl_openib_xrc.h
1 /*
2  * Copyright (c) 2007-2008 Mellanox Technologies. All rights reserved.
3  * $COPYRIGHT$
4  *
5  * Additional copyrights may follow
6  *
7  * $HEADER$
8  *
9  * @file
10  */
11 
12 #ifndef MCA_BTL_OPENIB_XRC_H
13 #define MCA_BTL_OPENIB_XRC_H
14 #include "btl_openib.h"
15 #include "btl_openib_endpoint.h"
16 
17 #if HAVE_XRC
18 #define MCA_BTL_XRC_ENABLED (mca_btl_openib_component.num_xrc_qps)
19 #else
20 #define MCA_BTL_XRC_ENABLED 0
21 #endif
22 
23 typedef enum {
24  MCA_BTL_IB_ADDR_CONNECTING = 100,
25  MCA_BTL_IB_ADDR_CONNECTED,
26  MCA_BTL_IB_ADDR_CLOSED
27 } mca_btl_openib_ib_addr_state_t;
28 
29 struct ib_address_t {
30  opal_list_item_t super;
31  void *key; /* the key with size 80bit - [subnet(64) LID(16bit)] */
32  uint64_t subnet_id; /* caching subnet_id */
33  uint16_t lid; /* caching lid */
34  opal_list_t pending_ep; /* list of endpoints that use this ib_address */
35  mca_btl_openib_qp_t *qp; /* pointer to qp that will be used
36  for communication with the
37  destination */
38  uint32_t remote_xrc_rcv_qp_num; /* remote xrc qp number */
39  opal_mutex_t addr_lock; /* protection */
40  mca_btl_openib_ib_addr_state_t status; /* ib port status */
41 };
42 typedef struct ib_address_t ib_address_t;
43 
44 int mca_btl_openib_open_xrc_domain(struct mca_btl_openib_device_t *device);
45 int mca_btl_openib_close_xrc_domain(struct mca_btl_openib_device_t *device);
46 int mca_btl_openib_ib_address_add_new (uint16_t lid, uint64_t s_id,
48 
49 #endif
Definition: btl_openib.h:346
Definition: btl_openib_endpoint.h:132
uint32_t orte_jobid_t
Set the allowed range for ids in each space.
Definition: types.h:76
Definition: btl_openib_xrc.h:29
Definition: mutex_unix.h:53
Definition: opal_list.h:98
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
Definition: opal_list.h:147