master
 1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 2#ifndef __NETLINK_DIAG_H__
 3#define __NETLINK_DIAG_H__
 4
 5#include <linux/types.h>
 6
 7struct netlink_diag_req {
 8	__u8	sdiag_family;
 9	__u8	sdiag_protocol;
10	__u16	pad;
11	__u32	ndiag_ino;
12	__u32	ndiag_show;
13	__u32	ndiag_cookie[2];
14};
15
16struct netlink_diag_msg {
17	__u8	ndiag_family;
18	__u8	ndiag_type;
19	__u8	ndiag_protocol;
20	__u8	ndiag_state;
21
22	__u32	ndiag_portid;
23	__u32	ndiag_dst_portid;
24	__u32	ndiag_dst_group;
25	__u32	ndiag_ino;
26	__u32	ndiag_cookie[2];
27};
28
29struct netlink_diag_ring {
30	__u32	ndr_block_size;
31	__u32	ndr_block_nr;
32	__u32	ndr_frame_size;
33	__u32	ndr_frame_nr;
34};
35
36enum {
37	/* NETLINK_DIAG_NONE, standard nl API requires this attribute!  */
38	NETLINK_DIAG_MEMINFO,
39	NETLINK_DIAG_GROUPS,
40	NETLINK_DIAG_RX_RING,
41	NETLINK_DIAG_TX_RING,
42	NETLINK_DIAG_FLAGS,
43
44	__NETLINK_DIAG_MAX,
45};
46
47#define NETLINK_DIAG_MAX (__NETLINK_DIAG_MAX - 1)
48
49#define NDIAG_PROTO_ALL		((__u8) ~0)
50
51#define NDIAG_SHOW_MEMINFO	0x00000001 /* show memory info of a socket */
52#define NDIAG_SHOW_GROUPS	0x00000002 /* show groups of a netlink socket */
53/* deprecated since 4.6 */
54#define NDIAG_SHOW_RING_CFG	0x00000004 /* show ring configuration */
55#define NDIAG_SHOW_FLAGS	0x00000008 /* show flags of a netlink socket */
56
57/* flags */
58#define NDIAG_FLAG_CB_RUNNING		0x00000001
59#define NDIAG_FLAG_PKTINFO		0x00000002
60#define NDIAG_FLAG_BROADCAST_ERROR	0x00000004
61#define NDIAG_FLAG_NO_ENOBUFS		0x00000008
62#define NDIAG_FLAG_LISTEN_ALL_NSID	0x00000010
63#define NDIAG_FLAG_CAP_ACK		0x00000020
64
65#endif