OpenMPI 0.1.1

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

- File List
- Globals

btl_tcp_addr.h
Go to the documentation of this file.
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-2007 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 * @file
20 */
21 #ifndef MCA_BTL_TCP_ADDR_H
22 #define MCA_BTL_TCP_ADDR_H
23
24 #ifdef HAVE_SYS_TYPES_H
25 #include <sys/types.h>
26 #endif
27 #ifdef HAVE_SYS_SOCKET_H
28 #include <sys/socket.h>
29 #endif
30 #ifdef HAVE_NETINET_IN_H
31 #include <netinet/in.h>
32 #endif
33
34
35 /**
36 * Structure used to publish TCP connection information to peers.
37 */
38
39 struct mca_btl_tcp_addr_t {
40 /* the following information is exchanged between different
41 machines (read: byte order), so use network byte order
42 for everything and don't add padding
43 */
44 #if OPAL_WANT_IPV6
45 struct in6_addr addr_inet; /**< IPv4/IPv6 listen address > */
46 #else
47 /* Bug, FIXME: needs testing */
48 struct my_in6_addr {
49 union {
50 uint32_t u6_addr32[4];
51 struct _my_in6_addr {
52 struct in_addr _addr_inet;
53 uint32_t _pad[3];
54 } _addr__inet;
55 } _union_inet;
56 } addr_inet;
57 #endif
58 in_port_t addr_port; /**< listen port */
59 uint16_t addr_ifkindex; /**< remote interface index assigned with
60 this address */
61 unsigned short addr_inuse; /**< local meaning only */
62 uint8_t addr_family; /**< AF_INET or AF_INET6 */
63 };
64 typedef struct mca_btl_tcp_addr_t mca_btl_tcp_addr_t;
65
66 #define MCA_BTL_TCP_AF_INET 0
67 #if OPAL_WANT_IPV6
68 # define MCA_BTL_TCP_AF_INET6 1
69 #endif
70
71 #endif
72
mca_btl_tcp_addr_t::addr_port
in_port_t addr_port
listen port
Definition: btl_tcp_addr.h:58
mca_btl_tcp_addr_t::addr_ifkindex
uint16_t addr_ifkindex
remote interface index assigned with this address
Definition: btl_tcp_addr.h:59
mca_btl_tcp_addr_t::addr_inuse
unsigned short addr_inuse
local meaning only
Definition: btl_tcp_addr.h:61
mca_btl_tcp_addr_t
Structure used to publish TCP connection information to peers.
Definition: btl_tcp_addr.h:39
mca_btl_tcp_addr_t::my_in6_addr
Definition: btl_tcp_addr.h:48
in6_addr
Definition: ipv6-internal.h:51
mca_btl_tcp_addr_t::addr_family
uint8_t addr_family
AF_INET or AF_INET6.
Definition: btl_tcp_addr.h:62