aboutgitcodebugslistschat
path: root/Makefile
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2022-01-25 19:55:54 +0100
committerStefano Brivio <sbrivio@redhat.com>2022-01-26 16:30:59 +0100
commit1776de0140fb663777d4590fbb849c1d0a0c7885 (patch)
tree397ae4d1a18f823bb253135027574fb9527a6b7b /Makefile
parentdaf8d057cebf4b304c11b10cd6e6c98e19710630 (diff)
downloadpasst-1776de0140fb663777d4590fbb849c1d0a0c7885.tar
passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.gz
passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.bz2
passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.lz
passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.xz
passt-1776de0140fb663777d4590fbb849c1d0a0c7885.tar.zst
passt-1776de0140fb663777d4590fbb849c1d0a0c7885.zip
tcp, netlink, HAS{BYTES_ACKED,MIN_RTT,GETRANDOM} and NETLINK_GET_STRICT_CHK
tcpi_bytes_acked and tcpi_min_rtt are only available on recent kernel versions: provide fall-back paths (incurring some grade of performance penalty). Support for getrandom() was introduced in Linux 3.17 and glibc 2.25: provide an alternate mechanism for that as well, reading from /dev/random. Also check if NETLINK_GET_STRICT_CHK is defined before using it: it's not strictly needed, we'll filter out irrelevant results from netlink anyway. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile15
1 files changed, 15 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 4647210..443c39d 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,21 @@ ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0)
CFLAGS += -DHAS_SND_WND
endif
+C := \#include <linux/tcp.h>\nstruct tcp_info x = { .tcpi_bytes_acked = 0 };
+ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0)
+ CFLAGS += -DHAS_BYTES_ACKED
+endif
+
+C := \#include <linux/tcp.h>\nstruct tcp_info x = { .tcpi_min_rtt = 0 };
+ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0)
+ CFLAGS += -DHAS_MIN_RTT
+endif
+
+C := \#include <sys/random.h>\nint main(){int a=getrandom(0, 0, 0);}
+ifeq ($(shell printf "$(C)" | $(CC) -S -xc - -o - >/dev/null 2>&1; echo $$?),0)
+ CFLAGS += -DHAS_GETRANDOM
+endif
+
prefix ?= /usr/local
all: passt pasta passt4netns qrap