From 0de54378aff9348e45c9ccdd4310887a753acfab Mon Sep 17 00:00:00 2001 From: Frederic Robra Date: Fri, 5 Jul 2019 17:30:02 +0200 Subject: added first support for connection with more than one server --- src/kernel/dnbd3.h | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'src/kernel/dnbd3.h') diff --git a/src/kernel/dnbd3.h b/src/kernel/dnbd3.h index 0a4ef67..7ad6b2f 100644 --- a/src/kernel/dnbd3.h +++ b/src/kernel/dnbd3.h @@ -31,9 +31,9 @@ #include "serialize.h" +#define NUMBER_CONNECTIONS 4 -typedef struct -{ +typedef struct dnbd3_server_t { dnbd3_host_t host; uint64_t rtts[4]; // Last four round trip time measurements in microsecond uint16_t protocol_version; // dnbd3 protocol version of this server @@ -41,13 +41,16 @@ typedef struct } dnbd3_server_t; +typedef struct dnbd3_sock { + struct socket *sock; + struct mutex lock; + struct request *pending; + struct dnbd3_server_t *server; +} dnbd3_sock; + typedef struct dnbd3_device_t { int minor; struct blk_mq_tag_set tag_set; -// struct request_queue queue; - struct mutex config_lock; - refcount_t config_refs; - refcount_t refs; struct list_head list; // block @@ -57,23 +60,26 @@ typedef struct dnbd3_device_t { struct kobject kobj; // network + dnbd3_sock socks[NUMBER_CONNECTIONS]; char *imgname; - struct socket *sock; - struct mutex socket_lock; - struct request *pending; - dnbd3_server_t cur_server, initial_server; - uint64_t cur_rtt; - serialized_buffer_t payload_buffer; +// struct socket *sock; +// struct mutex socket_lock; +// struct request *pending; + dnbd3_server_t initial_server; +// dnbd3_server_t cur_server, initial_server; +// uint64_t cur_rtt; +// serialized_buffer_t payload_buffer; dnbd3_server_t alt_servers[NUMBER_SERVERS]; // array of alt servers int new_servers_num; // number of new alt servers that are waiting to be copied to above array dnbd3_server_entry_t new_servers[NUMBER_SERVERS]; // pending new alt servers - uint8_t discover, panic, disconnecting, update_available, panic_count; +// uint8_t discover, panic, disconnecting, update_available, panic_count; + uint8_t update_available; uint8_t use_server_provided_alts; uint16_t rid; uint32_t heartbeat_count; uint64_t reported_size; // server switch - struct socket *better_sock; +// struct socket *better_sock; // process @@ -100,11 +106,5 @@ typedef struct dnbd3_cmd { uint32_t cmd_cookie; } dnbd3_cmd; -typedef struct dnbd3_sock { - struct socket *sock; - struct mutex lock; - struct request *pending; - struct dnbd3_server_t *server; -} dnbd3_sock; #endif /* DNBD_H_ */ -- cgit v1.2.3-55-g7522