1*7bbefcfaSStephen Hemminger /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2413a4317SStefan Hajnoczi /* AF_VSOCK sock_diag(7) interface for querying open sockets */ 3413a4317SStefan Hajnoczi 4413a4317SStefan Hajnoczi #ifndef _UAPI__VM_SOCKETS_DIAG_H__ 5413a4317SStefan Hajnoczi #define _UAPI__VM_SOCKETS_DIAG_H__ 6413a4317SStefan Hajnoczi 7413a4317SStefan Hajnoczi #include <linux/types.h> 8413a4317SStefan Hajnoczi 9413a4317SStefan Hajnoczi /* Request */ 10413a4317SStefan Hajnoczi struct vsock_diag_req { 11413a4317SStefan Hajnoczi __u8 sdiag_family; /* must be AF_VSOCK */ 12413a4317SStefan Hajnoczi __u8 sdiag_protocol; /* must be 0 */ 13413a4317SStefan Hajnoczi __u16 pad; /* must be 0 */ 14413a4317SStefan Hajnoczi __u32 vdiag_states; /* query bitmap (e.g. 1 << TCP_LISTEN) */ 15413a4317SStefan Hajnoczi __u32 vdiag_ino; /* must be 0 (reserved) */ 16413a4317SStefan Hajnoczi __u32 vdiag_show; /* must be 0 (reserved) */ 17413a4317SStefan Hajnoczi __u32 vdiag_cookie[2]; 18413a4317SStefan Hajnoczi }; 19413a4317SStefan Hajnoczi 20413a4317SStefan Hajnoczi /* Response */ 21413a4317SStefan Hajnoczi struct vsock_diag_msg { 22413a4317SStefan Hajnoczi __u8 vdiag_family; /* AF_VSOCK */ 23413a4317SStefan Hajnoczi __u8 vdiag_type; /* SOCK_STREAM or SOCK_DGRAM */ 24413a4317SStefan Hajnoczi __u8 vdiag_state; /* sk_state (e.g. TCP_LISTEN) */ 25413a4317SStefan Hajnoczi __u8 vdiag_shutdown; /* local RCV_SHUTDOWN | SEND_SHUTDOWN */ 26413a4317SStefan Hajnoczi __u32 vdiag_src_cid; 27413a4317SStefan Hajnoczi __u32 vdiag_src_port; 28413a4317SStefan Hajnoczi __u32 vdiag_dst_cid; 29413a4317SStefan Hajnoczi __u32 vdiag_dst_port; 30413a4317SStefan Hajnoczi __u32 vdiag_ino; 31413a4317SStefan Hajnoczi __u32 vdiag_cookie[2]; 32413a4317SStefan Hajnoczi }; 33413a4317SStefan Hajnoczi 34413a4317SStefan Hajnoczi #endif /* _UAPI__VM_SOCKETS_DIAG_H__ */ 35