Derecho  0.9
Distributed systems toolkit for RDMA
Classes | Namespaces | Typedefs | Functions | Variables
verbs_helper.cpp File Reference
#include <atomic>
#include <cstring>
#include <fcntl.h>
#include <iostream>
#include <list>
#include <mutex>
#include <poll.h>
#include <thread>
#include <vector>
#include "derecho/derecho_ports.h"
#include "tcp/tcp.h"
#include "util.h"
#include "verbs_helper.h"
#include <infiniband/verbs.h>
Include dependency graph for verbs_helper.cpp:

Go to the source code of this file.

Classes

struct  rdma::config_t
 
struct  rdma::cm_con_data_t
 
struct  rdma::ibv_resources
 
struct  rdma::completion_handler_set
 Listener to detect new incoming connections. More...
 
struct  rdma::task::task_impl
 

Namespaces

 rdma
 Contains functions and classes for low-level RDMA operations, such as setting up memory regions and queue pairs.
 
 rdma::impl
 

Typedefs

using rdma::ibv_mr_unique_ptr = unique_ptr< ibv_mr, std::function< void(ibv_mr *)> >
 

Functions

struct rdma::cm_con_data_t rdma::__attribute__ ((packed))
 
void rdma::impl::verbs_destroy ()
 
bool rdma::impl::verbs_initialize (const map< uint32_t, std::pair< ip_addr_t, uint16_t >> &ip_addrs_and_ports, uint32_t node_rank)
 
bool rdma::impl::verbs_add_connection (uint32_t index, const std::string &address, uint32_t node_rank)
 
bool rdma::impl::verbs_remove_connection (uint32_t index)
 
bool rdma::impl::set_interrupt_mode (bool enabled)
 
bool rdma::impl::set_contiguous_memory_mode (bool enabled)
 
feature_set rdma::get_supported_features ()
 
std::map< uint32_t, remote_memory_region > rdma::impl::verbs_exchange_memory_regions (const std::vector< uint32_t > &members, uint32_t node_rank, const memory_region &mr)
 
ibv_cq * rdma::impl::verbs_get_cq ()
 
ibv_comp_channel * rdma::impl::verbs_get_completion_channel ()
 

Variables

uint32_t qp_num
 
uint16_t lid
 
uint8_t gid [16]
 
struct rdma::ibv_resources rdma::verbs_resources
 

Class Documentation

◆ rdma::config_t

struct rdma::config_t

Definition at line 30 of file verbs_helper.cpp.

Class Members
const char * dev_name
int gid_idx
int ib_port

◆ rdma::cm_con_data_t

struct rdma::cm_con_data_t

Definition at line 86 of file lf_helper.cpp.

Class Members
uint8_t gid[16]
uint16_t lid
char pep_addr[MAX_LF_ADDR_SIZE] local endpoint address length
uint32_t pep_addr_len
uint32_t qp_num

◆ rdma::ibv_resources

struct rdma::ibv_resources

Definition at line 52 of file verbs_helper.cpp.

Class Members
ibv_comp_channel * cc
ibv_cq * cq
ibv_device_attr device_attr
ibv_context * ib_ctx
ibv_pd * pd
ibv_port_attr port_attr

◆ rdma::completion_handler_set

struct rdma::completion_handler_set

Listener to detect new incoming connections.

Vector of completion handlers and a mutex for accessing it

Definition at line 104 of file lf_helper.cpp.

Collaboration diagram for rdma::completion_handler_set:
Class Members
string name
completion_handler recv
completion_handler send
completion_handler write

◆ rdma::task::task_impl

struct rdma::task::task_impl

Definition at line 533 of file lf_helper.cpp.

Class Members
int dummy

Variable Documentation

◆ gid

uint8_t gid[16]

Definition at line 133 of file verbs_helper.cpp.

◆ lid

uint16_t lid

Definition at line 132 of file verbs_helper.cpp.

◆ qp_num

uint32_t qp_num

Definition at line 131 of file verbs_helper.cpp.