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