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_LINUX_TCP_H 2022851890Sopenharmony_ci#define _UAPI_LINUX_TCP_H 2122851890Sopenharmony_ci#include <linux/types.h> 2222851890Sopenharmony_ci#include <asm/byteorder.h> 2322851890Sopenharmony_ci#include <linux/socket.h> 2422851890Sopenharmony_cistruct tcphdr { 2522851890Sopenharmony_ci __be16 source; 2622851890Sopenharmony_ci __be16 dest; 2722851890Sopenharmony_ci __be32 seq; 2822851890Sopenharmony_ci __be32 ack_seq; 2922851890Sopenharmony_ci#ifdef __LITTLE_ENDIAN_BITFIELD 3022851890Sopenharmony_ci __u16 res1 : 4, doff : 4, fin : 1, syn : 1, rst : 1, psh : 1, ack : 1, urg : 1, ece : 1, cwr : 1; 3122851890Sopenharmony_ci#elif defined(__BIG_ENDIAN_BITFIELD) 3222851890Sopenharmony_ci __u16 doff : 4, res1 : 4, cwr : 1, ece : 1, urg : 1, ack : 1, psh : 1, rst : 1, syn : 1, fin : 1; 3322851890Sopenharmony_ci#else 3422851890Sopenharmony_ci#error "Adjust your <asm/byteorder.h> defines" 3522851890Sopenharmony_ci#endif 3622851890Sopenharmony_ci __be16 window; 3722851890Sopenharmony_ci __sum16 check; 3822851890Sopenharmony_ci __be16 urg_ptr; 3922851890Sopenharmony_ci}; 4022851890Sopenharmony_ciunion tcp_word_hdr { 4122851890Sopenharmony_ci struct tcphdr hdr; 4222851890Sopenharmony_ci __be32 words[5]; 4322851890Sopenharmony_ci}; 4422851890Sopenharmony_ci#define tcp_flag_word(tp) (((union tcp_word_hdr *) (tp))->words[3]) 4522851890Sopenharmony_cienum { 4622851890Sopenharmony_ci TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), 4722851890Sopenharmony_ci TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), 4822851890Sopenharmony_ci TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), 4922851890Sopenharmony_ci TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000), 5022851890Sopenharmony_ci TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000), 5122851890Sopenharmony_ci TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), 5222851890Sopenharmony_ci TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), 5322851890Sopenharmony_ci TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), 5422851890Sopenharmony_ci TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000), 5522851890Sopenharmony_ci TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) 5622851890Sopenharmony_ci}; 5722851890Sopenharmony_ci#define TCP_MSS_DEFAULT 536U 5822851890Sopenharmony_ci#define TCP_MSS_DESIRED 1220U 5922851890Sopenharmony_ci#define TCP_NODELAY 1 6022851890Sopenharmony_ci#define TCP_MAXSEG 2 6122851890Sopenharmony_ci#define TCP_CORK 3 6222851890Sopenharmony_ci#define TCP_KEEPIDLE 4 6322851890Sopenharmony_ci#define TCP_KEEPINTVL 5 6422851890Sopenharmony_ci#define TCP_KEEPCNT 6 6522851890Sopenharmony_ci#define TCP_SYNCNT 7 6622851890Sopenharmony_ci#define TCP_LINGER2 8 6722851890Sopenharmony_ci#define TCP_DEFER_ACCEPT 9 6822851890Sopenharmony_ci#define TCP_WINDOW_CLAMP 10 6922851890Sopenharmony_ci#define TCP_INFO 11 7022851890Sopenharmony_ci#define TCP_QUICKACK 12 7122851890Sopenharmony_ci#define TCP_CONGESTION 13 7222851890Sopenharmony_ci#define TCP_MD5SIG 14 7322851890Sopenharmony_ci#define TCP_THIN_LINEAR_TIMEOUTS 16 7422851890Sopenharmony_ci#define TCP_THIN_DUPACK 17 7522851890Sopenharmony_ci#define TCP_USER_TIMEOUT 18 7622851890Sopenharmony_ci#define TCP_REPAIR 19 7722851890Sopenharmony_ci#define TCP_REPAIR_QUEUE 20 7822851890Sopenharmony_ci#define TCP_QUEUE_SEQ 21 7922851890Sopenharmony_ci#define TCP_REPAIR_OPTIONS 22 8022851890Sopenharmony_ci#define TCP_FASTOPEN 23 8122851890Sopenharmony_ci#define TCP_TIMESTAMP 24 8222851890Sopenharmony_ci#define TCP_NOTSENT_LOWAT 25 8322851890Sopenharmony_ci#define TCP_CC_INFO 26 8422851890Sopenharmony_ci#define TCP_SAVE_SYN 27 8522851890Sopenharmony_ci#define TCP_SAVED_SYN 28 8622851890Sopenharmony_ci#define TCP_REPAIR_WINDOW 29 8722851890Sopenharmony_ci#define TCP_FASTOPEN_CONNECT 30 8822851890Sopenharmony_ci#define TCP_ULP 31 8922851890Sopenharmony_ci#define TCP_MD5SIG_EXT 32 9022851890Sopenharmony_ci#define TCP_FASTOPEN_KEY 33 9122851890Sopenharmony_ci#define TCP_FASTOPEN_NO_COOKIE 34 9222851890Sopenharmony_ci#define TCP_ZEROCOPY_RECEIVE 35 9322851890Sopenharmony_ci#define TCP_INQ 36 9422851890Sopenharmony_ci#define TCP_CM_INQ TCP_INQ 9522851890Sopenharmony_ci#define TCP_TX_DELAY 37 9622851890Sopenharmony_ci#define TCP_REPAIR_ON 1 9722851890Sopenharmony_ci#define TCP_REPAIR_OFF 0 9822851890Sopenharmony_ci#define TCP_REPAIR_OFF_NO_WP - 1 9922851890Sopenharmony_cistruct tcp_repair_opt { 10022851890Sopenharmony_ci __u32 opt_code; 10122851890Sopenharmony_ci __u32 opt_val; 10222851890Sopenharmony_ci}; 10322851890Sopenharmony_cistruct tcp_repair_window { 10422851890Sopenharmony_ci __u32 snd_wl1; 10522851890Sopenharmony_ci __u32 snd_wnd; 10622851890Sopenharmony_ci __u32 max_window; 10722851890Sopenharmony_ci __u32 rcv_wnd; 10822851890Sopenharmony_ci __u32 rcv_wup; 10922851890Sopenharmony_ci}; 11022851890Sopenharmony_cienum { 11122851890Sopenharmony_ci TCP_NO_QUEUE, 11222851890Sopenharmony_ci TCP_RECV_QUEUE, 11322851890Sopenharmony_ci TCP_SEND_QUEUE, 11422851890Sopenharmony_ci TCP_QUEUES_NR, 11522851890Sopenharmony_ci}; 11622851890Sopenharmony_cienum tcp_fastopen_client_fail { 11722851890Sopenharmony_ci TFO_STATUS_UNSPEC, 11822851890Sopenharmony_ci TFO_COOKIE_UNAVAILABLE, 11922851890Sopenharmony_ci TFO_DATA_NOT_ACKED, 12022851890Sopenharmony_ci TFO_SYN_RETRANSMITTED, 12122851890Sopenharmony_ci}; 12222851890Sopenharmony_ci#define TCPI_OPT_TIMESTAMPS 1 12322851890Sopenharmony_ci#define TCPI_OPT_SACK 2 12422851890Sopenharmony_ci#define TCPI_OPT_WSCALE 4 12522851890Sopenharmony_ci#define TCPI_OPT_ECN 8 12622851890Sopenharmony_ci#define TCPI_OPT_ECN_SEEN 16 12722851890Sopenharmony_ci#define TCPI_OPT_SYN_DATA 32 12822851890Sopenharmony_cienum tcp_ca_state { 12922851890Sopenharmony_ci TCP_CA_Open = 0, 13022851890Sopenharmony_ci#define TCPF_CA_Open (1 << TCP_CA_Open) 13122851890Sopenharmony_ci TCP_CA_Disorder = 1, 13222851890Sopenharmony_ci#define TCPF_CA_Disorder (1 << TCP_CA_Disorder) 13322851890Sopenharmony_ci TCP_CA_CWR = 2, 13422851890Sopenharmony_ci#define TCPF_CA_CWR (1 << TCP_CA_CWR) 13522851890Sopenharmony_ci TCP_CA_Recovery = 3, 13622851890Sopenharmony_ci#define TCPF_CA_Recovery (1 << TCP_CA_Recovery) 13722851890Sopenharmony_ci TCP_CA_Loss = 4 13822851890Sopenharmony_ci#define TCPF_CA_Loss (1 << TCP_CA_Loss) 13922851890Sopenharmony_ci}; 14022851890Sopenharmony_cistruct tcp_info { 14122851890Sopenharmony_ci __u8 tcpi_state; 14222851890Sopenharmony_ci __u8 tcpi_ca_state; 14322851890Sopenharmony_ci __u8 tcpi_retransmits; 14422851890Sopenharmony_ci __u8 tcpi_probes; 14522851890Sopenharmony_ci __u8 tcpi_backoff; 14622851890Sopenharmony_ci __u8 tcpi_options; 14722851890Sopenharmony_ci __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; 14822851890Sopenharmony_ci __u8 tcpi_delivery_rate_app_limited : 1, tcpi_fastopen_client_fail : 2; 14922851890Sopenharmony_ci __u32 tcpi_rto; 15022851890Sopenharmony_ci __u32 tcpi_ato; 15122851890Sopenharmony_ci __u32 tcpi_snd_mss; 15222851890Sopenharmony_ci __u32 tcpi_rcv_mss; 15322851890Sopenharmony_ci __u32 tcpi_unacked; 15422851890Sopenharmony_ci __u32 tcpi_sacked; 15522851890Sopenharmony_ci __u32 tcpi_lost; 15622851890Sopenharmony_ci __u32 tcpi_retrans; 15722851890Sopenharmony_ci __u32 tcpi_fackets; 15822851890Sopenharmony_ci __u32 tcpi_last_data_sent; 15922851890Sopenharmony_ci __u32 tcpi_last_ack_sent; 16022851890Sopenharmony_ci __u32 tcpi_last_data_recv; 16122851890Sopenharmony_ci __u32 tcpi_last_ack_recv; 16222851890Sopenharmony_ci __u32 tcpi_pmtu; 16322851890Sopenharmony_ci __u32 tcpi_rcv_ssthresh; 16422851890Sopenharmony_ci __u32 tcpi_rtt; 16522851890Sopenharmony_ci __u32 tcpi_rttvar; 16622851890Sopenharmony_ci __u32 tcpi_snd_ssthresh; 16722851890Sopenharmony_ci __u32 tcpi_snd_cwnd; 16822851890Sopenharmony_ci __u32 tcpi_advmss; 16922851890Sopenharmony_ci __u32 tcpi_reordering; 17022851890Sopenharmony_ci __u32 tcpi_rcv_rtt; 17122851890Sopenharmony_ci __u32 tcpi_rcv_space; 17222851890Sopenharmony_ci __u32 tcpi_total_retrans; 17322851890Sopenharmony_ci __u64 tcpi_pacing_rate; 17422851890Sopenharmony_ci __u64 tcpi_max_pacing_rate; 17522851890Sopenharmony_ci __u64 tcpi_bytes_acked; 17622851890Sopenharmony_ci __u64 tcpi_bytes_received; 17722851890Sopenharmony_ci __u32 tcpi_segs_out; 17822851890Sopenharmony_ci __u32 tcpi_segs_in; 17922851890Sopenharmony_ci __u32 tcpi_notsent_bytes; 18022851890Sopenharmony_ci __u32 tcpi_min_rtt; 18122851890Sopenharmony_ci __u32 tcpi_data_segs_in; 18222851890Sopenharmony_ci __u32 tcpi_data_segs_out; 18322851890Sopenharmony_ci __u64 tcpi_delivery_rate; 18422851890Sopenharmony_ci __u64 tcpi_busy_time; 18522851890Sopenharmony_ci __u64 tcpi_rwnd_limited; 18622851890Sopenharmony_ci __u64 tcpi_sndbuf_limited; 18722851890Sopenharmony_ci __u32 tcpi_delivered; 18822851890Sopenharmony_ci __u32 tcpi_delivered_ce; 18922851890Sopenharmony_ci __u64 tcpi_bytes_sent; 19022851890Sopenharmony_ci __u64 tcpi_bytes_retrans; 19122851890Sopenharmony_ci __u32 tcpi_dsack_dups; 19222851890Sopenharmony_ci __u32 tcpi_reord_seen; 19322851890Sopenharmony_ci __u32 tcpi_rcv_ooopack; 19422851890Sopenharmony_ci __u32 tcpi_snd_wnd; 19522851890Sopenharmony_ci}; 19622851890Sopenharmony_cienum { 19722851890Sopenharmony_ci TCP_NLA_PAD, 19822851890Sopenharmony_ci TCP_NLA_BUSY, 19922851890Sopenharmony_ci TCP_NLA_RWND_LIMITED, 20022851890Sopenharmony_ci TCP_NLA_SNDBUF_LIMITED, 20122851890Sopenharmony_ci TCP_NLA_DATA_SEGS_OUT, 20222851890Sopenharmony_ci TCP_NLA_TOTAL_RETRANS, 20322851890Sopenharmony_ci TCP_NLA_PACING_RATE, 20422851890Sopenharmony_ci TCP_NLA_DELIVERY_RATE, 20522851890Sopenharmony_ci TCP_NLA_SND_CWND, 20622851890Sopenharmony_ci TCP_NLA_REORDERING, 20722851890Sopenharmony_ci TCP_NLA_MIN_RTT, 20822851890Sopenharmony_ci TCP_NLA_RECUR_RETRANS, 20922851890Sopenharmony_ci TCP_NLA_DELIVERY_RATE_APP_LMT, 21022851890Sopenharmony_ci TCP_NLA_SNDQ_SIZE, 21122851890Sopenharmony_ci TCP_NLA_CA_STATE, 21222851890Sopenharmony_ci TCP_NLA_SND_SSTHRESH, 21322851890Sopenharmony_ci TCP_NLA_DELIVERED, 21422851890Sopenharmony_ci TCP_NLA_DELIVERED_CE, 21522851890Sopenharmony_ci TCP_NLA_BYTES_SENT, 21622851890Sopenharmony_ci TCP_NLA_BYTES_RETRANS, 21722851890Sopenharmony_ci TCP_NLA_DSACK_DUPS, 21822851890Sopenharmony_ci TCP_NLA_REORD_SEEN, 21922851890Sopenharmony_ci TCP_NLA_SRTT, 22022851890Sopenharmony_ci TCP_NLA_TIMEOUT_REHASH, 22122851890Sopenharmony_ci TCP_NLA_BYTES_NOTSENT, 22222851890Sopenharmony_ci TCP_NLA_EDT, 22322851890Sopenharmony_ci}; 22422851890Sopenharmony_ci#define TCP_MD5SIG_MAXKEYLEN 80 22522851890Sopenharmony_ci#define TCP_MD5SIG_FLAG_PREFIX 0x1 22622851890Sopenharmony_ci#define TCP_MD5SIG_FLAG_IFINDEX 0x2 22722851890Sopenharmony_cistruct tcp_md5sig { 22822851890Sopenharmony_ci struct sockaddr_storage tcpm_addr; 22922851890Sopenharmony_ci __u8 tcpm_flags; 23022851890Sopenharmony_ci __u8 tcpm_prefixlen; 23122851890Sopenharmony_ci __u16 tcpm_keylen; 23222851890Sopenharmony_ci int tcpm_ifindex; 23322851890Sopenharmony_ci __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; 23422851890Sopenharmony_ci}; 23522851890Sopenharmony_cistruct tcp_diag_md5sig { 23622851890Sopenharmony_ci __u8 tcpm_family; 23722851890Sopenharmony_ci __u8 tcpm_prefixlen; 23822851890Sopenharmony_ci __u16 tcpm_keylen; 23922851890Sopenharmony_ci __be32 tcpm_addr[4]; 24022851890Sopenharmony_ci __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; 24122851890Sopenharmony_ci}; 24222851890Sopenharmony_cistruct tcp_zerocopy_receive { 24322851890Sopenharmony_ci __u64 address; 24422851890Sopenharmony_ci __u32 length; 24522851890Sopenharmony_ci __u32 recv_skip_hint; 24622851890Sopenharmony_ci __u32 inq; 24722851890Sopenharmony_ci __s32 err; 24822851890Sopenharmony_ci}; 24922851890Sopenharmony_ci#endif 250