1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 #ifndef PMIX_MCA_PIF_PIF_H
  15 #define PMIX_MCA_PIF_PIF_H
  16 
  17 #include "pmix_config.h"
  18 
  19 #include <string.h>
  20 #ifdef HAVE_UNISTD_H
  21 #include <unistd.h>
  22 #endif
  23 #include <errno.h>
  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_SYS_SOCKIO_H
  31 #include <sys/sockio.h>
  32 #endif
  33 #ifdef HAVE_SYS_IOCTL_H
  34 #include <sys/ioctl.h>
  35 #endif
  36 #ifdef HAVE_NETINET_IN_H
  37 #include <netinet/in.h>
  38 #endif
  39 #ifdef HAVE_ARPA_INET_H
  40 #include <arpa/inet.h>
  41 #endif
  42 #ifdef HAVE_NET_IF_H
  43 #include <net/if.h>
  44 #endif
  45 #ifdef HAVE_NETDB_H
  46 #include <netdb.h>
  47 #endif
  48 #ifdef HAVE_IFADDRS_H
  49 #include <ifaddrs.h>
  50 #endif
  51 
  52 #include "src/util/pif.h"
  53 #include "src/mca/mca.h"
  54 #include "src/mca/base/base.h"
  55 
  56 BEGIN_C_DECLS
  57 
  58 
  59 
  60 
  61 
  62 
  63 
  64 
  65 
  66 #if !defined(INADDR_NONE)
  67 #define INADDR_NONE -1
  68 #endif
  69 
  70 #define DEFAULT_NUMBER_INTERFACES 10
  71 #define MAX_PIFCONF_SIZE 10 * 1024 * 1024
  72 
  73 
  74 typedef struct pmix_pif_t {
  75     pmix_list_item_t     super;
  76     char                if_name[IF_NAMESIZE+1];
  77     int                 if_index;
  78     uint16_t            if_kernel_index;
  79     uint16_t            af_family;
  80     int                 if_flags;
  81     int                 if_speed;
  82     struct sockaddr_storage  if_addr;
  83     uint32_t            if_mask;
  84     uint32_t            if_bandwidth;
  85     uint8_t             if_mac[6];
  86     int                 ifmtu; 
  87 
  88 } pmix_pif_t;
  89 PMIX_CLASS_DECLARATION(pmix_pif_t);
  90 
  91 
  92 
  93 extern pmix_list_t pmix_if_list;
  94 
  95 
  96 extern bool pmix_if_do_not_resolve;
  97 extern bool pmix_if_retain_loopback;
  98 
  99 
 100 
 101 
 102 struct pmix_pif_base_component_2_0_0_t {
 103     
 104     pmix_mca_base_component_t base;
 105     
 106     pmix_mca_base_component_data_t data;
 107 };
 108 
 109 
 110 
 111 typedef struct pmix_pif_base_component_2_0_0_t pmix_pif_base_component_t;
 112 
 113 
 114 
 115 
 116 #define PMIX_PIF_BASE_VERSION_2_0_0 \
 117     PMIX_MCA_BASE_VERSION_1_0_0("pif", 2, 0, 0)
 118 
 119 END_C_DECLS
 120 
 121 #endif