191df013fSAsim Jamshed<!-- Creator     : groff version 1.22.2 -->
291df013fSAsim Jamshed<!-- CreationDate: Thu Feb  2 23:56:35 2017 -->
391df013fSAsim Jamshed<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
491df013fSAsim Jamshed"http://www.w3.org/TR/html4/loose.dtd">
591df013fSAsim Jamshed<html>
691df013fSAsim Jamshed<head>
791df013fSAsim Jamshed<meta name="generator" content="groff -Thtml, see www.gnu.org">
891df013fSAsim Jamshed<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
991df013fSAsim Jamshed<meta name="Content-Style" content="text/css">
1091df013fSAsim Jamshed<style type="text/css">
1191df013fSAsim Jamshed       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
1291df013fSAsim Jamshed       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
1391df013fSAsim Jamshed       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
1491df013fSAsim Jamshed       h1      { text-align: center }
1591df013fSAsim Jamshed</style>
1691df013fSAsim Jamshed<title>mtcp_setsockopt</title>
17e5df9dc1SAsim Jamshed<link rel="stylesheet" href="./common.css">
1891df013fSAsim Jamshed</head>
1991df013fSAsim Jamshed<body>
20e5df9dc1SAsim Jamshed<div class="main">
2191df013fSAsim Jamshed<h1 align="center">mtcp_setsockopt</h1>
22e5df9dc1SAsim Jamshed<!--
2391df013fSAsim Jamshed<a href="#NAME">NAME</a><br>
2491df013fSAsim Jamshed<a href="#SYNOPSIS">SYNOPSIS</a><br>
2591df013fSAsim Jamshed<a href="#DESCRIPTION">DESCRIPTION</a><br>
2691df013fSAsim Jamshed<a href="#RETURN VALUE">RETURN VALUE</a><br>
2791df013fSAsim Jamshed<a href="#ERRORS">ERRORS</a><br>
2891df013fSAsim Jamshed<a href="#AUTHORS">AUTHORS</a><br>
2991df013fSAsim Jamshed<a href="#SEE ALSO">SEE ALSO</a><br>
3091df013fSAsim Jamshed<a href="#COLOPHON">COLOPHON</a><br>
3191df013fSAsim Jamshed<hr>
32e5df9dc1SAsim Jamshed-->
3391df013fSAsim Jamshed
3491df013fSAsim Jamshed<h2>NAME
3591df013fSAsim Jamshed<a name="NAME"></a>
3691df013fSAsim Jamshed</h2>
3791df013fSAsim Jamshed
3891df013fSAsim Jamshed
3991df013fSAsim Jamshed
4091df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">mtcp_setsockopt
4191df013fSAsim Jamshed&minus; set options on mTCP/mOS sockets</p>
4291df013fSAsim Jamshed
4391df013fSAsim Jamshed<h2>SYNOPSIS
4491df013fSAsim Jamshed<a name="SYNOPSIS"></a>
4591df013fSAsim Jamshed</h2>
4691df013fSAsim Jamshed
4791df013fSAsim Jamshed
4891df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>#include
4991df013fSAsim Jamshed&lt;mtcp_api.h&gt;</b></p>
5091df013fSAsim Jamshed
5191df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>int
5291df013fSAsim Jamshedmtcp_setsockopt(mctx_t</b> <i>mctx</i><b>, int</b>
5391df013fSAsim Jamshed<i>sockid</i><b>, int</b> <i>level</i><b>, int</b>
5491df013fSAsim Jamshed<i>optname</i><b>, const void *</b><i>optval</i><b>,
5591df013fSAsim Jamshedsocklen_t</b> <i>optlen</i><b>);</b></p>
5691df013fSAsim Jamshed
5791df013fSAsim Jamshed<h2>DESCRIPTION
5891df013fSAsim Jamshed<a name="DESCRIPTION"></a>
5991df013fSAsim Jamshed</h2>
6091df013fSAsim Jamshed
6191df013fSAsim Jamshed
6291df013fSAsim Jamshed
6391df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_setsockopt</b>()
6491df013fSAsim Jamshedmanipulate options for the socket referred to by the
6591df013fSAsim Jamshed<i>sockid</i> descriptor. These options may exist at
6691df013fSAsim Jamshedmultiple protocol levels. When manipulating socket options,
6791df013fSAsim Jamshedthe level at which the options resides and the name of the
6891df013fSAsim Jamshedoption must be specified. A user can use
6991df013fSAsim Jamshed<b>SOL_MONSOCKET</b> <i>level</i> to adjust options for
7091df013fSAsim Jamshedmonitoring sockets.</p>
7191df013fSAsim Jamshed
7291df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">The arguments
7391df013fSAsim Jamshed<i>optval</i> and <i>optlen</i> are used to set options
7491df013fSAsim Jamshedvalues for mtcp_setsockopt().</p>
7591df013fSAsim Jamshed
7691df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">SOL_MONSOCKET
7791df013fSAsim Jamshedsocket <i>level</i> can be used by <b>mtcp_setsockopt()</b>
7891df013fSAsim Jamshedto set a number of attributes pertaining to the socket.</p>
7991df013fSAsim Jamshed
8091df013fSAsim Jamshed<table width="100%" border="0" rules="none" frame="void"
8191df013fSAsim Jamshed       cellspacing="0" cellpadding="0">
8291df013fSAsim Jamshed<tr valign="top" align="left">
8391df013fSAsim Jamshed<td width="11%"></td>
8491df013fSAsim Jamshed<td width="15%">
8591df013fSAsim Jamshed
8691df013fSAsim Jamshed
8791df013fSAsim Jamshed<p style="margin-top: 1em">MOS_CLIBUF</p></td>
8891df013fSAsim Jamshed<td width="23%"></td>
8991df013fSAsim Jamshed<td width="51%">
9091df013fSAsim Jamshed
9191df013fSAsim Jamshed
9291df013fSAsim Jamshed<p style="margin-top: 1em">Dynamically adjust the size of
9391df013fSAsim Jamshedthe TCP receive ring buffer of the emulated client stack.
9491df013fSAsim JamshedThe <i>optval</i> contains the size of the buffer that needs
9591df013fSAsim Jamshedto be set as int, while <i>optlen</i> is equal to
9691df013fSAsim Jamshedsizeof(int).</p> </td></tr>
9791df013fSAsim Jamshed<tr valign="top" align="left">
9891df013fSAsim Jamshed<td width="11%"></td>
9991df013fSAsim Jamshed<td width="15%">
10091df013fSAsim Jamshed
10191df013fSAsim Jamshed
10291df013fSAsim Jamshed<p>MOS_SVRBUF</p></td>
10391df013fSAsim Jamshed<td width="23%"></td>
10491df013fSAsim Jamshed<td width="51%">
10591df013fSAsim Jamshed
10691df013fSAsim Jamshed
10791df013fSAsim Jamshed<p>Dynamically adjust the size of the TCP receive ring
10891df013fSAsim Jamshedbuffer of the emulated client stack. The <i>optval</i>
10991df013fSAsim Jamshedcontains the size of the buffer that needs to be set as int,
11091df013fSAsim Jamshedwhile <i>optlen</i> is equal to sizeof(int).</p></td></tr>
111e5df9dc1SAsim Jamshed<tr valign="top" align="left">
112e5df9dc1SAsim Jamshed<td width="11%"></td>
113e5df9dc1SAsim Jamshed<td width="21%">
114e5df9dc1SAsim Jamshed
115e5df9dc1SAsim Jamshed
116e5df9dc1SAsim Jamshed<p>MOS_CLIOVERLAP</p></td>
117e5df9dc1SAsim Jamshed<td width="17%"></td>
118e5df9dc1SAsim Jamshed<td width="51%">
119e5df9dc1SAsim Jamshed
120e5df9dc1SAsim Jamshed
121e5df9dc1SAsim Jamshed<p>Dynamically determine the policy on content overlap
122e5df9dc1SAsim Jamshed(e.g., overwriting with the retransmitted payload or not)
123e5df9dc1SAsim Jamshedfor the client-side buffer. The <i>optval</i> can be either
124e5df9dc1SAsim JamshedMOS_OVERLAP_POLICY_FIRST (to take the first data and never
125e5df9dc1SAsim Jamshedoverwrite the buffer) or MOS_OVERLAP_POLICY_LAST (to always
126e5df9dc1SAsim Jamshedupdate the buffer with the last data), and <i>optlen</i> is
127e5df9dc1SAsim Jamshedequal to sizeof(int).</p></td></tr>
128e5df9dc1SAsim Jamshed<tr valign="top" align="left">
129e5df9dc1SAsim Jamshed<td width="11%"></td>
130e5df9dc1SAsim Jamshed<td width="21%">
131e5df9dc1SAsim Jamshed
132e5df9dc1SAsim Jamshed
133e5df9dc1SAsim Jamshed<p>MOS_SVROVERLAP</p></td>
134e5df9dc1SAsim Jamshed<td width="17%"></td>
135e5df9dc1SAsim Jamshed<td width="51%">
136e5df9dc1SAsim Jamshed
137e5df9dc1SAsim Jamshed
138e5df9dc1SAsim Jamshed<p>Dynamically determine the policy on content overlap
139e5df9dc1SAsim Jamshed(e.g., overwriting with the retransmitted payload or not)
140e5df9dc1SAsim Jamshedfor the server-side buffer. The <i>optval</i> can be either
141e5df9dc1SAsim JamshedMOS_OVERLAP_POLICY_FIRST (to take the first data and never
142e5df9dc1SAsim Jamshedoverwrite the buffer) or MOS_OVERLAP_POLICY_LAST (to always
143e5df9dc1SAsim Jamshedupdate the buffer with the last data), and <i>optlen</i> is
144e5df9dc1SAsim Jamshedequal to sizeof(int).</p></td></tr>
145e5df9dc1SAsim Jamshed<tr valign="top" align="left">
146e5df9dc1SAsim Jamshed<td width="11%"></td>
147e5df9dc1SAsim Jamshed<td width="21%">
148e5df9dc1SAsim Jamshed
149e5df9dc1SAsim Jamshed
150e5df9dc1SAsim Jamshed<p>MOS_STOP_MON</p></td>
151e5df9dc1SAsim Jamshed<td width="17%"></td>
152e5df9dc1SAsim Jamshed<td width="51%">
153e5df9dc1SAsim Jamshed
154e5df9dc1SAsim Jamshed
155e5df9dc1SAsim Jamshed<p>Dynamically stop monitoring a flow for the specific
156e5df9dc1SAsim Jamshedside. This option can be used only with a
157e5df9dc1SAsim JamshedMOS_SOCK_MONITOR_ACTIVE socket, which is given as a
158e5df9dc1SAsim Jamshedparameter in callback functions for every flow. The
159e5df9dc1SAsim Jamshed<i>optval</i> contains a side variable (MOS_SIDE_CLI,
160e5df9dc1SAsim JamshedMOS_SIDE_SVR, or MOS_SIDE_BOTH), while <i>optlen</i> is
161e5df9dc1SAsim Jamshedequal to sizeof(int).</p></td></tr>
16291df013fSAsim Jamshed</table>
16391df013fSAsim Jamshed
16491df013fSAsim Jamshed<h2>RETURN VALUE
16591df013fSAsim Jamshed<a name="RETURN VALUE"></a>
16691df013fSAsim Jamshed</h2>
16791df013fSAsim Jamshed
16891df013fSAsim Jamshed
16991df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">Returns 0 on
17091df013fSAsim Jamshedsuccess; -1 on failure. In case of failure, <i>errno</i> is
17191df013fSAsim Jamshedset appropriately.</p>
17291df013fSAsim Jamshed
17391df013fSAsim Jamshed<h2>ERRORS
17491df013fSAsim Jamshed<a name="ERRORS"></a>
17591df013fSAsim Jamshed</h2>
17691df013fSAsim Jamshed
17791df013fSAsim Jamshed
17891df013fSAsim Jamshed<table width="100%" border="0" rules="none" frame="void"
17991df013fSAsim Jamshed       cellspacing="0" cellpadding="0">
18091df013fSAsim Jamshed<tr valign="top" align="left">
18191df013fSAsim Jamshed<td width="11%"></td>
18291df013fSAsim Jamshed<td width="12%">
18391df013fSAsim Jamshed
18491df013fSAsim Jamshed
18591df013fSAsim Jamshed<p style="margin-top: 1em"><b>EACCES</b></p></td>
18691df013fSAsim Jamshed<td width="3%"></td>
18791df013fSAsim Jamshed<td width="74%">
18891df013fSAsim Jamshed
18991df013fSAsim Jamshed
19091df013fSAsim Jamshed<p style="margin-top: 1em"><i>mctx</i> is not valid.</p></td></tr>
19191df013fSAsim Jamshed<tr valign="top" align="left">
19291df013fSAsim Jamshed<td width="11%"></td>
19391df013fSAsim Jamshed<td width="12%">
19491df013fSAsim Jamshed
19591df013fSAsim Jamshed
19691df013fSAsim Jamshed<p><b>EBADF</b></p></td>
19791df013fSAsim Jamshed<td width="3%"></td>
19891df013fSAsim Jamshed<td width="74%">
19991df013fSAsim Jamshed
20091df013fSAsim Jamshed
20191df013fSAsim Jamshed<p><i>sockid</i> is not a valid socket descriptor.</p></td></tr>
20291df013fSAsim Jamshed<tr valign="top" align="left">
20391df013fSAsim Jamshed<td width="11%"></td>
20491df013fSAsim Jamshed<td width="12%">
20591df013fSAsim Jamshed
20691df013fSAsim Jamshed
20791df013fSAsim Jamshed<p><b>ENOTSOCK</b></p></td>
20891df013fSAsim Jamshed<td width="3%"></td>
20991df013fSAsim Jamshed<td width="74%">
21091df013fSAsim Jamshed
21191df013fSAsim Jamshed
21291df013fSAsim Jamshed<p>The socket referred to by <i>sockid</i> is not
21391df013fSAsim Jamshedvalid.</p> </td></tr>
21491df013fSAsim Jamshed<tr valign="top" align="left">
21591df013fSAsim Jamshed<td width="11%"></td>
21691df013fSAsim Jamshed<td width="12%">
21791df013fSAsim Jamshed
21891df013fSAsim Jamshed
21991df013fSAsim Jamshed<p><b>ENOSYS</b></p></td>
22091df013fSAsim Jamshed<td width="3%"></td>
22191df013fSAsim Jamshed<td width="74%">
22291df013fSAsim Jamshed
22391df013fSAsim Jamshed
22491df013fSAsim Jamshed<p>Either the <i>level</i> or the <i>optname</i> is not
22591df013fSAsim Jamshedimplemented.</p> </td></tr>
22691df013fSAsim Jamshed<tr valign="top" align="left">
22791df013fSAsim Jamshed<td width="11%"></td>
22891df013fSAsim Jamshed<td width="12%">
22991df013fSAsim Jamshed
23091df013fSAsim Jamshed
23191df013fSAsim Jamshed<p><b>EPERM</b></p></td>
23291df013fSAsim Jamshed<td width="3%"></td>
23391df013fSAsim Jamshed<td width="74%">
23491df013fSAsim Jamshed
23591df013fSAsim Jamshed
23691df013fSAsim Jamshed<p>Permission to access a socket option is denied.</p></td></tr>
23791df013fSAsim Jamshed</table>
23891df013fSAsim Jamshed
23991df013fSAsim Jamshed<h2>AUTHORS
24091df013fSAsim Jamshed<a name="AUTHORS"></a>
24191df013fSAsim Jamshed</h2>
24291df013fSAsim Jamshed
24391df013fSAsim Jamshed
24491df013fSAsim Jamshed<p style="margin-left:22%; margin-top: 1em">mOS development
24591df013fSAsim Jamshedteam &lt;[email protected]&gt;</p>
24691df013fSAsim Jamshed
247*626fc701SYoungGyoun
248*626fc701SYoungGyoun<!----------------------------------------------------------->
249*626fc701SYoungGyoun<h2>EXAMPLES
250*626fc701SYoungGyoun  <a name="EXAMPLES"></a>
251*626fc701SYoungGyoun</h2>
252*626fc701SYoungGyoun
253*626fc701SYoungGyoun<p style="margin-left:11%; margin-top: 1em">
254*626fc701SYoungGyoun  <a href="http://mos.kaist.edu/guide/programmer/05_api_example.html#setting-monitoring-policy">
255*626fc701SYoungGyoun	http://mos.kaist.edu/guide/programmer/05_api_example.html#setting-monitoring-policy
256*626fc701SYoungGyoun  </a>
257*626fc701SYoungGyoun  <a href="http://mos.kaist.edu/guide/programmer/05_api_example.html#disabling-packet-flow-monitoring">
258*626fc701SYoungGyoun	http://mos.kaist.edu/guide/programmer/05_api_example.html#disabling-packet-flow-monitoring
259*626fc701SYoungGyoun  </a>
260*626fc701SYoungGyoun</p>
261*626fc701SYoungGyoun<!----------------------------------------------------------->
262*626fc701SYoungGyoun
26391df013fSAsim Jamshed<h2>SEE ALSO
26491df013fSAsim Jamshed<a name="SEE ALSO"></a>
26591df013fSAsim Jamshed</h2>
26691df013fSAsim Jamshed
26791df013fSAsim Jamshed
26891df013fSAsim Jamshed
26991df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em"><b>mtcp_socket</b>(),
27091df013fSAsim Jamshed<b>mtcp_getsockopt</b>()</p>
27191df013fSAsim Jamshed
27291df013fSAsim Jamshed<h2>COLOPHON
27391df013fSAsim Jamshed<a name="COLOPHON"></a>
27491df013fSAsim Jamshed</h2>
27591df013fSAsim Jamshed
27691df013fSAsim Jamshed
27791df013fSAsim Jamshed<p style="margin-left:11%; margin-top: 1em">This page is
27891df013fSAsim Jamshedpart of mOS release 0.3 <i>docs</i> section. A description
27991df013fSAsim Jamshedof the project, and information about reporting bugs, can be
28091df013fSAsim Jamshedfound at http://mos.kaist.edu/.</p>
281e5df9dc1SAsim Jamshed<!-- <hr>-->
282e5df9dc1SAsim Jamshed<br>
283e5df9dc1SAsim Jamshed<div class="footer">
284e5df9dc1SAsim Jamshed  <img src="back-arrow.jpg" width="2%" height="2%"><a href="http://mos.kaist.edu/index_man.html">Back to Index</a>
285e5df9dc1SAsim Jamshed</div>
286e5df9dc1SAsim Jamshed</div>
28791df013fSAsim Jamshed</body>
28891df013fSAsim Jamshed</html>
289