libmooshika
Public Types | Data Fields
msk_trans Struct Reference

RDMA transport instance. More...

#include <mooshika.h>

Public Types

enum  msk_state {
  MSK_INIT, MSK_LISTENING, MSK_ADDR_RESOLVED, MSK_ROUTE_RESOLVED,
  MSK_CONNECT_REQUEST, MSK_CONNECTED, MSK_CLOSING, MSK_CLOSED,
  MSK_ERROR
}
 

Data Fields

enum msk_trans::msk_state state
 tracks the transport state machine for connection setup and tear down More...
 
struct rdma_cm_id * cm_id
 The RDMA CM ID. More...
 
struct rdma_event_channel * event_channel
 
struct ibv_comp_channel * comp_channel
 
struct msk_pdpd
 Protection Domain pointer list. More...
 
struct ibv_qp * qp
 Queue Pair pointer. More...
 
struct ibv_srq * srq
 Shared Receive Queue pointer. More...
 
struct ibv_cq * cq
 Completion Queue pointer. More...
 
disconnect_callback_t disconnect_callback
 
void * private_data
 
long timeout
 Number of mSecs to wait for connection management events. More...
 
int sq_depth
 The depth of the Send Queue. More...
 
int max_send_sge
 Maximum number of s/g elements per send. More...
 
int rq_depth
 The depth of the Receive Queue. More...
 
int max_recv_sge
 Maximum number of s/g elements per recv. More...
 
char * node
 The remote peer's hostname. More...
 
char * port
 The service port (or name) More...
 
int conn_type
 RDMA Port space, probably RDMA_PS_TCP. More...
 
int server
 0 if client, connection backlog on server, -1 (MSK_SERVER_CHILD) if server's accepted connection More...
 
int destroy_on_disconnect
 set to 1 if mooshika should perform cleanup More...
 
int privport
 set to 1 if mooshika should use a reserved port for client side More...
 
uint32_t debug
 
struct rdma_cm_id ** conn_requests
 temporary child cm_id, only used for server More...
 
struct msk_ctx * wctx
 pointer to actual context data More...
 
struct msk_ctx * rctx
 pointer to actual context data More...
 
pthread_mutex_t cm_lock
 lock for connection events More...
 
pthread_cond_t cm_cond
 cond for connection events More...
 
struct ibv_recv_wr * bad_recv_wr
 
struct ibv_send_wr * bad_send_wr
 
struct msk_stats stats
 
char * stats_prefix
 
int stats_sock
 

Detailed Description

RDMA transport instance.

Member Enumeration Documentation

Enumerator
MSK_INIT 
MSK_LISTENING 
MSK_ADDR_RESOLVED 
MSK_ROUTE_RESOLVED 
MSK_CONNECT_REQUEST 
MSK_CONNECTED 
MSK_CLOSING 
MSK_CLOSED 
MSK_ERROR 

Field Documentation

struct ibv_recv_wr* msk_trans::bad_recv_wr
struct ibv_send_wr* msk_trans::bad_send_wr
pthread_cond_t msk_trans::cm_cond

cond for connection events

Referenced by msk_destroy_trans().

struct rdma_cm_id* msk_trans::cm_id

The RDMA CM ID.

Referenced by msk_destroy_trans(), msk_getpd(), and msk_print_devinfo().

pthread_mutex_t msk_trans::cm_lock

lock for connection events

Referenced by msk_destroy_trans().

struct ibv_comp_channel* msk_trans::comp_channel
struct rdma_cm_id** msk_trans::conn_requests

temporary child cm_id, only used for server

int msk_trans::conn_type

RDMA Port space, probably RDMA_PS_TCP.

struct ibv_cq* msk_trans::cq

Completion Queue pointer.

uint32_t msk_trans::debug
int msk_trans::destroy_on_disconnect

set to 1 if mooshika should perform cleanup

disconnect_callback_t msk_trans::disconnect_callback
struct rdma_event_channel* msk_trans::event_channel
int msk_trans::max_recv_sge

Maximum number of s/g elements per recv.

int msk_trans::max_send_sge

Maximum number of s/g elements per send.

char* msk_trans::node

The remote peer's hostname.

struct msk_pd* msk_trans::pd

Protection Domain pointer list.

Referenced by msk_getpd().

char* msk_trans::port

The service port (or name)

void* msk_trans::private_data
int msk_trans::privport

set to 1 if mooshika should use a reserved port for client side

struct ibv_qp* msk_trans::qp

Queue Pair pointer.

struct msk_ctx* msk_trans::rctx

pointer to actual context data

int msk_trans::rq_depth

The depth of the Receive Queue.

int msk_trans::server

0 if client, connection backlog on server, -1 (MSK_SERVER_CHILD) if server's accepted connection

Referenced by handle_trans(), and main().

int msk_trans::sq_depth

The depth of the Send Queue.

struct ibv_srq* msk_trans::srq

Shared Receive Queue pointer.

Referenced by setup_recv().

enum msk_trans::msk_state msk_trans::state

tracks the transport state machine for connection setup and tear down

Referenced by callback_error(), callback_read(), handle_trans(), and msk_destroy_trans().

struct msk_stats msk_trans::stats

Referenced by handle_trans(), and msk_stats_thread().

char* msk_trans::stats_prefix
int msk_trans::stats_sock

Referenced by msk_stats_thread().

long msk_trans::timeout

Number of mSecs to wait for connection management events.

struct msk_ctx* msk_trans::wctx

pointer to actual context data


The documentation for this struct was generated from the following file: