122851890Sopenharmony_ci/****************************************************************************
222851890Sopenharmony_ci ****************************************************************************
322851890Sopenharmony_ci ***
422851890Sopenharmony_ci ***   This header was automatically generated from a Linux kernel header
522851890Sopenharmony_ci ***   of the same name, to make information necessary for userspace to
622851890Sopenharmony_ci ***   call into the kernel available to libc.  It contains only constants,
722851890Sopenharmony_ci ***   structures, and macros generated from the original header, and thus,
822851890Sopenharmony_ci ***   contains no copyrightable information.
922851890Sopenharmony_ci ***
1022851890Sopenharmony_ci ***   To edit the content of this header, modify the corresponding
1122851890Sopenharmony_ci ***   source file (e.g. under external/kernel-headers/original/) then
1222851890Sopenharmony_ci ***   run bionic/libc/kernel/tools/update_all.py
1322851890Sopenharmony_ci ***
1422851890Sopenharmony_ci ***   Any manual change here will be lost the next time this script will
1522851890Sopenharmony_ci ***   be run. You've been warned!
1622851890Sopenharmony_ci ***
1722851890Sopenharmony_ci ****************************************************************************
1822851890Sopenharmony_ci ****************************************************************************/
1922851890Sopenharmony_ci#ifndef _UAPI_INET_DIAG_H_
2022851890Sopenharmony_ci#define _UAPI_INET_DIAG_H_
2122851890Sopenharmony_ci#include <linux/types.h>
2222851890Sopenharmony_ci#define TCPDIAG_GETSOCK 18
2322851890Sopenharmony_ci#define DCCPDIAG_GETSOCK 19
2422851890Sopenharmony_ci#define INET_DIAG_GETSOCK_MAX 24
2522851890Sopenharmony_cistruct inet_diag_sockid {
2622851890Sopenharmony_ci  __be16 idiag_sport;
2722851890Sopenharmony_ci  __be16 idiag_dport;
2822851890Sopenharmony_ci  __be32 idiag_src[4];
2922851890Sopenharmony_ci  __be32 idiag_dst[4];
3022851890Sopenharmony_ci  __u32 idiag_if;
3122851890Sopenharmony_ci  __u32 idiag_cookie[2];
3222851890Sopenharmony_ci#define INET_DIAG_NOCOOKIE (~0U)
3322851890Sopenharmony_ci};
3422851890Sopenharmony_cistruct inet_diag_req {
3522851890Sopenharmony_ci  __u8 idiag_family;
3622851890Sopenharmony_ci  __u8 idiag_src_len;
3722851890Sopenharmony_ci  __u8 idiag_dst_len;
3822851890Sopenharmony_ci  __u8 idiag_ext;
3922851890Sopenharmony_ci  struct inet_diag_sockid id;
4022851890Sopenharmony_ci  __u32 idiag_states;
4122851890Sopenharmony_ci  __u32 idiag_dbs;
4222851890Sopenharmony_ci};
4322851890Sopenharmony_cistruct inet_diag_req_v2 {
4422851890Sopenharmony_ci  __u8 sdiag_family;
4522851890Sopenharmony_ci  __u8 sdiag_protocol;
4622851890Sopenharmony_ci  __u8 idiag_ext;
4722851890Sopenharmony_ci  __u8 pad;
4822851890Sopenharmony_ci  __u32 idiag_states;
4922851890Sopenharmony_ci  struct inet_diag_sockid id;
5022851890Sopenharmony_ci};
5122851890Sopenharmony_cistruct inet_diag_req_raw {
5222851890Sopenharmony_ci  __u8 sdiag_family;
5322851890Sopenharmony_ci  __u8 sdiag_protocol;
5422851890Sopenharmony_ci  __u8 idiag_ext;
5522851890Sopenharmony_ci  __u8 sdiag_raw_protocol;
5622851890Sopenharmony_ci  __u32 idiag_states;
5722851890Sopenharmony_ci  struct inet_diag_sockid id;
5822851890Sopenharmony_ci};
5922851890Sopenharmony_cienum {
6022851890Sopenharmony_ci  INET_DIAG_REQ_NONE,
6122851890Sopenharmony_ci  INET_DIAG_REQ_BYTECODE,
6222851890Sopenharmony_ci  INET_DIAG_REQ_SK_BPF_STORAGES,
6322851890Sopenharmony_ci  INET_DIAG_REQ_PROTOCOL,
6422851890Sopenharmony_ci  __INET_DIAG_REQ_MAX,
6522851890Sopenharmony_ci};
6622851890Sopenharmony_ci#define INET_DIAG_REQ_MAX (__INET_DIAG_REQ_MAX - 1)
6722851890Sopenharmony_cistruct inet_diag_bc_op {
6822851890Sopenharmony_ci  unsigned char code;
6922851890Sopenharmony_ci  unsigned char yes;
7022851890Sopenharmony_ci  unsigned short no;
7122851890Sopenharmony_ci};
7222851890Sopenharmony_cienum {
7322851890Sopenharmony_ci  INET_DIAG_BC_NOP,
7422851890Sopenharmony_ci  INET_DIAG_BC_JMP,
7522851890Sopenharmony_ci  INET_DIAG_BC_S_GE,
7622851890Sopenharmony_ci  INET_DIAG_BC_S_LE,
7722851890Sopenharmony_ci  INET_DIAG_BC_D_GE,
7822851890Sopenharmony_ci  INET_DIAG_BC_D_LE,
7922851890Sopenharmony_ci  INET_DIAG_BC_AUTO,
8022851890Sopenharmony_ci  INET_DIAG_BC_S_COND,
8122851890Sopenharmony_ci  INET_DIAG_BC_D_COND,
8222851890Sopenharmony_ci  INET_DIAG_BC_DEV_COND,
8322851890Sopenharmony_ci  INET_DIAG_BC_MARK_COND,
8422851890Sopenharmony_ci  INET_DIAG_BC_S_EQ,
8522851890Sopenharmony_ci  INET_DIAG_BC_D_EQ,
8622851890Sopenharmony_ci  INET_DIAG_BC_CGROUP_COND,
8722851890Sopenharmony_ci};
8822851890Sopenharmony_cistruct inet_diag_hostcond {
8922851890Sopenharmony_ci  __u8 family;
9022851890Sopenharmony_ci  __u8 prefix_len;
9122851890Sopenharmony_ci  int port;
9222851890Sopenharmony_ci  __be32 addr[0];
9322851890Sopenharmony_ci};
9422851890Sopenharmony_cistruct inet_diag_markcond {
9522851890Sopenharmony_ci  __u32 mark;
9622851890Sopenharmony_ci  __u32 mask;
9722851890Sopenharmony_ci};
9822851890Sopenharmony_cistruct inet_diag_msg {
9922851890Sopenharmony_ci  __u8 idiag_family;
10022851890Sopenharmony_ci  __u8 idiag_state;
10122851890Sopenharmony_ci  __u8 idiag_timer;
10222851890Sopenharmony_ci  __u8 idiag_retrans;
10322851890Sopenharmony_ci  struct inet_diag_sockid id;
10422851890Sopenharmony_ci  __u32 idiag_expires;
10522851890Sopenharmony_ci  __u32 idiag_rqueue;
10622851890Sopenharmony_ci  __u32 idiag_wqueue;
10722851890Sopenharmony_ci  __u32 idiag_uid;
10822851890Sopenharmony_ci  __u32 idiag_inode;
10922851890Sopenharmony_ci};
11022851890Sopenharmony_cienum {
11122851890Sopenharmony_ci  INET_DIAG_NONE,
11222851890Sopenharmony_ci  INET_DIAG_MEMINFO,
11322851890Sopenharmony_ci  INET_DIAG_INFO,
11422851890Sopenharmony_ci  INET_DIAG_VEGASINFO,
11522851890Sopenharmony_ci  INET_DIAG_CONG,
11622851890Sopenharmony_ci  INET_DIAG_TOS,
11722851890Sopenharmony_ci  INET_DIAG_TCLASS,
11822851890Sopenharmony_ci  INET_DIAG_SKMEMINFO,
11922851890Sopenharmony_ci  INET_DIAG_SHUTDOWN,
12022851890Sopenharmony_ci  INET_DIAG_DCTCPINFO,
12122851890Sopenharmony_ci  INET_DIAG_PROTOCOL,
12222851890Sopenharmony_ci  INET_DIAG_SKV6ONLY,
12322851890Sopenharmony_ci  INET_DIAG_LOCALS,
12422851890Sopenharmony_ci  INET_DIAG_PEERS,
12522851890Sopenharmony_ci  INET_DIAG_PAD,
12622851890Sopenharmony_ci  INET_DIAG_MARK,
12722851890Sopenharmony_ci  INET_DIAG_BBRINFO,
12822851890Sopenharmony_ci  INET_DIAG_CLASS_ID,
12922851890Sopenharmony_ci  INET_DIAG_MD5SIG,
13022851890Sopenharmony_ci  INET_DIAG_ULP_INFO,
13122851890Sopenharmony_ci  INET_DIAG_SK_BPF_STORAGES,
13222851890Sopenharmony_ci  INET_DIAG_CGROUP_ID,
13322851890Sopenharmony_ci  INET_DIAG_SOCKOPT,
13422851890Sopenharmony_ci  __INET_DIAG_MAX,
13522851890Sopenharmony_ci};
13622851890Sopenharmony_ci#define INET_DIAG_MAX (__INET_DIAG_MAX - 1)
13722851890Sopenharmony_cienum {
13822851890Sopenharmony_ci  INET_ULP_INFO_UNSPEC,
13922851890Sopenharmony_ci  INET_ULP_INFO_NAME,
14022851890Sopenharmony_ci  INET_ULP_INFO_TLS,
14122851890Sopenharmony_ci  INET_ULP_INFO_MPTCP,
14222851890Sopenharmony_ci  __INET_ULP_INFO_MAX,
14322851890Sopenharmony_ci};
14422851890Sopenharmony_ci#define INET_ULP_INFO_MAX (__INET_ULP_INFO_MAX - 1)
14522851890Sopenharmony_cistruct inet_diag_meminfo {
14622851890Sopenharmony_ci  __u32 idiag_rmem;
14722851890Sopenharmony_ci  __u32 idiag_wmem;
14822851890Sopenharmony_ci  __u32 idiag_fmem;
14922851890Sopenharmony_ci  __u32 idiag_tmem;
15022851890Sopenharmony_ci};
15122851890Sopenharmony_cistruct inet_diag_sockopt {
15222851890Sopenharmony_ci  __u8 recverr : 1, is_icsk : 1, freebind : 1, hdrincl : 1, mc_loop : 1, transparent : 1, mc_all : 1, nodefrag : 1;
15322851890Sopenharmony_ci  __u8 bind_address_no_port : 1, recverr_rfc4884 : 1, defer_connect : 1, unused : 5;
15422851890Sopenharmony_ci};
15522851890Sopenharmony_cistruct tcpvegas_info {
15622851890Sopenharmony_ci  __u32 tcpv_enabled;
15722851890Sopenharmony_ci  __u32 tcpv_rttcnt;
15822851890Sopenharmony_ci  __u32 tcpv_rtt;
15922851890Sopenharmony_ci  __u32 tcpv_minrtt;
16022851890Sopenharmony_ci};
16122851890Sopenharmony_cistruct tcp_dctcp_info {
16222851890Sopenharmony_ci  __u16 dctcp_enabled;
16322851890Sopenharmony_ci  __u16 dctcp_ce_state;
16422851890Sopenharmony_ci  __u32 dctcp_alpha;
16522851890Sopenharmony_ci  __u32 dctcp_ab_ecn;
16622851890Sopenharmony_ci  __u32 dctcp_ab_tot;
16722851890Sopenharmony_ci};
16822851890Sopenharmony_cistruct tcp_bbr_info {
16922851890Sopenharmony_ci  __u32 bbr_bw_lo;
17022851890Sopenharmony_ci  __u32 bbr_bw_hi;
17122851890Sopenharmony_ci  __u32 bbr_min_rtt;
17222851890Sopenharmony_ci  __u32 bbr_pacing_gain;
17322851890Sopenharmony_ci  __u32 bbr_cwnd_gain;
17422851890Sopenharmony_ci};
17522851890Sopenharmony_ciunion tcp_cc_info {
17622851890Sopenharmony_ci  struct tcpvegas_info vegas;
17722851890Sopenharmony_ci  struct tcp_dctcp_info dctcp;
17822851890Sopenharmony_ci  struct tcp_bbr_info bbr;
17922851890Sopenharmony_ci};
18022851890Sopenharmony_ci#endif
181