strace/linux/netlink_diag.h
JingPiao Chen f731b6b1e6 netlink: decode AF_NETLINK netlink_diag_msg attributes
* linux/netlink_diag.h (netlink_diag_ring): New structure.
(NDIAG_FLAG_*): New macros.
* netlink_sock_diag.c: Include "xlat/netlink_socket_flags.h".
(print_group, decode_netlink_diag_groups, decode_netlink_diag_ring,
decode_netlink_diag_flags): New functions.
(netlink_diag_msg_nla_decoders): New array.
(decode_netlink_diag_msg): Use it.
* xlat/netlink_socket_flags.in: New file.
2017-07-01 00:05:39 +00:00

56 lines
1.2 KiB
C

#ifndef STRACE_LINUX_NETLINK_DIAG_H
#define STRACE_LINUX_NETLINK_DIAG_H
struct netlink_diag_req {
uint8_t sdiag_family;
uint8_t sdiag_protocol;
uint16_t pad;
uint32_t ndiag_ino;
uint32_t ndiag_show;
uint32_t ndiag_cookie[2];
};
struct netlink_diag_msg {
uint8_t ndiag_family;
uint8_t ndiag_type;
uint8_t ndiag_protocol;
uint8_t ndiag_state;
uint32_t ndiag_portid;
uint32_t ndiag_dst_portid;
uint32_t ndiag_dst_group;
uint32_t ndiag_ino;
uint32_t ndiag_cookie[2];
};
struct netlink_diag_ring {
uint32_t ndr_block_size;
uint32_t ndr_block_nr;
uint32_t ndr_frame_size;
uint32_t ndr_frame_nr;
};
enum {
NETLINK_DIAG_MEMINFO,
NETLINK_DIAG_GROUPS,
NETLINK_DIAG_RX_RING,
NETLINK_DIAG_TX_RING,
NETLINK_DIAG_FLAGS,
};
#define NDIAG_SHOW_MEMINFO 0x00000001
#define NDIAG_SHOW_GROUPS 0x00000002
#define NDIAG_SHOW_RING_CFG 0x00000004 /* deprecated since 4.6 */
#define NDIAG_SHOW_FLAGS 0x00000008
#define NDIAG_PROTO_ALL ((uint8_t) ~0)
/* flags */
#define NDIAG_FLAG_CB_RUNNING 0x00000001
#define NDIAG_FLAG_PKTINFO 0x00000002
#define NDIAG_FLAG_BROADCAST_ERROR 0x00000004
#define NDIAG_FLAG_NO_ENOBUFS 0x00000008
#define NDIAG_FLAG_LISTEN_ALL_NSID 0x00000010
#define NDIAG_FLAG_CAP_ACK 0x00000020
#endif /* !STRACE_LINUX_NETLINK_DIAG_H */