blob: d1c657ba9c2e17db6d1291d50c7ac6be74828a0b [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/*
2 * Copyright (C) 2008 The Android Open Source Project
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in
12 * the documentation and/or other materials provided with the
13 * distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
Elliott Hughes338e6102014-01-03 15:58:40 -080028
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#ifndef _NETINET_TCP_H
30#define _NETINET_TCP_H
31
Josh Gaoef7c95b2016-04-07 11:16:35 -070032#include <sys/cdefs.h>
Elliott Hughesf0210612016-05-16 13:26:25 -070033#include <stdint.h>
Josh Gaoef7c95b2016-04-07 11:16:35 -070034
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080035#include <linux/tcp.h>
36
Elliott Hughes0dff43c2013-07-11 16:21:32 -070037__BEGIN_DECLS
38
Elliott Hughesf0210612016-05-16 13:26:25 -070039#define TH_FIN 0x01
40#define TH_SYN 0x02
41#define TH_RST 0x04
42#define TH_PUSH 0x08
43#define TH_ACK 0x10
44#define TH_URG 0x20
45
Elliott Hughes0dff43c2013-07-11 16:21:32 -070046enum {
47 TCP_ESTABLISHED = 1,
48 TCP_SYN_SENT,
49 TCP_SYN_RECV,
50 TCP_FIN_WAIT1,
51 TCP_FIN_WAIT2,
52 TCP_TIME_WAIT,
53 TCP_CLOSE,
54 TCP_CLOSE_WAIT,
55 TCP_LAST_ACK,
56 TCP_LISTEN,
57 TCP_CLOSING
58};
59
Elliott Hughes338e6102014-01-03 15:58:40 -080060#define TCPOPT_EOL 0
61#define TCPOPT_NOP 1
62#define TCPOPT_MAXSEG 2
63#define TCPOLEN_MAXSEG 4
64#define TCPOPT_WINDOW 3
65#define TCPOLEN_WINDOW 3
66#define TCPOPT_SACK_PERMITTED 4
67#define TCPOLEN_SACK_PERMITTED 2
68#define TCPOPT_SACK 5
69#define TCPOPT_TIMESTAMP 8
70#define TCPOLEN_TIMESTAMP 10
71#define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2)
72
73#define TCPOPT_TSTAMP_HDR (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)
74
Elliott Hughes0dff43c2013-07-11 16:21:32 -070075__END_DECLS
76
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080077#endif /* _NETINET_TCP_H */