summaryrefslogtreecommitdiffhomepage
path: root/ebpf/include/linux/vm_sockets_diag.h
diff options
context:
space:
mode:
authorDavid Anderson <danderson@tailscale.com>2021-11-10 12:15:03 -0800
committerDavid Anderson <danderson@tailscale.com>2021-11-10 12:15:03 -0800
commit41710e1b810aa25c14ceb657a40b9ba616615435 (patch)
tree4953322c9930fde10dae9ff057de28827e87fb52 /ebpf/include/linux/vm_sockets_diag.h
parent4a51050c498da33eaecb520b78aeb5f445a442f1 (diff)
downloadtailscale-danderson/ebpf.tar.xz
tailscale-danderson/ebpf.zip
ebpf: experiments.danderson/ebpf
Diffstat (limited to 'ebpf/include/linux/vm_sockets_diag.h')
-rw-r--r--ebpf/include/linux/vm_sockets_diag.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/ebpf/include/linux/vm_sockets_diag.h b/ebpf/include/linux/vm_sockets_diag.h
new file mode 100644
index 000000000..6da42f99a
--- /dev/null
+++ b/ebpf/include/linux/vm_sockets_diag.h
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* AF_VSOCK sock_diag(7) interface for querying open sockets */
+
+#ifndef __VM_SOCKETS_DIAG_H__
+#define __VM_SOCKETS_DIAG_H__
+
+#include <linux/types.h>
+
+/* Request */
+struct vsock_diag_req {
+ __u8 sdiag_family; /* must be AF_VSOCK */
+ __u8 sdiag_protocol; /* must be 0 */
+ __u16 pad; /* must be 0 */
+ __u32 vdiag_states; /* query bitmap (e.g. 1 << TCP_LISTEN) */
+ __u32 vdiag_ino; /* must be 0 (reserved) */
+ __u32 vdiag_show; /* must be 0 (reserved) */
+ __u32 vdiag_cookie[2];
+};
+
+/* Response */
+struct vsock_diag_msg {
+ __u8 vdiag_family; /* AF_VSOCK */
+ __u8 vdiag_type; /* SOCK_STREAM or SOCK_DGRAM */
+ __u8 vdiag_state; /* sk_state (e.g. TCP_LISTEN) */
+ __u8 vdiag_shutdown; /* local RCV_SHUTDOWN | SEND_SHUTDOWN */
+ __u32 vdiag_src_cid;
+ __u32 vdiag_src_port;
+ __u32 vdiag_dst_cid;
+ __u32 vdiag_dst_port;
+ __u32 vdiag_ino;
+ __u32 vdiag_cookie[2];
+};
+
+#endif /* __VM_SOCKETS_DIAG_H__ */