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− 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<mtcp_api.h></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 (’end’) such as an mTCP client or 105*91df013fSAsim JamshedmTCP server, or be a middlebox application 106*91df013fSAsim Jamshed(’monitor’).</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’bump-in-the-wire’.</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 <[email protected]></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