xref: /linux/include/uapi/linux/netlink_diag.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*6f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2eaaa3139SAndrey Vagin #ifndef __NETLINK_DIAG_H__
3eaaa3139SAndrey Vagin #define __NETLINK_DIAG_H__
4eaaa3139SAndrey Vagin 
5eaaa3139SAndrey Vagin #include <linux/types.h>
6eaaa3139SAndrey Vagin 
7eaaa3139SAndrey Vagin struct netlink_diag_req {
8eaaa3139SAndrey Vagin 	__u8	sdiag_family;
9eaaa3139SAndrey Vagin 	__u8	sdiag_protocol;
10eaaa3139SAndrey Vagin 	__u16	pad;
11eaaa3139SAndrey Vagin 	__u32	ndiag_ino;
12eaaa3139SAndrey Vagin 	__u32	ndiag_show;
13eaaa3139SAndrey Vagin 	__u32	ndiag_cookie[2];
14eaaa3139SAndrey Vagin };
15eaaa3139SAndrey Vagin 
16eaaa3139SAndrey Vagin struct netlink_diag_msg {
17eaaa3139SAndrey Vagin 	__u8	ndiag_family;
18eaaa3139SAndrey Vagin 	__u8	ndiag_type;
19eaaa3139SAndrey Vagin 	__u8	ndiag_protocol;
20eaaa3139SAndrey Vagin 	__u8	ndiag_state;
21eaaa3139SAndrey Vagin 
22eaaa3139SAndrey Vagin 	__u32	ndiag_portid;
23eaaa3139SAndrey Vagin 	__u32	ndiag_dst_portid;
24eaaa3139SAndrey Vagin 	__u32	ndiag_dst_group;
25eaaa3139SAndrey Vagin 	__u32	ndiag_ino;
26eaaa3139SAndrey Vagin 	__u32	ndiag_cookie[2];
27eaaa3139SAndrey Vagin };
28eaaa3139SAndrey Vagin 
294ae9fbeeSPatrick McHardy struct netlink_diag_ring {
304ae9fbeeSPatrick McHardy 	__u32	ndr_block_size;
314ae9fbeeSPatrick McHardy 	__u32	ndr_block_nr;
324ae9fbeeSPatrick McHardy 	__u32	ndr_frame_size;
334ae9fbeeSPatrick McHardy 	__u32	ndr_frame_nr;
344ae9fbeeSPatrick McHardy };
354ae9fbeeSPatrick McHardy 
36eaaa3139SAndrey Vagin enum {
3731e20badSNicolas Dichtel 	/* NETLINK_DIAG_NONE, standard nl API requires this attribute!  */
38eaaa3139SAndrey Vagin 	NETLINK_DIAG_MEMINFO,
39eaaa3139SAndrey Vagin 	NETLINK_DIAG_GROUPS,
404ae9fbeeSPatrick McHardy 	NETLINK_DIAG_RX_RING,
414ae9fbeeSPatrick McHardy 	NETLINK_DIAG_TX_RING,
42457c79e5SAndrey Vagin 	NETLINK_DIAG_FLAGS,
43eaaa3139SAndrey Vagin 
44eaaa3139SAndrey Vagin 	__NETLINK_DIAG_MAX,
45eaaa3139SAndrey Vagin };
46eaaa3139SAndrey Vagin 
47eaaa3139SAndrey Vagin #define NETLINK_DIAG_MAX (__NETLINK_DIAG_MAX - 1)
48eaaa3139SAndrey Vagin 
49eaaa3139SAndrey Vagin #define NDIAG_PROTO_ALL		((__u8) ~0)
50eaaa3139SAndrey Vagin 
51eaaa3139SAndrey Vagin #define NDIAG_SHOW_MEMINFO	0x00000001 /* show memory info of a socket */
52eaaa3139SAndrey Vagin #define NDIAG_SHOW_GROUPS	0x00000002 /* show groups of a netlink socket */
53d1b4c689SFlorian Westphal #ifndef __KERNEL__
545fb384b0SFabien Siron /* deprecated since 4.6 */
554ae9fbeeSPatrick McHardy #define NDIAG_SHOW_RING_CFG	0x00000004 /* show ring configuration */
56d1b4c689SFlorian Westphal #endif
57457c79e5SAndrey Vagin #define NDIAG_SHOW_FLAGS	0x00000008 /* show flags of a netlink socket */
58457c79e5SAndrey Vagin 
59457c79e5SAndrey Vagin /* flags */
60457c79e5SAndrey Vagin #define NDIAG_FLAG_CB_RUNNING		0x00000001
61457c79e5SAndrey Vagin #define NDIAG_FLAG_PKTINFO		0x00000002
62457c79e5SAndrey Vagin #define NDIAG_FLAG_BROADCAST_ERROR	0x00000004
63457c79e5SAndrey Vagin #define NDIAG_FLAG_NO_ENOBUFS		0x00000008
64457c79e5SAndrey Vagin #define NDIAG_FLAG_LISTEN_ALL_NSID	0x00000010
65457c79e5SAndrey Vagin #define NDIAG_FLAG_CAP_ACK		0x00000020
66eaaa3139SAndrey Vagin 
67eaaa3139SAndrey Vagin #endif
68