From 4dc33672acda9a6bf26f51402e7c154c144f6c2f Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Thu, 4 Dec 2008 20:19:11 -0800 Subject: [PATCH] some words about emulation --- doc/manual/emulation.texi | 57 ++++++++++++++++++++++-- doc/manual/figures/emulated-channel.dia | Bin 3353 -> 3112 bytes doc/manual/manual.texi | 1 + 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/doc/manual/emulation.texi b/doc/manual/emulation.texi index 7f1a33e3f..8d37cc6a2 100644 --- a/doc/manual/emulation.texi +++ b/doc/manual/emulation.texi @@ -2,27 +2,76 @@ @chapter Emulation @anchor{chap:Emulation} -ns-3 has been designed +ns-3 has been designed for integration into testbed and virtual machine +environments. These two environments require distinct approaches. An +architecture for the first approach, used in testbeds, is shown in the +following figure. @float Figure,fig:testbed @caption{Implementation overview of testbed.} @image{figures/testbed} @end float +You can see that there are separate hosts, each running a subset of a +simulation. Instead of an ns-3 channel connecting the hosts, we use real +hardware provided by the testbed. This allows ns-3 applications and protocol +stacks attached to a simulation node to communicate over real hardware. + +We expect the primary use for this configuration will be to analyze experimental +applications and protocols in a real network environment that includes all of +the ns-3 tracing, loging, visualization and statistics gathering tools. + +A concrete example of a testbed environment is the ORBIT testbed which provides +a rectangular array of hosts with various types of WiFi cards and other radios. +We integrate with ORBIT in that we can load and run ns-3 simulations on the ORBIT +array and use our simulator to drive the hardware in the testbed and accumulate +results either using the ns-3 tracing and logging functions, or the native ORBIT +data gathering techniques. + +In what is essentially an inverse configuration, we allow virtual machines +running native applications and protocol stacks to communicate over an ns-3 +simulated channel. This type of scenario is shown in the following figure. + @float Figure,fig:emulated-channel @caption{Implementation overview of emulated channel.} @image{figures/emulated-channel} @end float +In this figure, you will see that there is a single host with a number of +virtual machines running on it. An ns-3 simulation is shown running in the +center virtual machine. This simulation has a number of nodes with associated +ns-3 applications and protocol stacks that are talking to an ns-3 channel +through ns-3 net devices. + +There are also two virtual machines shown at the far left and far right of the +figure. These VMs are running native applications and native protocol stacks, +and are connected into the simulation by a Tap net device. The user-mode handler +for the Tap device is instantiated in the simulation and attached to a proxy node +that represents the native VM in the simulation. + +The nodes at either end of the simulation VM have only a Tap handler and net +device associated with them. These handlers allow the Tap devices on the native +VMs to behave as an ns-3 net device in the simulation VM. This, in turn, allows +the native software and protocol suites in the native VMs to believe that they +are connected to a real network represented by the simulation. + +We expect the typical use case for this environment will be to analyze the +behavior of native applications and protocol suites in the presence of large +simulated ns-3 networks. For example, the channel in the simulation VM could +be an ns-3 Wifi channel and could also be connected to any ns-3 topology. This +would allow native applications or protocol suites to be analyzed in the presence +of very complex simulated networks. + @section Behavior -Blah, blah. +TBD @section Usage -Yadda yadda +TBD @section Implementation -Mumble blah +TBD + diff --git a/doc/manual/figures/emulated-channel.dia b/doc/manual/figures/emulated-channel.dia index e9ab6455e5603f970a3b22c22eef1439df547bf4..28bd3676dd6c8a729ab16a75849cb1cafac8dc31 100644 GIT binary patch literal 3112 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 diff --git a/doc/manual/manual.texi b/doc/manual/manual.texi index 6bb998093..ebb654cb5 100644 --- a/doc/manual/manual.texi +++ b/doc/manual/manual.texi @@ -94,6 +94,7 @@ see @uref{http://www.nsnam.org/docs/manual.pdf}. @include callbacks.texi @include attributes.texi @include realtime.texi +@include emulation.texi @include packets.texi @include sockets.texi @include node.texi