1 #ifndef _UAPI_INET_DIAG_H_
2 #define _UAPI_INET_DIAG_H_
4 #include <linux/types.h>
6 /* Just some random number */
7 #define TCPDIAG_GETSOCK 18
8 #define DCCPDIAG_GETSOCK 19
10 #define INET_DIAG_GETSOCK_MAX 24
13 struct inet_diag_sockid
{
19 __u32 idiag_cookie
[2];
20 #define INET_DIAG_NOCOOKIE (~0U)
23 /* Request structure */
25 struct inet_diag_req
{
26 __u8 idiag_family
; /* Family of addresses. */
29 __u8 idiag_ext
; /* Query extended information */
31 struct inet_diag_sockid id
;
33 __u32 idiag_states
; /* States to dump */
34 __u32 idiag_dbs
; /* Tables to dump (NI) */
37 struct inet_diag_req_v2
{
43 struct inet_diag_sockid id
;
48 INET_DIAG_REQ_BYTECODE
,
51 #define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
53 /* Bytecode is sequence of 4 byte commands followed by variable arguments.
54 * All the commands identified by "code" are conditional jumps forward:
55 * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be
56 * length of the command and its arguments.
59 struct inet_diag_bc_op
{
75 INET_DIAG_BC_DEV_COND
, /* u32 ifindex */
78 struct inet_diag_hostcond
{
85 /* Base info structure. It contains socket identity (addrs/ports/cookie)
86 * and, alas, the information shown by netstat. */
87 struct inet_diag_msg
{
93 struct inet_diag_sockid id
;
115 INET_DIAG_PROTOCOL
, /* response attribute only */
123 #define INET_DIAG_MAX (__INET_DIAG_MAX - 1)
127 struct inet_diag_meminfo
{
134 /* INET_DIAG_VEGASINFO */
136 struct tcpvegas_info
{
143 /* INET_DIAG_DCTCPINFO */
145 struct tcp_dctcp_info
{
147 __u16 dctcp_ce_state
;
154 struct tcpvegas_info vegas
;
155 struct tcp_dctcp_info dctcp
;
157 #endif /* _UAPI_INET_DIAG_H_ */