root/orte/mca/rml/rml_types.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2011 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 (c) 2007-2012 Los Alamos National Security, LLC.  All rights
  13  *                         reserved.
  14  * Copyright (c) 2009-2016 Cisco Systems, Inc.  All rights reserved.
  15  * Copyright (c) 2014-2019 Intel, Inc.  All rights reserved.
  16  * Copyright (c) 2017      Research Organization for Information Science
  17  *                         and Technology (RIST). All rights reserved.
  18  * $COPYRIGHT$
  19  *
  20  * Additional copyrights may follow
  21  *
  22  * $HEADER$
  23  */
  24 /** @file:
  25  *
  26  * Contains the typedefs for the use of the rml
  27  */
  28 
  29 #ifndef MCA_RML_TYPES_H_
  30 #define MCA_RML_TYPES_H_
  31 
  32 #include "orte_config.h"
  33 #include "orte/constants.h"
  34 #include "orte/types.h"
  35 
  36 #include <limits.h>
  37 #ifdef HAVE_SYS_UIO_H
  38 /* for struct iovec */
  39 #include <sys/uio.h>
  40 #endif
  41 #ifdef HAVE_NET_UIO_H
  42 #include <net/uio.h>
  43 #endif
  44 
  45 #include "opal/dss/dss_types.h"
  46 #include "opal/class/opal_list.h"
  47 
  48 BEGIN_C_DECLS
  49 
  50 /* Convenience def for readability */
  51 #define ORTE_RML_PERSISTENT      true
  52 #define ORTE_RML_NON_PERSISTENT  false
  53 
  54 
  55 /**
  56  * Constant tag values for well-known services
  57  */
  58 
  59 #define ORTE_RML_TAG_T    OPAL_UINT32
  60 
  61 #define ORTE_RML_TAG_INVALID                 0
  62 #define ORTE_RML_TAG_DAEMON                  1
  63 #define ORTE_RML_TAG_IOF_HNP                 2
  64 #define ORTE_RML_TAG_IOF_PROXY               3
  65 #define ORTE_RML_TAG_XCAST_BARRIER           4
  66 #define ORTE_RML_TAG_PLM                     5
  67 #define ORTE_RML_TAG_LAUNCH_RESP             6
  68 #define ORTE_RML_TAG_ERRMGR                  7
  69 #define ORTE_RML_TAG_WIREUP                  8
  70 #define ORTE_RML_TAG_RML_INFO_UPDATE         9
  71 #define ORTE_RML_TAG_ORTED_CALLBACK         10
  72 #define ORTE_RML_TAG_ROLLUP                 11
  73 #define ORTE_RML_TAG_REPORT_REMOTE_LAUNCH   12
  74 
  75 #define ORTE_RML_TAG_CKPT                   13
  76 
  77 #define ORTE_RML_TAG_RML_ROUTE              14
  78 #define ORTE_RML_TAG_XCAST                  15
  79 
  80 #define ORTE_RML_TAG_UPDATE_ROUTE_ACK       19
  81 #define ORTE_RML_TAG_SYNC                   20
  82 
  83 /* For FileM Base */
  84 #define ORTE_RML_TAG_FILEM_BASE             21
  85 #define ORTE_RML_TAG_FILEM_BASE_RESP        22
  86 
  87 /* For FileM RSH Component */
  88 #define ORTE_RML_TAG_FILEM_RSH              23
  89 
  90 /* For SnapC Framework */
  91 #define ORTE_RML_TAG_SNAPC                  24
  92 #define ORTE_RML_TAG_SNAPC_FULL             25
  93 
  94 /* For tools */
  95 #define ORTE_RML_TAG_TOOL                   26
  96 
  97 /* support data store/lookup */
  98 #define ORTE_RML_TAG_DATA_SERVER            27
  99 #define ORTE_RML_TAG_DATA_CLIENT            28
 100 
 101 /* timing related */
 102 #define ORTE_RML_TAG_COLLECTIVE_TIMER       29
 103 
 104 /* collectives */
 105 #define ORTE_RML_TAG_COLLECTIVE             30
 106 #define ORTE_RML_TAG_COLL_RELEASE           31
 107 #define ORTE_RML_TAG_DAEMON_COLL            32
 108 #define ORTE_RML_TAG_ALLGATHER_DIRECT       33
 109 #define ORTE_RML_TAG_ALLGATHER_BRUCKS       34
 110 #define ORTE_RML_TAG_ALLGATHER_RCD          35
 111 
 112 /* show help */
 113 #define ORTE_RML_TAG_SHOW_HELP              36
 114 
 115 /* debugger release */
 116 #define ORTE_RML_TAG_DEBUGGER_RELEASE       37
 117 
 118 /* bootstrap */
 119 #define ORTE_RML_TAG_BOOTSTRAP              38
 120 
 121 /* report a missed msg */
 122 #define ORTE_RML_TAG_MISSED_MSG             39
 123 
 124 /* tag for receiving ack of abort msg */
 125 #define ORTE_RML_TAG_ABORT                  40
 126 
 127 /* tag for receiving heartbeats */
 128 #define ORTE_RML_TAG_HEARTBEAT              41
 129 
 130 /* Process Migration Tool Tag */
 131 #define ORTE_RML_TAG_MIGRATE                42
 132 
 133 /* For SStore Framework */
 134 #define ORTE_RML_TAG_SSTORE                 43
 135 #define ORTE_RML_TAG_SSTORE_INTERNAL        44
 136 
 137 #define ORTE_RML_TAG_SUBSCRIBE              45
 138 
 139 
 140 /* Notify of failed processes */
 141 #define ORTE_RML_TAG_FAILURE_NOTICE         46
 142 
 143 /* distributed file system */
 144 #define ORTE_RML_TAG_DFS_CMD                47
 145 #define ORTE_RML_TAG_DFS_DATA               48
 146 
 147 /* sensor data */
 148 #define ORTE_RML_TAG_SENSOR_DATA            49
 149 
 150 /* direct modex support */
 151 #define ORTE_RML_TAG_DIRECT_MODEX           50
 152 #define ORTE_RML_TAG_DIRECT_MODEX_RESP      51
 153 
 154 /* notifier support */
 155 #define ORTE_RML_TAG_NOTIFIER_HNP           52
 156 #define ORTE_RML_TAG_NOTIFY_COMPLETE        53
 157 
 158 /*** QOS specific  RML TAGS ***/
 159 #define ORTE_RML_TAG_OPEN_CHANNEL_REQ       54
 160 #define ORTE_RML_TAG_OPEN_CHANNEL_RESP      55
 161 #define ORTE_RML_TAG_MSG_ACK                56
 162 #define ORTE_RML_TAG_CLOSE_CHANNEL_REQ      57
 163 #define ORTE_RML_TAG_CLOSE_CHANNEL_ACCEPT   58
 164 
 165 /* error notifications */
 166 #define ORTE_RML_TAG_NOTIFICATION           59
 167 
 168 /* stacktrace for debug */
 169 #define ORTE_RML_TAG_STACK_TRACE            60
 170 
 171 /* memory profile */
 172 #define ORTE_RML_TAG_MEMPROFILE             61
 173 
 174 /* topology report */
 175 #define ORTE_RML_TAG_TOPOLOGY_REPORT        62
 176 
 177 /* warmup connection - simply establishes the connection */
 178 #define ORTE_RML_TAG_WARMUP_CONNECTION      63
 179 
 180 /* node regex report */
 181 #define ORTE_RML_TAG_NODE_REGEX_REPORT      64
 182 
 183 #define ORTE_RML_TAG_MAX                   100
 184 
 185 
 186 #define ORTE_RML_TAG_NTOH(t) ntohl(t)
 187 #define ORTE_RML_TAG_HTON(t) htonl(t)
 188 
 189 /*** length of the tag. change this when type of orte_rml_tag_t is changed ***/
 190 /*** max valu in unit32_t is 0xFFFF_FFFF when converted to char this is 8  **
 191 #define ORTE_RML_TAG_T_CHAR_LEN   8
 192 #define ORTE_RML_TAG_T_SPRINT    "%8x" */
 193 
 194 /**
 195  * Message matching tag
 196  *
 197  * Message matching tag.  Unlike MPI, there is no wildcard receive,
 198  * all messages must match exactly. Tag values less than
 199  * ORTE_RML_TAG_DYNAMIC are reserved and may only be referenced using
 200  * a defined constant.
 201  */
 202 typedef uint32_t orte_rml_tag_t;
 203 
 204 /* ******************************************************************** */
 205 
 206 
 207 /*
 208  * RML proxy commands
 209  */
 210 typedef uint8_t orte_rml_cmd_flag_t;
 211 #define ORTE_RML_CMD    OPAL_UINT8
 212 #define ORTE_RML_UPDATE_CMD    1
 213 
 214 
 215 typedef enum {
 216     ORTE_RML_PEER_UNREACH,
 217     ORTE_RML_PEER_DISCONNECTED
 218 } orte_rml_exception_t;
 219 
 220 
 221 END_C_DECLS
 222 
 223 
 224 #endif  /* RML_TYPES */

/* [<][>][^][v][top][bottom][index][help] */