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