1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI_INET_DIAG_H_ 8 #define _UAPI_INET_DIAG_H_ 9 #include <linux/types.h> 10 #define TCPDIAG_GETSOCK 18 11 #define DCCPDIAG_GETSOCK 19 12 #define INET_DIAG_GETSOCK_MAX 24 13 struct inet_diag_sockid { 14 __be16 idiag_sport; 15 __be16 idiag_dport; 16 __be32 idiag_src[4]; 17 __be32 idiag_dst[4]; 18 __u32 idiag_if; 19 __u32 idiag_cookie[2]; 20 #define INET_DIAG_NOCOOKIE (~0U) 21 }; 22 struct inet_diag_req { 23 __u8 idiag_family; 24 __u8 idiag_src_len; 25 __u8 idiag_dst_len; 26 __u8 idiag_ext; 27 struct inet_diag_sockid id; 28 __u32 idiag_states; 29 __u32 idiag_dbs; 30 }; 31 struct inet_diag_req_v2 { 32 __u8 sdiag_family; 33 __u8 sdiag_protocol; 34 __u8 idiag_ext; 35 __u8 pad; 36 __u32 idiag_states; 37 struct inet_diag_sockid id; 38 }; 39 struct inet_diag_req_raw { 40 __u8 sdiag_family; 41 __u8 sdiag_protocol; 42 __u8 idiag_ext; 43 __u8 sdiag_raw_protocol; 44 __u32 idiag_states; 45 struct inet_diag_sockid id; 46 }; 47 enum { 48 INET_DIAG_REQ_NONE, 49 INET_DIAG_REQ_BYTECODE, 50 INET_DIAG_REQ_SK_BPF_STORAGES, 51 INET_DIAG_REQ_PROTOCOL, 52 __INET_DIAG_REQ_MAX, 53 }; 54 #define INET_DIAG_REQ_MAX (__INET_DIAG_REQ_MAX - 1) 55 struct inet_diag_bc_op { 56 unsigned char code; 57 unsigned char yes; 58 unsigned short no; 59 }; 60 enum { 61 INET_DIAG_BC_NOP, 62 INET_DIAG_BC_JMP, 63 INET_DIAG_BC_S_GE, 64 INET_DIAG_BC_S_LE, 65 INET_DIAG_BC_D_GE, 66 INET_DIAG_BC_D_LE, 67 INET_DIAG_BC_AUTO, 68 INET_DIAG_BC_S_COND, 69 INET_DIAG_BC_D_COND, 70 INET_DIAG_BC_DEV_COND, 71 INET_DIAG_BC_MARK_COND, 72 INET_DIAG_BC_S_EQ, 73 INET_DIAG_BC_D_EQ, 74 INET_DIAG_BC_CGROUP_COND, 75 }; 76 struct inet_diag_hostcond { 77 __u8 family; 78 __u8 prefix_len; 79 int port; 80 __be32 addr[]; 81 }; 82 struct inet_diag_markcond { 83 __u32 mark; 84 __u32 mask; 85 }; 86 struct inet_diag_msg { 87 __u8 idiag_family; 88 __u8 idiag_state; 89 __u8 idiag_timer; 90 __u8 idiag_retrans; 91 struct inet_diag_sockid id; 92 __u32 idiag_expires; 93 __u32 idiag_rqueue; 94 __u32 idiag_wqueue; 95 __u32 idiag_uid; 96 __u32 idiag_inode; 97 }; 98 enum { 99 INET_DIAG_NONE, 100 INET_DIAG_MEMINFO, 101 INET_DIAG_INFO, 102 INET_DIAG_VEGASINFO, 103 INET_DIAG_CONG, 104 INET_DIAG_TOS, 105 INET_DIAG_TCLASS, 106 INET_DIAG_SKMEMINFO, 107 INET_DIAG_SHUTDOWN, 108 INET_DIAG_DCTCPINFO, 109 INET_DIAG_PROTOCOL, 110 INET_DIAG_SKV6ONLY, 111 INET_DIAG_LOCALS, 112 INET_DIAG_PEERS, 113 INET_DIAG_PAD, 114 INET_DIAG_MARK, 115 INET_DIAG_BBRINFO, 116 INET_DIAG_CLASS_ID, 117 INET_DIAG_MD5SIG, 118 INET_DIAG_ULP_INFO, 119 INET_DIAG_SK_BPF_STORAGES, 120 INET_DIAG_CGROUP_ID, 121 INET_DIAG_SOCKOPT, 122 __INET_DIAG_MAX, 123 }; 124 #define INET_DIAG_MAX (__INET_DIAG_MAX - 1) 125 enum { 126 INET_ULP_INFO_UNSPEC, 127 INET_ULP_INFO_NAME, 128 INET_ULP_INFO_TLS, 129 INET_ULP_INFO_MPTCP, 130 __INET_ULP_INFO_MAX, 131 }; 132 #define INET_ULP_INFO_MAX (__INET_ULP_INFO_MAX - 1) 133 struct inet_diag_meminfo { 134 __u32 idiag_rmem; 135 __u32 idiag_wmem; 136 __u32 idiag_fmem; 137 __u32 idiag_tmem; 138 }; 139 struct inet_diag_sockopt { 140 __u8 recverr : 1, is_icsk : 1, freebind : 1, hdrincl : 1, mc_loop : 1, transparent : 1, mc_all : 1, nodefrag : 1; 141 __u8 bind_address_no_port : 1, recverr_rfc4884 : 1, defer_connect : 1, unused : 5; 142 }; 143 struct tcpvegas_info { 144 __u32 tcpv_enabled; 145 __u32 tcpv_rttcnt; 146 __u32 tcpv_rtt; 147 __u32 tcpv_minrtt; 148 }; 149 struct tcp_dctcp_info { 150 __u16 dctcp_enabled; 151 __u16 dctcp_ce_state; 152 __u32 dctcp_alpha; 153 __u32 dctcp_ab_ecn; 154 __u32 dctcp_ab_tot; 155 }; 156 struct tcp_bbr_info { 157 __u32 bbr_bw_lo; 158 __u32 bbr_bw_hi; 159 __u32 bbr_min_rtt; 160 __u32 bbr_pacing_gain; 161 __u32 bbr_cwnd_gain; 162 }; 163 union tcp_cc_info { 164 struct tcpvegas_info vegas; 165 struct tcp_dctcp_info dctcp; 166 struct tcp_bbr_info bbr; 167 }; 168 #endif 169