Nguyen,
I try in this post to sum up and explicit the main differences between
the approach proposed by R.Aguero et al. in their how-to and ours with
the MW-Node. I hope it helps you choosing what better fits your needs.
1) R.Aguero et al., "Adding Multiple Interface Support in NS-2"
(document, http://personales.unican.es/aguerocr)
This document describes changes to enable support of multiple
interfaces. By to support multiple interfaces they mean to allow to have
more than one wireless stack below a single routing agent on a
MobileNode. All the wireless stacks are identical (same Mac/Phy). The
routing agent code has to be modified to handle more than one wireless
stack. This applies only to AODV-like routing agents, that is routing
agents using the standard MobileNode, not the SRNode (DSR) or the
AODVUUNode (AODV-UU) for example.
This functionality is basically what is provided by Hyacinth
(http://www.ecsl.cs.sunysb.edu/multichannel/), some flexibility added.
To this respect their contribution is to me very similar to the
resources available at http://www.cse.msu.edu/~wangbo1/ns2/nshowto8.html
2) Module-based Wireless Node (MW-Node patch + documentation,
http://www.q2s.ntnu.no/~paquerea/ns.html)
In the following, I focus on the main features of the MW-Node. For
implementation details and design choices please refer to the documentation.
A MW-Node is a standard Node (not a MobileNode) with capabilities -
wireless, mobility, (energy support, not functional yet) - added by
means of modules.
The purpose of this new design of wireless and mobile networking support
in ns2 is twofold:
- to support new features such as multiple channels/multiple interfaces, and
- to provide a common basis for implementation of any wireless routing
protocol instead of having each routing protocol as a particular case
(not to say a particular node object) as it is with the MobileNode.
We distinguish between:
- multiple channels: one single routing object handling several wireless
interfaces possibly on different channels, and
- multiple interfaces: several interfaces, possibly of different types
(e.g different Mac/Phy), with one routing object handling one interface.
Following these definitions, R.Aguero et al. how-to discusses multiple
channels support only, not multiple interfaces support. The MW-Node
supports both.
Note that routing agents cannot be used directly with the MW-Node, even
in the case of a node with a single interface, and need to be converted.
Some guidelines are provided in the documentation.
Also, the layout of the MW-Node differs from the layout of a standard
MobileNode and therefore from the layout proposed by R.Aguero et al.
In the MW-Node, the routing object lies before the address classifier.
This is to enforce that data packets pass through the routing object.
This is not the case with a standard MobileNode at the destination or at
a portal (wired-wireless) node.
Finally, a new network interface object is provided and enables:
- per interface operation control (e.g. bring up/down one of two
interfaces only)
- better wired/wireless integration.
Regards,
Laurent Paquereau
Q2S Centre of Excellence, NTNU
Nguyen Lan wrote:
Hello,
I read your post on ns2 mailing list and I have a question what are the
differences between your approach and Ramon's approach. Can you give me
a suggestion in the case that I like to make a simulation with
multi-interface in ns2: which approach is better or easier to implement.
Cheers,
Nguyen
Laurent Paquereau wrote:
------------------------------------------------------------------------
Ramón,
I have been reading your how-to and as your statements and concerns
are quite similar to a subset of those we presented last year in [1],
you might find interesting reading this paper.
[1] Laurent Paquereau and Bjarne E. Helvik, "A Module-based Wireless
Node for ns-2", in Proceedings of the first Workshop on NS2: the IP
network simulator (WNS2), Pisa, Italy, 2006.
A Module-based Wireless Node (MW-Node) is a Node with wireless and
mobile capabilities added by means of modules. It is not a new node
object derived from Node. Rather it is a new layout of mostly existing
components. The aim is to provide a flexible support for wireless and
mobile networking and in particular:
* support for multiple interfaces/multiple channels, and
* a common basis for the implementation of wireless routing protocols.
The code is distributed as a patch for ns-2.30 and is now available
online with the documentation at:
http://www.q2s.ntnu.no/~paquerea/ns.html
Feedback and comments are much appreciated.
Best regards,
Laurent Paquereau
Q2S Centre of Excellence, NTNU
Ramon Aguero wrote:
> Dear all,
>
> We have seen a lot of requests about the possibility to extend the NS-2
> framework to support multiple interfaces. Although there is some
> information available, according to the messages that have been sent to
> this list, it seems that a more thorough description may be required.
>
> In this sense, after performing an analysis about existing
activities in
> this topic, we have created a document that tries to summarize which
are
> the required changes to be performed within the different pieces of the
> simulator (tcl, c++) as well as how routing protocols can be adapted to
> make use of the new feature. The howto is entitled "Adding Multiple
> Interface Support in NS-2" and it has been written by my colleague
Jesús
> Pérez and myself.
>
> I’ve uploaded the document, which can be retrieved from the
following url:
>
<http://personales.unican.es/aguerocr>http://personales.unican.es/aguerocr
>
> We will be happy to receive any feedback, comments, so as to improve
the
> howto, since we would like to have it like a living document, adding
new
> features as they are available.
>
> Best regards,
> Ramón
>
> ========================================
> Ramón Agüero Calvo
> Dept. of Communications Engineering
> Network Planning & Mobile Communications
> Laboratory
> University of Cantabria
> Avda Castros s/n
> 39005 - Santander
> SPAIN
> ramon at tlmat.unican.es
> Tel: +34 942 201 392 (Ext 14)
> Fax: +34 942 201 488
> ========================================