type define for RDMA network
parent
05a694df77
commit
d5f6a192a5
|
|
@ -40,11 +40,16 @@ extern "C" {
|
||||||
(strcmp((conn1).ip_addr, (conn2).ip_addr) == 0 && \
|
(strcmp((conn1).ip_addr, (conn2).ip_addr) == 0 && \
|
||||||
(conn1).port == (conn2).port)
|
(conn1).port == (conn2).port)
|
||||||
|
|
||||||
typedef struct
|
typedef enum {
|
||||||
{
|
fc_network_type_sock = 0,
|
||||||
|
fc_network_type_rdma
|
||||||
|
} FCNetworkType;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
int sock;
|
int sock;
|
||||||
uint16_t port;
|
uint16_t port;
|
||||||
short socket_domain; //socket domain, AF_INET, AF_INET6 or AF_UNSPEC for auto dedect
|
short socket_domain; //socket domain, AF_INET, AF_INET6 or AF_UNSPEC for auto dedect
|
||||||
|
FCNetworkType network_type;
|
||||||
bool validate_flag; //for connection pool
|
bool validate_flag; //for connection pool
|
||||||
char ip_addr[INET6_ADDRSTRLEN];
|
char ip_addr[INET6_ADDRSTRLEN];
|
||||||
char args[0]; //for extra data
|
char args[0]; //for extra data
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ typedef int (*TaskInitCallback)(struct fast_task_info *pTask);
|
||||||
typedef void (*IOEventCallback) (int sock, short event, void *arg);
|
typedef void (*IOEventCallback) (int sock, short event, void *arg);
|
||||||
typedef int (*TaskContinueCallback)(struct fast_task_info *task);
|
typedef int (*TaskContinueCallback)(struct fast_task_info *task);
|
||||||
|
|
||||||
|
struct sf_network_handler;
|
||||||
struct fast_task_info;
|
struct fast_task_info;
|
||||||
|
|
||||||
typedef struct ioevent_entry
|
typedef struct ioevent_entry
|
||||||
|
|
@ -79,13 +80,13 @@ struct ioevent_notify_entry
|
||||||
|
|
||||||
struct fast_task_info
|
struct fast_task_info
|
||||||
{
|
{
|
||||||
IOEventEntry event; //must first
|
IOEventEntry event; //must first
|
||||||
union {
|
union {
|
||||||
char server_ip[IP_ADDRESS_SIZE];
|
char server_ip[IP_ADDRESS_SIZE];
|
||||||
char client_ip[IP_ADDRESS_SIZE];
|
char client_ip[IP_ADDRESS_SIZE];
|
||||||
};
|
};
|
||||||
void *arg; //extra argument pointer
|
void *arg; //extra argument pointer
|
||||||
char *data; //buffer for write or read
|
char *data; //buffer for write or read
|
||||||
char *recv_body; //for extra (dynamic) recv buffer
|
char *recv_body; //for extra (dynamic) recv buffer
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
@ -93,9 +94,9 @@ struct fast_task_info
|
||||||
int count;
|
int count;
|
||||||
} iovec_array; //for writev
|
} iovec_array; //for writev
|
||||||
|
|
||||||
int size; //alloc size
|
int size; //alloc size
|
||||||
int length; //data length
|
int length; //data length
|
||||||
int offset; //current offset
|
int offset; //current offset
|
||||||
uint16_t port; //peer port
|
uint16_t port; //peer port
|
||||||
struct {
|
struct {
|
||||||
uint8_t current;
|
uint8_t current;
|
||||||
|
|
@ -105,13 +106,14 @@ struct fast_task_info
|
||||||
volatile int8_t canceled; //if task canceled
|
volatile int8_t canceled; //if task canceled
|
||||||
short connect_timeout; //for client side
|
short connect_timeout; //for client side
|
||||||
short network_timeout;
|
short network_timeout;
|
||||||
int64_t req_count; //request count
|
int64_t req_count; //request count
|
||||||
TaskContinueCallback continue_callback; //for continue stage
|
TaskContinueCallback continue_callback; //for continue stage
|
||||||
TaskFinishCallback finish_callback;
|
TaskFinishCallback finish_callback;
|
||||||
struct nio_thread_data *thread_data;
|
struct nio_thread_data *thread_data;
|
||||||
void *ctx; //context pointer for libserverframe nio
|
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 *next; //for free queue and deleted list
|
||||||
struct fast_task_info *notify_next; //for nio notify queue
|
struct fast_task_info *notify_next; //for nio notify queue
|
||||||
|
char conn[0]; //for RDMA connection
|
||||||
};
|
};
|
||||||
|
|
||||||
struct fast_task_queue
|
struct fast_task_queue
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue