[Ns-developers] emulation use cases

Tom Henderson tomh at tomh.org
Wed Jan 14 21:46:22 PST 2009

Craig is working on Tap device support for emulation, and some questions 
have arisen about use cases and requirements to support, so I thought 
I'd raise the issue on the list for any input people might have.

Presently, we have an emulation mode documented here:
it runs the simulator in real-time and allows nodes in a simulation to 
emit packets that are bridged onto a physical device on the host 
machine.  ns-3 packets are therefore emitted onto real links.  The ns-3 
device must be hand-configured with mac address and does not presently 
support DHCP configuration of the address.

I've suggested that the next priority would be to invert the picture, to 
allow real hosts to emit packets onto ns-3 links.  The main use case I 
have in mind is to allow users to interconnect virtual machines such as 
OpenVZ containers over ns-3 links (mainly, WiFi is of immediate 
interest).  It would also be possible to use the simulator as a "black 
box" such as a "simulator in the loop" testbed between real nodes or 
test equipment.

To accomplish this, what is needed is to create tap devices on the ns-3 
host machine, and bridge these tap devices to some new kind of ns-3 
NetDevice that reads and writes from the tap device.  Essentially, this 
new ns-3 NetDevice would be receiving fully formed layer-2 frames and 
bridging them onto our existing ns-3 NetDevice types.

In this model, the ns-3 node that does this bridging would be kind of 
like a ghost node, possibly with an Internet stack (maybe not).  It may 
be the case that a simulation/emulation would involve a mix of ns-3 
nodes and these special ghost nodes that exist for the purpose only of 
hosting the virtual machine; in such a case, I would envision that 
IP-level and above configuration of the mixed environment would have to 
be done separately.

I think that a framework to try to configure all of this from a bird's 
eye view of both simulation and emulation portions is possible, but 
would be a later phase of the effort (possibly a GSOC project).

Are there other suggestions for the above type of use case, or other use 
cases for emulation that people would like to see prioritized?

- Tom

More information about the Ns-developers mailing list