1*cf84ac9aSAndroid Build Coastguard Worker #ifndef STRACE_LINUX_INET_DIAG_H 2*cf84ac9aSAndroid Build Coastguard Worker #define STRACE_LINUX_INET_DIAG_H 3*cf84ac9aSAndroid Build Coastguard Worker 4*cf84ac9aSAndroid Build Coastguard Worker #define TCPDIAG_GETSOCK 18 5*cf84ac9aSAndroid Build Coastguard Worker #define DCCPDIAG_GETSOCK 19 6*cf84ac9aSAndroid Build Coastguard Worker 7*cf84ac9aSAndroid Build Coastguard Worker /* Socket identity */ 8*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_sockid { 9*cf84ac9aSAndroid Build Coastguard Worker uint16_t idiag_sport; 10*cf84ac9aSAndroid Build Coastguard Worker uint16_t idiag_dport; 11*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_src[4]; 12*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_dst[4]; 13*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_if; 14*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_cookie[2]; 15*cf84ac9aSAndroid Build Coastguard Worker }; 16*cf84ac9aSAndroid Build Coastguard Worker 17*cf84ac9aSAndroid Build Coastguard Worker /* Request structures */ 18*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_req { 19*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_family; 20*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_src_len; 21*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_dst_len; 22*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_ext; 23*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_sockid id; 24*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_states; 25*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_dbs; 26*cf84ac9aSAndroid Build Coastguard Worker }; 27*cf84ac9aSAndroid Build Coastguard Worker 28*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_req_v2 { 29*cf84ac9aSAndroid Build Coastguard Worker uint8_t sdiag_family; 30*cf84ac9aSAndroid Build Coastguard Worker uint8_t sdiag_protocol; 31*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_ext; 32*cf84ac9aSAndroid Build Coastguard Worker uint8_t pad; 33*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_states; 34*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_sockid id; 35*cf84ac9aSAndroid Build Coastguard Worker }; 36*cf84ac9aSAndroid Build Coastguard Worker 37*cf84ac9aSAndroid Build Coastguard Worker enum { 38*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_REQ_NONE, 39*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_REQ_BYTECODE, 40*cf84ac9aSAndroid Build Coastguard Worker }; 41*cf84ac9aSAndroid Build Coastguard Worker 42*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_bc_op { 43*cf84ac9aSAndroid Build Coastguard Worker unsigned char code; 44*cf84ac9aSAndroid Build Coastguard Worker unsigned char yes; 45*cf84ac9aSAndroid Build Coastguard Worker unsigned short no; 46*cf84ac9aSAndroid Build Coastguard Worker }; 47*cf84ac9aSAndroid Build Coastguard Worker 48*cf84ac9aSAndroid Build Coastguard Worker enum { 49*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_NOP, 50*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_JMP, 51*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_S_GE, 52*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_S_LE, 53*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_D_GE, 54*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_D_LE, 55*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_AUTO, 56*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_S_COND, 57*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_D_COND, 58*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_DEV_COND, /* u32 ifindex */ 59*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_MARK_COND, 60*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_S_EQ, 61*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BC_D_EQ, 62*cf84ac9aSAndroid Build Coastguard Worker }; 63*cf84ac9aSAndroid Build Coastguard Worker 64*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_hostcond { 65*cf84ac9aSAndroid Build Coastguard Worker uint8_t family; 66*cf84ac9aSAndroid Build Coastguard Worker uint8_t prefix_len; 67*cf84ac9aSAndroid Build Coastguard Worker int port; 68*cf84ac9aSAndroid Build Coastguard Worker uint32_t addr[0]; 69*cf84ac9aSAndroid Build Coastguard Worker }; 70*cf84ac9aSAndroid Build Coastguard Worker 71*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_markcond { 72*cf84ac9aSAndroid Build Coastguard Worker uint32_t mark; 73*cf84ac9aSAndroid Build Coastguard Worker uint32_t mask; 74*cf84ac9aSAndroid Build Coastguard Worker }; 75*cf84ac9aSAndroid Build Coastguard Worker 76*cf84ac9aSAndroid Build Coastguard Worker /* Info structure */ 77*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_msg { 78*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_family; 79*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_state; 80*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_timer; 81*cf84ac9aSAndroid Build Coastguard Worker uint8_t idiag_retrans; 82*cf84ac9aSAndroid Build Coastguard Worker 83*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_sockid id; 84*cf84ac9aSAndroid Build Coastguard Worker 85*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_expires; 86*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_rqueue; 87*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_wqueue; 88*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_uid; 89*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_inode; 90*cf84ac9aSAndroid Build Coastguard Worker }; 91*cf84ac9aSAndroid Build Coastguard Worker 92*cf84ac9aSAndroid Build Coastguard Worker /* Extensions */ 93*cf84ac9aSAndroid Build Coastguard Worker enum { 94*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_NONE, 95*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_MEMINFO, 96*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_INFO, 97*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_VEGASINFO, 98*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_CONG, 99*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_TOS, 100*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_TCLASS, 101*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_SKMEMINFO, 102*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_SHUTDOWN, 103*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_DCTCPINFO, 104*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_PROTOCOL, /* response attribute only */ 105*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_SKV6ONLY, 106*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_LOCALS, 107*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_PEERS, 108*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_PAD, 109*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_MARK, 110*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_BBRINFO, 111*cf84ac9aSAndroid Build Coastguard Worker INET_DIAG_CLASS_ID, 112*cf84ac9aSAndroid Build Coastguard Worker }; 113*cf84ac9aSAndroid Build Coastguard Worker 114*cf84ac9aSAndroid Build Coastguard Worker /* INET_DIAG_MEM */ 115*cf84ac9aSAndroid Build Coastguard Worker struct inet_diag_meminfo { 116*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_rmem; 117*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_wmem; 118*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_fmem; 119*cf84ac9aSAndroid Build Coastguard Worker uint32_t idiag_tmem; 120*cf84ac9aSAndroid Build Coastguard Worker }; 121*cf84ac9aSAndroid Build Coastguard Worker 122*cf84ac9aSAndroid Build Coastguard Worker /* INET_DIAG_VEGASINFO */ 123*cf84ac9aSAndroid Build Coastguard Worker struct tcpvegas_info { 124*cf84ac9aSAndroid Build Coastguard Worker uint32_t tcpv_enabled; 125*cf84ac9aSAndroid Build Coastguard Worker uint32_t tcpv_rttcnt; 126*cf84ac9aSAndroid Build Coastguard Worker uint32_t tcpv_rtt; 127*cf84ac9aSAndroid Build Coastguard Worker uint32_t tcpv_minrtt; 128*cf84ac9aSAndroid Build Coastguard Worker }; 129*cf84ac9aSAndroid Build Coastguard Worker 130*cf84ac9aSAndroid Build Coastguard Worker /* INET_DIAG_DCTCPINFO */ 131*cf84ac9aSAndroid Build Coastguard Worker struct tcp_dctcp_info { 132*cf84ac9aSAndroid Build Coastguard Worker uint16_t dctcp_enabled; 133*cf84ac9aSAndroid Build Coastguard Worker uint16_t dctcp_ce_state; 134*cf84ac9aSAndroid Build Coastguard Worker uint32_t dctcp_alpha; 135*cf84ac9aSAndroid Build Coastguard Worker uint32_t dctcp_ab_ecn; 136*cf84ac9aSAndroid Build Coastguard Worker uint32_t dctcp_ab_tot; 137*cf84ac9aSAndroid Build Coastguard Worker }; 138*cf84ac9aSAndroid Build Coastguard Worker 139*cf84ac9aSAndroid Build Coastguard Worker /* INET_DIAG_BBRINFO */ 140*cf84ac9aSAndroid Build Coastguard Worker struct tcp_bbr_info { 141*cf84ac9aSAndroid Build Coastguard Worker uint32_t bbr_bw_lo; 142*cf84ac9aSAndroid Build Coastguard Worker uint32_t bbr_bw_hi; 143*cf84ac9aSAndroid Build Coastguard Worker uint32_t bbr_min_rtt; 144*cf84ac9aSAndroid Build Coastguard Worker uint32_t bbr_pacing_gain; 145*cf84ac9aSAndroid Build Coastguard Worker uint32_t bbr_cwnd_gain; 146*cf84ac9aSAndroid Build Coastguard Worker }; 147*cf84ac9aSAndroid Build Coastguard Worker 148*cf84ac9aSAndroid Build Coastguard Worker #endif /* !STRACE_LINUX_INET_DIAG_H */ 149