blob: 47a3b343960db6a3dd029b12dc14bade13c76b5f [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_INET_DIAG_H_
20#define _UAPI_INET_DIAG_H_
21#include <linux/types.h>
22#define TCPDIAG_GETSOCK 18
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define DCCPDIAG_GETSOCK 19
24#define INET_DIAG_GETSOCK_MAX 24
25struct inet_diag_sockid {
Tao Baod7db5942015-01-28 10:07:51 -080026 __be16 idiag_sport;
Tao Baod7db5942015-01-28 10:07:51 -080027 __be16 idiag_dport;
28 __be32 idiag_src[4];
29 __be32 idiag_dst[4];
30 __u32 idiag_if;
Tao Baod7db5942015-01-28 10:07:51 -080031 __u32 idiag_cookie[2];
Ben Cheng655a7c02013-10-16 16:09:24 -070032#define INET_DIAG_NOCOOKIE (~0U)
33};
34struct inet_diag_req {
Tao Baod7db5942015-01-28 10:07:51 -080035 __u8 idiag_family;
36 __u8 idiag_src_len;
37 __u8 idiag_dst_len;
38 __u8 idiag_ext;
Tao Baod7db5942015-01-28 10:07:51 -080039 struct inet_diag_sockid id;
40 __u32 idiag_states;
41 __u32 idiag_dbs;
Ben Cheng655a7c02013-10-16 16:09:24 -070042};
Ben Cheng655a7c02013-10-16 16:09:24 -070043struct inet_diag_req_v2 {
Tao Baod7db5942015-01-28 10:07:51 -080044 __u8 sdiag_family;
45 __u8 sdiag_protocol;
46 __u8 idiag_ext;
Tao Baod7db5942015-01-28 10:07:51 -080047 __u8 pad;
48 __u32 idiag_states;
49 struct inet_diag_sockid id;
Ben Cheng655a7c02013-10-16 16:09:24 -070050};
Christopher Ferris48af7cb2017-02-21 12:35:09 -080051struct inet_diag_req_raw {
52 __u8 sdiag_family;
53 __u8 sdiag_protocol;
54 __u8 idiag_ext;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080055 __u8 sdiag_raw_protocol;
56 __u32 idiag_states;
57 struct inet_diag_sockid id;
58};
Ben Cheng655a7c02013-10-16 16:09:24 -070059enum {
Tao Baod7db5942015-01-28 10:07:51 -080060 INET_DIAG_REQ_NONE,
61 INET_DIAG_REQ_BYTECODE,
Ben Cheng655a7c02013-10-16 16:09:24 -070062};
Ben Cheng655a7c02013-10-16 16:09:24 -070063#define INET_DIAG_REQ_MAX INET_DIAG_REQ_BYTECODE
64struct inet_diag_bc_op {
Tao Baod7db5942015-01-28 10:07:51 -080065 unsigned char code;
66 unsigned char yes;
Tao Baod7db5942015-01-28 10:07:51 -080067 unsigned short no;
Ben Cheng655a7c02013-10-16 16:09:24 -070068};
69enum {
Tao Baod7db5942015-01-28 10:07:51 -080070 INET_DIAG_BC_NOP,
Tao Baod7db5942015-01-28 10:07:51 -080071 INET_DIAG_BC_JMP,
72 INET_DIAG_BC_S_GE,
73 INET_DIAG_BC_S_LE,
74 INET_DIAG_BC_D_GE,
Tao Baod7db5942015-01-28 10:07:51 -080075 INET_DIAG_BC_D_LE,
76 INET_DIAG_BC_AUTO,
77 INET_DIAG_BC_S_COND,
78 INET_DIAG_BC_D_COND,
Christopher Ferris49f525c2016-12-12 14:55:36 -080079 INET_DIAG_BC_DEV_COND,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080080 INET_DIAG_BC_MARK_COND,
Ben Cheng655a7c02013-10-16 16:09:24 -070081};
82struct inet_diag_hostcond {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080083 __u8 family;
Christopher Ferris49f525c2016-12-12 14:55:36 -080084 __u8 prefix_len;
Tao Baod7db5942015-01-28 10:07:51 -080085 int port;
86 __be32 addr[0];
Christopher Ferris6a9755d2017-01-13 14:09:31 -080087};
88struct inet_diag_markcond {
89 __u32 mark;
90 __u32 mask;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080091};
Christopher Ferris49f525c2016-12-12 14:55:36 -080092struct inet_diag_msg {
Tao Baod7db5942015-01-28 10:07:51 -080093 __u8 idiag_family;
94 __u8 idiag_state;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080095 __u8 idiag_timer;
Christopher Ferris49f525c2016-12-12 14:55:36 -080096 __u8 idiag_retrans;
Tao Baod7db5942015-01-28 10:07:51 -080097 struct inet_diag_sockid id;
98 __u32 idiag_expires;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080099 __u32 idiag_rqueue;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800100 __u32 idiag_wqueue;
Tao Baod7db5942015-01-28 10:07:51 -0800101 __u32 idiag_uid;
102 __u32 idiag_inode;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800103};
Christopher Ferris49f525c2016-12-12 14:55:36 -0800104enum {
Tao Baod7db5942015-01-28 10:07:51 -0800105 INET_DIAG_NONE,
106 INET_DIAG_MEMINFO,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800107 INET_DIAG_INFO,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800108 INET_DIAG_VEGASINFO,
Tao Baod7db5942015-01-28 10:07:51 -0800109 INET_DIAG_CONG,
110 INET_DIAG_TOS,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800111 INET_DIAG_TCLASS,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800112 INET_DIAG_SKMEMINFO,
Tao Baod7db5942015-01-28 10:07:51 -0800113 INET_DIAG_SHUTDOWN,
114 INET_DIAG_DCTCPINFO,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800115 INET_DIAG_PROTOCOL,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800116 INET_DIAG_SKV6ONLY,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700117 INET_DIAG_LOCALS,
118 INET_DIAG_PEERS,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800119 INET_DIAG_PAD,
120 INET_DIAG_MARK,
121 INET_DIAG_BBRINFO,
Christopher Ferris1308ad32017-11-14 17:32:13 -0800122 INET_DIAG_CLASS_ID,
123 INET_DIAG_MD5SIG,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800124 __INET_DIAG_MAX,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800125};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700126#define INET_DIAG_MAX (__INET_DIAG_MAX - 1)
Christopher Ferris82d75042015-01-26 10:57:07 -0800127struct inet_diag_meminfo {
Christopher Ferris49f525c2016-12-12 14:55:36 -0800128 __u32 idiag_rmem;
Tao Baod7db5942015-01-28 10:07:51 -0800129 __u32 idiag_wmem;
130 __u32 idiag_fmem;
Tao Baod7db5942015-01-28 10:07:51 -0800131 __u32 idiag_tmem;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800132};
Ben Cheng655a7c02013-10-16 16:09:24 -0700133struct tcpvegas_info {
Tao Baod7db5942015-01-28 10:07:51 -0800134 __u32 tcpv_enabled;
Tao Baod7db5942015-01-28 10:07:51 -0800135 __u32 tcpv_rttcnt;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800136 __u32 tcpv_rtt;
Tao Baod7db5942015-01-28 10:07:51 -0800137 __u32 tcpv_minrtt;
Ben Cheng655a7c02013-10-16 16:09:24 -0700138};
Christopher Ferris82d75042015-01-26 10:57:07 -0800139struct tcp_dctcp_info {
Christopher Ferris49f525c2016-12-12 14:55:36 -0800140 __u16 dctcp_enabled;
Tao Baod7db5942015-01-28 10:07:51 -0800141 __u16 dctcp_ce_state;
142 __u32 dctcp_alpha;
Tao Baod7db5942015-01-28 10:07:51 -0800143 __u32 dctcp_ab_ecn;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800144 __u32 dctcp_ab_tot;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800145};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800146struct tcp_bbr_info {
147 __u32 bbr_bw_lo;
148 __u32 bbr_bw_hi;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800149 __u32 bbr_min_rtt;
150 __u32 bbr_pacing_gain;
151 __u32 bbr_cwnd_gain;
152};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800153union tcp_cc_info {
154 struct tcpvegas_info vegas;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800155 struct tcp_dctcp_info dctcp;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800156 struct tcp_bbr_info bbr;
Christopher Ferris82d75042015-01-26 10:57:07 -0800157};
Ben Cheng655a7c02013-10-16 16:09:24 -0700158#endif