type define for RDMA network

support_rdma
YuQing 2023-09-04 08:51:35 +08:00
parent 05a694df77
commit d5f6a192a5
2 changed files with 21 additions and 14 deletions

View File

@ -40,11 +40,16 @@ extern "C" {
(strcmp((conn1).ip_addr, (conn2).ip_addr) == 0 && \
(conn1).port == (conn2).port)
typedef struct
{
typedef enum {
fc_network_type_sock = 0,
fc_network_type_rdma
} FCNetworkType;
typedef struct {
int sock;
uint16_t port;
short socket_domain; //socket domain, AF_INET, AF_INET6 or AF_UNSPEC for auto dedect
FCNetworkType network_type;
bool validate_flag; //for connection pool
char ip_addr[INET6_ADDRSTRLEN];
char args[0]; //for extra data

View File

@ -42,6 +42,7 @@ typedef int (*TaskInitCallback)(struct fast_task_info *pTask);
typedef void (*IOEventCallback) (int sock, short event, void *arg);
typedef int (*TaskContinueCallback)(struct fast_task_info *task);
struct sf_network_handler;
struct fast_task_info;
typedef struct ioevent_entry
@ -79,13 +80,13 @@ struct ioevent_notify_entry
struct fast_task_info
{
IOEventEntry event; //must first
IOEventEntry event; //must first
union {
char server_ip[IP_ADDRESS_SIZE];
char client_ip[IP_ADDRESS_SIZE];
};
void *arg; //extra argument pointer
char *data; //buffer for write or read
void *arg; //extra argument pointer
char *data; //buffer for write or read
char *recv_body; //for extra (dynamic) recv buffer
struct {
@ -93,9 +94,9 @@ struct fast_task_info
int count;
} iovec_array; //for writev
int size; //alloc size
int length; //data length
int offset; //current offset
int size; //alloc size
int length; //data length
int offset; //current offset
uint16_t port; //peer port
struct {
uint8_t current;
@ -105,13 +106,14 @@ struct fast_task_info
volatile int8_t canceled; //if task canceled
short connect_timeout; //for client side
short network_timeout;
int64_t req_count; //request count
int64_t req_count; //request count
TaskContinueCallback continue_callback; //for continue stage
TaskFinishCallback finish_callback;
struct nio_thread_data *thread_data;
void *ctx; //context pointer for libserverframe nio
struct fast_task_info *next; //for free queue and deleted list
struct fast_task_info *notify_next; //for nio notify queue
TaskFinishCallback finish_callback;
struct nio_thread_data *thread_data;
struct sf_network_handler *handler; //network handler for libserverframe nio
struct fast_task_info *next; //for free queue and deleted list
struct fast_task_info *notify_next; //for nio notify queue
char conn[0]; //for RDMA connection
};
struct fast_task_queue