summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorSimon Rettberg2025-12-09 15:49:52 +0100
committerSimon Rettberg2025-12-09 15:49:52 +0100
commitb3062b85b6778acb499998216fb8f3fd71119583 (patch)
tree2df3de5930e1430cfaf792f4b6dae7b8993dfc0c /inc
parent[KERNEL] Fix build on newer gcc (diff)
parent[SERVER] iscsi: More comments (diff)
downloaddnbd3-b3062b85b6778acb499998216fb8f3fd71119583.tar.gz
dnbd3-b3062b85b6778acb499998216fb8f3fd71119583.tar.xz
dnbd3-b3062b85b6778acb499998216fb8f3fd71119583.zip
Merge branch 'iscsi-refactor'
Diffstat (limited to 'inc')
-rw-r--r--inc/dnbd3/afl.h4
-rw-r--r--inc/dnbd3/config/server.h2
-rw-r--r--inc/dnbd3/shared/sockhelper.h5
-rw-r--r--inc/dnbd3/types.h7
4 files changed, 12 insertions, 6 deletions
diff --git a/inc/dnbd3/afl.h b/inc/dnbd3/afl.h
new file mode 100644
index 0000000..071293f
--- /dev/null
+++ b/inc/dnbd3/afl.h
@@ -0,0 +1,4 @@
+#ifdef DNBD3_SERVER_AFL
+#define send(a,b,c,d) write((a) == 0 ? 1 : (a), b, c)
+#define recv(a,b,c,d) read(a, b, c)
+#endif
diff --git a/inc/dnbd3/config/server.h b/inc/dnbd3/config/server.h
index b6eee2c..9330915 100644
--- a/inc/dnbd3/config/server.h
+++ b/inc/dnbd3/config/server.h
@@ -17,6 +17,8 @@
#define UPLINK_MAX_CLIENTS_PER_REQUEST 32 // Maximum number of clients that can attach to one uplink request
#define SERVER_UPLINK_QUEUELEN_THRES 900 // Threshold where we start dropping incoming clients
#define SERVER_MAX_PENDING_ALT_CHECKS 500 // Length of queue for pending alt checks requested by uplinks
+#define SERVER_TCP_BUFFER_MIN_SIZE_PAYLOAD 1048576 // Tweak socket buffer for direction with payload (image data) to be at least this size (1MiB)
+#define SERVER_TCP_BUFFER_MIN_SIZE_REQUESTS 8192 // Tweak socket buffer for direction without payload (requests) to be at least this large (8KiB)
// Wait a maximum of 5 minutes before saving cache map (if data was received at all)
#define CACHE_MAP_MAX_SAVE_DELAY 300
diff --git a/inc/dnbd3/shared/sockhelper.h b/inc/dnbd3/shared/sockhelper.h
index 5c7d903..728ebfc 100644
--- a/inc/dnbd3/shared/sockhelper.h
+++ b/inc/dnbd3/shared/sockhelper.h
@@ -117,4 +117,9 @@ ssize_t sock_sendAll(const int sock, const void *buffer, const size_t len, int m
*/
ssize_t sock_recv(const int sock, void *buffer, const size_t len);
+/**
+ * Send a desired number of nullbytes to socket.
+ */
+bool sock_sendPadding(int fd, size_t bytes);
+
#endif /* SOCKHELPER_H_ */
diff --git a/inc/dnbd3/types.h b/inc/dnbd3/types.h
index bd15f4e..27dcbf7 100644
--- a/inc/dnbd3/types.h
+++ b/inc/dnbd3/types.h
@@ -71,11 +71,6 @@
#include <netinet/in.h>
#endif
-#ifdef DNBD3_SERVER_AFL
-#define send(a,b,c,d) write(a,b,c)
-#define recv(a,b,c,d) read(a,b,c)
-#endif
-
// ioctl
#define DNBD3_MAGIC 'd'
@@ -161,7 +156,7 @@ typedef struct __attribute__((packed))
uint16_t cmd; // 2byte
uint32_t size; // 4byte
union {
- struct {
+ struct __attribute__((packed)) {
#ifdef DNBD3_LITTLE_ENDIAN
uint64_t offset_small:56; // 7byte
uint8_t hops; // 1byte