~ubuntu-branches/ubuntu/raring/simgrid/raring

« back to all changes in this revision

Viewing changes to doc/html/group__XBT__sock__meas.html

  • Committer: Package Import Robot
  • Author(s): Martin Quinson
  • Date: 2013-01-31 00:24:51 UTC
  • mfrom: (10.1.6 sid)
  • Revision ID: package-import@ubuntu.com-20130131002451-krejhf7w7h24lpsc
Tags: 3.9~rc1-1
* New upstream release: the "Grasgory" release. Major changes:
  - Gras was completely removed from this version.
  - Documentation reorganization to ease browsing it.
  - New default value for the TCP_gamma parameter: 4MiB

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
 
<html xmlns="http://www.w3.org/1999/xhtml">
3
 
<head>
4
 
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
 
<title>SimGrid: Using measurement sockets</title>
6
 
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
 
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
 
<link href="simgrid.css" rel="stylesheet" type="text/css">
9
 
</head>
10
 
<body>
11
 
<!-- Generated by Doxygen 1.7.4 -->
12
 
<div id="top">
13
 
<div id="titlearea">
14
 
<table cellspacing="0" cellpadding="0">
15
 
 <tbody>
16
 
 <tr style="height: 56px;">
17
 
  <td style="padding-left: 0.5em;">
18
 
   <div id="projectname">SimGrid&#160;<span id="projectnumber">3.7.1</span></div>
19
 
   <div id="projectbrief">Scalable simulation of distributed systems</div>
20
 
  </td>
21
 
 </tr>
22
 
 </tbody>
23
 
</table>
24
 
</div>
25
 
  <div id="navrow1" class="tabs">
26
 
    <ul class="tablist">
27
 
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
28
 
            <li class="current"><a href="modules.html"><span>Modules&#160;API</span></a></li>
29
 
            <li class="current"><a href="use.html"><span>Using SimGrid</span></a></li>
30
 
      <li><a href="http://gforge.inria.fr/projects/simgrid"><span>Forge</span></a></li>
31
 
      <li><a href="http://simgrid.gforge.inria.fr/"><span>Website</span></a></li>
32
 
      <li><a href="pages.html"><span>Documentation&nbsp;index</span></a></li>
33
 
      <li><a href="FAQ.html"><span>FAQ</span></a></li>
34
 
    </ul>
35
 
      <div class="tabs_group_use">
36
 
        <ul class="tablist">
37
 
                <li><a href="install.html"><span>Installing SimGrid</span></a></li>
38
 
                <li class="current"><a href="modules.html"><span>Modules&#160;API</span></a></li>
39
 
                <li><a href="options.html"><span>Options & configurations</span></a></li>
40
 
                <li><a href="platform.html"><span>Platform Description</span></a></li>
41
 
                <li><a href="tracing.html"><span>Tracing Simulations</span></a></li>
42
 
                <li><a href="bindings.html"><span>Bindings</span></a></li>
43
 
                <li><a href="pls.html"><span>Packet-Level Simulation</span></a></li>
44
 
        </ul></div>
45
 
      </div>
46
 
  </div>
47
 
</div>
48
 
<div class="header">
49
 
  <div class="summary">
50
 
<a href="#func-members">Functions</a>  </div>
51
 
  <div class="headertitle">
52
 
<div class="title">Using measurement sockets</div>  </div>
53
 
<div class="ingroups"><a class="el" href="group__XBT__sock.html">XBT_sock</a></div></div>
54
 
<div class="contents">
55
 
<table class="memberdecls">
56
 
<tr><td colspan="2"><h2><a name="func-members"></a>
57
 
Functions</h2></td></tr>
58
 
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6123c76b9debccd4338a856cce5896d8"></a><!-- doxytag: member="XBT_sock_meas::xbt_socket_is_meas" ref="ga6123c76b9debccd4338a856cce5896d8" args="(xbt_socket_t sock)" -->
59
 
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XBT__sock__meas.html#ga6123c76b9debccd4338a856cce5896d8">xbt_socket_is_meas</a> (<a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a> sock)</td></tr>
60
 
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the provided socket is a measurement one (or a regular one) <br/></td></tr>
61
 
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XBT__sock__meas.html#ga2702c9f2e738cde0bbbce90c6647b334">xbt_socket_meas_send</a> (<a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a> peer, unsigned int timeout, unsigned long int msgSize, unsigned long int msgAmount)</td></tr>
62
 
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a chunk of (random) data over a measurement socket.  <a href="#ga2702c9f2e738cde0bbbce90c6647b334"></a><br/></td></tr>
63
 
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XBT__sock__meas.html#gabaff122cfcb3bd3f6c991d0b2d50b710">xbt_socket_meas_recv</a> (<a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a> peer, unsigned int timeout, unsigned long int msgSize, unsigned long int msgAmount)</td></tr>
64
 
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive a chunk of data over a measurement socket.  <a href="#gabaff122cfcb3bd3f6c991d0b2d50b710"></a><br/></td></tr>
65
 
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__XBT__sock__meas.html#ga4b3de4557dde69d3862c9657fbfb07a7">xbt_socket_meas_accept</a> (<a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a> peer)</td></tr>
66
 
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Something similar to the good old accept system call.  <a href="#ga4b3de4557dde69d3862c9657fbfb07a7"></a><br/></td></tr>
67
 
</table>
68
 
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
69
 
<p>You may want to use sockets not to exchange valuable data (in messages), but to conduct some bandwidth measurements and related experiments. If so, try those measurement sockets.</p>
70
 
<p>You can only use those functions on sockets opened with the "measurement" boolean set to true. </p>
71
 
<hr/><h2>Function Documentation</h2>
72
 
<a class="anchor" id="ga2702c9f2e738cde0bbbce90c6647b334"></a><!-- doxytag: member="socket.h::xbt_socket_meas_send" ref="ga2702c9f2e738cde0bbbce90c6647b334" args="(xbt_socket_t peer, unsigned int timeout, unsigned long int msgSize, unsigned long int msgAmount)" -->
73
 
<div class="memitem">
74
 
<div class="memproto">
75
 
      <table class="memname">
76
 
        <tr>
77
 
          <td class="memname">void xbt_socket_meas_send </td>
78
 
          <td>(</td>
79
 
          <td class="paramtype"><a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a>&#160;</td>
80
 
          <td class="paramname"><em>peer</em>, </td>
81
 
        </tr>
82
 
        <tr>
83
 
          <td class="paramkey"></td>
84
 
          <td></td>
85
 
          <td class="paramtype">unsigned int&#160;</td>
86
 
          <td class="paramname"><em>timeout</em>, </td>
87
 
        </tr>
88
 
        <tr>
89
 
          <td class="paramkey"></td>
90
 
          <td></td>
91
 
          <td class="paramtype">unsigned long int&#160;</td>
92
 
          <td class="paramname"><em>msg_size</em>, </td>
93
 
        </tr>
94
 
        <tr>
95
 
          <td class="paramkey"></td>
96
 
          <td></td>
97
 
          <td class="paramtype">unsigned long int&#160;</td>
98
 
          <td class="paramname"><em>msg_amount</em>&#160;</td>
99
 
        </tr>
100
 
        <tr>
101
 
          <td></td>
102
 
          <td>)</td>
103
 
          <td></td><td></td>
104
 
        </tr>
105
 
      </table>
106
 
</div>
107
 
<div class="memdoc">
108
 
 
109
 
<p>Send a chunk of (random) data over a measurement socket. </p>
110
 
<dl><dt><b>Parameters:</b></dt><dd>
111
 
  <table class="params">
112
 
    <tr><td class="paramname">peer</td><td>measurement socket to use for the experiment </td></tr>
113
 
    <tr><td class="paramname">timeout</td><td>timeout (in seconds) </td></tr>
114
 
    <tr><td class="paramname">msg_size</td><td>size of each chunk sent over the socket (in bytes). </td></tr>
115
 
    <tr><td class="paramname">msg_amount</td><td>how many of these packets you want to send.</td></tr>
116
 
  </table>
117
 
  </dd>
118
 
</dl>
119
 
<p>Calls to <a class="el" href="group__XBT__sock__meas.html#ga2702c9f2e738cde0bbbce90c6647b334" title="Send a chunk of (random) data over a measurement socket.">xbt_socket_meas_send()</a> and <a class="el" href="group__XBT__sock__meas.html#gabaff122cfcb3bd3f6c991d0b2d50b710" title="Receive a chunk of data over a measurement socket.">xbt_socket_meas_recv()</a> on each side of the socket should be paired.</p>
120
 
<p>The exchanged data is zeroed to make sure it's initialized, but there is no way to control what is sent (ie, you cannot use these functions to exchange data out of band).</p>
121
 
<dl class="warning"><dt><b>Warning:</b></dt><dd>: in SimGrid version 3.1 and previous, the numerical arguments were the total amount of data to send and the msg_size. This was changed for the fool wanting to send more than MAXINT bytes in a fat pipe. </dd></dl>
122
 
 
123
 
</div>
124
 
</div>
125
 
<a class="anchor" id="gabaff122cfcb3bd3f6c991d0b2d50b710"></a><!-- doxytag: member="socket.h::xbt_socket_meas_recv" ref="gabaff122cfcb3bd3f6c991d0b2d50b710" args="(xbt_socket_t peer, unsigned int timeout, unsigned long int msgSize, unsigned long int msgAmount)" -->
126
 
<div class="memitem">
127
 
<div class="memproto">
128
 
      <table class="memname">
129
 
        <tr>
130
 
          <td class="memname">void xbt_socket_meas_recv </td>
131
 
          <td>(</td>
132
 
          <td class="paramtype"><a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a>&#160;</td>
133
 
          <td class="paramname"><em>peer</em>, </td>
134
 
        </tr>
135
 
        <tr>
136
 
          <td class="paramkey"></td>
137
 
          <td></td>
138
 
          <td class="paramtype">unsigned int&#160;</td>
139
 
          <td class="paramname"><em>timeout</em>, </td>
140
 
        </tr>
141
 
        <tr>
142
 
          <td class="paramkey"></td>
143
 
          <td></td>
144
 
          <td class="paramtype">unsigned long int&#160;</td>
145
 
          <td class="paramname"><em>msg_size</em>, </td>
146
 
        </tr>
147
 
        <tr>
148
 
          <td class="paramkey"></td>
149
 
          <td></td>
150
 
          <td class="paramtype">unsigned long int&#160;</td>
151
 
          <td class="paramname"><em>msg_amount</em>&#160;</td>
152
 
        </tr>
153
 
        <tr>
154
 
          <td></td>
155
 
          <td>)</td>
156
 
          <td></td><td></td>
157
 
        </tr>
158
 
      </table>
159
 
</div>
160
 
<div class="memdoc">
161
 
 
162
 
<p>Receive a chunk of data over a measurement socket. </p>
163
 
<p>Calls to <a class="el" href="group__XBT__sock__meas.html#ga2702c9f2e738cde0bbbce90c6647b334" title="Send a chunk of (random) data over a measurement socket.">xbt_socket_meas_send()</a> and <a class="el" href="group__XBT__sock__meas.html#gabaff122cfcb3bd3f6c991d0b2d50b710" title="Receive a chunk of data over a measurement socket.">xbt_socket_meas_recv()</a> on each side of the socket should be paired.</p>
164
 
<dl class="warning"><dt><b>Warning:</b></dt><dd>: in SimGrid version 3.1 and previous, the numerical arguments were the total amount of data to send and the msg_size. This was changed for the fool wanting to send more than MAXINT bytes in a fat pipe. </dd></dl>
165
 
 
166
 
</div>
167
 
</div>
168
 
<a class="anchor" id="ga4b3de4557dde69d3862c9657fbfb07a7"></a><!-- doxytag: member="socket.h::xbt_socket_meas_accept" ref="ga4b3de4557dde69d3862c9657fbfb07a7" args="(xbt_socket_t peer)" -->
169
 
<div class="memitem">
170
 
<div class="memproto">
171
 
      <table class="memname">
172
 
        <tr>
173
 
          <td class="memname"><a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a> xbt_socket_meas_accept </td>
174
 
          <td>(</td>
175
 
          <td class="paramtype"><a class="el" href="group__XBT__sock__create.html#ga490f317ed9bc4b6d7f0b78bf91e6f184">xbt_socket_t</a>&#160;</td>
176
 
          <td class="paramname"><em>peer</em></td><td>)</td>
177
 
          <td></td>
178
 
        </tr>
179
 
      </table>
180
 
</div>
181
 
<div class="memdoc">
182
 
 
183
 
<p>Something similar to the good old accept system call. </p>
184
 
<p>Make sure that there is someone speaking to the provided server socket. In RL, it does an accept(2) and return the result as last argument. In SG, as accepts are useless, it returns the provided argument as result. You should thus test whether (peer != accepted) before closing both of them.</p>
185
 
<p>You should only call this on measurement sockets. It is automatically done for regular sockets, but you usually want more control about what's going on with measurement sockets. </p>
186
 
 
187
 
</div>
188
 
</div>
189
 
</div>
190
 
<p>
191
 
<hr>
192
 
 
193
 
<table width=100%>
194
 
<tr>
195
 
<td align=left>
196
 
<a href="index.html"><b>
197
 
Back to the main Simgrid Documentation page</b></a>
198
 
</td>
199
 
<td align=middle>
200
 
<small>The version of <a href="http://simgrid.gforge.inria.fr">SimGrid</a> documented here is v3.7.1.<br/>
201
 
Documentation of other versions can be found in their respective
202
 
archive files (directory doc/html).
203
 
</td>
204
 
<td align=right>
205
 
<small>Generated by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0  width=110 height=53></a> </small>
206
 
</td>
207
 
</tr>
208
 
</table>