12 #include <infiniband/verbs.h>    42     void set_qp_initialized();
    44     void set_qp_ready_to_receive();
    46     void set_qp_ready_to_send();
    52     int post_remote_send(
const uint32_t 
id, 
const long long int offset, 
const long long int size, 
const int op, 
const bool completion);
    73     _resources(
int r_index, 
char *write_addr, 
char *read_addr, 
int size_w,
    81     resources(
int r_index, 
char *write_addr, 
char *read_addr, 
int size_w,
    88     void post_remote_read(
const uint32_t 
id, 
const long long int size);
    90     void post_remote_read(
const uint32_t 
id, 
const long long int offset, 
const long long int size);
    92     void post_remote_write(
const uint32_t 
id, 
const long long int size);
    94     void post_remote_write(
const uint32_t 
id, 
const long long int offset, 
long long int size);
    95     void post_remote_write_with_completion(
const uint32_t 
id, 
const long long int size);
    97     void post_remote_write_with_completion(
const uint32_t 
id, 
const long long int offset, 
const long long int size);
   101     int post_receive(
const uint32_t 
id, 
const long long int offset, 
const long long int size);
   106     void post_two_sided_send(
const uint32_t 
id, 
const long long int size);
   108     void post_two_sided_send(
const uint32_t 
id, 
const long long int offset, 
long long int size);
   109     void post_two_sided_send_with_completion(
const uint32_t 
id, 
const long long int size);
   111     void post_two_sided_send_with_completion(
const uint32_t 
id, 
const long long int offset, 
const long long int size);
   112     void post_two_sided_receive(
const uint32_t 
id, 
const long long int size);
   113     void post_two_sided_receive(
const uint32_t 
id, 
const long long int offset, 
const long long int size);
   116 bool add_node(uint32_t new_id, 
const std::string new_ip_addr);
   123 bool sync(uint32_t r_index);
 struct ibv_mr * read_mr
Memory Region handle for the read buffer. 
uint32_t qp_num
Queue Pair number. 
bool add_node(uint32_t new_id, const std::pair< ip_addr_t, uint16_t > &new_ip_addr_and_port)
Adds a new node to the SST TPC connections set. 
void shutdown_polling_thread()
Shutdown the polling thread. 
A public-facing version of the internal _resources class that extends it with more convenient functio...
std::pair< uint32_t, std::pair< int, int > > verbs_poll_completion()
Polls for completion of a single posted remote write. 
bool remove_node(uint32_t node_id)
Removes a node from the SST TCP connections set. 
int remote_index
Index of the remote node. 
void verbs_initialize(const std::map< uint32_t, std::string > &ip_addrs, uint32_t node_rank)
Initializes the global verbs resources. 
bool sync(uint32_t r_id)
Blocks the current thread until both this node and a remote node reach this function, which exchanges some trivial data over a TCP connection. 
uint64_t addr
Buffer address. 
struct ibv_mr * write_mr
Memory Region handle for the write buffer. 
struct ibv_qp * qp
Handle for the IB Verbs Queue Pair object. 
void verbs_destroy()
Destroys the global verbs resources. 
uint16_t lid
LID of the InfiniBand port. 
A public-facing version of the internal _resources class that extends it with functions that support ...
Represents the set of RDMA resources needed to maintain a two-way connection to a single remote node...
Structure to exchange the data needed to connect the Queue Pairs. 
struct sst::verbs_sender_ctxt __attribute__