root/opal/mca/pmix/pmix4x/pmix/src/mca/pnet/tcp/pnet_tcp_component.c

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

DEFINITIONS

This source file includes following definitions.
  1. component_register
  2. component_open
  3. component_query
  4. component_close

   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2018      Intel, Inc. All rights reserved.
   4  * $COPYRIGHT$
   5  *
   6  * Additional copyrights may follow
   7  *
   8  * $HEADER$
   9  *
  10  * These symbols are in a file by themselves to provide nice linker
  11  * semantics.  Since linkers generally pull in symbols by object
  12  * files, keeping these symbols as the only symbols in this file
  13  * prevents utility programs such as "ompi_info" from having to import
  14  * entire components just to query their version and parameters.
  15  */
  16 
  17 #include <src/include/pmix_config.h>
  18 #include "pmix_common.h"
  19 
  20 #include "src/util/argv.h"
  21 #include "src/mca/pnet/pnet.h"
  22 #include "pnet_tcp.h"
  23 
  24 static pmix_status_t component_register(void);
  25 static pmix_status_t component_open(void);
  26 static pmix_status_t component_close(void);
  27 static pmix_status_t component_query(pmix_mca_base_module_t **module,
  28                                      int *priority);
  29 
  30 /*
  31  * Instantiate the public struct with all of our public information
  32  * and pointers to our public functions in it
  33  */
  34 pmix_pnet_tcp_component_t mca_pnet_tcp_component = {
  35     .super = {
  36         .base = {
  37             PMIX_PNET_BASE_VERSION_1_0_0,
  38 
  39             /* Component name and version */
  40             .pmix_mca_component_name = "tcp",
  41             PMIX_MCA_BASE_MAKE_VERSION(component,
  42                                        PMIX_MAJOR_VERSION,
  43                                        PMIX_MINOR_VERSION,
  44                                        PMIX_RELEASE_VERSION),
  45 
  46             /* Component open and close functions */
  47             .pmix_mca_register_component_params = component_register,
  48             .pmix_mca_open_component = component_open,
  49             .pmix_mca_close_component = component_close,
  50             .pmix_mca_query_component = component_query,
  51         },
  52         .data = {
  53             /* The component is checkpoint ready */
  54             PMIX_MCA_BASE_METADATA_PARAM_CHECKPOINT
  55         }
  56     },
  57     .static_ports = NULL,
  58     .default_request = NULL,
  59     .include = NULL,
  60     .exclude = NULL
  61 };
  62 
  63 static pmix_status_t component_register(void)
  64 {
  65     pmix_mca_base_component_t *component = &mca_pnet_tcp_component.super.base;
  66 
  67     mca_pnet_tcp_component.static_ports = NULL;
  68     (void)pmix_mca_base_component_var_register(component, "static_ports",
  69                                                "Static ports for procs, expressed as a semi-colon delimited "
  70                                                "list of type:(optional)plane:Comma-delimited list of ranges (e.g., "
  71                                                "\"tcp:10.10.10.0/24:32000-32100,33000;udp:40000,40005\")",
  72                                                PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
  73                                                PMIX_INFO_LVL_2,
  74                                                PMIX_MCA_BASE_VAR_SCOPE_READONLY,
  75                                                &mca_pnet_tcp_component.static_ports);
  76 
  77     (void)pmix_mca_base_component_var_register(component, "default_network_allocation",
  78                                                "Semi-colon delimited list of (optional)type:(optional)plane:Comma-delimited list of ranges  "
  79                                                "(e.g., \"udp:10.10.10.0/24:3\", or \"5\" if the choice of "
  80                                                "type and plane isn't critical)",
  81                                                PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
  82                                                PMIX_INFO_LVL_2,
  83                                                PMIX_MCA_BASE_VAR_SCOPE_READONLY,
  84                                                &mca_pnet_tcp_component.default_request);
  85 
  86     mca_pnet_tcp_component.incparms = NULL;
  87     (void)pmix_mca_base_component_var_register(component, "include_envars",
  88                                                "Comma-delimited list of envars to harvest (\'*\' and \'?\' supported)",
  89                                                PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
  90                                                PMIX_INFO_LVL_2,
  91                                                PMIX_MCA_BASE_VAR_SCOPE_LOCAL,
  92                                                &mca_pnet_tcp_component.incparms);
  93     if (NULL != mca_pnet_tcp_component.incparms) {
  94         mca_pnet_tcp_component.include = pmix_argv_split(mca_pnet_tcp_component.incparms, ',');
  95     }
  96 
  97     mca_pnet_tcp_component.excparms = NULL;
  98     (void)pmix_mca_base_component_var_register(component, "exclude_envars",
  99                                                "Comma-delimited list of envars to exclude (\'*\' and \'?\' supported)",
 100                                                PMIX_MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
 101                                                PMIX_INFO_LVL_2,
 102                                                PMIX_MCA_BASE_VAR_SCOPE_LOCAL,
 103                                                &mca_pnet_tcp_component.excparms);
 104     if (NULL != mca_pnet_tcp_component.excparms) {
 105         mca_pnet_tcp_component.exclude = pmix_argv_split(mca_pnet_tcp_component.excparms, ',');
 106     }
 107 
 108     return PMIX_SUCCESS;
 109 }
 110 
 111 static pmix_status_t component_open(void)
 112 {
 113     return PMIX_SUCCESS;
 114 }
 115 
 116 
 117 static pmix_status_t component_query(pmix_mca_base_module_t **module,
 118                                      int *priority)
 119 {
 120     *priority = 5;
 121     *module = (pmix_mca_base_module_t *)&pmix_tcp_module;
 122     return PMIX_SUCCESS;
 123 }
 124 
 125 
 126 static pmix_status_t component_close(void)
 127 {
 128 
 129     return PMIX_SUCCESS;
 130 }

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