5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
23 * Copyright (c) 2011, Joyent, Inc. All rights reserved.
24 * Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
25 */
26 /* Copyright (c) 1990 Mentat Inc. */
27
28 #ifndef _INET_TCP_H
29 #define _INET_TCP_H
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 #include <sys/inttypes.h>
36 #include <netinet/ip6.h>
37 #include <netinet/tcp.h>
38 #include <sys/socket.h>
39 #include <sys/socket_proto.h>
40 #include <sys/md5.h>
41 #include <inet/common.h>
42 #include <inet/ip.h>
43 #include <inet/ip6.h>
44 #include <inet/mi.h>
163 uint32_t tcp_rto_min; /* Minimum RTO */
164 uint32_t tcp_rto_max; /* Maximum RTO */
165
166 uint32_t tcp_snxt; /* Senders next seq num */
167 uint32_t tcp_swnd; /* Senders window (relative to suna) */
168 uint32_t tcp_mss; /* Max segment size */
169 uint32_t tcp_iss; /* Initial send seq num */
170 uint32_t tcp_rnxt; /* Seq we expect to recv next */
171 uint32_t tcp_rwnd;
172
173 /* Fields arranged in approximate access order along main paths */
174 mblk_t *tcp_xmit_head; /* Head of xmit/rexmit list */
175 mblk_t *tcp_xmit_last; /* Last valid data seen by tcp_wput */
176 mblk_t *tcp_xmit_tail; /* Last data sent */
177 uint32_t tcp_unsent; /* # of bytes in hand that are unsent */
178 uint32_t tcp_xmit_tail_unsent; /* # of unsent bytes in xmit_tail */
179
180 uint32_t tcp_suna; /* Sender unacknowledged */
181 uint32_t tcp_rexmit_nxt; /* Next rexmit seq num */
182 uint32_t tcp_rexmit_max; /* Max retran seq num */
183 int32_t tcp_snd_burst; /* Send burst factor */
184 uint32_t tcp_cwnd; /* Congestion window */
185 int32_t tcp_cwnd_cnt; /* cwnd cnt in congestion avoidance */
186
187 uint32_t tcp_ibsegs; /* Inbound segments on this stream */
188 uint32_t tcp_obsegs; /* Outbound segments on this stream */
189
190 uint32_t tcp_naglim; /* Tunable nagle limit */
191 uint32_t tcp_valid_bits;
192 #define TCP_ISS_VALID 0x1 /* Is the tcp_iss seq num active? */
193 #define TCP_FSS_VALID 0x2 /* Is the tcp_fss seq num active? */
194 #define TCP_URG_VALID 0x4 /* Is the tcp_urg seq num active? */
195 #define TCP_OFO_FIN_VALID 0x8 /* Has TCP received an out of order FIN? */
196
197
198
199 timeout_id_t tcp_timer_tid; /* Control block for timer service */
200 uchar_t tcp_timer_backoff; /* Backoff shift count. */
201 int64_t tcp_last_recv_time; /* Last time we receive a segment. */
202 uint32_t tcp_init_cwnd; /* Initial cwnd (start/restart) */
203
|
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
23 * Copyright (c) 2011, Joyent, Inc. All rights reserved.
24 * Copyright (c) 2011 Nexenta Systems, Inc. All rights reserved.
25 * Copyright (c) 2014 by Delphix. All rights reserved.
26 */
27 /* Copyright (c) 1990 Mentat Inc. */
28
29 #ifndef _INET_TCP_H
30 #define _INET_TCP_H
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 #include <sys/inttypes.h>
37 #include <netinet/ip6.h>
38 #include <netinet/tcp.h>
39 #include <sys/socket.h>
40 #include <sys/socket_proto.h>
41 #include <sys/md5.h>
42 #include <inet/common.h>
43 #include <inet/ip.h>
44 #include <inet/ip6.h>
45 #include <inet/mi.h>
164 uint32_t tcp_rto_min; /* Minimum RTO */
165 uint32_t tcp_rto_max; /* Maximum RTO */
166
167 uint32_t tcp_snxt; /* Senders next seq num */
168 uint32_t tcp_swnd; /* Senders window (relative to suna) */
169 uint32_t tcp_mss; /* Max segment size */
170 uint32_t tcp_iss; /* Initial send seq num */
171 uint32_t tcp_rnxt; /* Seq we expect to recv next */
172 uint32_t tcp_rwnd;
173
174 /* Fields arranged in approximate access order along main paths */
175 mblk_t *tcp_xmit_head; /* Head of xmit/rexmit list */
176 mblk_t *tcp_xmit_last; /* Last valid data seen by tcp_wput */
177 mblk_t *tcp_xmit_tail; /* Last data sent */
178 uint32_t tcp_unsent; /* # of bytes in hand that are unsent */
179 uint32_t tcp_xmit_tail_unsent; /* # of unsent bytes in xmit_tail */
180
181 uint32_t tcp_suna; /* Sender unacknowledged */
182 uint32_t tcp_rexmit_nxt; /* Next rexmit seq num */
183 uint32_t tcp_rexmit_max; /* Max retran seq num */
184 uint32_t tcp_cwnd; /* Congestion window */
185 int32_t tcp_cwnd_cnt; /* cwnd cnt in congestion avoidance */
186
187 uint32_t tcp_ibsegs; /* Inbound segments on this stream */
188 uint32_t tcp_obsegs; /* Outbound segments on this stream */
189
190 uint32_t tcp_naglim; /* Tunable nagle limit */
191 uint32_t tcp_valid_bits;
192 #define TCP_ISS_VALID 0x1 /* Is the tcp_iss seq num active? */
193 #define TCP_FSS_VALID 0x2 /* Is the tcp_fss seq num active? */
194 #define TCP_URG_VALID 0x4 /* Is the tcp_urg seq num active? */
195 #define TCP_OFO_FIN_VALID 0x8 /* Has TCP received an out of order FIN? */
196
197
198
199 timeout_id_t tcp_timer_tid; /* Control block for timer service */
200 uchar_t tcp_timer_backoff; /* Backoff shift count. */
201 int64_t tcp_last_recv_time; /* Last time we receive a segment. */
202 uint32_t tcp_init_cwnd; /* Initial cwnd (start/restart) */
203
|