1ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#ifndef __NETLINK_DIAG_H__
2ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#define __NETLINK_DIAG_H__
3ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
4ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#include <linux/types.h>
5ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
6ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vaginstruct netlink_diag_req {
7ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u8	sdiag_family;
8ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u8	sdiag_protocol;
9ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u16	pad;
10ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_ino;
11ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_show;
12ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_cookie[2];
13ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin};
14ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
15ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vaginstruct netlink_diag_msg {
16ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u8	ndiag_family;
17ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u8	ndiag_type;
18ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u8	ndiag_protocol;
19ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u8	ndiag_state;
20ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
21ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_portid;
22ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_dst_portid;
23ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_dst_group;
24ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_ino;
25ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndiag_cookie[2];
26ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin};
27ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
28ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vaginstruct netlink_diag_ring {
29ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndr_block_size;
30ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndr_block_nr;
31ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndr_frame_size;
32ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__u32	ndr_frame_nr;
33ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin};
34ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
35ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vaginenum {
364a79c7a2dcefc1fc16b27303a88622b5539751cbStephen Hemminger	/* NETLINK_DIAG_NONE, standard nl API requires this attribute!  */
37ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	NETLINK_DIAG_MEMINFO,
38ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	NETLINK_DIAG_GROUPS,
39ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	NETLINK_DIAG_RX_RING,
40ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	NETLINK_DIAG_TX_RING,
41ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
42ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin	__NETLINK_DIAG_MAX,
43ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin};
44ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
45ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#define NETLINK_DIAG_MAX (__NETLINK_DIAG_MAX - 1)
46ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
47ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#define NDIAG_PROTO_ALL		((__u8) ~0)
48ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
49ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#define NDIAG_SHOW_MEMINFO	0x00000001 /* show memory info of a socket */
50ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#define NDIAG_SHOW_GROUPS	0x00000002 /* show groups of a netlink socket */
51ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#define NDIAG_SHOW_RING_CFG	0x00000004 /* show ring configuration */
52ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin
53ecb928c876a8f21526b136d2d2b79c4cfc8b4c63Andrey Vagin#endif
54