ReactOS
0.4.16-dev-338-g34e76ad
tcpdef.h
Go to the documentation of this file.
1
/*
2
* INET An implementation of the TCP/IP protocol suite for the LINUX
3
* operating system. INET is implemented using the BSD Socket
4
* interface as the means of communication with the user level.
5
*
6
* Definitions for the TCP protocol.
7
*
8
* Version: @(#)tcp.h 1.0.2 04/28/93
9
*
10
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
11
*
12
* This program is free software; you can redistribute it and/or
13
* modify it under the terms of the GNU General Public License
14
* as published by the Free Software Foundation; either version
15
* 2 of the License, or (at your option) any later version.
16
*/
17
18
#pragma once
19
20
#include "
linux.h
"
21
22
struct
tcphdr
{
23
__u16
source
;
24
__u16
dest
;
25
__u32
seq
;
26
__u32
ack_seq
;
27
//#if defined(__LITTLE_ENDIAN_BITFIELD)
28
__u16
res1
:4,
29
doff
:4,
30
fin
:1,
31
syn
:1,
32
rst
:1,
33
psh
:1,
34
ack
:1,
35
urg
:1,
36
ece
:1,
37
cwr
:1;
38
/*#elif defined(__BIG_ENDIAN_BITFIELD)
39
__u16 doff:4,
40
res1:4,
41
cwr:1,
42
ece:1,
43
urg:1,
44
ack:1,
45
psh:1,
46
rst:1,
47
syn:1,
48
fin:1;
49
#else
50
#error "Adjust your <asm/byteorder.h> defines"
51
#endif */
52
__u16
window
;
53
__u16
check
;
54
__u16
urg_ptr
;
55
};
56
57
58
enum
{
59
TCP_ESTABLISHED
= 1,
60
TCP_SYN_SENT
,
61
TCP_SYN_RECV
,
62
TCP_FIN_WAIT1
,
63
TCP_FIN_WAIT2
,
64
TCP_TIME_WAIT
,
65
TCP_CLOSE
,
66
TCP_CLOSE_WAIT
,
67
TCP_LAST_ACK
,
68
TCP_LISTEN
,
69
TCP_CLOSING
,
/* now a valid state */
70
71
TCP_MAX_STATES
/* Leave at the end! */
72
};
73
74
#define TCP_STATE_MASK 0xF
75
#define TCP_ACTION_FIN (1 << 7)
76
77
enum
{
78
TCPF_ESTABLISHED
= (1 << 1),
79
TCPF_SYN_SENT
= (1 << 2),
80
TCPF_SYN_RECV
= (1 << 3),
81
TCPF_FIN_WAIT1
= (1 << 4),
82
TCPF_FIN_WAIT2
= (1 << 5),
83
TCPF_TIME_WAIT
= (1 << 6),
84
TCPF_CLOSE
= (1 << 7),
85
TCPF_CLOSE_WAIT
= (1 << 8),
86
TCPF_LAST_ACK
= (1 << 9),
87
TCPF_LISTEN
= (1 << 10),
88
TCPF_CLOSING
= (1 << 11)
89
};
90
91
/*
92
* The union cast uses a gcc extension to avoid aliasing problems
93
* (union is compatible to any of its members)
94
* This means this part of the code is -fstrict-aliasing safe now.
95
*/
96
union
tcp_word_hdr
{
97
struct
tcphdr
hdr
;
98
__u32
words
[5];
99
};
100
101
#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3])
102
103
enum
{
104
TCP_FLAG_CWR
= 0x00800000,
// __constant_htonl(0x00800000),
105
TCP_FLAG_ECE
= 0x00400000,
//__constant_htonl(0x00400000),
106
TCP_FLAG_URG
= 0x00200000,
//__constant_htonl(0x00200000),
107
TCP_FLAG_ACK
= 0x00100000,
//__constant_htonl(0x00100000),
108
TCP_FLAG_PSH
= 0x00080000,
//__constant_htonl(0x00080000),
109
TCP_FLAG_RST
= 0x00040000,
//__constant_htonl(0x00040000),
110
TCP_FLAG_SYN
= 0x00020000,
//__constant_htonl(0x00020000),
111
TCP_FLAG_FIN
= 0x00010000,
//__constant_htonl(0x00010000),
112
TCP_RESERVED_BITS
= 0x0F000000,
//__constant_htonl(0x0F000000),
113
TCP_DATA_OFFSET
= 0xF0000000,
//__constant_htonl(0xF0000000)
114
};
115
116
/* TCP socket options */
117
#define TCP_NODELAY 1
/* Turn off Nagle's algorithm. */
118
#define TCP_MAXSEG 2
/* Limit MSS */
119
#define TCP_CORK 3
/* Never send partially complete segments */
120
#define TCP_KEEPIDLE 4
/* Start keepalives after this period */
121
#define TCP_KEEPINTVL 5
/* Interval between keepalives */
122
#define TCP_KEEPCNT 6
/* Number of keepalives before death */
123
#define TCP_SYNCNT 7
/* Number of SYN retransmits */
124
#define TCP_LINGER2 8
/* Life time of orphaned FIN-WAIT-2 state */
125
#define TCP_DEFER_ACCEPT 9
/* Wake up listener only when data arrive */
126
#define TCP_WINDOW_CLAMP 10
/* Bound advertised window */
127
#define TCP_INFO 11
/* Information about this connection. */
128
#define TCP_QUICKACK 12
/* Block/reenable quick acks */
129
130
#define TCPI_OPT_TIMESTAMPS 1
131
#define TCPI_OPT_SACK 2
132
#define TCPI_OPT_WSCALE 4
133
#define TCPI_OPT_ECN 8
134
135
enum
tcp_ca_state
136
{
137
TCP_CA_Open
= 0,
138
#define TCPF_CA_Open (1<<TCP_CA_Open)
139
TCP_CA_Disorder
= 1,
140
#define TCPF_CA_Disorder (1<<TCP_CA_Disorder)
141
TCP_CA_CWR
= 2,
142
#define TCPF_CA_CWR (1<<TCP_CA_CWR)
143
TCP_CA_Recovery
= 3,
144
#define TCPF_CA_Recovery (1<<TCP_CA_Recovery)
145
TCP_CA_Loss
= 4
146
#define TCPF_CA_Loss (1<<TCP_CA_Loss)
147
};
148
149
struct
tcp_info
150
{
151
__u8
tcpi_state
;
152
__u8
tcpi_ca_state
;
153
__u8
tcpi_retransmits
;
154
__u8
tcpi_probes
;
155
__u8
tcpi_backoff
;
156
__u8
tcpi_options
;
157
__u8
tcpi_snd_wscale
: 4,
tcpi_rcv_wscale
: 4;
158
159
__u32
tcpi_rto
;
160
__u32
tcpi_ato
;
161
__u32
tcpi_snd_mss
;
162
__u32
tcpi_rcv_mss
;
163
164
__u32
tcpi_unacked
;
165
__u32
tcpi_sacked
;
166
__u32
tcpi_lost
;
167
__u32
tcpi_retrans
;
168
__u32
tcpi_fackets
;
169
170
/* Times. */
171
__u32
tcpi_last_data_sent
;
172
__u32
tcpi_last_ack_sent
;
/* Not remembered, sorry. */
173
__u32
tcpi_last_data_recv
;
174
__u32
tcpi_last_ack_recv
;
175
176
/* Metrics. */
177
__u32
tcpi_pmtu
;
178
__u32
tcpi_rcv_ssthresh
;
179
__u32
tcpi_rtt
;
180
__u32
tcpi_rttvar
;
181
__u32
tcpi_snd_ssthresh
;
182
__u32
tcpi_snd_cwnd
;
183
__u32
tcpi_advmss
;
184
__u32
tcpi_reordering
;
185
};
__u16
u16 __u16
Definition:
btrfs.h:18
__u8
u8 __u8
Definition:
btrfs.h:17
__u32
u32 __u32
Definition:
btrfs.h:19
linux.h
tcp_info
Definition:
tcpdef.h:150
tcp_info::tcpi_snd_cwnd
__u32 tcpi_snd_cwnd
Definition:
tcpdef.h:182
tcp_info::tcpi_last_data_sent
__u32 tcpi_last_data_sent
Definition:
tcpdef.h:171
tcp_info::tcpi_last_ack_recv
__u32 tcpi_last_ack_recv
Definition:
tcpdef.h:174
tcp_info::tcpi_rcv_wscale
__u8 tcpi_rcv_wscale
Definition:
tcpdef.h:157
tcp_info::tcpi_rcv_mss
__u32 tcpi_rcv_mss
Definition:
tcpdef.h:162
tcp_info::tcpi_options
__u8 tcpi_options
Definition:
tcpdef.h:156
tcp_info::tcpi_unacked
__u32 tcpi_unacked
Definition:
tcpdef.h:164
tcp_info::tcpi_retrans
__u32 tcpi_retrans
Definition:
tcpdef.h:167
tcp_info::tcpi_reordering
__u32 tcpi_reordering
Definition:
tcpdef.h:184
tcp_info::tcpi_probes
__u8 tcpi_probes
Definition:
tcpdef.h:154
tcp_info::tcpi_rcv_ssthresh
__u32 tcpi_rcv_ssthresh
Definition:
tcpdef.h:178
tcp_info::tcpi_snd_mss
__u32 tcpi_snd_mss
Definition:
tcpdef.h:161
tcp_info::tcpi_sacked
__u32 tcpi_sacked
Definition:
tcpdef.h:165
tcp_info::tcpi_last_ack_sent
__u32 tcpi_last_ack_sent
Definition:
tcpdef.h:172
tcp_info::tcpi_advmss
__u32 tcpi_advmss
Definition:
tcpdef.h:183
tcp_info::tcpi_retransmits
__u8 tcpi_retransmits
Definition:
tcpdef.h:153
tcp_info::tcpi_fackets
__u32 tcpi_fackets
Definition:
tcpdef.h:168
tcp_info::tcpi_ato
__u32 tcpi_ato
Definition:
tcpdef.h:160
tcp_info::tcpi_rtt
__u32 tcpi_rtt
Definition:
tcpdef.h:179
tcp_info::tcpi_lost
__u32 tcpi_lost
Definition:
tcpdef.h:166
tcp_info::tcpi_pmtu
__u32 tcpi_pmtu
Definition:
tcpdef.h:177
tcp_info::tcpi_rto
__u32 tcpi_rto
Definition:
tcpdef.h:159
tcp_info::tcpi_snd_ssthresh
__u32 tcpi_snd_ssthresh
Definition:
tcpdef.h:181
tcp_info::tcpi_ca_state
__u8 tcpi_ca_state
Definition:
tcpdef.h:152
tcp_info::tcpi_rttvar
__u32 tcpi_rttvar
Definition:
tcpdef.h:180
tcp_info::tcpi_state
__u8 tcpi_state
Definition:
tcpdef.h:151
tcp_info::tcpi_snd_wscale
__u8 tcpi_snd_wscale
Definition:
tcpdef.h:157
tcp_info::tcpi_backoff
__u8 tcpi_backoff
Definition:
tcpdef.h:155
tcp_info::tcpi_last_data_recv
__u32 tcpi_last_data_recv
Definition:
tcpdef.h:173
tcphdr
Definition:
tcpdef.h:22
tcphdr::dest
__u16 dest
Definition:
tcpdef.h:24
tcphdr::ack_seq
__u32 ack_seq
Definition:
tcpdef.h:26
tcphdr::urg
__u16 urg
Definition:
tcpdef.h:35
tcphdr::seq
__u32 seq
Definition:
tcpdef.h:25
tcphdr::window
__u16 window
Definition:
tcpdef.h:52
tcphdr::fin
__u16 fin
Definition:
tcpdef.h:30
tcphdr::urg_ptr
__u16 urg_ptr
Definition:
tcpdef.h:54
tcphdr::ece
__u16 ece
Definition:
tcpdef.h:36
tcphdr::res1
__u16 res1
Definition:
tcpdef.h:28
tcphdr::psh
__u16 psh
Definition:
tcpdef.h:33
tcphdr::check
__u16 check
Definition:
tcpdef.h:53
tcphdr::doff
__u16 doff
Definition:
tcpdef.h:29
tcphdr::ack
__u16 ack
Definition:
tcpdef.h:34
tcphdr::cwr
__u16 cwr
Definition:
tcpdef.h:37
tcphdr::syn
__u16 syn
Definition:
tcpdef.h:31
tcphdr::rst
__u16 rst
Definition:
tcpdef.h:32
tcphdr::source
__u16 source
Definition:
tcpdef.h:23
tcp_ca_state
tcp_ca_state
Definition:
tcpdef.h:136
TCP_CA_Open
@ TCP_CA_Open
Definition:
tcpdef.h:137
TCP_CA_Loss
@ TCP_CA_Loss
Definition:
tcpdef.h:145
TCP_CA_CWR
@ TCP_CA_CWR
Definition:
tcpdef.h:141
TCP_CA_Disorder
@ TCP_CA_Disorder
Definition:
tcpdef.h:139
TCP_CA_Recovery
@ TCP_CA_Recovery
Definition:
tcpdef.h:143
TCP_FLAG_RST
@ TCP_FLAG_RST
Definition:
tcpdef.h:109
TCP_DATA_OFFSET
@ TCP_DATA_OFFSET
Definition:
tcpdef.h:113
TCP_FLAG_FIN
@ TCP_FLAG_FIN
Definition:
tcpdef.h:111
TCP_FLAG_PSH
@ TCP_FLAG_PSH
Definition:
tcpdef.h:108
TCP_FLAG_CWR
@ TCP_FLAG_CWR
Definition:
tcpdef.h:104
TCP_FLAG_ACK
@ TCP_FLAG_ACK
Definition:
tcpdef.h:107
TCP_RESERVED_BITS
@ TCP_RESERVED_BITS
Definition:
tcpdef.h:112
TCP_FLAG_ECE
@ TCP_FLAG_ECE
Definition:
tcpdef.h:105
TCP_FLAG_URG
@ TCP_FLAG_URG
Definition:
tcpdef.h:106
TCP_FLAG_SYN
@ TCP_FLAG_SYN
Definition:
tcpdef.h:110
TCPF_CLOSING
@ TCPF_CLOSING
Definition:
tcpdef.h:88
TCPF_FIN_WAIT2
@ TCPF_FIN_WAIT2
Definition:
tcpdef.h:82
TCPF_LAST_ACK
@ TCPF_LAST_ACK
Definition:
tcpdef.h:86
TCPF_ESTABLISHED
@ TCPF_ESTABLISHED
Definition:
tcpdef.h:78
TCPF_SYN_RECV
@ TCPF_SYN_RECV
Definition:
tcpdef.h:80
TCPF_SYN_SENT
@ TCPF_SYN_SENT
Definition:
tcpdef.h:79
TCPF_CLOSE
@ TCPF_CLOSE
Definition:
tcpdef.h:84
TCPF_LISTEN
@ TCPF_LISTEN
Definition:
tcpdef.h:87
TCPF_TIME_WAIT
@ TCPF_TIME_WAIT
Definition:
tcpdef.h:83
TCPF_FIN_WAIT1
@ TCPF_FIN_WAIT1
Definition:
tcpdef.h:81
TCPF_CLOSE_WAIT
@ TCPF_CLOSE_WAIT
Definition:
tcpdef.h:85
TCP_ESTABLISHED
@ TCP_ESTABLISHED
Definition:
tcpdef.h:59
TCP_LISTEN
@ TCP_LISTEN
Definition:
tcpdef.h:68
TCP_SYN_RECV
@ TCP_SYN_RECV
Definition:
tcpdef.h:61
TCP_LAST_ACK
@ TCP_LAST_ACK
Definition:
tcpdef.h:67
TCP_CLOSE
@ TCP_CLOSE
Definition:
tcpdef.h:65
TCP_CLOSE_WAIT
@ TCP_CLOSE_WAIT
Definition:
tcpdef.h:66
TCP_CLOSING
@ TCP_CLOSING
Definition:
tcpdef.h:69
TCP_FIN_WAIT2
@ TCP_FIN_WAIT2
Definition:
tcpdef.h:63
TCP_TIME_WAIT
@ TCP_TIME_WAIT
Definition:
tcpdef.h:64
TCP_SYN_SENT
@ TCP_SYN_SENT
Definition:
tcpdef.h:60
TCP_MAX_STATES
@ TCP_MAX_STATES
Definition:
tcpdef.h:71
TCP_FIN_WAIT1
@ TCP_FIN_WAIT1
Definition:
tcpdef.h:62
tcp_word_hdr
Definition:
tcpdef.h:96
tcp_word_hdr::words
__u32 words[5]
Definition:
tcpdef.h:98
tcp_word_hdr::hdr
struct tcphdr hdr
Definition:
tcpdef.h:97
drivers
network
tcpip
include
tcpdef.h
Generated on Wed Dec 11 2024 06:05:44 for ReactOS by
1.9.6