Commit 8625bb21 authored by Shashi Guruprasad's avatar Shashi Guruprasad

Added NSE documentation. New file tutorial/nse.html is a cut'n'paste from

the osdi paper. doc.php3 now links to tutorital/tutorial.html#Advanced
instead of tutorial/advanced.html for the "Advanced Tutorial". The latter
is anyway linked from the former.
parent 01243aef
......@@ -24,7 +24,7 @@ PAGEHEADER("Documentation");
<h3>Reference Material</h3>
<ul>
<li><b><a href="tutorial/docwrapper.php3?docname=advanced.html">
<li><b><a href="tutorial/docwrapper.php3?docname=tutorial.html#Advanced">
Emulab Advanced Tutorial</a></b>
<li><b><a href="tutorial/docwrapper.php3?docname=nscommands.html">
Emulab-specific NS Extensions Reference Manual</a></b>
......
This diff is collapsed.
......@@ -34,6 +34,8 @@
Customizing an OS (How to create a <i>delta</i>)</a>
<li> <a href="#Routing">
Setting up IP routing between nodes</a>
<li> <a href="#Simem">
Hybrid Experiments with Simulation and Emulation</a><img src="../new.gif">
</ul>
<li> <a href="#BatchMode">Batch Mode Experiments</a>
<li> <a href="#CustomOS">Creating your own disk image</a>
......@@ -470,6 +472,7 @@ or not work as you expect. Again, please feel free to contact us.
<li> <a href="#ReadyBits">How do I know when all my nodes are ready?</a>
<li> <a href="#Delta">Customizing an OS (How to create a <i>delta</i>)</a>
<li> <a href="#Routing">Setting up IP routing between nodes</a>
<li> <a href="#Simem">Hybrid Experiments with Simulation and Emulation</a><img src="../new.gif">
</ul>
<p>
......@@ -481,7 +484,10 @@ or not work as you expect. Again, please feel free to contact us.
We have a more <a href="docwrapper.php3?docname=advanced.html">
advanced example</a> demonstrating the use of RED queues, traffic
generators, and the event system.
generators, the event system and the integration of network
simulation (NS)
</p>
<li> <a NAME="RPMS"></a>
<h3>Installing RPMS automatically</h3>
......@@ -727,6 +733,7 @@ $ns run </code></pre>
mechanism, feel free to contact us so that we can arrange to
create a complete snapshot of your system.
</ul>
</p>
<li> <a NAME="Routing"></a>
<h3>Setting up IP routing between nodes</h3>
......@@ -834,6 +841,7 @@ Two final, cautionary notes on routing:
That would prevent nodes from contacting the outside world, i.e., you.
The default route <em>must</em> be set to use the control network
interface.
</p>
<p>
<li> If you use your own routing daemon, you must avoid using the
......@@ -843,6 +851,96 @@ Two final, cautionary notes on routing:
is just one hop away, via the control network, from any other node
and <em>all</em> inter-node traffic will be routed via that interface.
</ul>
</p>
<a NAME="Simem"></a>
<li><h3>Hybrid Experiments with Simulation and Emulation <img src="../new.gif"></h3>
<p>
Emulab has integrated network simulation using
<a href="http://www.isi.edu/nsnam/ns/doc/node487.html">NS Emulation (NSE)</a>
enabling an experimenter to combine simulation and real
hardware emulation. This allows scale beyond the limit of
physical resources as well as interaction of real
application traffic with simulated traffic. The latter makes it
possible to do validation of simulation models against the real
world or use simulation cross traffic when the particular model
is still experimental and not available in a real implementation.
</p>
<p>
To create an experiment with simulated resources in it, a user simply has to
enclose a block of NS Tcl code in <code>$ns make-simulated {
}</code>. You specify connections between simulated and physical nodes as usual,
with the current restriction that they must be lexically outside the
<code>make-simulated</code> block. The following code gives an example:
</p>
<code><pre>
set ns [new Simulator]
set realnode1 [$ns node]
set realnode2 [$ns node]
$ns make-simulated {
# All the code here run in the simulation
set simnode1 [$ns node]
set simnode2 [$ns node]
# A duplex link inside the simulation
$ns duplex-link $simnode1 $simnode2 1.5Mb 40ms DropTail
}
# connecting real and simulated nodes. outside make-simulated
$ns duplex-link $realnode1 $simnode1 5Mb 10ms DropTail
$ns duplex-link $realnode2 $simnode2 5Mb 10ms DropTail
</pre></code>
<p>
A hybrid experiment like this causes the simulation to run in
best effort real time. The number of simulation objects that
can be supported without falling back in real time depends on
the amount of external traffic and the number of internal
simulation events that need to be processed. Please read
<a href="docwrapper.php3?docname=nse.html">nse scaling, accuracy and capacity</a>
to get a better picture.
</p>
<p>
The output from the simulation including errors such as the ones that
report inability to keep up with real time are logged into a file
<code>/proj/&lt;project_name&gt;/exp/&lt;experiment_name&gt;/logs/nse-&lt;nodename&gt;.log
</code>
</p>
<p>
<i>
nse support is still under development. Please let us know if you face
problems in this system. Here are some caveats:
<ul>
<li>
Currently, all simulated nodes in an experiment
are mapped to one physical pc in emulab. This limits the scalability
of this system. Support to automatically map simulated resources
on to multiple physical nodes is coming soon.
<li>
Enabling NS tracing causes huge file I/O overhead resulting in
nse not keeping up with real time. Therefore, do not enable tracing.
<li>
Remember that each link between the simulated nodes and the physical
nodes is a real physical link, so there can't be more of them than
there are ethernet links on a physical node (currently 4).
</ul>
</i>
</p>
</ul>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment