3f8d294191
Based on work from usNIC, the best way to use the reachability information the reachable components return is to build a connectivity graph between the two peers and run a bipartite graph solver. Rather than returning the "best" pairing, the reachability framework now returns the entire mapping, allowing a (soon to be added) graph solver to build the "optimal" connectivity pairing. Practically, this means changing the return type of the reachable() function and rewriting the weighted_reachable() function to return the full mapping. The netlink_reachable() function still always returns NULL. At the same time, fix bit-rot in the weighted component and enable builds of the component by removing the opal_ignore. Also, add IPv6 support to the weighted component to support both use cases in the TCP BTL. Signed-off-by: Brian Barrett <bbarrett@amazon.com>
45 строки
964 B
C
45 строки
964 B
C
/*
|
|
* Copyright (c) 2014 Intel, Inc. All rights reserved.
|
|
* Copyright (c) 2017 Amazon.com, Inc. or its affiliates.
|
|
* All Rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#ifndef MCA_REACHABLE_WEIGHTED_H
|
|
#define MCA_REACHABLE_WEIGHTED_H
|
|
|
|
#include "opal_config.h"
|
|
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
#include <sys/socket.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_UN_H
|
|
#include <sys/un.h>
|
|
#endif
|
|
|
|
#include "opal/mca/reachable/reachable.h"
|
|
#include "opal/mca/mca.h"
|
|
#include "opal/mca/event/event.h"
|
|
#include "opal/util/proc.h"
|
|
|
|
#include "opal/mca/pmix/base/base.h"
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
typedef struct {
|
|
opal_reachable_base_component_t super;
|
|
} opal_reachable_weighted_component_t;
|
|
|
|
OPAL_DECLSPEC extern opal_reachable_weighted_component_t mca_reachable_weighted_component;
|
|
|
|
OPAL_DECLSPEC extern const opal_reachable_base_module_t opal_reachable_weighted_module;
|
|
|
|
|
|
END_C_DECLS
|
|
|
|
#endif /* MCA_REACHABLE_WEIGHTED_H */
|