RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
libnetworking
netinet
tcp.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 1982, 1986, 1993
3
* The Regents of the University of California. 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
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 4. Neither the name of the University nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* @(#)tcp.h 8.1 (Berkeley) 6/10/93
30
* $FreeBSD: src/sys/netinet/tcp.h,v 1.30 2005/01/07 01:45:45 imp Exp $
31
*/
32
33
34
#ifndef _NETINET_TCP_H_
35
#define _NETINET_TCP_H_
36
37
#include <sys/cdefs.h>
38
39
#if __BSD_VISIBLE
40
#include <machine/endian.h>
/* BYTE_ORDER */
41
42
typedef
u_int32_t tcp_seq;
43
44
#define tcp6_seq tcp_seq
/* for KAME src sync over BSD*'s */
45
#define tcp6hdr tcphdr
/* for KAME src sync over BSD*'s */
46
47
typedef
u_long tcp_cc;
/* connection count per rfc1644 */
48
49
/*
50
* TCP header.
51
* Per RFC 793, September, 1981.
52
*/
53
struct
tcphdr {
54
u_short th_sport;
/* source port */
55
u_short th_dport;
/* destination port */
56
tcp_seq th_seq;
/* sequence number */
57
tcp_seq th_ack;
/* acknowledgement number */
58
#if BYTE_ORDER == LITTLE_ENDIAN
59
u_int th_x2:4,
/* (unused) */
60
th_off:4;
/* data offset */
61
#endif
62
#if BYTE_ORDER == BIG_ENDIAN
63
u_int th_off:4,
/* data offset */
64
th_x2:4;
/* (unused) */
65
#endif
66
u_char th_flags;
67
#define TH_FIN 0x01
68
#define TH_SYN 0x02
69
#define TH_RST 0x04
70
#define TH_PUSH 0x08
71
#define TH_ACK 0x10
72
#define TH_URG 0x20
73
#define TH_ECE 0x40
74
#define TH_CWR 0x80
75
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
76
77
u_short th_win;
/* window */
78
u_short th_sum;
/* checksum */
79
u_short th_urp;
/* urgent pointer */
80
};
81
82
#define TCPOPT_EOL 0L
83
#define TCPOPT_NOP 1L
84
#define TCPOPT_MAXSEG 2L
85
#define TCPOLEN_MAXSEG 4L
86
#define TCPOPT_WINDOW 3L
87
#define TCPOLEN_WINDOW 3L
88
#define TCPOPT_SACK_PERMITTED 4L
/* Experimental */
89
#define TCPOLEN_SACK_PERMITTED 2L
90
#define TCPOPT_SACK 5L
/* Experimental */
91
#define TCPOPT_TIMESTAMP 8L
92
#define TCPOLEN_TIMESTAMP 10L
93
#define TCPOLEN_TSTAMP_APPA (uint32_t)(TCPOLEN_TIMESTAMP+2)
/* appendix A */
94
#define TCPOPT_TSTAMP_HDR \
95
(uint32_t)(((uint32_t)TCPOPT_NOP<<24)| \
96
((uint32_t)TCPOPT_NOP<<16)| \
97
((uint32_t)TCPOPT_TIMESTAMP<<8)| \
98
((uint32_t)TCPOLEN_TIMESTAMP))
99
100
#define TCPOPT_CC 11
/* CC options: RFC-1644 */
101
#define TCPOPT_CCNEW 12
102
#define TCPOPT_CCECHO 13
103
#define TCPOLEN_CC 6
104
#define TCPOLEN_CC_APPA (TCPOLEN_CC+2)
105
#define TCPOPT_CC_HDR(ccopt) \
106
(TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC)
107
108
/*
109
* Default maximum segment size for TCP.
110
* With an IP MTU of 576, this is 536,
111
* but 512 is probably more convenient.
112
* This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
113
*/
114
#define TCP_MSS 512
115
116
#define TCP_MAXWIN 65535
/* largest value for (unscaled) window */
117
#define TTCP_CLIENT_SND_WND 4096
/* dflt send window for T/TCP client */
118
119
#define TCP_MAX_WINSHIFT 14
/* maximum window shift */
120
121
#define TCP_MAXHLEN (0xf<<2)
/* max length of header in bytes */
122
#define TCP_MAXOLEN (TCP_MAXHLEN - sizeof(struct tcphdr))
123
/* max space left for options */
124
#endif
/* __BSD_VISIBLE */
125
126
/*
127
* User-settable options (used with setsockopt).
128
*/
129
#define TCP_NODELAY 0x01
/* don't delay send to coalesce packets */
130
#if __BSD_VISIBLE
131
#define TCP_MAXSEG 0x02
/* set maximum segment size */
132
#define TCP_NOPUSH 0x04
/* don't push last block of write */
133
#define TCP_NOOPT 0x08
/* don't use TCP options */
134
#define TCP_MD5SIG 0x10
/* use MD5 digests (RFC2385) */
135
#define TCP_INFO 0x20
/* retrieve tcp_info structure */
136
#endif
137
138
#endif
/* !_NETINET_TCP_H_ */
Generated by
1.8.13