[Ns-developers] Emu and Tap Status

craigdo@ee.washington.edu craigdo at ee.washington.edu
Thu Jan 22 12:15:09 PST 2009


Hi all,

I want to take a couple of minutes of your time to let you know what is
happening with the emu and tap development efforts.

The emu net device was released with ns-3.3  It allows you to run ns-3
simulations that drive real network hardware talking over the testbed.
Here's some ASCII "art" showing this architecture:

     +--------+     +--------+     +--------+
     |  Host  |     |  Host  |     |  Host  |
     | ------ |     | ------ |     | ------ |
     |  ns-3  |     |  ns-3  |     |  ns-3  |
     |  sim   |     |  sim   |     |  sim   |
     | ------ |     | ------ |     | ------ |
     |  emu   |     |  emu   |     |  emu   |
     |  net   |     |  net   |     |  net   |
     | device |     | device |     | device |
     | ------ |     | ------ |     | ------ |
     |  raw   |     |  raw   |     |  raw   |
     | socket |     | socket |     | socket |
     | ------ |     | ------ |     | ------ |
     |  real  |     |  real  |     |  real  |
     | device |     | device |     | device |
     +--------+     +--------+     +--------+
         ||             ||             ||     
     +--------------------------------------+
     |           Testbed network            |
     +--------------------------------------+

I have a simulation running on ORBIT and have written a HOWTO,

 
http://www.nsnam.org/wiki/index.php/HOWTO_use_ns-3_directly_on_the_ORBIT_tes
tbed_hardware

that describes how to use ns-3.3 to get an echo client and server running on
an ORBIT sandbox.  There is further work ongoing to better integrate ns-3
into the ORBIT tools and thereby automate some of the grunt work that is
obvious if you read the HOWTO.  This is currently on hold as I work on
ns-3.4 new features, but I will return to that work in February.  The
end-result is planned to be a validation test of our wireless models on
ORBIT and documentation on how to get there.

The other project has been known as the Tap device.  The focus of this
effort has changed to more of a bridge-like addition.  Here's a sneak
preview of what the architecture will look like.


     +-------+                                  +-------+
     | Host  |                                  | Host  |
     | Proc  |                                  | Proc  |
     | ----- |                                  | ----- |
     | apps  |                                  | apps  |
     | ----- |                                  | ----- |
     | stack |      +--------+  +--------+      | stack | 
     | ----- |      |  node  |  |  node  |      | ----- | 
     | /dev  |      | ------ |  | ------ |      | /dev  |
     |  tap  | <--> |  tap   |  |   tap  | <--> |  tap  |
     +-------+      | bridge |  | bridge |      +-------+ 
                    | ------ |  | ------ |
                    |  net   |  |  net   |
                    |  dev   |  |  dev   |
                    +--------+  +--------+
                        ||          ||
                    +--------------------+
                    |    ns-3 channel    |
                    +--------------------+

As you can see, the Tap net device has morphed into more of a bridge from
the ns-3 perspective.  We want to allow a process running on a real host to
talk to ns-3 via a Linux Tap device.  The Linux Tap device data comes
from/goes to a user space process as usual.  This user space program is
shown as a "tap bridge" in the illustration above.  The goal is to allow the
Linux host process to talk over an ns-3 simulated channel.

I am working on this right now, and am going to try and get something to Raj
"Real Soon Now" for inclusion in the upcoming ns-3.4 release.

As you can see, these two projects can be considered inverses.  The emu
project allow you to run simulated nodes over real networks, and the tap
project allows you to run real nodes over simulated networks.

If you have any comments or suggestions, or can foresee any problems or
shortcomings, I'd appreciate hearing from you.  I'd be very interested in
hearing any use cases you might have.

Regards,

-- Craig






More information about the Ns-developers mailing list