OPTIM/MINOR: make it possible to change pipe size (tune.pipesize)

By default, pipes are the default size for the system. But sometimes when
using TCP splicing, it can improve performance to increase pipe sizes,
especially if it is suspected that pipes are not filled and that many
calls to splice() are performed. This has an impact on the kernel's
memory footprint, so this must not be changed if impacts are not understood.
diff --git a/include/common/compat.h b/include/common/compat.h
index e134d58..80e1dd2 100644
--- a/include/common/compat.h
+++ b/include/common/compat.h
@@ -69,6 +69,11 @@
 #define MAXPATHLEN 128
 #endif
 
+/* On Linux, allows pipes to be resized */
+#ifndef F_SETPIPE_SZ
+#define F_SETPIPE_SZ (1024 + 7)
+#endif
+
 #if defined(TPROXY) && defined(NETFILTER)
 #include <linux/types.h>
 #include <linux/netfilter_ipv6.h>
diff --git a/include/types/global.h b/include/types/global.h
index a5c7fa0..078a1d5 100644
--- a/include/types/global.h
+++ b/include/types/global.h
@@ -96,6 +96,7 @@
 		int server_sndbuf; /* set server sndbuf to this value if not null */
 		int server_rcvbuf; /* set server rcvbuf to this value if not null */
 		int chksize;       /* check buffer size in bytes, defaults to BUFSIZE */
+		int pipesize;      /* pipe size in bytes, system defaults if zero */
 	} tune;
 	struct {
 		char *prefix;           /* path prefix of unix bind socket */