Many researchers around the world are developing
modified versions of ns2 in order to introduce new features such as
agents, protocols, algorithms, etc. The standard practice adopted in
doing this is to get an official version of the ns2 source distribution,
make the needed modifications on the source code, add new files
somewhere in the existing code tree, and finally build everything
into the ns2 executable.
The introduction of dynamically loadable libraries provides a new way
to extend ns-2, with the following features:
- People can develop add-ons for ns2 (e.g. introducing new agents,
packet types, protocols) without having to modify the core simulator.
- New packet headers and types, as well as packet tracers, could
be defined to assist debugging, collection of statistics and inter-module
communication. These can also be loaded on demand according to user's needs.
- Dynamic libraries can be loaded at simulation time, with no
need to recompile the whole ns2 distribution or to keep different ns2
- The installation of third-party ns2 extensions is made easier,
thereby facilitating their dissemination.
- Dynamic libraries will make life easier for lab technicians and
students. In fact, an official ns2 version can be installed by the
administrator and students can just build and use their preferred
- Besides, these modifications will make ns2 more modular and
scalable. Adding new features to the simulator will be easier and
backward compatibility will be preserved.
The below sections briefly summarize the more complete documentation
that can be found at: