1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_INET_DIAG_H_
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_INET_DIAG_H_
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define TCPDIAG_GETSOCK 18
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DCCPDIAG_GETSOCK 19
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define INET_DIAG_GETSOCK_MAX 24
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct inet_diag_sockid {
26d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 idiag_sport;
27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be16 idiag_dport;
28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 idiag_src[4];
29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 idiag_dst[4];
30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_if;
31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_cookie[2];
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define INET_DIAG_NOCOOKIE (~0U)
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct inet_diag_req {
35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_family;
36d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_src_len;
37d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_dst_len;
38d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_ext;
39d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct inet_diag_sockid id;
40d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_states;
41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_dbs;
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct inet_diag_req_v2 {
44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 sdiag_family;
45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 sdiag_protocol;
46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_ext;
47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 pad;
48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_states;
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct inet_diag_sockid id;
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
5148af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferrisstruct inet_diag_req_raw {
5248af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u8 sdiag_family;
5348af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u8 sdiag_protocol;
5448af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u8 idiag_ext;
5548af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u8 sdiag_raw_protocol;
5648af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  __u32 idiag_states;
5748af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris  struct inet_diag_sockid id;
5848af7cb2e205dcc2f09a1a1b8a1a37c93e1943f0Christopher Ferris};
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_REQ_NONE,
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_REQ_BYTECODE,
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct inet_diag_bc_op {
65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char code;
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char yes;
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned short no;
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_NOP,
71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_JMP,
72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_S_GE,
73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_S_LE,
74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_D_GE,
75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_D_LE,
76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_AUTO,
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_S_COND,
78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_BC_D_COND,
7949f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  INET_DIAG_BC_DEV_COND,
806a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_BC_MARK_COND,
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct inet_diag_hostcond {
836a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u8 family;
8449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u8 prefix_len;
85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int port;
86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __be32 addr[0];
87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
886a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisstruct inet_diag_markcond {
896a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 mark;
906a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 mask;
916a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
9249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisstruct inet_diag_msg {
93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_family;
94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 idiag_state;
956a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u8 idiag_timer;
9649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u8 idiag_retrans;
97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct inet_diag_sockid id;
98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_expires;
996a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 idiag_rqueue;
10049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 idiag_wqueue;
101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_uid;
102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_inode;
1036a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
10449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferrisenum {
105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_NONE,
106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_MEMINFO,
1076a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_INFO,
10849f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  INET_DIAG_VEGASINFO,
109d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_CONG,
110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_TOS,
1116a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_TCLASS,
11249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  INET_DIAG_SKMEMINFO,
113d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_SHUTDOWN,
114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  INET_DIAG_DCTCPINFO,
1156a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_PROTOCOL,
11649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  INET_DIAG_SKV6ONLY,
117106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  INET_DIAG_LOCALS,
118106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris  INET_DIAG_PEERS,
1196a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_PAD,
1206a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_MARK,
1216a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  INET_DIAG_BBRINFO,
1221308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  INET_DIAG_CLASS_ID,
1231308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris  INET_DIAG_MD5SIG,
12449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __INET_DIAG_MAX,
12505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
126106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define INET_DIAG_MAX (__INET_DIAG_MAX - 1)
12782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct inet_diag_meminfo {
12849f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 idiag_rmem;
129d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_wmem;
130d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_fmem;
131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 idiag_tmem;
13249f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris};
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct tcpvegas_info {
134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 tcpv_enabled;
135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 tcpv_rttcnt;
13649f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 tcpv_rtt;
137d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 tcpv_minrtt;
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
13982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct tcp_dctcp_info {
14049f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u16 dctcp_enabled;
141d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 dctcp_ce_state;
142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 dctcp_alpha;
143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 dctcp_ab_ecn;
14449f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  __u32 dctcp_ab_tot;
1456a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris};
1466a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferrisstruct tcp_bbr_info {
1476a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 bbr_bw_lo;
1486a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 bbr_bw_hi;
1496a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 bbr_min_rtt;
1506a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 bbr_pacing_gain;
1516a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  __u32 bbr_cwnd_gain;
15282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris};
15305d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisunion tcp_cc_info {
15405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris  struct tcpvegas_info vegas;
15549f525c47bd383cd6a87db8f067cddb3ab620d17Christopher Ferris  struct tcp_dctcp_info dctcp;
1566a9755d20a995756487bb1aafb7e954f4fd868a7Christopher Ferris  struct tcp_bbr_info bbr;
15705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris};
15805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#endif
159