aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/test_tcpnotify.h
diff options
context:
space:
mode:
authorSowmini Varadhan <sowmini.varadhan@oracle.com>2018-11-07 16:12:02 -0800
committerDaniel Borkmann <daniel@iogearbox.net>2018-11-09 09:40:17 +0100
commit435f90a338ae42c0d7c0109a1742d1b16bc99bf6 (patch)
treed9b8382a1b809c45809135400fdeda9d9fe51be9 /tools/testing/selftests/bpf/test_tcpnotify.h
parentbpf: add perf event notificaton support for sock_ops (diff)
downloadlinux-dev-435f90a338ae42c0d7c0109a1742d1b16bc99bf6.tar.xz
linux-dev-435f90a338ae42c0d7c0109a1742d1b16bc99bf6.zip
selftests/bpf: add a test case for sock_ops perf-event notification
This patch provides a tcp_bpf based eBPF sample. The test - ncat(1) as the TCP client program to connect() to a port with the intention of triggerring SYN retransmissions: we first install an iptables DROP rule to make sure ncat SYNs are resent (instead of aborting instantly after a TCP RST) - has a bpf kernel module that sends a perf-event notification for each TCP retransmit, and also tracks the number of such notifications sent in the global_map The test passes when the number of event notifications intercepted in user-space matches the value in the global_map. Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/testing/selftests/bpf/test_tcpnotify.h')
-rw-r--r--tools/testing/selftests/bpf/test_tcpnotify.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/test_tcpnotify.h b/tools/testing/selftests/bpf/test_tcpnotify.h
new file mode 100644
index 000000000000..8b6cea030bfc
--- /dev/null
+++ b/tools/testing/selftests/bpf/test_tcpnotify.h
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#ifndef _TEST_TCPBPF_H
+#define _TEST_TCPBPF_H
+
+struct tcpnotify_globals {
+ __u32 total_retrans;
+ __u32 ncalls;
+};
+
+struct tcp_notifier {
+ __u8 type;
+ __u8 subtype;
+ __u8 source;
+ __u8 hash;
+};
+
+#define TESTPORT 12877
+#endif