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>
265
266 #define tcp_pipe tcp_sack_info.tcp_pipe
267 #define tcp_fack tcp_sack_info.tcp_fack
268 #define tcp_sack_snxt tcp_sack_info.tcp_sack_snxt
269 #define tcp_max_sack_blk tcp_sack_info.tcp_max_sack_blk
270 #define tcp_num_sack_blk tcp_sack_info.tcp_num_sack_blk
271 #define tcp_sack_list tcp_sack_info.tcp_sack_list
272 #define tcp_num_notsack_blk tcp_sack_info.tcp_num_notsack_blk
273 #define tcp_cnt_notsack_list tcp_sack_info.tcp_cnt_notsack_list
274 #define tcp_notsack_list tcp_sack_info.tcp_notsack_list
275
276 mblk_t *tcp_rcv_list; /* Queued until push, urgent data, */
277 mblk_t *tcp_rcv_last_head; /* optdata, or the count exceeds */
278 mblk_t *tcp_rcv_last_tail; /* tcp_rcv_push_wait. */
279 uint32_t tcp_rcv_cnt; /* tcp_rcv_list is b_next chain. */
280
281 uint32_t tcp_cwnd_ssthresh; /* Congestion window */
282 uint32_t tcp_cwnd_max;
283 uint32_t tcp_csuna; /* Clear (no rexmits in window) suna */
284
285 clock_t tcp_rtt_sa; /* Round trip smoothed average */
286 clock_t tcp_rtt_sd; /* Round trip smoothed deviation */
287 clock_t tcp_rtt_update; /* Round trip update(s) */
288 clock_t tcp_ms_we_have_waited; /* Total retrans time */
289
290 uint32_t tcp_swl1; /* These help us avoid using stale */
291 uint32_t tcp_swl2; /* packets to update state */
292
293 uint32_t tcp_rack; /* Seq # we have acked */
294 uint32_t tcp_rack_cnt; /* # of segs we have deferred ack */
295 uint32_t tcp_rack_cur_max; /* # of segs we may defer ack for now */
296 uint32_t tcp_rack_abs_max; /* # of segs we may defer ack ever */
297 timeout_id_t tcp_ack_tid; /* Delayed ACK timer ID */
298 timeout_id_t tcp_push_tid; /* Push timer ID */
299
300 uint32_t tcp_max_swnd; /* Maximum swnd we have seen */
301
302 struct tcp_s *tcp_listener; /* Our listener */
303
304 uint32_t tcp_irs; /* Initial recv seq num */
305 uint32_t tcp_fss; /* Final/fin send seq num */
306 uint32_t tcp_urg; /* Urgent data seq num */
307
|
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, 2016 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>
265
266 #define tcp_pipe tcp_sack_info.tcp_pipe
267 #define tcp_fack tcp_sack_info.tcp_fack
268 #define tcp_sack_snxt tcp_sack_info.tcp_sack_snxt
269 #define tcp_max_sack_blk tcp_sack_info.tcp_max_sack_blk
270 #define tcp_num_sack_blk tcp_sack_info.tcp_num_sack_blk
271 #define tcp_sack_list tcp_sack_info.tcp_sack_list
272 #define tcp_num_notsack_blk tcp_sack_info.tcp_num_notsack_blk
273 #define tcp_cnt_notsack_list tcp_sack_info.tcp_cnt_notsack_list
274 #define tcp_notsack_list tcp_sack_info.tcp_notsack_list
275
276 mblk_t *tcp_rcv_list; /* Queued until push, urgent data, */
277 mblk_t *tcp_rcv_last_head; /* optdata, or the count exceeds */
278 mblk_t *tcp_rcv_last_tail; /* tcp_rcv_push_wait. */
279 uint32_t tcp_rcv_cnt; /* tcp_rcv_list is b_next chain. */
280
281 uint32_t tcp_cwnd_ssthresh; /* Congestion window */
282 uint32_t tcp_cwnd_max;
283 uint32_t tcp_csuna; /* Clear (no rexmits in window) suna */
284
285 hrtime_t tcp_rtt_sa; /* Round trip smoothed average */
286 hrtime_t tcp_rtt_sd; /* Round trip smoothed deviation */
287 uint32_t tcp_rtt_update; /* Round trip update(s) */
288 clock_t tcp_ms_we_have_waited; /* Total retrans time */
289
290 uint32_t tcp_swl1; /* These help us avoid using stale */
291 uint32_t tcp_swl2; /* packets to update state */
292
293 uint32_t tcp_rack; /* Seq # we have acked */
294 uint32_t tcp_rack_cnt; /* # of segs we have deferred ack */
295 uint32_t tcp_rack_cur_max; /* # of segs we may defer ack for now */
296 uint32_t tcp_rack_abs_max; /* # of segs we may defer ack ever */
297 timeout_id_t tcp_ack_tid; /* Delayed ACK timer ID */
298 timeout_id_t tcp_push_tid; /* Push timer ID */
299
300 uint32_t tcp_max_swnd; /* Maximum swnd we have seen */
301
302 struct tcp_s *tcp_listener; /* Our listener */
303
304 uint32_t tcp_irs; /* Initial recv seq num */
305 uint32_t tcp_fss; /* Final/fin send seq num */
306 uint32_t tcp_urg; /* Urgent data seq num */
307
|