master
 1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 2/* AF_VSOCK sock_diag(7) interface for querying open sockets */
 3
 4#ifndef __VM_SOCKETS_DIAG_H__
 5#define __VM_SOCKETS_DIAG_H__
 6
 7#include <linux/types.h>
 8
 9/* Request */
10struct vsock_diag_req {
11	__u8	sdiag_family;	/* must be AF_VSOCK */
12	__u8	sdiag_protocol;	/* must be 0 */
13	__u16	pad;		/* must be 0 */
14	__u32	vdiag_states;	/* query bitmap (e.g. 1 << TCP_LISTEN) */
15	__u32	vdiag_ino;	/* must be 0 (reserved) */
16	__u32	vdiag_show;	/* must be 0 (reserved) */
17	__u32	vdiag_cookie[2];
18};
19
20/* Response */
21struct vsock_diag_msg {
22	__u8	vdiag_family;	/* AF_VSOCK */
23	__u8	vdiag_type;	/* SOCK_STREAM or SOCK_DGRAM */
24	__u8	vdiag_state;	/* sk_state (e.g. TCP_LISTEN) */
25	__u8	vdiag_shutdown; /* local RCV_SHUTDOWN | SEND_SHUTDOWN */
26	__u32   vdiag_src_cid;
27	__u32   vdiag_src_port;
28	__u32   vdiag_dst_cid;
29	__u32   vdiag_dst_port;
30	__u32	vdiag_ino;
31	__u32	vdiag_cookie[2];
32};
33
34#endif /* __VM_SOCKETS_DIAG_H__ */