Derecho  0.9
Distributed systems toolkit for RDMA
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
rdma Namespace Reference

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

Namespaces

 impl
 

Classes

struct  cm_con_data_t
 
struct  completion_handler_set
 Listener to detect new incoming connections. More...
 
class  completion_queue
 A C++ wrapper for the libfabric fid_cq struct and its associated functions. More...
 
struct  config_t
 
class  configuration_failure
 
class  connection_broken
 
class  cq_creation_failure
 
class  creation_failure
 
class  endpoint
 A C++ wrapper for the libfabric fid_ep struct and its associated functions. More...
 
class  ep_creation_failure
 
class  exception
 
struct  feature_set
 
struct  ibv_resources
 
class  invalid_args
 
struct  lf_ctxt
 Global states. More...
 
class  managed_endpoint
 
class  managed_queue_pair
 
class  manager_endpoint
 
class  manager_queue_pair
 
class  memory_region
 A wrapper for fi_close. More...
 
class  message_type
 
class  message_types_exhausted
 
class  mr_creation_failure
 
class  qp_creation_failure
 
class  queue_pair
 A C++ wrapper for the IB Verbs ibv_qp struct and its associated functions. More...
 
class  remote_memory_region
 
class  task
 
class  unsupported_feature
 

Typedefs

typedef std::function< void(uint64_t tag, uint32_t immediate, size_t length)> completion_handler
 
using ibv_mr_unique_ptr = unique_ptr< ibv_mr, std::function< void(ibv_mr *)> >
 

Enumerations

enum  NextOnFailure { REPORT_ON_FAILURE = 0, CRASH_ON_FAILURE = 1 }
 Testing tools from Weijia's sst code. More...
 
enum  RDMAOps { RDMA_OP_SEND = 1, RDMA_OP_RECV, RDMA_OP_WRITE }
 

Functions

feature_set get_supported_features ()
 
struct rdma::cm_con_data_t __attribute__ ((packed))
 
bool sync (uint32_t r_id)
 

Variables

tcp::tcp_connectionsrdmc_connections
 Object to hold the tcp connections for every node. More...
 
struct rdma::completion_handler_set __attribute__
 
struct lf_ctxt g_ctxt
 The global context for libfabric. More...
 
struct rdma::ibv_resources verbs_resources
 

Detailed Description

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

This provides a more C++-friendly interfaace to the libfabric library.

This provides a more C++-friendly interface to the IB Verbs library.


Class Documentation

◆ 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::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::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::feature_set

struct rdma::feature_set

Definition at line 167 of file verbs_helper.hpp.

Class Members
bool contiguous_memory
bool cross_channel

◆ 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::lf_ctxt

struct rdma::lf_ctxt

Global states.

Definition at line 116 of file lf_helper.cpp.

Class Members
struct fid_cq * cq event queue for connection management
struct fi_cq_attr cq_attr event queue attributes
struct fid_domain * domain fabric handle
struct fi_eq_attr eq_attr local pep address
struct fid_fabric * fabric fabric information
struct fi_info * fi hints
struct fi_info * hints
struct fid_pep * pep domain handle
char pep_addr[MAX_LF_ADDR_SIZE] length of local pep address
size_t pep_addr_len completion queue for all rma operations
struct fid_eq * peq passive endpoint for receiving connection

Typedef Documentation

◆ completion_handler

typedef std::function< void(uint64_t tag, uint32_t immediate, size_t length)> rdma::completion_handler

Definition at line 131 of file lf_helper.hpp.

◆ ibv_mr_unique_ptr

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

Definition at line 481 of file verbs_helper.cpp.

Enumeration Type Documentation

◆ NextOnFailure

Testing tools from Weijia's sst code.

Enumerator
REPORT_ON_FAILURE 
CRASH_ON_FAILURE 

Definition at line 50 of file lf_helper.cpp.

◆ RDMAOps

Enumerator
RDMA_OP_SEND 
RDMA_OP_RECV 
RDMA_OP_WRITE 

Definition at line 136 of file lf_helper.cpp.

Function Documentation

◆ __attribute__()

struct rdma::cm_con_data_t rdma::__attribute__ ( (packed)  )

◆ get_supported_features()

feature_set rdma::get_supported_features ( )

Definition at line 1088 of file verbs_helper.cpp.

◆ sync()

bool rdma::sync ( uint32_t  r_id)

Definition at line 303 of file lf_helper.cpp.

Variable Documentation

◆ __attribute__

struct rdma::cm_con_data_t rdma::__attribute__

◆ g_ctxt

struct lf_ctxt rdma::g_ctxt

The global context for libfabric.

Definition at line 131 of file lf_helper.cpp.

◆ rdmc_connections

tcp::tcp_connections* rdma::rdmc_connections

Object to hold the tcp connections for every node.

Definition at line 94 of file lf_helper.cpp.

◆ verbs_resources

struct rdma::ibv_resources rdma::verbs_resources