diff options
author | David Howells <dhowells@redhat.com> | 2012-10-13 05:46:48 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2012-10-13 05:46:48 -0400 |
commit | 607ca46e97a1b6594b29647d98a32d545c24bdff (patch) | |
tree | 30f4c0784bfddb57332cdc0678bd06d1e77fa185 /include/linux/tcp.h | |
parent | 08cce05c5a91f5017f4edc9866cf026908c73f9f (diff) |
UAPI: (Scripted) Disintegrate include/linux
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'include/linux/tcp.h')
-rw-r--r-- | include/linux/tcp.h | 208 |
1 files changed, 1 insertions, 207 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 67c789ae719c..8a7fc4be2d75 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
@@ -17,217 +17,13 @@ | |||
17 | #ifndef _LINUX_TCP_H | 17 | #ifndef _LINUX_TCP_H |
18 | #define _LINUX_TCP_H | 18 | #define _LINUX_TCP_H |
19 | 19 | ||
20 | #include <linux/types.h> | ||
21 | #include <asm/byteorder.h> | ||
22 | #include <linux/socket.h> | ||
23 | |||
24 | struct tcphdr { | ||
25 | __be16 source; | ||
26 | __be16 dest; | ||
27 | __be32 seq; | ||
28 | __be32 ack_seq; | ||
29 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
30 | __u16 res1:4, | ||
31 | doff:4, | ||
32 | fin:1, | ||
33 | syn:1, | ||
34 | rst:1, | ||
35 | psh:1, | ||
36 | ack:1, | ||
37 | urg:1, | ||
38 | ece:1, | ||
39 | cwr:1; | ||
40 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
41 | __u16 doff:4, | ||
42 | res1:4, | ||
43 | cwr:1, | ||
44 | ece:1, | ||
45 | urg:1, | ||
46 | ack:1, | ||
47 | psh:1, | ||
48 | rst:1, | ||
49 | syn:1, | ||
50 | fin:1; | ||
51 | #else | ||
52 | #error "Adjust your <asm/byteorder.h> defines" | ||
53 | #endif | ||
54 | __be16 window; | ||
55 | __sum16 check; | ||
56 | __be16 urg_ptr; | ||
57 | }; | ||
58 | |||
59 | /* | ||
60 | * The union cast uses a gcc extension to avoid aliasing problems | ||
61 | * (union is compatible to any of its members) | ||
62 | * This means this part of the code is -fstrict-aliasing safe now. | ||
63 | */ | ||
64 | union tcp_word_hdr { | ||
65 | struct tcphdr hdr; | ||
66 | __be32 words[5]; | ||
67 | }; | ||
68 | |||
69 | #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) | ||
70 | |||
71 | enum { | ||
72 | TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), | ||
73 | TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), | ||
74 | TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), | ||
75 | TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000), | ||
76 | TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000), | ||
77 | TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), | ||
78 | TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), | ||
79 | TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), | ||
80 | TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000), | ||
81 | TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) | ||
82 | }; | ||
83 | |||
84 | /* | ||
85 | * TCP general constants | ||
86 | */ | ||
87 | #define TCP_MSS_DEFAULT 536U /* IPv4 (RFC1122, RFC2581) */ | ||
88 | #define TCP_MSS_DESIRED 1220U /* IPv6 (tunneled), EDNS0 (RFC3226) */ | ||
89 | |||
90 | /* TCP socket options */ | ||
91 | #define TCP_NODELAY 1 /* Turn off Nagle's algorithm. */ | ||
92 | #define TCP_MAXSEG 2 /* Limit MSS */ | ||
93 | #define TCP_CORK 3 /* Never send partially complete segments */ | ||
94 | #define TCP_KEEPIDLE 4 /* Start keeplives after this period */ | ||
95 | #define TCP_KEEPINTVL 5 /* Interval between keepalives */ | ||
96 | #define TCP_KEEPCNT 6 /* Number of keepalives before death */ | ||
97 | #define TCP_SYNCNT 7 /* Number of SYN retransmits */ | ||
98 | #define TCP_LINGER2 8 /* Life time of orphaned FIN-WAIT-2 state */ | ||
99 | #define TCP_DEFER_ACCEPT 9 /* Wake up listener only when data arrive */ | ||
100 | #define TCP_WINDOW_CLAMP 10 /* Bound advertised window */ | ||
101 | #define TCP_INFO 11 /* Information about this connection. */ | ||
102 | #define TCP_QUICKACK 12 /* Block/reenable quick acks */ | ||
103 | #define TCP_CONGESTION 13 /* Congestion control algorithm */ | ||
104 | #define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ | ||
105 | #define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */ | ||
106 | #define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ | ||
107 | #define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */ | ||
108 | #define TCP_USER_TIMEOUT 18 /* How long for loss retry before timeout */ | ||
109 | #define TCP_REPAIR 19 /* TCP sock is under repair right now */ | ||
110 | #define TCP_REPAIR_QUEUE 20 | ||
111 | #define TCP_QUEUE_SEQ 21 | ||
112 | #define TCP_REPAIR_OPTIONS 22 | ||
113 | #define TCP_FASTOPEN 23 /* Enable FastOpen on listeners */ | ||
114 | |||
115 | struct tcp_repair_opt { | ||
116 | __u32 opt_code; | ||
117 | __u32 opt_val; | ||
118 | }; | ||
119 | |||
120 | enum { | ||
121 | TCP_NO_QUEUE, | ||
122 | TCP_RECV_QUEUE, | ||
123 | TCP_SEND_QUEUE, | ||
124 | TCP_QUEUES_NR, | ||
125 | }; | ||
126 | |||
127 | /* for TCP_INFO socket option */ | ||
128 | #define TCPI_OPT_TIMESTAMPS 1 | ||
129 | #define TCPI_OPT_SACK 2 | ||
130 | #define TCPI_OPT_WSCALE 4 | ||
131 | #define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */ | ||
132 | #define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */ | ||
133 | |||
134 | enum tcp_ca_state { | ||
135 | TCP_CA_Open = 0, | ||
136 | #define TCPF_CA_Open (1<<TCP_CA_Open) | ||
137 | TCP_CA_Disorder = 1, | ||
138 | #define TCPF_CA_Disorder (1<<TCP_CA_Disorder) | ||
139 | TCP_CA_CWR = 2, | ||
140 | #define TCPF_CA_CWR (1<<TCP_CA_CWR) | ||
141 | TCP_CA_Recovery = 3, | ||
142 | #define TCPF_CA_Recovery (1<<TCP_CA_Recovery) | ||
143 | TCP_CA_Loss = 4 | ||
144 | #define TCPF_CA_Loss (1<<TCP_CA_Loss) | ||
145 | }; | ||
146 | |||
147 | struct tcp_info { | ||
148 | __u8 tcpi_state; | ||
149 | __u8 tcpi_ca_state; | ||
150 | __u8 tcpi_retransmits; | ||
151 | __u8 tcpi_probes; | ||
152 | __u8 tcpi_backoff; | ||
153 | __u8 tcpi_options; | ||
154 | __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; | ||
155 | |||
156 | __u32 tcpi_rto; | ||
157 | __u32 tcpi_ato; | ||
158 | __u32 tcpi_snd_mss; | ||
159 | __u32 tcpi_rcv_mss; | ||
160 | |||
161 | __u32 tcpi_unacked; | ||
162 | __u32 tcpi_sacked; | ||
163 | __u32 tcpi_lost; | ||
164 | __u32 tcpi_retrans; | ||
165 | __u32 tcpi_fackets; | ||
166 | |||
167 | /* Times. */ | ||
168 | __u32 tcpi_last_data_sent; | ||
169 | __u32 tcpi_last_ack_sent; /* Not remembered, sorry. */ | ||
170 | __u32 tcpi_last_data_recv; | ||
171 | __u32 tcpi_last_ack_recv; | ||
172 | |||
173 | /* Metrics. */ | ||
174 | __u32 tcpi_pmtu; | ||
175 | __u32 tcpi_rcv_ssthresh; | ||
176 | __u32 tcpi_rtt; | ||
177 | __u32 tcpi_rttvar; | ||
178 | __u32 tcpi_snd_ssthresh; | ||
179 | __u32 tcpi_snd_cwnd; | ||
180 | __u32 tcpi_advmss; | ||
181 | __u32 tcpi_reordering; | ||
182 | |||
183 | __u32 tcpi_rcv_rtt; | ||
184 | __u32 tcpi_rcv_space; | ||
185 | |||
186 | __u32 tcpi_total_retrans; | ||
187 | }; | ||
188 | |||
189 | /* for TCP_MD5SIG socket option */ | ||
190 | #define TCP_MD5SIG_MAXKEYLEN 80 | ||
191 | |||
192 | struct tcp_md5sig { | ||
193 | struct __kernel_sockaddr_storage tcpm_addr; /* address associated */ | ||
194 | __u16 __tcpm_pad1; /* zero */ | ||
195 | __u16 tcpm_keylen; /* key length */ | ||
196 | __u32 __tcpm_pad2; /* zero */ | ||
197 | __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */ | ||
198 | }; | ||
199 | |||
200 | /* for TCP_COOKIE_TRANSACTIONS (TCPCT) socket option */ | ||
201 | #define TCP_COOKIE_MIN 8 /* 64-bits */ | ||
202 | #define TCP_COOKIE_MAX 16 /* 128-bits */ | ||
203 | #define TCP_COOKIE_PAIR_SIZE (2*TCP_COOKIE_MAX) | ||
204 | |||
205 | /* Flags for both getsockopt and setsockopt */ | ||
206 | #define TCP_COOKIE_IN_ALWAYS (1 << 0) /* Discard SYN without cookie */ | ||
207 | #define TCP_COOKIE_OUT_NEVER (1 << 1) /* Prohibit outgoing cookies, | ||
208 | * supercedes everything. */ | ||
209 | |||
210 | /* Flags for getsockopt */ | ||
211 | #define TCP_S_DATA_IN (1 << 2) /* Was data received? */ | ||
212 | #define TCP_S_DATA_OUT (1 << 3) /* Was data sent? */ | ||
213 | |||
214 | /* TCP_COOKIE_TRANSACTIONS data */ | ||
215 | struct tcp_cookie_transactions { | ||
216 | __u16 tcpct_flags; /* see above */ | ||
217 | __u8 __tcpct_pad1; /* zero */ | ||
218 | __u8 tcpct_cookie_desired; /* bytes */ | ||
219 | __u16 tcpct_s_data_desired; /* bytes of variable data */ | ||
220 | __u16 tcpct_used; /* bytes in value */ | ||
221 | __u8 tcpct_value[TCP_MSS_DEFAULT]; | ||
222 | }; | ||
223 | |||
224 | #ifdef __KERNEL__ | ||
225 | 20 | ||
226 | #include <linux/skbuff.h> | 21 | #include <linux/skbuff.h> |
227 | #include <linux/dmaengine.h> | 22 | #include <linux/dmaengine.h> |
228 | #include <net/sock.h> | 23 | #include <net/sock.h> |
229 | #include <net/inet_connection_sock.h> | 24 | #include <net/inet_connection_sock.h> |
230 | #include <net/inet_timewait_sock.h> | 25 | #include <net/inet_timewait_sock.h> |
26 | #include <uapi/linux/tcp.h> | ||
231 | 27 | ||
232 | static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb) | 28 | static inline struct tcphdr *tcp_hdr(const struct sk_buff *skb) |
233 | { | 29 | { |
@@ -595,6 +391,4 @@ static inline int fastopen_init_queue(struct sock *sk, int backlog) | |||
595 | return 0; | 391 | return 0; |
596 | } | 392 | } |
597 | 393 | ||
598 | #endif /* __KERNEL__ */ | ||
599 | |||
600 | #endif /* _LINUX_TCP_H */ | 394 | #endif /* _LINUX_TCP_H */ |