Verified Commit 241f0318 authored by Marc Vef's avatar Marc Vef
Browse files

psm2 name resolution test code

parent 10aa5cae
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -36,6 +36,12 @@ namespace hg_tag {
    constexpr auto chunk_stat = "rpc_srv_chunk_stat";
}

namespace rpc_protocol {
    constexpr auto ofi_psm2 = "ofi+psm2";
    constexpr auto ofi_sockets = "ofi+sockets";
    constexpr auto ofi_tcp = "ofi+tcp";
}

// typedefs
typedef unsigned long rpc_chnk_id_t;

+8 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#include <global/rpc/distributor.hpp>
#include <global/rpc/rpc_utils.hpp>
#include <global/env_util.hpp>
#include "global/ofi_utils.hpp"
#include <hermes.hpp>

#include <fstream>
@@ -25,6 +26,7 @@
#include <csignal>
#include <random>
#include <sys/sysmacros.h>
#include <global/global_defs.hpp>

using namespace std;

@@ -198,9 +200,14 @@ void load_hosts() {
                uri.erase(0, pos);
        }
#endif
        if (string(RPC_PROTOCOL) == rpc_protocol::ofi_psm2) {
            // convert ip address to native psm2 address that is required for the Mercury lookup address
            auto native_psm2_addr = fmt::format("{}://{}", RPC_PROTOCOL, ofi_gethostbyname(uri, "psm2"));
            LOG(INFO, "Native psm2 address for host '{}': '{}'", hostname, native_psm2_addr);
            exit(1);
        }
        addrs[id] = ::lookup_endpoint(uri);


        LOG(DEBUG, "Found peer: {}", addrs[id].to_string()); 
    }

+13 −20
Original line number Diff line number Diff line
@@ -54,19 +54,12 @@ std::string ofi_gethostbyname(const std::string& name, const std::string& provid
        throw runtime_error("fi_getinfo: multiple results found for specific hostname");
    }

    cerr << "Name: " << name << endl;
    cerr << "Src: " << (char*)fi->src_addr << "\" [" << fi->dest_addrlen << "]" << endl;
    cerr << "Dst: \"" << (char*)fi->dest_addr << "\" [" << fi->dest_addrlen << "]" << endl;
    cerr << "Format: " << fi->addr_format << endl;
    cerr << "Prov: " << fi->fabric_attr->prov_name << endl;
    cout << "Name: " << name << endl;
    cout << "Src: " << (char*) fi->src_addr << "\" [" << fi->dest_addrlen << "]" << endl;
    cout << "Dst: \"" << (char*) fi->dest_addr << "\" [" << fi->dest_addrlen << "]" << endl;
    cout << "Format: " << fi->addr_format << endl;
    cout << "Prov: " << fi->fabric_attr->prov_name << endl;

/*    CTX->log()->info("{}() fi_getinfo: src_addr '{}' dest_addr '{}' domain_name '{}' fabric_name '{}' fabric_prov_name '{}' fabric_prov_version '{}'", __func__,
                     (char*) fi->src_addr,
                     (char*) fi->dest_addr,
                     fi->domain_attr->name,
                     fi->fabric_attr->name,
                     fi->fabric_attr->prov_version);
*/
    string host = reinterpret_cast<char*>(fi->dest_addr);
    //fi_freeinfo(fi);
    //fi_freeinfo(hints);