A design decision like this can be accepted if it was supported by proper documentation, which is absolutely not the case for ns-2. IMHO, the biggest problem of ns-2 is lack of proper documentation.
At least, there has to be two documents: a user's guide, and a developer's guide. ns manual is, again, a mixture of both that, in its current state, does not serve the purpose of any! I understand it is a work-in-progress, but it doesn't have a consistent format for different sections. The level of detail ranges across a wide spectrum in various sections. A user's guide has to worry about writing oTcl simulation scripts that only uses the simulator to run simulation scenarios. At least half of the problems discussed in the list can be avoided by having such a document. A developer's guide should present the simulator's architecture, and describe the design of individual modules. Moreover, it should clarify how to go about implementing new modules for every layer in the networking stack. The maintainers' requirements for including new modules in the distribution is a good move, if they were met more often! I'm very much interested in producing a more accessible documentation suite for ns-2. Such a great tool has much greater potential than it is credited for, only if it had proper documentation. To take a positive action, I'm willing to spend some time helping the dream of good ns-2 documentation happen. If anyone else is interested, please let's do something about it. PS. the #ns-2 IRC channel on irc.freenode.net could be a good place for such discussions! Regards, - Ahmad Khayyat Bo Wang wrote: > Hi, > > IMHO, the mixture of C++ and oTcl is the most annoying feature of NS > which makes it really hard to understand the code. > > Best, > Bo Wang > > > On 5/31/06, Ahmad Khayyat <[EMAIL PROTECTED]> wrote: > >> Just a tiny hint.. >> >> When you trace the code, don't forget that ns-2 is a mixture of C++ and >> oTcl. Much of the object passing is done through oTcl. >> >> Faisal Siddiqui wrote: >> >>> Hi Paul, >>> >>> Thanks for the link. >>> >>> I totally agree with you. I have spent so much time trying to understand >>> >> as >> >>> to how does the simulation flows through the source code, but can't >>> >> really >> >>> make any headways anymore. I am trying to implement a new control flow >>> mechanism where no packet are dropped, but in order to do so I have read >>> >> the >> >>> queue size of the next hop so that the current node can decide whether >>> >> to >> >>> accept any more packets from other nodes or flag its exception >>> >> indicatiing >> >>> to all other nodes feeding into it to stop sending more packets to it. I >>> >> am >> >>> really stuck right now because I can't locate where in the source code >>> >> does >> >>> the current node find its next hop address and how does it find that >>> >> out. I >> >>> have bunch of more questions like how does the node and agents are >>> >> located >> >>> to each other because nodes don't store any information regarding agents >>> >> or >> >>> classifiers within them and vice-versa. >>> >>> I am still waiting if someone could lend some insight into it. Please >>> >> let me >> >>> know if you have any comments or if you find any help. >>> >>> Thanks, >>> - Faisal >>> >>> >>> On 5/21/06, Paul Vincent Craven <[EMAIL PROTECTED]> wrote: >>> >>> >>>> The proper link is: >>>> http://www.grid.unina.it/~vollero/resources/doc_ns2.27/html/index.html >>>> >>>> But the documentation there is limited at best. >>>> >>>> I'm in the same boat as you. I've spent a very long time trying to >>>> understand the passing of events around, how to switch between >>>> classifiers, etc. I'd love to find someone who really knows NS2 and >>>> >> hire >> >>>> them as a consultant for a few hours just to answer all my questions! >>>> >>>> Paul Vincent Craven >>>> [EMAIL PROTECTED] >>>> >>>> >>>> >>>>