OpenMPI  0.1.1
btl_openib_ip.h
1 /*
2  * Copyright (c) 2008 Chelsio, Inc. All rights reserved.
3  * Copyright (c) 2008-2010 Cisco Systems, Inc. All rights reserved.
4  *
5  * Additional copyrights may follow
6  *
7  * $HEADER$
8  *
9  * @file
10  */
11 
12 #ifndef MCA_BTL_OPENIB_IP_H
13 #define MCA_BTL_OPENIB_IP_H
14 
15 #include "ompi_config.h"
16 
17 BEGIN_C_DECLS
18 
19 /**
20  * Get an IP equivalent of a subnet ID.
21  *
22  * @param ib_dev (IN) IBV device
23  * @return Value of the IPv4 Address bitwise-and'ed with the Netmask
24  */
25 extern uint64_t mca_btl_openib_get_ip_subnet_id(struct ibv_device *ib_dev,
26  uint8_t port);
27 
28 /**
29  * Get the IPv4 address of the specified HCA/RNIC device and physical port.
30  *
31  * @param verbs (IN) cm_id verbs of the IBV device
32  * @param port (IN) physical port of the IBV device
33  * @return IPv4 Address
34  */
35 extern uint32_t mca_btl_openib_rdma_get_ipv4addr(struct ibv_context *verbs,
36  uint8_t port);
37 
38 /**
39  * Create a list of all available IBV devices and each device's
40  * relevant information. This is necessary for
41  * mca_btl_openib_rdma_get_ipv4addr to work.
42  *
43  * @return OMPI_SUCCESS or failure status
44  */
45 extern int mca_btl_openib_build_rdma_addr_list(void);
46 
47 /**
48  * Free the list of all available IBV devices created by
49  * mca_btl_openib_build_rdma_addr_list.
50  */
51 extern void mca_btl_openib_free_rdma_addr_list(void);
52 
53 END_C_DECLS
54 
55 #endif