summaryrefslogtreecommitdiffstats
path: root/src/kernel/dnbd3.h
diff options
context:
space:
mode:
authorFrederic Robra2019-07-05 17:30:02 +0200
committerFrederic Robra2019-07-05 17:30:02 +0200
commit0de54378aff9348e45c9ccdd4310887a753acfab (patch)
treed4dd3caa7824ab6d928dc5893782db92e440f520 /src/kernel/dnbd3.h
parentfixed some errors with multi queue (diff)
downloaddnbd3-ng-0de54378aff9348e45c9ccdd4310887a753acfab.tar.gz
dnbd3-ng-0de54378aff9348e45c9ccdd4310887a753acfab.tar.xz
dnbd3-ng-0de54378aff9348e45c9ccdd4310887a753acfab.zip
added first support for connection with more than one server
Diffstat (limited to 'src/kernel/dnbd3.h')
-rw-r--r--src/kernel/dnbd3.h40
1 files changed, 20 insertions, 20 deletions
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_ */