blob: 5df55efc4b45a99b7d0d19a7e09055b324c18d35 [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,
Christopher Ferris76a1d452018-06-27 14:12:29 -070081 INET_DIAG_BC_S_EQ,
82 INET_DIAG_BC_D_EQ,
Ben Cheng655a7c02013-10-16 16:09:24 -070083};
84struct inet_diag_hostcond {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080085 __u8 family;
Christopher Ferris49f525c2016-12-12 14:55:36 -080086 __u8 prefix_len;
Tao Baod7db5942015-01-28 10:07:51 -080087 int port;
88 __be32 addr[0];
Christopher Ferris6a9755d2017-01-13 14:09:31 -080089};
90struct inet_diag_markcond {
91 __u32 mark;
92 __u32 mask;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080093};
Christopher Ferris49f525c2016-12-12 14:55:36 -080094struct inet_diag_msg {
Tao Baod7db5942015-01-28 10:07:51 -080095 __u8 idiag_family;
96 __u8 idiag_state;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080097 __u8 idiag_timer;
Christopher Ferris49f525c2016-12-12 14:55:36 -080098 __u8 idiag_retrans;
Tao Baod7db5942015-01-28 10:07:51 -080099 struct inet_diag_sockid id;
100 __u32 idiag_expires;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800101 __u32 idiag_rqueue;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800102 __u32 idiag_wqueue;
Tao Baod7db5942015-01-28 10:07:51 -0800103 __u32 idiag_uid;
104 __u32 idiag_inode;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800105};
Christopher Ferris49f525c2016-12-12 14:55:36 -0800106enum {
Tao Baod7db5942015-01-28 10:07:51 -0800107 INET_DIAG_NONE,
108 INET_DIAG_MEMINFO,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800109 INET_DIAG_INFO,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800110 INET_DIAG_VEGASINFO,
Tao Baod7db5942015-01-28 10:07:51 -0800111 INET_DIAG_CONG,
112 INET_DIAG_TOS,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800113 INET_DIAG_TCLASS,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800114 INET_DIAG_SKMEMINFO,
Tao Baod7db5942015-01-28 10:07:51 -0800115 INET_DIAG_SHUTDOWN,
116 INET_DIAG_DCTCPINFO,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800117 INET_DIAG_PROTOCOL,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800118 INET_DIAG_SKV6ONLY,
Christopher Ferris106b3a82016-08-24 12:15:38 -0700119 INET_DIAG_LOCALS,
120 INET_DIAG_PEERS,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800121 INET_DIAG_PAD,
122 INET_DIAG_MARK,
123 INET_DIAG_BBRINFO,
Christopher Ferris1308ad32017-11-14 17:32:13 -0800124 INET_DIAG_CLASS_ID,
125 INET_DIAG_MD5SIG,
Christopher Ferris9584fa42019-12-09 15:36:13 -0800126 INET_DIAG_ULP_INFO,
Christopher Ferris49f525c2016-12-12 14:55:36 -0800127 __INET_DIAG_MAX,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800128};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700129#define INET_DIAG_MAX (__INET_DIAG_MAX - 1)
Christopher Ferris9584fa42019-12-09 15:36:13 -0800130enum {
131 INET_ULP_INFO_UNSPEC,
132 INET_ULP_INFO_NAME,
133 INET_ULP_INFO_TLS,
134 __INET_ULP_INFO_MAX,
135};
136#define INET_ULP_INFO_MAX (__INET_ULP_INFO_MAX - 1)
Christopher Ferris82d75042015-01-26 10:57:07 -0800137struct inet_diag_meminfo {
Christopher Ferris49f525c2016-12-12 14:55:36 -0800138 __u32 idiag_rmem;
Tao Baod7db5942015-01-28 10:07:51 -0800139 __u32 idiag_wmem;
140 __u32 idiag_fmem;
Tao Baod7db5942015-01-28 10:07:51 -0800141 __u32 idiag_tmem;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800142};
Ben Cheng655a7c02013-10-16 16:09:24 -0700143struct tcpvegas_info {
Tao Baod7db5942015-01-28 10:07:51 -0800144 __u32 tcpv_enabled;
Tao Baod7db5942015-01-28 10:07:51 -0800145 __u32 tcpv_rttcnt;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800146 __u32 tcpv_rtt;
Tao Baod7db5942015-01-28 10:07:51 -0800147 __u32 tcpv_minrtt;
Ben Cheng655a7c02013-10-16 16:09:24 -0700148};
Christopher Ferris82d75042015-01-26 10:57:07 -0800149struct tcp_dctcp_info {
Christopher Ferris49f525c2016-12-12 14:55:36 -0800150 __u16 dctcp_enabled;
Tao Baod7db5942015-01-28 10:07:51 -0800151 __u16 dctcp_ce_state;
152 __u32 dctcp_alpha;
Tao Baod7db5942015-01-28 10:07:51 -0800153 __u32 dctcp_ab_ecn;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800154 __u32 dctcp_ab_tot;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800155};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800156struct tcp_bbr_info {
157 __u32 bbr_bw_lo;
158 __u32 bbr_bw_hi;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800159 __u32 bbr_min_rtt;
160 __u32 bbr_pacing_gain;
161 __u32 bbr_cwnd_gain;
162};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800163union tcp_cc_info {
164 struct tcpvegas_info vegas;
Christopher Ferris49f525c2016-12-12 14:55:36 -0800165 struct tcp_dctcp_info dctcp;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800166 struct tcp_bbr_info bbr;
Christopher Ferris82d75042015-01-26 10:57:07 -0800167};
Ben Cheng655a7c02013-10-16 16:09:24 -0700168#endif