4 * The contents of this file are subject to the terms of the
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 /*
23 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
24 */
25
26 #ifndef _INET_TCP_STACK_H
27 #define _INET_TCP_STACK_H
28
29 #include <sys/netstack.h>
30 #include <inet/ip.h>
31 #include <inet/ipdrop.h>
32 #include <inet/tcp_stats.h>
33 #include <sys/sunddi.h>
34 #include <sys/sunldi.h>
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 #ifdef _KERNEL
41
42 /*
43 * TCP stack instances
97 uint32_t tcps_rst_cnt;
98
99 ldi_ident_t tcps_ldi_ident;
100
101 /* Used to synchronize access when reclaiming memory */
102 mblk_t *tcps_ixa_cleanup_mp;
103 kmutex_t tcps_ixa_cleanup_lock;
104 kcondvar_t tcps_ixa_cleanup_ready_cv;
105 kcondvar_t tcps_ixa_cleanup_done_cv;
106
107 /* Variables for handling kmem reclaim call back. */
108 kmutex_t tcps_reclaim_lock;
109 boolean_t tcps_reclaim;
110 timeout_id_t tcps_reclaim_tid;
111 uint32_t tcps_reclaim_period;
112
113 /* Listener connection limit configuration. */
114 kmutex_t tcps_listener_conf_lock;
115 list_t tcps_listener_conf;
116
117 /*
118 * Per CPU stats
119 *
120 * tcps_sc: array of pointer to per CPU stats. The i-th element in the
121 * array represents the stats of the CPU with cpu_seqid.
122 * tcps_sc_cnt: number of CPU stats in the tcps_sc array.
123 */
124 tcp_stats_cpu_t **tcps_sc;
125 int tcps_sc_cnt;
126 };
127
128 typedef struct tcp_stack tcp_stack_t;
129
130 #endif /* _KERNEL */
131 #ifdef __cplusplus
132 }
133 #endif
134
135 #endif /* _INET_TCP_STACK_H */
|
4 * The contents of this file are subject to the terms of the
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 /*
23 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright (c) 2017 by Delphix. All rights reserved.
25 */
26
27 #ifndef _INET_TCP_STACK_H
28 #define _INET_TCP_STACK_H
29
30 #include <sys/netstack.h>
31 #include <inet/ip.h>
32 #include <inet/ipdrop.h>
33 #include <inet/tcp_stats.h>
34 #include <sys/sunddi.h>
35 #include <sys/sunldi.h>
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 #ifdef _KERNEL
42
43 /*
44 * TCP stack instances
98 uint32_t tcps_rst_cnt;
99
100 ldi_ident_t tcps_ldi_ident;
101
102 /* Used to synchronize access when reclaiming memory */
103 mblk_t *tcps_ixa_cleanup_mp;
104 kmutex_t tcps_ixa_cleanup_lock;
105 kcondvar_t tcps_ixa_cleanup_ready_cv;
106 kcondvar_t tcps_ixa_cleanup_done_cv;
107
108 /* Variables for handling kmem reclaim call back. */
109 kmutex_t tcps_reclaim_lock;
110 boolean_t tcps_reclaim;
111 timeout_id_t tcps_reclaim_tid;
112 uint32_t tcps_reclaim_period;
113
114 /* Listener connection limit configuration. */
115 kmutex_t tcps_listener_conf_lock;
116 list_t tcps_listener_conf;
117
118 struct cc_algo *tcps_default_cc_algo;
119
120 /*
121 * Per CPU stats
122 *
123 * tcps_sc: array of pointer to per CPU stats. The i-th element in the
124 * array represents the stats of the CPU with cpu_seqid.
125 * tcps_sc_cnt: number of CPU stats in the tcps_sc array.
126 */
127 tcp_stats_cpu_t **tcps_sc;
128 int tcps_sc_cnt;
129 };
130
131 typedef struct tcp_stack tcp_stack_t;
132
133 #endif /* _KERNEL */
134 #ifdef __cplusplus
135 }
136 #endif
137
138 #endif /* _INET_TCP_STACK_H */
|