xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/inet_diag.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #ifndef _INET_DIAG_H_
2 #define _INET_DIAG_H_ 1
3 
4 /* Just some random number */
5 #define TCPDIAG_GETSOCK 18
6 #define DCCPDIAG_GETSOCK 19
7 
8 #define INET_DIAG_GETSOCK_MAX 24
9 
10 /* Socket identity */
11 struct inet_diag_sockid {
12 	__be16	idiag_sport;
13 	__be16	idiag_dport;
14 	__be32	idiag_src[4];
15 	__be32	idiag_dst[4];
16 	__u32	idiag_if;
17 	__u32	idiag_cookie[2];
18 #define INET_DIAG_NOCOOKIE (~0U)
19 };
20 
21 /* Request structure */
22 
23 struct inet_diag_req {
24 	__u8	idiag_family;		/* Family of addresses. */
25 	__u8	idiag_src_len;
26 	__u8	idiag_dst_len;
27 	__u8	idiag_ext;		/* Query extended information */
28 
29 	struct inet_diag_sockid id;
30 
31 	__u32	idiag_states;		/* States to dump */
32 	__u32	idiag_dbs;		/* Tables to dump (NI) */
33 };
34 
35 enum {
36 	INET_DIAG_REQ_NONE,
37 	INET_DIAG_REQ_BYTECODE,
38 };
39 
40 #define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
41 
42 /* Bytecode is sequence of 4 byte commands followed by variable arguments.
43  * All the commands identified by "code" are conditional jumps forward:
44  * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be
45  * length of the command and its arguments.
46  */
47 
48 struct inet_diag_bc_op {
49 	unsigned char	code;
50 	unsigned char	yes;
51 	unsigned short	no;
52 };
53 
54 enum {
55 	INET_DIAG_BC_NOP,
56 	INET_DIAG_BC_JMP,
57 	INET_DIAG_BC_S_GE,
58 	INET_DIAG_BC_S_LE,
59 	INET_DIAG_BC_D_GE,
60 	INET_DIAG_BC_D_LE,
61 	INET_DIAG_BC_AUTO,
62 	INET_DIAG_BC_S_COND,
63 	INET_DIAG_BC_D_COND,
64 };
65 
66 struct inet_diag_hostcond {
67 	__u8	family;
68 	__u8	prefix_len;
69 	int	port;
70 	__be32	addr[0];
71 };
72 
73 /* Base info structure. It contains socket identity (addrs/ports/cookie)
74  * and, alas, the information shown by netstat. */
75 struct inet_diag_msg {
76 	__u8	idiag_family;
77 	__u8	idiag_state;
78 	__u8	idiag_timer;
79 	__u8	idiag_retrans;
80 
81 	struct inet_diag_sockid id;
82 
83 	__u32	idiag_expires;
84 	__u32	idiag_rqueue;
85 	__u32	idiag_wqueue;
86 	__u32	idiag_uid;
87 	__u32	idiag_inode;
88 };
89 
90 /* Extensions */
91 
92 enum {
93 	INET_DIAG_NONE,
94 	INET_DIAG_MEMINFO,
95 	INET_DIAG_INFO,
96 	INET_DIAG_VEGASINFO,
97 	INET_DIAG_CONG,
98 };
99 
100 #define INET_DIAG_MAX INET_DIAG_CONG
101 
102 
103 /* INET_DIAG_MEM */
104 
105 struct inet_diag_meminfo {
106 	__u32	idiag_rmem;
107 	__u32	idiag_wmem;
108 	__u32	idiag_fmem;
109 	__u32	idiag_tmem;
110 };
111 
112 /* INET_DIAG_VEGASINFO */
113 
114 struct tcpvegas_info {
115 	__u32	tcpv_enabled;
116 	__u32	tcpv_rttcnt;
117 	__u32	tcpv_rtt;
118 	__u32	tcpv_minrtt;
119 };
120 
121 
122 #endif /* _INET_DIAG_H_ */
123