1*91df013fSAsim Jamshed<!-- Creator     : groff version 1.22.2 -->
2*91df013fSAsim Jamshed<!-- CreationDate: Thu Feb  2 17:04:41 2017 -->
3*91df013fSAsim Jamshed<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
4*91df013fSAsim Jamshed"http://www.w3.org/TR/html4/loose.dtd">
5*91df013fSAsim Jamshed<html>
6*91df013fSAsim Jamshed<head>
7*91df013fSAsim Jamshed<meta name="generator" content="groff -Thtml, see www.gnu.org">
8*91df013fSAsim Jamshed<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
9*91df013fSAsim Jamshed<meta name="Content-Style" content="text/css">
10*91df013fSAsim Jamshed<style type="text/css">
11*91df013fSAsim Jamshed       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
12*91df013fSAsim Jamshed       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
13*91df013fSAsim Jamshed       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
14*91df013fSAsim Jamshed       h1      { text-align: center }
15*91df013fSAsim Jamshed</style>
16*91df013fSAsim Jamshed<title>mtcp_init</title>
17*91df013fSAsim Jamshed
18*91df013fSAsim Jamshed</head>
19*91df013fSAsim Jamshed<body>
20*91df013fSAsim Jamshed
21*91df013fSAsim Jamshed<h1 align="center">mtcp_init</h1>
22*91df013fSAsim Jamshed
23*91df013fSAsim Jamshed<a href="#NAME">NAME</a><br>
24*91df013fSAsim Jamshed<a href="#SYNOPSIS">SYNOPSIS</a><br>
25*91df013fSAsim Jamshed<a href="#DESCRIPTION">DESCRIPTION</a><br>
26*91df013fSAsim Jamshed<a href="#RETURN VALUE">RETURN VALUE</a><br>
27*91df013fSAsim Jamshed<a href="#NOTES">NOTES</a><br>
28*91df013fSAsim Jamshed<a href="#AUTHORS">AUTHORS</a><br>
29*91df013fSAsim Jamshed<a href="#SEE ALSO">SEE ALSO</a><br>
30*91df013fSAsim Jamshed<a href="#COLOPHON">COLOPHON</a><br>
31*91df013fSAsim Jamshed
32*91df013fSAsim Jamshed<hr>
33*91df013fSAsim Jamshed
34*91df013fSAsim Jamshed
35*91df013fSAsim Jamshed<h2>NAME
36*91df013fSAsim Jamshed<a name="NAME"></a>
37*91df013fSAsim Jamshed</h2>
38*91df013fSAsim Jamshed
39*91df013fSAsim Jamshed
40*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mtcp_init
41*91df013fSAsim Jamshed&minus; initialize the mOS stack</p>
42*91df013fSAsim Jamshed
43*91df013fSAsim Jamshed<h2>SYNOPSIS
44*91df013fSAsim Jamshed<a name="SYNOPSIS"></a>
45*91df013fSAsim Jamshed</h2>
46*91df013fSAsim Jamshed
47*91df013fSAsim Jamshed
48*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>#include
49*91df013fSAsim Jamshed&lt;mtcp_api.h&gt;</b></p>
50*91df013fSAsim Jamshed
51*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>int
52*91df013fSAsim Jamshedmtcp_init(char *</b><i>config_file</i><b>);</b></p>
53*91df013fSAsim Jamshed
54*91df013fSAsim Jamshed<h2>DESCRIPTION
55*91df013fSAsim Jamshed<a name="DESCRIPTION"></a>
56*91df013fSAsim Jamshed</h2>
57*91df013fSAsim Jamshed
58*91df013fSAsim Jamshed
59*91df013fSAsim Jamshed
60*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_init</b>()
61*91df013fSAsim Jamshedcall is used to set the stack parameters of an mOS-based
62*91df013fSAsim Jamshedapplication. These parameters are loaded inside the process
63*91df013fSAsim Jamshedvia a startup configuration file, <i>config_file.</i> A
64*91df013fSAsim Jamsheddeveloper is required to first call <b>mtcp_init</b>()
65*91df013fSAsim Jamshedfunction before he/she can invoke any follow-up mOS
66*91df013fSAsim Jamshedfunctions in his/her application.</p>
67*91df013fSAsim Jamshed
68*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">A typical
69*91df013fSAsim Jamshed<i>config_file</i> is composed of at least two mOS
70*91df013fSAsim Jamshedconfiguration blocks. The app block sets the configuration
71*91df013fSAsim Jamshedparameters of the application that employs the underlying
72*91df013fSAsim JamshedmOS stack. A typical instance of an app block is illustrated
73*91df013fSAsim Jamshedbelow.</p>
74*91df013fSAsim Jamshed
75*91df013fSAsim Jamshed
76*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">#######################
77*91df013fSAsim Jamshed<br>
78*91df013fSAsim Jamshed# APPLICATION OPTIONS # <br>
79*91df013fSAsim Jamshed####################### <br>
80*91df013fSAsim Jamshed# application to run <br>
81*91df013fSAsim Jamshedapplication { <br>
82*91df013fSAsim Jamshedtype = end <br>
83*91df013fSAsim Jamshedrun = epwget <br>
84*91df013fSAsim Jamshedcore_mask = 0x000F <br>
85*91df013fSAsim Jamshed}</p>
86*91df013fSAsim Jamshed
87*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">A user can
88*91df013fSAsim Jamshedpopulate the app block with the following parameters:</p>
89*91df013fSAsim Jamshed
90*91df013fSAsim Jamshed<table width="100%" border="0" rules="none" frame="void"
91*91df013fSAsim Jamshed       cellspacing="0" cellpadding="0">
92*91df013fSAsim Jamshed<tr valign="top" align="left">
93*91df013fSAsim Jamshed<td width="11%"></td>
94*91df013fSAsim Jamshed<td width="14%">
95*91df013fSAsim Jamshed
96*91df013fSAsim Jamshed
97*91df013fSAsim Jamshed<p style="margin-top: 1em">type</p></td>
98*91df013fSAsim Jamshed<td width="12%"></td>
99*91df013fSAsim Jamshed<td width="63%">
100*91df013fSAsim Jamshed
101*91df013fSAsim Jamshed
102*91df013fSAsim Jamshed<p style="margin-top: 1em">The type of application that the
103*91df013fSAsim Jamsheduser wants to run. An application can either be an endpoint
104*91df013fSAsim Jamshedapplication (&rsquo;end&rsquo;) such as an mTCP client or
105*91df013fSAsim JamshedmTCP server, or be a middlebox application
106*91df013fSAsim Jamshed(&rsquo;monitor&rsquo;).</p> </td></tr>
107*91df013fSAsim Jamshed<tr valign="top" align="left">
108*91df013fSAsim Jamshed<td width="11%"></td>
109*91df013fSAsim Jamshed<td width="14%">
110*91df013fSAsim Jamshed
111*91df013fSAsim Jamshed
112*91df013fSAsim Jamshed<p>run</p></td>
113*91df013fSAsim Jamshed<td width="12%"></td>
114*91df013fSAsim Jamshed<td width="63%">
115*91df013fSAsim Jamshed
116*91df013fSAsim Jamshed
117*91df013fSAsim Jamshed<p>The name of the binary to execute.</p></td></tr>
118*91df013fSAsim Jamshed<tr valign="top" align="left">
119*91df013fSAsim Jamshed<td width="11%"></td>
120*91df013fSAsim Jamshed<td width="14%">
121*91df013fSAsim Jamshed
122*91df013fSAsim Jamshed
123*91df013fSAsim Jamshed<p>core_mask</p></td>
124*91df013fSAsim Jamshed<td width="12%"></td>
125*91df013fSAsim Jamshed<td width="63%">
126*91df013fSAsim Jamshed
127*91df013fSAsim Jamshed
128*91df013fSAsim Jamshed<p>The CPU bitmask where you want to run the application.
129*91df013fSAsim JamshedThe mask 0x000F denotes that the user wants to run a
130*91df013fSAsim Jamshedsingle-process, 4-threaded application on the first four
131*91df013fSAsim Jamshedcores of the CPU (CPU 0~3).</p></td></tr>
132*91df013fSAsim Jamshed</table>
133*91df013fSAsim Jamshed
134*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">The user can
135*91df013fSAsim Jamshedrun one or more monitoring applications at the same
136*91df013fSAsim Jamshedtime.</p>
137*91df013fSAsim Jamshed
138*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">A mos block
139*91df013fSAsim Jamshedadjusts the internal parameters of the mOS stack.</p>
140*91df013fSAsim Jamshed
141*91df013fSAsim Jamshed
142*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">#######################
143*91df013fSAsim Jamshed<br>
144*91df013fSAsim Jamshed# MOS-RELATED OPTIONS # <br>
145*91df013fSAsim Jamshed#######################</p>
146*91df013fSAsim Jamshed
147*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mos { <br>
148*91df013fSAsim Jamshedforward = 1</p>
149*91df013fSAsim Jamshed
150*91df013fSAsim Jamshed
151*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">#######################
152*91df013fSAsim Jamshed<br>
153*91df013fSAsim Jamshed##### I/O OPTIONS ##### <br>
154*91df013fSAsim Jamshed####################### <br>
155*91df013fSAsim Jamshed# number of memory channels per socket [mandatory for DPDK]
156*91df013fSAsim Jamshed<br>
157*91df013fSAsim Jamshednb_mem_channels = 4</p>
158*91df013fSAsim Jamshed
159*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"># devices used
160*91df013fSAsim Jamshedfor MOS applications [mandatory] <br>
161*91df013fSAsim Jamshednetdev { <br>
162*91df013fSAsim Jamsheddpdk0 0x000F <br>
163*91df013fSAsim Jamsheddpdk1 0x000F <br>
164*91df013fSAsim Jamshed}</p>
165*91df013fSAsim Jamshed
166*91df013fSAsim Jamshed
167*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">#######################
168*91df013fSAsim Jamshed<br>
169*91df013fSAsim Jamshed### LOGGING OPTIONS ### <br>
170*91df013fSAsim Jamshed####################### <br>
171*91df013fSAsim Jamshed# NICs to print network statistics per second <br>
172*91df013fSAsim Jamshed# if enabled, mTCP will print xx Gbps and xx pps for RX and
173*91df013fSAsim JamshedTX <br>
174*91df013fSAsim Jamshedstat_print = dpdk0 dpdk1</p>
175*91df013fSAsim Jamshed
176*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"># A directory
177*91df013fSAsim Jamshedcontains MOS system log files <br>
178*91df013fSAsim Jamshedmos_log = logs/</p>
179*91df013fSAsim Jamshed
180*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"># dpdk0 and
181*91df013fSAsim Jamsheddpdk1 will forward traffic in either direction <br>
182*91df013fSAsim Jamshednic_forward_table { <br>
183*91df013fSAsim Jamsheddpdk0 dpdk1 <br>
184*91df013fSAsim Jamshed}</p>
185*91df013fSAsim Jamshed
186*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">}</p>
187*91df013fSAsim Jamshed
188*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">A user can
189*91df013fSAsim Jamshedpopulate an mOS configuration block with the following
190*91df013fSAsim Jamshedparameters:</p>
191*91df013fSAsim Jamshed
192*91df013fSAsim Jamshed<table width="100%" border="0" rules="none" frame="void"
193*91df013fSAsim Jamshed       cellspacing="0" cellpadding="0">
194*91df013fSAsim Jamshed<tr valign="top" align="left">
195*91df013fSAsim Jamshed<td width="11%"></td>
196*91df013fSAsim Jamshed<td width="26%">
197*91df013fSAsim Jamshed
198*91df013fSAsim Jamshed
199*91df013fSAsim Jamshed<p style="margin-top: 1em">forward</p></td>
200*91df013fSAsim Jamshed<td width="9%"></td>
201*91df013fSAsim Jamshed<td width="52%">
202*91df013fSAsim Jamshed
203*91df013fSAsim Jamshed
204*91df013fSAsim Jamshed<p style="margin-top: 1em">Setting this option to 1 enables
205*91df013fSAsim Jamshedpacket forwarding (for middlebox operations). Keep this
206*91df013fSAsim Jamshedvalue to 0 for endpoint mTCP applications.</p></td>
207*91df013fSAsim Jamshed<td width="2%">
208*91df013fSAsim Jamshed</td></tr>
209*91df013fSAsim Jamshed<tr valign="top" align="left">
210*91df013fSAsim Jamshed<td width="11%"></td>
211*91df013fSAsim Jamshed<td width="26%">
212*91df013fSAsim Jamshed
213*91df013fSAsim Jamshed
214*91df013fSAsim Jamshed<p>nb_mem_channels</p></td>
215*91df013fSAsim Jamshed<td width="9%"></td>
216*91df013fSAsim Jamshed<td width="52%">
217*91df013fSAsim Jamshed
218*91df013fSAsim Jamshed
219*91df013fSAsim Jamshed<p>(Mandatory for DPDK) nb_mem_channels parameter specifies
220*91df013fSAsim Jamshedthe number of memory channels per CPU socket. Please refer
221*91df013fSAsim Jamshedto DPDK user guide, on tuning this parameter for performance
222*91df013fSAsim Jamshedoptimizations.</p> </td>
223*91df013fSAsim Jamshed<td width="2%">
224*91df013fSAsim Jamshed</td></tr>
225*91df013fSAsim Jamshed<tr valign="top" align="left">
226*91df013fSAsim Jamshed<td width="11%"></td>
227*91df013fSAsim Jamshed<td width="26%">
228*91df013fSAsim Jamshed
229*91df013fSAsim Jamshed
230*91df013fSAsim Jamshed<p>netdev</p></td>
231*91df013fSAsim Jamshed<td width="9%"></td>
232*91df013fSAsim Jamshed<td width="52%">
233*91df013fSAsim Jamshed
234*91df013fSAsim Jamshed
235*91df013fSAsim Jamshed<p>netdev parameter block specifies the network interfaces
236*91df013fSAsim Jamshed(or device ports) used for mOS applications. Each line
237*91df013fSAsim Jamshedcontains the mapping of a network interface and CPU core
238*91df013fSAsim Jamshedmask. In the example above, it uses two DPDK-assisted
239*91df013fSAsim Jamshednetwork interfaces (dpdk0 and dpdk1), and CPU cores 0~3
240*91df013fSAsim Jamshedreceive/transmit traffic from/to the first 4 (0~3) hardware
241*91df013fSAsim Jamshedqueues of the NIC. We program our DPDK driver to use
242*91df013fSAsim Jamshedsymmetric RSS algorithm to distribute traffic across the
243*91df013fSAsim Jamshedcores. This ensures that the same CPU gets to examine
244*91df013fSAsim Jamshedpackets of both flows of the connection.</p></td>
245*91df013fSAsim Jamshed<td width="2%">
246*91df013fSAsim Jamshed</td></tr>
247*91df013fSAsim Jamshed<tr valign="top" align="left">
248*91df013fSAsim Jamshed<td width="11%"></td>
249*91df013fSAsim Jamshed<td width="26%">
250*91df013fSAsim Jamshed
251*91df013fSAsim Jamshed
252*91df013fSAsim Jamshed<p>stat_print</p></td>
253*91df013fSAsim Jamshed<td width="9%"></td>
254*91df013fSAsim Jamshed<td width="52%">
255*91df013fSAsim Jamshed
256*91df013fSAsim Jamshed
257*91df013fSAsim Jamshed<p>stat_print parameter specifies the network interfaces
258*91df013fSAsim Jamshedwhich the application is interested in displaying runtime
259*91df013fSAsim Jamshedmonitor statistics.</p></td>
260*91df013fSAsim Jamshed<td width="2%">
261*91df013fSAsim Jamshed</td></tr>
262*91df013fSAsim Jamshed<tr valign="top" align="left">
263*91df013fSAsim Jamshed<td width="11%"></td>
264*91df013fSAsim Jamshed<td width="26%">
265*91df013fSAsim Jamshed
266*91df013fSAsim Jamshed
267*91df013fSAsim Jamshed<p>mos_log</p></td>
268*91df013fSAsim Jamshed<td width="9%"></td>
269*91df013fSAsim Jamshed<td width="52%">
270*91df013fSAsim Jamshed
271*91df013fSAsim Jamshed
272*91df013fSAsim Jamshed<p>mos_log parameter specifies the path to a directory
273*91df013fSAsim Jamshedwhere the mOS system writes extra logging data.</p></td>
274*91df013fSAsim Jamshed<td width="2%">
275*91df013fSAsim Jamshed</td></tr>
276*91df013fSAsim Jamshed<tr valign="top" align="left">
277*91df013fSAsim Jamshed<td width="11%"></td>
278*91df013fSAsim Jamshed<td width="26%">
279*91df013fSAsim Jamshed
280*91df013fSAsim Jamshed
281*91df013fSAsim Jamshed<p>nic_forward_table</p></td>
282*91df013fSAsim Jamshed<td width="9%"></td>
283*91df013fSAsim Jamshed<td width="52%">
284*91df013fSAsim Jamshed
285*91df013fSAsim Jamshed
286*91df013fSAsim Jamshed<p>nic_forward_table parameter block specifies the static
287*91df013fSAsim JamshedEthernet traffic forwarding rules when the mOS middlebox
288*91df013fSAsim Jamshedapplication is set in inline mode (Running Monitor
289*91df013fSAsim JamshedApplications in Inline Mode). If enabled, each line accepts
290*91df013fSAsim Jamsheda pair of DPDK-registered NIC interfaces via which the
291*91df013fSAsim Jamshedtraffic can later be forwarded in either direction. Each
292*91df013fSAsim Jamshedinterface should have one-to-one mapping with another. In
293*91df013fSAsim Jamshedthe example above, traffic is switched from dpdk0 to dpdk1
294*91df013fSAsim Jamshedand vice versa. The middlebox is configured as a
295*91df013fSAsim Jamshed&rsquo;bump-in-the-wire&rsquo;.</p> </td>
296*91df013fSAsim Jamshed<td width="2%">
297*91df013fSAsim Jamshed</td></tr>
298*91df013fSAsim Jamshed<tr valign="top" align="left">
299*91df013fSAsim Jamshed<td width="11%"></td>
300*91df013fSAsim Jamshed<td width="26%">
301*91df013fSAsim Jamshed
302*91df013fSAsim Jamshed
303*91df013fSAsim Jamshed<p>max_concurrency</p></td>
304*91df013fSAsim Jamshed<td width="9%"></td>
305*91df013fSAsim Jamshed<td width="52%">
306*91df013fSAsim Jamshed
307*91df013fSAsim Jamshed
308*91df013fSAsim Jamshed<p>max_concurrency specifies the maximum number of
309*91df013fSAsim Jamshedconcurrent flows a middlebox can examine per CPU core. This
310*91df013fSAsim Jamshedparameter is used for preallocating the memory for flows.
311*91df013fSAsim Jamshed[default value: 100000]</p></td>
312*91df013fSAsim Jamshed<td width="2%">
313*91df013fSAsim Jamshed</td></tr>
314*91df013fSAsim Jamshed<tr valign="top" align="left">
315*91df013fSAsim Jamshed<td width="11%"></td>
316*91df013fSAsim Jamshed<td width="26%">
317*91df013fSAsim Jamshed
318*91df013fSAsim Jamshed
319*91df013fSAsim Jamshed<p>no_ring_buffers</p></td>
320*91df013fSAsim Jamshed<td width="9%"></td>
321*91df013fSAsim Jamshed<td width="52%">
322*91df013fSAsim Jamshed
323*91df013fSAsim Jamshed
324*91df013fSAsim Jamshed<p>no_ring_buffers determines whether the TCP ring buffer
325*91df013fSAsim Jamshedshould be disabled. For mOS endpoint (mTCP) applications,
326*91df013fSAsim JamshedmOS always require the socket buffers for the application.
327*91df013fSAsim JamshedFor middlebox applications, you can disable the receive-side
328*91df013fSAsim Jamshedsocket buffer by putting no_ring_buffers = 1. [default
329*91df013fSAsim Jamshedvalue: 0 (ring buffer is enabled by default)]</p></td>
330*91df013fSAsim Jamshed<td width="2%">
331*91df013fSAsim Jamshed</td></tr>
332*91df013fSAsim Jamshed<tr valign="top" align="left">
333*91df013fSAsim Jamshed<td width="11%"></td>
334*91df013fSAsim Jamshed<td width="26%">
335*91df013fSAsim Jamshed
336*91df013fSAsim Jamshed
337*91df013fSAsim Jamshed<p>rmem_size</p></td>
338*91df013fSAsim Jamshed<td width="9%"></td>
339*91df013fSAsim Jamshed<td width="52%">
340*91df013fSAsim Jamshed
341*91df013fSAsim Jamshed
342*91df013fSAsim Jamshed<p>Specifies the size of receive buffer per socket in bytes
343*91df013fSAsim Jamshed[default value: 8192 B].</p></td>
344*91df013fSAsim Jamshed<td width="2%">
345*91df013fSAsim Jamshed</td></tr>
346*91df013fSAsim Jamshed<tr valign="top" align="left">
347*91df013fSAsim Jamshed<td width="11%"></td>
348*91df013fSAsim Jamshed<td width="26%">
349*91df013fSAsim Jamshed
350*91df013fSAsim Jamshed
351*91df013fSAsim Jamshed<p>wmem_size</p></td>
352*91df013fSAsim Jamshed<td width="9%"></td>
353*91df013fSAsim Jamshed<td width="52%">
354*91df013fSAsim Jamshed
355*91df013fSAsim Jamshed
356*91df013fSAsim Jamshed<p>Specifies the size of send buffer per socket in bytes
357*91df013fSAsim Jamshed[default value: 8192 B].</p></td>
358*91df013fSAsim Jamshed<td width="2%">
359*91df013fSAsim Jamshed</td></tr>
360*91df013fSAsim Jamshed<tr valign="top" align="left">
361*91df013fSAsim Jamshed<td width="11%"></td>
362*91df013fSAsim Jamshed<td width="26%">
363*91df013fSAsim Jamshed
364*91df013fSAsim Jamshed
365*91df013fSAsim Jamshed<p>tcp_tw_interval</p></td>
366*91df013fSAsim Jamshed<td width="9%"></td>
367*91df013fSAsim Jamshed<td width="52%">
368*91df013fSAsim Jamshed
369*91df013fSAsim Jamshed
370*91df013fSAsim Jamshed<p>Specifies the TCP timewait interval value in seconds.
371*91df013fSAsim JamshedTCP timewait interval is the allowed time for a connection
372*91df013fSAsim Jamshedto be in the TIME_WAIT state. For mOS endpoint (mTCP)
373*91df013fSAsim Jamshedapplications, user can set it as an arbitrary value larger
374*91df013fSAsim Jamshedthan 0 to guarantee graceful shutdown. For monitoring
375*91df013fSAsim Jamshedapplications, the user may set it to 0 if she is not
376*91df013fSAsim Jamshedinterested in monitoring the flow after TIME_WAIT state.
377*91df013fSAsim Jamshed[default value: 0s]</p></td>
378*91df013fSAsim Jamshed<td width="2%">
379*91df013fSAsim Jamshed</td></tr>
380*91df013fSAsim Jamshed<tr valign="top" align="left">
381*91df013fSAsim Jamshed<td width="11%"></td>
382*91df013fSAsim Jamshed<td width="26%">
383*91df013fSAsim Jamshed
384*91df013fSAsim Jamshed
385*91df013fSAsim Jamshed<p>tcp_timeout</p></td>
386*91df013fSAsim Jamshed<td width="9%"></td>
387*91df013fSAsim Jamshed<td width="52%">
388*91df013fSAsim Jamshed
389*91df013fSAsim Jamshed
390*91df013fSAsim Jamshed<p>Specifies the TCP timeout value in seconds. This
391*91df013fSAsim Jamshedparameter determines the maximum allowed time for any flows
392*91df013fSAsim Jamshedto exist without any packet reception. In other words, mOS
393*91df013fSAsim Jamshedmiddlebox stops monitoring the connection after tcp_timeout
394*91df013fSAsim Jamshedidle period. You can set tcp_timeout = -1 to disable the
395*91df013fSAsim Jamshedtimeout checking. For mOS endpoint (mTCP) applications,
396*91df013fSAsim Jamshedtcp_timeout serves as a timeout period for connections that
397*91df013fSAsim Jamshedare in active open states (SYN_SENT states). [default value:
398*91df013fSAsim Jamshed30s]</p> </td>
399*91df013fSAsim Jamshed<td width="2%">
400*91df013fSAsim Jamshed</td></tr>
401*91df013fSAsim Jamshed</table>
402*91df013fSAsim Jamshed
403*91df013fSAsim Jamshed<h2>RETURN VALUE
404*91df013fSAsim Jamshed<a name="RETURN VALUE"></a>
405*91df013fSAsim Jamshed</h2>
406*91df013fSAsim Jamshed
407*91df013fSAsim Jamshed
408*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">Returns 0 on
409*91df013fSAsim Jamshedsuccess; -1 on failure.</p>
410*91df013fSAsim Jamshed
411*91df013fSAsim Jamshed<h2>NOTES
412*91df013fSAsim Jamshed<a name="NOTES"></a>
413*91df013fSAsim Jamshed</h2>
414*91df013fSAsim Jamshed
415*91df013fSAsim Jamshed
416*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">See
417*91df013fSAsim Jamshed<i>http://mos.kaist.edu/guide/walkthrough/05_configuration.html</i>
418*91df013fSAsim Jamshedto view example startup mOS configuration file.</p>
419*91df013fSAsim Jamshed
420*91df013fSAsim Jamshed<h2>AUTHORS
421*91df013fSAsim Jamshed<a name="AUTHORS"></a>
422*91df013fSAsim Jamshed</h2>
423*91df013fSAsim Jamshed
424*91df013fSAsim Jamshed
425*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mOS development
426*91df013fSAsim Jamshedteam &lt;[email protected]&gt;</p>
427*91df013fSAsim Jamshed
428*91df013fSAsim Jamshed<h2>SEE ALSO
429*91df013fSAsim Jamshed<a name="SEE ALSO"></a>
430*91df013fSAsim Jamshed</h2>
431*91df013fSAsim Jamshed
432*91df013fSAsim Jamshed
433*91df013fSAsim Jamshed
434*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_destroy</b>()</p>
435*91df013fSAsim Jamshed
436*91df013fSAsim Jamshed<h2>COLOPHON
437*91df013fSAsim Jamshed<a name="COLOPHON"></a>
438*91df013fSAsim Jamshed</h2>
439*91df013fSAsim Jamshed
440*91df013fSAsim Jamshed
441*91df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">This page is
442*91df013fSAsim Jamshedpart of mOS release 0.3 <i>docs</i> section. A description
443*91df013fSAsim Jamshedof the project, and information about reporting bugs, can be
444*91df013fSAsim Jamshedfound at http://mos.kaist.edu/.</p>
445*91df013fSAsim Jamshed<hr>
446*91df013fSAsim Jamshed</body>
447*91df013fSAsim Jamshed</html>
448