[Ns-developers] Real world TCP stacks in ns-2
tomh at tomh.org
Mon Apr 18 08:09:20 PDT 2005
Thanks for your post-- I think work such as this could be very useful. Some comments and questions below.
>From: Sam Jansen [mailto:sam at meta.net.nz]
>Sent: Monday, April 18, 2005 05:00 AM
>To: ns-developers at ISI.EDU
>Subject: [Ns-developers] Real world TCP stacks in ns-2
>I talked to Tom Henderson earlier about my work incorporating real world
>network stacks in ns-2. Basically, what I've done is extracted the relevant
>bits of some open source kernels (Linux 2.4.x, 2.6.x, FreeBSD, OpenBSD and
>also lwIP) all allowed them to be used as TCP agents in ns-2. I also do some
>work to allow multiple instances of each stack to be instantiated and
Is your work limited to TCP, or does it generalize to the whole stack?
How much hands-on time does it take to convert and validate a particular implementation (e.g., a Linux kernel 2.6 implementation)?
>This has turned out to be a reasonably large project. The build system in
>particular ended up being quite complex and the system has to include
>source for each network stack.
>I'd like to see this as part of ns-2, but I'm a little unsure how this
>proceed. There are a few hurdles:
>* Licences: each network stack I use has a different open source
>own code is supposedly under a different open source-ish license still,
>to coordinate with my research group a little more to figure out exactly
Presently, we are trying to convert ns to an open source licensing model such that it will be accepted into sourceforge. We seem to have some agreements now that the two main licensing problems (ISI's and PARC's licenses) can be revised. Moving the project to sourceforge is currently waiting for the licensing to get worked out. Going forward, although we don't have a licensing position for the project, I would suspect that contributed software will have to have an open source license (something like that defined by OSI: http://opensource.org/licenses/) to be included in the project.
>* Dependencies: I have a parser module with requires flex/bison and my
>current build system uses scons (www.scons.org). The latter at least
>replaced, but would take a significant amount of work.
>* Some of the stacks are quite
>dependent on compilers and architectures. Almost all of them currently will
>only compile on i386 and I'm not sure that all reasonable versions of
>work. I'd like to get past the architecture problem in the future, but this
>requires a bit of time I have yet to be able to justify. The system only
>really builds on Linux and FreeBSD because those are the only systems I've
>ever tested on.
>It seems that ns-2 is currently finding it's feet using the open source
>development model; time to throw some more questions out there:
>How should my project be incorporated, if at all, and what restrictions are
>there going to be on it? I'm quite happy to spend some more time getting my
>work up to date to make it of use to the general ns-2 community.
Once you decide to license and release it, would you be willing to update your code to the latest ns-2 release, and provide a tarball to interested people to look at? At the very least, we can link to your project from the contributed code page, but I'd like to explore whether it makes sense to build in support into the main distribution somehow.
I am also interested in your parser, because the problem that it solves is probably of more general utility than just the TCP/IP stacks. For example, C-based routing daemons such as zebra/quagga could also potentially be included more easily with such a tool. Will you be releasing the parser?
More information about the Ns-developers